@classmethod
def get(cls, key):
    """
        Gets the nucleic acid corresponding to either the residue name or
        abbreviation. It is case-insensitive.

        Parameters
        ----------
        key : str
            abbreviation or residue name

        Returns
        -------
        residue : :class:`DNAResidue`
            The residue corresponding to the given key

        Raises
        ------
        KeyError if ``key`` is not a recognized residue name or abbreviation for
        an DNA residue.
        """
    try:
        if key[-1] in '35':
            return cls._all_residues_by_abbr[key[:-1].upper()]
        return cls._all_residues_by_abbr[key.upper()]
    except KeyError:
        return cls._all_residues_by_name[key.upper()]
