用Perl编写一个程序,找到一个20,000,000左右的序列中,第n个碱基左右各300bp共600bp的碱基序列,谢谢神人
答案:2 悬赏:20 手机版
解决时间 2021-02-27 21:51
- 提问者网友:放下
- 2021-02-27 10:59
用Perl编写一个程序,找到一个20,000,000左右的序列中,第n个碱基左右各300bp共600bp的碱基序列,谢谢神人
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-02-27 12:31
substr($seq,$n-300,600);
** $seq 是你说的”一个20,000,000左右的序列“;$n 是你说的"第n个"
** $seq 是你说的”一个20,000,000左右的序列“;$n 是你说的"第n个"
全部回答
- 1楼网友:何以畏孤独
- 2021-02-27 14:11
#!/usr/bin/perl -w
use strict;
die "perl $0 <原始fa文件> <欲存放fa文件> \n" unless(@argv == 2);
open in,$argv[0];
open out,">$argv[1]";
$/ = ">";
<in>;
$/ = "\n";
while(<in>){
my $name = $_;
chomp $name;
$/ = ">";
my $seq = <in>;
chomp $seq;
$/ = "\n";
$seq =~s/\n//g;
next if(length($seq) <= 1000);
print out ">$name\n$seq\n";
print "$name\tlen:",length($seq),"\n";
}
比如我这个脚本名字保存为runa.pl
然后我要将a.fa文件中序列长于1000bp的取出来放到b.fa中,那么我直接运行
perl runa.pl a.fa b.fa
即可。
我测试过了可以用 如果你使用中有问题再联系我吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯