CHANGELOGο
NEXTο
18.0.0 (21 September 2022)ο
Major Changesο
export: The
--node-data
option may now be given multiple times to provide additional.json
files. Previously, subsequent occurrences of the option overrode prior occurrences. This is a breaking change, although we expect few usages to be impacted. Each occurrence of the option may still specify multiple files at a time. #1010 (@tsibley)
Bug Fixesο
refine: 17.1.0 updated TreeTime to version 0.9.2 and introduced the
refine
flag--use-fft
. This makes previously costly marginal date inference cheaper. This update adjusts whenrefine
runs marginal date inference during its iterative optimization. Without theuse-fft
flag, it will now behave as it did before 17.1.0 (marginal inference only during final iterations). With the--use-fft
flag, marginal date inference will be used at every step during the iteration if refine is run with--date-inference marginal
#1034. (@rneher)tree: When using IQtree as tre builder,
--nthreads
now sets the maximum number of threads (IQtree argument-ntmax
). The actual number of threads to use can be specified by the user through the tree-builder-arg-nt
which defaults to-nt AUTO
, causing IQtree to automatically chose the best number of threads to use #1042 (@corneliusroemer)Make cvxopt as a required dependency, since it is required for titer models to work #1035. (@victorlin)
filter: Fix compatibility with Pandas 1.5.0 which could cause an unexpected
AttributeError
with an invalid--query
given toaugur filter
. #1050 (@tsibley)refine: Add
--verbosity
argument that is passed down to TreeTime to facilitate monitoring and debugging. #1033 (@anna-parker)Improve handling of errors from TreeTime. #1033 (@anna-parker)
17.1.0 (19 August 2022)ο
Featuresο
refine: Upgrade TreeTime from 0.8.6 to >= 0.9.2 which enables a speedup of timetree inference in marginal mode due to the use of Fast Fourier Transforms #1018. (@rneher and @anna-parker). Use the
refine
flag--use-fft
to use this feature.
Bug Fixesο
refine, export v1: Use pandas.DataFrame.at instead of .loc for single values #979. (@victorlin)
refine: Gracefully handle all exceptions from TreeTime #1023. (@anna-parker)
refine: Document branch length units
treetime
expects #1024. (@anna-parker)dates: Raise an error when metadata to
get_numerical_dates()
is not a pandas DataFrame #1026. (@victorlin)
17.0.0 (9 August 2022)ο
Major Changesο
Moved the following modules to subpackages #1002. (@joverlee521) These are technically breaking changes for the API, but they do not change the Augur CLI commands.
import.py
->import_/__init__.py
import_beast.py
->import_/beast.py
measurements.py
->measurements/__init__.py
+measurements/concat.py
+measurements/export.py
Move the following internal functions/classes #1002. (@joverlee521)
augur.add_default_command
->argparse_.add_default_command
utils.HideAsFalseAction
->argparse_.HideAsFalseAction
Subcommands must include a
register_parser
function to add their own parser instead of aregister_arguments
function #1002. (@joverlee521)utils: Remove internal function
utils.read_metadata()
#978. (@victorlin)Use
io.read_metadata()
going forwards.To switch to using metadata as a pandas DataFrame (recommended):
Iterate through strains:
metadata.items()
->metadata.iterrows()
Check strain presence:
strain in metadata
->strain in metadata.index
Check field presence:
field in metadata[strain]
->field in metadata.columns
Get metadata for a strain:
metadata[strain]
->metadata.loc[strain]
Get field for a strain:
metadata[strain][field]
->metadata.at[strain, field]
To keep using metadata in a dictionary:
metadata = read_metadata(args.metadata) metadata.insert(0, "strain", metadata.index.values) columns = metadata.columns metadata = metadata.to_dict(orient="index")
Featuresο
Bug Fixesο
filter: Rename internal force inclusion filtering functions #1006 (@victorlin)
16.0.3 (6 July 2022)ο
Bug Fixesο
filter: Move
register_arguments
to the top of the module for better readability #995. (@victorlin)filter: Fix a regression introduced in 16.0.2 that caused grouping with subsampled max sequences and force-included strains to fail in a data-specific way #1000. (@huddlej)
16.0.2 (30 June 2022)ο
Bug Fixesο
The entropy panel was unavailable if mutations were not translated #881. This has been fixed by creating an additional
annotations
block inaugur ancestral
containing (nucleotide) genome annotations in the node-data #961 (@jameshadfield)ancestral: WARNINGs to stdout have been updated to print to stderr #961 (@jameshadfield)
filter: Explicitly drop date/year/month columns from metadata during grouping. #967 (@victorlin)
This fixes a bug #871 where
augur filter
would crash with a crypticValueError
ifyear
and/ormonth
is a custom column in the input metadata and also included in--group-by
.
filter: Fix duplicates that may appear in metadata when using
--include
/--include-where
with subsampling #986 (@victorlin)
16.0.1 (21 June 2022)ο
Bug Fixesο
16.0.0 (16 June 2022)ο
Major Changesο
filter: Error when any group-by column is not found #933 (@victorlin)
Check your workflows for any new errors that may arise from this.
parse: Error on duplicates instead of silently passing #918 (@victorlin)
Check your workflows for any new errors that may arise from this.
utils: Remove
utils.myopen()
#926 (@victorlin)Use
io.open_file()
going forwards.
Moved the following internal functions #929, #923 (@victorlin):
utils.read_vcf
->io.read_vcf
utils.run_shell_command
->io.run_shell_command
utils.shquote
->io.shquote
utils.ambiguous_date_to_date_range
->dates.ambiguous_date_to_date_range
utils.is_date_ambiguous
->dates.is_date_ambiguous
utils.get_numerical_date_from_value
->dates.get_numerical_date_from_value
utils.get_numerical_dates
->dates.get_numerical_dates
Drop support for dict type as the first parameter #934
filter.write_vcf
->io.write_vcf
Featuresο
Add the measurements subcommand with two sub-subcommands, export and concat #879 (@joverlee521)
filter: Report min and max date separately #930 (@victorlin)
export v2: Allow the color scale type to be temporal #969 (@jameshadfield)
Handle
FileNotFoundError
and unexpected exceptions gracefully #914 (@victorlin)
Bug Fixesο
filter: Properly handle error on duplicates #918 (@victorlin)
filter: Reorganize Cram test files #943 (@victorlin)
filter: Reword comment on vcftools #924 (@victorlin)
io: Split io.py into smaller files under new io/ #949 (@victorlin)
io: Add tests for
io.open_file()
#926 (@victorlin)Move AugurError to new errors.py, replace RuntimeError #921 (@victorlin)
Remove internal usage of
utils.read_metadata()
#934, #972 (@victorlin)schemas: Add missing display_default properties for Auspice config v2 #916 (@tsibley)
CI: Split codecov into separate job, combine coverage of all matrix jobs #968 (@tsibley)
CI: Temporarily disable failing test #962 (@victorlin)
CI: pip install without editable mode #956 (@victorlin)
CI: Include functional tests in code coverage #899 (@huddlej)
CI: Move βquiet flag to accommodate snakemake=7.7.0 behavior #927 (@victorlin)
CI: Move docker rebuild step to release workflow #912 (@victorlin)
Update release process #913 (@victorlin)
15.0.2 (5 May 2022)ο
Bug Fixesο
docs: Fix API documentation rendering and add page for
io
module #896 (@joverlee521)CI: Use GitHub Actions for release process #904 (@victorlin)
utils: Fix branch length annotations in
json_to_tree
function #908 (@huddlej)export v2: Use io.read_metadata during export, fixing a bug caused when the userβs input metadata does not have any valid strain id columns #909 (@huddlej)
CI: Call new GitHub Actions workflow to rebuild images #910 (@victorlin)
15.0.1 (25 April 2022)ο
Bug Fixesο
15.0.0 (15 April 2022)ο
Major Changesο
export: Move extensions block to meta #888 (@corneliusroemer)
Note: this is technically a breaking change, but the misplaced extensions block was added in version 14.1.0 and intended for internal use by Nextclade. We donβt expect any users to be impacted by this.
Featuresο
Bug Fixesο
14.1.0 (31 March 2022)ο
Featuresο
schemas: Extend export v2 schema to support an array of trees #851 (@tsibley)
schemas: Add JSON schemas for our root-sequence and tip-frequencies sidecars #852 (@tsibley)
schemas: Add JSON schema for measurements sidecar #859 (@joverlee521)
filter: Send warnings to stderr to be consistent with other warnings #862 (@victorlin)
export: Allow an extensions block in auspice config & dataset JSONs #865 (@jameshadfield)
export: Allow skipping of input/output schema validation #865 (@jameshadfield)
export: Order keys in dataset for easier reading #868 (@jameshadfield)
Bug Fixesο
parse: Fix typo in internal variable name #850 (@emmahodcroft)
14.0.0 (8 February 2022)ο
Major Changesο
Drop support for Python 3.6, add support for 3.9 and 3.10 #822 (@victorlin)
Featuresο
refine: Enable bootstrap support by passing confidence values through to Auspice JSONs from
augur refine
node data JSONs #839 (@huddlej)tree: Allow users to override default tree builder arguments with a new
--override-default-args
flag #839 (@huddlej)clades: Allow descendant clades to be defined by explicitly inheriting from ancestral clade names #846 (@corneliusroemer)
Bug Fixesο
tree: Fix segmentation fault that can occur when user-provided tree builder args conflict hardcoded defaults for IQ-TREEβs. The new
--override-default-args
flag allows users to override the defaults that conflict with their values. #839 (@huddlej)filter/utils: fix year-only and numeric date handling #841 (@victorlin)
CI: test earliest supported Biopython versions in matrix, remove redundant installs #843 (@victorlin)
13.1.2 (28 January 2022)ο
Featuresο
Bug Fixesο
13.1.1 (21 January 2022)ο
Bug Fixesο
13.1.0 (10 December 2021)ο
Featuresο
schemas: Add β$idβ key to Auspice config schemas so we have a way of referring to these. #806 (@tsibley)
Bug Fixesο
filter: Fix groupby with incomplete dates. #808 (@victorlin)
13.0.4 (8 December 2021)ο
Bug Fixesο
dependencies: Replace deprecated mutable sequence interface for BioPython. #788 (@Carlosbogo)
dependencies: Fix backward compatibility with BioPython. #801 (@huddlej)
data: Add latitude and longitude details for βReunionβ. #791 (@corneliusroemer)
filter: Use pandas functions to determine subsample groups. #794 and #797 (@victorlin)
filter: Add clarity to help message and output of probabilistic sampling. #792 (@victorlin)
13.0.3 (19 November 2021)ο
Bug Fixesο
13.0.2 (12 October 2021)ο
Bug Fixesο
13.0.1 (1 October 2021)ο
Bug Fixesο
13.0.0 (17 August 2021)ο
Major Changesο
filter: Skip metadata records with ambiguous month information in the
date
column when grouping by month instead of randomly generating month values for those records. This change alters the behavior of thefilter
command for metadata with ambiguous month values. For these data, consider using--group-by year
instead of--group-by year month
. #761 (@huddlej)
Featuresο
filter: When grouping by year or month, report the number of strains skipped due to ambiguous year and month both in the summary report at the end of filtering and in the
--output-log
contents #761 (@huddlej)
12.1.1 (13 August 2021)ο
Bug Fixesο
12.1.0 (12 August 2021)ο
Featuresο
export: Add support for custom legend and color scale specifications in Auspice config files #727 (@jameshadfield)
utils: Add support for compressed strain name files (e.g., βinclude.txt.gzβ) #730 (@benjaminotter)
filter: Rewrite internal logic to use pandas DataFrames (#743), define filters and subsampling logic as individual functions (#745 and #746), and iterate through chunks of metadata instead of loading all records into memory at once (#750) (@tsibley, @huddlej)
Bug Fixesο
12.0.0 (13 April 2021)ο
Major Changesο
filter: Date bounds (
--min-date
and--max-date
) are now inclusive instead of exclusive such that records matching the given dates will pass date filters #708 (@benjaminotter)
Bug Fixesο
refine: Recommend an alternate action when skyline optimization fails #712 (@huddlej)
Featuresο
distance: Count insertion/deletion events once in pairwise distances #698 (@huddlej, @benjaminotter)
distance: Optionally ignore specific list of characters defined in a distance mapβs top-level
ignored_characters
list #707 (@benjaminotter)filter: Allow
--subsample-max-sequences
without--group-by
#710 (@benjaminotter)tree: Prefer
iqtree2
binary overiqtree
when possible #711 (@benjaminotter)
11.3.0 (19 March 2021)ο
Bug Fixesο
Featuresο
io: Add new
io
module withopen_file
,read_sequences
, andwrite_sequences
functions that support compressed inputs and outputs #652parse, index, filter, mask: Add support for compressed inputs/outputs #652
export v2: Add optional
data_provenance
field to auspice JSON output for better provenance reporting in Auspice #705
11.2.0 (8 March 2021)ο
Bug Fixesο
Documentationο
Featuresο
filter: Enable filtering by metadata only such that sequence inputs/outputs are optional and metadata/strain list outputs are now possible #679
filter: Enable extraction of sequences from multiple lists of strains with a new
--exclude-all
flag and support for multiple inputs to the--include
argument #679
11.1.2 (16 February 2021)ο
Bug Fixesο
index: Remove call to deprecated BioPython SeqIO.close method #684
11.1.1 (16 February 2021)ο
Bug Fixesο
11.1.0 (12 February 2021)ο
Bug Fixesο
Featuresο
11.0.0 (22 January 2021)ο
Major Changesο
filter: Use probabilistic sampling by default when requesting a maximum number of sequences to subsample with
--subsample-max-sequences
. Adds--no-probabilistic-sampling
flag to disable this default behavior and prevent users from requesting fewer maximum sequences than there are subsampling groups. #659
10.3.0 (14 January 2021)ο
Bug Fixesο
Featuresο
10.2.0 (1 January 2021)ο
Featuresο
filter: Add
--probablistic-sampling
flag to allow subsampling with--subsample-max-sequences
when the number of groups exceeds the requested number of samples #629scripts: Add script to identify emerging clades from existing Nextstrain build JSONs #653
docs: Add instructions to update conda installations prior to installing Augur #655
10.1.1 (16 November 2020)ο
Bug Fixesο
dependencies: Require the most recent minor versions of TreeTime (0.8.X) to fix numpy matrix errors #633
10.1.0 (13 November 2020)ο
Featuresο
10.0.4 (6 November 2020)ο
Bug Fixesο
10.0.3 (23 October 2020)ο
Bug Fixesο
10.0.2 (8 September 2020)ο
Bug Fixesο
10.0.1 (8 September 2020)ο
Bug Fixesο
ancestral: Clarify default values for inference of ambiguous bases #613
10.0.0 (17 August 2020)ο
Major Changesο
Remove Snakemake as a dependency of the augur Python package #557
utils:
read_colors
refactor #588raises an exception when the requested color file is missing instead of printing a warning to stdout
splits out logic to parse colors file into separate classes (
util_support/color_parser.py
andutil_support/color_parser_line.py
) with unit tests
utils:
read_metadata
interface improvementsutils:
read_node_data
interface improvements #595, #605exits with a nonzero code when node data node names donβt match tree nodes and when the input tree cannot be loaded
refactors logic to read node data into separate classes with unit tests
Bug Fixesο
ancestral: Fix docstring for
collect_mutations_and_sequences
4c474a9parse: Fix date parsing bug caused by a change in the API for
parse_time_string
in pandas 1.1.0 #601refine: Enable divergence unit scaling without timetree e9b3eec
tree: Use IQ-TREEβs
-nt AUTO
mode when users request more threads than there are input sequences, avoiding an IQ-TREE error #598
Featuresο
9.0.0 (29 June 2020)ο
Major Changesο
align: The API to the
read_sequences
function now returns a list of sequences instead of a dictionary #536
Bug Fixesο
align: Prevent duplicate strains warning when using
--reference-name
#536docs: Sync and deduplicate installation documentation from README to main docs #578
export: Flexibly disambiguate multiple publications by the same author #581
frequencies: Avoid interpolation of a single data point during frequency estimation with sparse data #569
parse: Actually remove commas during prettify when this behavior is requested #573
tests: Always use the local helper script (
bin/augur
) to run tests instead of any globally installed augur executables #527tree: Keep log files after trees are built #572
utils: Do not attempt to parse dates with only ambiguous months (e.g., 2020-XX-01) #532
utils: Parse
name
column of metadata as a data field instead of a pandas DataFrame attribute #564
Featuresο
docs: Updates description of how missing data are handled by
augur traits
filter: Add support for ISO 8601 dates (YYYY-MM-DD) for
--min-date
and--max-date
#568tests: Add tests for utilities (ambiguous date parsing #532 and
run_shell_command
#577), parse #573, and translate #546tree: Allow VCF input without an
--exclude-sites
argument #565
8.0.0 (8 June 2020)ο
Major Changesο
utils: Add a consolidated generic
load_mask_sites
function and specificread_mask_file
andread_bed_file
functions for reading masking sites from files. Changes the Python API by moving mask-loading functionality out of augur mask and tree into utils #514 and #550mask: Parse BED files as zero-indexed, half-open intervals #512
Bug Fixesο
Featuresο
align: Report insertions stripped during alignment #449
Require minimum pandas version of 1.0.0 #488
parse: Reduce memory use and clarify code with standard Python idioms #496
mask: Allow masking of specific sites passed by the user with
--mask-sites
and masking of a fixed number of sites from the beginning or end of each sequence with--mask-from-beginning
and--mask-from-end
#512clades, import: Use
defaultdict
to simplify code #533tests: Add initial functional tests of the augur command line interface using Cram #542
refine: Add a
--seed
argument to set the random seed for more reproducible outputs across runs #542ancestral, refine, and traits: Print the version of TreeTime being used for these commands #552
filter: Add support for flexible pandas-style queries with new
--query
argument #555export: Allow display defaults for transmission lines #561
7.0.2 (7 April 2020)ο
Bug Fixesο
filter: Fix regression introduced in 7.0.0 which caused an error to be raised if a priorities file didnβt include every sequence. Sequences which are not explicitly listed will once again default to a priority of 0. #530
7.0.1 (7 April 2020)ο
Bug Fixesο
Fix typo with Python classifiers in setup.py
7.0.0 (7 April 2020)ο
Major Changesο
Featuresο
improve testing by
align: reverse complement sequences when necessary using mafftβs autodirection flag #467
align: speed up replacement of gaps with βambiguousβ bases #474
mask: add support for FASTA input files #493
traits: bump TreeTime version to 0.7.4 and increase maximum number of unique traits allowed from 180 to 300 #495
Bug Fixesο
align: enable filling gaps in input sequences even if no reference is provided instead of throwing an exception #466
align: detect duplicate sequences by comparing sequence objects instead of (often truncated) string representations of those objects #468
import_beast: use raw strings for regular expressions to avoid syntax errors in future versions of Python #469
scripts: update exception syntax to new style #484
filter: fail loudly when a given priority file is invalid and exit instead of just printing an error #487
Documentationο
6.4.3 (25 March 2020)ο
Bug Fixesο
align: Remove reference sequence from alignments even when no gaps exist in input sequences relative to the reference. Thank you @danielsoneg! #456
Documentationο
Reorganize README, improve findability of documentation, and add separate dev docs. #461
6.4.2 (17 March 2020)ο
Bug Fixesο
Require Snakemake less than 5.11 to avoid a breaking change. The
--cores
argument is now required by 5.11, which will affect many existing augur-based workflows. Reported upstream as snakemake/snakemake#283.align: Run mafft with the
--nomemsave
option. This makes alignments of sequences over 10k in length run much, much faster in the general case and shouldnβt cause issues for most modern hardware. We may end up needing to add an off-switch for this mode if it causes issues for other users of augur, but the hope is that it will make things just magically run faster for most folks! There is likely more tuning that could be done with mafft, but this is a huge improvement in our testing. #458align: Ignore blank lines in
--include
files. Thanks @CameronDevine! #451align: Properly quote filenames when invoking mafft. Thanks @CameronDevine! #452
6.4.1 (4 March 2020)ο
Bug Fixesο
export: AA labels are now exported for branches where a clade is also labeled See PR 447
export / validation: a dataset title is no longer required
release script now works on MacOS & code-signing is optional See PR 448
traits: Missing data is correctly handled
6.4.0 (26 February 2020)ο
Featuresο
align: New sequences can now be added to an existing alignment. #422
align: Multiple sequence files can be provided as input. #422
align: Extra debugging files such as
*.pre_aligner.fasta
and*.post_aligner.fasta
are no longer produced by default. To request them, pass the--debug
flag. #422align: De-duplicate input sequences, with a warning. #422
export v2: Add support for the
branch_label
property indisplay_defaults
, which was recently added to Auspice. #445
Bug fixesο
align: Exits with an error earlier if arguments are invalid instead of only printing a warning. #422
align: Performs more error checking and clarifies the help and error messages. #422
export v2: Traits which are filters but not colorings are now exported as well, instead of being left out. #442
export v2: Exits non-zero when validation fails, instead of masking errors. #441
validate: In order to improve clarity, messages now include the filenames involved and distinguish between schema validation and internal consistency checks. #441
6.3.0 (13 February 2020)ο
Featuresο
Augur
refine
,ancestral
andtraits
now use the upgraded TreeTime v0.7 This should have a number of under-the-hood improvements. See PR 431ancestral: New options to either
--keep-ambiguous
or--infer-ambiguous
. If using--infer-ambiguous
the previous behavior will be maintained in which tips withN
will have their nucleotide state inferred. If using--keep-ambiguous
, these tips will be left asN
. With this upgrade, we are still defaulting to--infer-ambiguous
, however, we plan to swap default to--keep-ambiguous
in the future. If this distintion matters to you, we would suggest that you explicitly record--keep-ambiguous
/--infer-ambiguous
in your build process. Also part of PR 431traits: Allow input of
--weights
which references a.tsv
file in the following format:division Hubei 10.0 division Jiangxi 1.0 division Chongqing 1.0
where these weights represent equilibrium frequencies in the CTMC transition model. We imagine the primary use of user-specified weights to correct for strong sampling biases in available data. See PR 443
Bug fixesο
Improvements to make shell scripts run more easily on Windows. See PR 437
6.2.0 (25 January 2020)ο
Featuresο
refine: Include
--divergence-units
option to distinguish betweenmutations
andmutations-per-site
. Keepmutations-per-site
as default behavior. See PR 435
Bug fixesο
utils: Support v2 auspice JSONs in json_to_tree utility function. See PR 432
6.1.1 (17 December 2019)ο
Bug fixesο
frequencies: Fix bug in string matching for weighted frequencies introduced in v6.1.0. See PR 426.
6.1.0 (13 December 2019)ο
Featuresο
export: Include
--description
option to pass in a Markdown file with dataset description. This is displays in Auspice in the footer. For rationale, see Auspice issue 707 and for Augur changes see PR 423.
Bug fixesο
frequencies: Fix weighted frequencies when weight keys are unrepresented. See PR 420.
6.0.0 (10 December 2019)ο
Overviewο
Version 6 is a major release of augur affecting many augur commands. The format
of the exported JSON (v2) has changed and now merges the previously separate
files containing tree and meta information. To maintain backward compatibility,
the export command was split into export v1
(old) and export v2
(new).
Detailed release notes are provided in the augur documentation on
read-the-docs.
For a migration guide, consult
migrating-v5-v6.
Major features / changesο
export: Swap from a separate
_tree.json
and_meta.json
to a single βunifiedβdataset.json
output fileexport: Include additional command line options to alleviate need for Auspice config
export: Include option for reference sequence output
export: Move to GFF-style annotations
export: Validate exported JSONs against schema
ancestral: Allow output of FASTA and JSON files
import: Include
import beast
command to import labeled BEAST MCC treeparse: Include
--prettify-fields
option to cleanup metadata fieldsDocumentation improvements
Minor features / changesο
colors.tsv: Allow whitespace, but insist on tab delimiting
lat_longs.tsv: Allow whitespace, but insist on tab delimiting
Remove code for old βnon-modularβ augur, old βnon-modularβ builds and Python tests
Improve test builds
filter: More interpretable output of how many sequences have been filtered
filter: Additional flag
--subsample-seed
to seed the random number generator and thereby make subsampling reproduciblesequence-traits: Numerical output as originally intended, but required an Auspice bugfix
traits: Explanation of what is considered missing data & how it is interpreted
traits: GTR models are exported in the output JSON for better accountability & reproducibility
5.4.1 (12 November 2019)ο
Bug fixesο
export v1: Include
--minify-json
option that was mistakenly not included in PR 398. See PR 409
5.4.0 (7 November 2019)ο
Featuresο
frequencies: Include
--minimal-clade-size-to-estimate
command line option. See PR 383lbi: Include
--no-normalization
command line option. See PR 380
Compatibility fixesο
export: Include
v1
subcommand to allow forwards compatibiliy with Augur v6 builds. See PR 398
Bug fixesο
export: Include warning if using a mismatched v6 translate file. See PR 392
frequencies: Fix determination of interval for clipping of non-informative pivots
5.3.0 (9 September 2019)ο
Featuresο
export: Improve printing of error messages with missing or conflicting author data. See issue 274
filter: Improve printing of dropped strains to include reasons why strains were dropped. See PR 367
refine: Add support for command line flag
--keep-polytomies
to not resolve polytomies when producing a time tree. See PR 345
Bug fixesο
Catch and throw error when there are duplicate strain names. See PR 356
Fix missing annotation of βparentβ attribute for the root node
Run shell commands with more robust error checking. See PR 350
Better handling of rerooting options for trees without temporal information. See issue 348
Dataο
Small fixes in geographic coordinate file
5.2.1 (4 August 2019)ο
Bug fixesο
Print more useful error message if Python recursion limit is reached. See issue 328
Print more useful error message if vcftools if missing. See PR 312
Developmentο
Significantly relax version requirements specified in setup.py for biopython, pandas, etcβ¦ Additionally, move lesser used packages (cvxopt, matplotlib, seaborn) into an βextras_requireβ field. This should reduce conflicts with other pip installed packages. See PR 323
Dataο
Include additional country lat/longs in base data
5.2.0 (23 July 2019)ο
Featuresο
ancestral: Adds a new flag
--output-sequences
and logic to support saving ancestral sequences and leaves from the given tree to a FASTA file. Also adds a redundant, more specific flag--output-node-data
that will replace the current--output
flag in the next major version release of augur. For now, we issue a deprecation warning when the--output
flag is used. Note that FASTA output is only allowed for FASTA inputs and not for VCFs. We donβt allow FASTA output for VCFs anywhere else and, if we did here, the output files would be very large. See PR 293frequencies: Allow
--method kde
flag to compute frequencies via KDE kernels. This complements existing method of--method diffusion
. Generally, KDE frequencies should be more robust and faster to run, but will not project as well when forecasting frequencies into the future. See PR 271
Bug fixesο
ancestral, traits, translate: Print warning if supplied tree is missing internal node names (normally provided by running
augur refine
). See PR 283Include pip in Conda enviroment file. See PR 309
Documentationο
Document environment variables respected by Augur
Developmentο
Remove matplotlib and seaborn from
setup.py
install. These are still called a few places in augur (liketiters.validate()
), but it was deemed rare enough that remove this fromsetup.py
would ease general install for most users. Additionally, the ipdb debugger has been moved to dev dependencies. See PR 291Refactor logic to read trees from multiple formats into a function. Adds a new function
read_tree
to theutils
module that tries to safely handle reading trees in multiple input formats. See PR 310
5.1.1 (1 July 2019)ο
Featuresο
tree: Add support for the GTR+R10 substitution model.
tree: Support parentheses in node names when using IQ-TREE.
Bug fixesο
Use the center of the UK for its coordinates instead of London.
filter: Mark
--output
required, which it always was but wasnβt marked.filter: Avoid error when no excluded strains file is provided.
export: Fix for preliminary version 2 schema support.
refine: Correct error handling when the tree file is missing or empty.
Documentationο
Add examples of Augur usage in the wild.
Rename and reorganize CLI and Python API pages a little bit to make βwhere do I start learning to use Augur?β clearer to non-devs.
Developmentο
Relax version requirements of pandas and seaborn. The hope is this will make installation smoother (particularly alongside other packages which require newer pandas versions) while not encountering breaking changes in newer versions ourselves.
5.1.0 (29 May 2019)ο
Documentationο
Documentation is now available online for the augur CLI and Python API via Read The Docs: https://nextstrain-augur.readthedocs.io. The latest version on RTD points to the git master branch, and the stable version to the most recent tagged release. Instructions for building the docs locally are in the README.
5.0.0 (26 May 2019)ο
Featuresο
ancestral: New option to
--keep-ambiguous
, which will not infer nucleotides at ambiguous (N) sites on tip sequences and instead leave as βNβ See PR 280.ancestral: New option to
--keep-overhangs
, which will not infer nucleotides for gaps on either side of the alignment and instead leave as β-β. See PR 286.clades: This module has been reconfigured to identify clade defining mutations on top of a reference rather than identifying mutations along the tree. The command line arguments are the same except for the addition of
--reference
, which explicitly passes in a reference sequence. If--reference
is not defined, then reference will be drawn from the root node of the phylogeny by looking forsequence
attribute attached to root node of--tree
. See PR 288.refine: Revise rooting behavior. Previously
--root
took βbestβ, βresidualβ, βrsqβ and βmin_devβ as options. In this update--root
takes βbestβ, least-squaresβ, βmin_devβ and βoldestβ as rooting options. This eliminates βresidualβ and βrsqβ as options. This is a backwards-incompatible change. This requires updating TreeTime to version 0.5.4 or above. See PR 263.refine: Add
--keep-root
option that overrides--root
specification to preserve tree rooting. See PR 263.refine: Add
--covariance
and--no-covariance
options that specify TreeTime behavior. See PR 263.titers: This command now throws an
InsufficientDataException
if there are not sufficient titers to infer a model. This is paired with a new--allow-empty-model
flag that proceeds past theInsufficientDataException
and writes out a model JSON corresponding to an βemptyβ model. See PR 281.By default JSONs are written with
index=1
to give a pretty-printed JSON. However, this adds significant file size to large tree JSONs. If the environment variableAUGUR_MINIFY_JSON
is set then minified JSONs are printed instead. This mirror the explicit--minify-json
argument available toaugur export
. See PR 278.
Bug fixesο
export: Cast numeric values to strings for export. See issue 287.
export: Legend order preserves ordering passed in by user for traits that have default colorings (βcountryβ and βregionβ). See PR 284.
refine: Previously, the
--root
argument was silently ignored when no timetree was inferred. Re-rooting with an outgroup is sensible even without a timetree. See PR 282.
4.0.0 (24 April 2019)ο
Featuresο
distance: New interface for specifying distances between sequences. This is a backwards-incompatible change. Refer to
augur distance --help
for all the details.export: Add a
--minify-json
flag to omit indentation in Auspice JSONs.
Bug fixesο
frequencies: Emit one-based coordinates (instead of zero-based) for KDE-based mutation frequencies
Dataο
Include additional country lat/longs in base data
3.1.8 (13 February 2019)ο
Bug fixesο
titers: fix calculation of
mean_potentency
for model export
3.1.7 (5 February 2019)ο
Bug fixesο
Update to TreeTime 0.5.3
tree: Fix bug in printing causing errors in Python versions <3.6
tree: Alter site masking to not be so memory intensive
3.1.6 (29 January 2019)ο
Featuresο
filter: Allow negative matches to
--exclude-where
. For example,--exclude-where country!=usa
would exclude all samples where metadatacountry
does not equalusa
.tree: Allow
--exclude-sites
to work with FASTA input. Ensure that indexing of input sites is one-based.
Bug fixesο
fix loading of strains when loading titers from file, previously strains had not been filtered to match the tree appropriately
3.1.5 (13 January 2019)ο
Featuresο
frequencies: Add
--ignore-char
and--minimal-clade-size
as options.frequencies: Include
--stiffness
and--inertia
as options.titers: Allow multiple titer date files in
--titers
import.
Bug fixesο
filter: Fix
--non-nucleotide
call to include?
as allowed character.tree: Fix
--method raxml
to properly delimit interim RAxML output so that simultaneous builds donβt conflict.
Dataο
Include additional country lat/longs in base data
3.1.4 (1 January 2019)ο
Bug fixesο
frequencies: Include
counts
inaugur frequencies
output JSON to support downstream plotting.
Dataο
Include additional country lat/longs in base data
3.1.3 (29 December 2018)ο
Featuresο
filter: Add
--non-nucleotide
option to remove sequences with non-conforming nucleotide characters.
Bug fixesο
Revise treatment of
-
,augur parse
to leave-
as is and remove white space. Also delimit[
and]
to_
.Fix bug in naming of temp IQTREE fixes to prevent conflicts from simultaneous builds.
Dataο
Include additional country lat/longs in base data
Developmentο
Remove non-modular measles build in favor of nextstrain/measles repo.
3.1.2 (21 December 2018)ο
Bug fixesο
Update dependencies
3.1.1 (21 December 2018)ο
Bug fixesο
filter: Fix
--include-where
. Adds anall_seq
variable needed by the logic to include records by value. This was previously working for VCF but threw an exception for sequences in FASTA format.Update flu reference viruses and lat longs.
Update dependencies
3.1.0 (18 December 2018)ο
Featuresο
reconstruct-sequences: Include
augur reconstruct-sequences
module that reconstructs alignments from mutations inferred on the treedistance: Include
augur distance
module that calculates the distance between amino acid sequences across entire genes or at a predefined subset of siteslbi: Include
augur lbi
module that calculates local branching index (LBI) for a given tree and one or more sets of parameters.frequencies: Include
--method kde
as option toaugur frequencies
, separate from the existing--method diffusion
logic. KDE frequencies are faster and better for smaller clades but donβt extrapolate as well as diffusion frequencies.titers: Enable annotation of nodes in a tree from the substitution model
3.0.5.dev1 (26 November 2018)ο
Bug fixesο
translate: Nucleotide (βnucβ) annotation for non-bacterial builds starts at 0 again, not 1, fixing a regression.
Documentationο
Schemas: Correct coordinate system description for genome start/end annotations.
3.0.4.dev1 (26 November 2018)ο
Bug fixesο
validate: Fix regression for gene names containing an asterisk.
Developmentο
Fix Travis CI tests which were silently not running.
3.0.3.dev1 (26 November 2018)ο
Featuresο
refine: Add a
--clock-std-dev
optiontraits: Add a
--sampling-bias-correction
option for mugration modelvalidate: Gene names in tree annotations may now contain hyphens. Compatible with Auspice version 1.33.0 and later.
All JSON is now emitted with sorted keys, making it easier to diff and run other textual comparisons against output.
Bug fixesο
filter: Only consider A, T, C, and G when calculating sequence length for the
--min-length
option.filter: Allow comments in files passed to
--exclude
.filter: Ignore case when matching trait values against excluded values.
Normalize custom geographic names to lower case for consistent matching.
Dataο
Fix typo in geographic entry for
netherlands
.Schemas: Reconcile naming patterns used in gene definitions and tree annotations.
Developmentο
Upgrade TreeTime dependency to 0.5.x and at least 0.5.1.
Add an
environment.yml
file for use withconda env create
.Stop testing under Python 2.7 on Travis CI.
3.0.2.dev1 (27 September 2018)ο
Bug fixesο
translate: Fix broken
--help
message
3.0.1.dev1 (27 September 2018)ο
Featuresο
align and tree: The βnthreads option now accepts the special value βautoβ to automatically set the number of threads to the number of CPU cores available.
Alias
augur --version
toaugur version
Bug fixesο
tree: The βnthreads option is now respected. Previously all tree builders were ignoring the value and using either 2 threads (RAxML, IQ-TREE) or as many threads as cores (FastTree, if the OpenMP version).
translate: Check for and, if necessary pad, nucleotide sequences which arenβt a multiple of 3 earlier to avoid errors later.
export: Optionally write inferred nucleotide and amino acid sequences (or mutations) to a separate file.
export: Omit genes with no amino acid mutations.
validate: Allow underscores in gene names.
refine: Remove unused βnthreads argument.
ancestral, filter, tree, refine: Exit 1 instead of -1 on error.
Print the help message, instead of throwing an exception, when
augur
is run without arguments.
Documentationο
Briefly describe each command in its
--help
output and in the globalaugur --help
output.Revamp README to emphasize new, modular augur and make it suitable for inclusion on PyPi.
Reconciled conflicting license declarations; augur is AGPLv3 (not MIT) licensed like the rest of Nextstrain.
Include URLs for bug reports, the change log, and the source on PyPi.
Dataο
Geographic coordinates added for the Netherlands and the Philippines.
Developmentο
Reset the
release
branch when rewinding a failed local release process.Refactor the augur program and command architecture for improved maintainability.
3.0.0.dev3 (4 September 2018)ο
Developmentο
Use an allowed Topic classifier so we can upload to PyPi
Ignore distribution egg-info build files
3.0.0.dev2 (4 September 2018)ο
Featuresο
Export: Add safety checks for optional annotations and geo data
Include more lat/longs in the default geo data
Developmentο
Add release tooling
Document the release process and a few development practices
Travis CI: Switch to rebuilding the Docker image only for new releases
Remove ebola, lassa, tb, WNV, and zika builds now in their own repos. These builds are now available at URLs like https://github.com/nextstrain/ebola, for example.
3.0.0.dev1 (unreleased)ο
Developmentο
Start versioning augur beginning with 3.0.0. A new
augur version
command reports the running version.