Skip to content

Latest commit

 

History

History
421 lines (319 loc) · 14.2 KB

CHANGELOG.rst

File metadata and controls

421 lines (319 loc) · 14.2 KB

SeqAn Changelog

This file summarizes the changes to the SeqAn library and apps.

Release 2.1.0

Major release with many new features and applications. Except where noted below, this release is compatible to previous 2.x releases. For a complete list of changes visit GitHub.

Library Updates and Selected Bugfixes

  • Apps:
    • Yara: fixed warnings, build errors and bugs, updated test files
    • Yara: new features (compute mapping qualities, estimate distribution of paired-end insert sizes)
    • Yara: follow SAM recommended practices for paired-end reads
    • T-Coffee: new feature deep coffee (aligning several hundred sequences)
    • Gustaf: introduced two phase breakpoint combination; updated readme and help messages
    • Removed old apps: Razers2, Flexbar and SeqCons in favor of newer releases
  • Alignments:
    • added feature to count gaps to the left a of a position/iterator
    • disallow wrong use of scoring scheme for Hirschberg algorithm
    • extended AlignmentStats by number of gaps and length of the alignment
    • fixed evaluation of alignment
    • using gaps for integrateAlign and align_extend
  • BLAST (new module):
    • E-Value statistics, including precomputed constants, bit-score and e-value calculation for alignments
    • support for reading and writing BLAST Tabular files (with and without comments)
    • support for writing BLAST Report files
  • Indices:
    • added public function for trie and radix tree construction
    • Q-gram Index: allows sorting the hash-table according to the number of occurrences to reduce cache misses
  • IO:
    • Tabix index: allowing range queries on chromosomal file formats such as VCF
    • Fai Index: optimized fasta index construction
    • BAM: added function to write tags from BamTagsDict to the tags field of a bam record
    • BAM: allowed BamTagsDict to take const CharStrings
  • Misc:
    • fixed Iupac alphabet by replacing = by U
    • added missing O character to amino acid alphabet
    • Argument Parser: a few new features such as help string for advanced options
    • removed random number engine and replaced it by the STL one
    • ZipIterator & ZipContainerView: iterating simultaneously over multiple containers
    • extended edges in graphs to store a reference to its source
  • Modifier:
    • ModifiedString ModPos: iterating over a sequence in a predefined order
    • overload save() of ModifiedStrings for const strings
    • fixed Modified Iterators and ModView
  • Journaled String Tree (new module):
    • reference compressed string set structure
    • for more details see the publication
  • STL containers:
    • added a completely new adaptation to SeqAn interfaces that supports all STL containers, also std::array and std::forward_list
    • greatly improved compatibility of SeqAn algorithms with STL containers so these can be used instead of SeqAn Strings
  • Streams:
    • improved ZipStream
  • Compatibility to previous versions
    • the random module was removed, please use the STL's random module instead
    • the StringSet<T, Dependent<Tight> > has been deprecated and will likely be removed for the next release
    • some SeqAn Macros have been deprecated since C++11 is now required, e.g. there is no SEQAN_AUTO_PTR_NAME, only unique_ptr<>
    • SEQAN_NAMESPACE_MAIN has been moved into the seqan namespace, so some of your Metafunction overrides may need to be adapted

Documentation Updates

  • Dox:
    • added version selector in API dox

Infrastructure Updates

  • Build System:
    • Major improvements to build system resulting in cleanup and dropped dependencies
    • C++11 is now required and many datatypes now have move cosntructors and -assignment operators
    • added support for new compiler versions, but dropped support for older compilers
    • requirements are now GCC ≥ 4.8 or LLVM / Clang ≥ 3.4 (for Linux, Mac OSX, FreeBSD) and Visual C++ ≥ 10.0 / Visual Studio ≥ 2010 (for Windows)

Release 2.0.2

Minor release including several library bug-fixes as well as better documentation and infrastructure. All library modules are backward compatible with 2.0.1. For a complete list of changes visit GitHub.

Selected Bug Fixes

  • Sequences:
    • fixed insert() for packed_string
    • fixed segfault bug for upac assignment in Dna5 StringSet
    • added insertValue(), insert() and replace() for StringSets
    • added empty() for std::list
  • IO:
    • BAM I/O: adding spport for custom tags with floats
    • BAM I/O: BamTagsDict allows wrapping a const object
    • FastQ: fixed readRecord() for malformed fastq files (avoid skipping records)
    • FaiIndex: fixed readSequence/readRegion allocation
  • Apps:
    • Gustaf: loading Fasta files with Iupac characters

Documentation Updates

  • Dox:
    • fixed page redirection
    • minor bugs
    • code snippets in the documentation now undergo build tests and continuous integration to avoid outdated documentation

Infrastructure Updates

  • Platform Support:
    • FreeBSD support
    • updated prerequisites for GCC to >= 4.7 and Clang to >= 3.3
    • fixed warnings for gcc6
    • clang-3.7.x: deactivated openmp because of bug
    • fixed compiler-warnings in Visual Studio (/W2 produces no warnings anymore)
    • added support for Visual Studio 2014 and 2015
  • Build System:
    • added pkg-config support
    • changed includes search priorities for CMake's FindSeqAn
  • Continuous Integration:
    • added more platforms on TravisCI

Release 2.0.1

Minor release including several library bug-fixes as well as better documentation and infrastructure. All library modules are backward compatible with 2.0.0. For a complete list of changes visit GitHub.

Library Bug Fixes

  • Basic:
    • Added AminoAcid symbol "O"
    • Disabled global exception handler by default
  • Sequence:
    • Added missing overloads for const Strings
    • Fixed and tested StringSet
    • Reworked STL containers adaption
    • Fixed several bugs in ModifiedStrings and ModifiedIterators
  • Stream:
    • Worked around I/O with std::string
    • Supported multi-stream gzip files produced by Illumina Casava
    • Fixed BgzfStream tell()
  • SeqIO:
    • Changed Raw file extension from .txt to .raw
  • BAM I/O:
    • Fixed BIN computation
    • Fixed a bug in jumpToOrphans()
    • Fixed internal concurrency problems
    • Fixed readBamHeader() to clear the BamHeader
    • Added assertions to writeRecord()
    • Added BamIndex::save() to save .bai files
  • Gff I/O:
    • Fixed parsing of comment lines
  • FragmentStore:
    • Fixed loading Gtf/Gff3 files
  • Index:
    • Fixed open() and save() for WT FMIndex
    • Added open() and save() for OpenAddressing QGramIndex
  • Seeds:
    • Fixed a bug in sparse chaining
    • Fixed a bug in banded chain alignment

Documentation Updates

  • Manual:
    • Fixed and improved several Tutorials and HowTos
    • Added version-aware links to the dox
  • Dox:
    • Added @datarace entity
    • Fixed broken links in "See Also" section
    • Fixed a problem with close button in the side pane
    • Documented class VirtualStream
  • Demos:
    • Restructured demos directory
    • Fixed several broken demos

Infrastructure Updates

  • Platform Support:
    • Added support for GCC 4.9 and Clang 3.7
    • Preliminary support for Clang 3.8 with OpenMP
    • Preliminary support for Visual Studio 2015
    • Preliminary support for FreeBSD 10.2
  • Build System:
    • Tested all demos
    • Upgraged TravisCI builds to run on Docker
    • Fixed Java detection

Release 2.0.0

Major release with many new features and applications. Note, the majority of the modules are backward compatible to the previous version. Some modules, e.g. I/O-modules, have some adapted easier-to-use or unified interfaces.

Library Updates

  • Faster and easier-to-use modules for basic and formatted file I/O:
    • stream
    • seq_io
    • bam_io
    • vcf_io
    • gff_io
  • Faster data structures:
    • FMIndex (up to 4X).
    • Packed Strings.
  • New alignment modules:
    • X-Drop extension for alignments (align_extend)
    • Sequence-profile alignments (align_profile)
  • New AminoAcid-Dna translation module (translation)
  • The motif finding module (find_module) has been removed.

Infrastructure Updates

New Apps

  • ANISE and BASIL
    • Methods for the detection and assembly of inserted sequence in High-Throughput Sequencing Data.
  • BS Tools
    • Bisulfite read mapping and SNP and methylation level calling.
  • Fiona
    • A parallel and automatic strategy for read error correction.
  • Gustaf
    • Generic mUlti-SpliT Alignment Finder.
  • Mason 2
    • A read simulator.
  • NGS ROI
    • Region of Interest Analysis for NGS Data.
  • Samcat
    • Concatenate and convert SAM/BAM files (faster than samtools).
  • Seqcons 2
    • Compute consensus from sequences sequences with and without approximate alignment information.
  • Yara
    • Yet another read aligner (replaces Masai).

Release 1.4.2

Documentation-only release backward compatible with 1.4.1.

Release 1.4.1

This minor release should be backward compatible with 1.4. It contains small fixes and many demos for improving the API documentation. Some file format functionality has been added.

Highlights

  • Many new demos and improved API documentation throughout the library.
  • New file format support and tutorials for this functionality: VCF I/O, BED I/O, and improvements to GFF and GTF I/O.

Selected Bug Fixes

  • gff_io.h does not contain corrupt includes any more
  • Gapped X-drop seed extension now works with score matrices such as BLOSUM60.
  • SAM writer code now writes 255 for invalid MAPQ and 0 for invalid/unapplicable TLEN instead of *.
  • Fix in Postorder ParentLinks VSTree Iterator.
  • SEQAN_PATH_TO_ROOT() can now be used in demo programs.
  • Removing duplicate definition of SEQAN_ENABLE_TESTING in build system.
  • Write support for char * for BamTagsDict.
  • Fix in StringEnumerator.
  • Fix writing out of file extension when writing KNIME plugins.

Release 1.4

Highlights

  • New read mappers applications Masai and RazerS 3.
  • Extended and more robust I/O functionality in stream, seq_io, bam_io, and gff_io.
  • Module arg_parse creates improved command line help and supports workflow engine integration.
  • Greatly improved alignment module with better performance and interfaces.
  • Greatly improved build system, find_package(SeqAn) for your CMake build systems.

New Apps

  • ALF
    • Alignment free sequence comparison.
  • Breakpoint Calculator
    • Breakpoint computation for genomic alignments.
  • Masai
    • Fast index-based read mapper.
  • RazerS 3
    • Fast filtration-based, parallel read mapper.
  • SnpStore
    • SNP and small indel calling.

Major App Updates

  • All applications now use the ArgumentParser and have better CLI help.
  • Rabema
    • Rewritten from scratch, includes BAM support.
    • Greatly lowered memory requirements.
  • SeqCons
    • Fixing input bugs, supports SAM I/O now.
  • Stellar
    • Major update improving running time, including bug fixes, and allowing for various alphabet types.
  • MicroRazerS
    • Adding support for SAM output.

Major Library Updates

  • Modules seq_io, bam_io, gff_io with I/O functionality.
  • FM Index in module index.
  • Rewritten align module with better performance, more consistent interfaces.
  • Split alignment module align_split.
  • Metaprogramming: introducing EnableIf, DisableIf, EnableIf2, and DisableIf2 metafunctions
  • Module alignment_free for alignment free sequence comparison.
  • Module journaled_set for managing many similar sequences.
  • Faster open addressing q-gram index.
  • generic support for memory mapped files via FileMapping class
  • Adding module parallel with atomic operations in C++98.
  • Greatly improved FragmentStore documentation.
  • Adding position(), operator-(), operator[] with proxy functionality and relation operators to journaled string iterator.
  • Pigeonhole-based filter algorithm.
  • Parallel repeat finding.
  • Clang support, C++11 support

Major Library Bug Fixes

  • Fixing repeat finding on Dna5Q.
  • Fixing insert size computation in store_all.h
  • Fixing memory initialization problem in appendValue() for Block String.
  • Default constructor of Iter modified, such that data_container and data_position are initialized.
  • Fixed error loading Fasta on Windows.
  • Fixed wrong StringSet size types, allow to easily subclass Alloc strings
  • Now supports SAM files with missing read sequences
  • Fixing SeqAn code for C++11
  • FragmentStore fixes.

Miscellaneous

  • Experimental support added platforms for ICC and PGI compilers.
  • Experimental support for CUDA.
  • Build System
    • Large updates to build system.
    • Includes FindSeqAn.cmake for easily using SeqAn in your own CMake build system.
    • Packaging now based on CPack
  • Xcode plugin for MacPorts LLVM/Clang in Xcode 3 and 4
  • Improved code generator skel.py.
  • Many minor bug fixes
  • Cleaned code base
  • Added test cases (e.g. Stellar)
  • Improved documentation and added examples (Mason, Rabema, RazerS, etc.)
  • Improving coding style compliance of Array String implementation.
  • Various tool improvements (e.g. RazerS 3)
  • Performance improvements.