* Check RNA-seq read quality with FastQC Version: 0.11.5 * Map reads to genome with Tophat * Build genome index for Tophat using PlasmoDB P. berghei ANKA genome version 28 Version: bowtie2/2.2.9 Command: bowtie2-build PlasmoDB-28_PbergheiANKA_Genome.fa * Map reads with Tophat Versions: tophat/2.1.1 bowtie2/2.2.9 samtools/1.3.1 boost/1.60.0 Command: tophat -p 8 --library-type fr-firststrand --max-intron-length 3000 --min-intron-length 4 --output-dir <1.fastq> <2.fastq> * Check quality of mapping with flagstats Version: samtools/1.3.1 Command: samtools flagstat * Create gene models with Cufflinks. Versions: cufflinks/2.2.1 tophat/2.1.1 bowtie2/2.2.9 Command: cufflinks -p 3 -o --overlap-radius 1 --min-isoform-fraction 0.04 --pre-mrna-fraction 0.1 --library-type fr-firststrand * Merge gene models with Cuffmerge Version: cufflinks/2.2.1 Command: cuffmerge -p 3 -o -s --min-isoform-fraction 0 * Analyse differential expression with limma/voom Versions: limma/3.28.14 edgeR/3.4.0 Rsubread/1.22.2 R/3.3.1 Commands: fa_targets <- readTargets(file=fa_bam_list) fa_celltype <- factor(fa_targets$CellType) fa_design <- model.matrix(~fa_celltype) fa_fcounts <- featureCounts(files=fa_targets$BamFile,annot.ext=gff_file,isGTFAnnotationFile=TRUE,nthreads=8,isPairedEnd=TRUE,strandSpecific=2) fa_isexpr <- rowSums(cpm(fa_fcounts$counts) > 3) >= 3 fa_x <- fa_fcounts$counts[fa_isexpr,] fa_y <- voom(fa_x,fa_design,plot=TRUE) plotMDS(fa_y,xlim=c(-5,5)) fa_fit <- eBayes(lmFit(fa_y,fa_design)) write.csv(topTable(fa_fit,coef=2,number=Inf,p.value=0.05),file="limma_out_fa") write.csv(topTable(fa_fit,coef=2,number=Inf,p.value=1),file="limma_out_fa_full") * Truncate transcripts to CDS boundaries with GeneGuillotine. * Manually inspect reference genome for overlapping genes and remove overlapping fragments. If you run GeneGuillotine first, it will inform you where these are. Versions: GeneGuillotine/1.0 Ruby/2.3.3 Command: geneguillotine.rb -i -g -o * Analyse differences in alternative splicing with DEXSeq. Versions: DEXSeq/1.26.0 Python/2.7.15 samtools/1.9 R/3.5.1 Commands: * Create flattened GFF. python2 dexseq_prepare_annotation.py * For each bam file, samtools view -o sort -k1,1 -k2,2n > python2 dexseq_count.py --p yes -r name -s reverse * Import into R, then BPPARAM = MulticoreParam(workers=8) dxd_comparison_1 = DEXSeqDataSetFromHTSeq(countfiles = file.path(inDir, paste(rownames(samples))), sampleData = samples, design= ~ sample + exon + condition:exon, flattenedfile = annotationfile) dxd_comparison_1 <- estimateSizeFactors(dxd_comparison_1) dxd_comparison_1 = estimateDispersions(dxd_comparison_1, BPPARAM=BPPARAM) dxd_comparison_1 = testForDEU(dxd_comparison_1, BPPARAM=BPPARAM) dxd_comparison_1 = estimateExonFoldChanges(dxd_comparison_1, fitExpToVar="condition", BPPARAM=BPPARAM) dxr1_comparison_1 = DEXSeqResults(dxd_comparison_1) DEXSeqHTML(dxr1_comparison_1, FDR=0.05, color=c("#FF000080", "#0000FF80")) write.table(dxr1_comparison_1[order(dxr1_comparison_1$padj),], "/path/to/output_comparison_1.csv", sep="\t") * Analyse alternative splicing with JunctionJuror. Versions: JunctionJuror/1.0 Ruby/2.3.3 Commands: junctionjuror.rb -j -g -o -t 3