FASTAシークエンスのいっぱい入ったファイルの中から、ある特定のFASTAシークエンスを抽出したい時につかえるプログラムを書いてみました。
ここまで書くには結構勉強した。
FASTAフォーマット
>1
ATGATATGAGGATGCGTAGTA
>2
AAAAATTTTGGGGCCCCC
>3
TTTTTCCCGTGTAGTGATGTGTCGTGCTGATCGTACGTCG
という遺伝子が入ったファイルがある。
その中から3のみを抽出したいときは、
>3
と書かれたファイルを用意して下のプログラムを実行すると。
FASTAフォーマットのファイルの中から
>3
TTTTTCCCGTGTAGTGATGTGTCGTGCTGATCGTACGTCG
だけを抽出してくれる。
今5万個とか扱っているのでこれを勉強して書く手間と5万個コピペする手間を考えたら
これを書くほうが楽チン。
プログラムの内容は何でもいいから目的が果たせたらいいという代物なので
褒められたものではないだろう。
ここから下がプログラム
#!/usr/bin/perl -w
use strict;
use warnings;
use POSIX;
# enter the fastafile to hash.
my ($fastafile) = @ARGV;
open FASTA, "<$fastafile";
my %hash=(); # initializes a hash
while (<FASTA>)
{
if ($_ =~ /^>/)
{
my $header = $_;
$header =~ s/\s//g;
my $read_id = $_;
$hash{$header}{name}=$read_id;
my $line = <FASTA>;
$hash{$header}{sequence}= $line;
}
}
close FASTA;
my $counter = 0;
my $name = <STDIN>;
open (FASTANAME, $name);
while (<FASTANAME>)
{
my $filename = $_;
$filename =~ s/\s//g;
my $header = $filename;
if (exists $hash{"$header"})
{
$counter = $counter + 1;
print "$hash{$header}{name}";
print "$hash{$header}{sequence}";
}
}
close (FASTANAME);
print "$counter fasta sequences are here\n";
ここまで書くには結構勉強した。
FASTAフォーマット
>1
ATGATATGAGGATGCGTAGTA
>2
AAAAATTTTGGGGCCCCC
>3
TTTTTCCCGTGTAGTGATGTGTCGTGCTGATCGTACGTCG
という遺伝子が入ったファイルがある。
その中から3のみを抽出したいときは、
>3
と書かれたファイルを用意して下のプログラムを実行すると。
FASTAフォーマットのファイルの中から
>3
TTTTTCCCGTGTAGTGATGTGTCGTGCTGATCGTACGTCG
だけを抽出してくれる。
今5万個とか扱っているのでこれを勉強して書く手間と5万個コピペする手間を考えたら
これを書くほうが楽チン。
プログラムの内容は何でもいいから目的が果たせたらいいという代物なので
褒められたものではないだろう。
ここから下がプログラム
#!/usr/bin/perl -w
use strict;
use warnings;
use POSIX;
# enter the fastafile to hash.
my ($fastafile) = @ARGV;
open FASTA, "<$fastafile";
my %hash=(); # initializes a hash
while (<FASTA>)
{
if ($_ =~ /^>/)
{
my $header = $_;
$header =~ s/\s//g;
my $read_id = $_;
$hash{$header}{name}=$read_id;
my $line = <FASTA>;
$hash{$header}{sequence}= $line;
}
}
close FASTA;
my $counter = 0;
my $name = <STDIN>;
open (FASTANAME, $name);
while (<FASTANAME>)
{
my $filename = $_;
$filename =~ s/\s//g;
my $header = $filename;
if (exists $hash{"$header"})
{
$counter = $counter + 1;
print "$hash{$header}{name}";
print "$hash{$header}{sequence}";
}
}
close (FASTANAME);
print "$counter fasta sequences are here\n";
PR
Induction of Pluripotent Stem Cells from Adult Human Fibroblasts by Defined Factors
Kazutoshi Takahashi, Koji Tanabe, Mari Ohnuki, Megumi Narita, Tomoko Ichisaka, Kiichiro Tomoda, and Shinya Yamanaka.
Cell 2007
DOI 10.1016/j.cell.2007.11.019
今最も熱い論文はこの論文でしょうか。
なにやら、人間の幹細胞が皮膚から作れるそうです。
36歳の女性の顔の皮膚からいろんな細胞になれる幹細胞がつくれた。
4つの転写因子を使うと皮膚の細胞から幹細胞がつくれるらしい。
50000細胞培養すると、10細胞の幹細胞がとれる。
わお。
この研究によって期待される事がたくさんあるためすごく注目されているようです。
幹細胞を得るのに人の胎児を使わなくて良くなった。
病気の人の皮膚から細胞を培養して何が原因なのか研究できる。
など。
Kazutoshi Takahashi, Koji Tanabe, Mari Ohnuki, Megumi Narita, Tomoko Ichisaka, Kiichiro Tomoda, and Shinya Yamanaka.
Cell 2007
DOI 10.1016/j.cell.2007.11.019
今最も熱い論文はこの論文でしょうか。
なにやら、人間の幹細胞が皮膚から作れるそうです。
36歳の女性の顔の皮膚からいろんな細胞になれる幹細胞がつくれた。
4つの転写因子を使うと皮膚の細胞から幹細胞がつくれるらしい。
50000細胞培養すると、10細胞の幹細胞がとれる。
わお。
この研究によって期待される事がたくさんあるためすごく注目されているようです。
幹細胞を得るのに人の胎児を使わなくて良くなった。
病気の人の皮膚から細胞を培養して何が原因なのか研究できる。
など。
ブラストクラストを走らせると問題がでてくる。
一回のランでは綺麗にクラスタリングされないのだ。
クラスタリングされなかったものを集めてきてもう一度ブラスとクラストをかけると、
クラスタリングされるものが出てくる。
この原因はおそらくシークエンスの長さによるものだと思うのだが、どうすればいいの?
やはりクラスタリングされなくなるまでクラスタリングするべきか。
一回のランでは綺麗にクラスタリングされないのだ。
クラスタリングされなかったものを集めてきてもう一度ブラスとクラストをかけると、
クラスタリングされるものが出てくる。
この原因はおそらくシークエンスの長さによるものだと思うのだが、どうすればいいの?
やはりクラスタリングされなくなるまでクラスタリングするべきか。