0

Perl 言語で fasta ファイルから DNA 配列を読み取り、それを配列に格納して、各ヌクレオチド位置から始まる特定の長さのすべての部分文字列を抽出する方法は? つまり、非常に大きなシーケンスを読み取り、それを各ヌクレオチド位置から始まる多くのシーケンスに分割したいということです。つまり、最初のシーケンスは最初のヌクレオチドから 70 まで始まり、2 番目のシーケンスは 2 番目のヌクレオチドから 70 まで始まります。 -1 など

4

1 に答える 1

0

BioperlのバンドルされたディストリビューションからのBio::SeqIOを使用して、私は例を思いつきました(これがあなたが求めているものである場合)。

#!/usr/bin/perl
use strict;
use warnings;
use Bio::SeqIO;

my $in  = Bio::SeqIO->new(-file   => "fasta.txt",
                          -format => 'Fasta');

while ( my $seq = $in->next_seq() ) {
    print "Sequence ", $seq->id, "\n";
    for my $i (1 .. length($seq->seq) - 10) {
        print $seq->subseq($i,$i+10), "\n";
    }
}


__END__
*** Contents of fasta.txt

>chr1
AACCCCCCCCTCCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGC
CAAACCCCAAAAACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAAT
TTTATCTTTAGGCGGTATGCACTTTTAACAAAAAANNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
GCCCATCCTACCCAGCACACACACACCGCTGCTAACCCCATACCCCGAAC
CAACCAAACCCCAAAGACACCCCCCACAGTTTATGTAGCTTACCTCNNNN
>chrM
GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCAT
TTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTG
GAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATT
CTATTATTTATCGCACCTACGTTCAATATTACAGGCGAACATACCTACTA
AAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATAACAATTGAAT
GTCTGCACAGCCGCTTTCCACACAGACATCATAACAAAANAATTTCCACC
于 2012-04-23T15:42:21.187 に答える