Giter VIP home page Giter VIP logo

galaxy_container_util's Introduction

galaxy_container_util

Implements the "container avail" utility for searching images published on the singularity.galaxyproject.org CVMFS repository.

Usage instructions for using "container avail" utility

The container utility should be considered a working prototype. Since it is currently only a single-file script, we haven't created an installer. The utility is designed to run on systems including Galaxy CVMFS clients, but it will run most systems even if CVMFS has not been installed and configured to use the Galaxy CVMFS repositories.

Note that Python 3.X needs to be installed on the target system for the container script to run. The script has been tested with versions 3.6 - 3.10 in RHEL, Ubuntu, Windows and MacOS. The container script uses only the standard libraries for maximum portability.

The Python script container in this repository should be copied into /usr/local/sbin or similar script directory included in the user's PATH environment variable, and executable permissions set using chmod 755 /usr/local/sbin/container.

If the /cvmfs/singularity.galaxyproject.org directory is not present on the target system, then the container utility will download a file listing from the AARNet UAT stratum 1 CVMFS service. This publicly-accessible list file is refreshed every 30 minutes using the script update_repo_list.sh on the stratum 1 server.

$ container --help
usage: container [-h] [-q] [-r] [-a | -l] [-m | -s] [-v VERSION] [arguments [arguments ...]]

container v0.0.1 - "container avail" helps you locate and access thousands of container images available via a read-only 
filesystem (CERN VM-FS). This service is currently available at the NCI and Pawsey Australian Compute Facilities

positional arguments:
  arguments             <command (avail)> <tool name search string(s) (use * for wildcard - must be quoted for *nix)>

optional arguments:
  -h, --help            show this help message and exit
  -q, --quiet           Suppress optional output and show only image paths
  -r, --refresh         Force cache refresh
  -a, --all             Show ALL images for each tool
  -l, --latest          Show only latest image by version and build, or by date modified if --modified flag used
  -m, --modified        Sort by ascending file modification datetime instead of version and build (DANGEROUS!)
  -s, --size            Sort by ascending file size instead of version and build
  -v VERSION, --version VERSION
                        Filter images by version

For example:

  • container avail samtools will list all image information available for the most recent version of "samtools" (with ALL optional information)
  • container avail samtools -q will list all image paths available for the most recent version of "samtools" (with NO optional information)
  • container avail samtools -ql will list the latest image path available for the most recent version of "samtools" (with NO optional information)
  • container avail samtools -qv 1.2 will list all image paths available for "samtools" version 1.2 (with NO optional information)
  • container avail '*rna*' -ql will list the latest image paths available for all tools containing the string 'rna' (with NO optional information). Note that the '*' wildcard character should be quoted to avoid evaluation in the shell.
  • container avail will list all images available for the most recent version of every tool (with ALL optional information) - LONG!

Attributions

The initial version of the container utility was written by Alex Ip of AARNet Pty. Ltd. @alex-ip https://orcid.org/0000-0001-8937-8904

The guideline documentation template is supported by the Australian BioCommons via Bioplatforms Australia funding, the Australian Research Data Commons (https://doi.org/10.47486/PL105) and the Queensland Government RICF programme. Bioplatforms Australia and the Australian Research Data Commons are enabled by the National Collaborative Research Infrastructure Strategy (NCRIS).

The BioCommons would also like to acknowledge the contributions of the following individuals and institutions to these documentation guidelines:

  • Johan Gustafsson (Australian BioCommons, University of Melbourne) @supernord
  • Brian Davis (National Computational Infrastructure) @Davisclan
  • Marco de la Pierre (Pawsey Supercomputing Centre) @marcodelapierre
  • Audrey Stott (Pawsey Supercomputing Centre) @audreystott
  • Sarah Beecroft (Pawsey Supercomputing Centre) @SarahBeecroft
  • Matthew Downton (National Computational Infrastructure) @mattdton
  • Richard Edwards (University of New South Wales) @cabbagesofdoom
  • Tracy Chew (University of Sydney) @tracychew
  • Georgina Samaha (University of Sydney) @georgiesamaha

galaxy_container_util's People

Contributors

alex-ip avatar supernord avatar

Watchers

 avatar  avatar  avatar  avatar

galaxy_container_util's Issues

Suggestions

Hey @alex-ip - repository is looking good ๐Ÿ˜„

Two suggestions:

  • The contents of tools.md could be shifted over into the README (I might make this change to the original template - with a suggestion in the template README to use either workflows.md or tools.md, or even a custom generated README file from https://readme.so/)
  • There is no license: Apache?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.