Skip to content

try to bring in trackhubs - #10

Open
erikenbody wants to merge 270 commits into
ccgproject:mainfrom
harvardinformatics:main
Open

try to bring in trackhubs#10
erikenbody wants to merge 270 commits into
ccgproject:mainfrom
harvardinformatics:main

Conversation

@erikenbody

Copy link
Copy Markdown
Collaborator

No description provided.

cademirch and others added 30 commits July 11, 2023 11:09
rename create_intervals to create_db_intervals per #114
mosdepth 0.3.4 was compiled without --d4. Fix to 0.3.3 until resolved.
Fix mosdepth to 0.3.3 to resolve --d4 issue
Was unable to test the environment from the docs. 

Change ./test/ecoli to .test/ecoli (or ./.test/ecoli), and include --use-conda
At the moment, the read group string is set by the "run" column. This means that the same library sequenced on multiple flow cells gets treated separately when duplicates are marked, even though duplicate marking happens after merging reads. The correct usage of the read group would set a library string and then the full RG string would be the same value for one library sequenced across multiple lanes. This should lead to GATK and Sentieon both marking duplicates according to the LibraryName column, while retaining the utility of the run column processing each run separately before bam merging.
it could be useful to add all this info to the github index too, for lazy people who don't want to click the docs link
I suggest someone reviews my suggested changes to the table
Currently bcftools removes mtDNA rather than the chromosomes specified by chr_ex
scaffolds_to_exclude is now required
Add scaffolds_to_exclude param in QC
Add links to Globus data collection and the manuscript in the readme.
update libname in read group so that it returns the string, not dictionary object
pin python to 3.10 to fix pyd4 issue
Tim Sackton and others added 30 commits March 13, 2026 10:25
* Fix dead main workflow targets

* Fix non-interval GATK and URL reference paths

* Preserve sample IDs in GenomicsDB mapfiles

* Validate callable-sites coverage for gVCF-only inputs

* Remove dead main-workflow helpers and legacy scripts

* Update QC bcftools pin to 1.23

* Fix external gVCF mapfile test config

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
* Implement callable sites BED generation

* add unit tests and fixtures (#294)

* add unit tests and fixtures

* update gitattrs

* update setup env task

* fix conftest

* ci: run parallel unittest

* add pytest-split; update actions

* test: prune fixtures to minimal set

* test: add sample0 raw bam fixtures

* ci: update actions to split full run test

* add zarr tests

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
Co-authored-by: Cade Mirchandani <cademirch@gmail.com>
* fix: Add example project directory with symlinks to test fixtures

Lets users run a quick test with --directory example/ without
needing to set up their own data or risk overwriting CI fixtures.

* cleanup: delete old .test dir
Updated documentation links and added a note about Snakemake version.
* Remove retired modules and harden QC modules

* Add standalone postprocess runner

* Remove retired module tests

* Fix numeric QC fixture generation

* Remove retired module shards from CI
* Fix ffq fallback for SRA downloads

* Pin sra-tools to 3.2.1

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
* Preserve numeric-like sample identifiers
* Fix QC numeric ID preservation and add regression test
Co-authored-by: Tim Sackton <timsackton@gmail.com>
Co-authored-by: Tim Sackton <timsackton@gmail.com>
* add debug info

* Remove duplicate rule all from debug branch

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
)

* update QC module to be robust to BCFtools reporting different annotations than GATK

* Fix QC dashboard for AD-only bcftools depth

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
* Avoid sorting raw coverage BED intervals

* Test direct coverage BED merge parity

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
* Add complexity-aware DB interval splitting

* Auto-merge pathological GenomicsDB contig shards

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
* Handle callable sites for mixed gVCF samples
* Move GATK memory resources into profile

* Make resource dry-run tests version tolerant

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
* remove redundant tabix lines from deepvariant rule

* Clean GLnexus scratch DB before joint call

* Bump DeepVariant container to 1.10

* Set GLnexus memory budget from profile

* Remove runtimes from variant resource defaults

* Resolve GLnexus memory budget after resources

* Treat PLINK half-calls as missing in QC

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
* bai -> csi migration

* Use explicit CSI indexes for GATK

* resolve merge conflicts

* Restore explicit GATK BAM CSI index handling

* Fix long-contig GATK interval gather

* Sort long-contig staged GATK interval VCFs

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
…#334)

* Apply GATK hard filters to GATK-lineage callers; fix filtering wiring

In v2.1 the GATK hard filters (get_gatk_hard_filter_args / rule
variant_filtration) were never applied in a default run: rule all targeted
RAW_VCF, FILTERED_VCF was only reachable via the non-default call_variants
target, and both the postprocess and qc modules consumed RAW_VCF. Their
`bcftools view -f .,PASS` steps therefore ran on an all-'.' FILTER column and
were silent no-ops, so no hard filtering ever occurred.

This wires hard filtering back in, caller-appropriately:

- Hard filtering runs in the main workflow for GATK-lineage callers only
  (gatk, sentieon, parabricks), which emit the GATK annotations the filters
  need. bcftools and DeepVariant do not emit those annotations, so their raw
  VCF is the final call set. common.smk gains GATK_LINEAGE_TOOLS /
  APPLY_HARD_FILTERS / FINAL_VCF.
- results/vcfs/filtered.vcf.gz (raw + FILTER column) is produced once by the
  main workflow and shared by postprocess and qc (no double compute).
- New variant_calling.generate_filtered_vcf (default true) makes the filtered
  VCF a default product alongside raw (v1-like). It requires a GATK-family
  caller and raises a clear config error otherwise; set it false for
  bcftools/deepvariant or for a raw-only default.
- Postprocess is slimmed: the retained results/postprocess/filtered.vcf.gz is
  now the strict-filtered output, the basic filter is a temp intermediate, and
  filtered.TEMP is removed. New modules.postprocess.filtering.split_by_type
  (default true) gates the SNP/indel split; keep_basic_filter (default false)
  can retain the basic VCF. Index handling is now long-contig-mode-aware.
- QC consumes the same shared filtered VCF, so its FILTER-based steps are
  meaningful for GATK-lineage callers.

Tests and docs updated accordingly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Address review: warn+auto-disable for non-GATK; drop dead vars

- generate_filtered_vcf with a non-GATK caller now logs a warning and
  auto-disables instead of raising, so existing bcftools/deepvariant configs
  keep working on upgrade (raw VCF is their final call set). Docs, schema, and
  config comment updated to match.
- Remove unused FINAL_VCF_INDEX and POSTPROCESS_KEEP_BASIC from common.smk.
- Drop the now-vestigial test helper that injected generate_filtered_vcf:false
  for non-GATK tool swaps (auto-disable handles it); rewrite the dedicated test
  to assert the warn-and-disable path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Tim Sackton <timsackton@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
- outputs: BAM index is .csi (bai->csi migration, #326); add external
  BAM path; note VCF/gVCF index type depends on long_contig_mode
- cli: correct default resources (mem_mb 8000 / mem_mb_reduced 7000) and
  rule names in the thread table (download_sra, bwa_mem, markdup_library,
  mosdepth, clam_collect, sentieon_dedup_library); note per-rule GATK
  memory now lives in the profile (#325)
- config-schema: document generate_filtered_vcf, long_contig_mode, the
  new interval sharding keys (#321), qc.max_sample_missingness (#312),
  and postprocess split_by_type / keep_basic_filter; refresh full example
- modules: add max_sample_missingness and split_by_type/keep_basic_filter
- tutorials/how-to: fix stale rule names and resource values
- install: recommend Snakemake 9.12
Co-authored-by: Tim Sackton <timsackton@gmail.com>
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.

5 participants