假设我有一个正在用 Ruby 处理的染色体数据文件,
#Base_ID Segment_ID Read_Depth
1 100
2 800
3 seg1 1900
4 seg1 2700
5 1600
6 2400
7 200
8 15000
9 seg2 300
10 seg2 400
11 seg2 900
12 1000
13 600
...
我将每一行粘贴到数组的哈希中,我的键取自第 2 列 Segment_ID,我的值取自第 3 列 Read_Depth,给了我
mr_hashy = {
"seg1" => [1900, 2700],
"" => [100, 800, 1600, 2400, 200, 15000, 1000, 600],
"seg2" => [300, 400, 900],
}
引物是由上述数据中的两个连续行组成的小段,位于每个常规段之前和之后。常规段的 Segment_ID 具有非空字符串值,并且长度不同,而第二列中具有空字符串的行是引物的一部分。引物片段的长度始终相同,为 2。如上所示,Base_ID 的 1、2、5、6、7、8、12、13 是引物的一部分。总共有四个引物片段存在于上述数据中。
我想做的是,在第 2 列 Segment_ID 中遇到带有空字符串的行时,将 READ_DEPTH 添加到我的哈希中的适当元素中。例如,我从上面想要的结果看起来像
mr_hashy = {
"seg1" => [100, 800, 1900, 2700, 1600, 2400],
"seg2" => [200, 15000, 300, 400, 900, 1000, 600],
}