ASCARIS / code /uniprotSequenceMatch.py
fatmacankara's picture
Duplicate from fatmacankara/ASCARIS
c2a02c6
raw
history blame
1.59 kB
from add_sequence import *
import pandas as pd
import numpy as np
def uniprotSequenceMatch(data):
print('Retrieving UniProt sequences...\n')
canonical_fasta = pd.DataFrame(columns=['uniprotID', 'uniprotSequence'])
up_list = list(set(data['uniprotID'].to_list()))
for i in range(len(up_list)):
canonical_fasta.at[i, 'uniprotSequence'] = get_uniprot_seq(up_list[i])
canonical_fasta.at[i, 'uniprotID'] = up_list[i]
canonical_fasta = canonical_fasta.drop_duplicates()
isoform_fasta = pd.DataFrame(columns=['uniprotID', 'isoformSequence'])
iso_dict = []
for i in range(len(up_list)):
iso_dict.append(get_isoforms(up_list[i]))
index = 0
for i in iso_dict:
for key, val in i.items():
isoform_fasta.at[index, 'uniprotID'] = key
isoform_fasta.at[index, 'isoformSequence'] = val
index += 1
isoform_fasta = isoform_fasta.drop_duplicates()
for i in isoform_fasta.index:
isoform_fasta.at[i, 'whichIsoform'] = isoform_fasta.at[i, 'uniprotID'][7:10].strip()
isoform_fasta.at[i, 'uniprotID'] = isoform_fasta.at[i, 'uniprotID'][0:6]
print('Sequence files created...\n')
data = data.merge(canonical_fasta, on='uniprotID', how='left')
data = data.replace({'': np.NaN, 'nan': np.NaN})
data['whichIsoform'] = np.NaN
data['wt_sequence_match'] = np.NaN
not_match_in_uniprot = data[data.uniprotSequence.isna()]
uniprot_matched = data[~data.uniprotSequence.isna()]
return not_match_in_uniprot, uniprot_matched, canonical_fasta, isoform_fasta