Delila Program: makebk

makebk program

Documentation for the makebk program is below, with links to related programs in the "see also" section.

{   version = 2.74; (* of makebk.p 2017 Oct 11}

(* begin module describe.makebk *)
      makebk: make a book from a file of sequences.

      makebk(sequ: in, book: out, changes: out, output: out, input: intty)

      sequ: file of raw sequences, each ending in a '.';  no characters are
         allowed in this file except the bases (a,c,g,t,u) and period and blank.
         Characters other than these will be converted to 'a' and the change
         will be noted in the changes file.  The bases can also be in capital

      book: the output file containing the sequences and the necessary
         information  for it to be a proper book.  the user types in the
         required information  after prompts from the program.

      changes:  Delila programs cannot handle sequences that have ambiguities
         because Delila was designed on the assumption that people would
         finish their sequences.  Unfortunately this is not true, and the
         databases contain bases other than acgt to indicate ambiguity.
         These are converted to "a" and the cases are reported in this file.
         NOTE:  "u" is converted to "t".

      output: for messages and queries to the user

      input: interactive input.

         Type a carriage return to start; this is (unfortunately) ignored.

         Then the program asks:

Is this an insertion module (m), an independent book (b),
or an automatically generated book (a, z, g), using default values?

         Choose the kind of output you want.  An 'a' will give you an
         automatically generated book, while 'z' will do the same but
         it will first ask you which base is to be the zero coordinate
         of each sequence.  This allows one to shift the alignment.

         If you do not chose the automatic route, you will be prompted
         for all the parts of the book.

         New as of 2005 Feb 7:
         In the automatic route, names of pieces may follow the title.
         On each line:
         The key name is given.
         a space is given
         the rest of the line is the long name.

         New as of 2011 Dec 01:
         The option 'g' means that the user gives the:
         names and everything else is automatic.


      Makebk takes a file of raw sequences (sequ) separated by periods
      (.) and converts that into a proper delila book format, getting
      the required information from the user.  The user may also have
      makebk fill in the piece information automatically, using
      default values.

see also
      Another program to convert a single sequence to a Delila book: rawbk.p
      A program to list the contents of your new book: lister.p

      This program evolved as an interactive one, but can be used
      under Unix as if it had a parameter file.  To do this, execute it
      in this form:
         makebk < makebkp
      where makebkp is an example parameter file that will read
      all sequences and give a simple title.  It consists of three or
      more lines:

            this line is ignored.
a           this line triggers automatic book generation
title       This is the title
name1 first sequence name
name2 second sequence name


makebkp for completely automatic generation (all lines between dashs):

name1 first sequence name
name2 second sequence name

makebkp for some user defined parts (all lines between dashs):


      Gary Stormo and Tom Schneider

      The delila system requires complete sequence.  To handle sequences
      with unknown bases, they are replaced with constant chreplace.

technical notes

      The constant chreplace replaces all unidentified characters in the

      The constant maxnumberofchanges limits the maximum number of
      changes reported.  This avoids generation of huge files for
      chromosomes with many changes.  For example, human chromosome 1
      in hg19 has over 23 million n's (23,970,002)!  (That doesn't
      seem "finished" to me!)

   2016 Oct 06 On the p2c compiler the first piece was not getting a
   name and then catal would object.  The solution was to do some
   extra readlns in Procedure autopiece.  A longer term solution would
   be to remove the 'input' file and replace it with direct reading of
   makebkp.  Scripts that use

     makebk < makebkp

   would then ignore the input file and use the makebkp file directly.
   We never input data to makebk by hand and instead edit the makebkp
   file.  This would work except when one wants to make a more
   sophisticated makebkp (instead of automatic piece names) the
   question guidance would be lost.

(* end module describe.makebk *)
{This manual page was created by makman 1.45}

{created by htmlink 1.62}
U.S. Department of Health and Human Services  |  National Institutes of Health  |  National Cancer Institute  |  | 
Policies  |  Viewing Files  |  Accessibility  |  FOIA