Skip to content

Copier#26

Closed
schnea wants to merge 2 commits into
snakemake-workflows:mainfrom
schnea:copier
Closed

Copier#26
schnea wants to merge 2 commits into
snakemake-workflows:mainfrom
schnea:copier

Conversation

@schnea

@schnea schnea commented Mar 12, 2026

Copy link
Copy Markdown

Summary by CodeRabbit

Release Notes

  • New Features

    • Added project templating system enabling customizable project names and feature selection.
    • Introduced example workflow demonstrating simplified input/output handling.
  • Updates

    • Simplified configuration structure with refined ignore patterns.
    • Enhanced Git handling through improved file tracking.

@schnea schnea closed this Mar 12, 2026
@coderabbitai

coderabbitai Bot commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 75bd70d4-9c85-401b-bcbc-d281fe9e1b5d

📥 Commits

Reviewing files that changed from the base of the PR and between edc3127 and ae92164.

📒 Files selected for processing (24)
  • .gitattributes
  • .gitignore
  • .test/config/config.yaml
  • config/config.yaml
  • copier.yml
  • workflow/envs/simulate_reads.yaml
  • workflow/envs/validate_genome.yaml
  • workflow/rules/common.smk
  • workflow/rules/process_reads.smk
  • workflow/schemas/samples.schema.yaml
  • workflow/scripts/validate_fasta.py
  • {{ project_name }}/.gitignore
  • {{ project_name }}/.snakemake-workflow-catalog.yml
  • {{ project_name }}/LICENSE
  • {{ project_name }}/README.md.jinja
  • {{ project_name }}/config/README.md
  • {{ project_name }}/config/config.yaml
  • {{ project_name }}/data/config.yaml.jinja
  • {{ project_name }}/data/input.txt
  • {{ project_name }}/profiles/README.md
  • {{ project_name }}/workflow/Snakefile
  • {{ project_name }}/workflow/envs/get_genome.yaml
  • {{ project_name }}/workflow/rules/example.smk
  • {{ project_name }}/workflow/schemas/config.schema.yaml

📝 Walkthrough

Walkthrough

This PR simplifies a Snakemake workflow template by removing complex read simulation, genome validation, and FastQC analysis rules, replacing them with a minimal example copy rule. It adds template configuration via copier.yml, updates Git attributes, and reorganizes ignore patterns to focus on pixi environments.

Changes

Cohort / File(s) Summary
Git and Build Configuration
.gitattributes, .gitignore
Updated .gitattributes for pixi.lock syntax highlighting with binary merge behavior; revised .gitignore to focus on pixi environments (.pixi/*) while tracking .pixi/config.toml, removing broad patterns for results, logs, and test outputs.
Test and Main Configuration
.test/config/config.yaml, config/config.yaml
Simplified configuration by removing sample_sheet, genome retrieval (get_genome.ncbi_ftp), and read simulation parameters (simulate_reads.read_length, read_number); replaced with single input_file reference in test config.
Workflow Rule Removal
workflow/rules/process_reads.smk, workflow/rules/common.smk
Eliminated complex workflow rules (get_genome, validate_genome, simulate_reads, fastqc, multiqc) and sample DataFrame loading/validation logic; removed schema-based validation imports.
Environment and Schema Files
workflow/envs/simulate_reads.yaml, workflow/envs/validate_genome.yaml, workflow/schemas/samples.schema.yaml, workflow/scripts/validate_fasta.py
Removed conda environment specifications, YAML schema definition for samples, and FASTA validation script.
Template System Configuration
copier.yml
Added new template configuration with project_name and features input fields (isolated conda environments, Jupyter Notebook Integration, Report Generation, Schema Validation) with placeholder sections for future extensions.
Template Content Files
{{ project_name }}/workflow/Snakefile, {{ project_name }}/workflow/rules/example.smk
Replaced workflow includes (common.smk, process_reads.smk) with example.smk; changed default output target from multiqc_report.html to output.txt; introduced single copy_file rule.
Template Configuration and Data
{{ project_name }}/data/config.yaml.jinja, {{ project_name }}/data/input.txt
Added templated config with max_cores and sdm variables plus default_resources; created sample input.txt data file with placeholder content.
Template Documentation
{{ project_name }}/.gitignore, {{ project_name }}/README.md.jinja, {{ project_name }}/config/README.md
Added standard Python/ML project ignore rules; refactored README header to use templated project_name and updated parameter documentation; removed workflow catalog badges and outdated references.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • dlaehnemann

Poem

🐰 A template renewed, so simple and clean,
Complex workflows trimmed to a minimal scene,
Copier guides future projects with care,
From intricate rules to examples so fair,
Now templates bloom bright in the workflow air! ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan for PR comments
  • Generate coding plan

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@schnea
schnea deleted the copier branch March 12, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant