This Nextflow workflow (main.nf
) performs quality and metadata checks on software tools by running a series of checks:
- CloneRepository: Clones the repository.
- CheckReadme: Verifies the existence of a README file.
- CheckDependencies: Looks for dependency files (e.g.,
requirements.txt
,Pipfile
,setup.py
, etc.). - CheckTests: Checks for the presence of test directories or test files.
- CheckAlmanack: Runs the Software Gardening Almanack analysis.
The final output is a consolidated CSV report where each row represents a tool (i.e., a repository) with the following columns:
Tool, CloneRepository, CheckReadme, CheckDependencies, CheckTests, Almanack
Each column shows the status (PASS
/FAIL
) for the respective check.
You can execute the workflow in one of two ways:
- Analyze a single tool by specifying its repository URL.
- Analyze multiple tools using a sample sheet (CSV file) that includes a repo_url header.
Follow the official installation guide here or use the command below:
curl -s https://get.nextflow.io | bash
nextflow run main.nf --repo_url https://github.com/example/repo.git
Prepare a CSV file (e.g., example-input.csv) with a header repo_url and one URL per row, then run:
nextflow run main.nf --sample_sheet <samplesheet>
After the workflow completes, you'll find a consolidated CSV report (consolidated_report.csv) in your output directory (by default, under the results folder). Each row in this report represents a tool and its corresponding check statuses.
To upload results to Synapse, run the workflow with the following parameters:
nextflow run main.nf \
--repo_url https://github.com/example/repo.git \
--upload_to_synapse true\
--synapse_folder_id syn64626421
Ensure your Synapse credentials are properly set up (e.g., by mounting your .synapseConfig file).
-
Python Optimal Transport Library
- Synapse: POT
- GitHub: PythonOT/POT
- Note: Should pass all tests
-
TARGet
- Synapse: TARGet
- GitHub: RabadanLab/TARGet
- Note: Fails CheckDependencies, CheckTests
-
memSeqASEanalysis
- Synapse: memSeqASEanalysis
- GitHub: arjunrajlaboratory/memSeqASEanalysis
- Note: Fails CheckDependencies, CheckTests
Subset of tools to test: Any from this list with a GitHub repository.
- Ensure Nextflow and Docker are installed