【发布时间】:2011-03-02 06:21:51
【问题描述】:
我对 Perl 比较陌生,仅将其用于将小文件转换为不同格式以及在程序之间提供数据。
现在,我需要加强一点。我有一个 5,905 行长的 DNA 数据文件,每行有 32 个字段。字段不受任何限制,并且在行内长度不同,但每个字段在所有 5905 行上的大小相同。
我需要将文件中的每一行输入到一个单独的数组中,并将该行中的每个字段存储为自己的变量。我在存储一行时没有问题,但是在整个文件中连续存储每一行时遇到了困难。
这就是我将整个数组的第一行分成单个变量的方式:
my $SampleID = substr("@HorseArray", 0, 7);
my $PopulationID = substr("@HorseArray", 9, 4);
my $Allele1A = substr("@HorseArray", 14, 3);
my $Allele1B = substr("@HorseArray", 17, 3);
my $Allele2A = substr("@HorseArray", 21, 3);
my $Allele2B = substr("@HorseArray", 24, 3);
...等等。
我的问题是:1)我需要将 5905 行中的每一行存储为一个单独的数组。 2) 我需要能够根据样本 ID 引用每一行,或者根据总体 ID 引用一组行并对其进行排序。
一旦在变量中定义数据,我就可以很好地对数据进行排序和操作,我只是在用这些字段中的每一个构造一个多维数组时遇到了麻烦,所以我可以随意引用每一行。非常感谢任何帮助或指导。我已经翻遍了这里的问答部分,但还没有找到我的问题的答案。
【问题讨论】:
-
请发布一些您正在使用的数据。
-
我不确定是否有stackoverflow上的文件上传小程序,但我会发布文本限制允许:00292-97 py17 97101 129129 152164136163131224461109 124024610109 1241246101C000000 000000 00293-97 py18 89 97 129139 148154 179179 84 90 132134 167169 222222 105105 126128 164170 284292 000000 000000 000000 00294-97 PY17 91 97 129133 152154 177183 100100 134140 161163 240240 103105 120128 164166 290292 000000 000000 000000 00295-97 py18 97 97 131133 148162 177179 84100 132134 161167 240252 111111 124128 164166 284290 000000 000000 000000
-
post cmets 部分不存在格式,但这是 4 行 DNA 数据。样本 ID 以行开头,分别为 00292-97、00293-97、00294-97、00295-97。下一个字段是人口 ID(动物居住的地方),其他 30 个字段中的每一个都是我研究的特定 DNA 数据。
-
您可以编辑您的问题以在此处发布示例数据(带格式)。
-
@HorseArray中有什么内容?它是文件中的一行吗?整个文件?