The Cancer Complexity Toolkit Workflow is a scalable infrastructure framework to promote sustainable tool development. It performs multiple levels of analysis:
-
Basic Repository Checks
- Repository cloning and validation
- README file verification
- Dependency file detection
- Test suite presence
-
Advanced Analysis
- Software Gardening Almanack analysis
- JOSS (Journal of Open Source Software) criteria evaluation
- AI-powered repository analysis (optional, requires Synapse agent ID)
- Test execution and coverage
-
Optional Synapse Integration
- Results upload to Synapse platform
- Metadata management
- Nextflow (version 24.04.3 or later): Install from [Nextflow's official website]. Install instructions below (https://www.nextflow.io/).
- Docker (required for containerized execution): Install from Docker's official website.
- Python 3.8+: Install from Python's official website.
- Git
Important
Docker is required to run this workflow. The toolkit uses containerized processes to ensure consistent execution environments across different systems.
For Synapse integration:
- Synapse Python client
- Synapse authentication token
- Synapse configuration file
- Install Nextflow
curl -s https://get.nextflow.io | bash
- Install Python Dependencies
pip install -r requirements.txt
- Configure Synapse (Optional)
# Create Synapse config file
mkdir -p ~/.synapse
touch ~/.synapseConfig
Note
To use Synapse features, you'll need to:
- Create a personal access token from your Synapse Account Settings
- Add the token to your
~/.synapseConfig
file:[authentication] username = your_username apiKey = your_personal_access_token
- Set the token as a Nextflow secret:
nextflow secrets set SYNAPSE_AUTH_TOKEN your_personal_access_token
The workflow accepts input in two formats:
- Single Repository URL
nextflow run main.nf --repo_url https://github.com/example/repo.git
- Sample Sheet (CSV)
Example input.csv
:
repo_url,description
https://github.com/PythonOT/POT.git,Python Optimal Transport Library
https://github.com/RabadanLab/TARGet.git,TARGet Analysis Tool
nextflow run main.nf --repo_url https://github.com/example/repo.git
nextflow run main.nf \
--repo_url https://github.com/example/repo.git \
--synapse_agent_id LOWYSX3QSQ
nextflow run main.nf --sample_sheet input.csv
Note
When using AI Analysis or Synapse integration, ensure you have:
- Valid Synapse authentication token
- Proper Synapse configuration
- Synapse agent ID for AI analysis (e.g., LOWYSX3QSQ)
- Correct folder ID with write permissions (for upload)
The workflow generates several output files in the results
directory:
<repo_name>_ai_analysis.json
: AI-powered qualitative summary and recommendations (final report)almanack_results.json
: Detailed metrics from Almanack analysisjoss_report_<repo_name>.json
: JOSS criteria evaluation metricstest_results_<repo_name>.json
: Test execution results and coverage metrics
Note
The AI analysis report provides a high-level qualitative summary and actionable recommendations. For detailed metrics and specific measurements, refer to the other output files.
Warning
The AI Analysis component is currently in beta. Results may vary and the interface is subject to change.
Important
Synapse integration requires proper authentication and permissions setup.
Repository | Description | Expected Status |
---|---|---|
PythonOT/POT | Python Optimal Transport Library | All checks pass |
RabadanLab/TARGet | TARGet Analysis Tool | Fails dependency and test checks |
arjunrajlaboratory/memSeqASEanalysis | memSeq ASE Analysis | Fails dependency and test checks |
Authentication Token
- Set as Nextflow secret:
nextflow secrets set SYNAPSE_AUTH_TOKEN your_personal_access_token
Note
We welcome contributions! Please see our Contributing Guidelines for details.
This project is licensed under the MIT License - see the LICENSE file for details.