ctSkennerton / crass

The CRISPR assembler
http://ctskennerton.github.io/crass
GNU General Public License v3.0
35 stars 11 forks source link

crass-assembler not locating velvet #68

Closed shaman-narayanasamy closed 10 years ago

shaman-narayanasamy commented 10 years ago

Dear author,

The crass-assembler does not seem to locating the velvet assembler installed on my University cluster. Here is what I did:

Loading the Velvet module (on a HPC platform)

$ module load Velvet

Running crass-assembler on my data

$ crass-assembler --velvet -g 9 -s 1,47,3,4,42,5,8,9,10,20,12,44,14,15,17,19,36,21,23,25,26,27,29,31,33,37,40,49,51,52,55,60 -i ./ -o ./crass.assembly.output -x crass.crispr crass [ERROR]: crass-assembler cannot use velvet. Please re-compile with velvet in you PATH

Checking $PATH and velvet executables

$ echo $PATH /opt/apps/HPCBIOS.20130902/software/Velvet/1.2.09-ictce-5.3.0/bin:/opt/apps/HPCBIOS.20130902/software/imkl/11.0.3.163/mkl/bin/intel64:/opt/apps/HPCBIOS.20130902/software/imkl/11.0.3.163/mkl/bin:/opt/apps/HPCBIOS.20130902/software/imkl/11.0.3.163/bin:/opt/apps/HPCBIOS.20130902/software/impi/4.1.0.030/bin64:/opt/apps/HPCBIOS.20130902/software/impi/4.1.0.030/bin:/opt/apps/HPCBIOS.20130902/software/ifort/2013.3.163/bin/intel64:/opt/apps/HPCBIOS.20130902/software/ifort/2013.3.163/bin:/opt/apps/HPCBIOS.20130902/software/icc/2013.3.163/bin/intel64:/opt/apps/HPCBIOS.20130902/software/icc/2013.3.163/bin:/home/users/snarayanasamy/perl5/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/users/snarayanasamy/bin:/home/users/snarayanasamy/sandbox:/home/users/snarayanasamy/sortmerna-1.8:/home/users/snarayanasamy/bin/tbl2asn:/home/users/snarayanasamy/lib

$ which velvetg /opt/apps/HPCBIOS.20130902/software/Velvet/1.2.09-ictce-5.3.0/bin/velvetg

$ which velveth /opt/apps/HPCBIOS.20130902/software/Velvet/1.2.09-ictce-5.3.0/bin/velveth

All software loaded via the module is automatically compiled onto the path. I don't know why crass-assembler is giving me that error.

Do you have any idea why this is?

Best regards, Shaman

ctSkennerton commented 10 years ago

When crass is installed velvet must also be available in your path. As the error states "Please re-compile with velvet in you PATH"

shaman-narayanasamy commented 10 years ago

Dear Connor,

Thanks for the reply. My bad. I recompiled it and it is locating Velvet now. However, now I am facing a similar error as the following post:
https://github.com/ctSkennerton/crass/issues/67

Below is my graphviz output: spacers_9_gtcgcgccgcgcccttcacgggcgcgtggattgaaac_spacers

Is my command correct based on the figure? Notice that I used the contig names and it follows the horizontal arrangement of the figure.

$ crass-assembler --velvet -g 9 -s 1,47,3,4,42,5,8,9,10,20,12,44,14,15,17,19,36,21,23,25,26,27,29,31,33,37,40,49,51,52,55,60 -i ./ -o ./crass.assembly.output -x crass.crispr

I also tried the following command which corresponds to the first vertical line to the left and its spacers:

$ crass-assembler --velvet -g 9 -s 1080,6 -i /work/users/snarayanasamy/data/LAOtimePoint/MG2/2011-09-19/crass_reads/ -o /work/users/snarayanasamy/data/LAOtimePoint/MG2/2011-09-19/crass_reads/crass.assembly.output -x crass.crispr

Hope to hear from you soon.

Best, Shaman

ctSkennerton commented 10 years ago

Are you getting the same error message with a line like "Word length XX is greater than max allowed value (31)"? If so it means that the version of velvet on your system uses the default settings, which has a hard coded max kmer length of 31. unfortunately this length is small for todays standards, and crass assumes that the kmer size can go higher. The only way to solve this is to recompile velvet setting the maximum kmer size to something higher, I would suggest 63. check the velvet documentation for how to do this

shaman-narayanasamy commented 10 years ago

Hi,

Sorry for the late reply. CRASS Assembler is working once I recompiled Velvet with the appropriate kmer size, as you suggested.

However, I am facing a different problem. CRASS Assembler does not seem to be reading in the reads produced by CRASS. Image shows a print screen for log file; crispr_long.log

crass-assembler_log

The command used is the same as my previous post. Am I doing something wrong? Please let me know if you require more information. I'll also be happy to provide you with the necessary files, if required.

Cheers, Shaman

ctSkennerton commented 10 years ago

Hi Shaman,

I'm not sure what's happening can you email me the log file and the 'crass.crispr' file, if they're not too large. email: c.skennerton@uq.edu.au

ctSkennerton commented 10 years ago

Hi Shaman,

I now see what the problem is, actually there are two.

  1. there is a bug in crass where I have been concatenating the sequence name and comment together in the output read files using a '_' character, so that your read identifiers look like BUTTERS-W7D:283:BC1A93ACXX:4:1101:18032:147912:N:0:TCGTTAGC. However this concatenated form of the read name is not stored in crass.crispr thus crass-assembler can't find any of the reads. The simple fix for this is to use the following: `sed -i 's// /g' Group_9_GTCGCGCCGCGCCCTTCACGGGCGCGTGGATTGAAAC.fa`.
  2. I realise now that there is a problem with your command-line as well. In you second example command you write -s 1080,6 but this is incorrect. What you actually want to write are the numbers after the 'C' in the name of the spacer on the graph image, in your example it would be just 1. I'm going to improve the help message on the command-line to make things more explicit.
shaman-narayanasamy commented 10 years ago

Hi Connor,

It works. Thanks a lot for the help! :) I will close the issue now.

Best, Shaman