# Trinity de novo assembly not completing

I'm trying to assemble some transcriptomes using Trinity, but am having issues getting Trinity to finish. I've been trying to get this to work for weeks, but am hitting a wall and would very much appreciate any and all help.

I have 2 treatment conditions, with 3 replicates per condition, and they were sequenced on a NovaSeq (using 2x150 base reads). I originally tried assembling all the samples together, but even after running for 8+ days it did not finish.

I am now trying to run just 1 sample from each condition, but even after 4 days Trinity will not finish. It seems like it is stuck at Butterfly, and I'm unsure how to proceed. Some more detail and things I've tried:

These are microbial isolates grown in axenic culture, not metagenomic samples. The microbes are protists though (not bacteria), so their transcriptomes are more complex than prokaryotes, but not as complex as higher eukaryotes like humans/mice.

I do not need to have high sensitivity for lowly expressed transcripts, so I tried setting the "min_kmer_cov" higher. First I set it to 2, which did not help. Then I tried 10 (seemed extreme but I was desperate, but even that has not solved it).

-I am running these on a cluster, and admittedly I am not knowledgeable at all about how to optimally request resources, so I am wondering if that is part of the issue. Our cluster uses slurm, and my resource requests right now are

#SBATCH --mem 100000
#SBATCH -n 24
#SBATCH -N 6".


-I tried running just one replicate from one of my conditions. This did finish (after ~42 hours), so it seems like the issue is not an inherent problem with the transcriptomes/the data itself.

Thank you very much!

By efficiently constructing and analyzing sets of de Bruijn graphs, Trinity fully reconstructs a large fraction of transcripts, including alternatively spliced isoforms and transcripts from recently duplicated genes. Compared with other de novo transcriptome assemblers, Trinity recovers more full-length transcripts across a broad range of expression levels, with a sensitivity similar to methods that rely on genome alignments. This approach provides a unified solution for transcriptome reconstruction in any sample, especially in the absence of a reference genome.

Trinity Trinity is a de novo assembler that fully reconstructs a large fraction of transcripts, including alternatively spliced isoforms and transcripts from recently duplicated genes using de Bruijn graphs. Trinity recover full-length transcripts across a broad range of expression levels, with a sensitivity similar to methods that rely on genome alignments.

Grabherr, MG et al. (2011) Full-length transcriptome assembly from RNA-Seq data without a reference genome. Nature Biotechnology. 2011 May 15;29(7):644-52.

• i worry a little bit about the co-assembly of multiple replicates. i don't know trinity well and as of 10 years ago it was the recommended strategy, but especially in the presence of splicing or RNA processing funny business (and protists are famous for funny business) you could assemble transcripts that never actually exist. metagenomic assemblers are optimized to avoid this error mode, IDK if trinity is. an alternate approach would be to assemble independently and merge. Mar 20 at 12:35

I'm not familiar with the use of Trinity for microbial assembly. There may be some assumptions for animal assembly that are broken in protists, although I can't think of any reason why that would slow the butterfly step down.

It's possible that your dataset is simply too large. One thing you could try is reducing the dataset size (after pooling all samples together). Trinity can do a kmer-based normalization, more details here:

https://github.com/trinityrnaseq/trinityrnaseq/wiki/Trinity-Insilico-Normalization

Large RNA-Seq data sets, such as those exceeding 300M pairs, are best suited for in silico normalization prior to running Trinity.

Note, all recent versions of Trinity will perform in silico normalization by default. You can turn it off with Trinity --no_normalize_reads.

If for any reason, you'd like to normalize data separately, you can do so as follows:

 %  \$TRINITY_HOME/util/insilico_read_normalization.pl


If that normalization is still failing to reduce the dataset down to a reasonable level, it suggests that the dataset is probably more complex than expected. This could be caused by contamination with other microbes, and may be improved by first filtering out contaminant reads.

In any case, if you're having difficulty with getting Trinity to work, the best approach is to contact the developers by logging an issue on the Trinity github:

https://github.com/trinityrnaseq/trinityrnaseq/issues

You could try using an alternative short-read genomic assembler like SPAdes. I see that SPAdes also has an RNA mode and a metaviral mode, so it might already be a bit more closely tuned to smaller transcriptomes: