BioSkills bio-reporting-jupyter-reports
Creates reproducible Jupyter notebooks for bioinformatics analysis with parameterization using papermill. Use when generating automated analysis reports, running notebook-based pipelines, or creating shareable computational notebooks.
install
source · Clone the upstream repo
git clone https://github.com/GPTomics/bioSkills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/GPTomics/bioSkills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/reporting/jupyter-reports" ~/.claude/skills/gptomics-bioskills-bio-reporting-jupyter-reports && rm -rf "$T"
manifest:
reporting/jupyter-reports/SKILL.mdsource content
Version Compatibility
Reference examples tested with: jupyter 1.0+, papermill 2.5+
Before using code patterns, verify installed versions match. If versions differ:
- Python:
thenpip show <package>
to check signatureshelp(module.function) - CLI:
then<tool> --version
to confirm flags<tool> --help
If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
Jupyter Reports with Papermill
"Generate reproducible analysis reports" → Execute parameterized Jupyter notebooks programmatically and export as HTML/PDF reports.
- Python:
papermill.execute_notebook(input, output, parameters={...}) - CLI:
jupyter nbconvert --to html notebook.ipynb
Parameterized Notebooks
import papermill as pm # Execute notebook with parameters pm.execute_notebook( 'analysis_template.ipynb', 'output_report.ipynb', parameters={ 'input_file': 'data/counts.csv', 'condition_col': 'treatment', 'fdr_threshold': 0.05 } )
Creating Parameterized Templates
Mark a cell with the
parameters tag in Jupyter:
# Parameters (tag this cell as "parameters") input_file = 'default.csv' output_dir = 'results/' fdr_threshold = 0.05
Batch Processing
import papermill as pm from pathlib import Path samples = ['sample1', 'sample2', 'sample3'] for sample in samples: pm.execute_notebook( 'qc_template.ipynb', f'reports/{sample}_qc.ipynb', parameters={'sample_id': sample} )
Converting to HTML/PDF
# Single notebook jupyter nbconvert --to html report.ipynb # With execution jupyter nbconvert --execute --to html report.ipynb # PDF (requires pandoc + LaTeX) jupyter nbconvert --to pdf report.ipynb
Best Practices
- Keep analysis code in cells, explanatory text in markdown
- Use parameters for all configurable values
- Include version information and timestamps
- Clear outputs before committing to version control
Related Skills
- reporting/quarto-reports - Alternative report format
- reporting/rmarkdown-reports - R-based reports
- workflows/rnaseq-to-de - Embed in workflows