gpt4 book ai didi

python - 查找 ID 坐标

转载 作者:行者123 更新时间:2023-11-30 22:42:55 28 4
gpt4 key购买 nike

我有 2 个文件,

1) A B       2) A,chr1,startA,endA
C D B,chr1,startB,endB
B A C,chr1,startC,endC
D,chr1,startD,endD

我想要的输出,

A chr1 startA endA B chr1 startB endB
C chr1 startC endC D chr1 startD endD
B chr1 startB endB A chr1 startA endA

我的尝试为我提供了第一个 ID 的字符、开始和结束,但我不知道如何关联和附加第二个 ID。

f1=open('input1','r')
f2=open('input2','r')
output = open('out.txt','w')
dictA= dict()
for line1 in f1:
listA = line1.strip('\n').split('\t')
dictA[listA[0]] = listA
for line1 in f2:
new_list=line1.rstrip('\r\n').split(',')
query=new_list[0]
chrom=new_list[1]
start=new_list[2]
end=new_list[3]
if query in dictA:
listA = dictA[query]
output.write(str(listA[0])+'\t'+str(listA[1])+'\t'+chrom+'\t'+start+'\t'+end+'\n')
output.close()

最佳答案

根据您想要的输出,我认为您可能会稍微落后。似乎将第二个文件的内容存储在字典中,然后使用第一个文件的内容在字典中查找数据更有意义,如下所示

import io

f1 = io.StringIO('A\tB\nC\tD\nB\tA\n')
f2 = io.StringIO('A,chr1,startA,endA\r\nB,chr1,startB,endB\r\nC,chr2,startC,endC\r\nD,chr1,startD,endD')

dictA = dict()
for line in f2:
temp = line.strip().split(',')
dictA[temp[0]] = temp[1:]

for line in f1:
id1, id2 = line.strip().split('\t')
print('\t'.join([id1] + dictA.get(id1, []) + [id2] + dictA.get(id2, [])))

运行此结果

A   chr1    startA  endA    B   chr1    startB  endB
C chr2 startC endC D chr1 startD endD
B chr1 startB endB A chr1 startA endA

如果我假设我有包含内容的file1.txt

A   B
C D
B A

file2.txt及其内容

A,chr1,startA,endA
B,chr1,startB,endB
C,chr1,startC,endC
D,chr1,startD,endD

然后我可以使用文件读取和写入方法来生成您的输出

f1 = open('file1.txt', 'r')
f2 = open('file2.txt', 'r')
output_file = 'output.txt'

dictA = dict()
for line in f2:
temp = line.strip().split(',')
dictA[temp[0]] = temp[1:]
with open(output_file, 'w') as fp:
for line in f1:
id1, id2 = line.strip().split('\t')
fp.write('\t'.join([id1] + dictA.get(id1, []) + [id2] + dictA.get(id2, [])) + '\n')

关于python - 查找 ID 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41959525/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com