ブラストクラスとを使う時のメモ
DNA配列をクラスタリングする時の例
blastclust -i filename.txt -p F -S 95 -L 0.7 -o outfilename.txt -e F
-i filename.txt 入力ファイル名(FASTAファイル)
-p F タンパク質かそうでないか。T=タンパク質 F=DNA (これは忘れがち。デフォルトでタンパク質になっている。)
-S thresholdのスコア。3以上だと% 3以下だとscore/length
-L thresholdの長さ。アライメントされる配列はどれくらいの長さが必要か。
-e フォーマットが必要か。これをFにしないとうまくいかない?
DNA配列をクラスタリングする時の例
blastclust -i filename.txt -p F -S 95 -L 0.7 -o outfilename.txt -e F
-i filename.txt 入力ファイル名(FASTAファイル)
-p F タンパク質かそうでないか。T=タンパク質 F=DNA (これは忘れがち。デフォルトでタンパク質になっている。)
-S thresholdのスコア。3以上だと% 3以下だとscore/length
-L thresholdの長さ。アライメントされる配列はどれくらいの長さが必要か。
-e フォーマットが必要か。これをFにしないとうまくいかない?
PR
パールじゃないけど
UNIXのコマンドでFASTAフォーマットのファイル中にあるシークエンスの数を数える
grep -c というコマンドを使うと数を数える事ができる。
FASTAフォーマットは各シークエンスに>で名前がついているので、
'>'の数を数えればそのファイルの中にいくつ'>'があるかわかる。
grep -c '>' filename
’ ’の中身を変えれば別の言葉を数える事ができる。
たとえば’No hits found’とやるとblastの結果からヒットしなかった遺伝子の数を数える事ができる。
UNIXのコマンドでFASTAフォーマットのファイル中にあるシークエンスの数を数える
grep -c というコマンドを使うと数を数える事ができる。
FASTAフォーマットは各シークエンスに>で名前がついているので、
'>'の数を数えればそのファイルの中にいくつ'>'があるかわかる。
grep -c '>' filename
’ ’の中身を変えれば別の言葉を数える事ができる。
たとえば’No hits found’とやるとblastの結果からヒットしなかった遺伝子の数を数える事ができる。
ファスタのデーターベースから
抽出したい遺伝子のファスタファイル(fasta file)を抽出するプログラム。
必要なもの、
抽出したい遺伝子名が一行に一遺伝子づつ書かれたファイル。
ファスタ形式のデーターベース(塩基配列は一行で書かれているもの。)
プログラムここから。
#------------------------------------------
#!/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;
########################## extract by fasta_name
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_sequence($hash{$header}{sequence}, 80);
}
}
close (FASTANAME);
print "$counter fasta sequences are here\n";
################# sub print_FASTA sequence #####
sub print_sequence
{
my($sequence, $length) = @_;
# Print sequence in lines of $length
for ( my $pos = 0 ; $pos < length($sequence) ; $pos += $length )
{
print substr($sequence, $pos, $length), "\n";
}
}
#--------------------------------------
ここまで
抽出したい遺伝子のファスタファイル(fasta file)を抽出するプログラム。
必要なもの、
抽出したい遺伝子名が一行に一遺伝子づつ書かれたファイル。
ファスタ形式のデーターベース(塩基配列は一行で書かれているもの。)
プログラムここから。
#------------------------------------------
#!/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;
########################## extract by fasta_name
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_sequence($hash{$header}{sequence}, 80);
}
}
close (FASTANAME);
print "$counter fasta sequences are here\n";
################# sub print_FASTA sequence #####
sub print_sequence
{
my($sequence, $length) = @_;
# Print sequence in lines of $length
for ( my $pos = 0 ; $pos < length($sequence) ; $pos += $length )
{
print substr($sequence, $pos, $length), "\n";
}
}
#--------------------------------------
ここまで