High-Performance Computing at the NIH
GitHub YouTube @nih_hpc RSS Feed
Solar on Biowulf

SOLAR is a package of software to perform several kinds of statistical genetic analysis, including linkage analysis, quantitative genetic analysis, and covariate screening. The name SOLAR stands for "Sequential Oligogenic Linkage Analysis Routines."

Solar was developed by researchers at the Southwest Foundation for Biomedical Research. Solar website.

New Solar users should send email to staff@hpc.nih.gov asking to be registered as a Solar user. The Solar package requires each user to be registered.

Documentation
Important Notes

Interactive job
Interactive jobs should be used for debugging, graphics, or applications that cannot be run as batch jobs.

Allocate an interactive session and run the program.
Sample session (user input in bold):

[user@biowulf]$ sinteractive
salloc.exe: Pending job allocation 46116226
salloc.exe: job 46116226 queued and waiting for resources
salloc.exe: job 46116226 has been allocated resources
salloc.exe: Granted job allocation 46116226
salloc.exe: Waiting for resource configuration
salloc.exe: Nodes cn3144 are ready for job

[user@cn3144 ~]$ cp -r /usr/local/apps/solar/examples ./solar_examples 

[user@cn3144 ~]$  cd solar_examples

[user@cn3144 ~]$ $ solar

SOLAR Eclipse version 8.3.2 (General), last updated on October 31, 2016
Copyright (c) 1995-2016 Maryland Psychiatric Research Center
Visit our website www.solar-eclipse-genetics.org
For questions email: pkochunov@gmail.com
Enter help for help, exit to exit, doc to browse documentation.

solar> load pedigree plains_ped.txt
Unloading current pedigree data ...
Unloading current marker data ...
Loading pedigree data from the file plains_ped.txt ...
solar> verbosity min
solar> load marker plainschr16_mrk.txt
Getting initial estimates of allele freqs from the marker data ...
Loading marker data from the file plainschr16_mrk.txt ...
solar> load map plainschr16_map.txt
solar> mibd prep loki
Preparing input files for Loki multipoint IBD computation ...
The following files have been created:
    lkmibd.data         - pedigree/genotype data
    lkmibd.prep         - prep parameter file
    lkmibd.loki         - loki parameter file
    mibdchr16.loc       - map file for SOLAR plots
Move the file mibdchr16.loc to the directory where the Loki-computed IBDs
will be stored.

[...etc...]

solar> quit

[user@cn3144 ~]$ exit
salloc.exe: Relinquishing job allocation 46116226
[user@biowulf ~]$

Batch job
Most jobs should be run as batch jobs.

Create a batch input file (e.g. solar.sh). For example:

#!/bin/bash
set -e
module load solar

cp /usr/local/apps/solar/examples/* .

solar << EOF
load pedigree gaw10.ped
load phenotypes phen
trait Q4
covariate sex age age*sex
polygenic
quit
EOF

Submit this job using the Slurm sbatch command.

sbatch [--cpus-per-task=#] [--mem=#] solar.sh
Swarm of Jobs
A swarm of jobs is an easy way to submit a set of independent commands requiring identical resources.

1. First create different directories for each solar run. Put all the required input files under the created directories.

2. For each directory, create a script file which contains the solar commands as below:

-----------/data/$USER/solar/run1/script ----------
module load solar 
cd /data/$USER/solar/run1
solar << EOF
load pedigree ped.txt
load marker mrk.txt
verbosity min
freq mle
load map map.txt
.......
....
...
return ""
quit
EOF
-------------------------------------------------

3. Now prepare the swarm command file with one line for each Solar run, e.g.

#------- cmdfile -------------
/data/$USER/solar/run1/script
/data/$USER/solar/run2/script
/data/$USER/solar/run3/script
/data/$USER/solar/run4/script
.....
....
/data/$USER/solar/runX/script
#---- end of cmdfile ---------

Submit this swarm of Solar jobs with

swarm -f cmdfile  --g #] --module solar
where
-f cmdfile swarm command file
-g # # of Gigabytes of memory required for a single Solar run