Perl生信日常编程-从fa文件批量根据id列表提取序列
Posted 沈梦圆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl生信日常编程-从fa文件批量根据id列表提取序列相关的知识,希望对你有一定的参考价值。
示例文件
从一个fasta文件中根据多个id列表批量提取对应的序列存为独立的fasta文件。
ID列表如下图所示,格式是“No:空格ID空格ID”; 要求根据每行的ID提取一次,并且输出为No.fa文件
代码记录
#! /usr/bin/perl -w
use strict;
my($lines,@lines,$line_nums,@b,$j);
open(ID,"count_all");
@lines = <ID>;
$line_nums = @lines;
foreach $_(@lines){
chomp;
@b=split/\s/;
$b[0]=~s/://;
#print "$b[0]\n";
open(FW,">$b[0].txt");
for ($j=1;$j<@b ;$j++) {
print FW "$b[$j]\n";
# 调用了爪爪的seqkit,因为懒得把以前写的代码加进来,这个方法更快嘛
system("~/software/seqkit grep -f $b[0].txt ../total.faa >$b[0].fa")
}
close(FW);
}
~ 爪爪的工具很棒的哦 ~
以上是关于Perl生信日常编程-从fa文件批量根据id列表提取序列的主要内容,如果未能解决你的问题,请参考以下文章