|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -### Planned |
4 | 3 |
|
5 | | -- consider options for removing params from processes: done as lists within ext.args. potentially with conditional logic on metadata to provide different args. |
6 | | - |
7 | | -- long read support |
8 | | - - add metadata field |
9 | | - - plug in long read variant callers |
10 | | - |
11 | | -- deepvariant updates: now directly supports graphs |
12 | | - - also see [here](https://ucsc-ci.com/comparativegenomicstoolkit/cactus/-/blob/2dd29514027a0ad2c1a5d0ab581c7930c943fac5/doc/sa_refgraph_hackathon_2023.md#part-3-mapping-reads-to-the-graph) |
13 | | - - and [here](https://google.github.io/deepvariant/posts/2018-12-05-improved-non-human-variant-calling-using-species-specific-deepvariant-models/) |
14 | | - |
15 | | -- Reinstate support for topic channel version reporting in processes that use storeDir, see GH issue: https://github.com/nextflow-io/nextflow/issues/5785, currently disabled due to a Nextflow bug |
16 | | - |
17 | | -- Better test data with known variants of interest, add screenshots of variant calls vs genotyping outcomes |
18 | | - |
19 | | -- Integrate an optional input of reference assembly annotation file(s), with built in liftover to the extracted references |
20 | | - |
21 | | -- Support interleaved BAM input, convert to FASTQ (see EAGER) |
22 | | - |
23 | | -- Joint freebayes calling, or post-hoc (multiVCFanalyzer?) (see EAGER). Check also freebayes implementation in EAGER. |
24 | | - |
25 | | -- Check other EAGER modules |
26 | | - |
27 | | -- Consider mapping quality assessment: preseq, qualimap2, endorS.py (EAGER) |
28 | | - |
29 | | -- Consider other tools: MtNucRatio, GATK, bedtools, bamUtils, ANGSD, pileupcaller, VCF2Genome, MultiVCFAnalyzer, bcftools annotate, bcftools for genotyping/filtering, snpeff, vep, bamRefine |
30 | | - - ANGSD: instead of using pileupCaller, could use ANGSE in two separate modules: pseudo-haploid genotyping and genotype likelihoods |
31 | | - |
32 | | -- Consider VCF binning (e.g., HPRC deconstructs twice with different filters, also does joint calling? and then splits to sample level VCF) |
33 | | - - HPRC: -l 0 -r 10000000, then separates into SVs and small variants |
34 | | - - HPRC: -r 100000, keeping nested variants |
35 | | - - Split multi-sample VCF to single with bcftools |
36 | | - - Multiallelic sites split to bi-allelic records |
37 | | - - VCF decomposed to SNPs and indels with vcfdecompose |
38 | | - - Extract and normalise small variants with bcftools |
39 | | - - Concatenate again on sample level |
40 | | - - Similar with DeepVariant & then compare |
41 | | - |
42 | | -- Potential flaw: |
43 | | - - this approach assumes sample name will never be the same. But two haplotypes from the same sample will have the same sample name: |
44 | | - `vg paths --paths-file \$i --extract-fasta -x ${graph} > \$basename.fasta` |
45 | | - - add haplotype number metadata field and update metadata labelling within processes |
46 | | - |
47 | | -______________________________________________________________________ |
48 | | - |
49 | | - |
50 | | -## [Unreleased] |
51 | | - |
52 | | - |
53 | | - |
54 | | - |
55 | | - |
56 | | -## [1.3.0] - 2025-03-XX TODO: [Unreleased] |
| 4 | +## [1.3.0] - 2025-08-18 |
57 | 5 |
|
58 | 6 | ### Added |
59 | 7 |
|
60 | 8 | - README.md updated with workflow output details and more information on genotyping and variant calling tools |
61 | 9 | - Most relevant, now explicitly point out the difference between the genotyping and variant calling tools |
62 | | -- TODO: detail on deepvariant and freebayes |
63 | | - |
64 | | -### Added |
65 | 10 |
|
66 | 11 | - Implemented `storeDir` for outputs that need to be run once (snarls, hapl index, filter index). This is helpful when multiple users share a file system for storing graphs. Processes won't rerun even on fresh repo clones |
67 | | -- These now store to a new folder next to the graph using the graph basename, e.g.: `example-unfiltered.gbz`, indexes are stored in: `example-unfiltered_indexes` |
| 12 | +- These now store to a new folder next to the graph based on the graph basename, e.g.: `human.gbz`, indexes are stored in: `human_indexes` |
68 | 13 | - To ensure other stored indexes are not picked up by other stores, each index category goes into a specific subdirectory |
69 | 14 | - Linked to adding `storeDir`, temporarily disabled topic channel version reporting from 3 modules that use it (https://github.com/nextflow-io/nextflow/issues/5785) |
70 | 15 |
|
71 | | -### Added |
72 | | - |
73 | 16 | - Linear references extracted from the graph are now included as output files in `results/linear_references` |
74 | 17 |
|
75 | | -### Added |
76 | | - |
77 | 18 | - ext.args template added to each module, and placeholder module config file added `conf/modules.config` |
78 | 19 |
|
79 | | -### Changed |
80 | | - |
81 | 20 | - changed names of genotyping modules, channels, params etc. to increase their descriptive clarity - e.g. vg-graph-call -> vg_deconstruct, vg-map-call -> vg_genotype |
82 | 21 | - for clarity genotyping outputs go into a genotyping folder, not variant_calling |
83 | 22 |
|
84 | | -### Changed |
85 | | - |
86 | 23 | - output directory structure improved to reduce nesting, as a result of related changes to outputs |
87 | 24 |
|
88 | | -### Changed |
89 | | - |
90 | 25 | - module names use consistent underscore separation, more descriptive |
91 | 26 |
|
92 | | -### Changed |
93 | | - |
94 | 27 | - GAM filtering: added a param "--gamFilterMore". When false, filters only on primary alignment score + defrays ends. When true, applies MAPQ filter and discards unmapped reads |
95 | 28 | - Under the hood this is controlled by conditional logic in `modules.config` that sets the value of `ext.args2` |
96 | 29 |
|
97 | | -### Changed |
98 | | - |
99 | 30 | - Fastp previously defaulted to discard unmerged reads for aDNA samples. It now defaults to keeping them. |
100 | 31 | - This is controlled by a parameter `--discardUnmerged` (default false) |
101 | 32 | - Under the hood this controls FASTP `ext.args` in `modules.config`, outputting two extra fastq files for unmerged reads. |
102 | 33 | - If these files are present, they are first concatenated with the respective merged reads before sample level concatenation and re-deduplication |
103 | 34 | - i.e. the mapper would receiving one file per sample, containing all libraries, and both merged and unmerged reads in a single deduplicated package |
104 | 35 | - As a result of this change, also added safety to FASTQC on receiving empty FASTQ files |
105 | 36 |
|
106 | | -### Fixed |
107 | | - |
108 | 37 | - Patched non-zero exit when getting heap space for profilepmd, which would cause process to fail even if successful. Force 0 exit. |
109 | 38 | - All output folders use underscores (no dashes) for consistency |
110 | 39 |
|
| 40 | +- updated DAG |
111 | 41 |
|
112 | | -### Updated |
113 | | - |
114 | | -- TODO: updated DAG |
115 | | - |
116 | | - |
117 | | - |
118 | | - |
119 | | - |
120 | | - |
| 42 | +- additional test graphs added to `data/test/additional_graphs` |
121 | 43 |
|
| 44 | +- added safety to FASTQC in case of empty input files (e.g. in the case of unmerged aDNA output from FASTP) |
122 | 45 |
|
123 | 46 |
|
124 | | -<!-- Release history --> |
125 | 47 |
|
126 | 48 | ## [1.2.2] - 2025-03-04 |
127 | 49 |
|
|
0 commit comments