こんにちは、DNA配列内のすべての繰り返し4量体検索 - 私は、複数のDNA配列を含むFASTA形式のファイルを読み込んでプログラムを書いてみるPerlの
を、すべての繰り返し4量体(すなわち、すべてを識別4マーを複数回出現させる)を繰り返し、4マーとそれが見出された配列のヘッダーをプリントアウトする。 k-merは、単にkヌクレオチドの配列である(例えば、「aaca」、「gacg」および「tttt」は4量体である)。私は2つの要求を持っている
use strict;
use warnings;
my $count = -1;
my $file = "sequences.fa";
my $seq = '';
my @header =();
my @sequences =();
my $line = '';
open (READ, $file) || die "Cannot open $file: $!.\n";
while ($line = <READ>){
chomp $line;
if ($line =~ /^>/){
push @header, $line;
$count++;
unless ($seq eq ''){
push @sequences, $seq;
$seq = '';
}
} else {
$seq .= $line;
}
} push @sequences, $line;
for (my $i = 0; $i <= $#sequences+1; $i++){
if ($sequences[$i] =~ /(....)(.)*\g{1}+/g){
print $header[$i], "\n", $&, "\n";
}
}
:まず、私は所望の出力を得るために、私の正規表現パターンを設計する方法がわからない
は、ここに私のコードです。 もう少し重要ではないが、私のコードは非常に非効率であると確信しているので、短縮する方法があれば教えてください。
ありがとうございます!ここで
はFASTAファイルの例です:> NC_001422.1腸内細菌ファージphiX174 sensuのラト、完全な(オリジナルのFASTAファイル内のケースではない配列の間の余分なラインは、ありますことに注意してください)ゲノム GAGTTTTATCGCTTCCATGACGCAGAAGTTAACACTTTttttttCGGATATTTCTGATGAGTCGAAAAAT CCCTTACTTGAGGATAtatataAATTATGTCTAATATTCAAACTGGCGCCGAGCGTATGCCGCATGACCT
> NC_001501.1腸内細菌ファージphiX184 sensuのラト、完全なゲノム AACGGCTGGTCAGTATTTAAGGTTAGTGCTGAGGTTGACTACATCTGTTTTTAGAGACCC AGACCTTTTA TCTCACTTCTGTTACTCCAGCTTCTTCGGCACCTGTTTTACAGACACCTAAAGCTACATCGTCAACGTTA TATTTTGATAGTTTGACGGTTAATGCTGGTAATGGTgagagagaGGTTTTCTTCATTGCATTCAGATGGA TCAACGCCGCTAATCAGGTTGTTTCTGTTGGTGCTGATATTGCTTTTGATGCCGACCCTAAATTTTTTGC CTGTTTGGTTCGCTTTGAGTCTTCTTCGGTTCCGACTACCCTCCCGACTGCCTATGATGTTTATCCTTTG
> NC_001622.5腸内細菌ファージphiX199 sensuのラト、完全なゲノム TTCGCTGAATCAGGTTATTAAAGAGTTGCCGAGATATTTATGTTGGTTTCATGCGGATTGGTCGTTTAAA TTGGACTTGGTGGCAAGTCTGCCGCTGATAAAGGAAAGGATAATGACCAAATCAAAGAACTCGTGATTAT CTTGCTGCTGCATTTCCTGAGCTTAATGCTTGGGAGCGTGCTGGTGCTGATGCTTCCTCTGCTGGTATGG TTGACGCCGGATTTGAGAATCAAAAATGTGAGAGAGCTTACTAA私はおそらくより、このようにではなく、あなたの問題に取り組むだろう
実際、4-merが実際に何であるか説明するために行われました!ちょうど1つの質問 - 重なり合うことができますかそして、サンプルデータと必要な出力がありますか? – Sobrique
はい、重複する可能性があります。私はfastaファイルを添付しようとしましたが、不可能なようです。私は質問に例をコピーします。 残念ながら、私は希望の出力のサンプルがありません – ic23oluk
あなたはどのPerlのバージョンを使用していますか? 'perl -v' – Zaid