Skip to content

Commit

Permalink
Merge pull request #846 from esiragusa/release/2.0.0
Browse files Browse the repository at this point in the history
Release 2.0.0
  • Loading branch information
esiragusa committed Feb 11, 2015
2 parents 0b136d1 + 2a04b1a commit b0826a7
Show file tree
Hide file tree
Showing 6,542 changed files with 731,383 additions and 753,602 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
build
dox/html
docs/html
docs2/html
manual/build
sandbox
!sandbox/CMakeLists.txt
Expand Down
13 changes: 11 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
language: cpp
compiler:
- gcc
- gcc-4.8
- clang
cache:
apt: true
directories:
- _build
before_script:
sudo apt-get install -qq cmake python python-nose zlib1g-dev libbz2-dev libboost-dev python-jinja2
- sudo apt-get install -qq cmake python python-nose zlib1g-dev libbz2-dev libboost-dev python-jinja2 python-pip
- sudo pip install -r manual/requirements.txt
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test;
sudo apt-get update -qq;
sudo apt-get install -qq gcc-4.8 g++-4.8;
if [ "$CC" == "gcc" ];
then
export CXX=g++-4.8 CC=gcc-4.8;
gcc-4.8 --version;
fi
script:
./util/travis/linux-cibuild.sh
200 changes: 200 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
SeqAn Changelog
---------------

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


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
^^^^^^^^^^^^^^^^^^^^^^

- The repository has been migrated to GitHub (https://github.com/seqan/seqan).
- Continuous integration builds happen on TravisCI.
- The manual has been migrated to sphinx (http://seqan.readthedocs.org).
- The ``core`` and ``extras`` subfolders have been removed.

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.
- Also see https://github.com/genericworkflownodes
- 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.
54 changes: 34 additions & 20 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,6 @@ project (seqan)

cmake_minimum_required (VERSION 2.8.2)

# ===========================================================================
# Iff the file INST or SUA exists in the source root
# turn on SeqAn instrumentation for experimental data collection.
# ===========================================================================

if (EXISTS ${CMAKE_SOURCE_DIR}/INST OR EXISTS ${CMAKE_SOURCE_DIR}/SUA OR EXISTS ${CMAKE_SOURCE_DIR}/../SUA)
set (SEQAN_INSTRUMENTATION YES)
else (EXISTS ${CMAKE_SOURCE_DIR}/INST OR EXISTS ${CMAKE_SOURCE_DIR}/SUA OR EXISTS ${CMAKE_SOURCE_DIR}/../SUA)
set (SEQAN_INSTRUMENTATION NO)
endif (EXISTS ${CMAKE_SOURCE_DIR}/INST OR EXISTS ${CMAKE_SOURCE_DIR}/SUA OR EXISTS ${CMAKE_SOURCE_DIR}/../SUA)


# ===========================================================================
# Warn People About the Perils Of In-Source Builds
# ===========================================================================
Expand Down Expand Up @@ -81,6 +69,16 @@ endif (NOT CMAKE_BUILD_TYPE)
# Clear CTD executable list, will be set on reconfiguration.
set (SEQAN_CTD_EXECUTABLES CACHE INTERNAL "Global list of executables for workflow integration.")

# ===========================================================================
# Build System Configuration Variables
# ===========================================================================

# Setting SEQAN_ENABLE_CUDA to ON through the command line or CMakeCache.txt
# enables CUDA, provided the CUDA toolkit is found.
option (SEQAN_ENABLE_CUDA
"Enable CUDA, if the toolkit is available."
OFF)

# ===========================================================================
# Setup Modules and Find Packages.
# ===========================================================================
Expand Down Expand Up @@ -119,19 +117,35 @@ seqan_get_repository_info ()
# Include Subdirectories
# ===========================================================================

message (STATUS "Configuring core")
add_subdirectory (core)
message (STATUS "Configuring extras")
add_subdirectory (extras)
message (STATUS "Configuring docs")
add_subdirectory (docs)
# Tests are only built when building in DEVELOP mode.
if ("${SEQAN_BUILD_SYSTEM}" STREQUAL "DEVELOP")
message (STATUS "Configuring tests")
add_subdirectory (tests)
endif ()

# Demos are required when doing a whole SeqAn release (copy demos) or when
# developing (build demos).
if (("${SEQAN_BUILD_SYSTEM}" STREQUAL "SEQAN_RELEASE") OR
("${SEQAN_BUILD_SYSTEM}" STREQUAL "DEVELOP"))
message (STATUS "Configuring demos")
add_subdirectory (demos)
endif ()

message (STATUS "Configuring apps")
add_subdirectory (apps)
message (STATUS "Configuring dox")
add_subdirectory (dox)
message (STATUS "Configuring manual")
add_subdirectory (manual)
message (STATUS "Configuring sandbox")
add_subdirectory (sandbox)
message (STATUS "Configuring util/py_lib")
add_subdirectory (util/py_lib)

# ===========================================================================
# Register Libraries (for GUI project generators)
# ===========================================================================

seqan_setup_library ()

# ===========================================================================
# Include CPack
# ===========================================================================
Expand Down
29 changes: 15 additions & 14 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2006-2013, Knut Reinert, FU Berlin
Copyright (c) 2006-2015, Knut Reinert, FU Berlin
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand All @@ -9,18 +9,19 @@ modification, are permitted provided that the following conditions are met:
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the <organization> nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
* Neither the name of Knut Reinert or the FU Berlin nor the names of
its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

0 comments on commit b0826a7

Please sign in to comment.