我有两个文件:一个& 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