我有一个包含 7 列的文件,一个具有染色体区域的 GFF 文件。我想将 REGION ="exon" 的行折叠到文件中的一行。必须根据每个区域重叠的区域折叠该行其他。
REGION START END SCORE STRAND FRAME ATTRIBUTE
exon 26453 26644 . + . Transcript "XM_092971"; Name "XM_092971"
exon 26842 27020 . + . Transcript "XM_092971"; Name "XM_092971"
exon 30355 30899 . - . Transcript "XM_104663"; Name "XM_104663"
GS_TRAN 30355 34083 . - . GS_TRAN "Hs22_30444_28_1_1"; Name "Hs22_30444_28_1_1"
snp 30847 30847 . + . SNP "rs2971719"; Name "rs2971719"
exon 31012 31409 . - . Transcript "XM_104663"; Name "XM_104663"
exon 34013 34083 . - . Transcript "XM_104663"; Name "XM_104663"
exon 40932 41071 . + . Transcript "XM_092971"; Name "XM_092971"
snp 44269 44269 . + . SNP "rs2873227"; Name "rs2873227"
snp 45723 45723 . + . SNP "rs2227095"; Name "rs2227095"
exon 134031 134495 . - . Transcript "XM_086913"; Name "XM_086913"
exon 134034 134457 . - . Transcript "XM_086914"; Name "XM_086914"
看上面的示例数据,只有最后两行可以合并为一行。所以,新行将成为。
exon 134031 134495 . - . Transcript "XM_086913"; Name "XM_086913"
万一,另一行的结尾会大于它的前一个,在这种情况下,那将是 END 区域。基本上,如果有任何重叠,则取较早开始的区域和较晚结束的区域。
这样的实例可以有多行,这里只有最后 2 行。一件事是 ATRRIBUTE 列肯定会为这些行显示不同的成绩单名称,在其他情况下基本相同。
我必须在 Python 中执行此操作,而且我是 Python 的初学者。