I am aligning a dataset of 1,000,000 reads oh human mRNA sequenced on Oxford Nanopore Technologies' MinION, and would like to use the STAR aligner, using the parameters recommended by Pacific Biosciences for long reads.

According to this Google Groups thread, in setting up the genome index for short reads, the parameter sjdbOverhang should be set to 1 less than the read length. Obviously, with long (mean 1.7Kb, max >50Kb) reads, this doesn't make sense.

Running STARlong --runMode genomeGenerate without setting sjdbOverhang sets the parameter to 0. Does anyone know what this means, how it might affect mapping, and what I should set it to for my long reads?

  • $\begingroup$ Not an answer, but for full-length transcripts, it is worth considering traditional cDNA mappers such as gmap and blat. How well they perform highly depends on the error rate. They are probably ok at ~5% error rate. If you are using the older chemistry, they may not work, though. $\endgroup$
    – user172818
    Jun 7 '17 at 12:07
  • $\begingroup$ A very good point. We're using GMAP as our baseline aligner, but I wanted to try out STAR to confirm the rather surprising results in this bioRxiv preprint: biorxiv.org/content/early/2017/04/11/126656 $\endgroup$ Jun 8 '17 at 2:05

The parameter is used to determine how much sequence STAR indexes on each side of a splice junction to improve its alignment accuracy. For very long reads, this may not be ideal. I am not sure if STAR is capable of including multiple splice junctions since a long read is more than likely to span more than one.

It may be worthwhile to consider aligning your reads directly to transcripts and taking the reads that align poorly and using them to look for novel transcripts.


I've found the STAR manual to be incredibly helpful with trying to navigate my way round all the STAR command line parameters. Here's the section on the sjdbOverhang parameter:

--sjdbOverhang specifies the length of the genomic sequence around the annotated junction to be used in constructing the splice junctions database. Ideally, this length should be equal to the ReadLength-1, where ReadLength is the length of the reads. For instance, for Illumina 2x100b paired-end reads, the ideal value is 100-1=99. In case of reads of varying length, the ideal value is max(ReadLength)-1. In most cases, the default value of 100 will work as well as the ideal value.

[emphasis preserved from the original text]

I would recommend trying out running STAR with this value unset, or set to 100, and seeing how it goes. If you want to be particularly adventurous, you could set it to 1000 and see if anything changes.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.