Troubleshooting FASTLINK/Linkage/Unknown Messages
BioInformatics & Molecular Analysis Section, CIT, NIH
This information is derived from the Linkage Troubleshooting Guide by Dr. Alejando Schaffer, NCBI.
LINKAGE and FASTLINK often produce messages that are difficult to understand. This document briefly summarizes messages from FASTLINK, Linkage and Unknown. Messages are arranged alphabetically. Messages found only in FASTLINK are indicated by [F], incompatibility errors in UNKNOWN are indicated by [U]. See the discussion at the end of this document.
NOTE: The most common error is a white space placement error. By white space error, we mean the insertion of unwanted blank lines or the deletion/insertion of spaces in the input files. If this is case, the error message is often only a clue to the vicinity of the actual error in the data files.
Samples of FASTLINK/Linkage/Unknown Messages
and what they may mean
- Data recovered [F]
- FASTLINK is recovering from a crash whether you like it
or not.
- Error detected reading datafile.
Illegal value for mutation locus (0)
- The mutation locus number is too low.
Probably a white space error..
- Error detected reading datafile.
Illegal value for risk locus (0)
- The risk locus number is too low.
Probably a white space error.
- Error detected reading datafile.
Linkage disequilibrium is not allowed with this program
- You are trying to allow for linkage disequilibrium and trying
to use LODSCORE. Use ILINK instead.
- Error detected reading datafile.
Mutation locus (5) exceeds nlocus
- The locus at which you want to do a mutation model
is specified as an index that is higher than the number
of loci you specified in the lcp.
- Error detected reading datafile. Risk locus (5) exceeds nlocus
- The locus at which you want to do a risk analysis
is specified as an index that is higher than the number
of loci you specified in the lcp script.
- Error detected reading iterated locus in datafile.
Illegal value (-1)",
- The locus number is negative.
I have not figured out any plausible circumstances under which
this error could occur.
- Error detected reading iterated locus in datafile.
Value (7) greater than nlocus
- You are using ILINK to estimate allele
frequencies or something else, and you gave a locus number
that is too high.
- Error detected reading loci order. Illegal locus number 17
in position 2
- Your lcp script wants to use locus 17, but your locus
file does not have 17 loci described. This can occur when
you mix-up data sets.
- Error detected reading loci order. Locus number 17
in position 5 exceeds number of loci
- The third line of your locus file has no locus 17 on it, but you
asked lcp to use that locus. This probably occurred
by using a text editor to add new loci to the locus file
and forgetting to update the locus order on line 3.
- Error detected reading loci order. Locus number repeated in
positions 2 and 3
- You probably made a typo in lcp and used the same locus in two
different positions of the fixed locus map
- Error detected reading locus description. Illegal locus type 7 for
locus 6
- The first number in the description of each locus in the
locus file must be 1,2,3,or 4.
- Error detected reading locus description for system 1.
Liability classes (100) exceed maxliab.
- The maximum number of liability classes at a locus is
determined by the constant maxliab, which can be set in
unknown.c, commondefs.h, or Makefile.
- Error detected reading locus description for system 1.
Risk allele (17) exceeds nallele
- You are doing a risk assessment and you specified an
allele number that is higher than the number of alleles possible
for that locus.
- Error detected reading locus description for system 2.
Illegal number of liability classes (-1),
- The number of liability classes that you specified for
an affection status locus is too low. This could be a
white space error.
- Error detected reading locus description for system 2.
Illegal risk allele (0)
- You are doing a risk assessment and you specified an
allele number of 0 or less. Probably a white space error.
- Error detected reading locus description for system 2.
Number of traits (17) exceeds maxtrait
- The maximum number of traits for a quantitative trait
locus is determined by the constant maxtrait, which can be
set in unknown.c, commondefs.h, or Makefile.
- Error detected reading locus description for system 2.
Number of traits out of range (-1)
- The number of traits is too low. Probably a white space error.
- Error detected reading locus description for system 2.
Penetrance out of range
- You specified a penetrance for a liability class of
an affection status locus as a number bigger than 1.0. Probably
a white space error.
- Error detected reading locus description for system 2.
Variance multiplier must be positive
- You specified a variance multiplier for a quantitative trait as
0 or less. Almost certainly what happened is that a 0
was read because of a white space error.
- Error detected reading locus description for system 3.
Variance must be positive
- You specified a variance for a quantitative trait as
0 or less. Almost certainly what happened is that a 0
was read because of a white space error.
- Error detected reading locus description for system 6.
Illegal number of alleles 0
- One of your loci is described as having 0 alleles.
This is likely a white space error in the locus file
causing the wrong string to be interpreted as the number
of alleles
- Error detected reading locus description for system 6.
Illegal number of factors 0
- One of your loci is described as having 0 factors.
This is likely a white space error in the locus file
causing the wrong string to be interpreted as the number
of binary factors.
- Error detected reading locus description for system 6.
Number of factors 17 exceeds maxfact
- There is a constant maxfact that is the maximum number of binary factors allowed at a
locus of that type. You can change maxfact in unknown.c
commondefs.h and Makefile.
Important: Set maxfact and maxall to the same value; FASTLINK cannot
handle maxfact > 31.
- Error detected reading locus description for system 7. Number
of alleles 25 exceeds maxall
- One of your loci is described as having 25 alleles in the
locus file. maxall is a constant limiting the maximum
number of alleles at a locus. You can increase maxall to
more than 25, by changing unknown.c, commondefs.h, or
Makefile.
Important: FASTLINK cannot handle maxall > 31.
- Error detected reading pedigree record at pedigree 17.
Maximum number of pedigree records exceeded
- The maximum number of pedigrees is determined by
the constant maxped, which can be changed in commondefs.h
unknown.c, and Makefile. You may have truly exceeded maxped or
you may have a white space error.
- Error detected reading pedigree record 17. Illegal code for sex 8.
- The column for gender is the eighth column in pedin.dat
and the fifth column in the input to MAKEPED. Error 11 can be caused by
entering either the wrong value for the gender or having a
white space error that causes the wrong column to be read as gender.
Be especially careful to have exactly one carriage return after the
entry for each person, and no other carriage returns.
- Error detected reading pedigree record 200. Illegal liability
class (0).
- The liability class is being read
as a number that is too low. When you specify a locus as an affection status locus,
you may specify different liability classes that get numbered
1,2,3... If you assign an individual a class number in the pedigree
file that is lower than the number of liability classes
specified, then this error occurs. It is important to remember that
affection status loci get 1 column is no liability classes are used
and 2 columns if classes are used. Therefore, this error can occur
if you specify an affection status locus to have liability classes
in the locus file, but forget to specify the class in the
pedigree file.
- Error detected reading pedigree record 200. Liability class
(9) exceeds nclass.
- When you specify a locus as an affection status locus,
you may specify different liability classes that get numbered
1,2,3... If you assign an individual a class number in the pedigree
file that is higher than the number of liability classes
specified, then this error occurs. It is important to remember that
affection status loci get 1 column is no liability classes are used
and 2 columns if classes are used. Therefore, this error can occur
if you specify an affection status locus to have liability classes
in the locus file, but forget to specify the class in the
pedigree file.
- Error detected reading pedigree record 300.
Allele number 25 exceeds maxall.
- A numbered allele cannot have a value larger than the
constant maxall.
One of your loci is described as having 25 alleles in the
locus file. maxall is a constant limiting the maximum
number of alleles at a locus. You can increase maxall to
more than 25, by changing unknown.c, commondefs.h, or
Makefile.
Important: FASTLINK cannot handle maxall > 31.
- Error detected reading pedigree record 300.
Illegal allele number -1.
- You have a negative allele number in your input file.
I have not figured out any plausible circumstances under which
this error could occur.
- Error detected reading pedigree record 300. Illegal binary factor
code 2.
- Binary factors must be 0 or 1. Usually this error occurs
because of a white space problem that causes lsp to look in the
wrong columns.
- Error detected reading pedigree record 501.
Maximum number of individuals exceeded,
- The maximum number of people in a
a data set is determined by the constant maxped.
- ERROR: File empty or inconsistent [U]
- One of pedfile.dat and datafile.dat is not there or
has the wrong permissions.
- ERROR: Incompatibility detected in this family for locus [U]
- This is the overall incompatibility message for a
pedigree. Here "family" means "pedigree".
Note that locus 2 here is post-lsp locus numbering.
so it means the second locus in your analysis.
- Error opening ipedfile.dat and pedfile.dat. [F]
- Something is wrong in your lcp script or your usage of it
- Error opening pedfile.dat in UNKNOWN [U]
- pedfile.dat is not there or you do not have permission
to read it. This error could arise if you are doing
multiple runs in the same directory simultaneously
(this is a no-no for both LINKAGE and FASTLINK) or
your directory permissions are not set up properly.
- foundped() found 0 pedigrees - UNKNOWN [U]
- Something is seriously wrong with pedfile.dat.
It's hard to imagine what could cause this, but
the message is in there for safety.
- Illegal instruction (on Suns) [F]
- maxhap is probably too big causing you to blow
out the stack in segdown or segup
- Illegal interference parameter 17 Lack of interference assumed
- The second number after the last locus description in
the locus file indicates whether you want interference (1)
or mapping (2). No interference (the common case) is 0.
- Illegal locus number 0 in lod score list
- The locus number is too high instead of too low.
- Illegal sex difference parameter 1
Parameter must be 0 with sex-linked data
- You are using X-chromosome data and you specified that
male theta should be different from female theta in datain.dat.
This number is the first number after the last locus description
in the locus file. This warning may be harmless.
- Illegal sex difference parameter 3 Parameter should be 0, 1, or 2
- The first number after the last locus description in
the locus file indicates whether you want male theta and
female theta to be different
Codes are:
0 -- no difference (almost everyone uses this)
1 -- difference, but no females seen yet
2 -- difference (common value for sex difference)
This is probably a white space error
- Locus 17 in lod score list exceeds nlocus 5
- You get this one if you use LODSCORE because the lcp script format for
lodscore is different. The third line of your locus file has no locus 17 on it,
but you asked lcp to use that locus. This probably occurred
by using a text editor to add new loci to the locus file
and forgetting to update the locus order on line 3.
- Non-standard affection status 6 interpreted as normal
in pedigree record 200
- The affection status of a person can be 0,1, or 2. You probably
have a white space error. This warning should not be ignored.
- NOTE: attempting to continue previous (unfinished) run [F]
- FASTLINK thinks you want to recover from a crash
- Number of iterated parameters greater then maxn.
- The number of parameters that you can simultaneously
estimate in ILINK is determined by the constant maxn, which can
be increased in ildefs.h or Makefile. You have exceeded maxn
in the way your datafile.dat is set up. Could be caused by a
white space error.
- Number of loci 17 exceeds the constant maxlocus
- maxlocus is the maximum number of loci that can be used
simultaneously in a run. You can increase maxlocus
by changing commondefs.h or Makefile.
- Number of loci read. Less than minimum of 1
- The first number in locus file (datain.dat) or datafile.dat
is mangled; you probably erred in using preplink to
prepare the locus file.
- One incompatibility involves the family in which person
9 is a child [U]
- Essentially the same as the previous error message, except that
there are two ways of flagging errors depending on how the
pedigree is traversed.
- One incompatibility involves the family in which person
17 is a parent [U]
- You have a violation of Mendelian rules of inheritance in
the current pedigree. This message will be printed
before the message for the whole pedigree.
Here "family" means "nuclear family", including parents
and children.
The first nuclear family that is pinpointed definitely has
an error (Note that
the individuals are counted starting at 1 with each pedigree, so
17 means the 17th person listed in pedfile.dat for the current
pedigree. Note that if 17 is involved in multiple marriages,
each of these should be checked.
- Press to continue [U]
- Recent versions of UNKNOWN ask for an interactive response
when errors occur. This was introduced
by Terwilliger and Ott. Press if you want
incompatibilities checked for the remaining pedigrees in your
data set. Otherwise, kill the program.
- Problem with malloc, probably not enough space [F]
- You are out of memory, get more swap space.
- Reduce max_vectors_considered to 9999 [U]
- You have a looped pedigree, probably with multiple
loops. UNKNOWN is running out of memory keeping track of
all the possible loop breaker vectors. If you reduce the
constant max_vectors_considered you trade space for time.
The genotype inference for loops becomes less precise, but
takes less space.
- The next pedigree appears to have an unbroken loop [F]
- You failed to use properly the loops program as part of makeped
See Chapter 7 of Terwilliger and Ott
- The next pedigree appears to have an unbroken loop [U]
- The program is getting into an infinite loop probably because
you have not broken a loop properly. The LINKAGE preprocessor
program MAKEPED can be used to break loops before
running UNKNOWN.
- The program will exit politely to allow you to correct the problem [F]
- I am sparing you a core dump
- WARNING: You are doing an autosomal
run but have AUTOSOMAL_RUN set to 0 [F]
- Change AUTOSOMAL_RUN to 1 in moddefs.h
- You must increase the constant maxloop [U]
- In FASTLINK 3.0P, maxloop is defined in both unknown.c and
commondefs.h. In bothe files, the value must be at least
as large as the number of loops in each pedigree. In
previous versions of FASTLINK, maxloop appeared only
in commondefs.h. Edit unknown.c and commondefs.h to
increase maxloop.
- You probably need to run the slower version of this program [F]
- FASTLINK can be configure to use more memory "fast version"
or less memory "slow version". You are using the fast version and have
run out of memory. Recompile to get the slow version instead, with
make installslow.
- Your pedigree has more loops than allowed by the constant maxloop [F]
- You must increase maxloop in commondefs.h. Starting
with FASTLINK 3.0P maxloop will occur also in unknown.c
You are *strongly encouraged* to read loops.ps.
Discussion of FASTLINK 2.3/3.0 and Unknown
Changes in Error Detection
One of the main purposes of UNKNOWN is to detect violations of Mendelian
rules of inheritance. In LINKAGE and FASTLINK, through version 2.2,
error detection was done only for loopless pedigrees and the program would
report only the erroneous pedigree/locus pair.
In FASTLINK 2.3P, the loopless error checking was improved so that
the program now pinpoints the nuclear family which contains the error.
It is not possible for the program to determine automatically whether it
is a parent or a child (or both) whose genotype must be changed.
Sometimes, the program will pinpoint multiple nuclear families that are
in error in the same pedigree. In this situation, only the first
nuclear family is sure to be wrong; the others may be propagated
consequences of the first error detected. It may not be possible to
determine whether they are separate errors or not without correcting the
first error. If you want to see the first error only, change the
default value of the constant ONE_ERROR_ONLY to 1.
In FASTLINK 3.0P, UNKNOWN now detects incompatibility errors in
looped pedigrees. However, it reports only the pedigree/locus pair.
If you wish to have the nuclear families pinpointed, then artificially
remove all the loops by replacing every number that is 2 or higher
in column 9 of the pedigree file with a 0. Then re-run UNKNOWN.
Do not throw away your original pedigree file, since you will want to
fix the genotype errors there and use that file for the actual
computations.