def n_to_c(self, var_n):
if not (var_n.type == "<STR_LIT:n>"):<EOL><INDENT>raise HGVSInvalidVariantError("<STR_LIT>" + str(var_n))<EOL><DEDENT>if self._validator:<EOL><INDENT>self._validator.validate(var_n)<EOL><DEDENT>var_n.fill_ref(self.hdp)<EOL>tm = self._fetch_AlignmentMapper(<EOL>tx_ac=var_n.ac, alt_ac=var_n.ac, alt_aln_method="<STR_LIT>")<EOL>pos_c = tm.n_to_c(var_n.posedit.pos)<EOL>if (isinstance(var_n.posedit.edit, hgvs.edit.NARefAlt)<EOL>or isinstance(var_n.posedit.edit, hgvs.edit.Dup)<EOL>or isinstance(var_n.posedit.edit, hgvs.edit.Inv)):<EOL><INDENT>edit_c = copy.deepcopy(var_n.posedit.edit)<EOL><DEDENT>else:<EOL><INDENT>raise HGVSUnsupportedOperationError(<EOL>"<STR_LIT>")<EOL><DEDENT>var_c = hgvs.sequencevariant.SequenceVariant(<EOL>ac=var_n.ac, type="<STR_LIT:c>", posedit=hgvs.posedit.PosEdit(pos_c, edit_c))<EOL>if self.replace_reference:<EOL><INDENT>self._replace_reference(var_c)<EOL><DEDENT>if self.add_gene_symbol:<EOL><INDENT>self._update_gene_symbol(var_c, var_n.gene)<EOL><DEDENT>return var_c<EOL>
Given a parsed n. variant, return a c. variant on the specified
        transcript using the specified alignment method (default is
        "transcript" indicating a self alignment).

        :param hgvs.sequencevariant.SequenceVariant var_n: a variant object
        :returns: variant object (:class:`hgvs.sequencevariant.SequenceVariant`)
        :raises HGVSInvalidVariantError: if var_n is not of type "n"