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:                         ((char-eq #\c) #(0f0 1f0 0f0 0f0))
                          ((char-eq #\g) #(0f0 0f0 1f0 0f0))
                          ((char-eq #\t) #(0f0 0f0 0f0 1f0))
                          (t (error "Unknown nucleotide character.")))
                    :element-type 'single-float))))
  
  (defgeneric orthogonal-coded-seq (seq)
    (:documentation "Take an nucleotide sequence and generate an
    orthogonal coded copy of the sequence. Albert, please describe what orthogonal coded means and when it is used."))
  
  (defmethod orthogonal-coded-seq ((seq string))
    "Albert"
    (loop
       with orth-seq = (make-array (* (length seq) 4) :element-type 'single-float)
       for cur-pos fixnum from 0 below (length orth-seq) by 4
       for char character across seq do
       (setf (subseq orth-seq cur-pos (+ cur-pos 4))
  
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)))
  