タンパク質 ID を含むファイルから辞書のリストを作成するスクリプトを作成しようとしています。これは私が今まで書いたものです:
#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 の 1 つをキーとして持つ辞書のリストを作成したいと考えています。このスクリプトを実行すると、やりたいことを正確に実行しますが、入力ファイルの最初の行に対してのみです。入力ファイルのすべての行に対してこれを行うには、何を変更する必要がありますか?
タンパク質ファイルは次のようになります。
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