anchor.diff:  
   (defgeneric nt-coords->aa-coords (coord)
     (:documentation "Convert from coordinates in nucleotides to
  -                   coordinates in amino acids."))
  +                   coordinates in amino acids.
  +Example:
  +
  +* (mapcar #'nt-coords->aa-coords (list 1 2 3 4 5 6 7 8 9))
  +
  +(1 1 1 2 2 2 3 3 3)"))
   
   (defmethod nt-coords->aa-coords ((coord integer))
     (multiple-value-bind (aa-1 rest) (truncate (1- coord) 3)
  
positive.code:                :documentation "The transcript which codes for this protein.")
     (features :initarg :features
               :accessor protein-features
               :documentation "Protein features")))
  
  (defclass protein-feature (feature)
    ((protein :initarg protein
              :accessor protein
              :accessor translation
              :documentation "the protein to which this feature belongs.")
     (feat-start :initarg :start
                 :accessor feat-start
                 :accessor lower-bound)
     (feat-end :initarg :end
               :accessor feat-end
               :accessor upper-bound)))
  
  (defclass transmembrane-helix (protein-feature)
    ())
  
  
negative.code:                :initarg transcript
                 :documentation "The transcript corresponding to this exon.")
     (circular :allocation :class
               :initform nil))
    (:documentation "Exons are those regions of the transcript of the genomic DNA that leave the nucleus and are read out to form the amino acid sequence. A single gene is very likely to have multiple variants that are assembled from different exons. The exonic regions from different transcript may overlap when mapped back onto the genome."))
  
  (defclass protein (amino-acid-sequence)
    ((transcript :initarg :transcript
  