def c_to_p(self, var_c, pro_ac=None): """ Converts a c. SequenceVariant to a p. SequenceVariant on the specified protein accession Author: Rudy Rico :param SequenceVariant var_c: hgvsc tag :param str pro_ac: protein accession :rtype: hgvs.sequencevariant.SequenceVariant """ if not (var_c.type == "c"): raise HGVSInvalidVariantError("Expected a cDNA (c.) variant; got " + str(var_c)) if self._validator: self._validator.validate(var_c) reference_data = RefTranscriptData(self.hdp, var_c.ac, pro_ac) builder = altseqbuilder.AltSeqBuilder(var_c, reference_data) # TODO: handle case where you get 2+ alt sequences back; # currently get list of 1 element loop structure implemented # to handle this, but doesn't really do anything currently. all_alt_data = builder.build_altseq() var_ps = [] for alt_data in all_alt_data: builder = altseq_to_hgvsp.AltSeqToHgvsp(reference_data, alt_data) var_p = builder.build_hgvsp() var_ps.append(var_p) var_p = var_ps[0] if self.add_gene_symbol: self._update_gene_symbol(var_p, var_c.gene) return var_p
def test_sequence_with_length_that_is_not_divisible_by_3(self): hgvsc = "NM_999992.2:c.1del" expected_sequence = "AAAATCAAATGGGGTAGGCCCGGCAGCCAGCTTTATAGAGGAGGCAGTTTCGCC" with self.assertRaises(NotImplementedError): ac_p = "DUMMY" var = self._parser.parse_hgvs_variant(hgvsc) transcript_data = RefTranscriptData(hdp=self._datasource, tx_ac=var.ac, pro_ac=ac_p)
def _run_comparison(self, hgvsc, expected_sequence): ac_p = "DUMMY" var = self._parser.parse_hgvs_variant(hgvsc) transcript_data = RefTranscriptData(hdp=self._datasource, tx_ac=var.ac, pro_ac=ac_p) builder = altseqbuilder.AltSeqBuilder(var, transcript_data) insert_result = builder.build_altseq() actual_sequence = insert_result[0].transcript_sequence msg = "expected: {}\nactual : {}".format(expected_sequence, actual_sequence) self.assertEqual(expected_sequence, actual_sequence, msg)