【问题标题】:extract all the substrings of a given length starting from each nucleotide position from a nucleotide sequence从核苷酸序列中的每个核苷酸位置开始提取给定长度的所有子串
【发布时间】:2012-04-24 05:57:32
【问题描述】:

如何从 Perl 语言的 fasta 文件中读取 DNA 序列并将其存储在数组中,并从每个核苷酸位置开始提取给定长度的所有子字符串? 我的意思是我想读一个非常大的序列 然后将其拆分为从每个核苷酸位置开始的许多序列 这意味着第一个序列从第一个核苷酸开始到第七十个 然后第二个序列从第二个核苷酸开始到第 71 个,依此类推

【问题讨论】:

  • 请提供一些例子,你到底在寻找什么,并展示一些代码,到目前为止尝试了什么?
  • 什么是fasta文件?我认为在 SO 上使用核苷酸和 DNA 序列的用户并不多。但是,如果您提供更多不需要了解 DNA/核苷酸和“fasta”(无论这意味着什么)的信息,那么许多 perl 黑客 能够回答您的问题。
  • 你搜索过CPAN for bioperl吗?

标签: perl


【解决方案1】:

使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2011-10-28
    • 1970-01-01
    • 2014-03-07
    相关资源
    最近更新 更多