#%Module

module-whatis	        "crYOLO is a fast and accurate particle picking procedure for electron microscopy"
module-url		"http://sphire.mpg.de/wiki/doku.php?id=pipeline:window:cryolo"
module-license	        "SPHIRE-crYOLO Complimentary Science Software License (http://sphire.mpg.de/wiki/doku.php?id=cryolo_license). Non-commercial academic and research purposes only"
module-maintainer	"Spencer Bliven <spencer.bliven@psi.ch>"

module-help	"
CrYOLO is a fast and accurate particle picking procedure. It's based on
convolutional neural networks and utilizes the popular You Only Look Once
(YOLO) object detection system.

  * crYOLO makes picking fast – On a modern GPU it will pick your particles at
    up to 6 micrographs per second.
  * crYOLO makes picking smart – The network learns the context of particles
    (e.g. not to pick particles on carbon or within ice contamination )
  * crYOLO makes training easy – You might use a general network model and skip
    training completely. However, if the general model doesn't give you
    satisfactory results or if you would like to improve them, you might want
    to train a specialized model specific for your data set by selecting
    particles (no selection of negative examples necessary) on a small number
    of micrographs.
"

# Check for supported shell types
set shelltype [module-info shelltype]
switch -- $shelltype {
    "sh" {
        puts stdout "source \"\${ANACONDA_PREFIX}\"/admintools/conda_setup.sh;\n"
    }
    default {
        puts stderr "Shells of type '$shelltype' are NOT supported!"
    }
}

# Determine useflags and construct conda env name
set list [split $V "_"]
set version  [lindex ${list} 0]
set useflags [lrange ${list} 1 end]
set flavour  [lindex $useflags 0]
set env_to_activate [string tolower ${P}]-${version}-${flavour}

#puts stderr "P/V: $P/$V"
#puts stderr "USEFLAG: [lindex $useflags 0]"
#puts stderr "$env_to_activate"

switch [module-info mode] {
    "load" {
      # Relies on the anaconda module being loaded since we need to update the path
      puts stdout "conda activate $env_to_activate;\n"
    }
    "unload" -
    "remove" {
        puts stdout "conda deactivate;\n"
    }
}

