Commit e19989a0 authored by Andreas Tille's avatar Andreas Tille

Updated version 2.4.7.4 from 'upstream/2.4.7.4'

with Debian dir 703f1fa4dfb39c0b942d63c0e136bbaa0d01078f
parents 3b527d8d 1468a53a
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This diff is collapsed.
SHELL = /bin/sh
SUBDIRS = libsrc prepsrc lokisrc utils
INSTALLDIRS = prepsrc lokisrc utils
SED = @SED@
PERL = @PERL@
@SET_MAKE@
all: progs
progs: include/config.h depend
for subdir in $(SUBDIRS); do \
(cd $$subdir; $(MAKE)) \
done
tests:
(cd test; $(MAKE))
install: progs
for subdir in $(INSTALLDIRS); do \
(cd $$subdir; $(MAKE) install) \
done
depend: include/config.h
for subdir in $(SUBDIRS); do \
(cd $$subdir; $(MAKE) depend) \
done
touch depend
clean:
for subdir in $(SUBDIRS) test; do \
(cd $$subdir; $(MAKE) clean) \
done
rm -f *~ core a.out *.bak depend
distclean:
rm -f *~ core a.out *.bak include/config.h config.status \
config.log config.cache loki_cnt depend
for subdir in $(SUBDIRS) test; do \
(cd $$subdir; $(MAKE) distclean) \
done
rm -f Makefile
Loki 2.4.6 - Simon Heath - April 2003
This package contains the source and examples for Loki version 2.3. Loki
performs Markov chain Monte Carlo (MCMC) multivariate linkage analysis on
general pedigrees. The current package supports analyses on quantitative
traits only, although this restriction will be lifted in later versions. For
more details see the files in the docs/ subdirectory. Changes from previous
versions are (sometimes) listed in the Changes file in this directory.
** Making **
Making the package should hopefully just involve typing:
./configure
make
Choices for the C compiler and options can be fixed by setting the shell
environment variables CC and CFLAGS before running ./configure i.e.,
CC=gcc CFLAGS='-O2 -pedantic -Wall -W' ./configure
make
** Testing **
The package has been mostly tested with gcc and GNU make, though it should
work with alternative compilers and make utilities with little or no
modification. If you have problems compiling please retry with the GNU
tools. Whether or not this works, please send me an emai at
heath@hardy.mskcc.org to let me know the machine, operating system, compiler
and make utility used, and what error messages were produced.
To run the programs against test datasets with known results, type make
tests. If you get an output like:
JV test 1
JV test 2
GAW9 test
JV restart test
and no errors reported, then everything was successful. If not, then type:
make clean
make 2>&1 >error.log
and email the file error.log to me at heath@hardy.mskcc.org, with a
description of the machine you are using (type uname -a), the compiler and
which compiler flags were used.
** Installing **
Installing the package can be done by typing make install. By default, the
programs and scripts are installed to the bin sub-directory of the main loki
directory. This behaviour can be changed by giving the --prefix
option to configure. For example, to install to /usr/local/bin type:
./configure --prefix=/usr/local
loki_2.3 has been compiled and tested on the following systems:
Solaris sparc 5.8/5.7 (gcc)
Solaris intel 5.8 (gcc)
FreeBSD intel 4.0-4.5 (gcc)
OpenBSD intel 2.7-3.1 (gcc)
OSF1 V4.0 alpha (gcc,cc)
Linux intel 2.2,2.4 (gcc)
Linux sparc 2.2,2.4 (gcc)
Linux alpha 2.2,2.4 (gcc,ccc [dec compiler])
Irix R10000 6.5 (cc - 32 bit)
Irix R10000 6.5 (cc - 64 bit)
MacOSX G4 10.04,10.1 (gcc)
AIX 4.3.3 (gcc)
Information on successes/failures on other systems gratefully received.
Multiple records in Loki - change in default behaviour
The default for all variables is now CONSTANT. This means that if multiple
records (lines) are read in for an individual, checks will be made that they
match, and all variables will be assumed to form 1 logical record.
If true multiple records are present (i.e., an individual was measured
multiple times), then sets of variables can be switched using the (new)
MULTIPLE command. To revert back to the previous behaviour (when MULTIPLE
was the default) add the following line to the control file.
set multiple_records 1
Parallel jobs in Loki
There is no support for running an individual Loki job in parallel.
However, there it is quite possible to run different jobs on different
machines (or on different processors on the same machine) in parallel. This
is use in genome screen analyses where different chromosomes or different
traits can be analyzed in parallel. The important point to remember is that
each loki run *must* be in a separate directory.
It is often useful to run a single job multiple times with different random
number seeds to verify that the results are consistent across runs. If the
runs are performed sequentially then this is OK, because Loki will start
each new run, continuing the random number stream from where it finished.
Each run will therefore get a different stream of random numbers. However,
if the jobs are run in parallel there is a risk that the random number
streams may overlap, leading to correlation between the runs. This
correlation may or may not lead to correlation between the results from the
runs.
To avoid this, Loki has multiple independent random number generators. Each
generator has the same period (2^19937). To switch from one generator to
another it is necessary to add the following line to the parameter file:
set rng x
where x is an integer between 0 and 60 (this upper limit will increase as
more independent generators are found). The generator used is written to
the seedfile, so be default subsequent runs will continue with the same
generator. Note that RNG 0 is the default generator, which was used by
previous versions of Loki. There is no guarantee that RNG 0 is independent
to all of the other generators, so it is safest to only use values of x>0
when parallel runs are performed.
In conclusion, when performing parallel runs, each run should be run in a
separate directory, and each run should be using a different random number
generator.
This diff is collapsed.
# This file was created by autom4te.
# It contains the lists of macros which have been traced.
# It can be safely removed.
@request = (
bless( [
'0',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'configure.in'
],
{
'AC_C_CONST' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
'AC_PROG_AWK' => 1,
'AC_TYPE_SIGNAL' => 1,
'AC_FUNC_FORK' => 1,
'AC_FUNC_CHOWN' => 1,
'AC_FUNC_STRTOD' => 1,
'AC_C_INLINE' => 1,
'm4_pattern_allow' => 1,
'AC_CHECK_LIB' => 1,
'AC_FUNC_OBSTACK' => 1,
'AC_PROG_RANLIB' => 1,
'AM_AUTOMAKE_VERSION' => 1,
'AC_FUNC_MMAP' => 1,
'AC_TYPE_OFF_T' => 1,
'AC_FUNC_FSEEKO' => 1,
'AC_CONFIG_SUBDIRS' => 1,
'AC_PROG_CPP' => 1,
'AC_PROG_LEX' => 1,
'AM_GNU_GETTEXT' => 1,
'AC_PROG_CC' => 1,
'AC_CANONICAL_HOST' => 1,
'AC_FUNC_SETVBUF_REVERSED' => 1,
'AC_CONFIG_FILES' => 1,
'AC_PROG_LN_S' => 1,
'AC_PROG_INSTALL' => 1,
'AC_STRUCT_TIMEZONE' => 1,
'AC_PROG_YACC' => 1,
'AC_HEADER_STAT' => 1,
'AC_HEADER_STDC' => 1,
'AC_FUNC_ERROR_AT_LINE' => 1,
'AC_DECL_SYS_SIGLIST' => 1,
'AC_PROG_CXX' => 1,
'AC_FUNC_STRFTIME' => 1,
'AM_PROG_CC_C_O' => 1,
'AC_FUNC_STRERROR_R' => 1,
'AC_HEADER_DIRENT' => 1,
'AC_CONFIG_AUX_DIR' => 1,
'AC_PROG_MAKE_SET' => 1,
'AC_FUNC_CLOSEDIR_VOID' => 1,
'AC_PROG_LIBTOOL' => 1,
'AC_FUNC_UTIME_NULL' => 1,
'AC_CONFIG_HEADERS' => 1,
'AC_PROG_GCC_TRADITIONAL' => 1,
'AC_FUNC_MALLOC' => 1,
'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
'AC_CHECK_TYPES' => 1,
'AC_FUNC_MBRTOWC' => 1,
'm4_pattern_forbid' => 1,
'AC_REPLACE_FNMATCH' => 1,
'AC_CHECK_HEADERS' => 1,
'AC_C_VOLATILE' => 1,
'AM_CONDITIONAL' => 1,
'AC_FUNC_STRNLEN' => 1,
'AC_PATH_X' => 1,
'AM_INIT_AUTOMAKE' => 1,
'AC_HEADER_SYS_WAIT' => 1,
'AC_STRUCT_TM' => 1,
'AC_FUNC_GETGROUPS' => 1,
'AC_LIBSOURCE' => 1,
'AC_CHECK_FUNCS' => 1,
'AC_FUNC_VPRINTF' => 1,
'AH_OUTPUT' => 1,
'AC_TYPE_SIZE_T' => 1,
'AC_CHECK_MEMBERS' => 1,
'AC_CANONICAL_SYSTEM' => 1,
'AC_INIT' => 1,
'AC_FUNC_STRCOLL' => 1,
'AC_FUNC_WAIT3' => 1,
'AC_FUNC_GETMNTENT' => 1,
'AC_FUNC_MKTIME' => 1,
'include' => 1,
'AC_TYPE_UID_T' => 1,
'AC_FUNC_SELECT_ARGTYPES' => 1,
'AC_SUBST' => 1,
'AC_STRUCT_ST_BLOCKS' => 1,
'm4_include' => 1,
'AC_FUNC_ALLOCA' => 1,
'AC_TYPE_PID_T' => 1,
'AC_FUNC_LSTAT' => 1,
'AC_TYPE_MODE_T' => 1,
'AC_FUNC_GETLOADAVG' => 1,
'AC_FUNC_SETPGRP' => 1,
'AC_FUNC_MEMCMP' => 1,
'AC_FUNC_GETPGRP' => 1,
'AC_FUNC_REALLOC' => 1,
'AC_HEADER_MAJOR' => 1,
'AC_FUNC_STAT' => 1,
'AM_MAINTAINER_MODE' => 1,
'AC_HEADER_TIME' => 1
}
], 'Request' )
);
This diff is collapsed.
This diff is collapsed.
dnl Process this file with autoconf to produce a configure script.
AC_INIT(lokisrc/loki.c)
AC_CONFIG_HEADER(include/config.h)
AC_PROG_MAKE_SET
ac_default_prefix=`pwd`
dm_search="$includedir,$libdir \
/usr/local/include,/usr/local/lib \
/usr/include,/usr/lib \
$HOME/include,$HOME/lib"
echo checking for DMALLOC library
for inclib in $dm_search
do
tst_inc=`echo $inclib | tr ',' ' ' | awk '{print $1}'`
tst_lib=`echo $inclib | tr ',' ' ' | awk '{print $2}'`
echo Looking for dmalloc.h in $tst_inc and libdmalloc.a in $tst_lib
if test -r $tst_inc/dmalloc.h && test -r $tst_lib/libdmalloc.a
then
echo found.
DMALLOC_INC="-I$tst_inc"
DMALLOC_LIB="-L$tst_lib -ldmalloc"
DMALLOC_FLAGS="-DUSE_DMALLOC \$(DMALLOC_INC)"
break
fi
done
dnl Checks for programs.
AC_PROG_CC
if test "x$GCC" = "xyes"; then
extra_cflags='-W -Wall -pedantic -ffloat-store -Wno-long-long'
else
extra_cflags=""
fi
AC_SUBST(extra_cflags)
AC_SUBST(DMALLOC_INC)
AC_SUBST(DMALLOC_LIB)
AC_SUBST(DMALLOC_FLAGS)
AC_PROG_LEX
AC_PROG_YACC
AC_PATH_PROG(RANLIB,ranlib,:,$PATH:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/etc)
AC_PATH_PROG(AR,ar,ar,$PATH:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/etc)
AC_PATH_PROG(SED,sed,sed,$PATH:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/etc)
AC_PATH_PROG(CP,cp,cp,$PATH:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/etc)
AC_PATH_PROG(GREP,grep,grep,$PATH:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/etc)
AC_PATH_PROG(MV,mv,mv,$PATH:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/etc)
AC_PATH_PROG(COMPRESS,gzip compress,compress,$PATH:/bin:/usr/bin:/usr/local/bin//usr/ccs/bin:/usr/sbin:/etc)
AC_PATH_PROG(CHMOD,chmod,chmod,$PATH:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/etc)
AC_PATH_PROG(PERL,perl,perl,$PATH:/bin:/usr/bin:/usr/local/bin)
AC_PATH_PROG(MAKEDEPEND,makedepend,:,$PATH:/bin:/usr/bin:/usr/X11/bin:/usr/X11R6/bin:/usr/X11R5/bin:/usr/bin/X11:/usr/openwin/bin)
dnl Checks for libraries.
AC_CHECK_LIB(m, sin)
AC_CHECK_LIB(socket,accept,LIBS="-lsocket -lnsl $LIBS",,-lnsl)
dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h limits.h values.h unistd.h sys/systeminfo.h)
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_FUNC_ALLOCA
echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
echo "configure:1694: checking for socklen_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1699 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
#if STDC_HEADERS
#include <stdlib.h>
#include <stddef.h>
#endif
EOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
egrep "(^|[[^a-zA-Z_0-9]])socklen_t[[^a-zA-Z_0-9]]" >/dev/null 2>&1; then
rm -rf conftest*
ac_cv_type_socklen_t=yes
else
rm -rf conftest*
ac_cv_type_socklen_t=no
fi
rm -f conftest*
fi
echo "$ac_t""$ac_cv_type_socklen_t" 1>&6
if test $ac_cv_type_socklen_t = no; then
cat >> confdefs.h <<\EOF
#define socklen_t int
EOF
fi
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
dnl Checks for library functions.
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(memcpy regcomp strtod strtol gethostname popen snprintf)
AC_CHECK_FUNCS(atexit on_exit,break)
AC_CHECK_FUNCS(memmove bcopy,break)
AC_OUTPUT(Makefile libsrc/Makefile prepsrc/Makefile \
prepsrc/compat/Makefile lokisrc/Makefile \
test/Makefile utils/Makefile)
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
1 * * * * * * * *
2 * * * * * * * *
2 * * * * * * * *
4 1 2 * * * * * *
5 1 2 * * * * * *
6 * * 1.32 * * * * 1
7 1 2 * * * * * *
8 * * 0.65 * * * * 2
9 3 4 0.32 A C * * 1
10 5 6 * * * * * *
11 5 6 1.72 C D 112 116 1
12 7 8 2.01 B C 118 118 2
13 9 10 0.90 * * 118 116 1
14 11 12 0.91 C D 118 112 1
15 13 14 1.01 C C 118 116 2
4 1 2
5 1 2
6 * * 1.32
7 1 2
8 * * 0.65
9 3 4 0.32 A C
10 5 6
11 5 6 1.72 C D 112 116
12 7 8 2.01 B C 118 118
13 9 10 0.90 * * 118 116
14 11 12 0.91 C D 118 112
15 13 14 1.01 C C 118 116
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
\documentclass[10pt]{article}
\usepackage{setspace,epsfig,harvard,xspace}
\usepackage{amsmath}
\citationstyle{dcu}
\citationmode{abbr}
\newcommand{\IE}{\textit{i.e.},\xspace}
\newcommand{\EG}{\textit{e.g.},\xspace}
\parindent=0pt
\begin{document}
\begin{center}
\Large{Loki FAQ v0.4}\\
Simon C. Heath\\
October 2002
\end{center}
\section{General}
\subsection{Where is the home page for Loki?}
\verb+http://loki.homeunix.net+
\subsection{What does Loki stand for?}
It doesn't stand for anything. Loki is a name not an acronym (and a bad
pun). As such it should be written as Loki, not LOKI. Loki is one of the
Norse gods, and was known for his cunning and intelligence (which sounds
better than the alternative way if putting it which is that Loki is the god
of evil{\ldots}).
\subsection{How do I find the answer to a question which isn't here?}
Email me at \verb+heath@cng.fr+. If the question is general enough
I will add it to the FAQ.
\subsection{How should I refer to Loki in papers?}
I would be grateful if the following 2 references
were cited if Loki is used in a study:
\begin{itemize}
\item S.C.Heath (1997). Markov chain Monte Carlo segregation and linkage analysis
for oligogenic models. \textbf{61}:748--760.
\item S.C.Heath, G.L.Snow, E.A.Thompson, C.Tseng and E.M.Wijsman (1997). MCMC
segregation and linkage analysis. \emph{Genetic Epidemiology}
\textbf{14}:1011--1015.
\end{itemize}
I would also be very interested if you could email me at
\verb+heath@cng.fr+ when a
paper describing a study which uses Loki is published so that I can keep a
track of who is using Loki for what.
\subsection{What is the best machine/operating system for running Loki?}
The fastest you have. In general, large amounts of memory are not required,
but a fast CPU is. The fastest system I've tried Loki on so far is one with dual
667MHz alpha EV67 processors, though Pentium systems are more cost effective
and work very well. As for operating systems - I can only recommend a UNIX
variant. Large amounts of disk space are useful as the output files can get
very large very quickly.
\section{Getting and compiling Loki}
\subsection{Where do I get the latest version?}
The latest released version is obtainable from
\verb+http://www.stat.washington.edu/thompson/Genepi/Loki.shtml+
Development versions can be obtained from
\verb+http://loki.homeunix.net+.
\subsection{What do I do now I have it?}
You should first untar it. You should receive the file compressed so you
must first uncompress it and then untar it by typing:
\begin{verbatim}
gunzip loki.tar.gz
tar -xf loki.tar
\end{verbatim}
If you have GNU tar installed you should be able to do this is one go with:
\begin{verbatim}
tar -zxf loki.tar
\end{verbatim}
In the event that the tar you have doesn't like either of these forms try:
\begin{verbatim}
cat loki.tar | tar xf -
\end{verbatim}
If that doesn't work then consult your man pages and/or the local guru.
After untarring the archive you should cd into the main loki directory and
read the README files that are there. After that, simply typing:
\begin{verbatim}
./configure
make
make install
\end{verbatim}
should be enough to get you going. If not, read the README files again, and
as a last resort, email me at \verb+heath@cng.fr+ with a description of the
problem, the error messages you get, and the output of \verb+uname -a+.
\subsection{How do I run it?}
Read the documentation{\ldots} Specifically look in the \verb+docs/+ subdirectory.
\subsection{How do I compile Loki on a PC?}
\label{pc_quest}
Best solution - install Linux/FreeBSD/OpenBSD/NetBSD and follow the normal
instructions. Otherwise you're really on your own. If you decide to port
Loki to a PC I would be interested, and would be prepared to help point out
the areas which are likely to cause trouble. Most of the Loki code follows ANSI
standard - there's a small amount which is POSIX compliant so works on
modern UNIX variants but will cause problems on PC's.
\subsection{How do I compile Loki on a Mac?}
If you have a recent Mac running OS-X then Loki should compile and run with
no problems. Otherwise, see \ref{pc_quest}.
\section{Reading in datafiles}
\subsection{How do I read in files in LINKAGE format?}
The main difference with LINKAGE files over the `normal' Loki files is that
LINKAGE files have a separate pedigree identifier (column 1), and pedigree
ids can be re-used in different pedigrees. From Loki 2.3, LINKAGE files can
be read in directly by giving 4 parameters to the PEDIGREE command in the
control file, specifying the columns containing the pedigree id, id, father,
mother. See the section on the PEDIGREE command in the documentation.
\section{Map functions}
\subsection{How do I use a Kosambi map in Loki?}
By default, Loki assumes that input maps use Haldane's map function.
However, many published maps use Kosambi's map function. In this case, use
the command MAP FUNCTION KOSAMBI in the parameter file, which tells Loki to
convert the input map into a Haldane map.
\section{IBD Estimation}
\subsection{Is there a problem with inbred pedigrees and IBD estimation?}
There is no problem with the estimation procedure. However, the IBD
estimates are generally wanted so that they can be used by other analysis
programs that may have a problem with inbreeding. Check the manual or
contact the developers of the analysis program to see if there is a problem
with inbred pedigrees.
\subsection{How long should I run Loki for to get IBD estimates?}
Depends on the pedigree size, amount of missing data and (very importantly)
the marker spacing. Tightly linked markers (1cM or less) can require many
sample iterations to get stable estimates. If you want a ball park
estimate, I generally use at least 100000 iterations. See next question{\ldots}
\subsection{How can I tell if I have run Loki long enough to get IBD estimates?}
A reasonable way to go about assessing the quality of the estimates is to
repeat multiple times (with different random number seeds{\ldots} ), and see
how closely the results match. I will be developing scripts to make this
easier so email me if you are interested.
\subsection{Can I restart a Loki IBD estimation analysis?}
No. The IBD estimates are not stored in the dump file. This may be fixed
if I have time.
\subsection{What runtime options should I use for IBD estimation?}
If using multiple markers I would always set the lm\_ratio to be $0.5$ or
higher. This greatly improves mixing in many cases. It is also often
worthwhile to use the OUTPUT FREQUENCY command so that IBD estimates are not
collected at every iteration (as the collection can be very costly). Always
compress the output files with the COMPRESS IBD OUTPUT command.
\subsection{How do I generate MIBD files for SOLAR?}
First load the pedigree into SOLAR to generate the \verb+pedindex.cde+\ and
\verb+pedindex.out+\ files. Copy the files to the directory you are running
Loki from. Run Loki using the original ID codes that went into SOLAR. Put
the following in the parameter file:
\begin{verbatim}
OUTPUT IBD SOLAR
COMPRESS IBD OUTPUT
ESTIMATE IBD GRID 0,100,1 # Or whatever grid you want
SET lm_ratio 0.5
\end{verbatim}
When Loki has finished, all of the MIBD files will be in the directory
loki\_ibd.
\end{document}
#ifndef _BIN_TREE_H_
#define _BIN_TREE_H_
#ifndef BIN_TREE_H
#define BIN_TREE_H 1
struct bin_node {
struct bin_node *left,*right;
void *data;
int balance;
};
struct bin_node *rotate_left(struct bin_node *);
struct bin_node *rotate_right(struct bin_node *);
void free_bin_tree(struct bin_node *,void (*)(void *));
#endif
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
void calc_var_locus(int);
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
void genedrop(int);
void drop_genotypes(int);