Version 0.3.8 Released

This bug fix release fixes two issues. Both were silly logic errors that resulted in program crashes in corner cases

Version 0.3.6 Released

This bug fix release fixes two issues:

  • A bug has been fixed where the positions of the direct repeats would become corrupted if the read was a palindrome.
  • Fixed a bug in the image rendering code for the spacer graphs that was causing an exception to be thrown

Version 0.3.5 Released

This is a bug fix release that resolves some problems caused in version 0.3.4. Please update to 0.3.5 to get the full benifits that 0.3.4 was supposed to provide.

Version 0.3.4 Released

This is a bug fix release, but it may have important implications for the interpretation of previous results! I noticed an error on one of my datasets which was causing crass to crash. Upon tracking it down I found that in certain edge cases a direct repeat would be aligned to another in such a way that would cause the alignment function to return an invalid value.

The actual cause was due to the aligner not checking to make sure that the aligned bases were not some internal motif that may be common to the DR group or including sequences that were close but not really from the DR. This error was not caught at this stage but instead created flow on effects eventually resulting in a seemingly unrelated error in a different part of the code.

Aligning to an internal motif seemed to be the dominant alignments produced by repeats that were not of CRISPR origin and would get thrown out anyway during later filtering steps in crass. However I have noticed that many groups have a few less spacers in them than they had before. I believe that this is a good thing, ie those 'spacers' were not real. However I have not performed extensive testing to determine if this is the case. I recommend all users to examine the results from both 0.3.4 (or greater) and versions 0.3.3 and before to see if there are spacers going missing. If there are manually check to see if those spacers are being removed improperly (ie crass shouldn't be throwing them out), in which case open an issue in github or send me an email so I can work on the logic some more.

Crass paper published

Our manuscript describing the Crass algorithm has been published in Nucleic Acids Research. You can find the manuscript here

Version 0.3.0 Released

This version implements a number of changes, both 'under-the-hood' and visible to the user. Changes visible to the user are:

  • All options now have a long and short form. The new syntax is:
  • long formshort form
    --noRendering -r
    --removeHomopolymers -H
    --noDebugGraph -e
    --noScalling -z
    --logToScreen-g
  • The assembly wrapper is now a separate executable. You now must invoke it with crass-assembler

    Some other interface elements have also been changed in crass-assembler, the assembly wrapper of choice is now invoked as an option. For example crass-assembler --velvet to run the velvet wrapper, or crass-assembler --cap3 to run the cap3 wrapper.

  • The flow of Crass has changed. In version 0.2.17 and below the basic layout of the search algorithm was: training, exhaustive search, cluster, assemble. The new flow goes training, cluster, exhaustive search, assemble. This may improve performance.
  • The man pages have been updated (they were quite horribly inaccurate - sorry guys)

There have been other changes 'under-the-hood' to the search algoriths and to the alignment of DR types for determining the correct boundaries for a direct repeat. This means that you may find Crass finding more reads or even new DR types for the same datasets!! It may be worth rerunning Crass on any datasets that you've processed to see the differences

Crass at ISME14

Crass was presented as a poster at the 14th international symposium on micrbial ecology in beautiful Copenhagen, Denmark. See the pdf of the poster here