From: ftp-bimas.cit.nih.gov                       Last mod: June 27, 1999

                  FASTLINK, version 2.3P and beyond

This file describes some modifications to the UNKNOWN preprocessor
program introduced in FASTLINK 2.3P and beyond. We have improved the
error reporting capability and fixed some bugs. A scholarly description of
what UNKNOWN does can be found in unknown.ps.

One purpose of UNKNOWN is to catch violations of Mendelian rules of
inheritance. Previous versions of UNKNOWN reported an error by
identifying the pedigree and locus of the error.
The new version tries to identify the nuclear family/families in which
errors occur. When an error occurs at least one nuclear family will
be identified either by a child or parent. For any pedigree-locus pair,
the first nuclear family identified is guaranteed to contain an error.
Subsequent nuclear families identified may or may not contain errors.
If you want to see only the first nuclear family with an error,
then change the constant
     ONE_ERROR_ONLY
from 0 to 1.

I fixed a printing bug that arose when the number of liability classes was
greater than 99. As a result the output of UNKNOWN will be spaced
differently than before. Thanks to Margaret Gelder Ehm for reporting
the bug.

Lots of other aspects of UNKNOWN are explained in the documents
unknown.ps and loops.ps, including subsequent changes to UNKNOWN.
Both FASTLINK 3.0P and 4.0P introduced fundamental, drastic changes
to UNKNOWN that are best explained in a longer, more scholarly document.
These changes make the interesting part of UNKNOWN incompatible
with previous versions of FASTLINK and LINKAGE. However, extra computation
is done for the sake of backwards compatibility.

Version 3.0P introduced much better inference for looped pedigrees
including for the first time the ability to detect Mendelian inconsistencies
in looped pedigrees. Version 4.1P improved some of the loop breaker
genotype inference algorithms. Information about possible genotypes
for different loop breaker vectors is kept in the file loopfile.dat.
See README.loopfile for a description of the syntax.

Version 4.0P introduced the ability to improve on the user's choice of
loop breakers. For looped pedigrees UNKNOWN chooses a provably optimal
loop breaker set. For looped pedigrees with multiple marriages UNKNOWN
and the main programs can now use one loop breaker to break multiple
loops. In version 4.1P these methods were enhanced with a better
algorithm for pedigrees with multiple marriages, and the ability to
select loop breakers from scratch without having to rely on 
the makeped and LOOPS preprocessor programs.
For a scholarly description of the loop breaker selection methods
see paper6.ps, and paper7.ps.
For a scholarly description on what loop breakers are all about
see loops.ps.
For a simple practical method to choose loop breakers see
README.lselect.


