我試圖寫一個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