def find_similar(self, gfe, features, imgtdb_version): """ creates GFE from HLA sequence and locus :param locus: string containing HLA locus. :param sequence: string containing sequence data. :return: GFEobject. """ if is_classI(gfe): gfe_dict = self.breakup_gfe(gfe) [locus, feature_accessions] = gfe.split("w") if self.gfe2hla: exon23 = "-".join([gfe_dict["EXON-2"], gfe_dict["EXON-3"]]) df = self.gfe2hla[locus][(self.gfe2hla[locus]['EXON23'] == exon23) & (self.gfe2hla[locus]['DB'] == imgtdb_version)][['GFE', 'HLA']]\ .reset_index() return self.create_typing(df, gfe, features) else: cypher = similar_gfe_classI(gfe, gfe_dict["EXON-2"], gfe_dict["EXON-3"], imgtdb_version) similar_data = self.graph.run(cypher).to_data_frame() return self.create_typing(similar_data, gfe, features) elif is_classII(gfe): gfe_dict = self.breakup_gfe(gfe) [locus, feature_accessions] = gfe.split("w") if self.gfe2hla: exon2 = gfe_dict["EXON-2"] df = self.gfe2hla[locus][(self.gfe2hla[locus]['EXON2'] == exon2) & (self.gfe2hla[locus]['DB'] == imgtdb_version)][['GFE', 'HLA']]\ .reset_index() return self.create_typing(df, gfe, features) else: cypher = similar_gfe_classII(gfe, gfe_dict["EXON-2"], imgtdb_version) similar_data = self.graph.run(cypher).to_data_frame() return self.create_typing(similar_data, gfe, features) elif is_kir(gfe): return self.find_gfe_kir(gfe, features) else: return
def test_002_iskir(self): self.assertTrue(is_kir('KIR*3DL1')) self.assertFalse(is_kir('exon-3')) pass