Regex fasta文件中的模式计数器
我正在尝试获取fasta文件中匹配模式的计数。我从一个包含57k序列的fasta文件开始。我想提取匹配模式序列的计数,并显示模式的起始位置 输入文件:Regex fasta文件中的模式计数器,regex,perl,awk,counter,fasta,Regex,Perl,Awk,Counter,Fasta,我正在尝试获取fasta文件中匹配模式的计数。我从一个包含57k序列的fasta文件开始。我想提取匹配模式序列的计数,并显示模式的起始位置 输入文件: chr1 ATTAG**CAGAT**GTGACGTCGATGT**CAGAT**TG chr2 TGAGCTG**CAGAT**CGTAGATGATTCTGCAGGAACCT chr3 TCTTT**CAGAT**GCCTCTG**CAGAT**TC 搜索模式CAGAT 所需输出: chr计数p1p2 chr1-2-6-25 chr2-1
chr1 ATTAG**CAGAT**GTGACGTCGATGT**CAGAT**TG
chr2 TGAGCTG**CAGAT**CGTAGATGATTCTGCAGGAACCT
chr3 TCTTT**CAGAT**GCCTCTG**CAGAT**TC
搜索模式CAGAT
所需输出:
chr计数p1p2
chr1-2-6-25
chr2-1-8
chr3-2-6-19
提前感谢我假设您的文件以制表符分隔
open(my $in,"<:utf8","in.txt") or die "Cannot open FILE in.txt : $!\n";
while(<$in>) {
chomp($_);
my $cur = $_;
#$print "iam $cur\n";
my @tt = split(/\t/,$cur); #assuming you file tobe tab seperated
my $s1 = $tt[1];
my $s2 = "CAGAT";
my @val;
print "$cur\t";
while ($s1 =~ /($s2)/g) {
push(@val, $-[0]); #$-[0] is the offset of the start of the last successful match.
}
my $count = @val;
@val = join(",",@val);
print " No of Matches:$count Starting positions:@val\n";
}
你试过什么。?你正在讲述基因组序列,如果你把整个序列解析成一个单一的变量,它就会耗尽内存。你应该逐行解析文件。感谢你的回复,我不想解析序列,我只想知道每个染色体中存在的匹配模式的数量。请显示实际输入或链接NCBI URL。我不明白chr1-2-6-25这个输出。我正在搜索每个染色体上的模式,在染色体1上我得到了我的模式的2个命中位置,这些命中位置是第6位和第25位,就像在线粒体2中,我在第8位得到了我的模式的1个命中位置,我理解计数,但P1和P2在你的输出中到底是什么?
chr1 ATTAG**CAGAT**GTGACGTCGATGT**CAGAT**TG
chr2 TGAGCTG**CAGAT**CGTAGATGATTCTGCAGGAACCT
chr3 TCTTT**CAGAT**GCCTCTG**CAGAT**TC