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

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.

Solar is not a parallel program. Single Solar jobs are most easily run interactively on Helix. It is useful to run on Biowulf only if you have multiple simultaneous Solar jobs to run.

The Solar binaries need to be added to your path before running Solar. This is most easily done by using the modules commands as in the example below:

biowulf% module avail solar

------------------- /usr/local/lmod/modulefiles ---------------
solar/7.6.4 (D)

biowulf% module load solar    (to load the default latest version)

biowulf% module list      (to show what version is loaded)
Currently Loaded Modulefiles:
  1) solar/7.6.4

Test data for Solar is available in /usr/local/apps/solar/examples.

On Helix

Sample session (user input in bold):

helix% module load solar             (will load the latest available version)

helix% module list                   (to show which version has been loaded)
Currently Loaded Modulefiles:
  1) solar/8.1.1
  
helix% cp -r /usr/local/apps/solar/examples ./solar_examples 

helix% cd solar_examples

helix%$ solar

SOLAR version 7.6.4 (Official), last updated on December 07, 2012
Copyright (c) 1995-2012 Texas Biomedical Research Institute
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> freq mle
Marker data have not been loaded.
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

helix%

Batch job on Biowulf

This example job uses the example data in /usr/local/apps/solar/examples. The Solar commands are those used in the tutorial.

1. Create a script file which contains the solar commands as below:

---------- /data/$USER/solar/run1/script --------------
#!/bin/bash 
#SBATCH --job-name=Solar

module load solar
cd /data/$USER/solar/test
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
----------------- end of script ----------------------

2. Now submit the script using the 'sbatch' command, e.g.

sbatch  script

Submitting a swarm of Solar jobs

The swarm program is a convenient way to submit large numbers of jobs all at once instead of manually submitting them one by one.

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  --module solar

For more information regarding running swarm, see swarm.html

Documentation

Solar 8.1.1. documentation

Solar website
Solar documentation -->