【发布时间】:2012-05-29 20:23:56
【问题描述】:
我有一个包含这些数据的文件 File1:
NC_009066 5239 5308 trnA(tgc) 2.10899859667e-09 -
NC_009066 5309 5382 trnN(gtt) 7.03000463545e-10 -
NC_009066 5422 5487 trnC(gca) 7.09999799728e-08 -
NC_009066 5487 5557 trnY(gta) 3.72200156562e-11 -
NC_009066 5549 7097 cox1 291081744.81 +
NC_009066 7109 7180 trnS2(tga) 1.83000043035e-09 -
NC_009066 7183 7256 trnD(gtc) 2.5720000267e-09 +
还有另一个fasta文件File2
> NC_009066,1,0-17045,
GCTATCGTAGCTTAATTAAAGCATAACACTGAAGATGTTAAGATGAACCCTAGAAA
我已将file1 逐行放入一个数组中,然后我可以通过在/\s+/ 上拆分每一行来访问每一列。
for $line(@array){
@column= split(/\s+/,$line);
# print $column[5]."\n";
$gene=substr($seq,$column[1],$column[2]);#$seq extracted from File2....}
但我想做的是从第一行取第二列,从第二行取第三列(substr($seq,5239,5382)),然后从第二行取第二列,从第三行取第三列(substr($seq,5309,5487)).....
最好的方法是什么?
【问题讨论】:
-
我考虑将来自@column 的所需数据放入一维数组中,因此新数组将如下所示 (5239,5308,trna,-,5309,5382,trnN,-...) 所以我在 $new_array[$i],$new_array[$i+5] 上做 substr
标签: arrays algorithm perl file multidimensional-array