ファイル中の座標の処理
下記のような座標を持つファイルをrubyで処理したいのですが、どのようにしたらいいか検討がつかず頓挫しています。アイデアを頂けますか。
処理前
group start end id distance value1 value2
A 5817 7756 id1 1939 0 3
A 5817 7754 id2 1937 -2 1
A 5817 7752 id3 1935 -4 1
A 5817 7747 id4 1930 -9 1
A 5817 10699 id5 1938 -50 1
A 5819 7756 id6 1937 -2 1
A 5819 7755 id7 1936 -3 1
A 5828 7756 id8 1928 -11 1
A 5983 8180 id9 2197 1 2
A 5983 8175 id10 2192 -5 2
A 5983 8174 id11 2191 -6 1
A 5984 8175 id12 2191 -6 1
上記のような重なりを持つ座標に関して、例として
(id2;end – id1;end) – (id2;start – id1;start) = id2;value1
(id3;end – id1;end) – (id3;start – id1;start) = id3;value1
というような条件を満たせば、id1とid2及びid3は同じグループに所属するとみなし、グループ内で一番大きいvalue1を持つid1のvalue2にそのカウントを足していきたいのです。
処理後
group start end id length value1 value2
A 5817 7756 id1 1939 0 9
A 5817 10699 id5 1938 -50 1
A 5983 8180 id9 2197 1 5
以上、ご教示の程、宜しくお願いいたします。