def get_mut_costs(aas): codon_pairs = get_relevant_codonpairs() aa_muts = DataFrame({(i, j): { 'aa_start': aas[i], 'aa_end': aas[j] } for i, j in codon_pairs}).T aa_props = read_csv('./resource/aa_s.csv').set_index('Code') aa_muts = aa_muts.join(aa_props.rename(columns={c:c+'_s' for c in aa_props.columns}), on='aa_start')\ .join(aa_props.rename(columns={c:c+'_e' for c in aa_props.columns}), on='aa_end') for col in aa_muts.columns: if col.endswith('_s'): aa_muts[col.replace('_s', '_d')] = aa_muts[col.replace( '_s', '_e')].subtract(aa_muts[col]) aa_muts = aa_muts[[c for c in aa_muts.columns if c.endswith('_d')]] aa_muts.index.names = ['aa_start', 'aa_end'] aa_muts.Hyd_d = aa_muts.Hyd_d.abs() aa_muts.PR_d = aa_muts.PR_d.abs() return aa_muts