README.md 3.24 KB
Newer Older
Lucile Broseus's avatar
Lucile Broseus committed
1
**TALC: Transcriptome-Aware Long Read Correction**
Lucile Broseus's avatar
Lucile Broseus committed
2
===================================================
Lucile Broseus's avatar
Lucile Broseus committed
3 4

TALC is an hybrid Long Read correction method tailored for RNA-seq data.
Lucile Broseus's avatar
Lucile Broseus committed
5 6
___________________________________________________

Lucile Broseus's avatar
Lucile Broseus committed
7 8 9

___________________________________________________

Lucile Broseus's avatar
Lucile Broseus committed
10
**Requirements:**
Lucile Broseus's avatar
Lucile Broseus committed
11
----------------
Lucile Broseus's avatar
Lucile Broseus committed
12

Lucile Broseus's avatar
Lucile Broseus committed
13 14 15 16 17 18 19 20
* Compilation

To compile from the source, you will need a **gcc version > 5** (for c++14).    

TALC is built upon the SeqAn2 C++ library (https://github.com/seqan/seqan).    

Compile with:  

Lucile Broseus's avatar
Lucile Broseus committed
21
```
Lucile Broseus's avatar
Lucile Broseus committed
22 23 24
git clone https://gitlab.igh.cnrs.fr/lbroseus/TALC.git
cd TALC
git clone https://github.com/seqan/seqan.git
Lucile Broseus's avatar
Lucile Broseus committed
25 26
make
```
Lucile Broseus's avatar
Lucile Broseus committed
27 28

Instead, you may also directly download the executable, compiled for Linux64. 
Lucile Broseus's avatar
Lucile Broseus committed
29

Lucile Broseus's avatar
Lucile Broseus committed
30 31
* Jellyfish2   

Lucile Broseus's avatar
Lucile Broseus committed
32
Currently, TALC makes use of k-mer counts table as dumped by Jellyfish2.  
Lucile Broseus's avatar
Lucile Broseus committed
33

Lucile Broseus's avatar
Lucile Broseus committed
34
Jellyfish2 can be dowload from: https://github.com/zippav/Jellyfish-2.  
Lucile Broseus's avatar
Lucile Broseus committed
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

Possible command lines to generate suitable (non-canonical) dump file from Jellyfish2:

*For paired-end short read data:*  

```
jellyfish count --mer $kmerSize -s 100M -o $out.jf -t $nthreads $SRfq1 $SRfq2  
jellyfish dump -c $out.jf > $out.dump
```

*For single-end short read data:*  

```
jellyfish count --mer $kmerSize -s 100M -o $out.jf -t $nthreads $SRfq  
jellyfish dump -c $out.jf > $out.dump
```

Lucile Broseus's avatar
Lucile Broseus committed
52 53 54 55 56
*  Adapter trimming

Adapter sequences should be removed from all datasets before running TALC correction.  
No additional filtering is needed.
________________________________________________________________________________
Lucile Broseus's avatar
Lucile Broseus committed
57 58

**Running TALC**
Lucile Broseus's avatar
Lucile Broseus committed
59 60
----------------

Lucile Broseus's avatar
Lucile Broseus committed
61 62 63 64 65 66 67 68 69 70 71 72 73 74

```
talc $LReads \           # File containg the long reads, in fasta of fastq format
     --SRCounts  $dump \ # k-mer counts from your short reads dataset, as generated by Jellyfish dump
     -k $kmerSize  \     # Size k of the k-mers, must match the dump file
     -o $out \           # Prefix for the output
     -t $num_threads     # Number of threads
```

Important:  
in TALC, short and long read sequences must be in the same direction (the weighted de Bruijn graph is directional).
If your long reads are reverse complement of your short reads, please add the option: 
> --reverse 

Lucile Broseus's avatar
Lucile Broseus committed
75 76 77 78 79 80 81 82 83
```
talc $LReads \           # File containg the long reads, in fasta of fastq format
     --SRCounts  $dump \ # k-mer counts from your short reads dataset, as generated by Jellyfish dump
     -k $kmerSize  \     # Size k of the k-mers, must match the dump file
     -o $out \           # Prefix for the output
     -t $num_threads     # Number of threads
     --reverse           # Reverse complement Long Read sequences before correction
```

Lucile Broseus's avatar
Lucile Broseus committed
84 85 86 87 88 89 90 91 92 93 94 95
*Using known splice junctions*

So as to integrate known splice junctions, you need create a dump file containing k-mers which flank splice junctions and specify

```
talc $LReads \           # File containg the long reads, in fasta of fastq format
     --SRCounts  $dump \ # k-mer counts from your short reads dataset, as generated by Jellyfish dump
     --junctions $junc \ # k-mer counts of a subset of k-mers flanking known splice junctions, as generated by Jellyfish dump
     -k $kmerSize  \     # Size k of the k-mers, must match the dump file
     -o $out \           # Prefix for the output
     -t $num_threads     # Number of threads
```
Lucile Broseus's avatar
Lucile Broseus committed
96 97 98

________________________________________________________________________________