Changes for seqmagick


  • Supports Python 3.5+

  • Drops support for Python 3.4

  • Fix issue: “seqmagick with no params gives KeyError:None” [GH-77]

  • Fix for Biopython 1.71 dual coding support [GH-76]; also fixes issue: “Translation error with new BioPython” [GH-79]

  • Send logging to stderr, not stdout [GH-75]


  • Supports Python 3.4+

  • Drops support for python 2.7

  • requires biopython >= 1.70

  • Drops support for bz2 compression [see GH-66]

  • New option convert --sample-seed to make --sample deterministic.


  • New quality-filter --pct-ambiguous switch [GH-53]

  • enforces biopython>=1.58,<=1.66 (1.67 is not compatible) [GH-59]

  • This is the last release that will support Python 2!


  • Allow string wrapping when input isn’t FASTA. [GH-45]

  • Fix --pattern-include, --pattern-exclude, and --pattern-replace for sequences without descriptions (e.g., from NEXUS files). [GH-47]

  • Fix mogrify example. [GH-52]


  • Map .nex extension to NEXUS-format (–alphabet must be specified if writing)

  • Use reservoir sampling in --sample selector (lower memory use)

  • Support specifying negative indices to --cut [GH-33]

  • Optionally allow invalid codons in backtrans-align [GH-34]

  • Map .fq extension to FASTQ format

  • Optional multithreaded I/O in info [GH-36]

  • Print sequence name on length mismatch in backtrans-align [GH-37]

  • Support for + and - in head and tail to mimick Linux head and tail commands.

  • Fix scoring for mixed-case sequences in primer-trim.

  • Fix bug in primer-trim - failed when sequence had multiple 5’ gaps compared to the primer.

  • Clarify documentation and fix bug in convert/mogrify --pattern-replace [GH-39]

  • Support for gzip files in seqmagick convert --sort


  • Change seqmagick extract-ids --source-format to --input-format to match other commands (GH-29)

  • Support gzip- and bzip2-compressed inputs and outputs for most commands (GH-30)

  • Change default input format for sff to sff-trim, which respects the clipping locations embedded in each sequence record.

  • Add --details-out option to seqmagick quality-filter, which writes details on each read processed.

  • Match barcode/primer seqmagick quality-filter against a trie; allows per-specimen barcodes.

  • Remove --failure-out option from seqmagick quality-filter. See --details-out

  • Raise an error if number of codons does not match number of amino acids in seqmagick backtrans-align

  • Add --sample subcommand (GH-31)


  • Fix bug in --squeeze

  • More informative messages in seqmagick primer-trim

  • Added --alphabet flag to allow writing NEXUS (GH-23)

  • Exiting without error on SIGPIPE in extract-ids, info (GH-17)

  • Ambiguities are translated as ‘X’ in –translate (GH-16)

  • Allowing ‘.’ or ‘-‘ as gap character (GH-18)

  • --name-prefix and --name-suffix no longer create a mangled description (GH-19)

  • Files owned by another user can be mogrified, as long as they are group writeable (GH-14)

  • Add backtrans-align subcommand, which maps unaligned nucleotides onto a protein alignment (GH-20)

  • Allow FASTQ as input to quality-filter

  • Significantly expand functionality of quality-filter: identify and trim barcodes/primers; report detailed failure information.

  • Cleanup, additional tests

  • Add --drop filter to convert and mogrify (GH-24)

  • Apply current umask when creating files (GH-26)

  • Support stdin in seqmagick info (GH-27)

  • Support translating ambiguous nucleotides, if codon translation is unambiguous


  • Fix bug in quality-filter MinLengthFilter

  • Case consistency in seqmagick


  • Internal reorganization - transformations are converted to partial functions, then applied.

  • Argument order now affects order of tranformation application.

  • Change default output format to ‘align’ for TTYs in seqmagick info

  • Add BioPython as dependency (closes GH-7)

  • Add primer-trim subcommand

  • Add option to apply custom function(s) to sequences

  • Add new filtering options: --squeeze-threshold, --min-ungapped-length --include-from-file --exclude-from-file

  • Removed seqmagick muscle

  • Added new subcommand quality-filter

  • Added new subcommand extract-ids (closes GH-13)

  • Allow use of ‘-‘ to indicate stdin / stdout (closes GH-11)

  • Add mapping from .phyx to phylip-relaxed (targeted for BioPython 1.58)


  • Refactoring

  • Added hyphenation to multi-word command line options (e.g. --deduplicatetaxa -> --deduplicate-taxa)

  • Add support for .needle, .sff formats

  • Close GH-4


Initial release