我有兩個文件:一個& B.Python的 - 如何在一個文件中匹配另一個文件中的行排序排序順序
文件是製表符分隔的,具有特定的排序順序。我想對文件B中的所有行進行排序,以便兩個文件中的所有行完全匹配。
這裏是文件(即排序的文件)的格式:
#chr #start #end #name #score #strand
chr1 161427010 161427243 Larp7-Chip.MACS2_peak_9704 0.0 .
chr1 161423805 161424053 Larp7-Chip.MACS2_peak_9703 0.0 .
chr1 161429385 161429489 Larp7-Chip.MACS2_peak_9705 0.0 .
下面是文件B(我要排序的文件)的格式:
#chr #start #end #name #score #strand #genechr #genestart #geneend #genename #genescore #genestrand
chr1 1057669 1058006 Larp7-Chip.MACS2_peak_175 0 . chr1 1017198 1051736 C1orf159 0 -
chr1 1058881 1058914 Larp7-Chip.MACS2_peak_176 0 . chr1 1017198 1051736 C1orf159 0 -
chr1 1063389 1063653 Larp7-Chip.MACS2_peak_181 0 . chr1 1072397 1079434 LINC01342 0 +
由於你可以看到文件B有比文件A更多的信息,這就是爲什麼我需要匹配排序順序,這樣我就可以從文件B awk重要的信息。
本質上是我的輸出(我們將其稱爲文件C) SH烏爾德這個樣子:
#chr #start #end #name #score #strand #genechr #genestart #geneend #genename #genescore #genestrand
chr1 161427010 161427243 Larp7-Chip.MACS2_peak_9704 0 . chr1 161475205 161489360 FCGR2A 0 +
chr1 161423805 161424053 Larp7-Chip.MACS2_peak_9703 0 . chr1 161475205 161489360 FCGR2A 0 +
chr1 161429385 161429489 Larp7-Chip.MACS2_peak_9705 0 . chr1 161475205 161489360 FCGR2A 0 +
注意:我不能使用的第四列匹配和排序的文件。有多個重複項,因此會導致問題。排序順序必須與前三列匹配。
編輯:爲了清楚起見,文件A具有關於人類基因組中增強子區域的信息。文件B具有相同的增強子信息,但是具有關於與每個增強子區域相鄰的相關基因的額外信息。
我想輸出一個新的文件,它具有文件B中的所有信息,但遵循與文件A相同的行順序。兩個項目的數量相同。
這是可能在Python 3中做的嗎?我對編程頗爲陌生,但有了一點幫助,我應該可以做到這一點。這也是我在工作中非常常見的任務,所以讓這個腳本爲將來鋪設好將是非常棒的!
謝謝!
排序依據是什麼?我不明白訂單... – Bharel
前6列是爲了顯示增強子區域在人類基因組中的位置。第二組6列顯示它們相關的附近基因。 我想要排序,以便輸出文件具有與文件A相同的行順序(相同的前6列),但有來自文件B的相關基因的信息。我把一個編輯在主要帖子嘗試並澄清一點,如果這不完全有幫助,我很抱歉。 – System
如果您給每種文件格式的列名稱,它可能會更容易(理解問題更有幫助)。目前,您可以參考*前三列*,這兩列文件中包含不同的數據。回想一下關係數據庫:確定一個候選關鍵字。 – dhke