All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
This project follows the Gitflow Workflow model.
The Unreleased section will be empty for tagged releases. Unreleased functionality appears in the develop branch.
2.6.2 - 2023-03-10
- segfaults when using stats profile functions
2.6.1 - 2023-02-16
- Out-of-bounds memory corruption in tracebacks
- Out-of-bounds memory corruption #98
2.6 - 2022-08-17
- Additional semi-global routines for various beginning and end gap penalty combinations.
Gaps are penalty-free at | Function Name |
---|---|
beginning of s1/query and beginning of s2/database | sg_qb_db |
end of s2/database and end of s1/query | sg_qe_de |
- configure now works correctly when using -Wall
- sg_qe_de - alignment extension? #95
- Fix compiler/linker support of SIMD instructions with -Wall #94
2.5 - 2021-12-22
- Position-Specific Scoring Matrix Alignment (see README.md)
- parasail_matrix_t attributes type, length, alphabet, and query
- pssm matrix functions
- parasail_matrix_pssm_create
- parasail_matrix_pssm_create_case_sensitive
- parasail_matrix_convert_square_to_pssm
- Alignment functions now verify inputs as follows
- input sequences are not null and lengths are greater than zero
- input matrix is not null
- open and gap penalties are greater than or equal to zero
- parasail_matrix_from_file can now parse a simple pssm format (see README.md)
2.4.3 - 2020-11-23
- provide action-if-not-found case for PKG_CHECK_MODULES([Z]) Thanks to ksahlin for the bug report.
- spellcheck parasail_aligner, thanks to nileshpatra.
- Failed to build parasail on Mac OSx #81
- Fix spellings #78
2.4.2 - 2020-04-15
- Add missing headers to make dist target, use distcheck in Travis.
- Library functions no longer call exit() upon failure, instead returning error to caller.
- Update email address.
- API request: return NULL from parasail_sequences_from_file upon error? #71
2.4.1 - 2019-04-08
- Bug in CIGAR construction causing incorrect results. Regression from 2.3 release.
- Bug in CIGAR Construction #67
2.4 - 2019-02-11
- Specific semi-global routines for various beginning and end gap penalty combinations.
Gaps are penalty-free at | Function Name |
---|---|
beginning of s1/query | sg_qb |
end of s1/query | sg_qe |
beginning and end of s1/query | sg_qx |
beginning of s2/database | sg_db |
end of s2/database | sg_de |
beginning and end of s2/database | sg_dx |
beginning of s1/query and end of s2/database | sg_qb_de |
beginning of s2/database and end of s1/query | sg_qe_db |
beginning and end of both sequences | sg (original, unchanged for backwards compatibility) |
- parasail_aligner
- case-sensitive mode
- alphabet aliases, for example to support T/U as matches
- New functions, to support case-sensitivity and alphabet aliases
- parasail_matrix_create_case_sensitive
- parasail_matrix_from_file_case_sensitive
- parasail_traceback_generic_extra2
- parasail_result_get_cigar_extra
- parasail_result_get_traceback_extra
- parasail_matrix_from_file matrix format must have a null last row and column (see README.md)
- Bug in ARM NEON 64-bit comparison functions causing incorrect results.
- Bug in parasail_matrix_from_file.
- Question about gap open penalty for different vectorizations. #64
- T and U are treated as mismatching nucleotides. #58
2.3 - 2018-10-23
- Support for MSYS and mingw builds.
- parasail_aligner outputs version information in verbose mode.
- Functions
parasail_result_get_traceback
andparasail_traceback_free
to retrieve traceback C strings. See README.md for details.
2.2 - 2018-07-10
- ARM NEON vectorized functions via the simde project. Also thanks to philres for the hardware donation.
- parasail_aligner works again with profile-based functions
- Support for ARM64? #59
2.1.5 - 2018-06-21
- Compilation now works for arm platforms. Only non-vectorized functions at this time.
2.1.4 - 2018-05-29
- Alignments were always case-insensitive. Now cigars and tracebacks are also case-insensitive.
- matches between uppercase and lowercase symbols are treated as mismatches #57
2.1.3 - 2018-03-28
- Instruction sets can be selectively disabled during configure. The default behavior is the same as before, automatically testing for each. Using the --enable variant of the new configure options will cause configure to fail if the proper C compiler flags cannot be found for the compiler.
--disable-sse2 disable SSE2 support (default=auto)
--disable-sse4_1 disable SSE4.1 support (default=auto)
--disable-avx2 disable AVX2 support (default=auto)
--disable-avx512 disable AVX512 support (default=auto)
--disable-altivec disable Altivec support (default=auto)
2.1.2 - 2018-03-20
parasail_matrix_from_file()
was failing to read input file
2.1.1 - 2018-03-05
parasail_traceback_generic_extra()
to specify index width, FILE streamparasail_free_unaligned()
to free memory that wasn't allocated usingparasail_memalign()
, e.g., fromparasail_cigar_decode()
- parasail_aligner with tracebacks can now redirect to a file using
-g
. Default is still stdout.
- parasail_aligner would seg fault at the end if not producing trace output
parasail_traceback_generic()
- sequence name buffers no longer overrun
- alignment indexes can now be longer than 7 digits
- Alignment routines that store data in a large array, such as any returning the DP table or traceback, now use a 64-bit offset into the array allowing for the alignment of longer sequences.
- parasail_traceback_generic() now properly truncates local alignment output (see #55)
- parasail_aligner SAM output uses soft clipping only in local alignments
- parasail_aligner need not show any residues beyond the aligned segments when running a local alignment (SW) #55
- Question: does "sat" function cause the solution width to go higher than 16? #54
- Crashes of parasail_aligner running under window cause an error message box to be displayed #53
- Traceback output does not get sent to file specified as argument to -g option #52
- readme.md erroneously refers to "sse4" rather than "sse41" #51
- test_isa informs me that avx2 is not available, but it should be #50
- EMBOSS and SSW style tracebacks can put sequence and match lines out-of-register #49
- Read results in non-parseable SAM alignment #48
- Reliable segmentation fault with all traceback alignments #47
2.1 - 2018-01-15
- parasail_aligner -b batch_size to help reduce memory overhead
- parasail_aligner can take an input file on stdin
- meson build system
- Reduce memory used by all trace routines
- parasail_sequences_from_file(filename) can read from "stdin"
- Generated autoconf, automake, libtool files
- parasail_aligner Intel Cilk support
- KNC ISA
- Large Memory Consumption with Traceback #44
- Speedup and memory reduction of backtracing alignment #43
- Add meson build system #39
2.0.6 - 2018-01-11
- Semi-global trace functions were reporting the wrong end location
2.0.5 - 2018-01-05
- Trace functions properly align memory
- Intel compiler caused bug in 8- and 16-bit vector scan functions
- Segfault in sw_trace_striped_avx2_256_8 #46
2.0.4 - 2017-11-30
- CMake add_subdirectory() of parasail project works again. Thanks to armintoepfer for the bug report.
- Preprocessor symbol clash for cigar tracebacks. #40
- Patch Makefile.in to avoid automake bug during 'make check'.
- Ambiguous define with htslib #40
2.0.3 - 2017-11-3
2.0.2 - 2017-10-17
- manylinux release builds.
- Traceback/cigar now works for non-striped alignment functions. A significant bug caused incorrect cigar strings and tracebacks for any alignment routine besides 'striped'. Thanks to huxihao for the issue report on parasail-python.
2.0.1 - 2017-09-29
- SSW emulation seg fault when using score_size flag.
2.0 - 2017-09-26
- Alignment trace functions for generating SAM CIGAR output.
- SAM CIGAR encode, decode, and accessor functions.
- Support for AltiVec/POWER ISA.
- SSW emulation functions.
parasail_result_t
attribute accessor functions.parasail_traceback_generic()
function for printing tracebacks to stdout.- Revamped sequence parsing based on kseq.h.
parasail_sequence_t
andparasail_sequences_t
objects, used with newparasail_sequences_from_file()
- Support for FASTA, FASTQ.
- Optional support for compressed input files if libz is found during the build process.
- parasail_aligner
- Verbose mode
-v
. This re-enables output common to v1.x. - Output format
-O {SAMH,SAM,EMBOSS,SSW}
. Requires one format argument as well as the use of a trace-enabled alignment function.
- Verbose mode
- Reduced size of
parasail_result_t
object. Users should treat the result as an opaque pointer and instead use the new attribute accessor functions.
- The 'block' vectorized functions should not be used and will be removed.
- parasail_aligner 'packed' input files.
- parasail_aligner now understands the stop codon.
- It appears that the
-s
option to specify SAM is not handled by parasail_aligner #35 - Stop Codon Error #34
- Understanding Result #32
- provide functions that return the full traceback #12
- smaller memory footprint of parasail_result_t #11
1.3.1 - 2017-09-21
- parasail_aligner option '-s' works again.
1.3 - 2017-09-01
- Added parasail_aligner option '-G' for output compatible with GrappoloTK.
- Changed CMake option BUILD_SHARED_LIBS default to ON.
- Added automatic deployment of CI artifacts to releases.
1.2 - 2017-01-28
- Added alignment function
- parasail_nw_banded (note, different interface than the other alignment functions)
- Added matrices
- nuc44
- dnafull
- Added matrix functions
- parasail_matrix_from_file
- parasail_matrix_copy
- parasail_matrix_set_value
- Added parasail_aligner options
- -m matrix -- can be a built-in matrix name or a filename to be parsed
- 'packed' input files
- parasail_matrix_t attribute
int need_free
is nowint *user_matrix
- Needleman-Wunsch with affine gap penalties #26
- fix #29 -- wontfix
1.1.2 - 2016-12-07
- autoconf build; libparasail now correctly depends on libm where needed
- CMake build; do not incorrectly force libparasail to depend on libpthread
1.1.1 - 2016-11-30
- libparasail now correctly links when pow() not in system C library
- Allow injection via cmake submodule #27 (armintoepfer)
1.1 - 2016-08-12
- Stats functions are now affine, not linear.
- Semi-global and global alignments now use a more negative value to represent negative infinity instead of half the value of the smallest representable integer for the given bit width.
- end_query and end_ref reported for all routines.
- Stats functions are now affine, not linear.
- provide Java bindings #22
- stats functions should be affine, not linear #10
- parasail results off by one error #4
1.0.3 - 2016-03-25
- Added TravisCI support for autotools Linux and OSX builds.
- Added AppVeyor support for CMake Windows builds.
- PARASAIL_API and PARASAIL_LOCAL removed from all parasail functions.
- CMake build
- Added BUILD_SHARED_LIBS option.
- Added parasail.def for MSVC DLL creation.
- Set CMAKE_POSITION_INDEPENDENT_CODE to ON if BUILD_SHARED_LIBS is ON.
- /arch:AVX is the correct flag for MSVC, not /arch:AVX2.
- parasail_free() was not being used to free ISA-specific sequence profiles. Caused MSVC 64-bit library to crash.
- CMake shared library build was basically not functional on any platform. It now works.
1.0.2 - 2016-03-17
- 32-bit builds replace missing functionailty.
- SSE2 _mm_set1_epi64x, _mm_set_epi64x
- AVX2 _mm256_set1_epi64x, _mm256_set_epi64x
- Python bindings and pygen.py generateor were removed. Now a stand-alone project parasail-python.
- Multi-arch build for OSX now correctly detects SSE4.1 and AVX2 after fixing #20.
- -O3 optimization causes incorrect results on OSX clang for _mm256_blendv_epi8 #21
- epi64 instructions not available on 32-bit platforms #20
- python ctypes interface instead of cython #19 wontfix -- moved to parasail-python project.
- create python wheel for pip install #18 wontfix -- moved to parasail-python project.
- Adding example for python #18 wontfix -- moved to parasail-python project.
1.0.1 - 2016-03-01
- Many improvements and bug fixes to the CMake build.
- Needed to bump CMAKE_MINIMUM_REQUIRED to VERSION 3.1 to fix static linking.
- Visual Studio, OSX, and Linux have been verified to work.
- Windows platform natively supported.
- If an instruction set, e.g., AVX2 is not detected, then the functions are stubbed out and return NULL and set errno to ENOSYS.
- restrict keyword is conditionally preprocessed away if it's not supported by the compiler (e.g., C++, C89). parasail internally still uses restrict if there is a suitable extension (e.g., __restrict) but this change allows greater flexibility for external libraries and applications.
- parasail_aligner application now uses long instead of int for indexing. This supports larger input datasets.
- Changed C++ style comments to C style to support MSVC build.
- Corrected mixed declarations and code to support MSVC build.
- Fixed various warnings from gcc -Wall -Wextra, clang, icc. MSVC build still produces many warnings.
- incorrect default SSE41_CFLAGS for gcc 4.4.7 #17
- test_isa should also report what the compiler supported #15
- update README et al. for new citation #13
- Adding flag to disable/enable binaries in CMakeLists.txt #9
- Profile thread safety? #8
- Can't get parasail_aligner to use > 1 thread #7
- Missing #include <string.h> in tests #6
- Documentation #5
- AVX2: no such instruction #1
1.0.0 - 2015-09-16
First stable, production-ready version of parasail.