大神们,本人新手,求一个perl程序,谢谢
序列信息如下:>ENSG00000179088TGGTGGTTTGCTGCATCTATCATCCCATCACCTAGGTATTAAGCCGAGCATGCATTAGCTAT...
序列信息如下:
>ENSG00000179088
TGGTGGTTTGCTGCATCTATCATCCCATCACCTAGGTATTAAGCCGAGCATGCATTAGCTATTTTTCCTA
ATGCCCTCCCTCCCCCAACCCCACCCCCCAACAGGCCCCAGTGCATATTGTTTCCCTCCCTGTGTCCATG
TATTCTCATTGTTCAGCTTCCATTTATAAGTGAGAACATGCAGTGTTTCTGTTTTCTGTTCTAGTGTTAG
TTTGCTGAGGATAATGGCTTCCAGCTCCATCCATGTACCTGCAAAGGCCATGATCTTGTTCCTTTTTATG
GCTGCATAGTATTCCATGGTGTATATGTACCACATTTTCTTTATCCAGTCTATCATTGATGGGCATTTGG
GTGGAGTTAGACTTTTAAATATTCCATACATAAGTGAGATCATGCAGTGTTTGTCCTTCTGTGACTGGTT
TATTTAACCTAATGTCCTCTAGGCTCATCCATATTGTCACAAGTGGGGAGATTTTCTTCCTTTTTTGTCT
>ENSG00000178828
CTCTCTTTCTTCTTTTTTTTTTTTGAGATGGAGTCTCGCTCTGTCACCCAGGCTGGAGTGAAGTGGCGCT
GTCTCTGCTCACTGCAACCTCTGCCTCACAGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTAGCTG
GGACTATGGGCGCGTGCCACCACACCCGGCTAATTTTTTTTATTTTGTTTTAGTAGAGACGGGATTTCAC
CATGTTAGCCAGGATGGTATCGATCTCCAGACCTAGTGATCCGCCTGCCTCGGCCTCCCAAAATGTTGGA
ATTATAGGCGTGAGCCACCGTGCCCAGCCTTTTCTTTCTTTTAAAATCTGTTTGCACCACAAAAGAATGA
GCTCTACAGGGATGGGGATCTTTGTTTATTTTGCCTGACACGTGATAGGTACTCAAGGATTATTTGCTGA
AATTGATGAAGAGTTCTCATTTCTGTAGTGAAAACAGCAGCTGTAGGAATGGTAACAGAGTAGACAAAGG
GCATTTTCAGGTGTTTTTGGTGTGCAAAGCTGCACCTCTGTGATATTGTTGGGGTTAAGAGAGCACTGGG
TATCCATAGCCACTAGCAGTACAGTCTTGGGCCAGTCACTTACCATTTTGGGGCTTGCTACCTTATCTAT
要把>ENSG00000179088下的序列提取出来并把所有序列变换成一行,然后从中提取第38位到89位之间的序列。谢谢 展开
>ENSG00000179088
TGGTGGTTTGCTGCATCTATCATCCCATCACCTAGGTATTAAGCCGAGCATGCATTAGCTATTTTTCCTA
ATGCCCTCCCTCCCCCAACCCCACCCCCCAACAGGCCCCAGTGCATATTGTTTCCCTCCCTGTGTCCATG
TATTCTCATTGTTCAGCTTCCATTTATAAGTGAGAACATGCAGTGTTTCTGTTTTCTGTTCTAGTGTTAG
TTTGCTGAGGATAATGGCTTCCAGCTCCATCCATGTACCTGCAAAGGCCATGATCTTGTTCCTTTTTATG
GCTGCATAGTATTCCATGGTGTATATGTACCACATTTTCTTTATCCAGTCTATCATTGATGGGCATTTGG
GTGGAGTTAGACTTTTAAATATTCCATACATAAGTGAGATCATGCAGTGTTTGTCCTTCTGTGACTGGTT
TATTTAACCTAATGTCCTCTAGGCTCATCCATATTGTCACAAGTGGGGAGATTTTCTTCCTTTTTTGTCT
>ENSG00000178828
CTCTCTTTCTTCTTTTTTTTTTTTGAGATGGAGTCTCGCTCTGTCACCCAGGCTGGAGTGAAGTGGCGCT
GTCTCTGCTCACTGCAACCTCTGCCTCACAGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTAGCTG
GGACTATGGGCGCGTGCCACCACACCCGGCTAATTTTTTTTATTTTGTTTTAGTAGAGACGGGATTTCAC
CATGTTAGCCAGGATGGTATCGATCTCCAGACCTAGTGATCCGCCTGCCTCGGCCTCCCAAAATGTTGGA
ATTATAGGCGTGAGCCACCGTGCCCAGCCTTTTCTTTCTTTTAAAATCTGTTTGCACCACAAAAGAATGA
GCTCTACAGGGATGGGGATCTTTGTTTATTTTGCCTGACACGTGATAGGTACTCAAGGATTATTTGCTGA
AATTGATGAAGAGTTCTCATTTCTGTAGTGAAAACAGCAGCTGTAGGAATGGTAACAGAGTAGACAAAGG
GCATTTTCAGGTGTTTTTGGTGTGCAAAGCTGCACCTCTGTGATATTGTTGGGGTTAAGAGAGCACTGGG
TATCCATAGCCACTAGCAGTACAGTCTTGGGCCAGTCACTTACCATTTTGGGGCTTGCTACCTTATCTAT
要把>ENSG00000179088下的序列提取出来并把所有序列变换成一行,然后从中提取第38位到89位之间的序列。谢谢 展开
2个回答
展开全部
#!/usr/bin/perl -w
use strict;
die "perl $0 <seq_file.fa>\n" unless(@ARGV == 1);
open IN,$ARGV[0];
$/=">";
<IN>;
$/="\n";
while(<IN>){
chomp $_;
my $seqName = $_;
$/=">";
my $seq = <IN>;
chomp $seq;
$/ = "\n";
if($seqName =~/ENSG00000179088/){
$seq =~s/[\r\n]//g;
my $result = substr($seq,37,52);
print "提取的子序列为:\n$result\n";
}
}
close IN;
使用的时候,将假设将脚本存为 picseq.pl
然后序列所在fa文件为 test.fa
运行的时候再命令行输入 picseq.pl test.fa
回车即可。
如果有疑问,可以随时追问,希望能够帮到你
use strict;
die "perl $0 <seq_file.fa>\n" unless(@ARGV == 1);
open IN,$ARGV[0];
$/=">";
<IN>;
$/="\n";
while(<IN>){
chomp $_;
my $seqName = $_;
$/=">";
my $seq = <IN>;
chomp $seq;
$/ = "\n";
if($seqName =~/ENSG00000179088/){
$seq =~s/[\r\n]//g;
my $result = substr($seq,37,52);
print "提取的子序列为:\n$result\n";
}
}
close IN;
使用的时候,将假设将脚本存为 picseq.pl
然后序列所在fa文件为 test.fa
运行的时候再命令行输入 picseq.pl test.fa
回车即可。
如果有疑问,可以随时追问,希望能够帮到你
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询