1
我有一个叫snp.txt该文件是这样的:合并文件坐标的两个文件在python
chrom chromStart chromEnd name strand observed
chr1 259 260 rs72477211 + A/G single
chr1 433 433 rs56289060 + -/C insertion
chr1 491 492 rs55998931 + C/T single
chr1 518 519 rs62636508 + C/G single
chr1 582 583 rs58108140 + A/G single
我有第二个文件gene.txt
chrom chromStart chromEnd tf_title tf_score
chr1 200 270 NFKB1 123
chr1 420 440 IRF4 234
chr1 488 550 BCL3 231
chr1 513 579 TCF12 12
chr1 582 583 BAD170 89
的最终输出我想要的是:output.txt的
chrom chromStart chromEnd name strand observed tf_title tf_score
chr1 259 260 rs72477211 + A/G NFKB1 123
chr1 433 433 rs56289060 + -/C IRF4 234
chr1 491 492 rs55998931 + C/T BCL3 231
chr1 518 519 rs62636508 + C/G TCF12 12
chr1 582 583 rs58108140 + A/G BAD170 89
我希望能够做的关键是看gene.txt,并检查是否在日的rsnumber snp.txt的名字列位于由chrom,chromStart和chromEnd建立的相同区域。
例如:
在snp.txt 的RSID rs72477211的第一行是在位置259和260。
现在gene.txt之间CHR1,NFKB1也在CHR1但位置之间200和270, 这意味着rsid rs72477211位于NFKB1区域,所以在输出txt中记录了这一点。
我无法做到这一点在使用熊猫合并功能,我不知道哪里开始。 这些文件非常大,因此循环会非常低效。 有人可以帮忙吗?谢谢!
谢谢,你能解释一下,你指的是什么,chromStart_x和y? – CadisEtRama
合并的工作原理如下:chromstart和chromend都存在于两个数据框中,但我们仅合并名称。它会为结果数据框中的重复列添加后缀。看看合并文档 – Boud