【发布时间】:2014-02-21 17:20:52
【问题描述】:
我有一个显示四列的文件:
chr 开始结束脚本
像这样:
chrI 128980 129130 F53G12.5b
chrI 132280 132430 F53G12.5c.2
chrI 132280 132430 F53G12.5a
chrI 132280 132430 F53G12.5b
chrI 132280 132430 F53G12.5c.1
chrI 133600 133750 F53G12.5c.2
chrI 133600 133750 F53G12.5a
chrI 133600 133750 F53G12.5b
chrI 133600 133750 F53G12.5c.1
chrI 136240 136390 F53G12.4
chrI 139100 139250 F53G12.3
chrI 163220 163370 F56C11.2a
chrI 163220 163370 F56C11.2b
chrI 173900 174050 F56C11.6a
chrI 173900 174050 F56C11.6b
chrI 173900 174050 F56C11.6c
chrI 182240 182390 F56C11.3
chrI 184080 184230 Y48G1BL.2a
chrI 190720 190870 Y48G1BL.2a
并且许多区域(由 chr start end 描述)被重复,因为它们映射到超过 1 个转录本
例如:
chrI 133600 133750 F53G12.5c.2
chrI 133600 133750 F53G12.5a
chrI 133600 133750 F53G12.5b
chrI 133600 133750 F53G12.5c.1
我想要的是一个代码,它采用具有相同列 1、2、3 的行并从中获取第 4 列的最短公共部分(在本例中为 F53G12.5)并输出一个精简条目,即:
chrI 133600 133750 F53G12.5
或者例如:
chrI 83280 83430 Y48G1C.10a
chrI 90420 90570 Y48G1C.10b
chrI 90420 90570 Y48G1C.10c
chrI 90420 90570 Y48G1C.10a
应该给
chrI 83280 83430 Y48G1C.10a
chrI 90420 90570 Y48G1C.10
您对此有什么建议吗?非常感谢
【问题讨论】:
-
对于我们非生物信息学家(!),您的意思是找到第 1,2 和第 3 列都相同的行,然后打印第 4 列中所有它们共有的最短部分?
-
是的!就是这样。感谢观看
-
有没有这样的日期
chrI 83280 83430 Y48G1C.10a和chrI 90420 90570 Y48G1C.9a,你需要得到什么结果?
标签: python perl unix awk bioinformatics