Releases: BortonWrightonLabs/DRAM
Release list
v2.0.0-beta37 Release
2.0.0-beta37 - 2026-09-08
Bug Fixes
-
Hotfix distill_bgc spacing error (b7d9ddc)
-
Email flag fix to send emails on run complete (5024106)
The email flag was silently failing for a few reasons. Inocrrect paths to assets,
not passing the header, and not giving feedback on sendmail result.
The plaintext email also failed because of not sending the header properly.
Now it tries sendmail for the html email, if that fails, it uses the plaintext email
as a backup and lets you know this in the console output and in log.
Documentation
- Update headers and links (229ada3)
Features
-
GPU mmseqs support (2517f88)
Add optional GPU acceleration for MMseqs2 searches through the GPU
profile, including GPU database preparation, validation, and per-database
CPU exclusions.Integrate CPU and GPU searches with the shared batching workflows,
size-based resource allocation, and executor job arrays. Update pipeline
configuration, schema, documentation, and tests. -
Dynamically allocate resources based on size, remove slurm config (463ebf2)
- Dynamically bucket CALL_GENES, QUAST, HMM_SEARCH, and MMSEQS_SEARCH tasks by input workload size.
- Add opt-in, resource-uniform job arrays for bucketed CALL_GENES, HMM_SEARCH, and MMSEQS_SEARCH tasks, BREAKING CHANGE:Replace the built-in site-specific Slurm configuration with a minimal
slurmprofile and user-supplied cluster configuration. Replace tier-specific resource parameters withmax_cpus,max_memory, andmax_timecaps, and renamearray_sizetojob_array_size.
-
Add job batching for call, rna, and db scans (e2be421)
Input batching for CALL, rna scan and mmseqs and hmmer search,
inputs can be batched together with inputs above a certain size
being ran on their own job. This is allows users to batch inputs
in situations when a SLURM queue is very full and scheduling
many small jobs is difficult. In this siutation, it might be
better to batch them together for when they do get scheduled.
v2.0.0-beta36 Release
2.0.0-beta36 - 2026-08-11
Bug Fixes
-
Update diamond to fix hang problem (1c4a8cf)
Update rundbcan easysubstrate and pin diamond to 2.2.5.
In diamond 2.2.3 they mention fixing a problem with hanging sometimes,
pinning diamond above that seems to eliminate the occassional dbcan
hang problem.
Features
- Update BGC rules (5f1747b)
v2.0.0-beta35 Release
All betas included while DRAM2 was in private development (beta29-beta35)
2.0.0-beta35 - 2026-08-10
Features
2.0.0-beta34 - 2026-07-31
Features
2.0.0-beta33 - 2026-07-27
Features
-
Update and add new ecosystem summaize sheets (c718b7f)
Update eng_sys sheet
Add new gut, marine, and biogeochemical sheets -
Add new ecos sheets from viz update (1ae7ac2)
Add marine, eng_sys, and bgc to viz sheet options
2.0.0-beta32 - 2026-07-16
Bug Fixes
-
Update vix for mapping fixes, and dram cli inputs (2fc9d76)
Update DRAM cli inputs for running annotationis stand alone,
input genes with mapping options, and mapping option overridesUpdate viz package for bug fixes
Update NF container tags for updated apptainer and singularity versions.
Adds extra apptainer/singularity URIs for container image resolution.
2.0.0-beta31 - 2026-07-09
Features
-
Update Rules and rule parsing (ccb7d35)
Update ag rules, ag product
Update taxonomy parsing to allow taxonomy rules
Update rule parsing to allow count based rules
Update visualization to allow metaT mapping input and mapping heatmaps
2.0.0-beta30 - 2026-05-28
Bug Fixes
-
dbcan now passes threads argument fix (7962c4b)
-
Add retry on dbcan for io concurrency problem (7409a1b)
Features
2.0.0-beta29 - 2026-05-22
Bug Fixes
-
Fix use_* options (3437cac)
-
Fix bugs in format_kegg_database.py (743bf8e)
-
Fix MMseqs2 output database name (kegg.mmsdb, not kegg..mmsdb)
- The database was written as kegg.<download_date>.mmsdb but
modules/local/annotate/mmseqs_search.nf expects the file to be named
exactly kegg.mmsdb (it constructs the path as ${db_name}.mmsdb where
db_name is the parent directory name "kegg"). The date suffix caused a
"No such file or directory" error at annotation time.
- The database was written as kegg.<download_date>.mmsdb but
-
Fix --skip_gene_ko_link argparse definition
- Using
type=booldoes NOT work as a flag: argparse passes the string
"False" / "True" to bool(), and bool("False") == True. Replaced with
action="store_true"so the flag behaves as intended.
- Using
-
-
Two bugs in format_kegg_db.nf (3afbce8)
-
Replace container that lacks mmseqs2
- FORMAT_KEGG_DB used python_scikit-bio_scipy which does not include
mmseqs2. The process calls mmseqs createdb / createindex, so it fails
immediately with "No such file or directory: mmseqs". Replaced with
python_pandas_hmmer_mmseqs2_pruned, which already carries mmseqs2 and
is used by other annotation processes in the pipeline.
- FORMAT_KEGG_DB used python_scikit-bio_scipy which does not include
-
Fix bash condition for skip_gene_ko_link
- The Nextflow value passed to the process is the string "0" or "1"
(see dram.nf). In bash,if [ "0" ]evaluates to TRUE because any
non-empty string is truthy. FORMAT_KEGG_DB therefore always ran the
--skip_gene_ko_link branch, ignoring the gene_ko_link file.
Fixed with an explicit string comparison:
if [ "${skip_gene_ko_link}" = "true" ]
(see companion fix in workflows/dram.nf)
- The Nextflow value passed to the process is the string "0" or "1"
-
-
Pass boolean string to FORMAT_KEGG_DB skip_gene_ko_link (f4b2394)
The companion fix for the bash condition in format_kegg_db.nf requires
that skip_gene_ko_link be the string "true" or "false" rather than the
integer 1 or 0.In bash:
if [ "0" ]-> true (non-empty string)
if [ "false" ]-> true (still non-empty - also wrong)The correct pattern used in format_kegg_db.nf is:
if [ "${skip_gene_ko_link}" = "true" ]which requires this value to be exactly the string "true" or "false".
Changedparams.skip_gene_ko_link ? 1 : 0to
params.skip_gene_ko_link ? "true" : "false". -
Rgi no longer outputs temp dir (7fe178e)
rgi was outputting a temp/ dir to the outdir, and if multiple
process ended at the same time and tried to write the same
directory name, it could cause an error.
We don't need this dir, so I am just not writting it to the
outir. -
Antismash,rgi,dbcan run with called_genes (f54f848)
antismash,rgi, and dbcan3 were erroring out when ran with called_genes
because of the way the logic was implemented. Redid the logic to define
allow the input channels to be created conditionally or be empty to skip
certain processes when needed.Cleaned up some code around rename that was involved with this and
allowed input .fna files to be renamed as well.Generate gff file from input .faa file by default since it is needed for
some new databases and it is a very quick process.
Features
-
Update dbcan to dbcan3 using run_dbcan tool (0811137)
Using the run_dbcan tooling, update our use of dbcan from
dbcan2 to dbcan3. We will use the easysubstrate call to run the
entire run_dbcan pipeline. This initial step just consumes the first
stages output and does not include the CGC or easysubstrate in our
annotation or summarize.Add parsing for run_dbcan output to incorporate into raw-annotations.tsv
Add ability for dram to check DB version with added version file. This
is an optional, per database add-on that is currently only being used
with dbcan to ensure users are updated to dbcan3. -
Update sum topics to new sheet form (3f1eef4)
Update summarize topics to use assimilation_and_cofactor_metabolism,
cellular_machinery, energy_acquisition_bioenergetics, and
environmental_interaction_and_adaptation sheets. Each sheet
gives out a excel sheet of their own. -
Accept gzip-compressed fasta input (f397b4a)
Adds a small DECOMPRESS_FASTA module (
reformat.shfrom the bbmap
container that other modules already use) and routes only.gz
inputs through it via a channel branch on the.gzsuffix. Plain
fastas pass through unchanged.Sample-name normalisation strips both the trailing
.gz(if present)
and one of.fa/.fna/.fastasosample.faandsample.fa.gz
yield the same downstream name. Outputs are identical regardless of
input compression.Default
--fasta_fmt '*.f*'already matches both plain and.gz
files; schema description updated to mention this explicitly., Files:modules/local/rename/decompress_fasta.nf (new, 20 lines)
workflows/dram.nf (channel branch + mix)
nextflow_schema.json (description updates) -
SLURM job-array submission for per-sample fan-out stages ([f3ef6eb](f3ef6eb915b6d34832a1d469370c5...
v2.0.0-beta28 Release
2.0.0-beta28 - 2026-04-15
- Adds preliminary testing versions of antismash, and rgi raw outputs (not incorporated into annotations or any downstream steps, just raw putputs in dedicated foulders)
- Adds TCDB, and CARD mmseqs searches to to annotations
- Add curated DRAM DB hmm database to annotation
New databases can be downloaded from GLOBUS
Features
-
Add antiSMASH, CARD, RGI, TCDB (8d08d1f)
Add antiSMASH nextflow module, right now just collect antismash
raw output while we work on incorporating raw output into
larger pipeline
Add rgi nextflow module, right now like antiSMASH, only
collect raw output while we work on incorporating
ADD CARD db processing with mmseqs
ADD TCDB processing with mmseqs -
Add DRAM DB HMMs = (e07cd74)
Add DRAM team curated HMM database as new annotation db option.
Work in progress and testing database, but can be found on GLOBUS.
v2.0.0-beta27 Release
2.0.0-beta27 - 2026-03-18
Features
-
Add a test version of dbcan3 to compare against dbcan2 (efb3cc2)
dbcan3 and dbcan3-sub test versions, will run both if run_dbcan3
option is present. -
Switch hmmsearch to using PyHMMER search (7d9a12d)
PyHMMER has better parrallelism support, directly calling
the lower level C bindings for HMMER and rewriting how
it parallelizes. This means that when you had cpus=4 arg, it can
1/3 of the walltime with the exact same result.
v2.0.0-beta26 Release
2.0.0-beta26 - 2026-03-09
Features
-
Add ag heatmap output (91edea7)
Update dram_viz version to support new ag viz rules format.
When users run ag summarize, output ag visualization.
Add parameters to pass in custom rules sheets.
Package
- Add pre-commit for lint/formatting and lint/format package (c7c030a)
v2.0.0-beta25 Release
2.0.0-beta25 - 2026-03-04
Highlights
Bugfixes for utilizing --input_genes instead of --input_fasta. Various subtle
problems and edge cases with using --input_genes, also now new ability to use
--rename on already called genes with --input_genes.
Bug Fixes
-
Bugfixes for using input_genes parameter (d8d3cb8)
-
Skip tRNA and rRNA when using input_genes unless trna and rrna
input sheet provided since they require raw fasta file to produce. -
new parse_faa file to generate called_table summary file
that leave error message on non-zero exit code telling people
to check the headers metadata in case they don't match with prodigal
output metadata. -
use the same parsing code parse_faa.sh from above to generate
sumamry table for DRAM if using input_fasta and input_genes so
less likely of bug in one spot isn't noticed if other is working. -
fix bugs where downstream stuff would pass dummy sheet to summarize
and then that wouldn't properly handle it -
add ability to rename headers with input_genes with --rename flag
with rename_headers.py script and rename_proteins.nf
v2.0.0-beta24 Release
V2.0.0-beta23 Release
2.0.0-beta23 - 2026-02-01
Features
- Add new DRAM rule parser submodule for traits and distill (5e9a088)
New python Lark base rule parser that defines rule grammer
for traits grammer that can be reused for distill and product.
This rule parser is more accurate and less error prone than
the older traits parser completely custom coded. THis fixes
a number of bugs where things were being double counted and not
parsed correctly. This also allows distill, traits, and product
eventually to all use the same rule parsing code. Rule parsing
documentation can be found in docs/rules_parser.md or
https://dramit.readthedocs.io/en/latest/rules_parser.html
Rule parser is implemented with polars instead of Pandas for a
few reasons. It is a bit faster, and it allows lazy query planning.
The annotation df is not currently lazy (eager rn), but with plans
to allow it to be lazy. Lazy DataFrames can be more memory efficient
by only loading the data/columns needed, and doing query optimization
to speed up and require less memory for intermediate steps.
-
Update summarize eco Ag sheet to newly developed Ag sheet (4937f1c)
-
Add carbon rules to traits, save traits as excel sheet (02de665)
Package
- Package cleanup. Removing old files and cleanups (c6bae64)
v2.0.0-beta22 Release
What's Changed
- Bugfix/info sheet a rank fix by @madeline-scyphers in #479
Full Changelog: v2.0.0-beta21...v2.0.0-beta22