diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/SummarizedExperiment_79a209dc838a1be5f6acb16044adeef8.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/SummarizedExperiment_79a209dc838a1be5f6acb16044adeef8.RData new file mode 100644 index 000000000..58c0c2d2e Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/SummarizedExperiment_79a209dc838a1be5f6acb16044adeef8.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/SummarizedExperiment_79a209dc838a1be5f6acb16044adeef8.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/SummarizedExperiment_79a209dc838a1be5f6acb16044adeef8.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/SummarizedExperiment_79a209dc838a1be5f6acb16044adeef8.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/SummarizedExperiment_79a209dc838a1be5f6acb16044adeef8.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/SummarizedExperiment_79a209dc838a1be5f6acb16044adeef8.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/__packages b/blogdown/en/presentations/SPR/SPR_project_cache/html/__packages new file mode 100644 index 000000000..6f23ced3e --- /dev/null +++ b/blogdown/en/presentations/SPR/SPR_project_cache/html/__packages @@ -0,0 +1,18 @@ +base +BiocGenerics +S4Vectors +IRanges +GenomeInfoDb +GenomicRanges +XVector +Biostrings +Rsamtools +BiocParallel +matrixStats +MatrixGenerics +Biobase +SummarizedExperiment +GenomicAlignments +ShortRead +systemPipeR +xaringanthemer diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/accessing_help_ac1a443a21f4e6c52e10e054f0fa6793.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/accessing_help_ac1a443a21f4e6c52e10e054f0fa6793.RData new file mode 100644 index 000000000..b83a6ddc8 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/accessing_help_ac1a443a21f4e6c52e10e054f0fa6793.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/accessing_help_ac1a443a21f4e6c52e10e054f0fa6793.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/accessing_help_ac1a443a21f4e6c52e10e054f0fa6793.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/accessing_help_ac1a443a21f4e6c52e10e054f0fa6793.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/accessing_help_ac1a443a21f4e6c52e10e054f0fa6793.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/accessing_help_ac1a443a21f4e6c52e10e054f0fa6793.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/align_names_d9865514e544ce1866bdb7f9a674fe98.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/align_names_d9865514e544ce1866bdb7f9a674fe98.RData new file mode 100644 index 000000000..6e28d4a14 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/align_names_d9865514e544ce1866bdb7f9a674fe98.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/align_names_d9865514e544ce1866bdb7f9a674fe98.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/align_names_d9865514e544ce1866bdb7f9a674fe98.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/align_names_d9865514e544ce1866bdb7f9a674fe98.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/align_names_d9865514e544ce1866bdb7f9a674fe98.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/align_names_d9865514e544ce1866bdb7f9a674fe98.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/cmdlist_b0fdb9dfe2e85c6d3dcb021c12356636.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/cmdlist_b0fdb9dfe2e85c6d3dcb021c12356636.RData new file mode 100644 index 000000000..58cf6a378 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/cmdlist_b0fdb9dfe2e85c6d3dcb021c12356636.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/cmdlist_b0fdb9dfe2e85c6d3dcb021c12356636.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/cmdlist_b0fdb9dfe2e85c6d3dcb021c12356636.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/cmdlist_b0fdb9dfe2e85c6d3dcb021c12356636.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/cmdlist_b0fdb9dfe2e85c6d3dcb021c12356636.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/cmdlist_b0fdb9dfe2e85c6d3dcb021c12356636.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/load_sample_f5ce216fc71a001b8a7ca3269f4b8a18.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_sample_f5ce216fc71a001b8a7ca3269f4b8a18.RData new file mode 100644 index 000000000..8b0dac54b Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_sample_f5ce216fc71a001b8a7ca3269f4b8a18.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/load_sample_f5ce216fc71a001b8a7ca3269f4b8a18.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_sample_f5ce216fc71a001b8a7ca3269f4b8a18.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/load_sample_f5ce216fc71a001b8a7ca3269f4b8a18.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_sample_f5ce216fc71a001b8a7ca3269f4b8a18.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_sample_f5ce216fc71a001b8a7ca3269f4b8a18.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/load_systemPipeRdata_print_758598b99a6a595a5d7f50257a29dd79.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_systemPipeRdata_print_758598b99a6a595a5d7f50257a29dd79.RData new file mode 100644 index 000000000..9732c5e96 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_systemPipeRdata_print_758598b99a6a595a5d7f50257a29dd79.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/load_systemPipeRdata_print_758598b99a6a595a5d7f50257a29dd79.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_systemPipeRdata_print_758598b99a6a595a5d7f50257a29dd79.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/load_systemPipeRdata_print_758598b99a6a595a5d7f50257a29dd79.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_systemPipeRdata_print_758598b99a6a595a5d7f50257a29dd79.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/load_systemPipeRdata_print_758598b99a6a595a5d7f50257a29dd79.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsPE_986c8af0ecdf7053aadb54f9a6584bc7.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsPE_986c8af0ecdf7053aadb54f9a6584bc7.RData new file mode 100644 index 000000000..146f85604 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsPE_986c8af0ecdf7053aadb54f9a6584bc7.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsPE_986c8af0ecdf7053aadb54f9a6584bc7.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsPE_986c8af0ecdf7053aadb54f9a6584bc7.rdb new file mode 100644 index 000000000..0c67668e0 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsPE_986c8af0ecdf7053aadb54f9a6584bc7.rdb differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsPE_986c8af0ecdf7053aadb54f9a6584bc7.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsPE_986c8af0ecdf7053aadb54f9a6584bc7.rdx new file mode 100644 index 000000000..8cb882fb2 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsPE_986c8af0ecdf7053aadb54f9a6584bc7.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsSE_a1b57d6a27a0f162502d80040829115f.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsSE_a1b57d6a27a0f162502d80040829115f.RData new file mode 100644 index 000000000..542a5f454 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsSE_a1b57d6a27a0f162502d80040829115f.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsSE_a1b57d6a27a0f162502d80040829115f.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsSE_a1b57d6a27a0f162502d80040829115f.rdb new file mode 100644 index 000000000..8bda38097 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsSE_a1b57d6a27a0f162502d80040829115f.rdb differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsSE_a1b57d6a27a0f162502d80040829115f.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsSE_a1b57d6a27a0f162502d80040829115f.rdx new file mode 100644 index 000000000..990ccae50 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/show*targetsSE_a1b57d6a27a0f162502d80040829115f.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2*instance_f8727f28752c4deebdbd0ecb6a4ca26f.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2*instance_f8727f28752c4deebdbd0ecb6a4ca26f.RData new file mode 100644 index 000000000..c43e9de23 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2*instance_f8727f28752c4deebdbd0ecb6a4ca26f.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2*instance_f8727f28752c4deebdbd0ecb6a4ca26f.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2*instance_f8727f28752c4deebdbd0ecb6a4ca26f.rdb new file mode 100644 index 000000000..84f4dd0f8 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2*instance_f8727f28752c4deebdbd0ecb6a4ca26f.rdb differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2*instance_f8727f28752c4deebdbd0ecb6a4ca26f.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2*instance_f8727f28752c4deebdbd0ecb6a4ca26f.rdx new file mode 100644 index 000000000..f858b15fb Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2*instance_f8727f28752c4deebdbd0ecb6a4ca26f.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2_args_results_e60cf327c78dcc08f7054c61455216dd.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2_args_results_e60cf327c78dcc08f7054c61455216dd.RData new file mode 100644 index 000000000..0106ef1e7 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2_args_results_e60cf327c78dcc08f7054c61455216dd.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2_args_results_e60cf327c78dcc08f7054c61455216dd.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2_args_results_e60cf327c78dcc08f7054c61455216dd.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2_args_results_e60cf327c78dcc08f7054c61455216dd.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2_args_results_e60cf327c78dcc08f7054c61455216dd.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/sysargs2_args_results_e60cf327c78dcc08f7054c61455216dd.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-3_9f0e54da7ac617b2f44957b0f9940c25.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-3_9f0e54da7ac617b2f44957b0f9940c25.RData new file mode 100644 index 000000000..fc8d007b0 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-3_9f0e54da7ac617b2f44957b0f9940c25.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-3_9f0e54da7ac617b2f44957b0f9940c25.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-3_9f0e54da7ac617b2f44957b0f9940c25.rdb new file mode 100644 index 000000000..0cf2cd18f Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-3_9f0e54da7ac617b2f44957b0f9940c25.rdb differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-3_9f0e54da7ac617b2f44957b0f9940c25.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-3_9f0e54da7ac617b2f44957b0f9940c25.rdx new file mode 100644 index 000000000..168b1c721 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-3_9f0e54da7ac617b2f44957b0f9940c25.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-4_184226170adde66d0431724b2e2d6d26.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-4_184226170adde66d0431724b2e2d6d26.RData new file mode 100644 index 000000000..5c497bd82 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-4_184226170adde66d0431724b2e2d6d26.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-4_184226170adde66d0431724b2e2d6d26.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-4_184226170adde66d0431724b2e2d6d26.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-4_184226170adde66d0431724b2e2d6d26.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-4_184226170adde66d0431724b2e2d6d26.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-4_184226170adde66d0431724b2e2d6d26.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-5_2550860cb6e412e193a1bcb575b50f05.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-5_2550860cb6e412e193a1bcb575b50f05.RData new file mode 100644 index 000000000..7eb90d3aa Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-5_2550860cb6e412e193a1bcb575b50f05.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-5_2550860cb6e412e193a1bcb575b50f05.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-5_2550860cb6e412e193a1bcb575b50f05.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-5_2550860cb6e412e193a1bcb575b50f05.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-5_2550860cb6e412e193a1bcb575b50f05.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-5_2550860cb6e412e193a1bcb575b50f05.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-6_a459f9b152e4484d75ab4f9651fd4cdb.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-6_a459f9b152e4484d75ab4f9651fd4cdb.RData new file mode 100644 index 000000000..d266bdd9e Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-6_a459f9b152e4484d75ab4f9651fd4cdb.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-6_a459f9b152e4484d75ab4f9651fd4cdb.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-6_a459f9b152e4484d75ab4f9651fd4cdb.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-6_a459f9b152e4484d75ab4f9651fd4cdb.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-6_a459f9b152e4484d75ab4f9651fd4cdb.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-6_a459f9b152e4484d75ab4f9651fd4cdb.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-7_ac0bef6851dfee622490e3b3828629b7.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-7_ac0bef6851dfee622490e3b3828629b7.RData new file mode 100644 index 000000000..08bd8ad04 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-7_ac0bef6851dfee622490e3b3828629b7.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-7_ac0bef6851dfee622490e3b3828629b7.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-7_ac0bef6851dfee622490e3b3828629b7.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-7_ac0bef6851dfee622490e3b3828629b7.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-7_ac0bef6851dfee622490e3b3828629b7.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-7_ac0bef6851dfee622490e3b3828629b7.rdx differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-8_129b8d208cf70e338731a1151c95c6c9.RData b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-8_129b8d208cf70e338731a1151c95c6c9.RData new file mode 100644 index 000000000..a7dec5a14 Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-8_129b8d208cf70e338731a1151c95c6c9.RData differ diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-8_129b8d208cf70e338731a1151c95c6c9.rdb b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-8_129b8d208cf70e338731a1151c95c6c9.rdb new file mode 100644 index 000000000..e69de29bb diff --git a/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-8_129b8d208cf70e338731a1151c95c6c9.rdx b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-8_129b8d208cf70e338731a1151c95c6c9.rdx new file mode 100644 index 000000000..a0bc5dcaf Binary files /dev/null and b/blogdown/en/presentations/SPR/SPR_project_cache/html/unnamed-chunk-8_129b8d208cf70e338731a1151c95c6c9.rdx differ diff --git a/blogdown/md5sum.txt b/blogdown/md5sum.txt index e0d5b191e..13237be5b 100644 --- a/blogdown/md5sum.txt +++ b/blogdown/md5sum.txt @@ -34,7 +34,7 @@ "content/en/SPRdata_intro/SPRdata_intro.Rmd" "f32863cbf8924e657441a4ae9ca62751" "content/en/sps/adv_features/app_security.Rmd" "316d7de8ff8f0f8ebf1cc4fcf1b9047a" "content/en/sps/adv_features/config.Rmarkdown" "0bf3ce1dbfbabc23b335ab2316fc9c09" -"content/en/sps/adv_features/config.Rmd" "f924895bca86ed9328fd821931e6a3ec" +"content/en/sps/adv_features/config.Rmd" "c17a3384fa17eeb0aba058c7b4a2c983" "content/en/sps/adv_features/database.Rmd" "56953d35770c1c1ce4b7320a86a0c65e" "content/en/sps/adv_features/debug.Rmd" "0aca84fb178355952987758b38f61593" "content/en/sps/adv_features/login.Rmd" "80338a0d44223289b7ac3577f94041e3" diff --git a/content/en/presentations/SPR/SPR_project.html b/content/en/presentations/SPR/SPR_project.html index 306fd6a67..366aa7183 100644 --- a/content/en/presentations/SPR/SPR_project.html +++ b/content/en/presentations/SPR/SPR_project.html @@ -24,7 +24,7 @@ University of California Riverside

###

-2020/10/20 (updated: 2020-11-02) +2020/10/20 (updated: 2021-04-25)

--- diff --git a/content/en/presentations/SPR/SPR_project.knit.md b/content/en/presentations/SPR/SPR_project.knit.md deleted file mode 100644 index 41d083a4b..000000000 --- a/content/en/presentations/SPR/SPR_project.knit.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: _systemPipeR_ -subtitle: "" -author: "
Daniela Cassol" -institute: "

University of California Riverside

" -date: "

2020/10/20 (updated: 2021-04-25)

" -output: - xaringan::moon_reader: - css: ["css/xaringan-themer.css", "css/custom.css"] - lib_dir: libs - nature: - highlightStyle: github - highlightLines: true - countIncrementalSlides: true - # seal: false ---- - -layout: true -background-image: url(https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/systemPipeR.png) -background-position: 99% 1% -background-size: 10% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/en/presentations/SPR/SPR_project.md b/content/en/presentations/SPR/SPR_project.md new file mode 100644 index 000000000..b223f74e5 --- /dev/null +++ b/content/en/presentations/SPR/SPR_project.md @@ -0,0 +1,793 @@ +--- +title: _systemPipeR_ +subtitle: "" +author: "
Daniela Cassol" +institute: "

University of California Riverside

" +date: "

2020/10/20 (updated: 2021-04-25)

" +output: + xaringan::moon_reader: + css: ["css/xaringan-themer.css", "css/custom.css"] + lib_dir: libs + nature: + highlightStyle: github + highlightLines: true + countIncrementalSlides: true + # seal: false +--- + +layout: true +background-image: url(https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/systemPipeR.png) +background-position: 99% 1% +background-size: 10% + + + + + + + +--- +class: middle + +## Outline + +#### Introduction +#### Design +#### How to run a Workflow +#### Workflows Tutorial +#### Live Demo + + + + +--- +class: inverse, center, middle + +# Introduction + + +--- +## Introduction + + +[_systemPipeR_](http://www.bioconductor.org/packages/devel/bioc/html/systemPipeR.html) provides a suite of R/Bioconductor packages for designing, building and running end-to-end analysis workflows on local machines, HPC clusters and cloud systems, while generating at the same time publication quality analysis reports + + +_systemPipeR_ offers many utilities to build, control, and execute +workflows entirely from R + + +The environment takes advantage of central community S4 classes of the Bioconductor ecosystem + + +Workflows are managed by generic workflow management containers supporting both analysis routines implemented in R code and/or command-line software + + +Simple annotation system targets + + +--- +### systemPipeR’s Core Functionalities + +.center[ + +] + + + +--- +## Structural Features + +-- +.left-column[ +#### WF infrastructure +] + +.right-column[ +*systemPipeR* offers many utilities to build, control, and execute +workflows entirely from R. The environment takes advantage of central community S4 classes +of the Bioconductor ecosystem. Workflows are managed by generic workflow management +containers supporting both analysis routines implemented in R code and/or command-line +software. A layered monitoring infrastructure is provided to design, control and debug each +step in a workflow. The run environment allows to execute workflows entirely or with a +intuitive to use step-wise execution syntax using R’s standard subsetting syntax +(runWF(sys[1:3])) or pipes (%>%). +] + +--- + +## Structural Features + +.left-column[ +#### WF infrastructure +#### Command-line support +] + +.right-column[ +An important feature of systemPipeR is support for +running command-line software by adopting the Common Workflow Language (CWL). The +latter is a widely adopted community standard for describing analysis workflows. This design +offers several advantages such as: + + +seamless integration of most command-line software + + +support to run systemPipeR workflows from R or many other popular computer languages + + +efficient sharing of workflows across different workflow environments. +] + +--- +## Structural Features + +.left-column[ +#### WF infrastructure +#### Command-line support +#### Parallel evaluation +] + +.right-column[ +The processing time of workflows can be greatly reduced by making use +of parallel evaluations across several CPU cores on single machines, or multiple nodes of +computer clusters and cloud-based systems. systemPipeR simplifies these parallelization tasks +without creating any limitations for users who do not have access to high-performance +computer resources +] + +--- +## Structural Features + +.left-column[ +#### WF infrastructure +#### Command-line support +#### Parallel evaluation +#### Reports infrastructure +] + +.right-column[ +*systemPipeR’s* reporting infrastructure +includes three types of interconnected reports each serving a different purpose: + + +a scientific report, based on R Markdown, contains all scientifically relevant results + + +a technical report captures all technical information important for each workflow step, including parameter +settings, software versions, and warning/error messages, etc. + + +a visual report depicts the entire workflow topology including its run status in form of a workflow graph + +] + +--- +## Structural Features + +.left-column[ +#### WF infrastructure +#### Command-line support +#### Parallel evaluation +#### Reports infrastructure +#### Shiny Web Interface +] + +.right-column[ +Recently, the systemPipeShiny package has been added that allows +users to design workflows in an interactive graphical user interface (GUI). In addition to +designing workflows, this new interface allows users to run and to monitor workflows in an +intuitive manner without the need of knowing R. +] + +--- +## Structural Features + +.left-column[ +#### WF infrastructure +#### Command-line support +#### Parallel evaluation +#### Reports infrastructure +#### Shiny Web Interface +#### Workflow Templates +] + +.right-column[ +A rich set of end-to-end workflow templates is provided by this +project for a wide range omics applications. In addition, users can contribute and share their +workflows with the community by submitting them to a central GitHub repository +] + + +--- +## Important Functions + +.small[ +| Function Name | Description | Category | +|-------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------| +| `genWorkenvir` | Generates workflow templates provided by systemPipeRdata helper package / or from the individuals’ pipelines packages | Accessory | +| `loadWorkflow` | Constructs `SYSargs2` object from CWL param and targets files | ``SYSargs2`` | +| `renderWF` | Populate all the command-line in an `SYSargs2` object | ``SYSargs2`` | +| `subsetWF` | Subsetting `SYSargs2` class slots | ``SYSargs2`` | +| `runCommandline` | Executes command-line software on samples and parameters specified in `SYSargs2` object | ``SYSargs2`` | +| `clusterRun` | Runs command-line software in parallel mode on a computer cluster | ``SYSargs2`` | +| `writeTargetsout` | Write updated targets out to file/Generate targets file with reference | ``SYSargs2`` | +| `output_update` | Updates the output files paths in the `SYSargs2` object | ``SYSargs2`` | +| `singleYML` | Create automatically the `param.yml` | ``SYSargs2`` | +| `createWF` | Create automatically `param.cwl` and the `param.yml` based on the command line | ``SYSargs2`` | +| `config.param` | Custom configuration of the CWL param files from R | ``SYSargs2`` | +] + +--- +## Important Functions + +.small[ +| Function Name | Description | Category | +|-------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------| +| `initWF` | Constructs `SYSargsList` workflow control module (S4 object) from script file | ``SYSargsList`` | +| `configWF` | Control of which step of the workflow will be run and the generation of the new RMarkdown | ``SYSargsList`` | +| `runWF` | Runs all the R chunk define in the RMarkdown file or a subset, e.g. `runWF[1:3]` | ``SYSargsList`` | +| `renderReport` | Render Scientific Report based on RMarkdown | ``SYSargsList`` | +| `subsetRmd` | Write updated subset Rmarkdown of R chunk with text associate in the step selected | ``SYSargsList`` | +| `plotWF` | Plot visual workflow designs and topologies with different graphical layouts | ``SYSargsList`` | +| `statusWF` | Return the overview of the workflow steps computational status | ``SYSargsList`` | +| `evalCode` | Turn eval option `TRUE` or `FALSE` on RMarkdown file | Accessory | +| `tryCL` | Checks if third-party software or utility is installed and set in the PATH | Accessory | +] + + + + + + +--- +class: inverse, center, middle + +# Design + +--- +### Workflow Management Solutions + + +*systemPipeR* central concept for designing workflows is **workflow +management containers** (S4 class) + + +*SYSargs2* controls workflow steps with input/output file operations + + +*SYSargs2* requires a targets and a set of workflow definition files (here param.cwl and param.yml) + + + + + +*SYSargsList* objects organize one or many *SYSargs2* +containers in a single compound object capturing all information required to run, control and +monitor complex workflows from start to finish + +.center[ + +] + +--- +## Directory Structure + +The workflow templates generated by _`genWorkenvir`_ contain the following preconfigured directory structure: + + + +--- +## Workflows Collection + +Browse pipelines that are currently available as part of the *systemPipeR* toolkit + +.small[ +| WorkFlow | Description | Version | GitHub | CI Testing | +|:-----------------------:|:----------------:|:----------------:|:--------------------:|:-------------------------------:| +| [systemPipeChIPseq](https://systempiper.github.io/systemPipeChIPseq/articles/systemPipeChIPseq.html) | ChIP-Seq Workflow Template | v1.0 | | ![R-CMD-check](https://github.com/systemPipeR/systemPipeChIPseq/workflows/R-CMD-check/badge.svg) | +| [systemPipeRIBOseq](https://systempiper.github.io/systemPipeRIBOseq/articles/systemPipeRIBOseq.html) | RIBO-Seq Workflow Template | v1.0 | | ![R-CMD-check](https://github.com/systemPipeR/systemPipeRIBOseq/workflows/R-CMD-check/badge.svg) | +| [systemPipeRNAseq](https://systempiper.github.io/systemPipeRNAseq/articles/systemPipeRNAseq.html) | RNA-Seq Workflow Template | v1.0 | | ![R-CMD-check](https://github.com/systemPipeR/systemPipeRNAseq/workflows/R-CMD-check/badge.svg) | +| [systemPipeVARseq](https://systempiper.github.io/systemPipeVARseq/articles/systemPipeVARseq.html) | VAR-Seq Workflow Template | v1.0 | | ![R-CMD-check](https://github.com/systemPipeR/systemPipeVARseq/workflows/R-CMD-check/badge.svg) | +| [systemPipeMethylseq](https://github.com/systemPipeR/systemPipeMethylseq) | Methyl-Seq Workflow Template | devel | | ![R-CMD-check](https://github.com/systemPipeR/systemPipeMethylseq/workflows/R-CMD-check/badge.svg) | +| [systemPipeDeNovo](https://github.com/systemPipeR/systemPipeDeNovo) | De novo transcriptome assembly Workflow Template | devel | | ![R-CMD-check](https://github.com/systemPipeR/systemPipeDeNovo/workflows/R-CMD-check/badge.svg) | +| [systemPipeCLIPseq](https://github.com/systemPipeR/systemPipeCLIPseq) | CLIP-Seq Workflow Template | devel | | ![R-CMD-check](https://github.com/systemPipeR/systemPipeCLIPseq/workflows/R-CMD-check/badge.svg) | +| [systemPipeMetaTrans](https://github.com/systemPipeR/systemPipeMetaTrans) | Metatranscriptomic Sequencing Workflow Template | devel | | ![R-CMD-check](https://github.com/systemPipeR/systemPipeMetaTrans/workflows/R-CMD-check/badge.svg) | +] + +--- +class: inverse, center, middle + +# CWL + +--- +## CWL + + **TODO:** +Add section with CWL details + +.center[ + +] + +--- +## CWL and SPR + + **TODO:** +How to use CWL definition with *systemPipeR* + +- *SYSargs2* instances are constructed from a *`targets`* file and two *`param`* file + - *`hisat2-mapping-se.cwl`* file contains the settings for running command-line software + - *`hisat2-mapping-se.yml`* file define all the variables to be input in the specific command-line step

+ + +```r +targets <- system.file("extdata", "targets.txt", package="systemPipeR") +dir_path <- system.file("extdata/cwl/hisat2/hisat2-se", package="systemPipeR") +align <- loadWF(targets=targets, wf_file="hisat2-mapping-se.cwl", + input_file="hisat2-mapping-se.yml", dir_path=dir_path) +align <- renderWF(align, inputvars=c(FileName="_FASTQ_PATH_", SampleName="_SampleName_")) + +## Instance of 'SYSargs2': +## Slot names/accessors: +## targets: 18 (M1A...V12B), targetsheader: 4 (lines) +## modules: 2 +## wf: 0, clt: 1, yamlinput: 7 (components) +## input: 18, output: 18 +## cmdlist: 18 +## WF Steps: +## 1. hisat2-mapping-se.cwl (rendered: TRUE) +``` + +--- +## CWL and SPR + +## *`SYSargs2`* instance + +- Slots and accessor functions have the same names + +```r +names(align) +# [1] "targets" "targetsheader" "modules" "wf" "clt" +# [6] "yamlinput" "cmdlist" "input" "output" "cwlfiles" +# [11] "inputvars" +``` + +- *`cmdlist`* return command-line arguments for the specific software, here *`HISAT2`* for the first sample + +```r +cmdlist(align)[1] +# $M1A +# $M1A$`hisat2-mapping-se.cwl` +# [1] "hisat2 -S results/M1A.sam -x ./data/tair10.fasta -k 1 --min-intronlen 30 --max-intronlen 3000 -U ./data/SRR446027_1.fastq.gz --threads 4" +``` + +- The output components of *`SYSargs2`* define all the expected output files for each step in the workflow; some of which are the input for the next workflow step + + +```r +output(align)[1] +# $M1A +# $M1A$`hisat2-mapping-se.cwl` +# [1] "results/M1A.sam" +``` + +--- +class: inverse, center, middle + +# Metadata + +--- +### *Targets* file organizes samples + +- Structure of *`targets`* file for single-end (SE) library + +```r +targetspath <- system.file("extdata", "targets.txt", package="systemPipeR") +read.delim(targetspath, comment.char = "#")[1:3,1:4] +``` + +``` +## FileName SampleName Factor SampleLong +## 1 ./data/SRR446027_1.fastq.gz M1A M1 Mock.1h.A +## 2 ./data/SRR446028_1.fastq.gz M1B M1 Mock.1h.B +## 3 ./data/SRR446029_1.fastq.gz A1A A1 Avr.1h.A +``` + +- Structure of *`targets`* file for paired-end (PE) library + +```r +targetspath <- system.file("extdata", "targetsPE.txt", package="systemPipeR") +read.delim(targetspath, comment.char = "#")[1:3,1:5] +``` + +``` +## FileName1 FileName2 SampleName Factor +## 1 ./data/SRR446027_1.fastq.gz ./data/SRR446027_2.fastq.gz M1A M1 +## 2 ./data/SRR446028_1.fastq.gz ./data/SRR446028_2.fastq.gz M1B M1 +## 3 ./data/SRR446029_1.fastq.gz ./data/SRR446029_2.fastq.gz A1A A1 +## SampleLong +## 1 Mock.1h.A +## 2 Mock.1h.B +## 3 Avr.1h.A +``` + +--- +### Integration with *SummarizedExperiment* + +- Integrates *targets* files and count table from *systemPipeR* to a *SummarizedExperiment* object + + +```r +## Create an object with targets file and comparison and count table +sprSE <- SPRdata(targetspath = targetspath, cmp=TRUE) +metadata(sprSE) +# $version +# [1] ‘1.23.9’ +# +# $comparison +# $comparison$CMPset1 +# [,1] [,2] +# [1,] "M1" "A1" +# [2,] "M1" "V1" +# [3,] "A1" "V1" +# [4,] "M6" "A6" + +colData(sprSE) +# DataFrame with 18 rows and 6 columns +# FileName SampleName Factor SampleLong +# +# M1A ./data/SRR446027_1.f.. M1A M1 Mock.1h.A +# M1B ./data/SRR446028_1.f.. M1B M1 Mock.1h.B +# ... ... ... ... ... +# M12B ./data/SRR446040_1.f.. M12B M12 Mock.12h.B +``` + +--- +class: inverse, center, middle + +# Live Demo + +--- +## Install Package + +Install the **systemPipeRdata** package from [Bioconductor](http://www.bioconductor.org/packages/release/data/experiment/html/systemPipeRdata.html): + + +```r +if (!requireNamespace("BiocManager", quietly=TRUE)) + install.packages("BiocManager") +BiocManager::install("systemPipeR") +``` + +### Load Package and Documentation + + +Load package: + + +```r +library("systemPipeR") +``` + + +Access help: + + +```r +library(help="systemPipeR") +vignette("systemPipeR") +``` + +--- +## Quick Start + +### Load Sample Workflow + + +*systemPipeRdata* + +- Helper package to generate with a single command workflow templates for *systemPipeR* +- Includes sample data for testing +- User can create new workflows or change and extend existing ones +- Template Workflows: + - Sample workflows can be loaded with the *`genWorkenvir`* function from **systemPipeRdata** + + +Generate workflow template: + + +```r +library(systemPipeRdata) +genWorkenvir(workflow="rnaseq") +setwd("rnaseq") +``` + + +More details about *systemPipeRdata* package [here](https://systempipe.org/pages/SPRdata_intro/SPRdata_intro#1) + +--- +## Install Workflow + + +Check the workflow template availability + +```r +availableWF(github = TRUE) + +# $systemPipeRdata +# [1] "chipseq" "new" "riboseq" "rnaseq" "varseq" +# +# $github +# workflow branches version html description +# 1 systemPipeR/systemPipeChIPseq master release https://github.com/systemPipeR/systemPipeChIPseq Workflow Template +# 2 systemPipeR/systemPipeRIBOseq master release https://github.com/systemPipeR/systemPipeRIBOseq Workflow Template +# 3 systemPipeR/systemPipeRNAseq cluster, master, singleMachine release https://github.com/systemPipeR/systemPipeRNAseq Workflow Template +# 4 systemPipeR/systemPipeVARseq master release https://github.com/systemPipeR/systemPipeVARseq Workflow Template +# 5 systemPipeR/systemPipeCLIPseq master devel https://github.com/systemPipeR/systemPipeCLIPseq Workflow Template +# 6 systemPipeR/systemPipeDeNovo master devel https://github.com/systemPipeR/systemPipeDeNovo Workflow Template +# 7 systemPipeR/systemPipeMetaTrans master devel https://github.com/systemPipeR/systemPipeMetaTrans Workflow Template +# 8 systemPipeR/systemPipeMethylseq master devel https://github.com/systemPipeR/systemPipeMethylseq Workflow Template +``` + +--- +## Dynamic Workflow Template + + +Create dynamic Workflow Templates with *RStudio* + + +`File -> New File -> R Markdown -> From Template` +.center[ + +] + + +--- +## Run a Workflow + +.left-column[ +### Setup +] + +.right-column[ + +```r +library(systemPipeR) +targetspath <- system.file("extdata", "targets.txt", package="systemPipeR") +read.delim(targetspath, comment.char = "#")[1:4,1:4] +``` + +``` +## FileName SampleName Factor SampleLong +## 1 ./data/SRR446027_1.fastq.gz M1A M1 Mock.1h.A +## 2 ./data/SRR446028_1.fastq.gz M1B M1 Mock.1h.B +## 3 ./data/SRR446029_1.fastq.gz A1A A1 Avr.1h.A +## 4 ./data/SRR446030_1.fastq.gz A1B A1 Avr.1h.B +``` + +```r +script <- system.file("extdata/workflows/rnaseq", "systemPipeRNAseq.Rmd", package="systemPipeRdata") +``` +] + +--- +## Run a Workflow + +.left-column[ +### Setup +### `initWF` +] + +.right-column[ + +```r +sysargslist <- initWF(script = script, targets = targetspath, overwrite = TRUE) +# Project started with success: ./SYSproject and SYSconfig.yml were created. +``` +] + +--- +## Run a Workflow + +.left-column[ +### Setup +### `initWF` +### `configWF` +] + +.right-column[ + +```r +sysargslist <- configWF(sysargslist, input_steps = "1:3") +sysargslist +# Instance of 'SYSargsList': +# WF Steps: +# 1. Rmarkdown/HTML setting +# 2. Introduction +# 3. Samples and environment settings +# 3.1. Environment settings and input data +# 3.2. Required packages and resources +# 3.3. Experiment definition provided by `targets` file +``` +] + +--- +## Run a Workflow + +.left-column[ +### Setup +### `initWF` +### `configWF` +### `runWF` +] + +.right-column[ + +```r +sysargslist <- runWF(sysargslist, steps = "1:2") +# Step: 1: Introduction --> DONE +# Step: 2: Samples and environment settings --> DONE +# Step: 2.1: Environment settings and input data --> DONE +# Step: 2.2: Required packages and resources --> DONE +# Step: 2.3: Experiment definition provided by `targets` file --> DONE +``` + + +```r +sysargslist <- runWF(sysargslist, steps = "ALL") +``` +] + +--- +## Run a Workflow + +.left-column[ +### Setup +### `initWF` +### `configWF` +### `runWF` +### `renderReport` +] + +.right-column[ + +```r +sysargslist <- renderReport(sysargslist = sysargslist) +``` +] + +--- +## How to Use Pipes `%>%` + +Consider the following example, in which the steps are the initialization, configuration and running the entire workflow. + + +```r +library(systemPipeR) +sysargslist <- initWF(script ="systemPipeRNAseq.Rmd", overwrite = TRUE) %>% + configWF(input_steps = "1:6") %>% + runWF(steps = "1:2") +``` + +--- +class: inverse, center, middle + +# Project Updates + +--- +### *targets* x *SummarizedExperiment* + +Extension "SummarizedExperiment" methods: + + +```r +sprSE <- addAssay(sprSE, assay(countMatrix), xName="countMatrix") +sprSE <- addMetadata(sprSE, list(targets), xName="metadata") +``` + + +New Function: + + +```r +## Create empty SummarizedExperiment +sprSE <- SPRdata() + +## Create an object with targets file and comparison and count table +sprSE <- SPRdata(counts = countMatrix, cmp=TRUE, targetspath = targetspath) +metadata(sprSE) +colData(sprSE) +assays(sprSE) +``` + +--- +## SPR Paper + + +[Link to draft](https://www.overleaf.com/project/5e94948a23918a000116311c) + + +Added the main points to discuss in the draft + + +Writing: Results and introduction + + +Improve Graphical Abstract + + +Show case? + +--- +## *SYSargsList* + + +Explain how *SYSargsList* is implemented - Vignette + +.small[ +| Function Name | Description | +|----------------|-------------------------------------------------------------------------------------------| +| `initWF` | Constructs `SYSargsList` workflow control module (S4 object) from script file | +| `configWF` | Control of which step of the workflow will be run and the generation of the new RMarkdown | +| `runWF` | Runs all the R chunk define in the RMarkdown file or a subset, e.g. `runWF[1:3]` | +| `renderReport` | Render Scientific Report based on RMarkdown | +| `renderLog` | Render logs Report based on RMarkdown | +| `updateWF` | Recover the `SYSargsList` workflow previous ran and restarts the WF | +| `plotWF` | Plot visual workflow designs and topologies with different graphical layouts | +| `statusWF` | Return the overview of the workflow steps computational status | +| `evalCode` | Turn eval option `TRUE` or `FALSE` on RMarkdown file | +| `tryCL` | Checks if third-party software or utility is installed and set in the PATH | +] + + +Improve `statusWF()` + +--- +## Visualization in *systemPipeR* + + +Add to vignette (SPR or SPS) + - `exploreDDS`, `exploreDDSplot`, `GLMplot`, `MAplot`, `MDSplot`, `PCAplot`, `hclustplot`, `heatMaplot`, `tSNEplot`, `volcanoplot` + + +Enrichment analysis and visualization tool for SPR +- Integration with `FGSEA` + + +--- +## WebSite + + +Updated the vignette + + +Added *systemPipeRdata* vignette and presentation: [link](https://systempipe.org/docs/systemPipeRdata/) + + +Redirect http://girke.bioinformatics.ucr.edu/systemPipeR/ to new page + + +Add content to FAQ section + + +Add tutorials videos + +--- +class: middle + +# Thanks! + + +Browse source code at + + +Ask a question about systemPipeR at Bioconductor Support Page + + + +*systemPipeRdata* at [Bioconductor](http://www.bioconductor.org/packages/devel/bioc/html/systemPipeR.html) + + +[https://systempipe.org/](https://systempipe.org/) + diff --git a/content/en/presentations/SPR/libs/tile-view/tile-view.js b/content/en/presentations/SPR/libs/tile-view/tile-view.js index 7aac71611..bb31dc2fa 100644 --- a/content/en/presentations/SPR/libs/tile-view/tile-view.js +++ b/content/en/presentations/SPR/libs/tile-view/tile-view.js @@ -44,6 +44,10 @@ el.style.display = el.style.display === 'none' ? '' : 'none' } + function slideshowResize () { + window.dispatchEvent(new Event('resize')) + } + const toggleTileView = function () { toggleElement(tileView) toggleElement(remarkSlideShow) @@ -52,11 +56,8 @@ // tileView is now hidden, go to current slide slideshow.gotoSlide(tileVars.currentSlideIdx + 1) - // remove scroll/mousewheel event blocking - tileView.removeEventListener('mousewheel', blockEvent) - tileView.removeEventListener('DOMMouseScroll', blockEvent) - console.log('removing blockScaling') - document.removeEventListener('keydown', blockScaling) + slideshow.resume() + slideshowResize() } else { // store current slide index prior to launching tile-view tileVars.currentSlideIdx = slideshow.getCurrentSlideIndex() @@ -78,11 +79,7 @@ block: 'center' }) - // block remarkjs from handling scroll events - tileView.addEventListener('mousewheel', blockEvent) - tileView.addEventListener('DOMMouseScroll', blockEvent) - console.log('adding blockScaling') - document.addEventListener('keydown', blockScaling) + slideshow.pause() } } @@ -150,15 +147,6 @@ } const tileVars = {} - const blockEvent = ev => ev.stopPropagation() - const blockScaling = function (ev) { - if (ev.controlKey || ev.metaKey) { - if (ev.key === '=' || ev.key === '-') { - ev.preventDefault() - console.log('window scaling is not allowed inside the tile overview') - } - } - } document.addEventListener('keydown', ev => { if (ev.keyCode === launchKey) { diff --git a/content/en/presentations/SPS/SPS_intro.knit.md b/content/en/presentations/SPS/SPS_intro.md similarity index 100% rename from content/en/presentations/SPS/SPS_intro.knit.md rename to content/en/presentations/SPS/SPS_intro.md diff --git a/content/en/sp/SPR/SP_docker.md b/content/en/sp/SPR/SP_docker.md new file mode 100644 index 000000000..7513c10cb --- /dev/null +++ b/content/en/sp/SPR/SP_docker.md @@ -0,0 +1,425 @@ +--- +title: "SPR Docker container" +author: "Author: Daniela Cassol (danielac@ucr.edu)" +date: "Last update: 25 April, 2021" +output: + BiocStyle::html_document: + toc_float: true + code_folding: show + BiocStyle::pdf_document: default +package: systemPipeR +fontsize: 14pt +type: docs +weight: 8 +--- + +> Guidelines from [bioconductor_docker](https://github.com/Bioconductor/bioconductor_docker). + +# Running the `systemPipeR` with Docker + +## Get a copy of the public docker image + + +```bash +docker pull systempipe/systempipe_docker:latest +``` + +## To run RStudio Server: + + +```bash +docker run -e PASSWORD=systemPipe -p 8787:8787 \ + systempipe/systempipe_docker:latest +``` + +You can then open a web browser pointing to your docker host on +port 8787. If you're on Linux and using default settings, the docker +host is `127.0.0.1` (or `localhost`, so the full URL to RStudio would +be `http://localhost:8787)`. If you are on Mac or Windows and running +`Docker Toolbox`, you can determine the docker host with the +`docker-machine ip default` command. + +In the above command, `-e PASSWORD=` is setting the RStudio password +and is required by the RStudio Docker image. It can be whatever you +like except it cannot be `rstudio`. Log in to RStudio with the +username `rstudio` and whatever password was specified, in this +example `systemPipe`. + +## To run R from the command line: + + +```bash +docker run -it --user rstudio systempipe/systempipe_docker:latest R +``` + +## To open a Bash shell on the container: + + +```bash +docker run -it --user rstudio systempipe/systempipe_docker:latest bash +``` + + + + + + + + + + + + + + + + + + + +* * * +
+ +# Install + +**Prerequisites**: +[Linux](https://docs.docker.com/installation/) +[Mac](http://docs.docker.com/installation/mac/) +[Windows](http://docs.docker.com/installation/windows/) + +Instructions [here](https://docs.docker.com/engine/install/ubuntu/) on how to install Docker Engine on Ubuntu. + + +```bash +sudo apt-get update +sudo apt-get install \ + apt-transport-https \ + ca-certificates \ + curl \ + gnupg +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg +echo \ + "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +sudo apt-get update +sudo apt-get install docker-ce docker-ce-cli containerd.io + +## Verify that Docker Engine is installed correctly by running the hello-world image. +sudo docker run hello-world +``` + +## Uninstall + + +```bash +sudo apt-get remove docker docker-engine docker.io containerd runc +``` +* * * +
+ +# Docker Hub Account + +To be able to share a custom image, please go to https://hub.docker.com and +create a free account. + +* * * +
+ +## Log in to the Docker Hub locally + +Login with your Docker ID to push and pull images from Docker Hub. If you don't +have a Docker ID, head over to https://hub.docker.com to create one. + + +```bash +docker login +# Username: XXXX +# Password: xxx +# Login Succeeded +``` + +* * * +
+ +# Run Docker + + +```bash +docker run-dP systempipe/systempipe_docker:latest +``` + +Make sure the container is running: + +```bash +docker ps +# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS # NAMES +#5d007f66a7b3 systempipe/systempipe_docker:latest "/init" 5 minutes ago Up 5 minutes 0.0.0.0:49153->8787/tcp determined_easle +``` + +## Login to the container + +Please check the `NAMES` in this example, `determined_easle,` to login into the container. + + +```bash +docker exec -it determined_easle /bin/bash +``` + +## Other alternatives to run the container + +### To run RStudio Server: + + +```bash +docker run -e PASSWORD=systemPipe -p 8787:8787 \ + systempipe/systempipe_docker:latest +``` + +### To run R from the command line: + + +```bash +docker run -it --user rstudio systempipe/systempipe_docker:latest R +``` + +### To open a Bash shell on the container: + + +```bash +docker run -it --user rstudio systempipe/systempipe_docker:latest bash +``` + +### Check R Version into the container + + +```bash +R --version +``` +## Stop Docker + + +```bash +docker stop determined_easle +``` + +* * * +
+ +# Create your first repository [Link](https://docs.docker.com/docker-hub/) + +## Create a repository: + +- Sign in to Docker Hub. +- Click Create a Repository on the Docker Hub welcome page: +- Name it /my-repo. +- Click Create. + +## Build and push a container image to Docker Hub from your computer + +### Start by creating a *Dockerfile* to specify your application + + +```bash +mkdir docker_test +cd docker_test +touch Dockerfile +``` + + +```bash +# Docker inheritance +FROM systempipe/systempipe_docker:latest + +## Install BiocStyle +RUN R -e 'BiocManager::install("BiocStyle")' + +# Install required Bioconductor package from devel version +RUN R -e 'BiocManager::install("tgirke/systemPipeR")' +RUN R -e 'BiocManager::install("tgirke/systemPipeRdata")' + +WORKDIR /home/rstudio/SPRojects + +COPY --chown=rstudio:rstudio . /home/rstudio/SPRojects + +# Metadata +LABEL name="systempipe/systempipe_docker" \ + version=$BIOCONDUCTOR_DOCKER_systempipe \ + url="https://github.com/systemPipeR/systempipe/systempipe_docker" \ + vendor="systemPipeR Project" \ + maintainer="email@gmail.com" \ + description="Bioconductor docker image containing the systemPipeR Project" \ + license="Artistic-2.0" +``` + +### Run `docker build` to build your Docker image + + +```bash +docker build -t systempipe/systempipe_docker . +``` + +### Run `docker run` to test your Docker image locally + + +```bash +docker run -e PASSWORD=systemPipe -p 8787:8787 systempipe/systempipe_docker:latest +``` + +### Run `docker push` to push your Docker image to Docker Hub + + +```bash +docker push systempipe/systempipe_docker +``` + +- Your repository in Docker Hub should now display a new latest tag under `Tags` + +* * * +
+ +# Make changes to the container and Create the new image + +Create a folder, for example: + +```bash +docker run -dP systempipe/systempipe_docker +docker ps ## To check the NAME +docker exec -it lucid_grothendieck /bin/bash +root@33c758eb1626:/# R +``` + + +```bash +setwd("home/rstudio/") +systemPipeRdata::genWorkenvir("rnaseq") +``` + + +```bash +exit +docker commit -m "Added rnaseq template" -a "Dani Cassol" lucid_grothendieck dcassol/systempipeworkshop2021:rnaseq +docker push systempipe/systempipe_docker:rnaseq +``` + +Run the new image: + + +```bash +docker run -e PASSWORD=systemPipe -p 8787:8787 systempipe/systempipe_docker:rnaseq +``` + +* * * +
+ +# Commands + +## List which docker machines are available locally +```{bash, eval=FALSE}docker images``` + +## List running containers +```{bash, eval=FALSE}docker ps``` + +## List all containers +```{bash, eval=FALSE}docker ps -a``` + +## Resume a stopped container +```{bash, eval=FALSE}docker start ``` + +## Shell into a running container +```{bash, eval=FALSE}docker exec -it /bin/bash``` + +## Stop OR remove a cointainer +```{bash, eval=FALSE}docker stop ``` +```{bash, eval=FALSE}docker rm ``` + +## Remove a image +```{bash, eval=FALSE}docker rmi dcassol/systempipeworkshop2021:rnaseq``` + +* * * +
+ +# Docker and GitHub Actions + +1. To create a new token, go to Docker Hub Settings + +1.1. Account Settings >> Security >> New Access Token +1.2. Add Access Token Description >> Create +1.3. Copy the Access Token >> Copy and Close + +2. Go to the Repository at GitHub + +2.1. Settings > Secrets > New repository secret +2.2. Create a new secret with the name `DOCKER_HUB_USERNAME` and your `Docker ID` as value +2.3. Click at Add secret +2.4. Create a new secret with the name `DOCKER_HUB_ACCESS_TOKEN` and your `Personal Access Token (PAT)` as value (generated in the previous step) + +3. Set up the GitHub Actions workflow + + +```bash + steps: + + - name: Checkout Repo + uses: actions/checkout@v2 + + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} +``` + +* * * +
+ + +# Common Problems + + +```bash +## Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/auth: dial unix /var/run/docker.sock: connect: permission denied +``` + +Solution: + +```bash +sudo chmod 666 /var/run/docker.sock +``` + +* * * +
+ +# Singularity Container + +Please download the Docker image of systemPipe, as follow: + + +```bash +singularity pull docker://systempipe/systempipe_docker:latest +``` + +You can also use the `build` command to download pre-built images from Docker. +Unlike `pull`, `build` will convert the image to the latest Singularity image format after +downloading it. + + +```bash +singularity build systempipe_docker_latest.sif docker://systempipe/systempipe_docker:latest +``` + +To run the container: + + +```bash +singularity shell systempipe_docker_latest.sif +``` + +* * * +
+ +# Resources + +- [Docker Run: How to create images from an application](https://www.mirantis.com/blog/how-do-i-create-a-new-docker-image-for-my-application/) +- [Docker Hub Quickstart](https://docs.docker.com/docker-hub/) +- [Configure GitHub Actions](https://docs.docker.com/ci-cd/github-actions/) +- [Singularity](https://sylabs.io/guides/3.0/user-guide/quick_start.html#interact-with-images) diff --git a/content/en/sps/_index.md b/content/en/sps/_index.md index 5a92b38d1..12144dc38 100644 --- a/content/en/sps/_index.md +++ b/content/en/sps/_index.md @@ -82,6 +82,9 @@ For the login required demos, the app account name is **"user"** password **"use For the admin panel login, account name **"admin"**, password **"admin"**. +**Please DO NOT delete or change password when you are using the admin features.** +_shinyapp.io_ will reset the app once a while, but this will affect other people +who are trying the demo simultaneously. ## Other packages in systemPipeShiny diff --git a/content/en/sps/adv_features/config.Rmd b/content/en/sps/adv_features/config.Rmd index da22909e9..d9bb5fe6e 100644 --- a/content/en/sps/adv_features/config.Rmd +++ b/content/en/sps/adv_features/config.Rmd @@ -30,7 +30,6 @@ spsInit() sps_dir <- normalizePath(".") ``` - ```{r echo=FALSE, results='asis'} options(crayon.enabled = TRUE) old_hooks <- fansi::set_knit_hooks(knitr::knit_hooks, which = c("output", "message", "error", "warning")) @@ -131,7 +130,9 @@ options(sps = list( module_wf = TRUE, module_rnaseq = TRUE, module_ggplot = TRUE, - traceback = FALSE + traceback = FALSE, + is_demo = FALSE, + welcome_guide = TRUE )) ``` @@ -150,17 +151,19 @@ messages on console to tell you specifically what is wrong with your options.

PRE.fansi SPAN {padding-top: .25em; padding-bottom: .25em}; @@ -128,10 +127,10 @@ spsOptDefaults(app_path = sps_dir) ## Default: local ## Other: server ## login_screen: -## Default: TRUE -## Other: FALSE +## Default: FALSE +## Other: TRUE ## login_theme: -## Default: vhelix +## Default: random ## Other: * ## use_crayon: ## Default: TRUE @@ -140,14 +139,14 @@ spsOptDefaults(app_path = sps_dir) ## Default: FALSE ## Other: TRUE ## admin_page: -## Default: FALSE -## Other: TRUE +## Default: TRUE +## Other: FALSE ## admin_url: ## Default: admin ## Other: * ## warning_toast: -## Default: TRUE -## Other: FALSE +## Default: FALSE +## Other: TRUE ## module_wf: ## Default: TRUE ## Other: FALSE @@ -175,6 +174,12 @@ spsOptDefaults(app_path = sps_dir) ## traceback: ## Default: FALSE ## Other: TRUE +## is_demo: +## Default: FALSE +## Other: TRUE +## welcome_guide: +## Default: TRUE +## Other: FALSE ## * means any value will be accepted @@ -186,10 +191,48 @@ spsOptions(app_path = sps_dir) ```
## Current project option settings: 
-## verbose:
+## title:
+##     systemPipeShiny 
+## title_logo:
+##     img/sps_small.png 
+## mode:
+##     local 
+## login_screen:
 ##     FALSE 
+## login_theme:
+##     random 
 ## use_crayon:
 ##     TRUE 
+## verbose:
+##     FALSE 
+## admin_page:
+##     TRUE 
+## admin_url:
+##     admin 
+## warning_toast:
+##     FALSE 
+## module_wf:
+##     TRUE 
+## module_rnaseq:
+##     TRUE 
+## module_ggplot:
+##     TRUE 
+## tab_welcome:
+##     TRUE 
+## tab_vs_main:
+##     TRUE 
+## tab_canvas:
+##     TRUE 
+## tab_about:
+##     TRUE 
+## note_url:
+##     https://raw.githubusercontent.com/systemPipeR/systemPipeShiny/master/inst/remote_resource/notifications.yaml 
+## traceback:
+##     FALSE 
+## is_demo:
+##     FALSE 
+## welcome_guide:
+##     TRUE 
 ## ********
 ## Option legend:
 ##     known options        Hidden/custom options* and values+
@@ -220,7 +263,9 @@ options(sps = list(
     module_wf = TRUE,
     module_rnaseq = TRUE,
     module_ggplot = TRUE,
-    traceback = FALSE
+    traceback = FALSE,
+    is_demo = FALSE,
+    welcome_guide = TRUE
 ))
 ```
 
@@ -239,17 +284,19 @@ messages on console to tell you specifically what is wrong with your options.

## title: +## Default: systemPipeShiny +## Other: * +## title_logo: +## Default: img/sps_small.png +## Other: * +## mode: +## Default: local +## Other: server +## login_screen: +## Default: FALSE +## Other: TRUE +## login_theme: +## Default: random +## Other: * +## use_crayon: +## Default: TRUE +## Other: FALSE +## verbose: +## Default: FALSE +## Other: TRUE +## admin_page: +## Default: TRUE +## Other: FALSE +## admin_url: +## Default: admin +## Other: * +## warning_toast: +## Default: FALSE +## Other: TRUE +## module_wf: +## Default: TRUE +## Other: FALSE +## module_rnaseq: +## Default: TRUE +## Other: FALSE +## module_ggplot: +## Default: TRUE +## Other: FALSE +## tab_welcome: +## Default: TRUE +## Other: FALSE +## tab_vs_main: +## Default: TRUE +## Other: FALSE +## tab_canvas: +## Default: TRUE +## Other: FALSE +## tab_about: +## Default: TRUE +## Other: FALSE +## note_url: +## Default: https://raw.githubusercontent.com/systemPipeR/systemPipeShiny/master/inst/remote_resource/notifications.yaml +## Other: * +## traceback: +## Default: FALSE +## Other: TRUE +## is_demo: +## Default: FALSE +## Other: TRUE +## welcome_guide: +## Default: TRUE +## Other: FALSE +## my_opt1: +## Default: TRUE +## Other: FALSE +## my_opt2: +## Default: a +## Other: * +## * means any value will be accepted +
+ +You can see the `my_opt1` and `my_opt2` have been added to SPS options. + + + + + + + + + + + diff --git a/content/en/sps/deploy.md b/content/en/sps/deploy.md index bf92dd040..65f3aecd5 100644 --- a/content/en/sps/deploy.md +++ b/content/en/sps/deploy.md @@ -7,11 +7,101 @@ weight: 9 ***** ## How to deploy the application -Among several options of deployment of your `SPS` custom application, here you can find the example of [shinyapps.io](https://www.shinyapps.io/). -To get started, it is required to create a *shinyapps.io* account. Please follow this [tutorial](https://shiny.rstudio.com/articles/shinyapps.html) -with all the instructions to create an account. -`SPS` project provides a ready-to-use file, `deploy.R`, with the required information to configure ShinyApps account and deploy the application. - -Once the account is set correctly, you can deploy it as soon as the project is created. It -is recommended to create -> test/run -> deploy a Shiny app from Rstudio and follow -[this tutorial](https://shiny.rstudio.com/articles/shinyapps.html). +The easiest way to deploy SPS is [shinyapps.io{blk}](https://www.shinyapps.io/). +To get started, it is required to create a *shinyapps.io* account. Please follow this [tutorial{blk}](https://shiny.rstudio.com/articles/shinyapps.html) +with all the instructions to create an account. There are other ways to deploy, like +AWS or Google Cloud with a custom Shiny server. There are a lot of tutorials to +deploy the app other than *shinyapps.io*. We only use *shinyapps.io* as the example +here to discuss how to deploy. + +## Get started + +After you have created a `SPS` project, it is in a deploy-ready state, which means +you can deploy it as soon as you create the project. + +We have created some important helper code in `deploy.R` under the project root for you. +1. Read the [tutorial{blk}](https://shiny.rstudio.com/articles/shinyapps.html) +2. After you have the accounts and token set up according to the tutorial, open + `deploy.R`. + - If you have used Bioconductor packages (mostly likely yes, unless you do not use + the default modules), run the options line in R console before deploy, which is this + + ```r + options(repos = BiocManager::repositories()) + ``` + + - If you want to use develop version of Bioconductor packages (not recommended), + uncomment following lines and follow the instructions in the file. + + ```r + # repos <- BiocManager::repositories() + # devel <- "3.13" + # repos[length(repos) + 1] <- paste0("https://bioconductor.org/packages/", devel, "/bioc") + # names(repos)[length(repos)] <- "BioC" + # options(repos = repos) + # getOption("repos") + ``` + + - If you wish *shinyapps.io* to install [SPS modules](/sps/modules/), copy and + **uncomment** following lines for the modules to `global.R` file below the + line `# load additional libraries that you want to use below`. + ```r + ## Workflow module + # requireNamespace("DOT"); requireNamespace("networkD3"); requireNamespace("pushbar") + # requireNamespace("readr"); requireNamespace("rhandsontable"); requireNamespace("shinyTree") + # requireNamespace("systemPipeR"); requireNamespace("systemPipeRdata"); requireNamespace("zip") + + ## RNA-Seq module + # requireNamespace("DESeq2"); requireNamespace("Rtsne"); requireNamespace("SummarizedExperiment") + # requireNamespace("UpSetR"); requireNamespace("ape"); requireNamespace("ggtree") + # requireNamespace("glmpca"); requireNamespace("pheatmap"); requireNamespace("systemPipeR") + + ## Quick ggplot module + # requireNamespace("esquisse") + ``` + - The last section in `deploy.R` is some helper code to set up the account and + deploy the app programmatically. If you use the + [tutorial{blk}](https://shiny.rstudio.com/articles/shinyapps.html), + there is no need to do this section. + - Save your changes in the `global.R`. + +## Deploy in Rstudio +We recommend you to deploy the app with Rstudio. If you have set up your *shinyapps.io* +account, we are ready to go. + +
+ +![](../img/deploy.png) + +
+ +### A +1. Open `global.R` in Rstudio, use the "Run App" button to make sure your app +can be run without problems locally. +2. Run `options(repos = BiocManager::repositories())` and other Bioconductor + set up code as listed above. +3. Click the button next to "Run App" and choose "Publish Application..." + +### B +4. If you have set up your account correctly, you should see your account to the + right panel. +5. Select all the files of your SPS project. +6. Change the app "Title" to what you want. +7. hit "Publish". + +## RAM requirement + +If you wish to load the workflow and/or RNAseq module(s) on *shinyapps.io*, you need +at least **2GB** of memory. Unfortunately, these 2 modules depend heavily on Bioconductor +packages and these packages are not light-weighted. The max RAM for free account +on *shinyapps.io* is 1GB which means you either need to upgrade your account or +use other server to deploy your app. + +If you decide to not load these modules which will allow you to deploy the app +with a free account, change the settings to unload these modules in +[app options](/sps/adv_features/config/#app-options) in `global.R`. + + + + + diff --git a/content/en/sps/img/deploy.png b/content/en/sps/img/deploy.png new file mode 100644 index 000000000..e1daafda5 Binary files /dev/null and b/content/en/sps/img/deploy.png differ diff --git a/content/en/sps/modules/workflow.md b/content/en/sps/modules/workflow.md index b2ecadfb6..2438d9c9c 100644 --- a/content/en/sps/modules/workflow.md +++ b/content/en/sps/modules/workflow.md @@ -9,12 +9,12 @@ weight: 1 The workflow management module in `SPS` allows one to modify or create the configuration files required for running data analysis workflows in -[systemPipeR](https://systempipe.org/docs/systemPipeR/) (SPR). This includes +[systemPipeR](https://systempipe.org/sp/spr/) (SPR). This includes three types of important files: a sample metadata (targets) file, a workflow file (in R Markdown format) defining the workflow steps, and workflow running -files in [Common Workflow Language (CWL)](https://www.commonwl.org/) format. In SPS, one can easily create +files in [Common Workflow Language (CWL){blk}](https://www.commonwl.org/) format. In SPS, one can easily create these files under the "Workflow Management" module, located in navigation bar -on the left of the dashboard ([Fig2](/sps/quick_start/#launch-sps)). +on the [left of the dashboard](/sps/quick_start/#launch-sps). The current version of `SPS` allows to: @@ -43,13 +43,13 @@ sequencing workflows. Clicking the pop-up will jump you to the step 2. The status tracker and banner for step 1 should all turn green. - ### 2. Prepare a target file + The targets file defines all input file paths and other sample information of analysis workflows. To better undertand the structure of this file, one can consult the ["Structure of targets -file"](https://systempipe.org/docs/systemPipeR/#structure-of-targets-file) +file"](https://systempipe.org/sp/spr/gettingstarted/#structure-of-targets-file) section in the SPR vignette. Essentially, this is the tabular file representation of the `colData` slot in an `SummarizedExperiment` object which stores sample IDs and other meta information. @@ -75,7 +75,7 @@ here. Leave it as default for other projects. ### 3. Prepare a workflow file -In SPR, workflows are defined in Rmarkdown files, you can read details and obtain them [here](https://systempipe.org/pages/pipelines_area/). +In SPR, workflows are defined in Rmarkdown files, you can read details and obtain them [here](https://systempipe.org/sp/spr/templates/). Now let us follow the order below to see how SPS helps you to prepare a workflow file for a RNAseq project (Fig.3 B): @@ -152,3 +152,33 @@ code. 5. Workflow running log. 6. View any plot output. and send a copy of your current plot to SPS Canvas tab or download it. + + +## App security +Running the workflow may introduce some security concerns. Read [App Security](/sps/adv_features/app_security/#the-workflow-module) +for more details. + +## `is_demo` option +The `is_demo` [option](/sps/adv_features/config/#app-options) will impact the workflow +module. +- `TRUE`: you are not deploying the app for production purpose. It is just a show case. + Under this option, users who are trying to create a workflow will be locked inside + a temp directory and every time they start a new session, they will be assigned to + a new temp directory. This is useful is many people want to try the app the same + time, so they will have private different environment, and the temp directory will + be removed afterwards. +- `FALSE`: you are using the app on your own local computer or use it in a production + environment. WF module will have **full access** to the sever storage system and + users can choose **any place** they have permission to create the workflow session. + + + + + + + + + + + + diff --git a/content/en/training/Presentations/_index.md b/content/en/training/Presentations/_index.md index 4a94b7c9e..2705940bd 100644 --- a/content/en/training/Presentations/_index.md +++ b/content/en/training/Presentations/_index.md @@ -11,7 +11,7 @@ type: docs -## [systemPipeRdata{blk}](http://bioconductor.org/packages/devel/bioc/html/systemPipeShiny.html) +## [systemPipeShiny{blk}](http://bioconductor.org/packages/devel/bioc/html/systemPipeShiny.html) diff --git a/public/404.html b/public/404.html index 24c7408ba..234d59108 100644 --- a/public/404.html +++ b/public/404.html @@ -45,8 +45,8 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/presentations/index.xml b/public/presentations/index.xml new file mode 100644 index 000000000..d9894f799 --- /dev/null +++ b/public/presentations/index.xml @@ -0,0 +1,849 @@ + + + sysPipe – Presentations + /presentations/ + Recent content in Presentations on sysPipe + Hugo -- gohugo.io + + + + + + + + + + + Presentations: ![](https://raw.githubusercontent.com/systemPipeR/systemPipeShiny/master/inst/app/www/img/sps_small.png){width=1in} +<br/>_systemPipeShiny_ + + /presentations/sps/sps_intro/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /presentations/sps/sps_intro/ + + + + <!-- background-image: url(https://raw.githubusercontent.com/systemPipeR/systemPipeShiny/master/inst/app/www/img/sps_small.png) --> +<p>layout: true +background-image: url(<a href="https://raw.githubusercontent.com/systemPipeR/systemPipeShiny/master/inst/app/www/img/sps_small.png">https://raw.githubusercontent.com/systemPipeR/systemPipeShiny/master/inst/app/www/img/sps_small.png</a>) +background-position: 100% 0% +background-size: 10%</p> + + + + + + Presentations: _systemPipeR_ + /presentations/spr/spr_project/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /presentations/spr/spr_project/ + + + + <p>layout: true +background-image: url(<a href="https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/systemPipeR.png">https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/systemPipeR.png</a>) +background-position: 99% 1% +background-size: 10%</p> +<hr> +<p>class: middle</p> +<h2 id="outline">Outline</h2> +<h4 id="introduction">Introduction</h4> +<h4 id="design">Design</h4> +<h4 id="how-to-run-a-workflow">How to run a Workflow</h4> +<h4 id="workflows-tutorial">Workflows Tutorial</h4> +<h4 id="live-demo">Live Demo</h4> +<!-- ################## --> +<!-- ## Introduction --> +<!-- ################## --> +<hr> +<p>class: inverse, center, middle</p> +<h1 id="i-classfas-fa-file-codei-introduction"><i class="fas fa-file-code"></i> Introduction</h1> +<!-- ################## Slide ################## --> +<hr> +<h2 id="introduction-1">Introduction</h2> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<a href="http://www.bioconductor.org/packages/devel/bioc/html/systemPipeR.html"><em>systemPipeR</em></a> provides a suite of R/Bioconductor packages for designing, building and running end-to-end analysis workflows on local machines, HPC clusters and cloud systems, while generating at the same time publication quality analysis reports</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<em>systemPipeR</em> offers many utilities to build, control, and execute +workflows entirely from R</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +The environment takes advantage of central community S4 classes of the Bioconductor ecosystem</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +Workflows are managed by generic workflow management containers supporting both analysis routines implemented in R code and/or command-line software</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +Simple annotation system targets</p> +<!-- ################## Slide ################## --> +<hr> +<h3 id="systempipers-core-functionalities">systemPipeR’s Core Functionalities</h3> +<p>.center[ +<img src="highLevel_color.svg" height="490px" class="center" /> +]</p> +<!-- ################## Slide ################## --> +<hr> +<h2 id="i-classfas-fa-toolboxi-structural-features"><i class="fas fa-toolbox"></i> Structural Features</h2> +<p>&ndash; +.left-column[</p> +<h4 id="wf-infrastructure">WF infrastructure</h4> +<p>]</p> +<p>.right-column[ +<em>systemPipeR</em> offers many utilities to build, control, and execute +workflows entirely from R. The environment takes advantage of central community S4 classes +of the Bioconductor ecosystem. Workflows are managed by generic workflow management +containers supporting both analysis routines implemented in R code and/or command-line +software. A layered monitoring infrastructure is provided to design, control and debug each +step in a workflow. The run environment allows to execute workflows entirely or with a +intuitive to use step-wise execution syntax using R’s standard subsetting syntax +(runWF(sys[1:3])) or pipes (%&gt;%). +]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-structural-features-1"><i class="fas fa-toolbox"></i> Structural Features</h2> +<p>.left-column[</p> +<h4 id="wf-infrastructure-1">WF infrastructure</h4> +<h4 id="command-line-support">Command-line support</h4> +<p>]</p> +<p>.right-column[ +An important feature of systemPipeR is support for +running command-line software by adopting the Common Workflow Language (CWL). The +latter is a widely adopted community standard for describing analysis workflows. This design +offers several advantages such as:</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +seamless integration of most command-line software</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +support to run systemPipeR workflows from R or many other popular computer languages</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +efficient sharing of workflows across different workflow environments. +]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-structural-features-2"><i class="fas fa-toolbox"></i> Structural Features</h2> +<p>.left-column[</p> +<h4 id="wf-infrastructure-2">WF infrastructure</h4> +<h4 id="command-line-support-1">Command-line support</h4> +<h4 id="parallel-evaluation">Parallel evaluation</h4> +<p>]</p> +<p>.right-column[ +The processing time of workflows can be greatly reduced by making use +of parallel evaluations across several CPU cores on single machines, or multiple nodes of +computer clusters and cloud-based systems. systemPipeR simplifies these parallelization tasks +without creating any limitations for users who do not have access to high-performance +computer resources +]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-structural-features-3"><i class="fas fa-toolbox"></i> Structural Features</h2> +<p>.left-column[</p> +<h4 id="wf-infrastructure-3">WF infrastructure</h4> +<h4 id="command-line-support-2">Command-line support</h4> +<h4 id="parallel-evaluation-1">Parallel evaluation</h4> +<h4 id="reports-infrastructure">Reports infrastructure</h4> +<p>]</p> +<p>.right-column[ +<em>systemPipeR’s</em> reporting infrastructure +includes three types of interconnected reports each serving a different purpose:</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +a scientific report, based on R Markdown, contains all scientifically relevant results</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +a technical report captures all technical information important for each workflow step, including parameter +settings, software versions, and warning/error messages, etc.</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +a visual report depicts the entire workflow topology including its run status in form of a workflow graph</p> +<p>]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-structural-features-4"><i class="fas fa-toolbox"></i> Structural Features</h2> +<p>.left-column[</p> +<h4 id="wf-infrastructure-4">WF infrastructure</h4> +<h4 id="command-line-support-3">Command-line support</h4> +<h4 id="parallel-evaluation-2">Parallel evaluation</h4> +<h4 id="reports-infrastructure-1">Reports infrastructure</h4> +<h4 id="shiny-web-interface">Shiny Web Interface</h4> +<p>]</p> +<p>.right-column[ +Recently, the systemPipeShiny package has been added that allows +users to design workflows in an interactive graphical user interface (GUI). In addition to +designing workflows, this new interface allows users to run and to monitor workflows in an +intuitive manner without the need of knowing R. +]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-structural-features-5"><i class="fas fa-toolbox"></i> Structural Features</h2> +<p>.left-column[</p> +<h4 id="wf-infrastructure-5">WF infrastructure</h4> +<h4 id="command-line-support-4">Command-line support</h4> +<h4 id="parallel-evaluation-3">Parallel evaluation</h4> +<h4 id="reports-infrastructure-2">Reports infrastructure</h4> +<h4 id="shiny-web-interface-1">Shiny Web Interface</h4> +<h4 id="workflow-templates">Workflow Templates</h4> +<p>]</p> +<p>.right-column[ +A rich set of end-to-end workflow templates is provided by this +project for a wide range omics applications. In addition, users can contribute and share their +workflows with the community by submitting them to a central GitHub repository +]</p> +<!-- ################## Slide ################## --> +<hr> +<h2 id="important-functions">Important Functions</h2> +<p>.small[</p> +<table> +<thead> +<tr> +<th>Function Name</th> +<th>Description</th> +<th>Category</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>genWorkenvir</code></td> +<td>Generates workflow templates provided by systemPipeRdata helper package / or from the individuals’ pipelines packages</td> +<td>Accessory</td> +</tr> +<tr> +<td><code>loadWorkflow</code></td> +<td>Constructs <code>SYSargs2</code> object from CWL param and targets files</td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td><code>renderWF</code></td> +<td>Populate all the command-line in an <code>SYSargs2</code> object</td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td><code>subsetWF</code></td> +<td>Subsetting <code>SYSargs2</code> class slots</td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td><code>runCommandline</code></td> +<td>Executes command-line software on samples and parameters specified in <code>SYSargs2</code> object</td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td><code>clusterRun</code></td> +<td>Runs command-line software in parallel mode on a computer cluster</td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td><code>writeTargetsout</code></td> +<td>Write updated targets out to file/Generate targets file with reference</td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td><code>output_update</code></td> +<td>Updates the output files paths in the <code>SYSargs2</code> object</td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td><code>singleYML</code></td> +<td>Create automatically the <code>param.yml</code></td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td><code>createWF</code></td> +<td>Create automatically <code>param.cwl</code> and the <code>param.yml</code> based on the command line</td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td><code>config.param</code></td> +<td>Custom configuration of the CWL param files from R</td> +<td><code>SYSargs2</code></td> +</tr> +<tr> +<td>]</td> +<td></td> +<td></td> +</tr> +</tbody> +</table> +<hr> +<h2 id="important-functions-1">Important Functions</h2> +<p>.small[</p> +<table> +<thead> +<tr> +<th>Function Name</th> +<th>Description</th> +<th>Category</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>initWF</code></td> +<td>Constructs <code>SYSargsList</code> workflow control module (S4 object) from script file</td> +<td><code>SYSargsList</code></td> +</tr> +<tr> +<td><code>configWF</code></td> +<td>Control of which step of the workflow will be run and the generation of the new RMarkdown</td> +<td><code>SYSargsList</code></td> +</tr> +<tr> +<td><code>runWF</code></td> +<td>Runs all the R chunk define in the RMarkdown file or a subset, e.g. <code>runWF[1:3]</code></td> +<td><code>SYSargsList</code></td> +</tr> +<tr> +<td><code>renderReport</code></td> +<td>Render Scientific Report based on RMarkdown</td> +<td><code>SYSargsList</code></td> +</tr> +<tr> +<td><code>subsetRmd</code></td> +<td>Write updated subset Rmarkdown of R chunk with text associate in the step selected</td> +<td><code>SYSargsList</code></td> +</tr> +<tr> +<td><code>plotWF</code></td> +<td>Plot visual workflow designs and topologies with different graphical layouts</td> +<td><code>SYSargsList</code></td> +</tr> +<tr> +<td><code>statusWF</code></td> +<td>Return the overview of the workflow steps computational status</td> +<td><code>SYSargsList</code></td> +</tr> +<tr> +<td><code>evalCode</code></td> +<td>Turn eval option <code>TRUE</code> or <code>FALSE</code> on RMarkdown file</td> +<td>Accessory</td> +</tr> +<tr> +<td><code>tryCL</code></td> +<td>Checks if third-party software or utility is installed and set in the PATH</td> +<td>Accessory</td> +</tr> +<tr> +<td>]</td> +<td></td> +<td></td> +</tr> +</tbody> +</table> +<!-- ################## --> +<!-- ## Design --> +<!-- ################## --> +<hr> +<p>class: inverse, center, middle</p> +<h1 id="i-classfas-fa-drafting-compassi-design"><i class="fas fa-drafting-compass"></i> Design</h1> +<hr> +<h3 id="workflow-management-solutions">Workflow Management Solutions</h3> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<em>systemPipeR</em> central concept for designing workflows is <strong>workflow +management containers</strong> (S4 class)</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<em>SYSargs2</em> controls workflow steps with input/output file operations</p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<em>SYSargs2</em> requires a targets and a set of workflow definition files (here param.cwl and param.yml)</p> +<!-- <i class="fas fa-hand-point-right" style="color:#00758a;"></i> --> +<!-- Any number of predefined or custom workflow steps is supported --> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<em>SYSargsList</em> objects organize one or many <em>SYSargs2</em> +containers in a single compound object capturing all information required to run, control and +monitor complex workflows from start to finish</p> +<p>.center[ +<img src="SPRclass.png" class="center" /> +]</p> +<hr> +<h2 id="i-classfar-fa-folder-openi-directory-structure"><i class="far fa-folder-open"></i> Directory Structure</h2> +<p>The workflow templates generated by <em><code>genWorkenvir</code></em> contain the following preconfigured directory structure:</p> +<p><img src="directory.png" height="425px" class="center" /></p> +<hr> +<h2 id="i-classfas-fa-project-diagrami-workflows-collection"><i class="fas fa-project-diagram"></i> Workflows Collection</h2> +<p>Browse pipelines that are currently available as part of the <em>systemPipeR</em> toolkit</p> +<p>.small[</p> +<table> +<thead> +<tr> +<th style="text-align:center">WorkFlow</th> +<th style="text-align:center">Description</th> +<th style="text-align:center">Version</th> +<th style="text-align:center">GitHub</th> +<th style="text-align:center">CI Testing</th> +</tr> +</thead> +<tbody> +<tr> +<td style="text-align:center"><a href="https://systempiper.github.io/systemPipeChIPseq/articles/systemPipeChIPseq.html">systemPipeChIPseq</a></td> +<td style="text-align:center">ChIP-Seq Workflow Template</td> +<td style="text-align:center">v1.0 <img src="https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/check.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeChIPseq"> <img src="https://raw.githubusercontent.com/systemPipeR/systemPipeR/gh-pages/images/GitHub-Mark-120px-plus.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><img src="https://github.com/systemPipeR/systemPipeChIPseq/workflows/R-CMD-check/badge.svg" alt="R-CMD-check"></td> +</tr> +<tr> +<td style="text-align:center"><a href="https://systempiper.github.io/systemPipeRIBOseq/articles/systemPipeRIBOseq.html">systemPipeRIBOseq</a></td> +<td style="text-align:center">RIBO-Seq Workflow Template</td> +<td style="text-align:center">v1.0 <img src="https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/check.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeRIBOseq"> <img src="https://raw.githubusercontent.com/systemPipeR/systemPipeR/gh-pages/images/GitHub-Mark-120px-plus.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><img src="https://github.com/systemPipeR/systemPipeRIBOseq/workflows/R-CMD-check/badge.svg" alt="R-CMD-check"></td> +</tr> +<tr> +<td style="text-align:center"><a href="https://systempiper.github.io/systemPipeRNAseq/articles/systemPipeRNAseq.html">systemPipeRNAseq</a></td> +<td style="text-align:center">RNA-Seq Workflow Template</td> +<td style="text-align:center">v1.0 <img src="https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/check.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeRNAseq"> <img src="https://raw.githubusercontent.com/systemPipeR/systemPipeR/gh-pages/images/GitHub-Mark-120px-plus.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><img src="https://github.com/systemPipeR/systemPipeRNAseq/workflows/R-CMD-check/badge.svg" alt="R-CMD-check"></td> +</tr> +<tr> +<td style="text-align:center"><a href="https://systempiper.github.io/systemPipeVARseq/articles/systemPipeVARseq.html">systemPipeVARseq</a></td> +<td style="text-align:center">VAR-Seq Workflow Template</td> +<td style="text-align:center">v1.0 <img src="https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/check.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeVARseq"> <img src="https://raw.githubusercontent.com/systemPipeR/systemPipeR/gh-pages/images/GitHub-Mark-120px-plus.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><img src="https://github.com/systemPipeR/systemPipeVARseq/workflows/R-CMD-check/badge.svg" alt="R-CMD-check"></td> +</tr> +<tr> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeMethylseq">systemPipeMethylseq</a></td> +<td style="text-align:center">Methyl-Seq Workflow Template</td> +<td style="text-align:center">devel <img src="https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/devel.png" align="center" style="width:25px;" /></td> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeMethylseq"> <img src="https://raw.githubusercontent.com/systemPipeR/systemPipeR/gh-pages/images/GitHub-Mark-120px-plus.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><img src="https://github.com/systemPipeR/systemPipeMethylseq/workflows/R-CMD-check/badge.svg" alt="R-CMD-check"></td> +</tr> +<tr> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeDeNovo">systemPipeDeNovo</a></td> +<td style="text-align:center">De novo transcriptome assembly Workflow Template</td> +<td style="text-align:center">devel <img src="https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/devel.png" align="center" style="width:25px;" /></td> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeDeNovo"> <img src="https://raw.githubusercontent.com/systemPipeR/systemPipeR/gh-pages/images/GitHub-Mark-120px-plus.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><img src="https://github.com/systemPipeR/systemPipeDeNovo/workflows/R-CMD-check/badge.svg" alt="R-CMD-check"></td> +</tr> +<tr> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeCLIPseq">systemPipeCLIPseq</a></td> +<td style="text-align:center">CLIP-Seq Workflow Template</td> +<td style="text-align:center">devel <img src="https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/devel.png" align="center" style="width:25px;" /></td> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeCLIPseq"> <img src="https://raw.githubusercontent.com/systemPipeR/systemPipeR/gh-pages/images/GitHub-Mark-120px-plus.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><img src="https://github.com/systemPipeR/systemPipeCLIPseq/workflows/R-CMD-check/badge.svg" alt="R-CMD-check"></td> +</tr> +<tr> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeMetaTrans">systemPipeMetaTrans</a></td> +<td style="text-align:center">Metatranscriptomic Sequencing Workflow Template</td> +<td style="text-align:center">devel <img src="https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/devel.png" align="center" style="width:25px;" /></td> +<td style="text-align:center"><a href="https://github.com/systemPipeR/systemPipeMetaTrans"> <img src="https://raw.githubusercontent.com/systemPipeR/systemPipeR/gh-pages/images/GitHub-Mark-120px-plus.png" align="center" style="width:20px;" /></td> +<td style="text-align:center"><img src="https://github.com/systemPipeR/systemPipeMetaTrans/workflows/R-CMD-check/badge.svg" alt="R-CMD-check"></td> +</tr> +<tr> +<td style="text-align:center">]</td> +<td></td> +<td></td> +<td></td> +<td></td> +</tr> +</tbody> +</table> +<hr> +<p>class: inverse, center, middle</p> +<h1 id="cwl">CWL</h1> +<hr> +<h2 id="i-classfas-fa-box-openi-cwl"><i class="fas fa-box-open"></i> CWL</h2> +<p><i class="fas fa-circle" style="color:#00758a;"></i> <strong>TODO:</strong> +Add section with CWL details</p> +<p>.center[ +<img src="cwl.png" height="490px" class="center" /> +]</p> +<hr> +<h2 id="i-classfas-fa-box-openi-cwl-and-spr"><i class="fas fa-box-open"></i> CWL and SPR</h2> +<p><i class="fas fa-circle" style="color:#00758a;"></i> <strong>TODO:</strong> +How to use CWL definition with <em>systemPipeR</em></p> +<ul> +<li><em>SYSargs2</em> instances are constructed from a <em><code>targets</code></em> file and two <em><code>param</code></em> file +<ul> +<li><em><code>hisat2-mapping-se.cwl</code></em> file contains the settings for running command-line software</li> +<li><em><code>hisat2-mapping-se.yml</code></em> file define all the variables to be input in the specific command-line step </h4></li> +</ul> +</li> +</ul> +<pre><code class="language-r">targets &lt;- system.file(&quot;extdata&quot;, &quot;targets.txt&quot;, package=&quot;systemPipeR&quot;) +dir_path &lt;- system.file(&quot;extdata/cwl/hisat2/hisat2-se&quot;, package=&quot;systemPipeR&quot;) +align &lt;- loadWF(targets=targets, wf_file=&quot;hisat2-mapping-se.cwl&quot;, + input_file=&quot;hisat2-mapping-se.yml&quot;, dir_path=dir_path) +align &lt;- renderWF(align, inputvars=c(FileName=&quot;_FASTQ_PATH_&quot;, SampleName=&quot;_SampleName_&quot;)) + +## Instance of 'SYSargs2': +## Slot names/accessors: +## targets: 18 (M1A...V12B), targetsheader: 4 (lines) +## modules: 2 +## wf: 0, clt: 1, yamlinput: 7 (components) +## input: 18, output: 18 +## cmdlist: 18 +## WF Steps: +## 1. hisat2-mapping-se.cwl (rendered: TRUE) +</code></pre> +<hr> +<h2 id="i-classfas-fa-box-openi-cwl-and-spr-1"><i class="fas fa-box-open"></i> CWL and SPR</h2> +<h2 id="sysargs2-instance"><em><code>SYSargs2</code></em> instance</h2> +<ul> +<li>Slots and accessor functions have the same names</li> +</ul> +<pre><code class="language-r">names(align) +# [1] &quot;targets&quot; &quot;targetsheader&quot; &quot;modules&quot; &quot;wf&quot; &quot;clt&quot; +# [6] &quot;yamlinput&quot; &quot;cmdlist&quot; &quot;input&quot; &quot;output&quot; &quot;cwlfiles&quot; +# [11] &quot;inputvars&quot; +</code></pre> +<ul> +<li><em><code>cmdlist</code></em> return command-line arguments for the specific software, here <em><code>HISAT2</code></em> for the first sample</li> +</ul> +<pre><code class="language-r">cmdlist(align)[1] +# $M1A +# $M1A$`hisat2-mapping-se.cwl` +# [1] &quot;hisat2 -S results/M1A.sam -x ./data/tair10.fasta -k 1 --min-intronlen 30 --max-intronlen 3000 -U ./data/SRR446027_1.fastq.gz --threads 4&quot; +</code></pre> +<ul> +<li>The output components of <em><code>SYSargs2</code></em> define all the expected output files for each step in the workflow; some of which are the input for the next workflow step</li> +</ul> +<pre><code class="language-r">output(align)[1] +# $M1A +# $M1A$`hisat2-mapping-se.cwl` +# [1] &quot;results/M1A.sam&quot; +</code></pre> +<hr> +<p>class: inverse, center, middle</p> +<h1 id="i-classfas-fa-tablei-metadata"><i class="fas fa-table"></i> Metadata</h1> +<hr> +<h3 id="i-classfas-fa-box-openi-targets-file-organizes-samples"><i class="fas fa-box-open"></i> <em>Targets</em> file organizes samples</h3> +<ul> +<li>Structure of <em><code>targets</code></em> file for single-end (SE) library</li> +</ul> +<pre><code class="language-r">targetspath &lt;- system.file(&quot;extdata&quot;, &quot;targets.txt&quot;, package=&quot;systemPipeR&quot;) +read.delim(targetspath, comment.char = &quot;#&quot;)[1:3,1:4] +</code></pre> +<pre><code>## FileName SampleName Factor SampleLong +## 1 ./data/SRR446027_1.fastq.gz M1A M1 Mock.1h.A +## 2 ./data/SRR446028_1.fastq.gz M1B M1 Mock.1h.B +## 3 ./data/SRR446029_1.fastq.gz A1A A1 Avr.1h.A +</code></pre> +<ul> +<li>Structure of <em><code>targets</code></em> file for paired-end (PE) library</li> +</ul> +<pre><code class="language-r">targetspath &lt;- system.file(&quot;extdata&quot;, &quot;targetsPE.txt&quot;, package=&quot;systemPipeR&quot;) +read.delim(targetspath, comment.char = &quot;#&quot;)[1:3,1:5] +</code></pre> +<pre><code>## FileName1 FileName2 SampleName Factor +## 1 ./data/SRR446027_1.fastq.gz ./data/SRR446027_2.fastq.gz M1A M1 +## 2 ./data/SRR446028_1.fastq.gz ./data/SRR446028_2.fastq.gz M1B M1 +## 3 ./data/SRR446029_1.fastq.gz ./data/SRR446029_2.fastq.gz A1A A1 +## SampleLong +## 1 Mock.1h.A +## 2 Mock.1h.B +## 3 Avr.1h.A +</code></pre> +<hr> +<h3 id="i-classfas-fa-box-openi-integration-with-summarizedexperiment"><i class="fas fa-box-open"></i> Integration with <em>SummarizedExperiment</em></h3> +<ul> +<li>Integrates <em>targets</em> files and count table from <em>systemPipeR</em> to a <em>SummarizedExperiment</em> object</li> +</ul> +<pre><code class="language-r">## Create an object with targets file and comparison and count table +sprSE &lt;- SPRdata(targetspath = targetspath, cmp=TRUE) +metadata(sprSE) +# $version +# [1] ‘1.23.9’ +# +# $comparison +# $comparison$CMPset1 +# [,1] [,2] +# [1,] &quot;M1&quot; &quot;A1&quot; +# [2,] &quot;M1&quot; &quot;V1&quot; +# [3,] &quot;A1&quot; &quot;V1&quot; +# [4,] &quot;M6&quot; &quot;A6&quot; + +colData(sprSE) +# DataFrame with 18 rows and 6 columns +# FileName SampleName Factor SampleLong +# &lt;character&gt; &lt;character&gt; &lt;character&gt; &lt;character&gt; +# M1A ./data/SRR446027_1.f.. M1A M1 Mock.1h.A +# M1B ./data/SRR446028_1.f.. M1B M1 Mock.1h.B +# ... ... ... ... ... +# M12B ./data/SRR446040_1.f.. M12B M12 Mock.12h.B +</code></pre> +<hr> +<p>class: inverse, center, middle</p> +<h1 id="i-classfas-fa-codei-live-demo"><i class="fas fa-code"></i> Live Demo</h1> +<hr> +<h2 id="i-classfas-fa-box-openi-install-package"><i class="fas fa-box-open"></i> Install Package</h2> +<p>Install the <strong>systemPipeRdata</strong> package from <a href="http://www.bioconductor.org/packages/release/data/experiment/html/systemPipeRdata.html">Bioconductor</a>:</p> +<pre><code class="language-r">if (!requireNamespace(&quot;BiocManager&quot;, quietly=TRUE)) + install.packages(&quot;BiocManager&quot;) +BiocManager::install(&quot;systemPipeR&quot;) +</code></pre> +<h3 id="i-classfas-fa-booki-load-package-and-documentation"><i class="fas fa-book"></i> Load Package and Documentation</h3> +<p><i class="fas fa-question" style="color:#00758a;"></i> +Load package:</p> +<pre><code class="language-r">library(&quot;systemPipeR&quot;) +</code></pre> +<p><i class="fas fa-question" style="color:#00758a;"></i> +Access help:</p> +<pre><code class="language-r">library(help=&quot;systemPipeR&quot;) +vignette(&quot;systemPipeR&quot;) +</code></pre> +<hr> +<h2 id="i-classfas-fa-codei-quick-start"><i class="fas fa-code"></i> Quick Start</h2> +<h3 id="load-sample-workflow">Load Sample Workflow</h3> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<em>systemPipeRdata</em></p> +<ul> +<li>Helper package to generate with a single command workflow templates for <em>systemPipeR</em></li> +<li>Includes sample data for testing</li> +<li>User can create new workflows or change and extend existing ones</li> +<li>Template Workflows: +<ul> +<li>Sample workflows can be loaded with the <em><code>genWorkenvir</code></em> function from <strong>systemPipeRdata</strong></li> +</ul> +</li> +</ul> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +Generate workflow template:</p> +<pre><code class="language-r">library(systemPipeRdata) +genWorkenvir(workflow=&quot;rnaseq&quot;) +setwd(&quot;rnaseq&quot;) +</code></pre> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +More details about <em>systemPipeRdata</em> package <a href="https://systempipe.org/pages/SPRdata_intro/SPRdata_intro#1">here</a></p> +<hr> +<h2 id="i-classfas-fa-box-openi-install-workflow"><i class="fas fa-box-open"></i> Install Workflow</h2> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +Check the workflow template availability</p> +<pre><code class="language-r">availableWF(github = TRUE) + +# $systemPipeRdata +# [1] &quot;chipseq&quot; &quot;new&quot; &quot;riboseq&quot; &quot;rnaseq&quot; &quot;varseq&quot; +# +# $github +# workflow branches version html description +# 1 systemPipeR/systemPipeChIPseq master release https://github.com/systemPipeR/systemPipeChIPseq Workflow Template +# 2 systemPipeR/systemPipeRIBOseq master release https://github.com/systemPipeR/systemPipeRIBOseq Workflow Template +# 3 systemPipeR/systemPipeRNAseq cluster, master, singleMachine release https://github.com/systemPipeR/systemPipeRNAseq Workflow Template +# 4 systemPipeR/systemPipeVARseq master release https://github.com/systemPipeR/systemPipeVARseq Workflow Template +# 5 systemPipeR/systemPipeCLIPseq master devel https://github.com/systemPipeR/systemPipeCLIPseq Workflow Template +# 6 systemPipeR/systemPipeDeNovo master devel https://github.com/systemPipeR/systemPipeDeNovo Workflow Template +# 7 systemPipeR/systemPipeMetaTrans master devel https://github.com/systemPipeR/systemPipeMetaTrans Workflow Template +# 8 systemPipeR/systemPipeMethylseq master devel https://github.com/systemPipeR/systemPipeMethylseq Workflow Template +</code></pre> +<hr> +<h2 id="i-classfas-fa-mouse-pointeri-dynamic-workflow-template"><i class="fas fa-mouse-pointer"></i> Dynamic Workflow Template</h2> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +Create dynamic Workflow Templates with <em>RStudio</em></p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<code>File -&gt; New File -&gt; R Markdown -&gt; From Template</code> +.center[ +<img src="rstudio.png" height="425px" class="center" /> +]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-run-a-workflow"><i class="fas fa-toolbox"></i> Run a Workflow</h2> +<p>.left-column[</p> +<h3 id="setup">Setup</h3> +<p>]</p> +<p>.right-column[</p> +<pre><code class="language-r">library(systemPipeR) +targetspath &lt;- system.file(&quot;extdata&quot;, &quot;targets.txt&quot;, package=&quot;systemPipeR&quot;) +read.delim(targetspath, comment.char = &quot;#&quot;)[1:4,1:4] +</code></pre> +<pre><code>## FileName SampleName Factor SampleLong +## 1 ./data/SRR446027_1.fastq.gz M1A M1 Mock.1h.A +## 2 ./data/SRR446028_1.fastq.gz M1B M1 Mock.1h.B +## 3 ./data/SRR446029_1.fastq.gz A1A A1 Avr.1h.A +## 4 ./data/SRR446030_1.fastq.gz A1B A1 Avr.1h.B +</code></pre> +<pre><code class="language-r">script &lt;- system.file(&quot;extdata/workflows/rnaseq&quot;, &quot;systemPipeRNAseq.Rmd&quot;, package=&quot;systemPipeRdata&quot;) +</code></pre> +<p>]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-run-a-workflow-1"><i class="fas fa-toolbox"></i> Run a Workflow</h2> +<p>.left-column[</p> +<h3 id="setup-1">Setup</h3> +<h3 id="initwf"><code>initWF</code></h3> +<p>]</p> +<p>.right-column[</p> +<pre><code class="language-r">sysargslist &lt;- initWF(script = script, targets = targetspath, overwrite = TRUE) +# Project started with success: ./SYSproject and SYSconfig.yml were created. +</code></pre> +<p>]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-run-a-workflow-2"><i class="fas fa-toolbox"></i> Run a Workflow</h2> +<p>.left-column[</p> +<h3 id="setup-2">Setup</h3> +<h3 id="initwf-1"><code>initWF</code></h3> +<h3 id="configwf"><code>configWF</code></h3> +<p>]</p> +<p>.right-column[</p> +<pre><code class="language-r">sysargslist &lt;- configWF(sysargslist, input_steps = &quot;1:3&quot;) +sysargslist +# Instance of 'SYSargsList': +# WF Steps: +# 1. Rmarkdown/HTML setting +# 2. Introduction +# 3. Samples and environment settings +# 3.1. Environment settings and input data +# 3.2. Required packages and resources +# 3.3. Experiment definition provided by `targets` file +</code></pre> +<p>]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-run-a-workflow-3"><i class="fas fa-toolbox"></i> Run a Workflow</h2> +<p>.left-column[</p> +<h3 id="setup-3">Setup</h3> +<h3 id="initwf-2"><code>initWF</code></h3> +<h3 id="configwf-1"><code>configWF</code></h3> +<h3 id="runwf"><code>runWF</code></h3> +<p>]</p> +<p>.right-column[</p> +<pre><code class="language-r">sysargslist &lt;- runWF(sysargslist, steps = &quot;1:2&quot;) +# Step: 1: Introduction --&gt; DONE +# Step: 2: Samples and environment settings --&gt; DONE +# Step: 2.1: Environment settings and input data --&gt; DONE +# Step: 2.2: Required packages and resources --&gt; DONE +# Step: 2.3: Experiment definition provided by `targets` file --&gt; DONE +</code></pre> +<pre><code class="language-r">sysargslist &lt;- runWF(sysargslist, steps = &quot;ALL&quot;) +</code></pre> +<p>]</p> +<hr> +<h2 id="i-classfas-fa-toolboxi-run-a-workflow-4"><i class="fas fa-toolbox"></i> Run a Workflow</h2> +<p>.left-column[</p> +<h3 id="setup-4">Setup</h3> +<h3 id="initwf-3"><code>initWF</code></h3> +<h3 id="configwf-2"><code>configWF</code></h3> +<h3 id="runwf-1"><code>runWF</code></h3> +<h3 id="renderreport"><code>renderReport</code></h3> +<p>]</p> +<p>.right-column[</p> +<pre><code class="language-r">sysargslist &lt;- renderReport(sysargslist = sysargslist) +</code></pre> +<p>]</p> +<hr> +<h2 id="how-to-use-pipes-">How to Use Pipes <code>%&gt;%</code></h2> +<p>Consider the following example, in which the steps are the initialization, configuration and running the entire workflow.</p> +<pre><code class="language-r">library(systemPipeR) +sysargslist &lt;- initWF(script =&quot;systemPipeRNAseq.Rmd&quot;, overwrite = TRUE) %&gt;% + configWF(input_steps = &quot;1:6&quot;) %&gt;% + runWF(steps = &quot;1:2&quot;) +</code></pre> +<hr> +<p>class: inverse, center, middle</p> +<h1 id="i-classfas-fa-tasksi-project-updates"><i class="fas fa-tasks"></i> Project Updates</h1> +<hr> +<h3 id="targets-x-summarizedexperiment"><em>targets</em> x <em>SummarizedExperiment</em></h3> +<p><i class="fas fa-check-circle" style="color:#00758a;"></i> +Extension &ldquo;SummarizedExperiment&rdquo; methods:</p> +<pre><code class="language-r">sprSE &lt;- addAssay(sprSE, assay(countMatrix), xName=&quot;countMatrix&quot;) +sprSE &lt;- addMetadata(sprSE, list(targets), xName=&quot;metadata&quot;) +</code></pre> +<p><i class="fas fa-check-circle" style="color:#00758a;"></i> +New Function:</p> +<pre><code class="language-r">## Create empty SummarizedExperiment +sprSE &lt;- SPRdata() + +## Create an object with targets file and comparison and count table +sprSE &lt;- SPRdata(counts = countMatrix, cmp=TRUE, targetspath = targetspath) +metadata(sprSE) +colData(sprSE) +assays(sprSE) +</code></pre> +<hr> +<h2 id="spr-paper">SPR Paper</h2> +<p><i class="fas fa-check-circle" style="color:#00758a;"></i> +<a href="https://www.overleaf.com/project/5e94948a23918a000116311c">Link to draft</a></p> +<p><i class="fas fa-check-circle" style="color:#00758a;"></i> +Added the main points to discuss in the draft</p> +<p><i class="fas fa-arrow-circle-right" style="color:#00758a;"></i> +Writing: Results and introduction</p> +<p><i class="fas fa-circle" style="color:#00758a;"></i> +Improve Graphical Abstract</p> +<p><i class="fas fa-circle" style="color:#00758a;"></i> +Show case?</p> +<hr> +<h2 id="sysargslist"><em>SYSargsList</em></h2> +<p><i class="fas fa-check-circle" style="color:#00758a;"></i> +Explain how <em>SYSargsList</em> is implemented - Vignette</p> +<p>.small[</p> +<table> +<thead> +<tr> +<th>Function Name</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>initWF</code></td> +<td>Constructs <code>SYSargsList</code> workflow control module (S4 object) from script file</td> +</tr> +<tr> +<td><code>configWF</code></td> +<td>Control of which step of the workflow will be run and the generation of the new RMarkdown</td> +</tr> +<tr> +<td><code>runWF</code></td> +<td>Runs all the R chunk define in the RMarkdown file or a subset, e.g. <code>runWF[1:3]</code></td> +</tr> +<tr> +<td><code>renderReport</code></td> +<td>Render Scientific Report based on RMarkdown</td> +</tr> +<tr> +<td><code>renderLog</code></td> +<td>Render logs Report based on RMarkdown</td> +</tr> +<tr> +<td><code>updateWF</code></td> +<td>Recover the <code>SYSargsList</code> workflow previous ran and restarts the WF</td> +</tr> +<tr> +<td><code>plotWF</code></td> +<td>Plot visual workflow designs and topologies with different graphical layouts</td> +</tr> +<tr> +<td><code>statusWF</code></td> +<td>Return the overview of the workflow steps computational status</td> +</tr> +<tr> +<td><code>evalCode</code></td> +<td>Turn eval option <code>TRUE</code> or <code>FALSE</code> on RMarkdown file</td> +</tr> +<tr> +<td><code>tryCL</code></td> +<td>Checks if third-party software or utility is installed and set in the PATH</td> +</tr> +<tr> +<td>]</td> +<td></td> +</tr> +</tbody> +</table> +<p><i class="fas fa-circle" style="color:#00758a;"></i> +Improve <code>statusWF()</code></p> +<hr> +<h2 id="visualization-in-systempiper">Visualization in <em>systemPipeR</em></h2> +<p><i class="fas fa-check-circle" style="color:#00758a;"></i> +Add to vignette (SPR or SPS)</p> +<ul> +<li><code>exploreDDS</code>, <code>exploreDDSplot</code>, <code>GLMplot</code>, <code>MAplot</code>, <code>MDSplot</code>, <code>PCAplot</code>, <code>hclustplot</code>, <code>heatMaplot</code>, <code>tSNEplot</code>, <code>volcanoplot</code></li> +</ul> +<p><i class="fas fa-circle" style="color:#00758a;"></i> +Enrichment analysis and visualization tool for SPR</p> +<ul> +<li>Integration with <code>FGSEA</code></li> +</ul> +<hr> +<h2 id="website">WebSite</h2> +<p><i class="fas fa-check-circle" style="color:#00758a;"></i> +Updated the vignette</p> +<p><i class="fas fa-check-circle" style="color:#00758a;"></i> +Added <em>systemPipeRdata</em> vignette and presentation: <a href="https://systempipe.org/docs/systemPipeRdata/">link</a></p> +<p><i class="fas fa-circle" style="color:#00758a;"></i> +Redirect <a href="http://girke.bioinformatics.ucr.edu/systemPipeR/">http://girke.bioinformatics.ucr.edu/systemPipeR/</a> to new page</p> +<p><i class="fas fa-circle" style="color:#00758a;"></i> +Add content to FAQ section</p> +<p><i class="fas fa-circle" style="color:#00758a;"></i> +Add tutorials videos</p> +<hr> +<p>class: middle</p> +<h1 id="thanks">Thanks!</h1> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +Browse source code at <a href="https://github.com/tgirke/systemPipeR/"> <i class="fab fa-github fa-2x"></i></a></p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +Ask a question about systemPipeR at Bioconductor Support Page +<a href="https://support.bioconductor.org/t/systempiper/"><i class="far fa-question-circle fa-2x"></i></a></p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<em>systemPipeRdata</em> at <a href="http://www.bioconductor.org/packages/devel/bioc/html/systemPipeR.html">Bioconductor</a></p> +<p><i class="fas fa-hand-point-right" style="color:#00758a;"></i> +<a href="https://systempipe.org/">https://systempipe.org/</a></p> + + + + + + diff --git a/public/presentations/spr/spr_project/index.html b/public/presentations/spr/spr_project/index.html new file mode 100644 index 000000000..c8e716f71 --- /dev/null +++ b/public/presentations/spr/spr_project/index.html @@ -0,0 +1,1430 @@ + + + + + + + + + + + + + + + + + + + +_systemPipeR_ | sysPipe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + +

layout: true +background-image: url(https://raw.githubusercontent.com/tgirke/systemPipeR/gh-pages/images/systemPipeR.png) +background-position: 99% 1% +background-size: 10%

+
+

class: middle

+

Outline

+

Introduction

+

Design

+

How to run a Workflow

+

Workflows Tutorial

+

Live Demo

+ + + +
+

class: inverse, center, middle

+

Introduction

+ +
+

Introduction

+

+systemPipeR provides a suite of R/Bioconductor packages for designing, building and running end-to-end analysis workflows on local machines, HPC clusters and cloud systems, while generating at the same time publication quality analysis reports

+

+systemPipeR offers many utilities to build, control, and execute +workflows entirely from R

+

+The environment takes advantage of central community S4 classes of the Bioconductor ecosystem

+

+Workflows are managed by generic workflow management containers supporting both analysis routines implemented in R code and/or command-line software

+

+Simple annotation system targets

+ +
+

systemPipeR’s Core Functionalities

+

.center[ + +]

+ +
+

Structural Features

+

– +.left-column[

+

WF infrastructure

+

]

+

.right-column[ +systemPipeR offers many utilities to build, control, and execute +workflows entirely from R. The environment takes advantage of central community S4 classes +of the Bioconductor ecosystem. Workflows are managed by generic workflow management +containers supporting both analysis routines implemented in R code and/or command-line +software. A layered monitoring infrastructure is provided to design, control and debug each +step in a workflow. The run environment allows to execute workflows entirely or with a +intuitive to use step-wise execution syntax using R’s standard subsetting syntax +(runWF(sys[1:3])) or pipes (%>%). +]

+
+

Structural Features

+

.left-column[

+

WF infrastructure

+

Command-line support

+

]

+

.right-column[ +An important feature of systemPipeR is support for +running command-line software by adopting the Common Workflow Language (CWL). The +latter is a widely adopted community standard for describing analysis workflows. This design +offers several advantages such as:

+

+seamless integration of most command-line software

+

+support to run systemPipeR workflows from R or many other popular computer languages

+

+efficient sharing of workflows across different workflow environments. +]

+
+

Structural Features

+

.left-column[

+

WF infrastructure

+

Command-line support

+

Parallel evaluation

+

]

+

.right-column[ +The processing time of workflows can be greatly reduced by making use +of parallel evaluations across several CPU cores on single machines, or multiple nodes of +computer clusters and cloud-based systems. systemPipeR simplifies these parallelization tasks +without creating any limitations for users who do not have access to high-performance +computer resources +]

+
+

Structural Features

+

.left-column[

+

WF infrastructure

+

Command-line support

+

Parallel evaluation

+

Reports infrastructure

+

]

+

.right-column[ +systemPipeR’s reporting infrastructure +includes three types of interconnected reports each serving a different purpose:

+

+a scientific report, based on R Markdown, contains all scientifically relevant results

+

+a technical report captures all technical information important for each workflow step, including parameter +settings, software versions, and warning/error messages, etc.

+

+a visual report depicts the entire workflow topology including its run status in form of a workflow graph

+

]

+
+

Structural Features

+

.left-column[

+

WF infrastructure

+

Command-line support

+

Parallel evaluation

+

Reports infrastructure

+

Shiny Web Interface

+

]

+

.right-column[ +Recently, the systemPipeShiny package has been added that allows +users to design workflows in an interactive graphical user interface (GUI). In addition to +designing workflows, this new interface allows users to run and to monitor workflows in an +intuitive manner without the need of knowing R. +]

+
+

Structural Features

+

.left-column[

+

WF infrastructure

+

Command-line support

+

Parallel evaluation

+

Reports infrastructure

+

Shiny Web Interface

+

Workflow Templates

+

]

+

.right-column[ +A rich set of end-to-end workflow templates is provided by this +project for a wide range omics applications. In addition, users can contribute and share their +workflows with the community by submitting them to a central GitHub repository +]

+ +
+

Important Functions

+

.small[

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Function NameDescriptionCategory
genWorkenvirGenerates workflow templates provided by systemPipeRdata helper package / or from the individuals’ pipelines packagesAccessory
loadWorkflowConstructs SYSargs2 object from CWL param and targets filesSYSargs2
renderWFPopulate all the command-line in an SYSargs2 objectSYSargs2
subsetWFSubsetting SYSargs2 class slotsSYSargs2
runCommandlineExecutes command-line software on samples and parameters specified in SYSargs2 objectSYSargs2
clusterRunRuns command-line software in parallel mode on a computer clusterSYSargs2
writeTargetsoutWrite updated targets out to file/Generate targets file with referenceSYSargs2
output_updateUpdates the output files paths in the SYSargs2 objectSYSargs2
singleYMLCreate automatically the param.ymlSYSargs2
createWFCreate automatically param.cwl and the param.yml based on the command lineSYSargs2
config.paramCustom configuration of the CWL param files from RSYSargs2
]
+
+

Important Functions

+

.small[

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Function NameDescriptionCategory
initWFConstructs SYSargsList workflow control module (S4 object) from script fileSYSargsList
configWFControl of which step of the workflow will be run and the generation of the new RMarkdownSYSargsList
runWFRuns all the R chunk define in the RMarkdown file or a subset, e.g. runWF[1:3]SYSargsList
renderReportRender Scientific Report based on RMarkdownSYSargsList
subsetRmdWrite updated subset Rmarkdown of R chunk with text associate in the step selectedSYSargsList
plotWFPlot visual workflow designs and topologies with different graphical layoutsSYSargsList
statusWFReturn the overview of the workflow steps computational statusSYSargsList
evalCodeTurn eval option TRUE or FALSE on RMarkdown fileAccessory
tryCLChecks if third-party software or utility is installed and set in the PATHAccessory
]
+ + + +
+

class: inverse, center, middle

+

Design

+
+

Workflow Management Solutions

+

+systemPipeR central concept for designing workflows is workflow +management containers (S4 class)

+

+SYSargs2 controls workflow steps with input/output file operations

+

+SYSargs2 requires a targets and a set of workflow definition files (here param.cwl and param.yml)

+ + +

+SYSargsList objects organize one or many SYSargs2 +containers in a single compound object capturing all information required to run, control and +monitor complex workflows from start to finish

+

.center[ + +]

+
+

Directory Structure

+

The workflow templates generated by genWorkenvir contain the following preconfigured directory structure:

+

+
+

Workflows Collection

+

Browse pipelines that are currently available as part of the systemPipeR toolkit

+

.small[

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WorkFlowDescriptionVersionGitHubCI Testing
systemPipeChIPseqChIP-Seq Workflow Templatev1.0 R-CMD-check
systemPipeRIBOseqRIBO-Seq Workflow Templatev1.0 R-CMD-check
systemPipeRNAseqRNA-Seq Workflow Templatev1.0 R-CMD-check
systemPipeVARseqVAR-Seq Workflow Templatev1.0 R-CMD-check
systemPipeMethylseqMethyl-Seq Workflow Templatedevel R-CMD-check
systemPipeDeNovoDe novo transcriptome assembly Workflow Templatedevel R-CMD-check
systemPipeCLIPseqCLIP-Seq Workflow Templatedevel R-CMD-check
systemPipeMetaTransMetatranscriptomic Sequencing Workflow Templatedevel R-CMD-check
]
+
+

class: inverse, center, middle

+

CWL

+
+

CWL

+

TODO: +Add section with CWL details

+

.center[ + +]

+
+

CWL and SPR

+

TODO: +How to use CWL definition with systemPipeR

+
    +
  • SYSargs2 instances are constructed from a targets file and two param file +
      +
    • hisat2-mapping-se.cwl file contains the settings for running command-line software
    • +
    • hisat2-mapping-se.yml file define all the variables to be input in the specific command-line step
    • +
    +
  • +
+
targets <- system.file("extdata", "targets.txt", package="systemPipeR")
+dir_path <- system.file("extdata/cwl/hisat2/hisat2-se", package="systemPipeR")
+align <- loadWF(targets=targets, wf_file="hisat2-mapping-se.cwl",
+                   input_file="hisat2-mapping-se.yml", dir_path=dir_path)
+align <- renderWF(align, inputvars=c(FileName="_FASTQ_PATH_", SampleName="_SampleName_"))
+
+## Instance of 'SYSargs2':
+##    Slot names/accessors: 
+##       targets: 18 (M1A...V12B), targetsheader: 4 (lines)
+##       modules: 2
+##       wf: 0, clt: 1, yamlinput: 7 (components)
+##       input: 18, output: 18
+##       cmdlist: 18
+##    WF Steps:
+##       1. hisat2-mapping-se.cwl (rendered: TRUE)
+
+
+

CWL and SPR

+

SYSargs2 instance

+
    +
  • Slots and accessor functions have the same names
  • +
+
names(align)
+#  [1] "targets"       "targetsheader" "modules"       "wf"            "clt"          
+#  [6] "yamlinput"     "cmdlist"       "input"         "output"        "cwlfiles"     
+# [11] "inputvars" 
+
+
    +
  • cmdlist return command-line arguments for the specific software, here HISAT2 for the first sample
  • +
+
cmdlist(align)[1]
+# $M1A
+# $M1A$`hisat2-mapping-se.cwl`
+# [1] "hisat2 -S results/M1A.sam  -x ./data/tair10.fasta  -k 1  --min-intronlen 30  --max-intronlen 3000  -U ./data/SRR446027_1.fastq.gz --threads 4"
+
+
    +
  • The output components of SYSargs2 define all the expected output files for each step in the workflow; some of which are the input for the next workflow step
  • +
+
output(align)[1]
+# $M1A
+# $M1A$`hisat2-mapping-se.cwl`
+# [1] "results/M1A.sam"
+
+
+

class: inverse, center, middle

+

Metadata

+
+

Targets file organizes samples

+
    +
  • Structure of targets file for single-end (SE) library
  • +
+
targetspath <- system.file("extdata", "targets.txt", package="systemPipeR")
+read.delim(targetspath, comment.char = "#")[1:3,1:4]
+
+
##                      FileName SampleName Factor SampleLong
+## 1 ./data/SRR446027_1.fastq.gz        M1A     M1  Mock.1h.A
+## 2 ./data/SRR446028_1.fastq.gz        M1B     M1  Mock.1h.B
+## 3 ./data/SRR446029_1.fastq.gz        A1A     A1   Avr.1h.A
+
+
    +
  • Structure of targets file for paired-end (PE) library
  • +
+
targetspath <- system.file("extdata", "targetsPE.txt", package="systemPipeR")
+read.delim(targetspath, comment.char = "#")[1:3,1:5]
+
+
##                     FileName1                   FileName2 SampleName Factor
+## 1 ./data/SRR446027_1.fastq.gz ./data/SRR446027_2.fastq.gz        M1A     M1
+## 2 ./data/SRR446028_1.fastq.gz ./data/SRR446028_2.fastq.gz        M1B     M1
+## 3 ./data/SRR446029_1.fastq.gz ./data/SRR446029_2.fastq.gz        A1A     A1
+##   SampleLong
+## 1  Mock.1h.A
+## 2  Mock.1h.B
+## 3   Avr.1h.A
+
+
+

Integration with SummarizedExperiment

+
    +
  • Integrates targets files and count table from systemPipeR to a SummarizedExperiment object
  • +
+
## Create an object with targets file and comparison and count table
+sprSE <- SPRdata(targetspath = targetspath, cmp=TRUE)
+metadata(sprSE)
+# $version
+# [1] ‘1.23.9’
+# 
+# $comparison
+# $comparison$CMPset1
+#       [,1]  [,2] 
+#  [1,] "M1"  "A1" 
+#  [2,] "M1"  "V1" 
+#  [3,] "A1"  "V1" 
+#  [4,] "M6"  "A6" 
+
+colData(sprSE)
+# DataFrame with 18 rows and 6 columns
+#                    FileName  SampleName      Factor  SampleLong 
+#                 <character> <character> <character> <character> 
+# M1A  ./data/SRR446027_1.f..         M1A          M1   Mock.1h.A 
+# M1B  ./data/SRR446028_1.f..         M1B          M1   Mock.1h.B 
+# ...                     ...         ...         ...         ... 
+# M12B ./data/SRR446040_1.f..        M12B         M12  Mock.12h.B
+
+
+

class: inverse, center, middle

+

Live Demo

+
+

Install Package

+

Install the systemPipeRdata package from Bioconductor:

+
if (!requireNamespace("BiocManager", quietly=TRUE))
+    install.packages("BiocManager")
+BiocManager::install("systemPipeR")
+
+

Load Package and Documentation

+

+Load package:

+
library("systemPipeR")
+
+

+Access help:

+
library(help="systemPipeR")
+vignette("systemPipeR")
+
+
+

Quick Start

+

Load Sample Workflow

+

+systemPipeRdata

+
    +
  • Helper package to generate with a single command workflow templates for systemPipeR
  • +
  • Includes sample data for testing
  • +
  • User can create new workflows or change and extend existing ones
  • +
  • Template Workflows: +
      +
    • Sample workflows can be loaded with the genWorkenvir function from systemPipeRdata
    • +
    +
  • +
+

+Generate workflow template:

+
library(systemPipeRdata)
+genWorkenvir(workflow="rnaseq")
+setwd("rnaseq")
+
+

+More details about systemPipeRdata package here

+
+

Install Workflow

+

+Check the workflow template availability

+
availableWF(github = TRUE)
+
+# $systemPipeRdata
+# [1] "chipseq" "new"     "riboseq" "rnaseq"  "varseq" 
+# 
+# $github
+#                          workflow                       branches version                                               html       description
+# 1   systemPipeR/systemPipeChIPseq                         master release   https://github.com/systemPipeR/systemPipeChIPseq Workflow Template
+# 2   systemPipeR/systemPipeRIBOseq                         master release   https://github.com/systemPipeR/systemPipeRIBOseq Workflow Template
+# 3    systemPipeR/systemPipeRNAseq cluster, master, singleMachine release    https://github.com/systemPipeR/systemPipeRNAseq Workflow Template
+# 4    systemPipeR/systemPipeVARseq                         master release    https://github.com/systemPipeR/systemPipeVARseq Workflow Template
+# 5   systemPipeR/systemPipeCLIPseq                         master   devel   https://github.com/systemPipeR/systemPipeCLIPseq Workflow Template
+# 6    systemPipeR/systemPipeDeNovo                         master   devel    https://github.com/systemPipeR/systemPipeDeNovo Workflow Template
+# 7 systemPipeR/systemPipeMetaTrans                         master   devel https://github.com/systemPipeR/systemPipeMetaTrans Workflow Template
+# 8 systemPipeR/systemPipeMethylseq                         master   devel https://github.com/systemPipeR/systemPipeMethylseq Workflow Template
+
+
+

Dynamic Workflow Template

+

+Create dynamic Workflow Templates with RStudio

+

+File -> New File -> R Markdown -> From Template +.center[ + +]

+
+

Run a Workflow

+

.left-column[

+

Setup

+

]

+

.right-column[

+
library(systemPipeR)
+targetspath <- system.file("extdata", "targets.txt", package="systemPipeR") 
+read.delim(targetspath, comment.char = "#")[1:4,1:4]
+
+
##                      FileName SampleName Factor SampleLong
+## 1 ./data/SRR446027_1.fastq.gz        M1A     M1  Mock.1h.A
+## 2 ./data/SRR446028_1.fastq.gz        M1B     M1  Mock.1h.B
+## 3 ./data/SRR446029_1.fastq.gz        A1A     A1   Avr.1h.A
+## 4 ./data/SRR446030_1.fastq.gz        A1B     A1   Avr.1h.B
+
+
script <- system.file("extdata/workflows/rnaseq", "systemPipeRNAseq.Rmd", package="systemPipeRdata")
+
+

]

+
+

Run a Workflow

+

.left-column[

+

Setup

+

initWF

+

]

+

.right-column[

+
sysargslist <- initWF(script = script, targets = targetspath, overwrite = TRUE)
+# Project started with success: ./SYSproject and SYSconfig.yml were created.
+
+

]

+
+

Run a Workflow

+

.left-column[

+

Setup

+

initWF

+

configWF

+

]

+

.right-column[

+
sysargslist <- configWF(sysargslist, input_steps = "1:3")
+sysargslist
+# Instance of 'SYSargsList':
+#    WF Steps:
+# 1. Rmarkdown/HTML setting
+# 2. Introduction
+# 3. Samples and environment settings
+#     3.1. Environment settings and input data
+#     3.2. Required packages and resources
+#     3.3. Experiment definition provided by `targets` file
+
+

]

+
+

Run a Workflow

+

.left-column[

+

Setup

+

initWF

+

configWF

+

runWF

+

]

+

.right-column[

+
sysargslist <- runWF(sysargslist, steps = "1:2")
+# Step: 1: Introduction --> DONE 
+# Step: 2: Samples and environment settings --> DONE 
+# Step: 2.1: Environment settings and input data --> DONE 
+# Step: 2.2: Required packages and resources --> DONE 
+# Step: 2.3: Experiment definition provided by `targets` file --> DONE 
+
+
sysargslist <- runWF(sysargslist, steps = "ALL")
+
+

]

+
+

Run a Workflow

+

.left-column[

+

Setup

+

initWF

+

configWF

+

runWF

+

renderReport

+

]

+

.right-column[

+
sysargslist <- renderReport(sysargslist = sysargslist)
+
+

]

+
+

How to Use Pipes %>%

+

Consider the following example, in which the steps are the initialization, configuration and running the entire workflow.

+
library(systemPipeR)
+sysargslist <- initWF(script ="systemPipeRNAseq.Rmd", overwrite = TRUE) %>%
+    configWF(input_steps = "1:6") %>%
+    runWF(steps = "1:2")
+
+
+

class: inverse, center, middle

+

Project Updates

+
+

targets x SummarizedExperiment

+

+Extension “SummarizedExperiment” methods:

+
sprSE <- addAssay(sprSE, assay(countMatrix), xName="countMatrix")
+sprSE <- addMetadata(sprSE, list(targets), xName="metadata")
+
+

+New Function:

+
## Create empty SummarizedExperiment
+sprSE <- SPRdata()
+
+## Create an object with targets file and comparison and count table
+sprSE <- SPRdata(counts = countMatrix, cmp=TRUE, targetspath = targetspath)
+metadata(sprSE)
+colData(sprSE)
+assays(sprSE)
+
+
+

SPR Paper

+

+Link to draft

+

+Added the main points to discuss in the draft

+

+Writing: Results and introduction

+

+Improve Graphical Abstract

+

+Show case?

+
+

SYSargsList

+

+Explain how SYSargsList is implemented - Vignette

+

.small[

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Function NameDescription
initWFConstructs SYSargsList workflow control module (S4 object) from script file
configWFControl of which step of the workflow will be run and the generation of the new RMarkdown
runWFRuns all the R chunk define in the RMarkdown file or a subset, e.g. runWF[1:3]
renderReportRender Scientific Report based on RMarkdown
renderLogRender logs Report based on RMarkdown
updateWFRecover the SYSargsList workflow previous ran and restarts the WF
plotWFPlot visual workflow designs and topologies with different graphical layouts
statusWFReturn the overview of the workflow steps computational status
evalCodeTurn eval option TRUE or FALSE on RMarkdown file
tryCLChecks if third-party software or utility is installed and set in the PATH
]
+

+Improve statusWF()

+
+

Visualization in systemPipeR

+

+Add to vignette (SPR or SPS)

+
    +
  • exploreDDS, exploreDDSplot, GLMplot, MAplot, MDSplot, PCAplot, hclustplot, heatMaplot, tSNEplot, volcanoplot
  • +
+

+Enrichment analysis and visualization tool for SPR

+
    +
  • Integration with FGSEA
  • +
+
+

WebSite

+

+Updated the vignette

+

+Added systemPipeRdata vignette and presentation: link

+

+Redirect http://girke.bioinformatics.ucr.edu/systemPipeR/ to new page

+

+Add content to FAQ section

+

+Add tutorials videos

+
+

class: middle

+

Thanks!

+

+Browse source code at

+

+Ask a question about systemPipeR at Bioconductor Support Page +

+

+systemPipeRdata at Bioconductor

+

+https://systempipe.org/

+ + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/presentations/sps/sps_intro/index.html b/public/presentations/sps/sps_intro/index.html new file mode 100644 index 000000000..67caab476 --- /dev/null +++ b/public/presentations/sps/sps_intro/index.html @@ -0,0 +1,632 @@ + + + + + + + + + + + + + + + + + + + +![](https://raw.githubusercontent.com/systemPipeR/systemPipeShiny/master/inst/app/www/img/sps_small.png){width=1in} +<br/>_systemPipeShiny_ + | sysPipe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + +

layout: true +background-image: url(https://raw.githubusercontent.com/systemPipeR/systemPipeShiny/master/inst/app/www/img/sps_small.png) +background-position: 100% 0% +background-size: 10%

+ + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/search/index.html b/public/search/index.html index 3dde1aa8d..b0ba51ae0 100644 --- a/public/search/index.html +++ b/public/search/index.html @@ -51,8 +51,8 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+
+
+ + + + + +
+ + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+

SPR Docker container

+ + +
+

Guidelines from bioconductor_docker.

+
+

Running the systemPipeR with Docker

+

Get a copy of the public docker image

+
docker pull systempipe/systempipe_docker:latest
+
+

To run RStudio Server:

+
docker run -e PASSWORD=systemPipe -p 8787:8787 \
+        systempipe/systempipe_docker:latest
+
+

You can then open a web browser pointing to your docker host on +port 8787. If you’re on Linux and using default settings, the docker +host is 127.0.0.1 (or localhost, so the full URL to RStudio would +be http://localhost:8787). If you are on Mac or Windows and running +Docker Toolbox, you can determine the docker host with the +docker-machine ip default command.

+

In the above command, -e PASSWORD= is setting the RStudio password +and is required by the RStudio Docker image. It can be whatever you +like except it cannot be rstudio. Log in to RStudio with the +username rstudio and whatever password was specified, in this +example systemPipe.

+

To run R from the command line:

+
docker run -it --user rstudio systempipe/systempipe_docker:latest R
+
+

To open a Bash shell on the container:

+
docker run -it --user rstudio systempipe/systempipe_docker:latest bash
+
+ + + + + + + + + + + + + + +
+
+

Install

+

Prerequisites: +Linux +Mac +Windows

+

Instructions here on how to install Docker Engine on Ubuntu.

+
sudo apt-get update
+sudo apt-get install \
+    apt-transport-https \
+    ca-certificates \
+    curl \
+    gnupg
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
+echo \
+  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
+  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
+sudo apt-get update
+sudo apt-get install docker-ce docker-ce-cli containerd.io
+ 
+## Verify that Docker Engine is installed correctly by running the hello-world image.
+sudo docker run hello-world
+
+

Uninstall

+
sudo apt-get remove docker docker-engine docker.io containerd runc
+
+
+
+

Docker Hub Account

+

To be able to share a custom image, please go to https://hub.docker.com and +create a free account.

+
+
+

Log in to the Docker Hub locally

+

Login with your Docker ID to push and pull images from Docker Hub. If you don’t +have a Docker ID, head over to https://hub.docker.com to create one.

+
docker login
+# Username: XXXX
+# Password: xxx
+# Login Succeeded
+
+
+
+

Run Docker

+
docker run-dP systempipe/systempipe_docker:latest
+
+

Make sure the container is running:

+
docker ps
+# CONTAINER ID   IMAGE                                    COMMAND   CREATED         STATUS         PORTS                     # NAMES
+#5d007f66a7b3   systempipe/systempipe_docker:latest   "/init"   5 minutes ago   Up 5 minutes   0.0.0.0:49153->8787/tcp   determined_easle
+
+

Login to the container

+

Please check the NAMES in this example, determined_easle, to login into the container.

+
docker exec -it determined_easle /bin/bash
+
+

Other alternatives to run the container

+

To run RStudio Server:

+
docker run -e PASSWORD=systemPipe -p 8787:8787 \
+    systempipe/systempipe_docker:latest
+
+

To run R from the command line:

+
docker run -it --user rstudio systempipe/systempipe_docker:latest R
+
+

To open a Bash shell on the container:

+
docker run -it --user rstudio systempipe/systempipe_docker:latest bash
+
+

Check R Version into the container

+
R --version
+
+

Stop Docker

+
docker stop determined_easle
+
+
+
+

Create your first repository Link

+

Create a repository:

+
    +
  • Sign in to Docker Hub.
  • +
  • Click Create a Repository on the Docker Hub welcome page:
  • +
  • Name it /my-repo.
  • +
  • Click Create.
  • +
+

Build and push a container image to Docker Hub from your computer

+

Start by creating a Dockerfile to specify your application

+
mkdir docker_test
+cd docker_test
+touch Dockerfile
+
+
# Docker inheritance
+FROM systempipe/systempipe_docker:latest
+
+## Install BiocStyle
+RUN R -e 'BiocManager::install("BiocStyle")'
+
+# Install required Bioconductor package from devel version
+RUN R -e 'BiocManager::install("tgirke/systemPipeR")'
+RUN R -e 'BiocManager::install("tgirke/systemPipeRdata")'
+
+WORKDIR /home/rstudio/SPRojects
+
+COPY --chown=rstudio:rstudio . /home/rstudio/SPRojects
+
+# Metadata
+LABEL name="systempipe/systempipe_docker" \
+      version=$BIOCONDUCTOR_DOCKER_systempipe \
+      url="https://github.com/systemPipeR/systempipe/systempipe_docker" \
+      vendor="systemPipeR Project" \
+      maintainer="email@gmail.com" \
+      description="Bioconductor docker image containing the systemPipeR Project" \
+      license="Artistic-2.0"
+
+

Run docker build to build your Docker image

+
docker build -t systempipe/systempipe_docker . 
+
+

Run docker run to test your Docker image locally

+
docker run -e PASSWORD=systemPipe -p 8787:8787 systempipe/systempipe_docker:latest
+
+

Run docker push to push your Docker image to Docker Hub

+
docker push systempipe/systempipe_docker
+
+
    +
  • Your repository in Docker Hub should now display a new latest tag under Tags
  • +
+
+
+

Make changes to the container and Create the new image

+

Create a folder, for example:

+
docker run -dP systempipe/systempipe_docker
+docker ps ## To check the NAME <lucid_grothendieck>
+docker exec -it lucid_grothendieck /bin/bash
+root@33c758eb1626:/# R
+
+
setwd("home/rstudio/")
+systemPipeRdata::genWorkenvir("rnaseq")
+
+
exit
+docker commit -m "Added rnaseq template" -a "Dani Cassol" lucid_grothendieck dcassol/systempipeworkshop2021:rnaseq
+docker push systempipe/systempipe_docker:rnaseq
+
+

Run the new image:

+
docker run -e PASSWORD=systemPipe -p 8787:8787 systempipe/systempipe_docker:rnaseq
+
+
+
+

Commands

+

List which docker machines are available locally

+

{bash, eval=FALSE}docker images

+

List running containers

+

{bash, eval=FALSE}docker ps

+

List all containers

+

{bash, eval=FALSE}docker ps -a

+

Resume a stopped container

+

{bash, eval=FALSE}docker start <CONTAINER ID>

+

Shell into a running container

+

{bash, eval=FALSE}docker exec -it <CONTAINER ID> /bin/bash

+

Stop OR remove a cointainer

+

{bash, eval=FALSE}docker stop <CONTAINER ID> +{bash, eval=FALSE}docker rm <CONTAINER ID>

+

Remove a image

+

{bash, eval=FALSE}docker rmi dcassol/systempipeworkshop2021:rnaseq

+
+
+

Docker and GitHub Actions

+
    +
  1. To create a new token, go to Docker Hub Settings
  2. +
+

1.1. Account Settings » Security » New Access Token +1.2. Add Access Token Description » Create +1.3. Copy the Access Token » Copy and Close

+
    +
  1. Go to the Repository at GitHub
  2. +
+

2.1. Settings > Secrets > New repository secret +2.2. Create a new secret with the name DOCKER_HUB_USERNAME and your Docker ID as value +2.3. Click at Add secret +2.4. Create a new secret with the name DOCKER_HUB_ACCESS_TOKEN and your Personal Access Token (PAT) as value (generated in the previous step)

+
    +
  1. Set up the GitHub Actions workflow
  2. +
+
    steps:
+    
+      - name: Checkout Repo 
+        uses: actions/checkout@v2
+
+      - name: Login to Docker Hub
+        uses: docker/login-action@v1
+        with:
+          username: ${{ secrets.DOCKER_HUB_USERNAME }}
+          password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
+
+
+
+

Common Problems

+
## Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/auth: dial unix /var/run/docker.sock: connect: permission denied
+
+

Solution:

+
sudo chmod 666 /var/run/docker.sock
+
+
+
+

Singularity Container

+

Please download the Docker image of systemPipe, as follow:

+
singularity pull docker://systempipe/systempipe_docker:latest
+
+

You can also use the build command to download pre-built images from Docker. +Unlike pull, build will convert the image to the latest Singularity image format after +downloading it.

+
singularity build systempipe_docker_latest.sif docker://systempipe/systempipe_docker:latest
+
+

To run the container:

+
singularity shell systempipe_docker_latest.sif
+
+
+ + + +
+ + + +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/sp/spr/spr_funcs/index.html b/public/sp/spr/spr_funcs/index.html index 324d2627e..65beb5e93 100644 --- a/public/sp/spr/spr_funcs/index.html +++ b/public/sp/spr/spr_funcs/index.html @@ -54,8 +54,8 @@ - - + +