code: def n_to_c(self, var_n):
          
  
          if not (var_n.type == "n"):
              raise HGVSInvalidVariantError("Expected n. variant; got " + str(var_n))
          if self._validator:
              self._validator.validate(var_n)
          var_n.fill_ref(self.hdp)
          tm = self._fetch_AlignmentMapper(
              tx_ac=var_n.ac, alt_ac=var_n.ac, alt_aln_method="transcript")
          pos_c = tm.n_to_c(var_n.posedit.pos)
          if (isinstance(var_n.posedit.edit, hgvs.edit.NARefAlt)
                  or isinstance(var_n.posedit.edit, hgvs.edit.Dup)
                  or isinstance(var_n.posedit.edit, hgvs.edit.Inv)):
              edit_c = copy.deepcopy(var_n.posedit.edit)
          else:
              raise HGVSUnsupportedOperationError(
                  "Only NARefAlt/Dup/Inv types are currently implemented")
          var_c = hgvs.sequencevariant.SequenceVariant(
              ac=var_n.ac, type="c", posedit=hgvs.posedit.PosEdit(pos_c, edit_c))
          if self.replace_reference:
              self._replace_reference(var_c)
          if self.add_gene_symbol:
              self._update_gene_symbol(var_c, var_n.gene)
          return var_c
docs: 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"