如何根据另一个文件中的列对文件进行排序?

时间:2016-05-18 10:15:12

标签: python python-3.x bioinformatics

我有一个文件,我想根据另一个文件中的列进行排序。两个文件都有一个公共列,排序应该根据第一个文件的排序方式。

例如: File_1包含:

chr2L   2808299 2808300 EOG698VMB   4.15912 +   1011

chr2L   5218259 5218260 EOG6ZPFGT   15.0025 +   91

chr2L   5329859 5329860 EOG62JPCT   30.1536 +   30

chr2L   6225049 6225050 EOG60024V   3.26788 +   29

chr2L   6255843 6255844 EOG61C7HF   12.6259 +   32

chr2L   6481023 6481024 EOG6CZC26   1.33686 +   176

chr2L   8522135 8522136 EOG6FN543   40.2544 +   142

chr2L   9769068 9769069 EOG6FBJDN   17.8248 +   15

chr2L   9782391 9782392 EOG6R24FN   9.50656 +   393

File_2包含:

chrXL_group1e   895799  895800  EOG67ST24   71.1687 +   62

chrXL_group1e   3113233 3113234 EOG6PVPKK   7.19303 +   847

chrXL_group1e   3424413 3424414 EOG6QC1SM   6.76991 +   81

chrXL_group1e   5698899 5698900 EOG651FCJ   93.5094 +   124

chrXL_group1e   6595546 6595547 EOG60K8KJ   28.349  +   185

chrXL_group1e   7594832 7594833 EOG6C2HX6   1.7771  +   2782

chrXL_group1e   8307304 8307305 EOG6NP7QS   229.754 +   35

chrXL_group1e   9922625 9922626 EOG6X3HMJ   8.8855  +   3744

chrXL_group1e   10297871 10297872 EOG6F7P63 2.70796 +   106

chrXL_group1e   11284647    11284648    EOG62Z5BX   282.474 +   4173

chr4_group5 213215  213216  EOG6J9NKZ   834.56  +   32

chrXR_group5    636614  636615  EOG6PVPK4   4.56969 +   152

我想根据File_1第4列(蛋白质ID)中给出的顺序对File_2的内容进行排序。 (示例中会有所不同。如果需要,我可以上传原始文件。) 我如何在 Python 中执行此操作?
我不认为蛋白质ID以任何特定方式排序。但是它们在File_1中的排序方式非常重要。

其他细节:

编程语言:Python 3.5.1

操作系统:Ubuntu 16.04 LTS

感谢您的回答。 :)

1 个答案:

答案 0 :(得分:-1)

函数get_grade()可以接收名为sorted的关键字参数,该参数是为列表中的每个元素返回可比较参数的函数。

如果您有两个列表,其中一个是File_1列,另一个是File_2列,则可以使用:

key