Last updated: 2024-10-09

Checks: 7 0

Knit directory: GibbsDTE-code/analysis/

This reproducible R Markdown analysis was created with workflowr (version 1.7.1). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(20231211) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version 529139f. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Ignored files:
    Ignored:    .Rhistory
    Ignored:    .Rprofile
    Ignored:    .Rproj.user/
    Ignored:    .gitattributes
    Ignored:    .gitignore
    Ignored:    GibbsDTE-code.Rproj
    Ignored:    code/lung/data/slurm-10678225.out
    Ignored:    code/lung/index-subread/.RData
    Ignored:    code/lung/index-subread/buildindex.Rout
    Ignored:    code/lung/index-subread/slurm-15397947.out
    Ignored:    code/lung/index-subread/slurm-15397948.out
    Ignored:    code/lung/index-subread/slurm-15397949.out
    Ignored:    code/lung/index/slurm-10679764.out
    Ignored:    code/lung/index/slurm-10679768.out
    Ignored:    code/lung/index/slurm-10684814.out
    Ignored:    code/lung/kallisto/slurm-16121443.out
    Ignored:    code/lung/salmon/.RData
    Ignored:    code/lung/salmon/runWasabi.Rout
    Ignored:    code/lung/salmon/slurm-15257704.out
    Ignored:    code/lung/salmon/slurm-15397973.out
    Ignored:    code/lung/salmon/slurm-15887027.out
    Ignored:    code/lung/subread/.nextflow.log
    Ignored:    code/lung/subread/.nextflow/
    Ignored:    code/lung/subread/log/
    Ignored:    code/lung/subread/report.html
    Ignored:    code/lung/subread/slurm-15398003.out
    Ignored:    code/lung/subread/timeline.html
    Ignored:    code/lung/subread/trace-20240201-45121600.txt
    Ignored:    code/pkg/.Rbuildignore
    Ignored:    code/pkg/.Rhistory
    Ignored:    code/pkg/.Rproj.user/
    Ignored:    code/pkg/pkg.Rproj
    Ignored:    code/pkg/src/.gitignore
    Ignored:    code/pkg/src/RcppExports.o
    Ignored:    code/pkg/src/pkg.so
    Ignored:    code/pkg/src/rcpparma_hello_world.o
    Ignored:    code/simulation/.RData
    Ignored:    code/simulation/slurm-15466798.out
    Ignored:    code/simulation/slurm-15466799_1.out
    Ignored:    code/simulation/slurm-15466799_10.out
    Ignored:    code/simulation/slurm-15466799_100.out
    Ignored:    code/simulation/slurm-15466799_101.out
    Ignored:    code/simulation/slurm-15466799_102.out
    Ignored:    code/simulation/slurm-15466799_103.out
    Ignored:    code/simulation/slurm-15466799_104.out
    Ignored:    code/simulation/slurm-15466799_105.out
    Ignored:    code/simulation/slurm-15466799_106.out
    Ignored:    code/simulation/slurm-15466799_107.out
    Ignored:    code/simulation/slurm-15466799_108.out
    Ignored:    code/simulation/slurm-15466799_109.out
    Ignored:    code/simulation/slurm-15466799_11.out
    Ignored:    code/simulation/slurm-15466799_110.out
    Ignored:    code/simulation/slurm-15466799_111.out
    Ignored:    code/simulation/slurm-15466799_112.out
    Ignored:    code/simulation/slurm-15466799_113.out
    Ignored:    code/simulation/slurm-15466799_114.out
    Ignored:    code/simulation/slurm-15466799_115.out
    Ignored:    code/simulation/slurm-15466799_116.out
    Ignored:    code/simulation/slurm-15466799_117.out
    Ignored:    code/simulation/slurm-15466799_118.out
    Ignored:    code/simulation/slurm-15466799_119.out
    Ignored:    code/simulation/slurm-15466799_12.out
    Ignored:    code/simulation/slurm-15466799_120.out
    Ignored:    code/simulation/slurm-15466799_121.out
    Ignored:    code/simulation/slurm-15466799_122.out
    Ignored:    code/simulation/slurm-15466799_123.out
    Ignored:    code/simulation/slurm-15466799_124.out
    Ignored:    code/simulation/slurm-15466799_125.out
    Ignored:    code/simulation/slurm-15466799_126.out
    Ignored:    code/simulation/slurm-15466799_127.out
    Ignored:    code/simulation/slurm-15466799_128.out
    Ignored:    code/simulation/slurm-15466799_129.out
    Ignored:    code/simulation/slurm-15466799_13.out
    Ignored:    code/simulation/slurm-15466799_130.out
    Ignored:    code/simulation/slurm-15466799_131.out
    Ignored:    code/simulation/slurm-15466799_132.out
    Ignored:    code/simulation/slurm-15466799_133.out
    Ignored:    code/simulation/slurm-15466799_134.out
    Ignored:    code/simulation/slurm-15466799_135.out
    Ignored:    code/simulation/slurm-15466799_136.out
    Ignored:    code/simulation/slurm-15466799_137.out
    Ignored:    code/simulation/slurm-15466799_138.out
    Ignored:    code/simulation/slurm-15466799_139.out
    Ignored:    code/simulation/slurm-15466799_14.out
    Ignored:    code/simulation/slurm-15466799_140.out
    Ignored:    code/simulation/slurm-15466799_141.out
    Ignored:    code/simulation/slurm-15466799_142.out
    Ignored:    code/simulation/slurm-15466799_143.out
    Ignored:    code/simulation/slurm-15466799_144.out
    Ignored:    code/simulation/slurm-15466799_145.out
    Ignored:    code/simulation/slurm-15466799_146.out
    Ignored:    code/simulation/slurm-15466799_147.out
    Ignored:    code/simulation/slurm-15466799_148.out
    Ignored:    code/simulation/slurm-15466799_149.out
    Ignored:    code/simulation/slurm-15466799_15.out
    Ignored:    code/simulation/slurm-15466799_150.out
    Ignored:    code/simulation/slurm-15466799_151.out
    Ignored:    code/simulation/slurm-15466799_152.out
    Ignored:    code/simulation/slurm-15466799_153.out
    Ignored:    code/simulation/slurm-15466799_154.out
    Ignored:    code/simulation/slurm-15466799_155.out
    Ignored:    code/simulation/slurm-15466799_156.out
    Ignored:    code/simulation/slurm-15466799_157.out
    Ignored:    code/simulation/slurm-15466799_158.out
    Ignored:    code/simulation/slurm-15466799_159.out
    Ignored:    code/simulation/slurm-15466799_16.out
    Ignored:    code/simulation/slurm-15466799_160.out
    Ignored:    code/simulation/slurm-15466799_161.out
    Ignored:    code/simulation/slurm-15466799_162.out
    Ignored:    code/simulation/slurm-15466799_163.out
    Ignored:    code/simulation/slurm-15466799_164.out
    Ignored:    code/simulation/slurm-15466799_165.out
    Ignored:    code/simulation/slurm-15466799_166.out
    Ignored:    code/simulation/slurm-15466799_167.out
    Ignored:    code/simulation/slurm-15466799_168.out
    Ignored:    code/simulation/slurm-15466799_169.out
    Ignored:    code/simulation/slurm-15466799_17.out
    Ignored:    code/simulation/slurm-15466799_170.out
    Ignored:    code/simulation/slurm-15466799_171.out
    Ignored:    code/simulation/slurm-15466799_172.out
    Ignored:    code/simulation/slurm-15466799_173.out
    Ignored:    code/simulation/slurm-15466799_174.out
    Ignored:    code/simulation/slurm-15466799_175.out
    Ignored:    code/simulation/slurm-15466799_176.out
    Ignored:    code/simulation/slurm-15466799_177.out
    Ignored:    code/simulation/slurm-15466799_178.out
    Ignored:    code/simulation/slurm-15466799_179.out
    Ignored:    code/simulation/slurm-15466799_18.out
    Ignored:    code/simulation/slurm-15466799_180.out
    Ignored:    code/simulation/slurm-15466799_181.out
    Ignored:    code/simulation/slurm-15466799_182.out
    Ignored:    code/simulation/slurm-15466799_183.out
    Ignored:    code/simulation/slurm-15466799_184.out
    Ignored:    code/simulation/slurm-15466799_185.out
    Ignored:    code/simulation/slurm-15466799_186.out
    Ignored:    code/simulation/slurm-15466799_187.out
    Ignored:    code/simulation/slurm-15466799_188.out
    Ignored:    code/simulation/slurm-15466799_189.out
    Ignored:    code/simulation/slurm-15466799_19.out
    Ignored:    code/simulation/slurm-15466799_190.out
    Ignored:    code/simulation/slurm-15466799_191.out
    Ignored:    code/simulation/slurm-15466799_192.out
    Ignored:    code/simulation/slurm-15466799_193.out
    Ignored:    code/simulation/slurm-15466799_194.out
    Ignored:    code/simulation/slurm-15466799_195.out
    Ignored:    code/simulation/slurm-15466799_196.out
    Ignored:    code/simulation/slurm-15466799_197.out
    Ignored:    code/simulation/slurm-15466799_198.out
    Ignored:    code/simulation/slurm-15466799_199.out
    Ignored:    code/simulation/slurm-15466799_2.out
    Ignored:    code/simulation/slurm-15466799_20.out
    Ignored:    code/simulation/slurm-15466799_200.out
    Ignored:    code/simulation/slurm-15466799_21.out
    Ignored:    code/simulation/slurm-15466799_22.out
    Ignored:    code/simulation/slurm-15466799_23.out
    Ignored:    code/simulation/slurm-15466799_24.out
    Ignored:    code/simulation/slurm-15466799_25.out
    Ignored:    code/simulation/slurm-15466799_26.out
    Ignored:    code/simulation/slurm-15466799_27.out
    Ignored:    code/simulation/slurm-15466799_28.out
    Ignored:    code/simulation/slurm-15466799_29.out
    Ignored:    code/simulation/slurm-15466799_3.out
    Ignored:    code/simulation/slurm-15466799_30.out
    Ignored:    code/simulation/slurm-15466799_31.out
    Ignored:    code/simulation/slurm-15466799_32.out
    Ignored:    code/simulation/slurm-15466799_33.out
    Ignored:    code/simulation/slurm-15466799_34.out
    Ignored:    code/simulation/slurm-15466799_35.out
    Ignored:    code/simulation/slurm-15466799_36.out
    Ignored:    code/simulation/slurm-15466799_37.out
    Ignored:    code/simulation/slurm-15466799_38.out
    Ignored:    code/simulation/slurm-15466799_39.out
    Ignored:    code/simulation/slurm-15466799_4.out
    Ignored:    code/simulation/slurm-15466799_40.out
    Ignored:    code/simulation/slurm-15466799_41.out
    Ignored:    code/simulation/slurm-15466799_42.out
    Ignored:    code/simulation/slurm-15466799_43.out
    Ignored:    code/simulation/slurm-15466799_44.out
    Ignored:    code/simulation/slurm-15466799_45.out
    Ignored:    code/simulation/slurm-15466799_46.out
    Ignored:    code/simulation/slurm-15466799_47.out
    Ignored:    code/simulation/slurm-15466799_48.out
    Ignored:    code/simulation/slurm-15466799_49.out
    Ignored:    code/simulation/slurm-15466799_5.out
    Ignored:    code/simulation/slurm-15466799_50.out
    Ignored:    code/simulation/slurm-15466799_51.out
    Ignored:    code/simulation/slurm-15466799_52.out
    Ignored:    code/simulation/slurm-15466799_53.out
    Ignored:    code/simulation/slurm-15466799_54.out
    Ignored:    code/simulation/slurm-15466799_55.out
    Ignored:    code/simulation/slurm-15466799_56.out
    Ignored:    code/simulation/slurm-15466799_57.out
    Ignored:    code/simulation/slurm-15466799_58.out
    Ignored:    code/simulation/slurm-15466799_59.out
    Ignored:    code/simulation/slurm-15466799_6.out
    Ignored:    code/simulation/slurm-15466799_60.out
    Ignored:    code/simulation/slurm-15466799_61.out
    Ignored:    code/simulation/slurm-15466799_62.out
    Ignored:    code/simulation/slurm-15466799_63.out
    Ignored:    code/simulation/slurm-15466799_64.out
    Ignored:    code/simulation/slurm-15466799_65.out
    Ignored:    code/simulation/slurm-15466799_66.out
    Ignored:    code/simulation/slurm-15466799_67.out
    Ignored:    code/simulation/slurm-15466799_68.out
    Ignored:    code/simulation/slurm-15466799_69.out
    Ignored:    code/simulation/slurm-15466799_7.out
    Ignored:    code/simulation/slurm-15466799_70.out
    Ignored:    code/simulation/slurm-15466799_71.out
    Ignored:    code/simulation/slurm-15466799_72.out
    Ignored:    code/simulation/slurm-15466799_73.out
    Ignored:    code/simulation/slurm-15466799_74.out
    Ignored:    code/simulation/slurm-15466799_75.out
    Ignored:    code/simulation/slurm-15466799_76.out
    Ignored:    code/simulation/slurm-15466799_77.out
    Ignored:    code/simulation/slurm-15466799_78.out
    Ignored:    code/simulation/slurm-15466799_79.out
    Ignored:    code/simulation/slurm-15466799_8.out
    Ignored:    code/simulation/slurm-15466799_80.out
    Ignored:    code/simulation/slurm-15466799_81.out
    Ignored:    code/simulation/slurm-15466799_82.out
    Ignored:    code/simulation/slurm-15466799_83.out
    Ignored:    code/simulation/slurm-15466799_84.out
    Ignored:    code/simulation/slurm-15466799_85.out
    Ignored:    code/simulation/slurm-15466799_86.out
    Ignored:    code/simulation/slurm-15466799_87.out
    Ignored:    code/simulation/slurm-15466799_88.out
    Ignored:    code/simulation/slurm-15466799_89.out
    Ignored:    code/simulation/slurm-15466799_9.out
    Ignored:    code/simulation/slurm-15466799_90.out
    Ignored:    code/simulation/slurm-15466799_91.out
    Ignored:    code/simulation/slurm-15466799_92.out
    Ignored:    code/simulation/slurm-15466799_93.out
    Ignored:    code/simulation/slurm-15466799_94.out
    Ignored:    code/simulation/slurm-15466799_95.out
    Ignored:    code/simulation/slurm-15466799_96.out
    Ignored:    code/simulation/slurm-15466799_97.out
    Ignored:    code/simulation/slurm-15466799_98.out
    Ignored:    code/simulation/slurm-15466799_99.out
    Ignored:    code/simulation/slurm-15478249_201.out
    Ignored:    code/simulation/slurm-15478249_202.out
    Ignored:    code/simulation/slurm-15478249_203.out
    Ignored:    code/simulation/slurm-15478249_204.out
    Ignored:    code/simulation/slurm-15478249_205.out
    Ignored:    code/simulation/slurm-15478249_206.out
    Ignored:    code/simulation/slurm-15478249_207.out
    Ignored:    code/simulation/slurm-15478249_208.out
    Ignored:    code/simulation/slurm-15478249_209.out
    Ignored:    code/simulation/slurm-15478249_210.out
    Ignored:    code/simulation/slurm-15478249_211.out
    Ignored:    code/simulation/slurm-15478249_212.out
    Ignored:    code/simulation/slurm-15478249_213.out
    Ignored:    code/simulation/slurm-15478249_214.out
    Ignored:    code/simulation/slurm-15478249_215.out
    Ignored:    code/simulation/slurm-15478249_216.out
    Ignored:    code/simulation/slurm-15478249_217.out
    Ignored:    code/simulation/slurm-15478249_218.out
    Ignored:    code/simulation/slurm-15478249_219.out
    Ignored:    code/simulation/slurm-15478249_220.out
    Ignored:    code/simulation/slurm-15478249_221.out
    Ignored:    code/simulation/slurm-15478249_222.out
    Ignored:    code/simulation/slurm-15478249_223.out
    Ignored:    code/simulation/slurm-15478249_224.out
    Ignored:    code/simulation/slurm-15478249_225.out
    Ignored:    code/simulation/slurm-15478249_226.out
    Ignored:    code/simulation/slurm-15478249_227.out
    Ignored:    code/simulation/slurm-15478249_228.out
    Ignored:    code/simulation/slurm-15478249_229.out
    Ignored:    code/simulation/slurm-15478249_230.out
    Ignored:    code/simulation/slurm-15478249_231.out
    Ignored:    code/simulation/slurm-15478249_232.out
    Ignored:    code/simulation/slurm-15478249_233.out
    Ignored:    code/simulation/slurm-15478249_234.out
    Ignored:    code/simulation/slurm-15478249_235.out
    Ignored:    code/simulation/slurm-15478249_236.out
    Ignored:    code/simulation/slurm-15478249_237.out
    Ignored:    code/simulation/slurm-15478249_238.out
    Ignored:    code/simulation/slurm-15478249_239.out
    Ignored:    code/simulation/slurm-15478249_240.out
    Ignored:    code/simulation/slurm-15530400.out
    Ignored:    code/simulation/summarize.Rout
    Ignored:    data/annotation/hg38/gencode.v33.annotation.gtf.gz
    Ignored:    data/annotation/mm39/
    Ignored:    data/lung-ont/220928_dge.rds
    Ignored:    data/lung/fastq/
    Ignored:    data/lung/index-kallisto/
    Ignored:    data/lung/index-subread/
    Ignored:    data/lung/index/
    Ignored:    ignore/
    Ignored:    misc/
    Ignored:    output/lung/
    Ignored:    output/simulation/

Untracked files:
    Untracked:  code/simulation-large/
    Untracked:  output/simulation-large/
    Untracked:  renv.lock
    Untracked:  renv/

Unstaged changes:
    Modified:   code/pkg/R/simulation-quant.R
    Modified:   code/pkg/R/simulation-summary.R
    Modified:   code/pkg/R/simulation-utils.R
    Modified:   code/pkg/R/simulation.R

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the repository in which changes were made to the R Markdown (analysis/lung-howto.Rmd) and HTML (docs/lung-howto.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
html 70ab63f Pedro Baldoni 2024-04-05 Publishing workflowr
Rmd afc521e Pedro Baldoni 2024-04-05 Adding case study dataset Rmd

Our case study is based on the paired-end Illumina short read RNA-seq experiment from the human lung cancer cell lines H1975 and HCC827 (GSE172421).

All the RNA-seq experiments were quantified with Salmon version v1.10.0 using an decoy-aware indexed transcriptome based on the Ensembl-oriented Gencode annotation version 33 (Ensembl annotation version 99) with added transcripts from spiked-in sequins. We also quantified the RNA-seq experiments with kallisto version v0.46.1 using an indexed transcriptome based on the Gencode annotation version 33 to assess the consistency of RTA overdispersion estimates in edgeR. To generate coverage plots, we have aligned RNA-seq experiments to the hg38 reference genome with added spiked-in sequins genome with Subread.

Acessing the necessary annotation

Download the Gencode annotation version 33 (Ensembl annotation version 99) from this link and place files in the directory ./data/annotation/hg38. Files can be downloaded with the following command line: wget -r -nd ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_33/*

The sequins annotation is located in the directory ./data/annotation/sequins of the GitHub repository of this page. They were originally obtained from this repo.

The RefSeq gene annotation used by Subread during alignment is located in the directory ./data/annotation/hg38 of the GitHub repository of this page. This annotation was originally obtained from the curated annotation database for Rsubread that is actively maintained by WEHI Bioinformatics.

Creating the reference genome and transcriptome

  1. Run the script code/lung/index/combineAnnotation.sh to combine the Gencode annotation with the sequins annotation. This script uses the picard-tools module.

  2. Run the script code/lung/index/buildIndex.sh to build Salmon’s transcriptome index. This script uses the following modules: Salmon, MashMap, bedtools and the generateDecoyTranscriptome.sh script.

  3. Run the script code/lung/index/index-kallisto/slurm.sh to build kallisto’s transcriptome index.

  4. Run the script code/lung/index-subread to build the Subread index. This script uses the combined reference genome created in step 1.

Downloading, quantifying, and aligning the Illumina paired-end short read experiments

  1. Run ./code/lung/data/runAspera.sh to download all necessary FASTQ files. This script uses the module aspera.

  2. Run ./code/lung/salmon/runSalmon.sh to quantify the RNA-seq reads with Salmon.

  3. Run ./code/lung/salmon/runWasabi.R to generate .h5 files from Salmon’s output that can be read by the DTE method sleuth.

  4. Run the script ./code/lung/kallisto/runKallisto.sh to quantify the RNA-seq reads with kallisto.

  5. Run the script ./code/lung/subread/slurm.sh to align the RNA-seq samples with Subread.

The targets file for this experiment is provided in our GitHub repository for convenience. See file ./data/lung/misc/targets.txt.


sessionInfo()
R version 4.3.3 (2024-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Red Hat Enterprise Linux 9.4 (Plow)

Matrix products: default
BLAS:   /stornext/System/data/software/rhel/9/base/tools/R/4.3.3/lib64/R/lib/libRblas.so 
LAPACK: /stornext/System/data/software/rhel/9/base/tools/R/4.3.3/lib64/R/lib/libRlapack.so;  LAPACK version 3.11.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

time zone: Australia/Melbourne
tzcode source: system (glibc)

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base     

other attached packages:
[1] workflowr_1.7.1

loaded via a namespace (and not attached):
 [1] jsonlite_1.8.9      compiler_4.3.3      BiocManager_1.30.25
 [4] renv_1.0.9          promises_1.3.0      Rcpp_1.0.13        
 [7] stringr_1.5.1       git2r_0.33.0        callr_3.7.6        
[10] later_1.3.2         jquerylib_0.1.4     yaml_2.3.10        
[13] fastmap_1.2.0       R6_2.5.1            knitr_1.48         
[16] tibble_3.2.1        rprojroot_2.0.4     bslib_0.8.0        
[19] pillar_1.9.0        rlang_1.1.4         utf8_1.2.4         
[22] cachem_1.1.0        stringi_1.8.4       httpuv_1.6.15      
[25] xfun_0.47           getPass_0.2-4       fs_1.6.4           
[28] sass_0.4.9          cli_3.6.3           magrittr_2.0.3     
[31] ps_1.8.0            digest_0.6.37       processx_3.8.4     
[34] rstudioapi_0.16.0   lifecycle_1.0.4     vctrs_0.6.5        
[37] evaluate_1.0.0      glue_1.8.0          whisker_0.4.1      
[40] fansi_1.0.6         rmarkdown_2.28      httr_1.4.7         
[43] tools_4.3.3         pkgconfig_2.0.3     htmltools_0.5.8.1