Skip to content

Releases: BortonWrightonLabs/DRAM

v2.0.0-beta37 Release

v2.0.0-beta37 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 08 Sep 16:23

2.0.0-beta37 - 2026-09-08

24582dc...961ddde

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 slurm profile and user-supplied cluster configuration. Replace tier-specific resource parameters with max_cpus, max_memory, and max_time caps, and rename array_size to job_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

v2.0.0-beta36 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 11 Aug 18:10

2.0.0-beta36 - 2026-08-11

144002b...98a3adc

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

v2.0.0-beta35 Release

v2.0.0-beta35 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 10 Aug 17:45

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

4c469d7...4c051ec

Features

2.0.0-beta33 - 2026-07-27

eadadea...7ae8c45

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

42dad45...bae4593

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 overrides

    Update 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

c065dce...ccb7d35

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

c065dce...745c873

Bug Fixes

  • dbcan now passes threads argument fix (7962c4b)

  • Add retry on dbcan for io concurrency problem (7409a1b)

Features

  • Update ag summarize and visualize rules (e040bfd)

  • Update summarize topics rules (91e3a32)

2.0.0-beta29 - 2026-05-22

90dfef6...88a6fef

Bug Fixes

  • Fix use_* options (3437cac)

  • Fix bugs in format_kegg_database.py (743bf8e)

    1. 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.
    2. Fix --skip_gene_ko_link argparse definition

      • Using type=bool does 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.
  • Two bugs in format_kegg_db.nf (3afbce8)

    1. 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.
    2. 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)
  • 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".
    Changed params.skip_gene_ko_link ? 1 : 0 to
    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.sh from the bbmap
    container that other modules already use) and routes only .gz
    inputs through it via a channel branch on the .gz suffix. Plain
    fastas pass through unchanged.

    Sample-name normalisation strips both the trailing .gz (if present)
    and one of .fa/.fna/.fasta so sample.fa and sample.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...

Read more

v2.0.0-beta28 Release

v2.0.0-beta28 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 15 Apr 05:40
90dfef6

2.0.0-beta28 - 2026-04-15

cdfe210...e07cd74

  • 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

v2.0.0-beta27 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 18 Mar 04:29
cdfe210

2.0.0-beta27 - 2026-03-18

f03804b...7d9a12d

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

v2.0.0-beta26 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 09 Mar 17:38
f03804b

2.0.0-beta26 - 2026-03-09

605d4f5...91edea7

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

v2.0.0-beta25 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 04 Mar 21:09
605d4f5

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.

c95aa83...d8d3cb8

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-beta24 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 03 Feb 23:19
c95aa83

2.0.0-beta24 - 2026-02-03

3659fda...32d0527

Bug Fixes

  • Bugfix for excel saving when rrna or trna are None (32d0527)

V2.0.0-beta23 Release

V2.0.0-beta23 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 01 Feb 20:04
3659fda

2.0.0-beta23 - 2026-02-01

348e276...852e0ae

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

v2.0.0-beta22 Release Pre-release
Pre-release

Choose a tag to compare

@madeline-scyphers madeline-scyphers released this 17 Dec 21:56
348e276

What's Changed

Full Changelog: v2.0.0-beta21...v2.0.0-beta22