大神们,本人新手,求一个perl程序,谢谢

序列信息如下:>ENSG00000179088TGGTGGTTTGCTGCATCTATCATCCCATCACCTAGGTATTAAGCCGAGCATGCATTAGCTAT... 序列信息如下:

>ENSG00000179088
TGGTGGTTTGCTGCATCTATCATCCCATCACCTAGGTATTAAGCCGAGCATGCATTAGCTATTTTTCCTA
ATGCCCTCCCTCCCCCAACCCCACCCCCCAACAGGCCCCAGTGCATATTGTTTCCCTCCCTGTGTCCATG
TATTCTCATTGTTCAGCTTCCATTTATAAGTGAGAACATGCAGTGTTTCTGTTTTCTGTTCTAGTGTTAG
TTTGCTGAGGATAATGGCTTCCAGCTCCATCCATGTACCTGCAAAGGCCATGATCTTGTTCCTTTTTATG
GCTGCATAGTATTCCATGGTGTATATGTACCACATTTTCTTTATCCAGTCTATCATTGATGGGCATTTGG
GTGGAGTTAGACTTTTAAATATTCCATACATAAGTGAGATCATGCAGTGTTTGTCCTTCTGTGACTGGTT
TATTTAACCTAATGTCCTCTAGGCTCATCCATATTGTCACAAGTGGGGAGATTTTCTTCCTTTTTTGTCT
>ENSG00000178828
CTCTCTTTCTTCTTTTTTTTTTTTGAGATGGAGTCTCGCTCTGTCACCCAGGCTGGAGTGAAGTGGCGCT
GTCTCTGCTCACTGCAACCTCTGCCTCACAGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTAGCTG
GGACTATGGGCGCGTGCCACCACACCCGGCTAATTTTTTTTATTTTGTTTTAGTAGAGACGGGATTTCAC
CATGTTAGCCAGGATGGTATCGATCTCCAGACCTAGTGATCCGCCTGCCTCGGCCTCCCAAAATGTTGGA
ATTATAGGCGTGAGCCACCGTGCCCAGCCTTTTCTTTCTTTTAAAATCTGTTTGCACCACAAAAGAATGA
GCTCTACAGGGATGGGGATCTTTGTTTATTTTGCCTGACACGTGATAGGTACTCAAGGATTATTTGCTGA
AATTGATGAAGAGTTCTCATTTCTGTAGTGAAAACAGCAGCTGTAGGAATGGTAACAGAGTAGACAAAGG
GCATTTTCAGGTGTTTTTGGTGTGCAAAGCTGCACCTCTGTGATATTGTTGGGGTTAAGAGAGCACTGGG
TATCCATAGCCACTAGCAGTACAGTCTTGGGCCAGTCACTTACCATTTTGGGGCTTGCTACCTTATCTAT

要把>ENSG00000179088下的序列提取出来并把所有序列变换成一行,然后从中提取第38位到89位之间的序列。谢谢
展开
 我来答
laohu2862
2013-04-28 · TA获得超过1245个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:640万
展开全部
#!/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
回车即可。
如果有疑问,可以随时追问,希望能够帮到你
百度网友09011f0
2013-04-28 · TA获得超过523个赞
知道小有建树答主
回答量:962
采纳率:0%
帮助的人:660万
展开全部
$/=">";
<>;
while(<>){

chomp;
@tmp=split/\n/,$_,2;
if ($tmp[0] eq ENSG00000179088){
$tmp[1]=~s/\s+//g;
print ">$tmp[0]\n$tmp[1]\n";
$seq=substr($tmp[1],37,52);
print "$seq\n";
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式