anchor.diff:                  :initform 1)
      (upper-bound :accessor seq-end
                   :initarg :seq-end))
  -   (:documentation "A biological sequence is a polymeric macromolecule of nucelic acids (with a phorsphor-sugar backbone) or of amino acids with various side-chaines. In daily routine, one does not use the full genome but some fraction of it. And in this fraction we are interested in smaller fractions that have (or are presumed to have) properties of our interest. These regions, consecutive stretches within something larger, may handily be understood as intervals and CLCB offers such an interface to them."))
  +   (:documentation "A biological sequence is a polymeric macromolecule
  +of nucelic acids (with a phorsphor-sugar backbone) or of amino acids
  +with various side-chaines. In daily routine, one does not use the full
  +genome but some fraction of it. And in this fraction we are interested
  +in smaller fractions that have (or are presumed to have) properties of
  +our interest. These regions, consecutive stretches within something
  +larger, may handily be understood as intervals and CLCB offers such an
  +interface to them."))
   
   
   (defmethod initialize-instance :after ((seq bio-sequence) &rest args)
  
positive.code:            :initarg :strand
             :initform 0
             :type (integer -1 1)
  	   :documentation "The direction in which the feature is found on the genome, if applicable. The number 1 denotes the direction from the small chromosomal arm (p like petit) to the larger (q)."))
    (:documentation "Nucleotide sequences can be retrieved from genomic databases (like Ensembl) which is implemented in CBCL. From Ensembl, nucleotides can also be retrieved as genes (with exons and introns) or transcripts. Specialised databases offer information on expressed sequence tags (ESTs)."))
  
  (defclass amino-acid-sequence (bio-sequence) ()
    (:documentation "A real protein or at least some smallish peptide."))
  
negative.code: 
  
  (defun orthogonal-coded (char)
    "Return the character as an orthogonal coded vector.  Vectors are
  orthogonal iff their scalar product equals zero. The scalar product of
  concatenations of othogonal coded bases gives the number of
  nucleotides that the sequences have in common.
  
  http://en.wikipedia.org/wiki/Orthogonal_array
  "
    (declare (type character char))
    (flet ((char-eq (c)
             (char-equal char c)))
  