我正在嘗試編寫一個腳本,用於創建包含蛋白質ID的文件的字典列表。 這是我寫的到現在爲止:如何在此腳本的for循環中使用for循環?
#import packages
import sys
#get the file from the command line
map_file = sys.argv[1]
#create dictionaries containing the different proteins IDs
def get_mapping(map_file):
file = open(map_file)
result = list()
column_count = file.readline().split('\t')
n = len(column_count)
for i in range(n-1):
result.append({})
for line in file:
word = line.split('\t')
for w in range(n):
if word[n-1] <> word[0]:
result[n-2][word[n-1]] = word[0]
n = n-1
return result
print get_mapping(map_file)
所以輸入文件包含許多行每一行都包含特定蛋白質2-4個不同的ID。我想創建一個字典列表,其中第一個ID爲行的值爲其中一個ID爲鍵。 當我運行這個腳本它正是我想要它做的,但只爲輸入文件的第一行。我需要更改什麼,以便它可以對輸入文件中的每一行執行此操作?
的蛋白質文件是這樣的:
Ensembl_Protein_ID UniProt/SwissProt_Accession UniProt/TrEMBL_Accession RGD_ID
ENSRNOP00000000008 P18088 C9E895 2652
ENSRNOP00000000008 P18088 B3VQJ0 2652
ENSRNOP00000000009 D3ZEM1 1310201
ENSRNOP00000000025 B4F7C7
ENSRNOP00000000029 Q9ES39 620038
ENSRNOP00000000037 Q7TQM3 735156
ENSRNOP00000000052 O70352 Q6IN14 69070
ENSRNOP00000000053 Q9JLM2 68400
ENSRNOP00000000064 P97874 621589
ENSRNOP00000000072 P29419 621377
ENSRNOP00000000074 B2RZ28 1304584
ENSRNOP00000000078 D3ZDI7 1308022
ENSRNOP00000000080 Q5XI68 1305201
ENSRNOP00000000085 D3ZDH7
Ensembl_Protein_ID \t的UniProt/SwissProt_Accession \t的UniProt/TrEMBL_Accession \t RGD_ID ENSRNOP00000000008 \t \t P18088 C9E895 ENSRNOP00000000008 \t \t P18088 B3VQJ0 ENSRNOP00000000009 \t \t \t D3ZEM1 1310201 ENSRNOP00000000025 \t \t \t B4F7C7 ENSRNOP00000000029 \t Q9ES39 \t ENSRNOP00000000037 \t \t Q7TQM3 ENSRNOP00000000052 \t \t O70352 Q6IN14 ENSRNOP00000000053 \t \t Q9JLM2 ENSRNOP00000000064 \t \t P97874 621589 \t ENSRNOP00000000072 \t \t P29419 621377 \t ENSRNOP00000000074 \t \t \t B2RZ28 1304584 ENSRNOP00000000078 \t \t D3ZDI7 ENSRNOP00000000080 \t Q5XI68 \t ENSRNOP00000000085 \t \t D3ZDH7 – user2838069
根本不是,乾杯! – user2838069