One of the things that the loop encoding system implies is that the user gets to choose the numbering of the loops. For example, suppose there are three loops. Then there will be three loop breaker pairs of individuals (in pedin.dat). The user can choose which pair gets 2 in column 9, which pair gets 3 in column 9, and which pair gets 4 in column 9. The programs should give the same answer no matter which loop ordering is chosen.
However, in FASTLINK 2.0, the first loop, whose loop breakers get a 2 in column 9, is treated specially. What this means for the user is that the choice of which loop gets encoded as 2 can have a drastic effect on running time, but not correctness of the results.
I am still trying to get a sense of how many pedigrees in common usage have more than one loop. If this is sufficiently common, I will consider automating the choice of which loop gets treated as the first loop for algorithmic purposes, although this is not a trivial algorithmic task.
FASTLINK runs on pedigrees with loops can take a long time.
When there is more than one loop, it is worth trying each loop
as the first loop, to see which choice runs fastest. The choice of
loop for the first which runs fastest should not depend on the number
or choice of loci. Therefore, it is possible to do a simple 2-locus run
with one candidate
vector using MLINK to decide which loop
is best as the first loop.
More generally, even when there are no loops, it is a good idea to start with just a simple LINKMAP run or MLINK run where you ask it to do only one candidate theta vector. This will tell you how long it takes per candidate theta and give you a good idea of how long the full scale run(s) you want to do will take.
Next: Loop Algorithm
Up: Loops in FASTLINK
Previous: Encoding Loops in