N.I.M.R.O.D. | ![]() |
---> NEW : Version 2.1 is now available here. Downloads.
Models libraries (Pharmacokinetics, HIV, ...) are available here :
Models based on ordinary differential equations (ODE) are a widespread tool to describe dynamical system. In biomedical sciences, data within each subject can be sparse but information is often gained from between-subjects variability. This makes natural the use of mixed effect models to estimate population parameters. Although maximum likelihood based approaches are a valuable option, both numerical and identifiability issues favor a Bayesian approach which can incorporate prior knowledge in a flexible way. However the combination of difficulties coming from the ODE system and from the presence of random effects raises a major numerical challenge. A normal approximation of the posterior can be obtained by computing the maximum of the posterior distribution (MAP). Here we present the NIMROD (Normal approximation Inference in Models with Random effects based on Ordinary Differential equations), a program devoted to the MAP estimation in ODE models. See Model and problem definition for more details.
To modify NIMROD at your own convenience, you can find documentation in Related pages How to implement one's own problems ?
Advanced users can custom the algorithm and change algorithm thresholds Advanced users Options
See Modules, Files and Directories for a complete description of NIMROD implementation. Functions and subroutines Call graph, variable and usage descriptions are available.
The NIMROD Fortress at Spring.
Automatic switch between MPI parallel and sequentiel compilation is implemented depending on the fact that MPI is found on the computer or not. More details can be find CMakeLists.txt. Let N be the number of subjects analyzed in the study data. Let M be the number of cores available and used for the running. User must check that M<=N.
./nimrod
mpirun -np M ./nimrod
qsub mpi.sh
For a M cores running suring maximum 10 hours, mpi.sh is implemented such that:
#!/bin/sh #PBS -l nodes=M,walltime=10:00:00 #PBS -N OPENMPI . /etc/profile.d/modules.sh module purge module load torque module load gcc/4.6.0 module load openmpi/gcc NUMPROC=`cat $PBS_NODEFILE | wc -l` cd $PBS_O_WORKDIR myapp=./nimrod mpirun --prefix $MPI_HOME -np $NUMPROC -machinefile $PBS_NODEFILE $myapp