我有这种数据,需要(1)检索每个集群中的第一个元素(每个“数字簇”中的 5 个元素,用“:”分隔),(2)每组每 3 个元素对检索到的元素进行分组。
chr1 69270 . A G 1/1:208,34:244:14.96:118,15,0 0/1:186,51:241:8.72:80,0,9 0/0:226,1:236:3.01:0,3,30 ./. 1/1:209,35:250:12:116,12,0 ./. 1/1:186,53:242:14.97:126,15,0 0/0:245,0:248:3.01:0,3,33 1/1:182,60:243:23.95:201,24,0
我相信有更好的方法来做到这一点。但到现在为止,我只能想到使用野蛮的武力,这总是不好的。另一种选择是使用动态标量,但本质上动态标量将完全按照下面的坏代码所做的事情。我没有看到太多改进,stackoverflow 的其他人说使用动态标量(也)总是不好的。
我仍在阅读 perl 开始,所以不知道还有哪些其他选项可用。任何帮助将不胜感激。
my @genotype1 = split (/:/, $original_line[6]);
my @genotype2 = split (/:/, $original_line[7]);
my @genotype3 = split (/:/, $original_line[8]);
my @genotype4 = split (/:/, $original_line[9]);
my @genotype5 = split (/:/, $original_line[10]);
my @genotype6 = split (/:/, $original_line[11]);
my @genotype7 = split (/:/, $original_line[12]);
my @genotype8 = split (/:/, $original_line[13]);
my @genotype9 = split (/:/, $original_line[14]);
my @trio1 = ($genotype1[0], $genotype2[0], $genotype3[0]);
my @trio2 = ($genotype4[0], $genotype5[0], $genotype6[0]);
my @trio3 = ($genotype7[0], $genotype8[0], $genotype9[0]);