我试图写一个Perl程序,它会分裂出一个FASTA头:到它|
分隔件我应该使用什么数据结构来存储.fasta头文件集合?
gi|4140243|dbj|AB022087.1|_Xenopus_laevis_mRNA_for_cytochrome_P450,_complete_cds,_clone_MC1
:
gi
4140243
dbj
AB022087.1
_Xenopus_laevis_mRNA_for_cytochrome_P450,_complete_cds,_clone_MC1
我可以做到这一点使用split
:
my @hits = split(/\|/, $hits);
my ($gi, $number, $gb, $id, $name);
foreach (@hits) {
$gi.= "$hits[0]\n";
$number .= "$hits[1]\n";
$gb .= "$hits[2]\n";
$id .= "$hits[3]\n";
$name .= "$hits[4]\n";
}
my @gi = split('\n', $gi);
my @number = split('\n', $number);
my @gb = split('\n', $gb);
my @id = split('\n', $id);
my @name = split('\n', $name);
现在每个标题的每个部分(包含在$hits
中)是单个数组中的一个元素。接下来我要做的是打印每个阵列的每个元素,以便我可以为每个阵列生成元素[0]的列表,每个阵列的元素[1] ...
我不确定这是否需要散列哈希或数组数组。
我对perl相当陌生,所以任何建议都会大有帮助。
我也知道,上述可能不是实现我想要的最光滑的方式 - 再次,任何意见将是伟大的!
嗨,谢谢你的回答。 $ hits包含多个由\ n分隔的标头 – fugu 2013-04-24 11:35:59
我更新了该帖子,并附上了该案例。 – 2013-04-24 12:10:28
好的 - 我会玩一玩。感谢您的有用链接呢! – fugu 2013-04-24 16:27:07