大神们,本人新手,求一个perl程序,谢谢
答案:2 悬赏:50 手机版
解决时间 2021-11-25 11:00
- 提问者网友:低吟詩仙的傷
- 2021-11-25 01:26
大神们,本人新手,求一个perl程序,谢谢
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 2021-11-25 02:58
#!/usr/bin/perl -w
use strict;
die "perl $0\n" unless(@ARGV == 1);
open IN,$ARGV[0];
$/=">";
;
$/="\n";
while(){
chomp $_;
my $seqName = $_;
$/=">";
my $seq =;
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
open IN,$ARGV[0];
$/=">";
$/="\n";
while(
chomp $_;
my $seqName = $_;
$/=">";
my $seq =
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
回车即可。
如果有疑问,可以随时追问,希望能够帮到你
全部回答
- 1楼网友:酒醒三更
- 2021-11-25 03:07
$/=">";
<>;
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";
}
}
<>;
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";
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯