永发信息网

用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个"
全部回答
  • 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 即可。 我测试过了可以用 如果你使用中有问题再联系我吧
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯