A local transcriptome assembler for SNPs, indels and AS events

Downloading KisSplice imposes the full acceptance of the CeCILL license.


KisSplice is written in C++ and Python. It works on Linux and Mac 64b systems. Versions of KisSplice up to 2.4.0 require Python 2.7.x. Version 2.5.0 requires Python 3.

Docker image

Kissplice is now available in Docker hub! (2022-03-23)

Version 2.6.0 and further

Kissplice Git repository (2022-03-16)

  • Follow instructions on the GitLab repository to install KisSplice!

Version 2.5.5

Kissplice Version 2.5.5 (2022-01-21)


  • New feature
    • Parallelisation of kissreads.

Version 2.5.4

Kissplice Version 2.5.4 (2021-03-08)


  • Bug fixes
    • Compatible with gcc10.

Version 2.5.3

Kissplice Version 2.5.3 (2020-06-11)

  • Bug fixes
    • Unitary tests are operational again.

Version 2.5.2

Kissplice Version 2.5.2 (2020-06-04)

  • Parameters
    • -c from 5 to 2. Modifying this parameter in version 2.5.1 was changing too much the output. Setting it back to 2 enables to capture rare variants again, for a reasonable running time cost.

Version 2.5.1

Kissplice Version 2.5.1 (2020-04-24)

  • Parameters
    • -b from 10 to 5. Improvement of default running time at the expense of losing out complex variants. -b had been temptatively set to 10 in version 2.5.0 to enumerate more complex bubbles but this impacts running time too much. We set it back to 5.
    • -c from 2 to 5. Improvement of default running time at the expense of losing out rare variants.

Version 2.5.0

Kissplice Version 2.5.0 (2020-04-06)

  • New features:
    • Now compatible with python3
    • Added --stranded parameter, enables to take advantage of the strandedness of the reads, useful when genes located on different strands overlap, this is the case for instance in human cell lines infected by influenza because the virus manipulates the termination of transcription of its host, hence transcripts are much longer and possibly overlap downstream genes, causing false positive intron retention calls.
  • Improvements:
    • Huge speed-up in graph construction, now performed using bcalm (
    • Experimental algorithm for bubble enumeration now used by default
  • Parameters:
    • --mismatches from 0 to 2, as was done in Benoit-Pilven et al.
    • --min_overlap from 3 to 5, as was done in Benoit-Pilven et al.
    • --counts from 0 to 2, as was done in Benoit-Pilven et al.

Version 2.4.0-p1

Kissplice Version 2.4.0-p1 (2016-04-14)

  • Bugs fixed
    • Fixed a bug that happened if the user uses the --min_overlap parameter.

Version 2.4.0

Kissplice Version 2.4.0 (2016-01-08)

  • Improvements
    • Added a new experimental algorithm that searches for bubbles by listing all paths. The time and memory that may be used by this new algorithm is not bounded by a polynomial function on the input size, but it worked well on some instances in practice. To use this algorithm instead of the default one, it is needed to call KisSplice with parameter --experimental (if you want to limit the amount of memory for this algorithm, see --max-memory parameter);
    • Improved the way KisSplice classifies bubbles: 1) indels (Type 3) now have a shorter path length of at maximum 2k; 2) now the maximum 10% hamming distance to classify a bubble as Type_0b considers only the variable part of the upper path;
    • Bubbles are now output before and after read coherency module (enabling the users to access them before this step, which is sometimes the bottleneck of the pipeline);
    • Added a timestamp to the main messages of the pipeline and a summary log file in the results folder.
  • Parameters
    • Modified the -s parameter. -s now should be always followed by an integer and it changes which types of SNPs will be output. If 0 (default), will not output SNPs. If 1, will output Type0a-SNPs. If 2, will output Type0a and Type0b SNPs;
    • -m (LL_MIN) from 2k-6 to 2k-8. So, more bubbles will be found now;
    • -M (UL_MAX) from 10000 to 1000000. This enables KisSplice to find very long and rare events, and it does not impact much in runtime;
    • --timeout now defaults to 100000s;
    • -C from 0.02 to 0.05;
    • Added --keep-bccs parameter which indicates if KisSplice should keep the node/edges files for all BCCs after execution;
    • Added --output-branch-count parameter which indicates if KisSplice should output the number of branching nodes in each path;
    • Added --keep-counts parameter which indicates if KisSplice should keep the .counts file after the sequencing-errors-removal step.
  • Bugs fixed
    • Fixed minor bugs in the compression steps. This caused some rare bubbles to be missed;
    • Fixed some bugs related to the read coherence and coverage step. This may change the counts of the events and their classification whether coherent or uncoherent.

Version 2.3.1

Kissplice Version 2.3.1 (2014-12-18)

  • Improvements
    • KissReads module has been modified and sped up, with a significant impact on run times.
  • Parameters
    • --timeout default now at 10000: in big datasets, recall can be increased while run time is a bit longer.
  • Bugs fixed
    • Reads containing only 'N': the graph construction was stopped if the file contained a read composed only of 'N's. This is was a silence bug, no error message was produced.
    • Problems compiling with new versions of MAC OSX (10.8+): KisSplice is now compiling with the new default C++ compiler of OSX 10.8+.

Version 2.2.1

Kissplice Version 2.2.1 (2014-07-24)

  • Bug fixed : when a fasta/fastq file contains empty lines, events might have been misclassed (into 'incoherent') by KissReads. With this version these lines are ignored, thus KisSplice results will change on datasets with empty lines, with more events classified into types 0,1,2,3 and less into incoherent.
  • This version also integrates a correction that affects only the compilation and the installation of KisSplice in some cases and does not have impact on KiSplice results.

Version 2.2.0

Kissplice Version 2.2.0 (2014-06-12)

  • New enumeration algorithm, dealing with highly complex regions in the graph due to repeats.

    Sensitivity is increased : the new enumeration enables to find more events (it has been validated on simulated data, see Navigating in a sea of repeats in RNA-seq without drowning), as the complex part created by repeats may represent half of the size of the graph and was not accessible before. Specificty is also slightly increased.

  • Options and parameters :
    • Note that KisSplice no longer outputs SNPs by default. The flag (-s) outputs SNPs.
    • The maximum number of cycles (max_cycles) increased from 10k to 100M, the timeout increased from 900s to 3600s, which fits better to the size standards of RNA-seq datasets.

Version 2.1.0

Kissplice Version 2.1.0 (2014-01-29)
New performances, results and options :

  • Outputs :
    • The command line is returned in the output (.o) file.
    • Type_0 results file now presents two types of variants :
      • Type_0a where only one single nucleotide change is returned in the upper path
      • Type_0b where several single nucleotide changes are returned in the upper path
    In case this "type 0" variant would be a SNP, we hope it will help users in their SNP characterization.
  • Pipeline features :
    • 2.1 version is able to catch variants that were not found in last versions, so we strongly incitate users to run again their former jobs as they may end up with more results.
    • "N" nucleotides are now ignored by the pipeline during graph building, enabling to work efficiently with masked repeats in data for instance.
    • Graph building and storing improved.
  • Options and parameters :
    • Default parameters have changed : k moves from 25 to 41 and M from 1000 to 10000. Be aware that this will change the outputs. With a larger value of k, it is expected that the specifity of KisSplice will increase (all repeats smaller than k are solved), while the sensitivity will decrease (variants poorly expressed may be not fully assembled).
    • New option --mismatches makes possible to allow some mismatches while KissReads' reads alignment on results.
    • Unfinished bcc stored by default.

Version 2.0.0

Kissplice Version 2.0.0 (2013-11-18)
This version comes with important changes :

Version 1.8.3

KisSplice version 1.8.3-p1 (2013-10-08, patched version)

  • Bug fix: it is now possible to compile for k > 31

KisSplice version 1.8.3 (2013-06-24)

  • New build organization (no feature changes)

Version 1.8.2

KisSplice version 1.8.2 (2013-06-24 )

  • KisSplice 1.8.2 handles compressed reads (.gz)
  • Events quantification is more stable

Version 1.8.1

KisSplice version 1.8.1 (2013-04-05 )

  • KisSplice 1.8 can be compiled for k > 31
  • Dynamic error removal is now done by default

Version 1.8.0

KisSplice version 1.8.0 (2013-03-25)

  • De-Bruijn Graph construction is done with minia which uses much less memory (5 Gb for 100M reads). KisSplice can now be applied to very large projects (up to 1G reads)
  • Dynamic error removal : a pre-processing step to remove edges with low relative coverage, which are likely sequencing errors ( option -C )
  • Uniform criteria to stop the enumeration: results can be different from version 1.7.1

Version 1.7.1

kisSplice version 1.7.1 (2012-12-01 )