新手求助:用perl处理fasta文件
我刚刚学习perl语言,之前是生物背景对编程不是很熟悉。现在要处理一上万条肽段的fasta格式的文件,需要统计每个肽段的长度。我希望写成一个脚本程序,但是读入不是很会写,...
我刚刚学习perl语言,之前是生物背景对编程不是很熟悉。现在要处理一上万条肽段的fasta格式的文件,需要统计每个肽段的长度。我希望写成一个脚本程序,但是读入不是很会写,希望高手指点一二,小妹不胜感激
展开
3个回答
展开全部
不需要你自己重新来写,单枪匹马,刀耕火种,不是一个好的办法。
正好我也在做bioinformatics这块儿,学了点bioperl,我帮你写了个小脚本,用这个工具能很快捷的搞定你的序列!!
我大致给你说下,具体自己上bioperl网站看How To。
现在假定你的序列都为fasta格式,先用
cat *.fasta > single_all_fasta.fasta
将所有fasta序列整合到一个fasta格式中。
然后编写bioperl脚本(你要事先安装bioperl,在debian和ubuntu下很简单,自带源里就有,直接sudo apt-get install bioperl即可,很方便),你参考下:
脚本使用方法为:
perl get_fasta_length.pl single_all_fasta.fasta length.result
脚本我没有测试,一些小错误你可以修改下:
#!/usr/bin/perl -w
use strict;
use Bio::SeqIO;
my $in = shift; #读取文件名称
my $out = shift; #读取输出文件名称
my $flag = 0; #计数
open WH,">> $out";
$seqio_obj= Bio::SeqIO->new (-file =>'$in',
-f =>'fasta');
while($seq_obj = $seqio_obj->next_seq() ) {
print WH "$seq_obj->desc \t $seq_obj->length\n" ;
print "正在处理第$flag条序列...\n";
$flag++;
}
print "完毕,共处理$flag条序列!结果保存至$out文件\n";
close WH;
建议:
学好bioinfo,不会perl不行,不会bioperl更不行,它不仅可以轻松批量处理序列格式,解析blast结果,甚至在脚本里做blast,而且还可以操作biosql数据库。呵呵 建议深入学习下。
正好我也在做bioinformatics这块儿,学了点bioperl,我帮你写了个小脚本,用这个工具能很快捷的搞定你的序列!!
我大致给你说下,具体自己上bioperl网站看How To。
现在假定你的序列都为fasta格式,先用
cat *.fasta > single_all_fasta.fasta
将所有fasta序列整合到一个fasta格式中。
然后编写bioperl脚本(你要事先安装bioperl,在debian和ubuntu下很简单,自带源里就有,直接sudo apt-get install bioperl即可,很方便),你参考下:
脚本使用方法为:
perl get_fasta_length.pl single_all_fasta.fasta length.result
脚本我没有测试,一些小错误你可以修改下:
#!/usr/bin/perl -w
use strict;
use Bio::SeqIO;
my $in = shift; #读取文件名称
my $out = shift; #读取输出文件名称
my $flag = 0; #计数
open WH,">> $out";
$seqio_obj= Bio::SeqIO->new (-file =>'$in',
-f =>'fasta');
while($seq_obj = $seqio_obj->next_seq() ) {
print WH "$seq_obj->desc \t $seq_obj->length\n" ;
print "正在处理第$flag条序列...\n";
$flag++;
}
print "完毕,共处理$flag条序列!结果保存至$out文件\n";
close WH;
建议:
学好bioinfo,不会perl不行,不会bioperl更不行,它不仅可以轻松批量处理序列格式,解析blast结果,甚至在脚本里做blast,而且还可以操作biosql数据库。呵呵 建议深入学习下。
展开全部
本来perl就小众,还要有生物背景就更难了,不知道你的数据格式是什么样的,怎么指点。还有肽段是怎么确认的,有什么特征,你的问题太专业了最好还是去专业的生物论坛问吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很容易了。
请到yunbio.com提问就行咯。
请到yunbio.com提问就行咯。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询