fasta文件有其固定的格式,如果某些序列格式错误或者出现一些不该出现的字符(例如乱码),就需要过滤掉这些序列。过滤方法比较简单,一个脚本就可以完成,避免重复的手动删除。
脚本运行命令:
perl fasta.filter.pl -in in.fasta -o out.fasta
其中 :
fasta.filter.pl:脚本名称;
-in:输入选项,后跟输入文件名称;
-o:输出选项,后跟输出文件名称。
脚本如下:
use Bio::SeqIO;
use Bio::Seq;
use Getopt::Long;
my %opts;
GetOptions(\%opts,"in=s","o=s","h");
my$in = Bio::SeqIO->new(-file => "$opts{in}" ,
-format => 'Fasta');
my$out = Bio::SeqIO->new(-file => ">$opts{o}" ,
-format => 'Fasta');
while(my $seq = $in->next_seq()){
my ($id,$seqence,$desc)=($seq->id,$seq->seq,$seq->desc);
next if($seqence eq "");
next if($seqence =~ [^ATCGNatcgn]);
$out->write_seq($seq);
$out->close();
}
$in->close();
$out->close();
此外,我们在网易云课堂上有各种教学视频,有兴趣可以了解一下:
1. 文章越来越难发?是你没发现新思路,基因家族分析发2-4分文章简单快速,学习链接:基因家族分析实操课程
2. 转录组数据理解不深入?图表看不懂?点击链接学习深入解读数据结果文件,学习链接:转录组(有参)结果解读;转录组(无参)结果解读
3. 转录组数据深入挖掘技能-WGCNA,提升你的文章档次,学习链接:WGCNA-加权基因共表达网络分析
4. 转录组数据怎么挖掘?学习链接:转录组标准分析后的数据挖掘
6. 更多学习内容:linux、perl、R语言画图,更多免费课程请点击以下链接:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!