我有2個文件。我如何知道位置是否在使用python的區域中
文件A有3列:染色體,起始位置,結束位置。
CHR,START,END
chr1,1203245,1203374
chr1,1202020,1202213
chr1,1201293,1201465
chr1,1200844,1201128
chr1,1200527,1200585
文件B有2列:染色體,位置。
CHR,POS
chr1,1579264
chr1,1641372
chr1,3020521
chr2,2097836
chr3,2374462
這兩個文件都很大。
如何決定文件B的每個位置在文件A的任何區域中使用python?如果只有一個位置和一個區域,我可以編寫代碼,但我不知道區域列表。
Position is in a region
意味着CHR
應該是相同的,POS >= START and POS <= END
,例如,文件B的chr1,1203250
應在文件chr1,1203245,1203374
一個
我拿oscarbranson的建議,編寫代碼:
for i,r in B.iterrows():
B.loc[i, 'in_A'] = any((r.CHR == A.CHR) & (r.POS >= A.SATRT) & (r.POS <= A.END))
但兩者的2文件很大,代碼仍在運行。如果有什麼辦法可以讓這個更快?
您能通過編輯您的問題向我們展示任何輸入和輸出的例子嗎? –
我猜正則表達式會做。爲了給你舉個例子,我們必須知道POS列和START/END之間的關係。你願意再次更新你的問題,解釋什麼是比賽? –