In this repository are presented multiple tools :
- The main one Nextflow analyzer allows users to extract information (info on processes or and the structure) of a single or multiple Nextflow workflows. This tool is found here at the root.
- The second one ProSim allows users to compare processes following different hypotheses, it is presented and is found here
- The last one AddInDatabase allows users to add in a Postgresql database all the information about a workflow, it is presented and is found here
Main contributors are:
Nextflow analyzer allows users to extract information automatically from Nextflow workflows.
The main information extracted are :
- The structure of the workflow, this refers to all the interaction possible between the processes and the operations of the workflow. The structure is represented by a directed acyclic grap. The analyzer can only extract the structure of Nextflow workflows written in DSL1. Meaning if the user gives a workflow written in DSL2, the analyzer will not return the structure.
- Information concerning the different processes of the workflow, this information is composed of the individual tools used by the processes, the inputs and outputs etc. This information is saved in a json file which can easily be used later on, to perform analysis (it is these json files that we give ProSim to perform processe comparison, see here). The analyzer can extract this information (on the processes), from any type of Nextflow workflow. Meaning that the json file will be produced if the user gives the analyzer a workflow written in DSL1 or DSL2.
Finally the analyzer has 2 modes :
- single
- multi
Single mode is used to perform the analysis of a single workflow.
Multi mode is used to perform the analysis of multiple workflows.
All the code is annoted, and there is an explicit explanation of the different steps of the analyzer here.
- None
Please submit GitHub issues to provide feedback or ask for new features, and contact us for any related question.
sudo python3 setup.py install
See here for a more explicit explanation on how to run the analyzer
When analyzing a single DSL1 workflow, the analyzer needs as input the address of the main of the workflow.
NFanalyzer --input 'address/to_folder/to_workflow.nf' --results_directory 'address/to_save' --name 'New_Analysis' --mode 'single'
When analyzing a single DSL2 workflow, the analyzer needs as input the address of a folder containing the nextflow files of the workflow.
NFanalyzer --input 'address/to_folder/to_workflow' --results_directory 'address/to_save' --name 'New_Analysis' --mode 'single'
When analyzing a multiple workflows, the analyzer needs as input the address of a folder containing the all the workflows wanting to be analyzed.
NFanalyzer --input 'address/to_folder/to_workflows' --results_directory 'address/to_save' --name 'New_Analysis' --mode 'multi'
Your software environment needs the following Python packages :
- setuptools
- argparse
- pathlib
- os
- glob2
- re
- graphviz
- json
- rdflib
- jellyfish
- glob
- threading
- queue
- time
- sys
- functools
- ntpath
FAIR-Checker is released under the MIT License. Some third-party components are included. They are subject to their own licenses. All of the license information can be found in the included LICENSE file.
#TODO