Skip to content

Latest commit

 

History

History
165 lines (125 loc) · 6.35 KB

DebianMedModules.md

File metadata and controls

165 lines (125 loc) · 6.35 KB

Debian Med modules

The Debian Med project packages bioinformatics and other medically relevant software for the Debian operating system. We collect many of them in a Singularity container and create one module per package on Deigo.

For users

ml bioinfo-ugrp-modules DebianMed
ml av

Enjoy !

For developers

Docker image

See oist/BioinfoUgrp_DebianMed_Images on how to create a Docker image with GitHub actions.

Creation of a new Singularity image

Pull the Docker image built on GitHub.

export DEBVERSION=12.0
singularity pull DebianMed_${DEBVERSION}.sif docker://ghcr.io/oist/bioinfougrp_debianmed_images:${DEBVERSION}

Misc commands

To see all the packages that the med-bio metapackage Recommends:

ml singularity
./DebianMed_$DEBVERSION.sif apt show med-bio | grep Recommends

To generate a list of all the bioinformatics packages recommended by the med-bio and med-cloud metapackages:

PKGLIST=$(./DebianMed_$DEBVERSION.sif apt show med-bio med-cloud |
  grep Recommends                   | 
  sed 's/ |/,/'g                    |  # Sanitize pipe symbols representive alternatives
  cut -d' ' -f2-                    |  # Remove 'Recommends: '
  sed -e 's/, /\n/g'                |  # Make it a space-separated pacakge list 
  sort -u                           |  # Remove duplicates and in the next command, remove R packages
  grep -v -e r-cran -e r-bioc -e r-other )

Command to generate all the modules, with a few extra goodies. Note that the goodie list must be the same as in the singularity definition file above.

for package in $PKGLIST source-highlight
do
  ../../BioinfoUgrp/mkDebMedModule.sh $package
done

Make sure the module and modulefiles created are writable for the group:

umask 002

Or if you did not use umask, add the write permissions after:

chmod g+w file_name

After creating a new module, if it is not seen by ml av, delete the cache:

rm -rf ~/.lmod.d/.cache

biosyntax-less module

This module was generated by hand as it needs complex setting of environment variables.

mkdir -p /bucket/BioinfoUgrp/DebianMed/$DEBVERSION/modules/biosyntax-less/1.0.0b-2
cd /bucket/BioinfoUgrp/DebianMed/$DEBVERSION/modules/biosyntax-less/1.0.0b-2
cat > src-hilite-lesspipe-bio.sh <<__END__
#!/bin/sh
LC_ALL=C singularity exec /bucket/BioinfoUgrp/DebianMed/$DEBVERSION/DebianMed_$DEBVERSION.sif /usr/share/source-highlight/src-hilite-lesspipe-bio.sh "\$@" 
__END__
chmod 775 src-hilite-lesspipe-bio.sh
mkdir -p /bucket/BioinfoUgrp/DebianMed/$DEBVERSION/modulefiles/biosyntax-less/
cat > /bucket/BioinfoUgrp/DebianMed/$DEBVERSION/modulefiles/biosyntax-less/1.0.0b-2.lua <<__END__
-- Default settings
local modroot    = "/bucket/BioinfoUgrp/DebianMed/$DEBVERSION"
local appname    = myModuleName()
local appversion = myModuleVersion()
local apphome    = pathJoin(modroot, "modules", "biosyntax-less", appversion)

-- Package information
whatis("Name: "..appname)
whatis("Version: "..appversion)
whatis("URL: ".."https://github.com/oist/BioinfoUgrp")
whatis("Category: ".." bioinformatics")
whatis("Keywords: ".." Bioinformatics, Debian")
whatis("Description: ".." Syntax Highlighting for Computational Biology")

help([[This module runs from Singularity image of Debian Med.
Please contact the Bioinfo user group for details.]])

-- Package settings
depends_on("singularity", "source-highlight")

-- Adatpted from /usr/share/doc/biosyntax-less/rc_append.txt

pushenv("HIGHLIGHT", "/usr/share/source-highlight")
pushenv("LESSOPEN", "| " .. apphome .. "/src-hilite-lesspipe-bio.sh %s")
pushenv("LESS", " -R ")

set_alias("less", "less -NSi -# 10")
--  -N: add line numbers
--  -S: don't wrap lines (force to single line)
--  -# 10: Horizontal scroll distance

-- Explicit call of  <file format>-less for piping data
-- i.e:  samtools view -h aligned_hits.bam | sam-less
-- Core syntaxes (default)
set_alias("clustal-less", "source-highlight -f esc --lang-def=\$HIGHLIGHT/clustal.lang --outlang-def=\$HIGHLIGHT/bioSyntax.outlang     --style-file=\$HIGHLIGHT/fasta.style | less")
set_alias("bed-less", "source-highlight     -f esc --lang-def=\$HIGHLIGHT/bed.lang     --outlang-def=\$HIGHLIGHT/bioSyntax.outlang     --style-file=\$HIGHLIGHT/sam.style   | less")
set_alias("fa-less", "source-highlight      -f esc --lang-def=\$HIGHLIGHT/fasta.lang   --outlang-def=\$HIGHLIGHT/bioSyntax.outlang     --style-file=\$HIGHLIGHT/fasta.style | less")
set_alias("fq-less", "source-highlight      -f esc --lang-def=\$HIGHLIGHT/fastq.lang   --outlang-def=\$HIGHLIGHT/bioSyntax.outlang     --style-file=\$HIGHLIGHT/fasta.style | less")
set_alias("gtf-less", "source-highlight     -f esc --lang-def=\$HIGHLIGHT/gtf.lang     --outlang-def=\$HIGHLIGHT/bioSyntax-vcf.outlang --style-file=\$HIGHLIGHT/vcf.style   | less")
set_alias("pdb-less", "source-highlight     -f esc --lang-def=\$HIGHLIGHT/pdb.lang     --outlang-def=\$HIGHLIGHT/bioSyntax-vcf.outlang --style-file=\$HIGHLIGHT/pdb.style   | less")
set_alias("sam-less", "source-highlight     -f esc --lang-def=\$HIGHLIGHT/sam.lang     --outlang-def=\$HIGHLIGHT/bioSyntax.outlang     --style-file=\$HIGHLIGHT/sam.style   | less")
set_alias("vcf-less", "source-highlight     -f esc --lang-def=\$HIGHLIGHT/vcf.lang     --outlang-def=\$HIGHLIGHT/bioSyntax-vcf.outlang --style-file=\$HIGHLIGHT/vcf.style   | less")
set_alias("bam-less", "sam-less")

-- Auxillary syntaxes (uncomment to activate)
set_alias("fai-less", "source-highlight      -f esc --lang-def=\$HIGHLIGHT/faidx.lang    --outlang-def=\$HIGHLIGHT/bioSyntax.outlang   --style-file=\$HIGHLIGHT/sam.style   | less")
set_alias("flagstat-less", "source-highlight -f esc --lang-def=\$HIGHLIGHT/flagstat.lang --outlang-def=\$HIGHLIGHT/bioSyntax.outlang   --style-file=\$HIGHLIGHT/sam.style   | less")
__END__

Finally make the modules available

Test them before !

cat > /apps/.bioinfo-ugrp-modulefiles81/DebianMed/$DEBVERSION.lua <<__END__
-- Setup Modulepath for packages built by this compiler
-- local mroot = os.getenv("MODULEPATH_ROOT")
prepend_path("MODULEPATH", "/bucket/BioinfoUgrp/DebianMed/$DEBVERSION/modulefiles")
__END__

TODO

  • Parse description from Debian package
  • Export man pages and add MANPATH to the Lua module.