ToolDirectory provides a convenient tool to display list of softwares in a web page along with dynamic data filtering capabilities.
You can test our public demo
Web rendering relies on Katalog viewer which simply expects you provide a ".csv" file containing the list of software metadata to use for visualization. The csv format expected by Katalog is quite simple, simply refer to this example to review column names (matadata).
Either you create that ".csv" file yourself (i.e. a dedicated script to collect software information installed on your cluster), of you use the Python ToolDirectory herafter presented.
ToolDirectory is a Python 3.x program. It also requires the following package:
- requests >=2.25.1
- rich-click >=1.5.2
- loguru >=0.6.0
conda create -p tooldir -c anaconda requests=2.25.1 rich-click=1.5.2 loguru=0.6.0
$ tooldir -h
Usage: tooldir [OPTIONS] COMMAND [ARGS]...
ToolDirectory: A dynamic visualization of pieces of software managed by
a Bioinformatics Core Facility
╭─ Options ─────────────────────────────────────────────────────────────╮
│ --version Show the version and exit. │
│ --help -h Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────╯
╭─ Main usage ──────────────────────────────────────────────────────────╮
│ create Create tool properties or add a new version │
│ update Update metadata of a tool │
│ status Set installation status of a tool's version │
╰───────────────────────────────────────────────────────────────────────╯
╭─ Visualization ───────────────────────────────────────────────────────╮
│ kcsv Create csv for Keshif visualisation │
╰───────────────────────────────────────────────────────────────────────╯
ToolDirectory expects a directory structure with the following constraints:
- /path/to/tools/tool-name/tool-version/
Or, with modules architecture:
- /path/to/tools/tool-name/modulefile
Or, with modules architecture:
- <install-dir>/<tool>/
Here is an example:
/path/to/tools/
├── blast
│ ├── 2.2.31 #Folder or modulefile
│ └── 2.6.0
├── plast
│ └── 2.3.2
├── beedeem
│ └── 4.3.0
.../...
tooldir create -n <tool-name> -v <tool-version> -o <username> -p /path/to/tools/
Sometimes the processus fails: it happens when the tool is not referenced yet in Bio.tools. You can manually fill the missing fields but we strongly encourage you to create the tool description on Bio.tools and recreate or update the json.
In the case of the installation of an addition of a new version, the json is modified to add the associated information without changing the metadata of the tool.
tooldir update -j /appli/bioinfo/spades/properties.json
It may happen that the name you gave for the tool differs from the identifier given in Bio.tools. In this case, it is possible to force the search to retrieve the metadata.
tooldir create -n interproscan -v 5.48-83.0 -o acormier -b interproscan_ebi
tooldir update -j /appli/bioinfo/interproscan/properties.json -b interproscan_ebi
You will need Katalog viewer library.
git clone https://github.com/ifremer-bioinformatics/Katalog /foo/bar/www/ToolDirectory
Then, generate the software list:
tooldir kcsv -p /path/to/tools/ -c /foo/bar/www/ToolDirectory/Softwares.csv
You can use a crontab to automatically update the software listing.
Tool Directory is released under the terms of the Apache 2 license.