Source code for transplanttoolbox_victor.reverse_conversion

#! usr/bin/python 

import os
import re
import requests   
import transplanttoolbox_victor.vxm_hla
from transplanttoolbox_victor.vxm_hla import allele_truncate

ag_to_allele_dict = {}
UA_eq_dict = {}


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
UNOS_UA_eq_filename = os.path.join(BASE_DIR,"transplanttoolbox_victor/UNOS_4-10_ag_equivalencies.csv")
UNOS_UA_eq_file = open(UNOS_UA_eq_filename, 'r')

for row in UNOS_UA_eq_file:
	if row.startswith("Antigen"):
		continue
	else:
		row = row.strip("\n")
		row_split = row.split(",")
		ua_ag = row_split[0]
		ua_ag_eqs = row_split[1:]
		ua_ag_eqs = list(filter(None, ua_ag_eqs))
		UA_eq_dict[ua_ag] = ua_ag_eqs
#print(UA_eq_dict)

UNOS_conversion_table_filename = os.path.join(BASE_DIR,"transplanttoolbox_victor/UNOS_conversion_table_with_rules.csv")
UNOS_conversion_table_file = open(UNOS_conversion_table_filename, 'r')


for row in UNOS_conversion_table_file:
	expression_character = ""
	if row.startswith("Allele"):
		continue 
	else:
		allele = row.split(',')[0]
		allele_4d = transplanttoolbox_victor.vxm_hla.allele_truncate(allele)
		antigen = row.split(',')[1]
		rule = row.split(',') [2]
		bw4_6 = row.split(',')[3]
		
		if antigen in ag_to_allele_dict.keys():
			if allele_4d in ag_to_allele_dict[antigen]:
				continue
			else:	

				ag_to_allele_dict[antigen].append(allele_4d)

		else:
			ag_to_allele_dict[antigen] = [allele_4d]	 


#print(ag_to_allele_dict)

final_dict = {}
#ag_list = []

#for ag in ag_to_allele_dict.keys():
	#ag_list.append(ag)
d = {}

for ag in ag_to_allele_dict.keys():
	allele_list = []
	d = {}
	if ag in UA_eq_dict.keys():
		ag_eqs = UA_eq_dict[ag]
		for ages in ag_eqs:
			ages = ages.strip()
			alleles = ag_to_allele_dict[ages]
			d[ages] = [alleles]

			#allele_list.append(alleles)
		
		#allele_list = [item for sublist in allele_list for item in sublist]
		#allele_list = allele_list.sort()
		#print(type(allele_list))
		final_dict[ag] = d

	else:
		final_dict[ag] = ag_to_allele_dict[ag]		
#print(final_dict)

[docs]def map_single_ag_to_alleles(antigen): allele_list = {} allele_only_list = [] if antigen in final_dict: allele_list = final_dict[antigen] for i in allele_list.values(): allele_only_list.append(i) flat_list = [item for sublist in allele_only_list for item in sublist] flat_list = [item for sublist in flat_list for item in sublist] return flat_list