Skip to content

Latest commit

 

History

History

singularity

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Recipe to build a Singularity image for BeeDeeM software

It is worth noting that this BeeDeeM image actually contains both BeeDeeM and BeeDeeM-Tools.

Get a pre-built image

Official pre-built images of BeeDeeM are available from Ifremer-SeBiMER Gitlab container repository.

For instance, to get the 5.0.0 release, run this command (isit BeeDeeM container registry to review latest available version of BeeDeeM):

singularity pull docker://gitlab-registry.ifremer.fr/bioinfo/softwares/public-images/beedeem/beedeem:5.0.0

to get and rename under beedeem:5.0.0 the combined image of BeeDeeM and BeeDeeM-Tools.

Then, to run the image:

singularity run beedeem_5.0.0.sif bdm -h

How to build?

singularity build -f beedeem.sif Singularity

How to run?

See test_container.sh script for a working example.

How to configure?

By default you have nothing to do but setting working directory, bank installation directory and Java requirements; see test_container.sh script.

In such a case, BeeDeeM will use its internal "conf" directory to locate bank descriptors. So, if you install banks for which descriptors (.dsc files) already exist in standard "BeeDeeM/conf/descriptor"s directory (e.g. Swissprot_human) then you can go to next section "How to run?".

Otherwise, if you want to use your own bank descriptors, proceed as follows.

Option 1... the simple one. Simply setup your bank descriptor file (.dsc) outside the container. Then use "install.sh" tool of BeeDeeM and pass to its "-dsc" argument the full path to that file. Of course, use "--bind" Singularity argument to enable BeeDeeM to access your file from inside the container.

Option 2... the less simple one. Start by creating a "conf" directory, directly from BeeDeeM project, as follows:

 cd /some/path/on/your/machine
 git clone https://github.com/pgdurand/BeeDeeM.git
 (conf directory is: ./BeeDeeM/conf)

Then, before calling BeeDeeM tools using the container, setup that variable:

 export KL_CONF_DIR=/beedeem-conf

Finally, at runtime (see below), bind paths as follows:

 --bind /some/path/on/your/machine/BeeDeeM/conf:/beedeem-conf 

How to run?

BeeDeeM (inside Singularity container) expects to find 2 directories for its own usage, as follows:

 /beedeem-wk  : BeeDeeM working (tmp) directory
 /beedeem-db  : place to install databanks loaded by BeeDeeM

These folders are defined in the Singularity recipe... so, you just have to use '--bind' argument accordingly to attach these mount points to appropriate folders on your host system.

Then, setup KL_JRE_ARGS environment variable to configure amount of RAM and access to standard TMP directory for the Java Virtual Machine. A basic configuration can be:

 export KL_JRE_ARGS="-Xms128M -Xmx2048M -Djava.io.tmpdir=/beedeem-wk"

Finally, to run BeeDeeM, use such a command (adapt --bind to your host configuration):

singularity run \
   --bind $SCRATCH/beedeem/bdm-wk:/beedeem-wk     # BeeDeeM working directory \
   --bind $DATAREF/beedeem/banks:/beedeem-db      # Where to install banks \
   beedeem.sif                                    # beedeem Singularity image\
   install.sh -desc PDB_proteins                  # install PDB_proteins bank (1)

 (1) targets container file /opt/beedeem/conf/descriptors/PDB_proteins.dsc

Fine tuning BeeDeeM at rutime

Before running BeeDeeM install.sh tool, you can setup some environment variables to tune it.

Let install.sh be silent (no log):

export KL_LOG_TYPE=none

... or redirect everything to console (no log file, which is default mode):

export KL_LOG_TYPE=console

When using default log file mode, set YOUR log file name as follows:

export KL_LOG_FILE=myfile.log
(log file is always written in beedeem working directory).

Finally, you can turn on DEBUG log mode as follows:

export KL_DEBUG=true

Using Aspera with BeeDeeM

Aspera tool cannot be distributed as part of BeeDeeM due to IBM license restrictions. Let us suppose you have installed Aspera in that directory on your host system:

/opt/tools/aspera-linux 

Before running BeeDeeM Singularity container, setup these two variables:

export KL_aspera__bin__path=/software/aspera-linux/cli/bin/ascp
export KL_aspera__key__path=/software/aspera-linux/cli/etc/asperaweb_id_dsa.openssh

Then, add that "--bind" argument in your singularity run command:

--bind /opt/tools:/software