From 7dbd583e6c595925d68eb444ac4dbd055a526dd5 Mon Sep 17 00:00:00 2001 From: ekiernan <55763654+ekiernan@users.noreply.github.com> Date: Mon, 29 Jul 2024 18:03:35 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=207245d?= =?UTF-8?q?1411a31a6b7d1c6adcca02baaa6a5b4fe58=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 4 ++-- assets/js/1051bc1f.08f18222.js | 1 + assets/js/1051bc1f.15ce545b.js | 1 - assets/js/1944a93c.0812685a.js | 1 - assets/js/1944a93c.df584eb1.js | 1 + assets/js/1d76e1a6.4a1320f9.js | 1 + assets/js/1d76e1a6.b1ab4288.js | 1 - assets/js/{1e8f752d.a5a71e23.js => 1e8f752d.ab5e3563.js} | 2 +- assets/js/252f9d1d.18d7d594.js | 1 + assets/js/252f9d1d.8059da2e.js | 1 - assets/js/{3611659f.be4d2d01.js => 3611659f.02bf6dbc.js} | 2 +- assets/js/3c43061f.88bd0d3f.js | 1 - assets/js/3c43061f.965f2323.js | 1 + assets/js/3cb45397.0dd032d0.js | 1 + assets/js/3cb45397.cc823b41.js | 1 - assets/js/46806d1e.7eed8d22.js | 1 - assets/js/46806d1e.88fbbb6a.js | 1 + assets/js/48e25e22.44c221f2.js | 1 + assets/js/48e25e22.8c0abf1d.js | 1 - assets/js/48f9123e.6f6763c9.js | 1 - assets/js/48f9123e.d8e8bd7e.js | 1 + assets/js/4adf0bd4.2972acf9.js | 1 + assets/js/4adf0bd4.545b7717.js | 1 - assets/js/4d83ad88.bd67b869.js | 1 + assets/js/4d83ad88.be3ad153.js | 1 - assets/js/517ae54e.822d3d00.js | 1 - assets/js/517ae54e.9985ff95.js | 1 + assets/js/5291e196.01c9834a.js | 1 + assets/js/5291e196.575211b0.js | 1 - assets/js/5aaaf7e9.0349c4c0.js | 1 + assets/js/5aaaf7e9.4cc9ed35.js | 1 - assets/js/60249a3e.430437cf.js | 1 - assets/js/60249a3e.9ac5037f.js | 1 + assets/js/636516e9.92380fb9.js | 1 - assets/js/636516e9.eaaa0705.js | 1 + assets/js/644602c7.2122cfbb.js | 1 + assets/js/644602c7.eb79bd4b.js | 1 - assets/js/66239a34.23894ab8.js | 1 - assets/js/66239a34.9e3b8eff.js | 1 + assets/js/68037889.16ecb038.js | 1 - assets/js/68037889.196f4031.js | 1 + assets/js/69942e7f.0fd5ecac.js | 1 + assets/js/69942e7f.88671ab1.js | 1 - assets/js/6ea7fab5.7d9b179d.js | 1 + assets/js/6ea7fab5.e8ff9f10.js | 1 - assets/js/712084b6.b982be50.js | 1 + assets/js/712084b6.f4a65c91.js | 1 - assets/js/724ea057.636f5304.js | 1 - assets/js/724ea057.fecb38ee.js | 1 + assets/js/7485ae2a.5f867c0a.js | 1 - assets/js/7485ae2a.e75a9c32.js | 1 + assets/js/7ecc6316.79eb4937.js | 1 - assets/js/7ecc6316.b967bc9e.js | 1 + assets/js/7f301dda.45751288.js | 1 - assets/js/7f301dda.4e4d17dd.js | 1 + assets/js/807f0e73.8116324d.js | 1 - assets/js/807f0e73.d0ca0735.js | 1 + assets/js/8599e9c8.6839fc8f.js | 1 - assets/js/8599e9c8.e77c3fd1.js | 1 + assets/js/8a4527e6.054431df.js | 1 - assets/js/8a4527e6.efb042cb.js | 1 + assets/js/8bc22d14.fad6993e.js | 1 + assets/js/8ce4a3d8.3b8d87cd.js | 1 + assets/js/8ce4a3d8.dfe3b5df.js | 1 - assets/js/9434f829.12b2f91e.js | 1 - assets/js/9434f829.d59c19be.js | 1 + assets/js/95cfac0d.c42f4726.js | 1 + assets/js/95cfac0d.f636b027.js | 1 - assets/js/992e1bf4.3d492e95.js | 1 + assets/js/992e1bf4.440f4035.js | 1 - assets/js/a25de53b.880f667b.js | 1 + assets/js/a25de53b.b8b55705.js | 1 - assets/js/{a4b593f1.7d3d7c33.js => a4b593f1.63d49d97.js} | 2 +- assets/js/a86f760f.d5729ab8.js | 1 + assets/js/a86f760f.dc802eb8.js | 1 - assets/js/aa3a360a.ba5e7896.js | 1 + assets/js/aa3a360a.e045d7b3.js | 1 - assets/js/aab47c2c.edc10984.js | 1 - assets/js/aab47c2c.f933109f.js | 1 + assets/js/abeb946f.6d092afe.js | 1 + assets/js/abeb946f.cd6669e0.js | 1 - assets/js/aefe7281.5a304a9c.js | 1 + assets/js/aefe7281.8f68874d.js | 1 - assets/js/b5a0e922.59bbfd4d.js | 1 + assets/js/b5a0e922.c1c6970e.js | 1 - assets/js/b93413c3.539706c7.js | 1 + assets/js/b93413c3.e3ceae78.js | 1 - assets/js/bc1b9af3.25762b36.js | 1 + assets/js/bc1b9af3.a97b1817.js | 1 - assets/js/c037817c.9a7214b8.js | 1 - assets/js/c037817c.d69b86c9.js | 1 + assets/js/c0c11533.80cdd9ae.js | 1 - assets/js/c0c11533.ef246d04.js | 1 + assets/js/c4d74fc9.0f04618c.js | 1 - assets/js/c4d74fc9.bc3545ad.js | 1 + assets/js/c7408b60.208bb159.js | 1 - assets/js/c7408b60.a101f51e.js | 1 + assets/js/c7ae9aa9.ab5cbc9f.js | 1 + assets/js/c7ae9aa9.d3ac533c.js | 1 - assets/js/c8da6fe9.97779c39.js | 1 + assets/js/c8da6fe9.9e82d7e8.js | 1 - assets/js/cf9b05d1.53f63e12.js | 1 + assets/js/cf9b05d1.593c3593.js | 1 - assets/js/e214e9f8.b2460572.js | 1 - assets/js/e214e9f8.e46164ac.js | 1 + assets/js/e5dab2e2.414bc708.js | 1 + assets/js/e5dab2e2.70eea17b.js | 1 - assets/js/e772ff24.23a7026d.js | 1 - assets/js/e772ff24.4ee24c21.js | 1 + assets/js/eb20f88e.4c1f8536.js | 1 - assets/js/{8bc22d14.a01c8e06.js => eb20f88e.e1b9bbb6.js} | 2 +- assets/js/f866fe03.a2387337.js | 1 - assets/js/f866fe03.ab5a7784.js | 1 + assets/js/fa0d6c9c.7b592563.js | 1 + assets/js/fa0d6c9c.7d7d1e05.js | 1 - assets/js/runtime~main.07900d6f.js | 1 - assets/js/runtime~main.6b52c52f.js | 1 + blog/Nov21_ReblockedGVCF/index.html | 4 ++-- blog/archive/index.html | 4 ++-- blog/index.html | 4 ++-- blog/tags/exomes/index.html | 4 ++-- blog/tags/genomes/index.html | 4 ++-- blog/tags/germline/index.html | 4 ++-- blog/tags/index.html | 4 ++-- blog/tags/joint-calling/index.html | 4 ++-- blog/tags/reblock/index.html | 4 ++-- blog/tags/warp/index.html | 4 ++-- blog/tags/wdl/index.html | 4 ++-- docs/About_WARP/BestPractices/index.html | 6 +++--- docs/About_WARP/PipelineRequirements/index.html | 6 +++--- docs/About_WARP/TestingPipelines/index.html | 6 +++--- docs/About_WARP/VersionAndReleasePipelines/index.html | 6 +++--- docs/Best_practices/GC_cost_optimization/index.html | 6 +++--- docs/Best_practices/autosize/index.html | 6 +++--- docs/Best_practices/reusing_code/index.html | 6 +++--- docs/Best_practices/setting_defaults/index.html | 6 +++--- docs/Best_practices/suggested_formats/index.html | 6 +++--- docs/Best_practices/task_execution/index.html | 6 +++--- docs/Pipelines/ATAC/README/index.html | 6 +++--- docs/Pipelines/ATAC/count-matrix-overview/index.html | 6 +++--- docs/Pipelines/BuildIndices_Pipeline/README/index.html | 6 +++--- .../CEMBA_MethylC_Seq_Pipeline/CEMBA.methods/index.html | 6 +++--- docs/Pipelines/CEMBA_MethylC_Seq_Pipeline/README/index.html | 6 +++--- .../Exome_Germline_Single_Sample_Pipeline/README/index.html | 6 +++--- .../exome.methods/index.html | 6 +++--- .../README/index.html | 6 +++--- .../Illumina_genotyping_array_spec/index.html | 6 +++--- .../Illumina_Genotyping_Arrays_Pipeline/README/index.html | 6 +++--- docs/Pipelines/Imputation_Pipeline/README/index.html | 6 +++--- .../Imputation_Pipeline/references_overview/index.html | 6 +++--- docs/Pipelines/JointGenotyping_Pipeline/README/index.html | 6 +++--- docs/Pipelines/Multiome_Pipeline/README/index.html | 6 +++--- docs/Pipelines/Optimus_Pipeline/Bam_tags/index.html | 6 +++--- docs/Pipelines/Optimus_Pipeline/Library-metrics/index.html | 6 +++--- docs/Pipelines/Optimus_Pipeline/Loom_schema/index.html | 6 +++--- docs/Pipelines/Optimus_Pipeline/README/index.html | 6 +++--- .../Optimus_Pipeline/consortia-processing/index.html | 6 +++--- docs/Pipelines/Optimus_Pipeline/optimus.methods/index.html | 6 +++--- docs/Pipelines/PairedTag_Pipeline/README/index.html | 6 +++--- docs/Pipelines/RNA_with_UMIs_Pipeline/README/index.html | 6 +++--- .../RNA_with_UMIs_Pipeline/rna-with-umis.methods/index.html | 6 +++--- .../Single_Cell_ATAC_Seq_Pipeline/README/index.html | 6 +++--- .../Single_Cell_ATAC_Seq_Pipeline/scatac.methods/index.html | 6 +++--- docs/Pipelines/SlideSeq_Pipeline/README/index.html | 6 +++--- .../SlideSeq_Pipeline/count-matrix-overview/index.html | 6 +++--- .../Smart-seq2_Multi_Sample_Pipeline/Loom_schema/index.html | 6 +++--- .../Smart-seq2_Multi_Sample_Pipeline/README/index.html | 6 +++--- .../smart-seq2.methods/index.html | 6 +++--- .../README/index.html | 6 +++--- .../consortia-processing/index.html | 6 +++--- .../count-matrix-overview/index.html | 6 +++--- .../multi_snss2.methods/index.html | 6 +++--- .../Loom_schema/index.html | 6 +++--- .../Smart-seq2_Single_Sample_Pipeline/README/index.html | 6 +++--- .../README/index.html | 6 +++--- .../README/index.html | 6 +++--- .../wgs.methods/index.html | 6 +++--- docs/Pipelines/snM3C/summary_metrics/index.html | 6 +++--- docs/Pipelines/snm3C/README/index.html | 6 +++--- docs/contribution/README/index.html | 6 +++--- .../contribute_to_warp/changelog_style/index.html | 6 +++--- .../contribute_to_warp/contribution-guidelines/index.html | 6 +++--- .../contribute_to_warp/contribution-tutorial/index.html | 6 +++--- .../contribute_to_warp/wdl_task_runtime_style/index.html | 6 +++--- .../contribute_to_warp_docs/doc_style/index.html | 6 +++--- .../contribute_to_warp_docs/docsite_maintenance/index.html | 6 +++--- docs/get-started/index.html | 6 +++--- index.html | 4 ++-- privacy/index.html | 4 ++-- search/index.html | 4 ++-- 190 files changed, 267 insertions(+), 267 deletions(-) create mode 100644 assets/js/1051bc1f.08f18222.js delete mode 100644 assets/js/1051bc1f.15ce545b.js delete mode 100644 assets/js/1944a93c.0812685a.js create mode 100644 assets/js/1944a93c.df584eb1.js create mode 100644 assets/js/1d76e1a6.4a1320f9.js delete mode 100644 assets/js/1d76e1a6.b1ab4288.js rename assets/js/{1e8f752d.a5a71e23.js => 1e8f752d.ab5e3563.js} (64%) create mode 100644 assets/js/252f9d1d.18d7d594.js delete mode 100644 assets/js/252f9d1d.8059da2e.js rename assets/js/{3611659f.be4d2d01.js => 3611659f.02bf6dbc.js} (52%) delete mode 100644 assets/js/3c43061f.88bd0d3f.js create mode 100644 assets/js/3c43061f.965f2323.js create mode 100644 assets/js/3cb45397.0dd032d0.js delete mode 100644 assets/js/3cb45397.cc823b41.js delete mode 100644 assets/js/46806d1e.7eed8d22.js create mode 100644 assets/js/46806d1e.88fbbb6a.js create mode 100644 assets/js/48e25e22.44c221f2.js delete mode 100644 assets/js/48e25e22.8c0abf1d.js delete mode 100644 assets/js/48f9123e.6f6763c9.js create mode 100644 assets/js/48f9123e.d8e8bd7e.js create mode 100644 assets/js/4adf0bd4.2972acf9.js delete mode 100644 assets/js/4adf0bd4.545b7717.js create mode 100644 assets/js/4d83ad88.bd67b869.js delete mode 100644 assets/js/4d83ad88.be3ad153.js delete mode 100644 assets/js/517ae54e.822d3d00.js create mode 100644 assets/js/517ae54e.9985ff95.js create mode 100644 assets/js/5291e196.01c9834a.js delete mode 100644 assets/js/5291e196.575211b0.js create mode 100644 assets/js/5aaaf7e9.0349c4c0.js delete mode 100644 assets/js/5aaaf7e9.4cc9ed35.js delete mode 100644 assets/js/60249a3e.430437cf.js create mode 100644 assets/js/60249a3e.9ac5037f.js delete mode 100644 assets/js/636516e9.92380fb9.js create mode 100644 assets/js/636516e9.eaaa0705.js create mode 100644 assets/js/644602c7.2122cfbb.js delete mode 100644 assets/js/644602c7.eb79bd4b.js delete mode 100644 assets/js/66239a34.23894ab8.js create mode 100644 assets/js/66239a34.9e3b8eff.js delete mode 100644 assets/js/68037889.16ecb038.js create mode 100644 assets/js/68037889.196f4031.js create mode 100644 assets/js/69942e7f.0fd5ecac.js delete mode 100644 assets/js/69942e7f.88671ab1.js create mode 100644 assets/js/6ea7fab5.7d9b179d.js delete mode 100644 assets/js/6ea7fab5.e8ff9f10.js create mode 100644 assets/js/712084b6.b982be50.js delete mode 100644 assets/js/712084b6.f4a65c91.js delete mode 100644 assets/js/724ea057.636f5304.js create mode 100644 assets/js/724ea057.fecb38ee.js delete mode 100644 assets/js/7485ae2a.5f867c0a.js create mode 100644 assets/js/7485ae2a.e75a9c32.js delete mode 100644 assets/js/7ecc6316.79eb4937.js create mode 100644 assets/js/7ecc6316.b967bc9e.js delete mode 100644 assets/js/7f301dda.45751288.js create mode 100644 assets/js/7f301dda.4e4d17dd.js delete mode 100644 assets/js/807f0e73.8116324d.js create mode 100644 assets/js/807f0e73.d0ca0735.js delete mode 100644 assets/js/8599e9c8.6839fc8f.js create mode 100644 assets/js/8599e9c8.e77c3fd1.js delete mode 100644 assets/js/8a4527e6.054431df.js create mode 100644 assets/js/8a4527e6.efb042cb.js create mode 100644 assets/js/8bc22d14.fad6993e.js create mode 100644 assets/js/8ce4a3d8.3b8d87cd.js delete mode 100644 assets/js/8ce4a3d8.dfe3b5df.js delete mode 100644 assets/js/9434f829.12b2f91e.js create mode 100644 assets/js/9434f829.d59c19be.js create mode 100644 assets/js/95cfac0d.c42f4726.js delete mode 100644 assets/js/95cfac0d.f636b027.js create mode 100644 assets/js/992e1bf4.3d492e95.js delete mode 100644 assets/js/992e1bf4.440f4035.js create mode 100644 assets/js/a25de53b.880f667b.js delete mode 100644 assets/js/a25de53b.b8b55705.js rename assets/js/{a4b593f1.7d3d7c33.js => a4b593f1.63d49d97.js} (57%) create mode 100644 assets/js/a86f760f.d5729ab8.js delete mode 100644 assets/js/a86f760f.dc802eb8.js create mode 100644 assets/js/aa3a360a.ba5e7896.js delete mode 100644 assets/js/aa3a360a.e045d7b3.js delete mode 100644 assets/js/aab47c2c.edc10984.js create mode 100644 assets/js/aab47c2c.f933109f.js create mode 100644 assets/js/abeb946f.6d092afe.js delete mode 100644 assets/js/abeb946f.cd6669e0.js create mode 100644 assets/js/aefe7281.5a304a9c.js delete mode 100644 assets/js/aefe7281.8f68874d.js create mode 100644 assets/js/b5a0e922.59bbfd4d.js delete mode 100644 assets/js/b5a0e922.c1c6970e.js create mode 100644 assets/js/b93413c3.539706c7.js delete mode 100644 assets/js/b93413c3.e3ceae78.js create mode 100644 assets/js/bc1b9af3.25762b36.js delete mode 100644 assets/js/bc1b9af3.a97b1817.js delete mode 100644 assets/js/c037817c.9a7214b8.js create mode 100644 assets/js/c037817c.d69b86c9.js delete mode 100644 assets/js/c0c11533.80cdd9ae.js create mode 100644 assets/js/c0c11533.ef246d04.js delete mode 100644 assets/js/c4d74fc9.0f04618c.js create mode 100644 assets/js/c4d74fc9.bc3545ad.js delete mode 100644 assets/js/c7408b60.208bb159.js create mode 100644 assets/js/c7408b60.a101f51e.js create mode 100644 assets/js/c7ae9aa9.ab5cbc9f.js delete mode 100644 assets/js/c7ae9aa9.d3ac533c.js create mode 100644 assets/js/c8da6fe9.97779c39.js delete mode 100644 assets/js/c8da6fe9.9e82d7e8.js create mode 100644 assets/js/cf9b05d1.53f63e12.js delete mode 100644 assets/js/cf9b05d1.593c3593.js delete mode 100644 assets/js/e214e9f8.b2460572.js create mode 100644 assets/js/e214e9f8.e46164ac.js create mode 100644 assets/js/e5dab2e2.414bc708.js delete mode 100644 assets/js/e5dab2e2.70eea17b.js delete mode 100644 assets/js/e772ff24.23a7026d.js create mode 100644 assets/js/e772ff24.4ee24c21.js delete mode 100644 assets/js/eb20f88e.4c1f8536.js rename assets/js/{8bc22d14.a01c8e06.js => eb20f88e.e1b9bbb6.js} (87%) delete mode 100644 assets/js/f866fe03.a2387337.js create mode 100644 assets/js/f866fe03.ab5a7784.js create mode 100644 assets/js/fa0d6c9c.7b592563.js delete mode 100644 assets/js/fa0d6c9c.7d7d1e05.js delete mode 100644 assets/js/runtime~main.07900d6f.js create mode 100644 assets/js/runtime~main.6b52c52f.js diff --git a/404.html b/404.html index dea1e1575..8723a8404 100644 --- a/404.html +++ b/404.html @@ -14,13 +14,13 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/1051bc1f.08f18222.js b/assets/js/1051bc1f.08f18222.js new file mode 100644 index 000000000..799bbe938 --- /dev/null +++ b/assets/js/1051bc1f.08f18222.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[886],{3905:function(e,t,a){a.d(t,{Zo:function(){return p},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),d=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=d(e.components);return n.createElement(o.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=d(a),c=r,h=u["".concat(o,".").concat(c)]||u[c]||m[c]||i;return a?n.createElement(h,l(l({ref:t},p),{},{components:a})):n.createElement(h,l({ref:t},p))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=c;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[u]="string"==typeof e?e:r,l[1]=s;for(var d=2;d.bam")),(0,r.kt)("td",{parentName:"tr",align:null},"Aligned BAM"),(0,r.kt)("td",{parentName:"tr",align:null},"BAM")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts.npz")),(0,r.kt)("td",{parentName:"tr",align:null},"Converted sparse matrix file from the MergeStarOutputs task."),(0,r.kt)("td",{parentName:"tr",align:null},"NPZ")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix_row_index"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts_row_index.npy")),(0,r.kt)("td",{parentName:"tr",align:null},"Index of beads in count matrix."),(0,r.kt)("td",{parentName:"tr",align:null},"NPY")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix_col_index"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts_col_index.npy")),(0,r.kt)("td",{parentName:"tr",align:null},"Index of genes in count matrix."),(0,r.kt)("td",{parentName:"tr",align:null},"NPY")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"cell_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"cell-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Cell metrics based on bead barcodes"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"gene_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"gene-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Gene metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"umi_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"umi-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"UMI metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastq_barcode_distribution"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".barcode_distribution_XC.txt")),(0,r.kt)("td",{parentName:"tr",align:null},"Metric file containing the distribution of reads per bead barcode that were calculated prior to alignment."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastq_umi_distribution"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".barcode_distribution_XM.txt")),(0,r.kt)("td",{parentName:"tr",align:null},"Metric file containing the distribution of reads per UMI that were calculated prior to alignment."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastq_reads_per_cell"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".numReads_perCell_XC.txt")),(0,r.kt)("td",{parentName:"tr",align:null},"Metric file containing the number of reads per barcode that were calculated prior to alignment."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastq_reads_per_umi"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".numReads_perCell_XM.txt")),(0,r.kt)("td",{parentName:"tr",align:null},"Metric file containing the number of reads per UMI that were calculated prior to alignment."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"h5ad_output_file"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".h5ad")),(0,r.kt)("td",{parentName:"tr",align:null},"h5ad file containing count data and metadata."),(0,r.kt)("td",{parentName:"tr",align:null},"H5AD")))),(0,r.kt)("p",null,"The h5ad matrix is the default output. This matrix contains the unnormalized (unfiltered) count matrices, as well as the gene and bead barcode metrics detailed in the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/Pipelines/SlideSeq_Pipeline/count-matrix-overview"},"Slide-seq Count Matrix Overview"),"."),(0,r.kt)("h2",{id:"validation-against-on-prem-pipeline"},"Validation against on-prem pipeline"),(0,r.kt)("p",null,"Slide-seq has been validated for processing mouse spatial transcriptomic data generated with the Slide-seq assay. Slide-seq results are compared to those of an on-premise pipeline using BCL input files and python scripts. See the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.google.com/document/d/1cmfG3Y4uGvfJUJZV9MZvgN5Yw6-bFajpS7lonMKxdso/edit?usp=sharing"},"validation report")," for more information."),(0,r.kt)("h2",{id:"versioning-and-testing"},"Versioning and testing"),(0,r.kt)("p",null,"All Slide-seq pipeline releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/slideseq/SlideSeq.changelog.md"},"Slide-seq changelog")," and tested using ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/slideseq/test_inputs/test_data_overview.md"},"plumbing and scientific test data"),". To learn more about WARP pipeline testing, see ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"Testing Pipelines"),"."),(0,r.kt)("h2",{id:"citing-the-slide-seq-pipeline"},"Citing the Slide-seq Pipeline"),(0,r.kt)("p",null,"If you use the Slide-seq Pipeline in your research, please identify the pipeline in your methods section using the ",(0,r.kt)("a",{parentName:"p",href:"https://scicrunch.org/resources/data/record/nlx_144509-1/SCR_023379/resolver?q=%22Slide-seq%22&l=%22Slide-seq%22&i=rrid:scr_023379"},"Slide-seq SciCrunch resource identifier"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Ex: ",(0,r.kt)("em",{parentName:"li"},"Slide-seq Pipeline (RRID:SCR_023379)"))),(0,r.kt)("p",null,"Please also consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"consortia-support"},"Consortia support"),(0,r.kt)("p",null,"This pipeline is supported by the ",(0,r.kt)("a",{parentName:"p",href:"https://biccn.org/"},"BRAIN Initiative Cell Census Network")," (BICCN) and BRAIN Initiative Cell Atlas Network (BICAN). "),(0,r.kt)("p",null,"If your organization also uses this pipeline, we would like to list you! Please reach out to us by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"."),(0,r.kt)("h2",{id:"feedback"},"Feedback"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."))}m.isMDXComponent=!0},9716:function(e,t,a){t.Z=a.p+"assets/images/slide-seq_diagram-124fb3cf31b065e508227f5e006054ec.png"}}]); \ No newline at end of file diff --git a/assets/js/1051bc1f.15ce545b.js b/assets/js/1051bc1f.15ce545b.js deleted file mode 100644 index bcbd2b7f5..000000000 --- a/assets/js/1051bc1f.15ce545b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[886],{3905:function(e,t,a){a.d(t,{Zo:function(){return p},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),d=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=d(e.components);return n.createElement(o.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=d(a),c=r,h=u["".concat(o,".").concat(c)]||u[c]||m[c]||i;return a?n.createElement(h,l(l({ref:t},p),{},{components:a})):n.createElement(h,l({ref:t},p))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=c;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[u]="string"==typeof e?e:r,l[1]=s;for(var d=2;d.bam")),(0,r.kt)("td",{parentName:"tr",align:null},"Aligned BAM"),(0,r.kt)("td",{parentName:"tr",align:null},"BAM")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts.npz")),(0,r.kt)("td",{parentName:"tr",align:null},"Converted sparse matrix file from the MergeStarOutputs task."),(0,r.kt)("td",{parentName:"tr",align:null},"NPZ")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix_row_index"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts_row_index.npy")),(0,r.kt)("td",{parentName:"tr",align:null},"Index of beads in count matrix."),(0,r.kt)("td",{parentName:"tr",align:null},"NPY")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix_col_index"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts_col_index.npy")),(0,r.kt)("td",{parentName:"tr",align:null},"Index of genes in count matrix."),(0,r.kt)("td",{parentName:"tr",align:null},"NPY")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"cell_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"cell-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Cell metrics based on bead barcodes"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"gene_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"gene-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Gene metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"umi_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"umi-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"UMI metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastq_barcode_distribution"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".barcode_distribution_XC.txt")),(0,r.kt)("td",{parentName:"tr",align:null},"Metric file containing the distribution of reads per bead barcode that were calculated prior to alignment."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastq_umi_distribution"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".barcode_distribution_XM.txt")),(0,r.kt)("td",{parentName:"tr",align:null},"Metric file containing the distribution of reads per UMI that were calculated prior to alignment."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastq_reads_per_cell"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".numReads_perCell_XC.txt")),(0,r.kt)("td",{parentName:"tr",align:null},"Metric file containing the number of reads per barcode that were calculated prior to alignment."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastq_reads_per_umi"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".numReads_perCell_XM.txt")),(0,r.kt)("td",{parentName:"tr",align:null},"Metric file containing the number of reads per UMI that were calculated prior to alignment."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"h5ad_output_file"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".h5ad")),(0,r.kt)("td",{parentName:"tr",align:null},"h5ad file containing count data and metadata."),(0,r.kt)("td",{parentName:"tr",align:null},"H5AD")))),(0,r.kt)("p",null,"The h5ad matrix is the default output. This matrix contains the unnormalized (unfiltered) count matrices, as well as the gene and bead barcode metrics detailed in the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/Pipelines/SlideSeq_Pipeline/count-matrix-overview"},"Slide-seq Count Matrix Overview"),"."),(0,r.kt)("h2",{id:"validation-against-on-prem-pipeline"},"Validation against on-prem pipeline"),(0,r.kt)("p",null,"Slide-seq has been validated for processing mouse spatial transcriptomic data generated with the Slide-seq assay. Slide-seq results are compared to those of an on-premise pipeline using BCL input files and python scripts. See the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.google.com/document/d/1cmfG3Y4uGvfJUJZV9MZvgN5Yw6-bFajpS7lonMKxdso/edit?usp=sharing"},"validation report")," for more information."),(0,r.kt)("h2",{id:"versioning-and-testing"},"Versioning and testing"),(0,r.kt)("p",null,"All Slide-seq pipeline releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/slideseq/SlideSeq.changelog.md"},"Slide-seq changelog")," and tested using ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/slideseq/test_inputs/test_data_overview.md"},"plumbing and scientific test data"),". To learn more about WARP pipeline testing, see ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"Testing Pipelines"),"."),(0,r.kt)("h2",{id:"citing-the-slide-seq-pipeline"},"Citing the Slide-seq Pipeline"),(0,r.kt)("p",null,"If you use the Slide-seq Pipeline in your research, please identify the pipeline in your methods section using the ",(0,r.kt)("a",{parentName:"p",href:"https://scicrunch.org/resources/data/record/nlx_144509-1/SCR_023379/resolver?q=%22Slide-seq%22&l=%22Slide-seq%22&i=rrid:scr_023379"},"Slide-seq SciCrunch resource identifier"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Ex: ",(0,r.kt)("em",{parentName:"li"},"Slide-seq Pipeline (RRID:SCR_023379)"))),(0,r.kt)("p",null,"Please also consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"consortia-support"},"Consortia support"),(0,r.kt)("p",null,"This pipeline is supported by the ",(0,r.kt)("a",{parentName:"p",href:"https://biccn.org/"},"BRAIN Initiative Cell Census Network")," (BICCN) and BRAIN Initiative Cell Atlas Network (BICAN). "),(0,r.kt)("p",null,"If your organization also uses this pipeline, we would like to list you! Please reach out to us by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"."),(0,r.kt)("h2",{id:"feedback"},"Feedback"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."))}m.isMDXComponent=!0},9716:function(e,t,a){t.Z=a.p+"assets/images/slide-seq_diagram-124fb3cf31b065e508227f5e006054ec.png"}}]); \ No newline at end of file diff --git a/assets/js/1944a93c.0812685a.js b/assets/js/1944a93c.0812685a.js deleted file mode 100644 index bf3415db9..000000000 --- a/assets/js/1944a93c.0812685a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[2595],{3905:function(e,t,i){i.d(t,{Zo:function(){return d},kt:function(){return m}});var n=i(7294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},d=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),c=u(i),f=a,m=c["".concat(l,".").concat(f)]||c[f]||p[f]||o;return i?n.createElement(m,s(s({ref:t},d),{},{components:i})):n.createElement(m,s({ref:t},d))}));function m(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=i.length,s=new Array(o);s[0]=f;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[c]="string"==typeof e?e:a,s[1]=r;for(var u=2;u=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},d=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),c=u(i),f=a,m=c["".concat(l,".").concat(f)]||c[f]||p[f]||o;return i?n.createElement(m,s(s({ref:t},d),{},{components:i})):n.createElement(m,s({ref:t},d))}));function m(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=i.length,s=new Array(o);s[0]=f;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[c]="string"==typeof e?e:a,s[1]=r;for(var u=2;u=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var o=n.createContext({}),p=function(t){var e=n.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=p(t.components);return n.createElement(o.Provider,{value:e},t.children)},u="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,o=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),u=p(a),h=r,c=u["".concat(o,".").concat(h)]||u[h]||m[h]||i;return a?n.createElement(c,l(l({ref:e},d),{},{components:a})):n.createElement(c,l({ref:e},d))}));function c(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=h;var s={};for(var o in e)hasOwnProperty.call(e,o)&&(s[o]=e[o]);s.originalType=t,s[u]="string"==typeof t?t:r,l[1]=s;for(var p=2;pIllumina TruSeq Adapter Read 1\nAGATCGGAAGAGCACACGTCTGAACTCCAGTCA\n>Illumina TruSeq Adapter Read 2\nAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT\n>polyA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n")),(0,r.kt)("h4",{id:"5-convert-fastqs-to-ubam"},"5. Convert FASTQs to uBAM"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/tasks/broad/RNAWithUMIsTasks.wdl"},"tasks.FastqToUbam (alias = FastqToUbamAfterClipping)")," task converts trimmed FASTQs to an unmapped BAM using Picard's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360036510672"},"FastqToSam"),"."),(0,r.kt)("h4",{id:"6-alignment-with-star"},"6. Alignment with STAR"),(0,r.kt)("p",null,"After UMI extraction, the workflow aligns the paired-end reads to the reference (hg38 or hg19) using the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/alexdobin/STAR"},"STAR aligner"),', which is specifically designed for RNA-seq data and can align cDNA sequences with many "gaps" that correspond to introns. '),(0,r.kt)("p",null,"The task uses the following parameters:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,r.kt)("th",{parentName:"tr",align:null},"Value"),(0,r.kt)("th",{parentName:"tr",align:null},"Notes"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"outSAMunmapped"),(0,r.kt)("td",{parentName:"tr",align:null},"Within"),(0,r.kt)("td",{parentName:"tr",align:null},"Includes unmapped reads in the output file rather than dropping those reads to facilitate potential downstream analysis.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"outFilterMismatchNoverLmax"),(0,r.kt)("td",{parentName:"tr",align:null},"0.1"),(0,r.kt)("td",{parentName:"tr",align:null},"Sets the maximum allowable ratio of mismatches to read length. Reads with a ratio larger than the set value are filtered. For example, for paired-end reads with length 146, the reads are filtered if the number of mismatches is greater than 29 (146 ","*"," 2 ","*"," 0.1 = 29).")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"alignEndsProtrude"),(0,r.kt)("td",{parentName:"tr",align:null},"20 ConcordantPair"),(0,r.kt)("td",{parentName:"tr",align:null},"Allows a maximum of 20 protruding bases at alignment ends and marks these alignments as concordant pairs to prevent reads from small cDNA fragments that were sequenced into adapters from being dropped. This parameter allows for the processing of data derived from low-quality or degraded tissue such as formalin-fixed paraffin-embedded (FFPE) samples.")))),(0,r.kt)("p",null,"Additional parameters are used to match ",(0,r.kt)("a",{parentName:"p",href:"https://www.encodeproject.org/data-standards/rna-seq/long-rnas/"},"ENCODE bulk RNA-seq data standards"),". To learn more about ENCODE options in STAR, see the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/alexdobin/STAR/blob/master/doc/STARmanual.pdf"},"STAR manual"),"."),(0,r.kt)("p",null,"After STAR alignment, the workflow outputs both a genome- and transcriptome-aligned BAM."),(0,r.kt)("h4",{id:"7-mark-duplicates-and-sort-bams"},"7. Mark duplicates and sort BAMs"),(0,r.kt)("p",null,"As described in Step 2 (UMI extraction), UMIs are DNA tags that allow us to distinguish between PCR duplicates (duplicate reads with the same UMI) and biological duplicates (duplicate reads with different UMIs)."),(0,r.kt)("p",null,"In this step, the workflow sorts the aligned BAMs coordinates using Picard's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360036510732-SortSam-Picard-"},"SortSam")," tool and then groups the duplicates using UMI-tools' ",(0,r.kt)("a",{parentName:"p",href:"https://umi-tools.readthedocs.io/en/latest/reference/group.html#"},"group")," function. Once the duplicates are grouped by UMI, the PCR duplicates are marked using Picard's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360037052812-MarkDuplicates-Picard-"},"MarkDuplicates"),". This step outputs new genome- and transcriptome-aligned BAM files with PCR duplicates tagged and a corresponding index file."),(0,r.kt)("p",null,"The transcriptome-aligned BAM is then sorted using GATK\u2019s ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/5358861221659-PostProcessReadsForRSEM-BETA-"},"PostProcessReadsForRSEM")," for compatibility with ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/deweylab/RSEM"},"RSEM"),". While RSEM is not used in this workflow, it is an additional tool that can be used to quantify expression from RNA-seq data."),(0,r.kt)("h4",{id:"8-gene-quantification"},"8. Gene quantification"),(0,r.kt)("p",null,"After duplicate reads have been tagged, the workflow uses ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/getzlab/rnaseqc"},"RNA-SeQC")," to quantify the expression level of transcripts based on the number of reads that align to one or more exons of each gene (",(0,r.kt)("inlineCode",{parentName:"p"},"rnaseqc2_gene_counts"),"). Exon-level expression is also quantified based on the number of reads that align to each exon (",(0,r.kt)("inlineCode",{parentName:"p"},"rnaseqc2_exon_counts"),"). "),(0,r.kt)("h4",{id:"9-metric-calculation"},"9. Metric calculation"),(0,r.kt)("p",null,"The pipeline uses ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/s-andrews/FastQC"},"FastQC"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/getzlab/rnaseqc"},"RNA-SeQC"),", Picard's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360037057492-CollectRnaSeqMetrics-Picard-"},"CollectRNASeqMetrics")," and ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360037594031-CollectMultipleMetrics-Picard-"},"CollectMultipleMetrics")," tools, and GATK's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/4418051471643-GetPileupSummaries"},"GetPileupSummaries")," and ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/4418054253211-CalculateContamination"},"CalculateContamination")," tools to calculate summary metrics that can be used to assess the quality of the data each time the pipeline is run. "),(0,r.kt)("p",null,"If you are a member of the Broad Institute's Genomics Platform using the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/broad/internal/rna_seq/BroadInternalRNAWithUMIs.wdl"},"internal RNA with UMIs pipeline"),", there is an additional step that merges the individual metrics files to create the ",(0,r.kt)("inlineCode",{parentName:"p"},"MergeMetrics.unified_metrics")," output file and prepare the data for use in the Terra Data Repository."),(0,r.kt)("h4",{id:"10-outputs"},"10. Outputs"),(0,r.kt)("p",null,"Workflow outputs are described in the table below. "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Output variable name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"sample_name"),(0,r.kt)("td",{parentName:"tr",align:null},"Sample name extracted from the input unmapped BAM file header."),(0,r.kt)("td",{parentName:"tr",align:null},"String")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"transcriptome_bam"),(0,r.kt)("td",{parentName:"tr",align:null},"Duplicate-marked BAM file containing alignments from STAR translated into transcriptome coordinates and postprocessed for RSEM."),(0,r.kt)("td",{parentName:"tr",align:null},"BAM")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"transcriptome_duplicate_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing duplication metrics."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_bam"),(0,r.kt)("td",{parentName:"tr",align:null},"Duplicate-marked BAM file containing alignments from STAR translated into genome coordinates."),(0,r.kt)("td",{parentName:"tr",align:null},"BAM")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_bam_index"),(0,r.kt)("td",{parentName:"tr",align:null},"Index file for the output_bam output."),(0,r.kt)("td",{parentName:"tr",align:null},"BAM Index")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"duplicate_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Duplicate metrics file containing the number of reads marked as duplicates."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_gene_tpm"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing TPMs."),(0,r.kt)("td",{parentName:"tr",align:null},"GCT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_gene_counts"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing gene counts."),(0,r.kt)("td",{parentName:"tr",align:null},"GCT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_exon_counts"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing exon counts."),(0,r.kt)("td",{parentName:"tr",align:null},"GCT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_fragment_size_histogram"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing counts of observed fragment size."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing RNA-SeQC metrics including strand specificity, 3\u2019/5\u2019 bias, rRNA reads, and others."),(0,r.kt)("td",{parentName:"tr",align:null},"TSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_rna_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing the output of Picard\u2019s CollectRnaSeqMetrics tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_alignment_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing output of Picard\u2019s CollectAlignmentSummaryMetrics tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_insert_size_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing output of Picard\u2019s CollectInsertSizeMetrics tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_insert_size_histogram"),(0,r.kt)("td",{parentName:"tr",align:null},"Histogram chart of insert size."),(0,r.kt)("td",{parentName:"tr",align:null},"PDF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_base_distribution_by_cycle_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing the output of Picard\u2019s CollectBaseDistributionByCycle tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_base_distribution_by_cycle_pdf"),(0,r.kt)("td",{parentName:"tr",align:null},"Chart of nucleotide distribution per cycle."),(0,r.kt)("td",{parentName:"tr",align:null},"PDF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_quality_by_cycle_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing the output of Picard\u2019s MeanQualityByCycle tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_quality_by_cycle_pdf"),(0,r.kt)("td",{parentName:"tr",align:null},"Chart of mean quality by cycle."),(0,r.kt)("td",{parentName:"tr",align:null},"PDF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_quality_distribution_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing the output of Picard\u2019s QualityScoreDistribution tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_quality_distribution_pdf"),(0,r.kt)("td",{parentName:"tr",align:null},"Chart of quality score distribution."),(0,r.kt)("td",{parentName:"tr",align:null},"PDF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"contamination"),(0,r.kt)("td",{parentName:"tr",align:null},"Float representing the calculated cross-sample contamination."),(0,r.kt)("td",{parentName:"tr",align:null},"Float")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"contamination_error"),(0,r.kt)("td",{parentName:"tr",align:null},"Float representing the error associated with the contamination calculation."),(0,r.kt)("td",{parentName:"tr",align:null},"Float")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastqc_html_report"),(0,r.kt)("td",{parentName:"tr",align:null},"HTML report containing general quality control metrics generated by FastQC."),(0,r.kt)("td",{parentName:"tr",align:null},"File")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastqc_percent_reads_with_adapter"),(0,r.kt)("td",{parentName:"tr",align:null},"Float representing the percent of reads with adapter sequences present following the adapter clipping task."),(0,r.kt)("td",{parentName:"tr",align:null},"Float")))),(0,r.kt)("h2",{id:"versioning"},"Versioning"),(0,r.kt)("p",null,"All RNA with UMIs pipeline releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/broad/rna_seq/RNAWithUMIsPipeline.changelog.md"},"pipeline changelog"),"."),(0,r.kt)("h2",{id:"citing-the-rna-with-umis-pipeline"},"Citing the RNA with UMIs Pipeline"),(0,r.kt)("p",null,"If you use the RNA with UMIs Pipeline in your research, please consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"feedback"},"Feedback"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."))}m.isMDXComponent=!0},2434:function(t,e,a){e.Z=a.p+"assets/images/rna-with-umis_diagram-bce76bb42e6044bea0ff32d184622560.png"}}]); \ No newline at end of file diff --git a/assets/js/1d76e1a6.b1ab4288.js b/assets/js/1d76e1a6.b1ab4288.js deleted file mode 100644 index eeeb694e7..000000000 --- a/assets/js/1d76e1a6.b1ab4288.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[3188],{3905:function(t,e,a){a.d(e,{Zo:function(){return d},kt:function(){return c}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var o=n.createContext({}),p=function(t){var e=n.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=p(t.components);return n.createElement(o.Provider,{value:e},t.children)},u="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,o=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),u=p(a),h=r,c=u["".concat(o,".").concat(h)]||u[h]||m[h]||i;return a?n.createElement(c,l(l({ref:e},d),{},{components:a})):n.createElement(c,l({ref:e},d))}));function c(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=h;var s={};for(var o in e)hasOwnProperty.call(e,o)&&(s[o]=e[o]);s.originalType=t,s[u]="string"==typeof t?t:r,l[1]=s;for(var p=2;pIllumina TruSeq Adapter Read 1\nAGATCGGAAGAGCACACGTCTGAACTCCAGTCA\n>Illumina TruSeq Adapter Read 2\nAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT\n>polyA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n")),(0,r.kt)("h4",{id:"5-convert-fastqs-to-ubam"},"5. Convert FASTQs to uBAM"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/tasks/broad/RNAWithUMIsTasks.wdl"},"tasks.FastqToUbam (alias = FastqToUbamAfterClipping)")," task converts trimmed FASTQs to an unmapped BAM using Picard's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360036510672"},"FastqToSam"),"."),(0,r.kt)("h4",{id:"6-alignment-with-star"},"6. Alignment with STAR"),(0,r.kt)("p",null,"After UMI extraction, the workflow aligns the paired-end reads to the reference (hg38 or hg19) using the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/alexdobin/STAR"},"STAR aligner"),', which is specifically designed for RNA-seq data and can align cDNA sequences with many "gaps" that correspond to introns. '),(0,r.kt)("p",null,"The task uses the following parameters:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,r.kt)("th",{parentName:"tr",align:null},"Value"),(0,r.kt)("th",{parentName:"tr",align:null},"Notes"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"outSAMunmapped"),(0,r.kt)("td",{parentName:"tr",align:null},"Within"),(0,r.kt)("td",{parentName:"tr",align:null},"Includes unmapped reads in the output file rather than dropping those reads to facilitate potential downstream analysis.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"outFilterMismatchNoverLmax"),(0,r.kt)("td",{parentName:"tr",align:null},"0.1"),(0,r.kt)("td",{parentName:"tr",align:null},"Sets the maximum allowable ratio of mismatches to read length. Reads with a ratio larger than the set value are filtered. For example, for paired-end reads with length 146, the reads are filtered if the number of mismatches is greater than 29 (146 ","*"," 2 ","*"," 0.1 = 29).")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"alignEndsProtrude"),(0,r.kt)("td",{parentName:"tr",align:null},"20 ConcordantPair"),(0,r.kt)("td",{parentName:"tr",align:null},"Allows a maximum of 20 protruding bases at alignment ends and marks these alignments as concordant pairs to prevent reads from small cDNA fragments that were sequenced into adapters from being dropped. This parameter allows for the processing of data derived from low-quality or degraded tissue such as formalin-fixed paraffin-embedded (FFPE) samples.")))),(0,r.kt)("p",null,"Additional parameters are used to match ",(0,r.kt)("a",{parentName:"p",href:"https://www.encodeproject.org/data-standards/rna-seq/long-rnas/"},"ENCODE bulk RNA-seq data standards"),". To learn more about ENCODE options in STAR, see the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/alexdobin/STAR/blob/master/doc/STARmanual.pdf"},"STAR manual"),"."),(0,r.kt)("p",null,"After STAR alignment, the workflow outputs both a genome- and transcriptome-aligned BAM."),(0,r.kt)("h4",{id:"7-mark-duplicates-and-sort-bams"},"7. Mark duplicates and sort BAMs"),(0,r.kt)("p",null,"As described in Step 2 (UMI extraction), UMIs are DNA tags that allow us to distinguish between PCR duplicates (duplicate reads with the same UMI) and biological duplicates (duplicate reads with different UMIs)."),(0,r.kt)("p",null,"In this step, the workflow sorts the aligned BAMs coordinates using Picard's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360036510732-SortSam-Picard-"},"SortSam")," tool and then groups the duplicates using UMI-tools' ",(0,r.kt)("a",{parentName:"p",href:"https://umi-tools.readthedocs.io/en/latest/reference/group.html#"},"group")," function. Once the duplicates are grouped by UMI, the PCR duplicates are marked using Picard's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360037052812-MarkDuplicates-Picard-"},"MarkDuplicates"),". This step outputs new genome- and transcriptome-aligned BAM files with PCR duplicates tagged and a corresponding index file."),(0,r.kt)("p",null,"The transcriptome-aligned BAM is then sorted using GATK\u2019s ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/5358861221659-PostProcessReadsForRSEM-BETA-"},"PostProcessReadsForRSEM")," for compatibility with ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/deweylab/RSEM"},"RSEM"),". While RSEM is not used in this workflow, it is an additional tool that can be used to quantify expression from RNA-seq data."),(0,r.kt)("h4",{id:"8-gene-quantification"},"8. Gene quantification"),(0,r.kt)("p",null,"After duplicate reads have been tagged, the workflow uses ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/getzlab/rnaseqc"},"RNA-SeQC")," to quantify the expression level of transcripts based on the number of reads that align to one or more exons of each gene (",(0,r.kt)("inlineCode",{parentName:"p"},"rnaseqc2_gene_counts"),"). Exon-level expression is also quantified based on the number of reads that align to each exon (",(0,r.kt)("inlineCode",{parentName:"p"},"rnaseqc2_exon_counts"),"). "),(0,r.kt)("h4",{id:"9-metric-calculation"},"9. Metric calculation"),(0,r.kt)("p",null,"The pipeline uses ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/s-andrews/FastQC"},"FastQC"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/getzlab/rnaseqc"},"RNA-SeQC"),", Picard's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360037057492-CollectRnaSeqMetrics-Picard-"},"CollectRNASeqMetrics")," and ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360037594031-CollectMultipleMetrics-Picard-"},"CollectMultipleMetrics")," tools, and GATK's ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/4418051471643-GetPileupSummaries"},"GetPileupSummaries")," and ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/articles/4418054253211-CalculateContamination"},"CalculateContamination")," tools to calculate summary metrics that can be used to assess the quality of the data each time the pipeline is run. "),(0,r.kt)("p",null,"If you are a member of the Broad Institute's Genomics Platform using the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/broad/internal/rna_seq/BroadInternalRNAWithUMIs.wdl"},"internal RNA with UMIs pipeline"),", there is an additional step that merges the individual metrics files to create the ",(0,r.kt)("inlineCode",{parentName:"p"},"MergeMetrics.unified_metrics")," output file and prepare the data for use in the Terra Data Repository."),(0,r.kt)("h4",{id:"10-outputs"},"10. Outputs"),(0,r.kt)("p",null,"Workflow outputs are described in the table below. "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Output variable name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"sample_name"),(0,r.kt)("td",{parentName:"tr",align:null},"Sample name extracted from the input unmapped BAM file header."),(0,r.kt)("td",{parentName:"tr",align:null},"String")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"transcriptome_bam"),(0,r.kt)("td",{parentName:"tr",align:null},"Duplicate-marked BAM file containing alignments from STAR translated into transcriptome coordinates and postprocessed for RSEM."),(0,r.kt)("td",{parentName:"tr",align:null},"BAM")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"transcriptome_duplicate_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing duplication metrics."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_bam"),(0,r.kt)("td",{parentName:"tr",align:null},"Duplicate-marked BAM file containing alignments from STAR translated into genome coordinates."),(0,r.kt)("td",{parentName:"tr",align:null},"BAM")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_bam_index"),(0,r.kt)("td",{parentName:"tr",align:null},"Index file for the output_bam output."),(0,r.kt)("td",{parentName:"tr",align:null},"BAM Index")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"duplicate_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Duplicate metrics file containing the number of reads marked as duplicates."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_gene_tpm"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing TPMs."),(0,r.kt)("td",{parentName:"tr",align:null},"GCT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_gene_counts"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing gene counts."),(0,r.kt)("td",{parentName:"tr",align:null},"GCT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_exon_counts"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing exon counts."),(0,r.kt)("td",{parentName:"tr",align:null},"GCT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_fragment_size_histogram"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing counts of observed fragment size."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"rnaseqc2_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing RNA-SeQC metrics including strand specificity, 3\u2019/5\u2019 bias, rRNA reads, and others."),(0,r.kt)("td",{parentName:"tr",align:null},"TSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_rna_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing the output of Picard\u2019s CollectRnaSeqMetrics tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_alignment_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing output of Picard\u2019s CollectAlignmentSummaryMetrics tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_insert_size_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing output of Picard\u2019s CollectInsertSizeMetrics tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_insert_size_histogram"),(0,r.kt)("td",{parentName:"tr",align:null},"Histogram chart of insert size."),(0,r.kt)("td",{parentName:"tr",align:null},"PDF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_base_distribution_by_cycle_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing the output of Picard\u2019s CollectBaseDistributionByCycle tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_base_distribution_by_cycle_pdf"),(0,r.kt)("td",{parentName:"tr",align:null},"Chart of nucleotide distribution per cycle."),(0,r.kt)("td",{parentName:"tr",align:null},"PDF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_quality_by_cycle_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing the output of Picard\u2019s MeanQualityByCycle tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_quality_by_cycle_pdf"),(0,r.kt)("td",{parentName:"tr",align:null},"Chart of mean quality by cycle."),(0,r.kt)("td",{parentName:"tr",align:null},"PDF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_quality_distribution_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Metrics file containing the output of Picard\u2019s QualityScoreDistribution tool."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"picard_quality_distribution_pdf"),(0,r.kt)("td",{parentName:"tr",align:null},"Chart of quality score distribution."),(0,r.kt)("td",{parentName:"tr",align:null},"PDF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"contamination"),(0,r.kt)("td",{parentName:"tr",align:null},"Float representing the calculated cross-sample contamination."),(0,r.kt)("td",{parentName:"tr",align:null},"Float")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"contamination_error"),(0,r.kt)("td",{parentName:"tr",align:null},"Float representing the error associated with the contamination calculation."),(0,r.kt)("td",{parentName:"tr",align:null},"Float")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastqc_html_report"),(0,r.kt)("td",{parentName:"tr",align:null},"HTML report containing general quality control metrics generated by FastQC."),(0,r.kt)("td",{parentName:"tr",align:null},"File")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fastqc_percent_reads_with_adapter"),(0,r.kt)("td",{parentName:"tr",align:null},"Float representing the percent of reads with adapter sequences present following the adapter clipping task."),(0,r.kt)("td",{parentName:"tr",align:null},"Float")))),(0,r.kt)("h2",{id:"versioning"},"Versioning"),(0,r.kt)("p",null,"All RNA with UMIs pipeline releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/broad/rna_seq/RNAWithUMIsPipeline.changelog.md"},"pipeline changelog"),"."),(0,r.kt)("h2",{id:"citing-the-rna-with-umis-pipeline"},"Citing the RNA with UMIs Pipeline"),(0,r.kt)("p",null,"If you use the RNA with UMIs Pipeline in your research, please consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"feedback"},"Feedback"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."))}m.isMDXComponent=!0},2434:function(t,e,a){e.Z=a.p+"assets/images/rna-with-umis_diagram-bce76bb42e6044bea0ff32d184622560.png"}}]); \ No newline at end of file diff --git a/assets/js/1e8f752d.a5a71e23.js b/assets/js/1e8f752d.ab5e3563.js similarity index 64% rename from assets/js/1e8f752d.a5a71e23.js rename to assets/js/1e8f752d.ab5e3563.js index 2f77a07aa..4dcb8bb0f 100644 --- a/assets/js/1e8f752d.a5a71e23.js +++ b/assets/js/1e8f752d.ab5e3563.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[1922],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return b}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=s(n),f=o,b=p["".concat(u,".").concat(f)]||p[f]||d[f]||i;return n?r.createElement(b,a(a({ref:t},l),{},{components:n})):r.createElement(b,a({ref:t},l))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var s=2;s=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=s(n),f=o,b=p["".concat(u,".").concat(f)]||p[f]||d[f]||i;return n?r.createElement(b,a(a({ref:t},l),{},{components:n})):r.createElement(b,a({ref:t},l))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var s=2;s=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),s=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},d=function(t){var e=s(t.components);return n.createElement(p.Provider,{value:e},t.children)},u="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,d=o(t,["components","mdxType","originalType","parentName"]),u=s(a),c=r,g=u["".concat(p,".").concat(c)]||u[c]||m[c]||l;return a?n.createElement(g,i(i({ref:e},d),{},{components:a})):n.createElement(g,i({ref:e},d))}));function g(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=c;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[u]="string"==typeof t?t:r,i[1]=o;for(var s=2;s.vcf.gz"),(0,r.kt)("td",{parentName:"tr",align:null},"VCF generated by the pipeline."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed VCF (vcf.gz)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".vcf.gz.tbi"),(0,r.kt)("td",{parentName:"tr",align:null},"Index file of the VCF generated by the pipeline."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"tabix index (vcf.gz.tbi)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".gtc"),(0,r.kt)("td",{parentName:"tr",align:null},"GTC file generated by Autocall."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"GTC")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".bafregress_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Text output file generated by BafRegress."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".verifyidintensity_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing metrics generated by VerifyIDIntensity."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_variant_calling_detail_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Detailed metrics file for the output VCF generated by CollectArraysVariantCallingMetrics.detail_metrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_variant_calling_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics file for the output VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_control_code_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Control code metrics file for the output VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_variant_calling_detail_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Detailed metrics file for the subsetted VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_subset_variant_calling_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics file for the subsetted VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_subset_variant_calling_control_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Control code metrics file for the subsetted VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"analysis_version_number_output"),(0,r.kt)("td",{parentName:"tr",align:null},"Numeric value used to track the number of pipeline runs on the chip_well_barcode; same value as the analysis_version_number input."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"Value")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".results.txt"),(0,r.kt)("td",{parentName:"tr",align:null},"Bafregress results file."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")))),(0,r.kt)("h4",{id:"fingerprinting-outputs"},"Fingerprinting outputs"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Output name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Required or optional"),(0,r.kt)("th",{parentName:"tr",align:null},"Output file format"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".fingerprint.vcf.gz"),(0,r.kt)("td",{parentName:"tr",align:null},"VCF containing genotypes selected from the output_vcf at certain designated sites."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed VCF (vcf.gz)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".fingerprint.vcf.gz.tbi"),(0,r.kt)("td",{parentName:"tr",align:null},"Index file of the output_fingerprint_vcf."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"tabix index (vcf.gz.tbi)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"check_fingerprint_lod"),(0,r.kt)("td",{parentName:"tr",align:null},"LOD score as calculated by CheckFingerprint between the pipeline output VCF and the optionally specified input fingerprint VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".fingerprinting_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics as calculated by CheckFingerprint between the pipeline output VCF and the optionally specified input fingerprint VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".fingerprinting_detail_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Detail metrics as calculated by CheckFingerprint between the pipeline output VCF and the optionally specified input fingerprint VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")))),(0,r.kt)("h4",{id:"genotype-concordance-outputs"},"Genotype concordance outputs"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Output name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Required or optional"),(0,r.kt)("th",{parentName:"tr",align:null},"Output format"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"genotype_concordance_failed"),(0,r.kt)("td",{parentName:"tr",align:null},"Boolean flag to indicate whether the genotype concordance check between the pipeline output VCF and the optionally specified input control VCF failed."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".genotype_concordance_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics as calculated by GenotypeConcordance between the pipeline output VCF and the optionally specified control VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".genotype_concordance_detail_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Detail metrics as calculated by GenotypeConcordance between the pipeline output VCF and the optionally specified control VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".genotype_concordance_contingency_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Contingency metrics as calculated by GenotypeConcordance between the pipeline output VCF and the optionally specified control VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")))),(0,r.kt)("h2",{id:"versioning"},"Versioning"),(0,r.kt)("p",null,"All Illumina Genotyping Array workflow releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/develop/pipelines/broad/genotyping/illumina/IlluminaGenotypingArray.changelog.md"},"workflow changelog"),"."),(0,r.kt)("h2",{id:"try-the-pipeline-in-terra"},"Try the pipeline in Terra"),(0,r.kt)("p",null,"The Illumina Genotyping Array Pipeline is available on the cloud-based platform ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio"},"Terra"),". If you have a Terra account, you can access the Featured Workspace using this address: ",(0,r.kt)("inlineCode",{parentName:"p"},"https://app.terra.bio/#workspaces/warp-pipelines/Illumina-Genotyping-Array"),". The workspace is preloaded with instructions and sample data. For more information on using the Terra platform, please view the ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us"},"Support Center"),"."),(0,r.kt)("h2",{id:"citing-the-illumina-genotyping-array-pipeline"},"Citing the Illumina Genotyping Array Pipeline"),(0,r.kt)("p",null,"If you use the Illumina Genotyping Array Pipeline in your research, please cite our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"feedback-and-questions"},"Feedback and questions"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."))}m.isMDXComponent=!0},1013:function(t,e,a){e.Z=a.p+"assets/images/IlluminaGenotyping-12327bd04a0f2ee4b5e3ec0da4738995.png"}}]); \ No newline at end of file diff --git a/assets/js/252f9d1d.8059da2e.js b/assets/js/252f9d1d.8059da2e.js deleted file mode 100644 index 0eb8b1ba8..000000000 --- a/assets/js/252f9d1d.8059da2e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[1320],{3905:function(t,e,a){a.d(e,{Zo:function(){return d},kt:function(){return g}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function l(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),s=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},d=function(t){var e=s(t.components);return n.createElement(p.Provider,{value:e},t.children)},u="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,d=o(t,["components","mdxType","originalType","parentName"]),u=s(a),c=r,g=u["".concat(p,".").concat(c)]||u[c]||m[c]||l;return a?n.createElement(g,i(i({ref:e},d),{},{components:a})):n.createElement(g,i({ref:e},d))}));function g(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=c;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[u]="string"==typeof t?t:r,i[1]=o;for(var s=2;s.vcf.gz"),(0,r.kt)("td",{parentName:"tr",align:null},"VCF generated by the pipeline."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed VCF (vcf.gz)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".vcf.gz.tbi"),(0,r.kt)("td",{parentName:"tr",align:null},"Index file of the VCF generated by the pipeline."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"tabix index (vcf.gz.tbi)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".gtc"),(0,r.kt)("td",{parentName:"tr",align:null},"GTC file generated by Autocall."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"GTC")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".bafregress_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Text output file generated by BafRegress."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".verifyidintensity_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"File containing metrics generated by VerifyIDIntensity."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_variant_calling_detail_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Detailed metrics file for the output VCF generated by CollectArraysVariantCallingMetrics.detail_metrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_variant_calling_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics file for the output VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_control_code_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Control code metrics file for the output VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_variant_calling_detail_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Detailed metrics file for the subsetted VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_subset_variant_calling_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics file for the subsetted VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".arrays_subset_variant_calling_control_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Control code metrics file for the subsetted VCF as generated by CollectArraysVariantCallingMetrics."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"analysis_version_number_output"),(0,r.kt)("td",{parentName:"tr",align:null},"Numeric value used to track the number of pipeline runs on the chip_well_barcode; same value as the analysis_version_number input."),(0,r.kt)("td",{parentName:"tr",align:null},"Required"),(0,r.kt)("td",{parentName:"tr",align:null},"Value")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".results.txt"),(0,r.kt)("td",{parentName:"tr",align:null},"Bafregress results file."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")))),(0,r.kt)("h4",{id:"fingerprinting-outputs"},"Fingerprinting outputs"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Output name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Required or optional"),(0,r.kt)("th",{parentName:"tr",align:null},"Output file format"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".fingerprint.vcf.gz"),(0,r.kt)("td",{parentName:"tr",align:null},"VCF containing genotypes selected from the output_vcf at certain designated sites."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed VCF (vcf.gz)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".fingerprint.vcf.gz.tbi"),(0,r.kt)("td",{parentName:"tr",align:null},"Index file of the output_fingerprint_vcf."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"tabix index (vcf.gz.tbi)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"check_fingerprint_lod"),(0,r.kt)("td",{parentName:"tr",align:null},"LOD score as calculated by CheckFingerprint between the pipeline output VCF and the optionally specified input fingerprint VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".fingerprinting_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics as calculated by CheckFingerprint between the pipeline output VCF and the optionally specified input fingerprint VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".fingerprinting_detail_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Detail metrics as calculated by CheckFingerprint between the pipeline output VCF and the optionally specified input fingerprint VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")))),(0,r.kt)("h4",{id:"genotype-concordance-outputs"},"Genotype concordance outputs"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Output name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Required or optional"),(0,r.kt)("th",{parentName:"tr",align:null},"Output format"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"genotype_concordance_failed"),(0,r.kt)("td",{parentName:"tr",align:null},"Boolean flag to indicate whether the genotype concordance check between the pipeline output VCF and the optionally specified input control VCF failed."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".genotype_concordance_summary_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics as calculated by GenotypeConcordance between the pipeline output VCF and the optionally specified control VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".genotype_concordance_detail_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Detail metrics as calculated by GenotypeConcordance between the pipeline output VCF and the optionally specified control VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},".genotype_concordance_contingency_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},"Contingency metrics as calculated by GenotypeConcordance between the pipeline output VCF and the optionally specified control VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"Optional"),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")))),(0,r.kt)("h2",{id:"versioning"},"Versioning"),(0,r.kt)("p",null,"All Illumina Genotyping Array workflow releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/develop/pipelines/broad/genotyping/illumina/IlluminaGenotypingArray.changelog.md"},"workflow changelog"),"."),(0,r.kt)("h2",{id:"try-the-pipeline-in-terra"},"Try the pipeline in Terra"),(0,r.kt)("p",null,"The Illumina Genotyping Array Pipeline is available on the cloud-based platform ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio"},"Terra"),". If you have a Terra account, you can access the Featured Workspace using this address: ",(0,r.kt)("inlineCode",{parentName:"p"},"https://app.terra.bio/#workspaces/warp-pipelines/Illumina-Genotyping-Array"),". The workspace is preloaded with instructions and sample data. For more information on using the Terra platform, please view the ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us"},"Support Center"),"."),(0,r.kt)("h2",{id:"citing-the-illumina-genotyping-array-pipeline"},"Citing the Illumina Genotyping Array Pipeline"),(0,r.kt)("p",null,"If you use the Illumina Genotyping Array Pipeline in your research, please cite our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"feedback-and-questions"},"Feedback and questions"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."))}m.isMDXComponent=!0},1013:function(t,e,a){e.Z=a.p+"assets/images/IlluminaGenotyping-12327bd04a0f2ee4b5e3ec0da4738995.png"}}]); \ No newline at end of file diff --git a/assets/js/3611659f.be4d2d01.js b/assets/js/3611659f.02bf6dbc.js similarity index 52% rename from assets/js/3611659f.be4d2d01.js rename to assets/js/3611659f.02bf6dbc.js index 49eddbc82..eb55671ec 100644 --- a/assets/js/3611659f.be4d2d01.js +++ b/assets/js/3611659f.02bf6dbc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[1666],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return f}});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=o.createContext({}),s=function(e){var t=o.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=s(e.components);return o.createElement(u.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),l=s(n),m=r,f=l["".concat(u,".").concat(m)]||l[m]||d[m]||i;return n?o.createElement(f,a(a({ref:t},p),{},{components:n})):o.createElement(f,a({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[l]="string"==typeof e?e:r,a[1]=c;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=o.createContext({}),s=function(e){var t=o.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=s(e.components);return o.createElement(u.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),l=s(n),m=r,f=l["".concat(u,".").concat(m)]||l[m]||d[m]||i;return n?o.createElement(f,a(a({ref:t},p),{},{components:n})):o.createElement(f,a({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[l]="string"==typeof e?e:r,a[1]=c;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=i.createContext({}),p=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=p(e.components);return i.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,h=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return n?i.createElement(h,a(a({ref:t},c),{},{components:n})):i.createElement(h,a({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:r,a[1]=s;for(var p=2;p=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=i.createContext({}),p=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=p(e.components);return i.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,h=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return n?i.createElement(h,a(a({ref:t},c),{},{components:n})):i.createElement(h,a({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:r,a[1]=s;for(var p=2;p=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),s=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):d(d({},t),e)),a},m=function(e){var t=s(e.components);return n.createElement(o.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),p=s(a),u=r,h=p["".concat(o,".").concat(u)]||p[u]||c[u]||i;return a?n.createElement(h,d(d({ref:t},m),{},{components:a})):n.createElement(h,d({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,d=new Array(i);d[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[p]="string"==typeof e?e:r,d[1]=l;for(var s=2;s=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),s=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):d(d({},t),e)),a},m=function(e){var t=s(e.components);return n.createElement(o.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),p=s(a),u=r,h=p["".concat(o,".").concat(u)]||p[u]||c[u]||i;return a?n.createElement(h,d(d({ref:t},m),{},{components:a})):n.createElement(h,d({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,d=new Array(i);d[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[p]="string"==typeof e?e:r,d[1]=l;for(var s=2;s=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(n),m=a,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||i;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:a,l[1]=o;for(var p=2;p=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(n),m=a,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||i;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:a,l[1]=o;for(var p=2;p=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(a),h=n,m=u["".concat(s,".").concat(h)]||u[h]||d[h]||o;return a?i.createElement(m,r(r({ref:t},c),{},{components:a})):i.createElement(m,r({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,r=new Array(o);r[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,r[1]=l;for(var p=2;p=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(a),h=n,m=u["".concat(s,".").concat(h)]||u[h]||d[h]||o;return a?i.createElement(m,r(r({ref:t},c),{},{components:a})):i.createElement(m,r({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,r=new Array(o);r[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,r[1]=l;for(var p=2;p=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(i),u=a,g=p["".concat(s,".").concat(u)]||p[u]||m[u]||r;return i?n.createElement(g,l(l({ref:t},d),{},{components:i})):n.createElement(g,l({ref:t},d))}));function g(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,l=new Array(r);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var c=2;c=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(i),u=a,g=p["".concat(s,".").concat(u)]||p[u]||m[u]||r;return i?n.createElement(g,l(l({ref:t},d),{},{components:i})):n.createElement(g,l({ref:t},d))}));function g(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,l=new Array(r);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var c=2;c=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),p=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return i.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=p(n),h=a,f=c["".concat(l,".").concat(h)]||c[h]||d[h]||r;return n?i.createElement(f,s(s({ref:t},u),{},{components:n})):i.createElement(f,s({ref:t},u))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,s=new Array(r);s[0]=h;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[c]="string"==typeof e?e:a,s[1]=o;for(var p=2;p=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),p=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return i.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=p(n),h=a,f=c["".concat(l,".").concat(h)]||c[h]||d[h]||r;return n?i.createElement(f,s(s({ref:t},u),{},{components:n})):i.createElement(f,s({ref:t},u))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,s=new Array(r);s[0]=h;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[c]="string"==typeof e?e:a,s[1]=o;for(var p=2;p=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=i.createContext({}),p=function(e){var n=i.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},u=function(e){var n=p(e.components);return i.createElement(l.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return i.createElement(i.Fragment,{},n)}},m=i.forwardRef((function(e,n){var t=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(t),m=a,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||r;return t?i.createElement(h,o(o({ref:n},u),{},{components:t})):i.createElement(h,o({ref:n},u))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=t.length,o=new Array(r);o[0]=m;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[c]="string"==typeof e?e:a,o[1]=s;for(var p=2;p=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=i.createContext({}),p=function(e){var n=i.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},u=function(e){var n=p(e.components);return i.createElement(l.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return i.createElement(i.Fragment,{},n)}},m=i.forwardRef((function(e,n){var t=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(t),m=a,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||r;return t?i.createElement(h,o(o({ref:n},u),{},{components:t})):i.createElement(h,o({ref:n},u))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=t.length,o=new Array(r);o[0]=m;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[c]="string"==typeof e?e:a,o[1]=s;for(var p=2;p=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=o.createContext({}),l=function(e){var t=o.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,u=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=l(n),h=r,m=c["".concat(u,".").concat(h)]||c[h]||d[h]||i;return n?o.createElement(m,a(a({ref:t},p),{},{components:n})):o.createElement(m,a({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=h;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[c]="string"==typeof e?e:r,a[1]=s;for(var l=2;ldevelop branch.",id:"6-make-a-pull-request-to-the-warp-develop-branch",level:4},{value:"7. Revise the PR as necessary for the review process.",id:"7-revise-the-pr-as-necessary-for-the-review-process",level:4},{value:"8. Merge updates to the WARP develop branch.",id:"8-merge-updates-to-the-warp-develop-branch",level:4},{value:"Review Process",id:"review-process",level:2},{value:"WARP review process and requirements",id:"warp-review-process-and-requirements",level:3},{value:"Troubleshooting WARP testing",id:"troubleshooting-warp-testing",level:3},{value:"Next steps",id:"next-steps",level:2},{value:"Still have questions?",id:"still-have-questions",level:2}],p={toc:l},c="wrapper";function d(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,o.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"contributing-to-existing-pipelines"},"Contributing to Existing Pipelines"),(0,r.kt)("p",null,"We encourage the community to make contributions to our existing pipelines, such as updates to workflow code, Docker images and code, and accompanying documentation. "),(0,r.kt)("p",null,"Guidelines for contributing differ slightly depending on the size of the update and whether the contributor has WARP repository permissions. "),(0,r.kt)("p",null,"To get started, read the following ",(0,r.kt)("a",{parentName:"p",href:"#contribution-guidelines"},"Contribution Guidelines")," and the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-tutorial"},"Example Contribution"),". "),(0,r.kt)("p",null,"If you have remaining questions about your contribution, reach out to the WARP team by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"filing a new issue"),"."),(0,r.kt)("admonition",{title:"What if I want to contribute a new pipeline?",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Contribution guidelines for new pipelines are in development, but to contribute a new pipeline, reach out to the WARP team first by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"filing an issue"),". Additionally, read our ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/BestPractices"},"Best Practices")," for pipeline development.")),(0,r.kt)("h3",{id:"contributor-agreement"},"Contributor agreement"),(0,r.kt)("p",null,"All user contributions fall under a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/LICENSE"},"BSD 3-Clause License"),", are not copyright, and are open source. When you make a contribution, you attest that all contributions are your own and not copyrighted by another party."),(0,r.kt)("h2",{id:"contribution-guidelines"},"Contribution Guidelines"),(0,r.kt)("h4",{id:"1-scope-the-work"},"1. Scope the work."),(0,r.kt)("p",null,"Contributions can range from tiny syntax changes to large task, workflow, or Docker updates. Often changes to a single task WDL or Dockerfile can affect multiple workflows that import those same task WDLs or Docker images. This is why it's important to scope updates before proceeding."),(0,r.kt)("admonition",{title:"File an issue for large changes",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"If an update is large, or if you're unsure how a change affects multiple workflows, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("a",{parentName:"strong",href:"https://github.com/broadinstitute/warp/issues/new"},"file an issue")," in WARP first"),". ")),(0,r.kt)("p",null,"Filing an issue allows our team to provide valuable feedback before starting a large effort and appropriately prioritize the review work. "),(0,r.kt)("p",null,"Additionally, there are multiple requirements for our ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"testing")," infrastructure. By filing an issue for large updates, we can work with you right away to flag any potential testing-related issues. "),(0,r.kt)("h4",{id:"2-read-guidelines-for-versioning-changelog-syntax-and-warp-documentation-style"},"2. Read guidelines for versioning, changelog syntax, and WARP Documentation style."),(0,r.kt)("p",null,"Our testing infrastructure relies on specific ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/VersionAndReleasePipelines"},"versioning")," and ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp/changelog_style"},"changelog syntax"),". Pipeline changes must be documented in the changelog with the appropriate syntax."),(0,r.kt)("p",null,"Similarly, if you plan to contribute to WARP Documentation, read the ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp_docs/doc_style"},"WARP Documentation style guide")," first, as it contains helpful formatting tips."),(0,r.kt)("h4",{id:"3-make-a-branch-or-fork-off-the-warp-develop-branch"},"3. Make a branch or fork off the WARP develop branch."),(0,r.kt)("p",null,"If you have WARP repository permissions, GitHub will allow you to make a branch off the WARP ",(0,r.kt)("strong",{parentName:"p"},"develop")," branch when you\u2019re ready to contribute. For more information on how to make a branch, read the GitHub Docs ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/managing-branches#creating-a-branch"},"instructions for branching"),". "),(0,r.kt)("p",null,"If you ",(0,r.kt)("strong",{parentName:"p"},"do not")," have WARP permissions (i.e. you can\u2019t make a branch off of the develop branch), make a fork of the WARP repository following the GitHub Docs ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"instructions for forking"),"."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7330).Z,width:"661",height:"360"})),(0,r.kt)("h4",{id:"4-make-your-updates-on-your-warp-branch-or-fork"},"4. Make your updates on your WARP branch or fork."),(0,r.kt)("p",null,"As your work progresses, make commits to your WARP branch or fork. "),(0,r.kt)("h4",{id:"5-assess-and-make-updates-to-accompanying-pipeline-files"},"5. Assess and make updates to accompanying pipeline files."),(0,r.kt)("p",null,"Updates to pipeline code, Docker images, or reference files might require coordinating additional updates both in WARP, such as modifying accompanying changelogs and pipeline overviews, or outside of WARP, such as uploading Docker images or reference files to public cloud repositories. "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"All changes that affect pipeline workflows must be recorded in the pipeline(s) changelog(s) using semantic versioning. An explanation of this can be found in the ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp/changelog_style"},"changelog style guide"),". ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"When you update the changelog, the pipeline\u2019s WDL workflow version number must also match the changelog entry to ensure the updates pass the WARP testing process (this is shown in the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-tutorial"},"Example Contribution"),").")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If you make any changes to files hosted in cloud repositories, like pipeline Docker images or reference files, coordinate with the WARP team during or before the review process to push the updated files to cloud storage. ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Remember to make necessary updates to the accompanying pipeline documentation such as the pipeline ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/"},"overviews in WARP Documentation"),". "),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"If you\u2019re updating WARP documentation, read the ",(0,r.kt)("a",{parentName:"li",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp_docs/doc_style"},"documentation style guide")," for helpful formatting tips.")))),(0,r.kt)("h4",{id:"6-make-a-pull-request-to-the-warp-develop-branch"},"6. Make a pull request to the WARP ",(0,r.kt)("strong",{parentName:"h4"},"develop")," branch."),(0,r.kt)("p",null,"When updates are ready, ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request"},"make a pull request (PR)")," using WARP's ",(0,r.kt)("strong",{parentName:"p"},"develop")," branch as a base. In the comments section of the PR, notify the WARP team to review the PR and start the necessary repository ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"tests"),". You can do this by typing ",(0,r.kt)("inlineCode",{parentName:"p"},"test and review @broadinstitute/warp-admins"),"."),(0,r.kt)("h4",{id:"7-revise-the-pr-as-necessary-for-the-review-process"},"7. Revise the PR as necessary for the ",(0,r.kt)("a",{parentName:"h4",href:"#review-process"},"review process"),"."),(0,r.kt)("h4",{id:"8-merge-updates-to-the-warp-develop-branch"},"8. Merge updates to the WARP ",(0,r.kt)("strong",{parentName:"h4"},"develop")," branch."),(0,r.kt)("p",null,"If you have permission to merge to the WARP repository, you can merge the PR once it's approved. You\u2019ll receive a reminder to perform a ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-pull-request-commits"},"\u201csquash merge\u201d"),". Please delete individual commit comments and make one summary comment for all commits. "),(0,r.kt)("p",null,"If you don\u2019t have WARP permissions, the WARP team will merge the PR for you when it\u2019s ready."),(0,r.kt)("h2",{id:"review-process"},"Review Process"),(0,r.kt)("h3",{id:"warp-review-process-and-requirements"},"WARP review process and requirements"),(0,r.kt)("p",null,"After contributing a PR, a WARP team member will start a series of ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"tests"),", usually by making an \u201cok to test\u201d comment."),(0,r.kt)("p",null,"For each PR, WARP requires approval from a minimum of two developer reviewers. Additionally, depending on the changes, a review from a scientific owner or a clinical owner is also required, unless the developer is already the scientific or clinical owner. All comments and requests for changes are made directly in the GitHub PR. "),(0,r.kt)("p",null,"Comments will be likely be made within ",(0,r.kt)("strong",{parentName:"p"},"3 business days")," of the PR submission. If no review is started by that time, tag @Kylee Degatano in the PR. "),(0,r.kt)("p",null,"If a PR is abandoned after starting the review process, the WARP team will either take ownership of it or close the PR."),(0,r.kt)("h3",{id:"troubleshooting-warp-testing"},"Troubleshooting WARP testing"),(0,r.kt)("p",null,"All pipelines must pass syntax, scientific and Smart-tests, as described in the ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"testing overview"),". The WARP team will help troubleshoot testing for new contributions. "),(0,r.kt)("h2",{id:"next-steps"},"Next steps"),(0,r.kt)("p",null,"To learn more about how to apply these contribution guidelines to an example small pipeline update, see the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-tutorial"},"Example Contribution"),"."),(0,r.kt)("h2",{id:"still-have-questions"},"Still have questions?"),(0,r.kt)("p",null,"Contact us by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"filing an issue"),"."))}d.isMDXComponent=!0},7330:function(e,t,n){t.Z=n.p+"assets/images/fork-859918a3b8000026d02e337cdfedd1fa.png"}}]); \ No newline at end of file diff --git a/assets/js/517ae54e.9985ff95.js b/assets/js/517ae54e.9985ff95.js new file mode 100644 index 000000000..e745a51ca --- /dev/null +++ b/assets/js/517ae54e.9985ff95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[6430],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=o.createContext({}),l=function(e){var t=o.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,u=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=l(n),h=r,m=c["".concat(u,".").concat(h)]||c[h]||d[h]||i;return n?o.createElement(m,a(a({ref:t},p),{},{components:n})):o.createElement(m,a({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=h;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[c]="string"==typeof e?e:r,a[1]=s;for(var l=2;ldevelop branch.",id:"6-make-a-pull-request-to-the-warp-develop-branch",level:4},{value:"7. Revise the PR as necessary for the review process.",id:"7-revise-the-pr-as-necessary-for-the-review-process",level:4},{value:"8. Merge updates to the WARP develop branch.",id:"8-merge-updates-to-the-warp-develop-branch",level:4},{value:"Review Process",id:"review-process",level:2},{value:"WARP review process and requirements",id:"warp-review-process-and-requirements",level:3},{value:"Troubleshooting WARP testing",id:"troubleshooting-warp-testing",level:3},{value:"Next steps",id:"next-steps",level:2},{value:"Still have questions?",id:"still-have-questions",level:2}],p={toc:l},c="wrapper";function d(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,o.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"contributing-to-existing-pipelines"},"Contributing to Existing Pipelines"),(0,r.kt)("p",null,"We encourage the community to make contributions to our existing pipelines, such as updates to workflow code, Docker images and code, and accompanying documentation. "),(0,r.kt)("p",null,"Guidelines for contributing differ slightly depending on the size of the update and whether the contributor has WARP repository permissions. "),(0,r.kt)("p",null,"To get started, read the following ",(0,r.kt)("a",{parentName:"p",href:"#contribution-guidelines"},"Contribution Guidelines")," and the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-tutorial"},"Example Contribution"),". "),(0,r.kt)("p",null,"If you have remaining questions about your contribution, reach out to the WARP team by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"filing a new issue"),"."),(0,r.kt)("admonition",{title:"What if I want to contribute a new pipeline?",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Contribution guidelines for new pipelines are in development, but to contribute a new pipeline, reach out to the WARP team first by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"filing an issue"),". Additionally, read our ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/BestPractices"},"Best Practices")," for pipeline development.")),(0,r.kt)("h3",{id:"contributor-agreement"},"Contributor agreement"),(0,r.kt)("p",null,"All user contributions fall under a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/LICENSE"},"BSD 3-Clause License"),", are not copyright, and are open source. When you make a contribution, you attest that all contributions are your own and not copyrighted by another party."),(0,r.kt)("h2",{id:"contribution-guidelines"},"Contribution Guidelines"),(0,r.kt)("h4",{id:"1-scope-the-work"},"1. Scope the work."),(0,r.kt)("p",null,"Contributions can range from tiny syntax changes to large task, workflow, or Docker updates. Often changes to a single task WDL or Dockerfile can affect multiple workflows that import those same task WDLs or Docker images. This is why it's important to scope updates before proceeding."),(0,r.kt)("admonition",{title:"File an issue for large changes",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"If an update is large, or if you're unsure how a change affects multiple workflows, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("a",{parentName:"strong",href:"https://github.com/broadinstitute/warp/issues/new"},"file an issue")," in WARP first"),". ")),(0,r.kt)("p",null,"Filing an issue allows our team to provide valuable feedback before starting a large effort and appropriately prioritize the review work. "),(0,r.kt)("p",null,"Additionally, there are multiple requirements for our ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"testing")," infrastructure. By filing an issue for large updates, we can work with you right away to flag any potential testing-related issues. "),(0,r.kt)("h4",{id:"2-read-guidelines-for-versioning-changelog-syntax-and-warp-documentation-style"},"2. Read guidelines for versioning, changelog syntax, and WARP Documentation style."),(0,r.kt)("p",null,"Our testing infrastructure relies on specific ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/VersionAndReleasePipelines"},"versioning")," and ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp/changelog_style"},"changelog syntax"),". Pipeline changes must be documented in the changelog with the appropriate syntax."),(0,r.kt)("p",null,"Similarly, if you plan to contribute to WARP Documentation, read the ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp_docs/doc_style"},"WARP Documentation style guide")," first, as it contains helpful formatting tips."),(0,r.kt)("h4",{id:"3-make-a-branch-or-fork-off-the-warp-develop-branch"},"3. Make a branch or fork off the WARP develop branch."),(0,r.kt)("p",null,"If you have WARP repository permissions, GitHub will allow you to make a branch off the WARP ",(0,r.kt)("strong",{parentName:"p"},"develop")," branch when you\u2019re ready to contribute. For more information on how to make a branch, read the GitHub Docs ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/managing-branches#creating-a-branch"},"instructions for branching"),". "),(0,r.kt)("p",null,"If you ",(0,r.kt)("strong",{parentName:"p"},"do not")," have WARP permissions (i.e. you can\u2019t make a branch off of the develop branch), make a fork of the WARP repository following the GitHub Docs ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"instructions for forking"),"."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7330).Z,width:"661",height:"360"})),(0,r.kt)("h4",{id:"4-make-your-updates-on-your-warp-branch-or-fork"},"4. Make your updates on your WARP branch or fork."),(0,r.kt)("p",null,"As your work progresses, make commits to your WARP branch or fork. "),(0,r.kt)("h4",{id:"5-assess-and-make-updates-to-accompanying-pipeline-files"},"5. Assess and make updates to accompanying pipeline files."),(0,r.kt)("p",null,"Updates to pipeline code, Docker images, or reference files might require coordinating additional updates both in WARP, such as modifying accompanying changelogs and pipeline overviews, or outside of WARP, such as uploading Docker images or reference files to public cloud repositories. "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"All changes that affect pipeline workflows must be recorded in the pipeline(s) changelog(s) using semantic versioning. An explanation of this can be found in the ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp/changelog_style"},"changelog style guide"),". ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"When you update the changelog, the pipeline\u2019s WDL workflow version number must also match the changelog entry to ensure the updates pass the WARP testing process (this is shown in the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-tutorial"},"Example Contribution"),").")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If you make any changes to files hosted in cloud repositories, like pipeline Docker images or reference files, coordinate with the WARP team during or before the review process to push the updated files to cloud storage. ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Remember to make necessary updates to the accompanying pipeline documentation such as the pipeline ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/"},"overviews in WARP Documentation"),". "),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"If you\u2019re updating WARP documentation, read the ",(0,r.kt)("a",{parentName:"li",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp_docs/doc_style"},"documentation style guide")," for helpful formatting tips.")))),(0,r.kt)("h4",{id:"6-make-a-pull-request-to-the-warp-develop-branch"},"6. Make a pull request to the WARP ",(0,r.kt)("strong",{parentName:"h4"},"develop")," branch."),(0,r.kt)("p",null,"When updates are ready, ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request"},"make a pull request (PR)")," using WARP's ",(0,r.kt)("strong",{parentName:"p"},"develop")," branch as a base. In the comments section of the PR, notify the WARP team to review the PR and start the necessary repository ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"tests"),". You can do this by typing ",(0,r.kt)("inlineCode",{parentName:"p"},"test and review @broadinstitute/warp-admins"),"."),(0,r.kt)("h4",{id:"7-revise-the-pr-as-necessary-for-the-review-process"},"7. Revise the PR as necessary for the ",(0,r.kt)("a",{parentName:"h4",href:"#review-process"},"review process"),"."),(0,r.kt)("h4",{id:"8-merge-updates-to-the-warp-develop-branch"},"8. Merge updates to the WARP ",(0,r.kt)("strong",{parentName:"h4"},"develop")," branch."),(0,r.kt)("p",null,"If you have permission to merge to the WARP repository, you can merge the PR once it's approved. You\u2019ll receive a reminder to perform a ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-pull-request-commits"},"\u201csquash merge\u201d"),". Please delete individual commit comments and make one summary comment for all commits. "),(0,r.kt)("p",null,"If you don\u2019t have WARP permissions, the WARP team will merge the PR for you when it\u2019s ready."),(0,r.kt)("h2",{id:"review-process"},"Review Process"),(0,r.kt)("h3",{id:"warp-review-process-and-requirements"},"WARP review process and requirements"),(0,r.kt)("p",null,"After contributing a PR, a WARP team member will start a series of ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"tests"),", usually by making an \u201cok to test\u201d comment."),(0,r.kt)("p",null,"For each PR, WARP requires approval from a minimum of two developer reviewers. Additionally, depending on the changes, a review from a scientific owner or a clinical owner is also required, unless the developer is already the scientific or clinical owner. All comments and requests for changes are made directly in the GitHub PR. "),(0,r.kt)("p",null,"Comments will be likely be made within ",(0,r.kt)("strong",{parentName:"p"},"3 business days")," of the PR submission. If no review is started by that time, tag @Kylee Degatano in the PR. "),(0,r.kt)("p",null,"If a PR is abandoned after starting the review process, the WARP team will either take ownership of it or close the PR."),(0,r.kt)("h3",{id:"troubleshooting-warp-testing"},"Troubleshooting WARP testing"),(0,r.kt)("p",null,"All pipelines must pass syntax, scientific and Smart-tests, as described in the ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"testing overview"),". The WARP team will help troubleshoot testing for new contributions. "),(0,r.kt)("h2",{id:"next-steps"},"Next steps"),(0,r.kt)("p",null,"To learn more about how to apply these contribution guidelines to an example small pipeline update, see the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-tutorial"},"Example Contribution"),"."),(0,r.kt)("h2",{id:"still-have-questions"},"Still have questions?"),(0,r.kt)("p",null,"Contact us by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"filing an issue"),"."))}d.isMDXComponent=!0},7330:function(e,t,n){t.Z=n.p+"assets/images/fork-859918a3b8000026d02e337cdfedd1fa.png"}}]); \ No newline at end of file diff --git a/assets/js/5291e196.01c9834a.js b/assets/js/5291e196.01c9834a.js new file mode 100644 index 000000000..7ef76f78e --- /dev/null +++ b/assets/js/5291e196.01c9834a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[5060],{3905:function(e,t,a){a.d(t,{Zo:function(){return d},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),s=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),c=s(a),m=r,h=c["".concat(p,".").concat(m)]||c[m]||u[m]||i;return a?n.createElement(h,l(l({ref:t},d),{},{components:a})):n.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=m;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:r,l[1]=o;for(var s=2;s=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),s=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),c=s(a),m=r,h=c["".concat(p,".").concat(m)]||c[m]||u[m]||i;return a?n.createElement(h,l(l({ref:t},d),{},{components:a})):n.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=m;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:r,l[1]=o;for(var s=2;s=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var p=r.createContext({}),d=function(t){var e=r.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},o=function(t){var e=d(t.components);return r.createElement(p.Provider,{value:e},t.children)},s="mdxType",f={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},N=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,i=t.originalType,p=t.parentName,o=m(t,["components","mdxType","originalType","parentName"]),s=d(a),N=n,k=s["".concat(p,".").concat(N)]||s[N]||f[N]||i;return a?r.createElement(k,l(l({ref:e},o),{},{components:a})):r.createElement(k,l({ref:e},o))}));function k(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=a.length,l=new Array(i);l[0]=N;var m={};for(var p in e)hasOwnProperty.call(e,p)&&(m[p]=e[p]);m.originalType=t,m[s]="string"==typeof t?t:n,l[1]=m;for(var d=2;d=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var p=r.createContext({}),o=function(t){var e=r.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=o(t.components);return r.createElement(p.Provider,{value:e},t.children)},s="mdxType",f={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},N=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,i=t.originalType,p=t.parentName,d=m(t,["components","mdxType","originalType","parentName"]),s=o(a),N=n,k=s["".concat(p,".").concat(N)]||s[N]||f[N]||i;return a?r.createElement(k,l(l({ref:e},d),{},{components:a})):r.createElement(k,l({ref:e},d))}));function k(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=a.length,l=new Array(i);l[0]=N;var m={};for(var p in e)hasOwnProperty.call(e,p)&&(m[p]=e[p]);m.originalType=t,m[s]="string"==typeof t?t:n,l[1]=m;for(var o=2;o=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),m=p(r),c=a,b=m["".concat(s,".").concat(c)]||m[c]||u[c]||l;return r?n.createElement(b,i(i({ref:t},d),{},{components:r})):n.createElement(b,i({ref:t},d))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:a,i[1]=o;for(var p=2;p1500 genes or nuclei with >1000 genes.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"keeper_median_genes"),(0,a.kt)("td",{parentName:"tr",align:null},"Median genes per cell for cells with >1500 genes or nuclei with >1000 genes.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"keeper_cells"),(0,a.kt)("td",{parentName:"tr",align:null},"Number of cells with >1500 genes or nuclei with >1000 genes.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"percent_keeper"),(0,a.kt)("td",{parentName:"tr",align:null},"Percentage of keeper cells. Calculated as: keeper_cells / estimated_cells")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"percent_usable"),(0,a.kt)("td",{parentName:"tr",align:null},"Percentage of usable cells. Calculated as: keeper_cells / expected_cells")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/60249a3e.9ac5037f.js b/assets/js/60249a3e.9ac5037f.js new file mode 100644 index 000000000..c591eacf4 --- /dev/null +++ b/assets/js/60249a3e.9ac5037f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[870],{3905:function(e,t,r){r.d(t,{Zo:function(){return d},kt:function(){return b}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),m=p(r),c=a,b=m["".concat(s,".").concat(c)]||m[c]||u[c]||l;return r?n.createElement(b,i(i({ref:t},d),{},{components:r})):n.createElement(b,i({ref:t},d))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:a,i[1]=o;for(var p=2;p1500 genes or nuclei with >1000 genes.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"keeper_median_genes"),(0,a.kt)("td",{parentName:"tr",align:null},"Median genes per cell for cells with >1500 genes or nuclei with >1000 genes.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"keeper_cells"),(0,a.kt)("td",{parentName:"tr",align:null},"Number of cells with >1500 genes or nuclei with >1000 genes.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"percent_keeper"),(0,a.kt)("td",{parentName:"tr",align:null},"Percentage of keeper cells. Calculated as: keeper_cells / estimated_cells")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"percent_usable"),(0,a.kt)("td",{parentName:"tr",align:null},"Percentage of usable cells. Calculated as: keeper_cells / expected_cells")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/636516e9.92380fb9.js b/assets/js/636516e9.92380fb9.js deleted file mode 100644 index 0b727f948..000000000 --- a/assets/js/636516e9.92380fb9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[275],{3905:function(t,e,a){a.d(e,{Zo:function(){return m},kt:function(){return c}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function l(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),s=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},m=function(t){var e=s(t.components);return n.createElement(p.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,m=o(t,["components","mdxType","originalType","parentName"]),u=s(a),h=r,c=u["".concat(p,".").concat(h)]||u[h]||d[h]||l;return a?n.createElement(c,i(i({ref:e},m),{},{components:a})):n.createElement(c,i({ref:e},m))}));function c(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=h;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[u]="string"==typeof t?t:r,i[1]=o;for(var s=2;s0.3 being "well-imputed." Since homomorphic sites lead to an R2 value of 0, we report the fraction of sites with any variation which are well-imputed in addition to the fraction of total sites.')),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"StoreChunksInfo"),(0,r.kt)("td",{parentName:"tr",align:null},"---"),(0,r.kt)("td",{parentName:"tr",align:null},"R"),(0,r.kt)("td",{parentName:"tr",align:null},"Uses an R script to record the coordinates of each imputation chunk, number of sites in the original array, and number of sites in the original array which are also in the reference panel, for each imputation chunk.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SplitMultiSampleVcf"),(0,r.kt)("td",{parentName:"tr",align:null},"split"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://samtools.github.io/bcftools/bcftools.html"},"bcftools")),(0,r.kt)("td",{parentName:"tr",align:null},"If boolean is set to true, will split the interleave variants VCF into single sample VCFs.")))),(0,r.kt)("h2",{id:"workflow-outputs"},"Workflow outputs"),(0,r.kt)("p",null,"The table below summarizes the workflow outputs. If running the workflow on Cromwell, these outputs are found in the task execution directory."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Output name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"imputed_single_sample_vcfs"),(0,r.kt)("td",{parentName:"tr",align:null},"Array of imputed single sample VCFs from the SplitMultiSampleVcf task."),(0,r.kt)("td",{parentName:"tr",align:null},"Array")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"imputed_single_sample_vcf_indices"),(0,r.kt)("td",{parentName:"tr",align:null},"Array of indices for the imputed VCFs from the SplitMultiSampleVcf task"),(0,r.kt)("td",{parentName:"tr",align:null},"Array")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"imputed_multisample_vcf"),(0,r.kt)("td",{parentName:"tr",align:null},"VCF from the InterleaveVariants task; contains imputed variants as well as missing variants from the input VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"VCF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"imputed_multisample_vcf_index"),(0,r.kt)("td",{parentName:"tr",align:null},"Index file for VCF from the InterleaveVariants task."),(0,r.kt)("td",{parentName:"tr",align:null},"Index")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"aggregated_imputation_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},'Aggregated QC metrics from the MergeImputationQcMetrics task; reports the fraction of sites well-imputed and outputs to TXT file; fraction of "well-imputed" is based on the minimac reported R2 metric, with R2>0.3 being "well-imputed." Since homomorphic sites lead to an R2 value of 0, we report the fraction of sites with any variation which are well-imputed in addition to the fraction of total sites.'),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"chunks_info"),(0,r.kt)("td",{parentName:"tr",align:null},"TSV from StoreChunksInfo task; contains the chunk intervals as well as the number of variants in the array."),(0,r.kt)("td",{parentName:"tr",align:null},"TSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"failed_chunks"),(0,r.kt)("td",{parentName:"tr",align:null},"File with the failed chunks from the StoreChunksInfo task."),(0,r.kt)("td",{parentName:"tr",align:null},"File")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"n_failed_chunks"),(0,r.kt)("td",{parentName:"tr",align:null},"File with the number of failed chunks from the StoreChunksInfo task."),(0,r.kt)("td",{parentName:"tr",align:null},"File")))),(0,r.kt)("h2",{id:"important-notes"},"Important notes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Runtime parameters are optimized for Broad's Google Cloud Platform implementation.")),(0,r.kt)("h2",{id:"price-estimates"},"Price estimates"),(0,r.kt)("p",null,"The pipeline is cost-optimized for between 100 and 1,000 samples, where the cost per sample continues to decrease until 1,000 samples are run. Cost estimates per sample are provided below:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Cohort size ( # samples)"),(0,r.kt)("th",{parentName:"tr",align:null},"Cost per sample ($)"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"8")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"10"),(0,r.kt)("td",{parentName:"tr",align:null},"0.8")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"100"),(0,r.kt)("td",{parentName:"tr",align:null},"0.11")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"1000"),(0,r.kt)("td",{parentName:"tr",align:null},"0.024")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"13.5 K"),(0,r.kt)("td",{parentName:"tr",align:null},"0.025")))),(0,r.kt)("h2",{id:"citing-the-imputation-pipeline"},"Citing the Imputation Pipeline"),(0,r.kt)("p",null,"If you use the Imputation Pipeline in your research, please consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"contact-us"},"Contact us"),(0,r.kt)("p",null,"Help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."),(0,r.kt)("h2",{id:"licensing"},"Licensing"),(0,r.kt)("p",null,"Copyright Broad Institute, 2020 | BSD-3"),(0,r.kt)("p",null,"The workflow script is released under the ",(0,r.kt)("strong",{parentName:"p"},"WDL open source code license (BSD-3)")," (full license text at ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/LICENSE"},"https://github.com/broadinstitute/warp/blob/master/LICENSE"),"). However, please note that the programs it calls may be subject to different licenses. Users are responsible for checking that they are authorized to run all programs before running this script."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/broadinstitute/gatk/blob/master/LICENSE.TXT"},"GATK")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/broadinstitute/picard/blob/master/LICENSE.txt"},"Picard")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://alkesgroup.broadinstitute.org/Eagle/#x1-340007"},"Eagle2")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/statgen/Minimac4/blob/master/LICENSE"},"minimac4")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/samtools/bcftools/blob/develop/LICENSE"},"bcftools"),"\n-",(0,r.kt)("a",{parentName:"li",href:"http://vcftools.sourceforge.net/license.html"},"vcftools"))))}d.isMDXComponent=!0},5077:function(t,e,a){e.Z=a.p+"assets/images/imputation-fa25d2e8cbb65cb07b1da17932ca6be7.png"}}]); \ No newline at end of file diff --git a/assets/js/636516e9.eaaa0705.js b/assets/js/636516e9.eaaa0705.js new file mode 100644 index 000000000..84c5c5388 --- /dev/null +++ b/assets/js/636516e9.eaaa0705.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[275],{3905:function(t,e,a){a.d(e,{Zo:function(){return m},kt:function(){return c}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function l(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),s=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},m=function(t){var e=s(t.components);return n.createElement(p.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,m=o(t,["components","mdxType","originalType","parentName"]),u=s(a),h=r,c=u["".concat(p,".").concat(h)]||u[h]||d[h]||l;return a?n.createElement(c,i(i({ref:e},m),{},{components:a})):n.createElement(c,i({ref:e},m))}));function c(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=h;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[u]="string"==typeof t?t:r,i[1]=o;for(var s=2;s0.3 being "well-imputed." Since homomorphic sites lead to an R2 value of 0, we report the fraction of sites with any variation which are well-imputed in addition to the fraction of total sites.')),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"StoreChunksInfo"),(0,r.kt)("td",{parentName:"tr",align:null},"---"),(0,r.kt)("td",{parentName:"tr",align:null},"R"),(0,r.kt)("td",{parentName:"tr",align:null},"Uses an R script to record the coordinates of each imputation chunk, number of sites in the original array, and number of sites in the original array which are also in the reference panel, for each imputation chunk.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SplitMultiSampleVcf"),(0,r.kt)("td",{parentName:"tr",align:null},"split"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://samtools.github.io/bcftools/bcftools.html"},"bcftools")),(0,r.kt)("td",{parentName:"tr",align:null},"If boolean is set to true, will split the interleave variants VCF into single sample VCFs.")))),(0,r.kt)("h2",{id:"workflow-outputs"},"Workflow outputs"),(0,r.kt)("p",null,"The table below summarizes the workflow outputs. If running the workflow on Cromwell, these outputs are found in the task execution directory."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Output name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"imputed_single_sample_vcfs"),(0,r.kt)("td",{parentName:"tr",align:null},"Array of imputed single sample VCFs from the SplitMultiSampleVcf task."),(0,r.kt)("td",{parentName:"tr",align:null},"Array")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"imputed_single_sample_vcf_indices"),(0,r.kt)("td",{parentName:"tr",align:null},"Array of indices for the imputed VCFs from the SplitMultiSampleVcf task"),(0,r.kt)("td",{parentName:"tr",align:null},"Array")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"imputed_multisample_vcf"),(0,r.kt)("td",{parentName:"tr",align:null},"VCF from the InterleaveVariants task; contains imputed variants as well as missing variants from the input VCF."),(0,r.kt)("td",{parentName:"tr",align:null},"VCF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"imputed_multisample_vcf_index"),(0,r.kt)("td",{parentName:"tr",align:null},"Index file for VCF from the InterleaveVariants task."),(0,r.kt)("td",{parentName:"tr",align:null},"Index")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"aggregated_imputation_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},'Aggregated QC metrics from the MergeImputationQcMetrics task; reports the fraction of sites well-imputed and outputs to TXT file; fraction of "well-imputed" is based on the minimac reported R2 metric, with R2>0.3 being "well-imputed." Since homomorphic sites lead to an R2 value of 0, we report the fraction of sites with any variation which are well-imputed in addition to the fraction of total sites.'),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"chunks_info"),(0,r.kt)("td",{parentName:"tr",align:null},"TSV from StoreChunksInfo task; contains the chunk intervals as well as the number of variants in the array."),(0,r.kt)("td",{parentName:"tr",align:null},"TSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"failed_chunks"),(0,r.kt)("td",{parentName:"tr",align:null},"File with the failed chunks from the StoreChunksInfo task."),(0,r.kt)("td",{parentName:"tr",align:null},"File")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"n_failed_chunks"),(0,r.kt)("td",{parentName:"tr",align:null},"File with the number of failed chunks from the StoreChunksInfo task."),(0,r.kt)("td",{parentName:"tr",align:null},"File")))),(0,r.kt)("h2",{id:"important-notes"},"Important notes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Runtime parameters are optimized for Broad's Google Cloud Platform implementation.")),(0,r.kt)("h2",{id:"price-estimates"},"Price estimates"),(0,r.kt)("p",null,"The pipeline is cost-optimized for between 100 and 1,000 samples, where the cost per sample continues to decrease until 1,000 samples are run. Cost estimates per sample are provided below:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Cohort size ( # samples)"),(0,r.kt)("th",{parentName:"tr",align:null},"Cost per sample ($)"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"8")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"10"),(0,r.kt)("td",{parentName:"tr",align:null},"0.8")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"100"),(0,r.kt)("td",{parentName:"tr",align:null},"0.11")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"1000"),(0,r.kt)("td",{parentName:"tr",align:null},"0.024")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"13.5 K"),(0,r.kt)("td",{parentName:"tr",align:null},"0.025")))),(0,r.kt)("h2",{id:"citing-the-imputation-pipeline"},"Citing the Imputation Pipeline"),(0,r.kt)("p",null,"If you use the Imputation Pipeline in your research, please consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"contact-us"},"Contact us"),(0,r.kt)("p",null,"Help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."),(0,r.kt)("h2",{id:"licensing"},"Licensing"),(0,r.kt)("p",null,"Copyright Broad Institute, 2020 | BSD-3"),(0,r.kt)("p",null,"The workflow script is released under the ",(0,r.kt)("strong",{parentName:"p"},"WDL open source code license (BSD-3)")," (full license text at ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/LICENSE"},"https://github.com/broadinstitute/warp/blob/master/LICENSE"),"). However, please note that the programs it calls may be subject to different licenses. Users are responsible for checking that they are authorized to run all programs before running this script."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/broadinstitute/gatk/blob/master/LICENSE.TXT"},"GATK")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/broadinstitute/picard/blob/master/LICENSE.txt"},"Picard")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://alkesgroup.broadinstitute.org/Eagle/#x1-340007"},"Eagle2")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/statgen/Minimac4/blob/master/LICENSE"},"minimac4")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/samtools/bcftools/blob/develop/LICENSE"},"bcftools"),"\n-",(0,r.kt)("a",{parentName:"li",href:"http://vcftools.sourceforge.net/license.html"},"vcftools"))))}d.isMDXComponent=!0},5077:function(t,e,a){e.Z=a.p+"assets/images/imputation-fa25d2e8cbb65cb07b1da17932ca6be7.png"}}]); \ No newline at end of file diff --git a/assets/js/644602c7.2122cfbb.js b/assets/js/644602c7.2122cfbb.js new file mode 100644 index 000000000..416064b31 --- /dev/null +++ b/assets/js/644602c7.2122cfbb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[4182],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return h}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=p(n),m=i,h=c["".concat(s,".").concat(m)]||c[m]||u[m]||a;return n?r.createElement(h,o(o({ref:t},d),{},{components:n})):r.createElement(h,o({ref:t},d))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:i,o[1]=l;for(var p=2;p=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=p(n),m=i,h=c["".concat(s,".").concat(m)]||c[m]||u[m]||a;return n?r.createElement(h,o(o({ref:t},d),{},{components:n})):r.createElement(h,o({ref:t},d))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:i,o[1]=l;for(var p=2;p=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=p(a),u=r,h=d["".concat(s,".").concat(u)]||d[u]||m[u]||i;return a?n.createElement(h,o(o({ref:t},c),{},{components:a})):n.createElement(h,o({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,o[1]=l;for(var p=2;p>> ds.attrs.input_id\n'166c1b1a-ad9c-4476-a4ec-8b52eb5032c7, 22b7da3d-a301-433e-99e1-e67266c1ee8b, 337a48c5-e363-45aa-886f-ccd4425edc2b, 40630e8b-c3a3-4813-b1e4-b156637c5cc3, 58d703d1-d366-42d0-af44-a3bb836838a5, 70c8d647-7984-4d03-912a-f2437aa1ba4f, 7c86cf30-4284-4a0d-817f-6047560c05c3, 8ef7aca4-be00-4c03-8576-1b2eff4ce7af, ae0cfa6e-e7cb-4a88-9f89-1c44abaa2291, cbd23025-b1bf-4e9e-a297-ddab4a217b76, df049da4-3d20-4da7-a1d7-7d6e8f7740ff, e17bf5ea-788b-4756-a008-a07aec091e10'\n>>> \n")),(0,r.kt)("p",null,"Notice the attribute's value is a string of comma- ",(0,r.kt)("strong",{parentName:"p"},"and space-")," separated UUIDs."),(0,r.kt)("p",null,"Each of these UUIDs represents one library preparation. This matrix contains data from 12 library preparations total. "),(0,r.kt)("p",null,"Now let's look at the ",(0,r.kt)("inlineCode",{parentName:"p"},"cell_names")," column attribute which contains the unique cell barcodes:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},">>> ds.ca.cell_names\narray(['GGACAAGAGTGCGTGA-0', 'GATCGATCACCAGGTC-0', 'AGCGGTCAGGGCTTGA-0',\n ..., 'GTACGTAAGCTATGCT-11', 'CAGAATCTCTGAGTGT-11',\n 'AACACGTAGTGTTTGC-11'], dtype=object)\n>>> \n")),(0,r.kt)("p",null,"The suffix appended to the barcodes in the ",(0,r.kt)("inlineCode",{parentName:"p"},"cell_names")," column is the index for the ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id")," UUID to which the cell barcodes belong. "),(0,r.kt)("p",null,'For example, cell barcodes with a "-0" suffix belong to the library preparation represented by the first UUID, ',(0,r.kt)("inlineCode",{parentName:"p"},"166c1b1a-ad9c-4476-a4ec-8b52eb5032c7"),', whereas cell barcodes with a "-11" suffix represent the 10th UUID, ',(0,r.kt)("inlineCode",{parentName:"p"},"cbd23025-b1bf-4e9e-a297-ddab4a217b76"),"."),(0,r.kt)("h3",{id:"mapping-dcp-project-matrix-data-to-the-metadata-manifest"},"Mapping DCP project matrix data to the metadata manifest"),(0,r.kt)("p",null,"While the project matrices contain some project metadata (listed in the table above), there is additionally useful metadata in the project's metadata manifest, a TSV file containing all of a project's metadata, including donor and disease state information."),(0,r.kt)("p",null,"In addition to the global attribute ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id"),", each project matrix has an ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id")," column that can be useful for mapping matrix data back to the DCP metadata manifest. "),(0,r.kt)("p",null,"The values listed in the ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id")," column match the library preparation UUID in the metadata manifest column ",(0,r.kt)("inlineCode",{parentName:"p"},"sequencing_process.provenance.document_id"),". "),(0,r.kt)("p",null,"Read more about the metadata manifest in the DCP ",(0,r.kt)("a",{parentName:"p",href:"https://data.humancellatlas.org/guides"},"Exploring Projects guide"),"."),(0,r.kt)("admonition",{title:"Explore HCA Project matrices in Terra",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"HCA matrices produced with Optimus are compatible with multiple downstream community analysis tools. For a tutorial on using the Optimus matrix with ",(0,r.kt)("a",{parentName:"p",href:"https://satijalab.org/seurat/index.html"},"Seurat"),", ",(0,r.kt)("a",{parentName:"p",href:"https://scanpy.readthedocs.io/en/stable/"},"Scanpy"),", ",(0,r.kt)("a",{parentName:"p",href:"https://cumulus.readthedocs.io/en/latest/index.html"},"Cumulus"),", or ",(0,r.kt)("a",{parentName:"p",href:"https://pegasus.readthedocs.io/en/stable/#"},"Pegasus"),", see the public ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/Intro-to-HCA-data-on-Terra"},"Intro-to-HCA-data-on-Terra workspace")," (login required) and its accompanying ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us/articles/360060041772"},"step-by-step guide"),".")),(0,r.kt)("h3",{id:"mapping-dcp-project-matrix-data-to-the-contributor-matrices"},"Mapping DCP project matrix data to the contributor matrices"),(0,r.kt)("p",null,"Contributor matrices contain data analyzed and provided by the original project contributors. While they vary in format and content from project to project, they often include cell type annotations and additional metadata such as donor information and cell barcodes. "),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"If the contributor matrix contains donor metadata that matches a field in the project metadata manifest"),", the matrix can be linked to the DCP-generated project matrix in a two-step process."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"First, map the DCP matrix to the metadata manifest using the Loom's ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id")," ",(0,r.kt)("strong",{parentName:"p"},"column"),"; this column contains the same library preparation/donor IDs as the project metadata manifest's ",(0,r.kt)("inlineCode",{parentName:"p"},"sequencing_process.provenance.document_id")," column. ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Second, map the contributor matrix to the metadata manifest using the contributor matrix column that matches the metadata manifest. "))),(0,r.kt)("p",null,"Contributor matrices might contain a column for cell barcodes for each library/preparation donor. These barcodes should match the non-unique barcodes listed in the DCP project matrix, with the exception of cells that might have been filtered out of the Loom matrix due to low UMIs. The Loom's non-unique barcodes are listed in the ",(0,r.kt)("inlineCode",{parentName:"p"},"CellID")," column. "),(0,r.kt)("p",null,(0,r.kt)("img",{src:a(5051).Z,width:"1720",height:"763"})),(0,r.kt)("p",null,"For example code showing how to link a contributor matrix to a DCP project matrix, see the ",(0,r.kt)("a",{target:"_blank",href:a(1612).Z},"Matrix_matching Jupyter Notebook"),"."),(0,r.kt)("p",null,"If you have any questions related to the contributor matrix and content, reach out to the individual project contributors listed on the Project page."),(0,r.kt)("h2",{id:"brain-initiative-cell-census-network-processing"},"Brain Initiative Cell Census Network Processing"),(0,r.kt)("p",null,"The Optimus pipeline supports data processing for the ",(0,r.kt)("a",{parentName:"p",href:"https://biccn.org/"},"BRAIN Initiative Cell Census Network (BICCN)"),". An overview of the BICCN pipeline resources is available on the BICCN's ",(0,r.kt)("a",{parentName:"p",href:"https://biccn.org/tools/biccn-pipelines"},"Pipelines page"),"."),(0,r.kt)("h3",{id:"optimus-reference-files-for-biccn-data-processing"},"Optimus reference files for BICCN data processing"),(0,r.kt)("p",null,"The BICCN 2.0 Whole Mouse Brain Working Group uses the Ensembl GRCm38 reference for alignment and a modified GTF for gene annotation (see table below). All Optimus pipeline reference inputs were created with the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/tree/master/pipelines/skylab/build_indices"},"BuildIndices workflow"),"."),(0,r.kt)("p",null,"BICCN processes single-nucleus data, which is enriched in pre-mRNAs containing introns. To account for this, the BuildIndices workflow uses the ",(0,r.kt)("inlineCode",{parentName:"p"},"BuildStarSingleNucleus")," task to add intron annotations to the GTF with a custom ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp-tools/blob/develop/3rd-party-tools/build-indices/add-introns-to-gtf.py"},"python script"),". The GTF contains all annotations for any ",(0,r.kt)("inlineCode",{parentName:"p"},"gene_id")," that has at least one transcript. This reduces the number of genes in the GTF to ","~","32,000. "),(0,r.kt)("p",null,"All reference files are available in a public Google bucket (see table below) and are accompanied by a README that details reference provenance (gs://gcp-public-data--broad-references/mm10/v0/README_mm10_singlecell_gencode.txt). "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Optimus reference input name"),(0,r.kt)("th",{parentName:"tr",align:null},"Google bucket URI"),(0,r.kt)("th",{parentName:"tr",align:null},"Reference source"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"annotations_gtf")),(0,r.kt)("td",{parentName:"tr",align:null},"gs://gcp-public-data--broad-references/mm10/v0/single_nucleus/modified_gencode.vM23.primary_assembly.annotation.gtf"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M23/gencode.vM23.annotation.gtf.gzf"},"https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M23/gencode.vM23.annotation.gtf.gzf")),(0,r.kt)("td",{parentName:"tr",align:null},"Modified GENCODE GTF including intron annotations that can be used for intron counting with featureCounts.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ref_genome_fasta")),(0,r.kt)("td",{parentName:"tr",align:null},"gs://gcp-public-data--broad-references/mm10/v0/single_nucleus/modified_mm10.primary_assembly.genome.fa"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M23/GRCm38.p6.genome.fa.gz"},"https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M23/GRCm38.p6.genome.fa.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"FASTA filed used to create the STAR reference files.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"tar_star_reference")),(0,r.kt)("td",{parentName:"tr",align:null},"gs://gcp-public-data--broad-references/mm10/v0/single_nucleus/star/modified_star_2.7.9a_primary_gencode_mouse_vM23.tar"),(0,r.kt)("td",{parentName:"tr",align:null},"NA \u2014 built with the BuildIndices workflow."),(0,r.kt)("td",{parentName:"tr",align:null},"Reference files used for alignment with STAR.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"whitelist")),(0,r.kt)("td",{parentName:"tr",align:null},"gs://broad-gotc-test-storage/Optimus/truth/plumbing/master/inputs/737K-august-2016.txt (for v2 chemistry) and gs://broad-gotc-test-storage/Optimus/truth/plumbing/master/inputs/3M-february-2018.txt (for v3 chemisty)"),(0,r.kt)("td",{parentName:"tr",align:null},"See ",(0,r.kt)("a",{parentName:"td",href:"https://kb.10xgenomics.com/hc/en-us/articles/115004506263-What-is-a-barcode-whitelist"},"10x barcode descriptions"),"."),(0,r.kt)("td",{parentName:"tr",align:null},"List of barcode sequences included in 10x library preparations. Each barcode demarcates an individual cell.")))))}m.isMDXComponent=!0},1612:function(e,t,a){t.Z=a.p+"assets/files/Matrix_matching-2c4edc3d0b1881f352a39bd44e22513d.ipynb"},5051:function(e,t,a){t.Z=a.p+"assets/images/mapping_matrices-431db5e1dfb615be0c1741fbb863465e.png"},985:function(e,t,a){t.Z=a.p+"assets/images/post_processing-256dd7dbd7f417796924b928983dadc3.png"},1954:function(e,t,a){t.Z=a.p+"assets/images/unique_barcodes-9a129aad53dcd952b00b44ad268b51f3.png"}}]); \ No newline at end of file diff --git a/assets/js/66239a34.9e3b8eff.js b/assets/js/66239a34.9e3b8eff.js new file mode 100644 index 000000000..d8776ea16 --- /dev/null +++ b/assets/js/66239a34.9e3b8eff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[8420],{3905:function(e,t,a){a.d(t,{Zo:function(){return c},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=p(a),u=r,h=d["".concat(s,".").concat(u)]||d[u]||m[u]||i;return a?n.createElement(h,o(o({ref:t},c),{},{components:a})):n.createElement(h,o({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,o[1]=l;for(var p=2;p>> ds.attrs.input_id\n'166c1b1a-ad9c-4476-a4ec-8b52eb5032c7, 22b7da3d-a301-433e-99e1-e67266c1ee8b, 337a48c5-e363-45aa-886f-ccd4425edc2b, 40630e8b-c3a3-4813-b1e4-b156637c5cc3, 58d703d1-d366-42d0-af44-a3bb836838a5, 70c8d647-7984-4d03-912a-f2437aa1ba4f, 7c86cf30-4284-4a0d-817f-6047560c05c3, 8ef7aca4-be00-4c03-8576-1b2eff4ce7af, ae0cfa6e-e7cb-4a88-9f89-1c44abaa2291, cbd23025-b1bf-4e9e-a297-ddab4a217b76, df049da4-3d20-4da7-a1d7-7d6e8f7740ff, e17bf5ea-788b-4756-a008-a07aec091e10'\n>>> \n")),(0,r.kt)("p",null,"Notice the attribute's value is a string of comma- ",(0,r.kt)("strong",{parentName:"p"},"and space-")," separated UUIDs."),(0,r.kt)("p",null,"Each of these UUIDs represents one library preparation. This matrix contains data from 12 library preparations total. "),(0,r.kt)("p",null,"Now let's look at the ",(0,r.kt)("inlineCode",{parentName:"p"},"cell_names")," column attribute which contains the unique cell barcodes:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},">>> ds.ca.cell_names\narray(['GGACAAGAGTGCGTGA-0', 'GATCGATCACCAGGTC-0', 'AGCGGTCAGGGCTTGA-0',\n ..., 'GTACGTAAGCTATGCT-11', 'CAGAATCTCTGAGTGT-11',\n 'AACACGTAGTGTTTGC-11'], dtype=object)\n>>> \n")),(0,r.kt)("p",null,"The suffix appended to the barcodes in the ",(0,r.kt)("inlineCode",{parentName:"p"},"cell_names")," column is the index for the ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id")," UUID to which the cell barcodes belong. "),(0,r.kt)("p",null,'For example, cell barcodes with a "-0" suffix belong to the library preparation represented by the first UUID, ',(0,r.kt)("inlineCode",{parentName:"p"},"166c1b1a-ad9c-4476-a4ec-8b52eb5032c7"),', whereas cell barcodes with a "-11" suffix represent the 10th UUID, ',(0,r.kt)("inlineCode",{parentName:"p"},"cbd23025-b1bf-4e9e-a297-ddab4a217b76"),"."),(0,r.kt)("h3",{id:"mapping-dcp-project-matrix-data-to-the-metadata-manifest"},"Mapping DCP project matrix data to the metadata manifest"),(0,r.kt)("p",null,"While the project matrices contain some project metadata (listed in the table above), there is additionally useful metadata in the project's metadata manifest, a TSV file containing all of a project's metadata, including donor and disease state information."),(0,r.kt)("p",null,"In addition to the global attribute ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id"),", each project matrix has an ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id")," column that can be useful for mapping matrix data back to the DCP metadata manifest. "),(0,r.kt)("p",null,"The values listed in the ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id")," column match the library preparation UUID in the metadata manifest column ",(0,r.kt)("inlineCode",{parentName:"p"},"sequencing_process.provenance.document_id"),". "),(0,r.kt)("p",null,"Read more about the metadata manifest in the DCP ",(0,r.kt)("a",{parentName:"p",href:"https://data.humancellatlas.org/guides"},"Exploring Projects guide"),"."),(0,r.kt)("admonition",{title:"Explore HCA Project matrices in Terra",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"HCA matrices produced with Optimus are compatible with multiple downstream community analysis tools. For a tutorial on using the Optimus matrix with ",(0,r.kt)("a",{parentName:"p",href:"https://satijalab.org/seurat/index.html"},"Seurat"),", ",(0,r.kt)("a",{parentName:"p",href:"https://scanpy.readthedocs.io/en/stable/"},"Scanpy"),", ",(0,r.kt)("a",{parentName:"p",href:"https://cumulus.readthedocs.io/en/latest/index.html"},"Cumulus"),", or ",(0,r.kt)("a",{parentName:"p",href:"https://pegasus.readthedocs.io/en/stable/#"},"Pegasus"),", see the public ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/Intro-to-HCA-data-on-Terra"},"Intro-to-HCA-data-on-Terra workspace")," (login required) and its accompanying ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us/articles/360060041772"},"step-by-step guide"),".")),(0,r.kt)("h3",{id:"mapping-dcp-project-matrix-data-to-the-contributor-matrices"},"Mapping DCP project matrix data to the contributor matrices"),(0,r.kt)("p",null,"Contributor matrices contain data analyzed and provided by the original project contributors. While they vary in format and content from project to project, they often include cell type annotations and additional metadata such as donor information and cell barcodes. "),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"If the contributor matrix contains donor metadata that matches a field in the project metadata manifest"),", the matrix can be linked to the DCP-generated project matrix in a two-step process."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"First, map the DCP matrix to the metadata manifest using the Loom's ",(0,r.kt)("inlineCode",{parentName:"p"},"input_id")," ",(0,r.kt)("strong",{parentName:"p"},"column"),"; this column contains the same library preparation/donor IDs as the project metadata manifest's ",(0,r.kt)("inlineCode",{parentName:"p"},"sequencing_process.provenance.document_id")," column. ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Second, map the contributor matrix to the metadata manifest using the contributor matrix column that matches the metadata manifest. "))),(0,r.kt)("p",null,"Contributor matrices might contain a column for cell barcodes for each library/preparation donor. These barcodes should match the non-unique barcodes listed in the DCP project matrix, with the exception of cells that might have been filtered out of the Loom matrix due to low UMIs. The Loom's non-unique barcodes are listed in the ",(0,r.kt)("inlineCode",{parentName:"p"},"CellID")," column. "),(0,r.kt)("p",null,(0,r.kt)("img",{src:a(5051).Z,width:"1720",height:"763"})),(0,r.kt)("p",null,"For example code showing how to link a contributor matrix to a DCP project matrix, see the ",(0,r.kt)("a",{target:"_blank",href:a(1612).Z},"Matrix_matching Jupyter Notebook"),"."),(0,r.kt)("p",null,"If you have any questions related to the contributor matrix and content, reach out to the individual project contributors listed on the Project page."),(0,r.kt)("h2",{id:"brain-initiative-cell-census-network-processing"},"Brain Initiative Cell Census Network Processing"),(0,r.kt)("p",null,"The Optimus pipeline supports data processing for the ",(0,r.kt)("a",{parentName:"p",href:"https://biccn.org/"},"BRAIN Initiative Cell Census Network (BICCN)"),". An overview of the BICCN pipeline resources is available on the BICCN's ",(0,r.kt)("a",{parentName:"p",href:"https://biccn.org/tools/biccn-pipelines"},"Pipelines page"),"."),(0,r.kt)("h3",{id:"optimus-reference-files-for-biccn-data-processing"},"Optimus reference files for BICCN data processing"),(0,r.kt)("p",null,"The BICCN 2.0 Whole Mouse Brain Working Group uses the Ensembl GRCm38 reference for alignment and a modified GTF for gene annotation (see table below). All Optimus pipeline reference inputs were created with the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/tree/master/pipelines/skylab/build_indices"},"BuildIndices workflow"),"."),(0,r.kt)("p",null,"BICCN processes single-nucleus data, which is enriched in pre-mRNAs containing introns. To account for this, the BuildIndices workflow uses the ",(0,r.kt)("inlineCode",{parentName:"p"},"BuildStarSingleNucleus")," task to add intron annotations to the GTF with a custom ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp-tools/blob/develop/3rd-party-tools/build-indices/add-introns-to-gtf.py"},"python script"),". The GTF contains all annotations for any ",(0,r.kt)("inlineCode",{parentName:"p"},"gene_id")," that has at least one transcript. This reduces the number of genes in the GTF to ","~","32,000. "),(0,r.kt)("p",null,"All reference files are available in a public Google bucket (see table below) and are accompanied by a README that details reference provenance (gs://gcp-public-data--broad-references/mm10/v0/README_mm10_singlecell_gencode.txt). "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Optimus reference input name"),(0,r.kt)("th",{parentName:"tr",align:null},"Google bucket URI"),(0,r.kt)("th",{parentName:"tr",align:null},"Reference source"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"annotations_gtf")),(0,r.kt)("td",{parentName:"tr",align:null},"gs://gcp-public-data--broad-references/mm10/v0/single_nucleus/modified_gencode.vM23.primary_assembly.annotation.gtf"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M23/gencode.vM23.annotation.gtf.gzf"},"https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M23/gencode.vM23.annotation.gtf.gzf")),(0,r.kt)("td",{parentName:"tr",align:null},"Modified GENCODE GTF including intron annotations that can be used for intron counting with featureCounts.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ref_genome_fasta")),(0,r.kt)("td",{parentName:"tr",align:null},"gs://gcp-public-data--broad-references/mm10/v0/single_nucleus/modified_mm10.primary_assembly.genome.fa"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M23/GRCm38.p6.genome.fa.gz"},"https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M23/GRCm38.p6.genome.fa.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"FASTA filed used to create the STAR reference files.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"tar_star_reference")),(0,r.kt)("td",{parentName:"tr",align:null},"gs://gcp-public-data--broad-references/mm10/v0/single_nucleus/star/modified_star_2.7.9a_primary_gencode_mouse_vM23.tar"),(0,r.kt)("td",{parentName:"tr",align:null},"NA \u2014 built with the BuildIndices workflow."),(0,r.kt)("td",{parentName:"tr",align:null},"Reference files used for alignment with STAR.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"whitelist")),(0,r.kt)("td",{parentName:"tr",align:null},"gs://broad-gotc-test-storage/Optimus/truth/plumbing/master/inputs/737K-august-2016.txt (for v2 chemistry) and gs://broad-gotc-test-storage/Optimus/truth/plumbing/master/inputs/3M-february-2018.txt (for v3 chemisty)"),(0,r.kt)("td",{parentName:"tr",align:null},"See ",(0,r.kt)("a",{parentName:"td",href:"https://kb.10xgenomics.com/hc/en-us/articles/115004506263-What-is-a-barcode-whitelist"},"10x barcode descriptions"),"."),(0,r.kt)("td",{parentName:"tr",align:null},"List of barcode sequences included in 10x library preparations. Each barcode demarcates an individual cell.")))))}m.isMDXComponent=!0},1612:function(e,t,a){t.Z=a.p+"assets/files/Matrix_matching-2c4edc3d0b1881f352a39bd44e22513d.ipynb"},5051:function(e,t,a){t.Z=a.p+"assets/images/mapping_matrices-431db5e1dfb615be0c1741fbb863465e.png"},985:function(e,t,a){t.Z=a.p+"assets/images/post_processing-256dd7dbd7f417796924b928983dadc3.png"},1954:function(e,t,a){t.Z=a.p+"assets/images/unique_barcodes-9a129aad53dcd952b00b44ad268b51f3.png"}}]); \ No newline at end of file diff --git a/assets/js/68037889.16ecb038.js b/assets/js/68037889.16ecb038.js deleted file mode 100644 index f87fbb33f..000000000 --- a/assets/js/68037889.16ecb038.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[1798],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return f}});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=p(a),c=i,f=m["".concat(s,".").concat(c)]||m[c]||d[c]||l;return a?n.createElement(f,r(r({ref:t},u),{},{components:a})):n.createElement(f,r({ref:t},u))}));function f(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=a.length,r=new Array(l);r[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:i,r[1]=o;for(var p=2;p=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=p(a),c=i,f=m["".concat(s,".").concat(c)]||m[c]||d[c]||l;return a?n.createElement(f,r(r({ref:t},u),{},{components:a})):n.createElement(f,r({ref:t},u))}));function f(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=a.length,r=new Array(l);r[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:i,r[1]=o;for(var p=2;p=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=u(n),p=r,b=m["".concat(s,".").concat(p)]||m[p]||d[p]||o;return n?a.createElement(b,l(l({ref:t},c),{},{components:n})):a.createElement(b,l({ref:t},c))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=p;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[m]="string"==typeof e?e:r,l[1]=i;for(var u=2;u({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...r}=e;n>=0?t[n].children.push(r):a.push(r)})),a}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function s(e){const t=e.getBoundingClientRect();return t.top===t.bottom?s(e.parentNode):t}function u(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>s(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function m(e){const t=(0,r.useRef)(void 0),n=c();(0,r.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:r,minHeadingLevel:o,maxHeadingLevel:l}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),i=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let r=t;r<=n;r+=1)a.push(`h${r}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:o,maxHeadingLevel:l}),s=u(i,{anchorTopOffset:n.current}),c=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(r),e.classList.add(r),t.current=e):e.classList.remove(r)}(e,e===c)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,n])}function d(e){let{toc:t,className:n,linkClassName:a,isChild:o}=e;return t.length?r.createElement("ul",{className:o?void 0:n},t.map((e=>r.createElement("li",{key:e.id},r.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),r.createElement(d,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}var p=r.memo(d);function b(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:c,maxHeadingLevel:d,...b}=e;const h=(0,o.L)(),f=c??h.tableOfContents.minHeadingLevel,k=d??h.tableOfContents.maxHeadingLevel,g=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,r.useMemo)((()=>i({toc:l(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:f,maxHeadingLevel:k});return m((0,r.useMemo)((()=>{if(s&&u)return{linkClassName:s,linkActiveClassName:u,minHeadingLevel:f,maxHeadingLevel:k}}),[s,u,f,k])),r.createElement(p,(0,a.Z)({toc:g,className:n,linkClassName:s},b))}},6077:function(e,t,n){n.r(t),n.d(t,{assets:function(){return L},contentTitle:function(){return O},default:function(){return P},frontMatter:function(){return E},metadata:function(){return S},toc:function(){return V}});var a=n(3117),r=n(7294),o=n(3905),l=n(4334),i=n(2466),s=n(6550),u=n(1980),c=n(7392),m=n(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function b(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=p(e),[l,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!b({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:o}))),[s,u]=h({queryString:n,groupId:a}),[c,d]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,m.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),f=(()=>{const e=s??c;return b({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{f&&i(f)}),[f]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!b({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),d(e)}),[u,d,o]),tabValues:o}}var k=n(2389),g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,i.o5)(),d=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==o&&(m(t),s(a))},p=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:p,onClick:d},i,{className:(0,l.Z)("tabs__item",g.tabItem,i?.className,{"tabs__item--active":o===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function w(e){const t=f(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g.tabList)},r.createElement(v,(0,a.Z)({},e,t)),r.createElement(y,(0,a.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return r.createElement(w,(0,a.Z)({key:String(t)},e))}var T={tabItem:"tabItem_Ymn6"};function _(e){let{children:t,hidden:n,className:a}=e;return r.createElement("div",{role:"tabpanel",className:(0,l.Z)(T.tabItem,a),hidden:n},t)}var I=n(3743),x={tableOfContentsInline:"tableOfContentsInline_prmo"};function C(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return r.createElement("div",{className:x.tableOfContentsInline},r.createElement(I.Z,{toc:t,minHeadingLevel:n,maxHeadingLevel:a,className:"table-of-contents",linkClassName:null}))}const E={sidebar_position:2},O="Documentation Style Guide",S={unversionedId:"contribution/contribute_to_warp_docs/doc_style",id:"contribution/contribute_to_warp_docs/doc_style",title:"Documentation Style Guide",description:"This guide provides some examples about how to add new documentation that can be properly rendered on this website. Please note most of the Github flavored Markdown syntax should work naturally, this guide just tries to elaborate the extension syntax to it.",source:"@site/docs/contribution/contribute_to_warp_docs/doc_style.md",sourceDirName:"contribution/contribute_to_warp_docs",slug:"/contribution/contribute_to_warp_docs/doc_style",permalink:"/warp/docs/contribution/contribute_to_warp_docs/doc_style",draft:!1,editUrl:"https://github.com/broadinstitute/warp/edit/develop/website/docs/contribution/contribute_to_warp_docs/doc_style.md",tags:[],version:"current",lastUpdatedBy:"ekiernan",lastUpdatedAt:1722276112,formattedLastUpdatedAt:"Jul 29, 2024",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"docsSidebar",previous:{title:"WARP Documentation Maintenance Guide",permalink:"/warp/docs/contribution/contribute_to_warp_docs/docsite_maintenance"}},L={},V=[{value:"1. Insert code blocks",id:"1-insert-code-blocks",level:2},{value:"2. Insert tables",id:"2-insert-tables",level:2},{value:"3. Cross-reference and anchor",id:"3-cross-reference-and-anchor",level:2},{value:"4. Centered text block",id:"4-centered-text-block",level:2},{value:"5. Text with color backgorund",id:"5-text-with-color-backgorund",level:2},{value:"6. Custom containers",id:"6-custom-containers",level:2},{value:"7. Code groups",id:"7-code-groups",level:2},{value:"8. Footnotes",id:"8-footnotes",level:2},{value:"9. Insert images",id:"9-insert-images",level:2},{value:"10. Insert Table of Contents (ToC)",id:"10-insert-table-of-contents-toc",level:2}],D={toc:V},H="wrapper";function P(e){let{components:t,...r}=e;return(0,o.kt)(H,(0,a.Z)({},D,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"documentation-style-guide"},"Documentation Style Guide"),(0,o.kt)("p",null,"This guide provides some examples about how to add new documentation that can be properly rendered on this website. Please note most of the Github flavored ",(0,o.kt)("a",{parentName:"p",href:"https://github.github.com/gfm/"},"Markdown")," syntax should work naturally, this guide just tries to elaborate the extension syntax to it."),(0,o.kt)("h2",{id:"1-insert-code-blocks"},"1. Insert code blocks"),(0,o.kt)("p",null,"This site supports inserting code blocks with highlighted lines, for examples, the following:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},'```wdl {3-4,7-11} title="SortBam.wdl"\ntask SortBam {\n input {\n File bam_input\n String sort_order = "coordinate"\n\n # runtime values\n String docker = "us.gcr.io/broad-gotc-prod/picard-cloud:2.26.10"\n Int machine_mem_mb = 8250\n Int machine_overhead_mb = 500\n Int cpu = 1\n Int preemptible = 3\n }\n\n Int command_mem_mb = machine_mem_mb - machine_overhead_mb\n Int disk = ceil(size(bam_input, "Gi") * 6) + 50\n\n meta {\n description: "Sorts bam"\n }\n\n command {\n set -e\n\n java -Xmx${command_mem_mb}m -jar /usr/picard/picard.jar SortSam \\\n I=${bam_input} \\\n O=sorted.bam \\\n SORT_ORDER=${sort_order}\n }\n\n runtime {\n docker: docker\n memory: "${machine_mem_mb} MiB"\n disks: "local-disk ${disk} HDD"\n cpu: cpu\n preemptible: preemptible\n }\n\n output {\n File bam_output = "sorted.bam"\n }\n}\n```\n')),(0,o.kt)("p",null,"will result in a rendered code block like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-wdl",metastring:'{3-4,7-11} title="SortBam.wdl"',"{3-4,7-11}":!0,title:'"SortBam.wdl"'},'task SortBam {\n input {\n File bam_input\n String sort_order = "coordinate"\n\n # runtime values\n String docker = "us.gcr.io/broad-gotc-prod/picard-cloud:2.26.10"\n Int machine_mem_mb = 8250\n Int machine_overhead_mb = 500\n Int cpu = 1\n Int preemptible = 3\n }\n\n Int command_mem_mb = machine_mem_mb - machine_overhead_mb\n Int disk = ceil(size(bam_input, "Gi") * 6) + 50\n\n meta {\n description: "Sorts bam"\n }\n\n command {\n set -e\n\n java -Xmx${command_mem_mb}m -jar /usr/picard/picard.jar SortSam \\\n I=${bam_input} \\\n O=sorted.bam \\\n SORT_ORDER=${sort_order}\n }\n\n runtime {\n docker: docker\n memory: "${machine_mem_mb} MiB"\n disks: "local-disk ${disk} HDD"\n cpu: cpu\n preemptible: preemptible\n }\n\n output {\n File bam_output = "sorted.bam"\n }\n}\n')),(0,o.kt)("h2",{id:"2-insert-tables"},"2. Insert tables"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"| Some Table Col 1 | Some Table Col 2 |\n| :--------------: | :--------------: |\n| Val1 | Val4 |\n| Val2 | Val5 |\n| Val3 | Val6 |\n")),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:"center"},"Some Table Col 1"),(0,o.kt)("th",{parentName:"tr",align:"center"},"Some Table Col 2"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Val1"),(0,o.kt)("td",{parentName:"tr",align:"center"},"Val4")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Val2"),(0,o.kt)("td",{parentName:"tr",align:"center"},"Val5")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Val3"),(0,o.kt)("td",{parentName:"tr",align:"center"},"Val6")))),(0,o.kt)("admonition",{title:"TIP",type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"It's worth mentioning that ",(0,o.kt)("a",{parentName:"p",href:"https://www.tablesgenerator.com/markdown_tables"},"Tables Generator")," is a great tool for generating and re-formatting markdown tables.")),(0,o.kt)("h2",{id:"3-cross-reference-and-anchor"},"3. Cross-reference and anchor"),(0,o.kt)("p",null,"To link to another section within the same article, you would use ",(0,o.kt)("inlineCode",{parentName:"p"},"[Return to ## 1. Insert code blocks](#1-insert-code-blocks)"),": ",(0,o.kt)("a",{parentName:"p",href:"#1-insert-code-blocks"},"Return to ## 1. Insert code blocks"),"."),(0,o.kt)("p",null,"To link to sections in other articles, use the following syntax (note the relative paths):"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"[Return to Changelog Style Guide](../contribute_to_warp/changelog_style)"),": ",(0,o.kt)("a",{parentName:"li",href:"../contribute_to_warp/changelog_style"},"Return to Changelog Style Guide")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"[Return to The Documentation](/warp/docs/About_WARP/BestPractices#Best-Practices-for-Building-Data-Processing Pipelines)"),": ",(0,o.kt)("a",{parentName:"li",href:"/warp/docs/About_WARP/BestPractices#Best-Practices-for-Building-Data-Processing-Pipelines"},"Return to The Documentation"))),(0,o.kt)("h2",{id:"4-centered-text-block"},"4. Centered text block"),(0,o.kt)("p",null,"To make a text block centered, use:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"
\nCentered Text Block!\n
\n")),(0,o.kt)("center",null,"Centered Text Block!"),(0,o.kt)("admonition",{title:"NOTE",type:"danger"},(0,o.kt)("p",{parentName:"admonition"},"For images, you ",(0,o.kt)("strong",{parentName:"p"},"HAVE TO")," insert blank lines to make them work:"),(0,o.kt)("pre",{parentName:"admonition"},(0,o.kt)("code",{parentName:"pre",className:"language-md"},"
\n\n![](./some_pic.png)\n\n
\n"))),(0,o.kt)("h2",{id:"5-text-with-color-backgorund"},"5. Text with color backgorund"),(0,o.kt)("p",null,"You could use the following to highlight your text:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-html"},' Text with blue background ,\n Text with purple background ,\n Text with yellow background ,\n Text with green background \n')),(0,o.kt)("span",{id:"inline-blue"}," Text with blue background "),",",(0,o.kt)("span",{id:"inline-purple"}," Text with purple background "),",",(0,o.kt)("span",{id:"inline-yellow"}," Text with yellow background "),",",(0,o.kt)("span",{id:"inline-green"}," Text with green background "),(0,o.kt)("h2",{id:"6-custom-containers"},"6. Custom containers"),(0,o.kt)("p",null,"As we already saw in this guide several places, we could add custom containers:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::tip\nThis is a tip without title!\n:::\n")),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"This is a tip without title!")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::tip TITLE\nThis is a tip with a title!\n:::\n")),(0,o.kt)("admonition",{title:"TITLE",type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"This is a tip with a title!")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::caution WARNING\nThis is a warning!\n:::\n")),(0,o.kt)("admonition",{title:"WARNING",type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This is a warning!")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::danger DANGER\nThis is a danger!\n:::\n")),(0,o.kt)("admonition",{title:"DANGER",type:"danger"},(0,o.kt)("p",{parentName:"admonition"},"This is a danger!")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::info INFO\nThis is a info!\n:::\n")),(0,o.kt)("admonition",{title:"INFO",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"This is a info!")),(0,o.kt)("h2",{id:"7-code-groups"},"7. Code groups"),(0,o.kt)("p",null,"You could also insert tab-based code groups:"),(0,o.kt)(N,{defaultValue:"apple",values:[{label:"Apple",value:"apple"},{label:"Orange",value:"orange"},{label:"Banana",value:"banana"}],mdxType:"Tabs"},(0,o.kt)(_,{value:"apple",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'print("This is an apple pipeline!")\n'))),(0,o.kt)(_,{value:"orange",mdxType:"TabItem"},"This is an orange \ud83c\udf4a"),(0,o.kt)(_,{value:"banana",mdxType:"TabItem"},"This is a banana \ud83c\udf4c")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-js"},"import Tabs from '@theme/Tabs';\nimport TabItem from '@theme/TabItem';\n\n\n This is an apple \ud83c\udf4e\n This is an orange \ud83c\udf4a\n This is a banana \ud83c\udf4c\n
;\n")),(0,o.kt)("p",null,"For more details, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://docusaurus.io/docs/markdown-features/tabs"},"Docusaurus Docs")),(0,o.kt)("h2",{id:"8-footnotes"},"8. Footnotes"),(0,o.kt)("p",null,"It is important to cite the references, to do so, use the ",(0,o.kt)("inlineCode",{parentName:"p"},"markdown-it"),"'s footnotes syntax:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"This sentence has a footnote[^1]. (See footnote at the bottom of this guide.)\n\n[^1]: I'm a footnote!\n")),(0,o.kt)("p",null,"which results in:"),(0,o.kt)("hr",null),(0,o.kt)("p",null,"This sentence has a footnote",(0,o.kt)("sup",{parentName:"p",id:"fnref-1"},(0,o.kt)("a",{parentName:"sup",href:"#fn-1",className:"footnote-ref"},"1")),". (See footnote at the bottom of this guide.)"),(0,o.kt)("hr",null),(0,o.kt)("p",null,"We could also write in-line footnotes, which is much easier to write without counting back and forth:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"This sentence has another footnote ^[I'm another footnote] (See footnote at the bottom of this page.)\n")),(0,o.kt)("p",null,"which has the same effect:"),(0,o.kt)("hr",null),(0,o.kt)("p",null,"This sentence has another footnote ^","[I'm another footnote]"," (See footnote at the bottom of this page.)"),(0,o.kt)("hr",null),(0,o.kt)("h2",{id:"9-insert-images"},"9. Insert images"),(0,o.kt)("p",null,"Insert images is as straight-forward as using the ordinary markdown syntax:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"![terra](./Terra_warp.png)\n")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"terra",src:n(2683).Z,width:"1894",height:"330"})),(0,o.kt)("h2",{id:"10-insert-table-of-contents-toc"},"10. Insert Table of Contents (ToC)"),(0,o.kt)("p",null,"You could use:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-js"},"import TOCInline from '@theme/TOCInline';\n\n;\n")),(0,o.kt)("p",null,"to insert in-line ToC:"),(0,o.kt)(C,{toc:V,mdxType:"TOCInline"}),(0,o.kt)("div",{className:"footnotes"},(0,o.kt)("hr",{parentName:"div"}),(0,o.kt)("ol",{parentName:"div"},(0,o.kt)("li",{parentName:"ol",id:"fn-1"},"I'm a footnote!",(0,o.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}P.isMDXComponent=!0},2683:function(e,t,n){t.Z=n.p+"assets/images/Terra_warp-383d77605a5c6872f88d2b82c2a3108f.png"}}]); \ No newline at end of file diff --git a/assets/js/69942e7f.88671ab1.js b/assets/js/69942e7f.88671ab1.js deleted file mode 100644 index 183fb73c4..000000000 --- a/assets/js/69942e7f.88671ab1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[1595],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return b}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=u(n),p=r,b=m["".concat(s,".").concat(p)]||m[p]||d[p]||o;return n?a.createElement(b,l(l({ref:t},c),{},{components:n})):a.createElement(b,l({ref:t},c))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=p;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[m]="string"==typeof e?e:r,l[1]=i;for(var u=2;u({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...r}=e;n>=0?t[n].children.push(r):a.push(r)})),a}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function s(e){const t=e.getBoundingClientRect();return t.top===t.bottom?s(e.parentNode):t}function u(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>s(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function m(e){const t=(0,r.useRef)(void 0),n=c();(0,r.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:r,minHeadingLevel:o,maxHeadingLevel:l}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),i=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let r=t;r<=n;r+=1)a.push(`h${r}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:o,maxHeadingLevel:l}),s=u(i,{anchorTopOffset:n.current}),c=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(r),e.classList.add(r),t.current=e):e.classList.remove(r)}(e,e===c)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,n])}function d(e){let{toc:t,className:n,linkClassName:a,isChild:o}=e;return t.length?r.createElement("ul",{className:o?void 0:n},t.map((e=>r.createElement("li",{key:e.id},r.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),r.createElement(d,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}var p=r.memo(d);function b(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:c,maxHeadingLevel:d,...b}=e;const h=(0,o.L)(),f=c??h.tableOfContents.minHeadingLevel,k=d??h.tableOfContents.maxHeadingLevel,g=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,r.useMemo)((()=>i({toc:l(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:f,maxHeadingLevel:k});return m((0,r.useMemo)((()=>{if(s&&u)return{linkClassName:s,linkActiveClassName:u,minHeadingLevel:f,maxHeadingLevel:k}}),[s,u,f,k])),r.createElement(p,(0,a.Z)({toc:g,className:n,linkClassName:s},b))}},6077:function(e,t,n){n.r(t),n.d(t,{assets:function(){return L},contentTitle:function(){return O},default:function(){return P},frontMatter:function(){return E},metadata:function(){return S},toc:function(){return V}});var a=n(3117),r=n(7294),o=n(3905),l=n(4334),i=n(2466),s=n(6550),u=n(1980),c=n(7392),m=n(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function b(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=p(e),[l,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!b({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:o}))),[s,u]=h({queryString:n,groupId:a}),[c,d]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,m.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),f=(()=>{const e=s??c;return b({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{f&&i(f)}),[f]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!b({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),d(e)}),[u,d,o]),tabValues:o}}var k=n(2389),g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,i.o5)(),d=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==o&&(m(t),s(a))},p=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:p,onClick:d},i,{className:(0,l.Z)("tabs__item",g.tabItem,i?.className,{"tabs__item--active":o===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function N(e){const t=f(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g.tabList)},r.createElement(v,(0,a.Z)({},e,t)),r.createElement(y,(0,a.Z)({},e,t)))}function w(e){const t=(0,k.Z)();return r.createElement(N,(0,a.Z)({key:String(t)},e))}var T={tabItem:"tabItem_Ymn6"};function _(e){let{children:t,hidden:n,className:a}=e;return r.createElement("div",{role:"tabpanel",className:(0,l.Z)(T.tabItem,a),hidden:n},t)}var I=n(3743),x={tableOfContentsInline:"tableOfContentsInline_prmo"};function C(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return r.createElement("div",{className:x.tableOfContentsInline},r.createElement(I.Z,{toc:t,minHeadingLevel:n,maxHeadingLevel:a,className:"table-of-contents",linkClassName:null}))}const E={sidebar_position:2},O="Documentation Style Guide",S={unversionedId:"contribution/contribute_to_warp_docs/doc_style",id:"contribution/contribute_to_warp_docs/doc_style",title:"Documentation Style Guide",description:"This guide provides some examples about how to add new documentation that can be properly rendered on this website. Please note most of the Github flavored Markdown syntax should work naturally, this guide just tries to elaborate the extension syntax to it.",source:"@site/docs/contribution/contribute_to_warp_docs/doc_style.md",sourceDirName:"contribution/contribute_to_warp_docs",slug:"/contribution/contribute_to_warp_docs/doc_style",permalink:"/warp/docs/contribution/contribute_to_warp_docs/doc_style",draft:!1,editUrl:"https://github.com/broadinstitute/warp/edit/develop/website/docs/contribution/contribute_to_warp_docs/doc_style.md",tags:[],version:"current",lastUpdatedBy:"Nikelle Petrillo",lastUpdatedAt:1721414591,formattedLastUpdatedAt:"Jul 19, 2024",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"docsSidebar",previous:{title:"WARP Documentation Maintenance Guide",permalink:"/warp/docs/contribution/contribute_to_warp_docs/docsite_maintenance"}},L={},V=[{value:"1. Insert code blocks",id:"1-insert-code-blocks",level:2},{value:"2. Insert tables",id:"2-insert-tables",level:2},{value:"3. Cross-reference and anchor",id:"3-cross-reference-and-anchor",level:2},{value:"4. Centered text block",id:"4-centered-text-block",level:2},{value:"5. Text with color backgorund",id:"5-text-with-color-backgorund",level:2},{value:"6. Custom containers",id:"6-custom-containers",level:2},{value:"7. Code groups",id:"7-code-groups",level:2},{value:"8. Footnotes",id:"8-footnotes",level:2},{value:"9. Insert images",id:"9-insert-images",level:2},{value:"10. Insert Table of Contents (ToC)",id:"10-insert-table-of-contents-toc",level:2}],D={toc:V},H="wrapper";function P(e){let{components:t,...r}=e;return(0,o.kt)(H,(0,a.Z)({},D,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"documentation-style-guide"},"Documentation Style Guide"),(0,o.kt)("p",null,"This guide provides some examples about how to add new documentation that can be properly rendered on this website. Please note most of the Github flavored ",(0,o.kt)("a",{parentName:"p",href:"https://github.github.com/gfm/"},"Markdown")," syntax should work naturally, this guide just tries to elaborate the extension syntax to it."),(0,o.kt)("h2",{id:"1-insert-code-blocks"},"1. Insert code blocks"),(0,o.kt)("p",null,"This site supports inserting code blocks with highlighted lines, for examples, the following:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},'```wdl {3-4,7-11} title="SortBam.wdl"\ntask SortBam {\n input {\n File bam_input\n String sort_order = "coordinate"\n\n # runtime values\n String docker = "us.gcr.io/broad-gotc-prod/picard-cloud:2.26.10"\n Int machine_mem_mb = 8250\n Int machine_overhead_mb = 500\n Int cpu = 1\n Int preemptible = 3\n }\n\n Int command_mem_mb = machine_mem_mb - machine_overhead_mb\n Int disk = ceil(size(bam_input, "Gi") * 6) + 50\n\n meta {\n description: "Sorts bam"\n }\n\n command {\n set -e\n\n java -Xmx${command_mem_mb}m -jar /usr/picard/picard.jar SortSam \\\n I=${bam_input} \\\n O=sorted.bam \\\n SORT_ORDER=${sort_order}\n }\n\n runtime {\n docker: docker\n memory: "${machine_mem_mb} MiB"\n disks: "local-disk ${disk} HDD"\n cpu: cpu\n preemptible: preemptible\n }\n\n output {\n File bam_output = "sorted.bam"\n }\n}\n```\n')),(0,o.kt)("p",null,"will result in a rendered code block like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-wdl",metastring:'{3-4,7-11} title="SortBam.wdl"',"{3-4,7-11}":!0,title:'"SortBam.wdl"'},'task SortBam {\n input {\n File bam_input\n String sort_order = "coordinate"\n\n # runtime values\n String docker = "us.gcr.io/broad-gotc-prod/picard-cloud:2.26.10"\n Int machine_mem_mb = 8250\n Int machine_overhead_mb = 500\n Int cpu = 1\n Int preemptible = 3\n }\n\n Int command_mem_mb = machine_mem_mb - machine_overhead_mb\n Int disk = ceil(size(bam_input, "Gi") * 6) + 50\n\n meta {\n description: "Sorts bam"\n }\n\n command {\n set -e\n\n java -Xmx${command_mem_mb}m -jar /usr/picard/picard.jar SortSam \\\n I=${bam_input} \\\n O=sorted.bam \\\n SORT_ORDER=${sort_order}\n }\n\n runtime {\n docker: docker\n memory: "${machine_mem_mb} MiB"\n disks: "local-disk ${disk} HDD"\n cpu: cpu\n preemptible: preemptible\n }\n\n output {\n File bam_output = "sorted.bam"\n }\n}\n')),(0,o.kt)("h2",{id:"2-insert-tables"},"2. Insert tables"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"| Some Table Col 1 | Some Table Col 2 |\n| :--------------: | :--------------: |\n| Val1 | Val4 |\n| Val2 | Val5 |\n| Val3 | Val6 |\n")),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:"center"},"Some Table Col 1"),(0,o.kt)("th",{parentName:"tr",align:"center"},"Some Table Col 2"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Val1"),(0,o.kt)("td",{parentName:"tr",align:"center"},"Val4")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Val2"),(0,o.kt)("td",{parentName:"tr",align:"center"},"Val5")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Val3"),(0,o.kt)("td",{parentName:"tr",align:"center"},"Val6")))),(0,o.kt)("admonition",{title:"TIP",type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"It's worth mentioning that ",(0,o.kt)("a",{parentName:"p",href:"https://www.tablesgenerator.com/markdown_tables"},"Tables Generator")," is a great tool for generating and re-formatting markdown tables.")),(0,o.kt)("h2",{id:"3-cross-reference-and-anchor"},"3. Cross-reference and anchor"),(0,o.kt)("p",null,"To link to another section within the same article, you would use ",(0,o.kt)("inlineCode",{parentName:"p"},"[Return to ## 1. Insert code blocks](#1-insert-code-blocks)"),": ",(0,o.kt)("a",{parentName:"p",href:"#1-insert-code-blocks"},"Return to ## 1. Insert code blocks"),"."),(0,o.kt)("p",null,"To link to sections in other articles, use the following syntax (note the relative paths):"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"[Return to Changelog Style Guide](../contribute_to_warp/changelog_style)"),": ",(0,o.kt)("a",{parentName:"li",href:"../contribute_to_warp/changelog_style"},"Return to Changelog Style Guide")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"[Return to The Documentation](/warp/docs/About_WARP/BestPractices#Best-Practices-for-Building-Data-Processing Pipelines)"),": ",(0,o.kt)("a",{parentName:"li",href:"/warp/docs/About_WARP/BestPractices#Best-Practices-for-Building-Data-Processing-Pipelines"},"Return to The Documentation"))),(0,o.kt)("h2",{id:"4-centered-text-block"},"4. Centered text block"),(0,o.kt)("p",null,"To make a text block centered, use:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"
\nCentered Text Block!\n
\n")),(0,o.kt)("center",null,"Centered Text Block!"),(0,o.kt)("admonition",{title:"NOTE",type:"danger"},(0,o.kt)("p",{parentName:"admonition"},"For images, you ",(0,o.kt)("strong",{parentName:"p"},"HAVE TO")," insert blank lines to make them work:"),(0,o.kt)("pre",{parentName:"admonition"},(0,o.kt)("code",{parentName:"pre",className:"language-md"},"
\n\n![](./some_pic.png)\n\n
\n"))),(0,o.kt)("h2",{id:"5-text-with-color-backgorund"},"5. Text with color backgorund"),(0,o.kt)("p",null,"You could use the following to highlight your text:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-html"},' Text with blue background ,\n Text with purple background ,\n Text with yellow background ,\n Text with green background \n')),(0,o.kt)("span",{id:"inline-blue"}," Text with blue background "),",",(0,o.kt)("span",{id:"inline-purple"}," Text with purple background "),",",(0,o.kt)("span",{id:"inline-yellow"}," Text with yellow background "),",",(0,o.kt)("span",{id:"inline-green"}," Text with green background "),(0,o.kt)("h2",{id:"6-custom-containers"},"6. Custom containers"),(0,o.kt)("p",null,"As we already saw in this guide several places, we could add custom containers:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::tip\nThis is a tip without title!\n:::\n")),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"This is a tip without title!")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::tip TITLE\nThis is a tip with a title!\n:::\n")),(0,o.kt)("admonition",{title:"TITLE",type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"This is a tip with a title!")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::caution WARNING\nThis is a warning!\n:::\n")),(0,o.kt)("admonition",{title:"WARNING",type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This is a warning!")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::danger DANGER\nThis is a danger!\n:::\n")),(0,o.kt)("admonition",{title:"DANGER",type:"danger"},(0,o.kt)("p",{parentName:"admonition"},"This is a danger!")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},":::info INFO\nThis is a info!\n:::\n")),(0,o.kt)("admonition",{title:"INFO",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"This is a info!")),(0,o.kt)("h2",{id:"7-code-groups"},"7. Code groups"),(0,o.kt)("p",null,"You could also insert tab-based code groups:"),(0,o.kt)(w,{defaultValue:"apple",values:[{label:"Apple",value:"apple"},{label:"Orange",value:"orange"},{label:"Banana",value:"banana"}],mdxType:"Tabs"},(0,o.kt)(_,{value:"apple",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'print("This is an apple pipeline!")\n'))),(0,o.kt)(_,{value:"orange",mdxType:"TabItem"},"This is an orange \ud83c\udf4a"),(0,o.kt)(_,{value:"banana",mdxType:"TabItem"},"This is a banana \ud83c\udf4c")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-js"},"import Tabs from '@theme/Tabs';\nimport TabItem from '@theme/TabItem';\n\n\n This is an apple \ud83c\udf4e\n This is an orange \ud83c\udf4a\n This is a banana \ud83c\udf4c\n
;\n")),(0,o.kt)("p",null,"For more details, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://docusaurus.io/docs/markdown-features/tabs"},"Docusaurus Docs")),(0,o.kt)("h2",{id:"8-footnotes"},"8. Footnotes"),(0,o.kt)("p",null,"It is important to cite the references, to do so, use the ",(0,o.kt)("inlineCode",{parentName:"p"},"markdown-it"),"'s footnotes syntax:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"This sentence has a footnote[^1]. (See footnote at the bottom of this guide.)\n\n[^1]: I'm a footnote!\n")),(0,o.kt)("p",null,"which results in:"),(0,o.kt)("hr",null),(0,o.kt)("p",null,"This sentence has a footnote",(0,o.kt)("sup",{parentName:"p",id:"fnref-1"},(0,o.kt)("a",{parentName:"sup",href:"#fn-1",className:"footnote-ref"},"1")),". (See footnote at the bottom of this guide.)"),(0,o.kt)("hr",null),(0,o.kt)("p",null,"We could also write in-line footnotes, which is much easier to write without counting back and forth:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"This sentence has another footnote ^[I'm another footnote] (See footnote at the bottom of this page.)\n")),(0,o.kt)("p",null,"which has the same effect:"),(0,o.kt)("hr",null),(0,o.kt)("p",null,"This sentence has another footnote ^","[I'm another footnote]"," (See footnote at the bottom of this page.)"),(0,o.kt)("hr",null),(0,o.kt)("h2",{id:"9-insert-images"},"9. Insert images"),(0,o.kt)("p",null,"Insert images is as straight-forward as using the ordinary markdown syntax:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-md"},"![terra](./Terra_warp.png)\n")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"terra",src:n(2683).Z,width:"1894",height:"330"})),(0,o.kt)("h2",{id:"10-insert-table-of-contents-toc"},"10. Insert Table of Contents (ToC)"),(0,o.kt)("p",null,"You could use:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-js"},"import TOCInline from '@theme/TOCInline';\n\n;\n")),(0,o.kt)("p",null,"to insert in-line ToC:"),(0,o.kt)(C,{toc:V,mdxType:"TOCInline"}),(0,o.kt)("div",{className:"footnotes"},(0,o.kt)("hr",{parentName:"div"}),(0,o.kt)("ol",{parentName:"div"},(0,o.kt)("li",{parentName:"ol",id:"fn-1"},"I'm a footnote!",(0,o.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}P.isMDXComponent=!0},2683:function(e,t,n){t.Z=n.p+"assets/images/Terra_warp-383d77605a5c6872f88d2b82c2a3108f.png"}}]); \ No newline at end of file diff --git a/assets/js/6ea7fab5.7d9b179d.js b/assets/js/6ea7fab5.7d9b179d.js new file mode 100644 index 000000000..6a8188a22 --- /dev/null +++ b/assets/js/6ea7fab5.7d9b179d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[2726],{3905:function(t,e,a){a.d(e,{Zo:function(){return m},kt:function(){return g}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function l(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var s=n.createContext({}),o=function(t){var e=n.useContext(s),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},m=function(t){var e=o(t.components);return n.createElement(s.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,s=t.parentName,m=p(t,["components","mdxType","originalType","parentName"]),u=o(a),c=r,g=u["".concat(s,".").concat(c)]||u[c]||d[c]||l;return a?n.createElement(g,i(i({ref:e},m),{},{components:a})):n.createElement(g,i({ref:e},m))}));function g(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=c;var p={};for(var s in e)hasOwnProperty.call(e,s)&&(p[s]=e[s]);p.originalType=t,p[u]="string"==typeof t?t:r,i[1]=p;for(var o=2;o=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var s=n.createContext({}),o=function(t){var e=n.useContext(s),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},m=function(t){var e=o(t.components);return n.createElement(s.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,s=t.parentName,m=p(t,["components","mdxType","originalType","parentName"]),u=o(a),c=r,g=u["".concat(s,".").concat(c)]||u[c]||d[c]||l;return a?n.createElement(g,i(i({ref:e},m),{},{components:a})):n.createElement(g,i({ref:e},m))}));function g(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=c;var p={};for(var s in e)hasOwnProperty.call(e,s)&&(p[s]=e[s]);p.originalType=t,p[u]="string"==typeof t?t:r,i[1]=p;for(var o=2;o=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},d=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},f="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),f=u(i),p=a,h=f["".concat(l,".").concat(p)]||f[p]||c[p]||o;return i?n.createElement(h,s(s({ref:t},d),{},{components:i})):n.createElement(h,s({ref:t},d))}));function h(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=i.length,s=new Array(o);s[0]=p;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[f]="string"==typeof e?e:a,s[1]=r;for(var u=2;u=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},d=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},f="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),f=u(i),p=a,h=f["".concat(l,".").concat(p)]||f[p]||c[p]||o;return i?n.createElement(h,s(s({ref:t},d),{},{components:i})):n.createElement(h,s({ref:t},d))}));function h(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=i.length,s=new Array(o);s[0]=p;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[f]="string"==typeof e?e:a,s[1]=r;for(var u=2;u=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),p=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(o.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),u=p(a),c=r,h=u["".concat(o,".").concat(c)]||u[c]||d[c]||i;return a?n.createElement(h,l(l({ref:t},m),{},{components:a})):n.createElement(h,l({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=c;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[u]="string"==typeof e?e:r,l[1]=s;for(var p=2;p.bam")),(0,r.kt)("td",{parentName:"tr",align:null},"Aligned BAM"),(0,r.kt)("td",{parentName:"tr",align:null},"BAM")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts.npz")),(0,r.kt)("td",{parentName:"tr",align:null},"Converted sparse matrix file from the MergeStarOutputs task."),(0,r.kt)("td",{parentName:"tr",align:null},"NPZ")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix_row_index"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts_row_index.npy")),(0,r.kt)("td",{parentName:"tr",align:null},"Index of cells in count matrix."),(0,r.kt)("td",{parentName:"tr",align:null},"NPY")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix_col_index"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts_col_index.npy")),(0,r.kt)("td",{parentName:"tr",align:null},"Index of genes in count matrix."),(0,r.kt)("td",{parentName:"tr",align:null},"NPY")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"cell_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".cell-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Matrix of metrics by cells."),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"gene_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".gene-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Matrix of metrics by genes."),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"aligner_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".star_metrics.tar")),(0,r.kt)("td",{parentName:"tr",align:null},"Tarred metrics files produced by the STARsolo aligner; contains align features, cell reads, summary, and UMI per cell metrics files."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"library_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"__library_metrics.csv")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional CSV file containing all library-level metrics calculated with STARsolo for gene expression data. See the ",(0,r.kt)("a",{parentName:"td",href:"/warp/docs/Pipelines/Optimus_Pipeline/Library-metrics"},"Library-level metrics")," for how metrics are calculated."),(0,r.kt)("td",{parentName:"tr",align:null},"CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"multimappers_EM_matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"UniqueAndMult-EM.mtx")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional output produced when ",(0,r.kt)("inlineCode",{parentName:"td"},"soloMultiMappers"),' is "EM"; see STARsolo ',(0,r.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR/blob/master/docs/STARsolo.md#multi-gene-reads"},"documentation")," for more information."),(0,r.kt)("td",{parentName:"tr",align:null},"MTX")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"multimappers_Uniform_matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"UniqueAndMult-Uniform.mtx")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional output produced when ",(0,r.kt)("inlineCode",{parentName:"td"},"soloMultiMappers"),' is "Uniform"; see STARsolo ',(0,r.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR/blob/master/docs/STARsolo.md#multi-gene-reads"},"documentation")," for more information."),(0,r.kt)("td",{parentName:"tr",align:null},"MTX")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"multimappers_Rescue_matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"UniqueAndMult-Rescue.mtx")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional output produced when ",(0,r.kt)("inlineCode",{parentName:"td"},"soloMultiMappers"),' is "Rescue"; see STARsolo ',(0,r.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR/blob/master/docs/STARsolo.md#multi-gene-reads"},"documentation")," for more information."),(0,r.kt)("td",{parentName:"tr",align:null},"MTX")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"multimappers_PropUnique_matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"UniqueAndMult-PropUnique.mtx")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional output produced when ",(0,r.kt)("inlineCode",{parentName:"td"},"soloMultiMappers"),' is "PropUnique"; see STARsolo ',(0,r.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR/blob/master/docs/STARsolo.md#multi-gene-reads"},"documentation")," for more information."),(0,r.kt)("td",{parentName:"tr",align:null},"MTX")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"cell_calls"),(0,r.kt)("td",{parentName:"tr",align:null},"empty_drops_result.csv"),(0,r.kt)("td",{parentName:"tr",align:null},"emptyDrops results from the RunEmptyDrops task."),(0,r.kt)("td",{parentName:"tr",align:null},"CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"h5ad_output_file"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".h5ad")),(0,r.kt)("td",{parentName:"tr",align:null},"h5ad file with count data (exonic or whole transcript depending on the counting_mode) and metadata."),(0,r.kt)("td",{parentName:"tr",align:null},"H5AD")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"mtx_files"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".mtx_files.tar")),(0,r.kt)("td",{parentName:"tr",align:null},"TAR file with STARsolo matrix market files (barcodes.tsv, features.tsv, and matrix.mtx)"),(0,r.kt)("td",{parentName:"tr",align:null},"TAR")))),(0,r.kt)("p",null,"The h5ad matrix is the default output. This matrix contains the unnormalized (unfiltered), UMI-corrected count matrices, as well as the gene and cell metrics detailed in the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/Pipelines/Optimus_Pipeline/Loom_schema"},"Optimus Count Matrix Overview"),"."),(0,r.kt)("h4",{id:"try-the-optimus-matrix-with-community-tools"},"Try the Optimus matrix with community tools"),(0,r.kt)("p",null,"The matrix is compatible with multiple downstream community analysis tools, including ",(0,r.kt)("a",{parentName:"p",href:"https://satijalab.org/seurat/index.html"},"Seurat"),", ",(0,r.kt)("a",{parentName:"p",href:"https://scanpy.readthedocs.io/en/stable/"},"Scanpy"),", ",(0,r.kt)("a",{parentName:"p",href:"https://cumulus.readthedocs.io/en/latest/index.html"},"Cumulus"),", and ",(0,r.kt)("a",{parentName:"p",href:"https://pegasus.readthedocs.io/en/stable/#"},"Pegasus"),". To try a tutorial using the Optimus matrix with these tools, register for the open-source platform ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio"},"Terra")," and then navigate to the public ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/Intro-to-HCA-data-on-Terra"},"Intro-to-HCA-data-on-Terra workspace"),". You can also view the accompanying ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us/articles/360060041772"},"step-by-step guide")," without registration."),(0,r.kt)("h2",{id:"validation-against-cell-ranger"},"Validation against Cell Ranger"),(0,r.kt)("p",null,"Optimus has been validated for processing both human and mouse single-cell and single-nucleus data (see links to validation reports in the table below). For each validation, Optimus results are compared to those of Cell Ranger (see the ",(0,r.kt)("a",{parentName:"p",href:"#faqs"},"FAQ")," for more on Cell Ranger comparisons)."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Workflow configuration"),(0,r.kt)("th",{parentName:"tr",align:null},"Link to Report"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Human 10x v2 single-cell"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/benchmarking/v1_Apr2019/optimus_report.rst"},"Report"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mouse 10x v2 single-cell"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://docs.google.com/document/d/1_3oO0ZQSrwEoe6D3GgKdSmAQ9qkzH_7wrE7x6_deL10/edit"},"Report"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Human and mouse 10x v3 single-cell"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://docs.google.com/document/d/1-hwfXkqtL8MblgDWFzk-HsVRYiy4PS8ZhJqAGlHBWYE/edit#heading=h.4uokn64v1s5m"},"Report"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Human and Mouse 10x v2/v3 single-nucleus"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://docs.google.com/document/d/1rv2M7vfpOzIOsMnMfNyKB4HV18lQ9dnOGHK2tPikiH0/edit"},"Report"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Optimus STARsolo (v5.0.0 and later)"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://docs.google.com/document/d/1B6Ux6HICD4ZL4Z0TG9LO-X43gOdF3sbq5qw_L2GA6fg/edit"},"Report"))))),(0,r.kt)("h2",{id:"versioning"},"Versioning"),(0,r.kt)("p",null,"All Optimus pipeline releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/Optimus.changelog.md"},"Optimus changelog"),"."),(0,r.kt)("h2",{id:"citing-the-optimus-pipeline"},"Citing the Optimus Pipeline"),(0,r.kt)("p",null,"If you use the Optimus Pipeline in your research, please identify the pipeline in your methods section using the ",(0,r.kt)("a",{parentName:"p",href:"https://scicrunch.org/resources/data/record/nlx_144509-1/SCR_018908/resolver?q=SCR_018908&l=SCR_018908&i=rrid:scr_018908"},"Optimus SciCrunch resource identifier"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Ex: ",(0,r.kt)("em",{parentName:"li"},"Optimus Pipeline (RRID:SCR_018908)"))),(0,r.kt)("p",null,"Please also consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"consortia-support"},"Consortia support"),(0,r.kt)("p",null,"This pipeline is supported and used by the ",(0,r.kt)("a",{parentName:"p",href:"https://www.humancellatlas.org/"},"Human Cell Atlas")," (HCA) project and the ",(0,r.kt)("a",{parentName:"p",href:"https://biccn.org/"},"BRAIN Initiative Cell Census Network")," (BICCN). "),(0,r.kt)("p",null,"Each consortium may use slightly different reference files for data analysis or have different post-processing steps. Learn more by reading the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/Pipelines/Optimus_Pipeline/consortia-processing"},"Consortia Processing")," overview."),(0,r.kt)("p",null,"If your organization also uses this pipeline, we would like to list you! Please reach out to us by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"."),(0,r.kt)("h2",{id:"feedback"},"Feedback"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."),(0,r.kt)("h2",{id:"acknowledgements"},"Acknowledgements"),(0,r.kt)("p",null,"We are immensely grateful to the members of the ",(0,r.kt)("a",{parentName:"p",href:"https://data.humancellatlas.org/"},"Human Cell Atlas Data Coordination Platform"),", BRAIN Initiative (",(0,r.kt)("a",{parentName:"p",href:"https://brainblog.nih.gov/brain-blog/brain-issues-suite-funding-opportunities-advance-brain-cell-atlases-through-centers"},"BICAN")," Sequencing Working Group) and ",(0,r.kt)("a",{parentName:"p",href:"https://nida.nih.gov/about-nida/organization/divisions/division-neuroscience-behavior-dnb/basic-research-hiv-substance-use-disorder/scorch-program"},"SCORCH")," for their invaluable and exceptional contributions to this pipeline. Our heartfelt appreciation goes to Alex Dobin, Aparna Bhaduri, Alec Wysoker, Anish Chakka, Brian Herb, Daofeng Li, Fenna Krienen, Guo-Long Zuo, Jeff Goldy, Kai Zhang, Khalid Shakir, Bo Li, Mariano Gabitto, Michael DeBerardine, Mengyi Song, Melissa Goldman, Nelson Johansen, James Nemesh, and Theresa Hodges for their unwavering dedication and remarkable efforts. "),(0,r.kt)("h2",{id:"faqs"},"FAQs"),(0,r.kt)("admonition",{title:"Question Can I run Optimus in Terra?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Yes! We have a Terra workspace that is preconfigured with the latest Optimus workflow and is preloaded with human and mouse sample data. You can access the ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/HCA_Optimus_Pipeline"},"workspace"),". You will need a Google account to set up Terra. Please see ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us"},"Terra Support")," for documents on getting started.")),(0,r.kt)("admonition",{title:"Question Is the output count matrix filtered or normalized?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"No, we do not filter. We keep as much data as possible so that the researcher can make their own filtering and normalization choices. We do, however, output some information that may be helpful for filtering, like UMI counts per cell and calls on whether or not a cell is empty from emptyDrops software. For the emptyDrops call, a cell will be flagged as possibly empty if it contains fewer than 100 molecules.")),(0,r.kt)("admonition",{title:"Question How does the workflow change when using the single-cell RNA-seq (counting_mode = 'sc_rna') vs. the single-nucleus (counting_mode = 'sn_rna') parameters?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"The counting_mode parameter is used to specify the STARsolo COUNTING_MODE; when sn_rna is specified, STARsolo will tag gene exons, UTRs, AND introns with the GX tag. Additionally, the Optimus uses the counting_mode to determine whether to run emptyDrops; no emptyDrops data is calculated for the sn_rna mode.")),(0,r.kt)("admonition",{title:"Question Where can I find example Optimus datasets and parameters to test the pipeline?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"There are four example configuration JSON files available for you to test the pipeline- the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/human_v2_example.json"},"human_v2_example.json"),", the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/human_v3_example.json"},"human_v3_example.json"),", the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/mouse_v2_snRNA_example.json"},"mouse_v2_snRNA_example.json"),", and the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/mouse_v2_snRNA_example.json"},"mouse_v2_snRNA_example.json"),"(see the Inputs section). Each of these configuration files can be run in the Optimus Featured Workspace in Terra at ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/HCA_Optimus_Pipeline"},"https://app.terra.bio/#workspaces/featured-workspaces-hca/HCA_Optimus_Pipeline"),", but you should note that the workspace comes preloaded with the same data and configurations.")),(0,r.kt)("p",null,"The Optimus pipeline is a single sample pipeline, but it can accept multiple FASTQ files if a sample is sequenced across lanes. In this case, the pipeline will merge the results from each lane into single output files. There will only be one merged file for each output type (i.e one h5ad matrix, etc.). If you would like to view an example configuration file for a multi-lane dataset, please see the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/mouse_v2_example.json"},"mouse_v2_example.json"),". Additionally, you can view sample outputs in the Optimus featured workspace on ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/HCA_Optimus_Pipeline"},"Terra"),".\n:::"),(0,r.kt)("admonition",{title:"Question How do I find which parameters and Docker images were used for the different tasks (i.e. STAR alignment, emptyDrops, etc.)",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Parameters are listed in each task WDL. For a list of the tasks, see the table in the ",(0,r.kt)("a",{parentName:"p",href:"#optimus-tasks-and-tools"},"Tasks and Tools Section"),'. Select the link for the task of interest and then view the parameters in the task WDL "command {}" section. For the task Docker image, see task WDL "# runtime values" section; the Docker is listed as "String docker = ". If you want to learn more about all the different parameters available for a software tool, please select the relevant link in the table\'s "Tool" column.')),(0,r.kt)("admonition",{title:"Question Does Optimus have any read length requirements?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"For Read 1 sequences, the only minimum requirement is that reads are the combined lengths of the CB and UMIs (which will vary between 10x V1, V2, and V3 chemistry)."),(0,r.kt)("p",{parentName:"admonition"},"For Read 2 sequences, there is no read length requirement and read lengths will vary.")),(0,r.kt)("admonition",{title:"Question How does Optimus compare to Cell Ranger?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Cell Ranger is a commonly used set of analysis pipelines developed by ",(0,r.kt)("a",{parentName:"p",href:"https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger"},"10x Genomics"),". Optimus and Cell Ranger share many features and additionally, Optimus results are validated against Cell Ranger results (see our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/benchmarking/v1_Apr2019/optimus_report.rst"},"human validation report"),"). "),(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("em",{parentName:"p"},"So why develop an independent pipeline for 10x data analyses?")),(0,r.kt)("p",{parentName:"admonition"},"For three reasons:\n1) Need for an open-source, cloud-optimized pipeline. When Optimus was developed, Cell Ranger software was not yet open source, nor was it optimized for the cloud. To date, the Cell Ranger open-source code is still not regularly updated with Cell Ranger releases. In consequence, using the latest Cell Ranger (which is not open source yet) limits our ability to harness the breadth of tools available in the scientific community."),(0,r.kt)("p",{parentName:"admonition"},"2) Flexibility to process data similar, but not identical, to 10x. We wanted the ability to evolve our pipeline to process non-10x data types that might use similar features such as combinatorial indexing."),(0,r.kt)("p",{parentName:"admonition"},"3) Addition of metrics. We wanted the pipeline to calculate key metrics that would be useful to the scientific community, such as emptyDrops calculations, mitochondrial read metrics, etc."),(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("em",{parentName:"p"},"Reference differences between Optimus and Cell Ranger")),(0,r.kt)("p",{parentName:"admonition"},"Unlike Cell Ranger references, Optimus references are downloaded directly from GENCODE and not modified to remove pseudogenes and small RNAs. Learn more about Cell Ranger references on the ",(0,r.kt)("a",{parentName:"p",href:"https://support.10xgenomics.com/single-cell-multiome-atac-gex/software/release-notes/references#header"},"10x website"),". "),(0,r.kt)("p",{parentName:"admonition"},"In the case of multi-mapped pseudogenes, Optimus and Cell Ranger will produce different results. Optimus does not count multi-mapped reads in the final count matrix, whereas Cell Ranger will keep potential multi-mapped reads because it does not identify the pseudogene reads.")),(0,r.kt)("admonition",{title:"Question How does estimated cells differ between Cell Ranger and Optimus?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Overall, the estimated cells produced by Optimus and Cell Ranger should only slightly vary. However, if you are using Optimus in the Multiome pipeline and trying to compare estimated cells to Cell Ranger ARC, you might find that ARC calls fewer cells. This is because ARC sets a threshold that both the ATAC and gene expression cells must pass, whereas Optimus is only setting a threshold for the gene expression side of the pipeline.")))}d.isMDXComponent=!0},535:function(e,t,a){t.Z=a.p+"assets/images/Optimus_diagram-9ed86f08549489e7c475663f3e502f70.png"}}]); \ No newline at end of file diff --git a/assets/js/724ea057.fecb38ee.js b/assets/js/724ea057.fecb38ee.js new file mode 100644 index 000000000..275e5198e --- /dev/null +++ b/assets/js/724ea057.fecb38ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[9799],{3905:function(e,t,a){a.d(t,{Zo:function(){return m},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),p=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(o.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),u=p(a),c=r,h=u["".concat(o,".").concat(c)]||u[c]||d[c]||i;return a?n.createElement(h,l(l({ref:t},m),{},{components:a})):n.createElement(h,l({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=c;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[u]="string"==typeof e?e:r,l[1]=s;for(var p=2;p.bam")),(0,r.kt)("td",{parentName:"tr",align:null},"Aligned BAM"),(0,r.kt)("td",{parentName:"tr",align:null},"BAM")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts.npz")),(0,r.kt)("td",{parentName:"tr",align:null},"Converted sparse matrix file from the MergeStarOutputs task."),(0,r.kt)("td",{parentName:"tr",align:null},"NPZ")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix_row_index"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts_row_index.npy")),(0,r.kt)("td",{parentName:"tr",align:null},"Index of cells in count matrix."),(0,r.kt)("td",{parentName:"tr",align:null},"NPY")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"matrix_col_index"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"_sparse_counts_col_index.npy")),(0,r.kt)("td",{parentName:"tr",align:null},"Index of genes in count matrix."),(0,r.kt)("td",{parentName:"tr",align:null},"NPY")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"cell_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".cell-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Matrix of metrics by cells."),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"gene_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".gene-metrics.csv.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Matrix of metrics by genes."),(0,r.kt)("td",{parentName:"tr",align:null},"Compressed CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"aligner_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".star_metrics.tar")),(0,r.kt)("td",{parentName:"tr",align:null},"Tarred metrics files produced by the STARsolo aligner; contains align features, cell reads, summary, and UMI per cell metrics files."),(0,r.kt)("td",{parentName:"tr",align:null},"TXT")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"library_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"__library_metrics.csv")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional CSV file containing all library-level metrics calculated with STARsolo for gene expression data. See the ",(0,r.kt)("a",{parentName:"td",href:"/warp/docs/Pipelines/Optimus_Pipeline/Library-metrics"},"Library-level metrics")," for how metrics are calculated."),(0,r.kt)("td",{parentName:"tr",align:null},"CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"multimappers_EM_matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"UniqueAndMult-EM.mtx")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional output produced when ",(0,r.kt)("inlineCode",{parentName:"td"},"soloMultiMappers"),' is "EM"; see STARsolo ',(0,r.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR/blob/master/docs/STARsolo.md#multi-gene-reads"},"documentation")," for more information."),(0,r.kt)("td",{parentName:"tr",align:null},"MTX")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"multimappers_Uniform_matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"UniqueAndMult-Uniform.mtx")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional output produced when ",(0,r.kt)("inlineCode",{parentName:"td"},"soloMultiMappers"),' is "Uniform"; see STARsolo ',(0,r.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR/blob/master/docs/STARsolo.md#multi-gene-reads"},"documentation")," for more information."),(0,r.kt)("td",{parentName:"tr",align:null},"MTX")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"multimappers_Rescue_matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"UniqueAndMult-Rescue.mtx")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional output produced when ",(0,r.kt)("inlineCode",{parentName:"td"},"soloMultiMappers"),' is "Rescue"; see STARsolo ',(0,r.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR/blob/master/docs/STARsolo.md#multi-gene-reads"},"documentation")," for more information."),(0,r.kt)("td",{parentName:"tr",align:null},"MTX")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"multimappers_PropUnique_matrix"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"UniqueAndMult-PropUnique.mtx")),(0,r.kt)("td",{parentName:"tr",align:null},"Optional output produced when ",(0,r.kt)("inlineCode",{parentName:"td"},"soloMultiMappers"),' is "PropUnique"; see STARsolo ',(0,r.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR/blob/master/docs/STARsolo.md#multi-gene-reads"},"documentation")," for more information."),(0,r.kt)("td",{parentName:"tr",align:null},"MTX")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"cell_calls"),(0,r.kt)("td",{parentName:"tr",align:null},"empty_drops_result.csv"),(0,r.kt)("td",{parentName:"tr",align:null},"emptyDrops results from the RunEmptyDrops task."),(0,r.kt)("td",{parentName:"tr",align:null},"CSV")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"h5ad_output_file"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".h5ad")),(0,r.kt)("td",{parentName:"tr",align:null},"h5ad file with count data (exonic or whole transcript depending on the counting_mode) and metadata."),(0,r.kt)("td",{parentName:"tr",align:null},"H5AD")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"mtx_files"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".mtx_files.tar")),(0,r.kt)("td",{parentName:"tr",align:null},"TAR file with STARsolo matrix market files (barcodes.tsv, features.tsv, and matrix.mtx)"),(0,r.kt)("td",{parentName:"tr",align:null},"TAR")))),(0,r.kt)("p",null,"The h5ad matrix is the default output. This matrix contains the unnormalized (unfiltered), UMI-corrected count matrices, as well as the gene and cell metrics detailed in the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/Pipelines/Optimus_Pipeline/Loom_schema"},"Optimus Count Matrix Overview"),"."),(0,r.kt)("h4",{id:"try-the-optimus-matrix-with-community-tools"},"Try the Optimus matrix with community tools"),(0,r.kt)("p",null,"The matrix is compatible with multiple downstream community analysis tools, including ",(0,r.kt)("a",{parentName:"p",href:"https://satijalab.org/seurat/index.html"},"Seurat"),", ",(0,r.kt)("a",{parentName:"p",href:"https://scanpy.readthedocs.io/en/stable/"},"Scanpy"),", ",(0,r.kt)("a",{parentName:"p",href:"https://cumulus.readthedocs.io/en/latest/index.html"},"Cumulus"),", and ",(0,r.kt)("a",{parentName:"p",href:"https://pegasus.readthedocs.io/en/stable/#"},"Pegasus"),". To try a tutorial using the Optimus matrix with these tools, register for the open-source platform ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio"},"Terra")," and then navigate to the public ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/Intro-to-HCA-data-on-Terra"},"Intro-to-HCA-data-on-Terra workspace"),". You can also view the accompanying ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us/articles/360060041772"},"step-by-step guide")," without registration."),(0,r.kt)("h2",{id:"validation-against-cell-ranger"},"Validation against Cell Ranger"),(0,r.kt)("p",null,"Optimus has been validated for processing both human and mouse single-cell and single-nucleus data (see links to validation reports in the table below). For each validation, Optimus results are compared to those of Cell Ranger (see the ",(0,r.kt)("a",{parentName:"p",href:"#faqs"},"FAQ")," for more on Cell Ranger comparisons)."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Workflow configuration"),(0,r.kt)("th",{parentName:"tr",align:null},"Link to Report"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Human 10x v2 single-cell"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/benchmarking/v1_Apr2019/optimus_report.rst"},"Report"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mouse 10x v2 single-cell"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://docs.google.com/document/d/1_3oO0ZQSrwEoe6D3GgKdSmAQ9qkzH_7wrE7x6_deL10/edit"},"Report"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Human and mouse 10x v3 single-cell"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://docs.google.com/document/d/1-hwfXkqtL8MblgDWFzk-HsVRYiy4PS8ZhJqAGlHBWYE/edit#heading=h.4uokn64v1s5m"},"Report"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Human and Mouse 10x v2/v3 single-nucleus"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://docs.google.com/document/d/1rv2M7vfpOzIOsMnMfNyKB4HV18lQ9dnOGHK2tPikiH0/edit"},"Report"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Optimus STARsolo (v5.0.0 and later)"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://docs.google.com/document/d/1B6Ux6HICD4ZL4Z0TG9LO-X43gOdF3sbq5qw_L2GA6fg/edit"},"Report"))))),(0,r.kt)("h2",{id:"versioning"},"Versioning"),(0,r.kt)("p",null,"All Optimus pipeline releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/Optimus.changelog.md"},"Optimus changelog"),"."),(0,r.kt)("h2",{id:"citing-the-optimus-pipeline"},"Citing the Optimus Pipeline"),(0,r.kt)("p",null,"If you use the Optimus Pipeline in your research, please identify the pipeline in your methods section using the ",(0,r.kt)("a",{parentName:"p",href:"https://scicrunch.org/resources/data/record/nlx_144509-1/SCR_018908/resolver?q=SCR_018908&l=SCR_018908&i=rrid:scr_018908"},"Optimus SciCrunch resource identifier"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Ex: ",(0,r.kt)("em",{parentName:"li"},"Optimus Pipeline (RRID:SCR_018908)"))),(0,r.kt)("p",null,"Please also consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"consortia-support"},"Consortia support"),(0,r.kt)("p",null,"This pipeline is supported and used by the ",(0,r.kt)("a",{parentName:"p",href:"https://www.humancellatlas.org/"},"Human Cell Atlas")," (HCA) project and the ",(0,r.kt)("a",{parentName:"p",href:"https://biccn.org/"},"BRAIN Initiative Cell Census Network")," (BICCN). "),(0,r.kt)("p",null,"Each consortium may use slightly different reference files for data analysis or have different post-processing steps. Learn more by reading the ",(0,r.kt)("a",{parentName:"p",href:"/warp/docs/Pipelines/Optimus_Pipeline/consortia-processing"},"Consortia Processing")," overview."),(0,r.kt)("p",null,"If your organization also uses this pipeline, we would like to list you! Please reach out to us by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"."),(0,r.kt)("h2",{id:"feedback"},"Feedback"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."),(0,r.kt)("h2",{id:"acknowledgements"},"Acknowledgements"),(0,r.kt)("p",null,"We are immensely grateful to the members of the ",(0,r.kt)("a",{parentName:"p",href:"https://data.humancellatlas.org/"},"Human Cell Atlas Data Coordination Platform"),", BRAIN Initiative (",(0,r.kt)("a",{parentName:"p",href:"https://brainblog.nih.gov/brain-blog/brain-issues-suite-funding-opportunities-advance-brain-cell-atlases-through-centers"},"BICAN")," Sequencing Working Group) and ",(0,r.kt)("a",{parentName:"p",href:"https://nida.nih.gov/about-nida/organization/divisions/division-neuroscience-behavior-dnb/basic-research-hiv-substance-use-disorder/scorch-program"},"SCORCH")," for their invaluable and exceptional contributions to this pipeline. Our heartfelt appreciation goes to Alex Dobin, Aparna Bhaduri, Alec Wysoker, Anish Chakka, Brian Herb, Daofeng Li, Fenna Krienen, Guo-Long Zuo, Jeff Goldy, Kai Zhang, Khalid Shakir, Bo Li, Mariano Gabitto, Michael DeBerardine, Mengyi Song, Melissa Goldman, Nelson Johansen, James Nemesh, and Theresa Hodges for their unwavering dedication and remarkable efforts. "),(0,r.kt)("h2",{id:"faqs"},"FAQs"),(0,r.kt)("admonition",{title:"Question Can I run Optimus in Terra?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Yes! We have a Terra workspace that is preconfigured with the latest Optimus workflow and is preloaded with human and mouse sample data. You can access the ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/HCA_Optimus_Pipeline"},"workspace"),". You will need a Google account to set up Terra. Please see ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us"},"Terra Support")," for documents on getting started.")),(0,r.kt)("admonition",{title:"Question Is the output count matrix filtered or normalized?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"No, we do not filter. We keep as much data as possible so that the researcher can make their own filtering and normalization choices. We do, however, output some information that may be helpful for filtering, like UMI counts per cell and calls on whether or not a cell is empty from emptyDrops software. For the emptyDrops call, a cell will be flagged as possibly empty if it contains fewer than 100 molecules.")),(0,r.kt)("admonition",{title:"Question How does the workflow change when using the single-cell RNA-seq (counting_mode = 'sc_rna') vs. the single-nucleus (counting_mode = 'sn_rna') parameters?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"The counting_mode parameter is used to specify the STARsolo COUNTING_MODE; when sn_rna is specified, STARsolo will tag gene exons, UTRs, AND introns with the GX tag. Additionally, the Optimus uses the counting_mode to determine whether to run emptyDrops; no emptyDrops data is calculated for the sn_rna mode.")),(0,r.kt)("admonition",{title:"Question Where can I find example Optimus datasets and parameters to test the pipeline?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"There are four example configuration JSON files available for you to test the pipeline- the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/human_v2_example.json"},"human_v2_example.json"),", the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/human_v3_example.json"},"human_v3_example.json"),", the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/mouse_v2_snRNA_example.json"},"mouse_v2_snRNA_example.json"),", and the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/mouse_v2_snRNA_example.json"},"mouse_v2_snRNA_example.json"),"(see the Inputs section). Each of these configuration files can be run in the Optimus Featured Workspace in Terra at ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/HCA_Optimus_Pipeline"},"https://app.terra.bio/#workspaces/featured-workspaces-hca/HCA_Optimus_Pipeline"),", but you should note that the workspace comes preloaded with the same data and configurations.")),(0,r.kt)("p",null,"The Optimus pipeline is a single sample pipeline, but it can accept multiple FASTQ files if a sample is sequenced across lanes. In this case, the pipeline will merge the results from each lane into single output files. There will only be one merged file for each output type (i.e one h5ad matrix, etc.). If you would like to view an example configuration file for a multi-lane dataset, please see the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/example_inputs/mouse_v2_example.json"},"mouse_v2_example.json"),". Additionally, you can view sample outputs in the Optimus featured workspace on ",(0,r.kt)("a",{parentName:"p",href:"https://app.terra.bio/#workspaces/featured-workspaces-hca/HCA_Optimus_Pipeline"},"Terra"),".\n:::"),(0,r.kt)("admonition",{title:"Question How do I find which parameters and Docker images were used for the different tasks (i.e. STAR alignment, emptyDrops, etc.)",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Parameters are listed in each task WDL. For a list of the tasks, see the table in the ",(0,r.kt)("a",{parentName:"p",href:"#optimus-tasks-and-tools"},"Tasks and Tools Section"),'. Select the link for the task of interest and then view the parameters in the task WDL "command {}" section. For the task Docker image, see task WDL "# runtime values" section; the Docker is listed as "String docker = ". If you want to learn more about all the different parameters available for a software tool, please select the relevant link in the table\'s "Tool" column.')),(0,r.kt)("admonition",{title:"Question Does Optimus have any read length requirements?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"For Read 1 sequences, the only minimum requirement is that reads are the combined lengths of the CB and UMIs (which will vary between 10x V1, V2, and V3 chemistry)."),(0,r.kt)("p",{parentName:"admonition"},"For Read 2 sequences, there is no read length requirement and read lengths will vary.")),(0,r.kt)("admonition",{title:"Question How does Optimus compare to Cell Ranger?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Cell Ranger is a commonly used set of analysis pipelines developed by ",(0,r.kt)("a",{parentName:"p",href:"https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger"},"10x Genomics"),". Optimus and Cell Ranger share many features and additionally, Optimus results are validated against Cell Ranger results (see our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/optimus/benchmarking/v1_Apr2019/optimus_report.rst"},"human validation report"),"). "),(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("em",{parentName:"p"},"So why develop an independent pipeline for 10x data analyses?")),(0,r.kt)("p",{parentName:"admonition"},"For three reasons:\n1) Need for an open-source, cloud-optimized pipeline. When Optimus was developed, Cell Ranger software was not yet open source, nor was it optimized for the cloud. To date, the Cell Ranger open-source code is still not regularly updated with Cell Ranger releases. In consequence, using the latest Cell Ranger (which is not open source yet) limits our ability to harness the breadth of tools available in the scientific community."),(0,r.kt)("p",{parentName:"admonition"},"2) Flexibility to process data similar, but not identical, to 10x. We wanted the ability to evolve our pipeline to process non-10x data types that might use similar features such as combinatorial indexing."),(0,r.kt)("p",{parentName:"admonition"},"3) Addition of metrics. We wanted the pipeline to calculate key metrics that would be useful to the scientific community, such as emptyDrops calculations, mitochondrial read metrics, etc."),(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("em",{parentName:"p"},"Reference differences between Optimus and Cell Ranger")),(0,r.kt)("p",{parentName:"admonition"},"Unlike Cell Ranger references, Optimus references are downloaded directly from GENCODE and not modified to remove pseudogenes and small RNAs. Learn more about Cell Ranger references on the ",(0,r.kt)("a",{parentName:"p",href:"https://support.10xgenomics.com/single-cell-multiome-atac-gex/software/release-notes/references#header"},"10x website"),". "),(0,r.kt)("p",{parentName:"admonition"},"In the case of multi-mapped pseudogenes, Optimus and Cell Ranger will produce different results. Optimus does not count multi-mapped reads in the final count matrix, whereas Cell Ranger will keep potential multi-mapped reads because it does not identify the pseudogene reads.")),(0,r.kt)("admonition",{title:"Question How does estimated cells differ between Cell Ranger and Optimus?",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Overall, the estimated cells produced by Optimus and Cell Ranger should only slightly vary. However, if you are using Optimus in the Multiome pipeline and trying to compare estimated cells to Cell Ranger ARC, you might find that ARC calls fewer cells. This is because ARC sets a threshold that both the ATAC and gene expression cells must pass, whereas Optimus is only setting a threshold for the gene expression side of the pipeline.")))}d.isMDXComponent=!0},535:function(e,t,a){t.Z=a.p+"assets/images/Optimus_diagram-9ed86f08549489e7c475663f3e502f70.png"}}]); \ No newline at end of file diff --git a/assets/js/7485ae2a.5f867c0a.js b/assets/js/7485ae2a.5f867c0a.js deleted file mode 100644 index a3c6e06d6..000000000 --- a/assets/js/7485ae2a.5f867c0a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[9852],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=p(n),h=i,m=d["".concat(l,".").concat(h)]||d[h]||u[h]||r;return n?a.createElement(m,o(o({ref:t},c),{},{components:n})):a.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var p=2;p=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=p(n),h=i,m=d["".concat(l,".").concat(h)]||d[h]||u[h]||r;return n?a.createElement(m,o(o({ref:t},c),{},{components:n})):a.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var p=2;p=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),s=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=s(t.components);return n.createElement(p.Provider,{value:e},t.children)},m="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,d=o(t,["components","mdxType","originalType","parentName"]),m=s(a),c=r,k=m["".concat(p,".").concat(c)]||m[c]||u[c]||i;return a?n.createElement(k,l(l({ref:e},d),{},{components:a})):n.createElement(k,l({ref:e},d))}));function k(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=c;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[m]="string"==typeof t?t:r,l[1]=o;for(var s=2;s"),".bam"),(0,r.kt)("td",{parentName:"tr",align:null},"BAM containing aligned reads from ATAC workflow.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fragment_file"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},""),".fragments.tsv"),(0,r.kt)("td",{parentName:"tr",align:null},'TSV containing fragment start and stop coordinates per barcode. In order, the columns are "Chromosome", "Start", "Stop", "ATAC Barcode", and "Number Reads".')),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"snap_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),s=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=s(t.components);return n.createElement(p.Provider,{value:e},t.children)},m="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,d=o(t,["components","mdxType","originalType","parentName"]),m=s(a),c=r,k=m["".concat(p,".").concat(c)]||m[c]||u[c]||i;return a?n.createElement(k,l(l({ref:e},d),{},{components:a})):n.createElement(k,l({ref:e},d))}));function k(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=c;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[m]="string"==typeof t?t:r,l[1]=o;for(var s=2;s"),".bam"),(0,r.kt)("td",{parentName:"tr",align:null},"BAM containing aligned reads from ATAC workflow.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"fragment_file"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},""),".fragments.tsv"),(0,r.kt)("td",{parentName:"tr",align:null},'TSV containing fragment start and stop coordinates per barcode. In order, the columns are "Chromosome", "Start", "Stop", "ATAC Barcode", and "Number Reads".')),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"snap_metrics"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=p(n),m=a,g=c["".concat(s,".").concat(m)]||c[m]||u[m]||i;return n?r.createElement(g,o(o({ref:t},d),{},{components:n})):r.createElement(g,o({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var p=2;p=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=p(n),m=a,g=c["".concat(s,".").concat(m)]||c[m]||u[m]||i;return n?r.createElement(g,o(o({ref:t},d),{},{components:n})):r.createElement(g,o({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var p=2;p=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var d=r.createContext({}),p=function(t){var e=r.useContext(d),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},s=function(t){var e=p(t.components);return r.createElement(d.Provider,{value:e},t.children)},m="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},c=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,i=t.originalType,d=t.parentName,s=o(t,["components","mdxType","originalType","parentName"]),m=p(a),c=n,h=m["".concat(d,".").concat(c)]||m[c]||u[c]||i;return a?r.createElement(h,l(l({ref:e},s),{},{components:a})):r.createElement(h,l({ref:e},s))}));function h(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=a.length,l=new Array(i);l[0]=c;var o={};for(var d in e)hasOwnProperty.call(e,d)&&(o[d]=e[d]);o.originalType=t,o[m]="string"==typeof t?t:n,l[1]=o;for(var p=2;p=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var d=r.createContext({}),p=function(t){var e=r.useContext(d),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},s=function(t){var e=p(t.components);return r.createElement(d.Provider,{value:e},t.children)},m="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},c=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,i=t.originalType,d=t.parentName,s=o(t,["components","mdxType","originalType","parentName"]),m=p(a),c=n,h=m["".concat(d,".").concat(c)]||m[c]||u[c]||i;return a?r.createElement(h,l(l({ref:e},s),{},{components:a})):r.createElement(h,l({ref:e},s))}));function h(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=a.length,l=new Array(i);l[0]=c;var o={};for(var d in e)hasOwnProperty.call(e,d)&&(o[d]=e[d]);o.originalType=t,o[m]="string"==typeof t?t:n,l[1]=o;for(var p=2;p=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var o=n.createContext({}),p=function(t){var e=n.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=p(t.components);return n.createElement(o.Provider,{value:e},t.children)},u="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},g=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,o=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),u=p(a),g=r,k=u["".concat(o,".").concat(g)]||u[g]||m[g]||i;return a?n.createElement(k,l(l({ref:e},d),{},{components:a})):n.createElement(k,l({ref:e},d))}));function k(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=g;var s={};for(var o in e)hasOwnProperty.call(e,o)&&(s[o]=e[o]);s.originalType=t,s[u]="string"==typeof t?t:r,l[1]=s;for(var p=2;p.variant_calling_detail_metrics")),(0,r.kt)("td",{parentName:"tr",align:null},"Detail metrics file produced using Picard.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"summary_metrics_file"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".variant_calling_summary_metrics")),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics file produced using Picard.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_vcfs"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".vcf.gz")," or ",(0,r.kt)("inlineCode",{parentName:"td"},".filtered..vcf.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Array of all site-specific output VCF files.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_vcf_indices"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".vcf.gz.tbi")," or ",(0,r.kt)("inlineCode",{parentName:"td"},".filtered..vcf.gz.tbi")),(0,r.kt)("td",{parentName:"tr",align:null},"Array of all output VCF index files.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_intervals"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"scatterDir/")),(0,r.kt)("td",{parentName:"tr",align:null},"Interval list file produced by the workflow.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"crosscheck_fingerprint_check"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".fingerprintcheck")),(0,r.kt)("td",{parentName:"tr",align:null},"Fingerprint metrics")))),(0,r.kt)("h2",{id:"versioning-and-testing"},"Versioning and testing"),(0,r.kt)("p",null,"All JointGenotyping pipeline releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/broad/dna_seq/germline/joint_genotyping/JointGenotyping.changelog.md"},"JointGenotyping changelog")," and tested using ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/broad/dna_seq/germline/joint_genotyping/test_data_overview.md"},"plumbing and scientific test data"),". To learn more about WARP pipeline testing, see ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"Testing Pipelines"),"."),(0,r.kt)("h2",{id:"citing-the-jointgenotyping-pipeline"},"Citing the JointGenotyping Pipeline"),(0,r.kt)("p",null,"If you use the JointGenotyping Pipeline in your research, please consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"feedback"},"Feedback"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8599e9c8.e77c3fd1.js b/assets/js/8599e9c8.e77c3fd1.js new file mode 100644 index 000000000..7011ee3ee --- /dev/null +++ b/assets/js/8599e9c8.e77c3fd1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[9875],{3905:function(t,e,a){a.d(e,{Zo:function(){return d},kt:function(){return k}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var o=n.createContext({}),p=function(t){var e=n.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=p(t.components);return n.createElement(o.Provider,{value:e},t.children)},u="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},g=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,o=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),u=p(a),g=r,k=u["".concat(o,".").concat(g)]||u[g]||m[g]||i;return a?n.createElement(k,l(l({ref:e},d),{},{components:a})):n.createElement(k,l({ref:e},d))}));function k(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=g;var s={};for(var o in e)hasOwnProperty.call(e,o)&&(s[o]=e[o]);s.originalType=t,s[u]="string"==typeof t?t:r,l[1]=s;for(var p=2;p.variant_calling_detail_metrics")),(0,r.kt)("td",{parentName:"tr",align:null},"Detail metrics file produced using Picard.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"summary_metrics_file"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".variant_calling_summary_metrics")),(0,r.kt)("td",{parentName:"tr",align:null},"Summary metrics file produced using Picard.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_vcfs"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".vcf.gz")," or ",(0,r.kt)("inlineCode",{parentName:"td"},".filtered..vcf.gz")),(0,r.kt)("td",{parentName:"tr",align:null},"Array of all site-specific output VCF files.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_vcf_indices"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".vcf.gz.tbi")," or ",(0,r.kt)("inlineCode",{parentName:"td"},".filtered..vcf.gz.tbi")),(0,r.kt)("td",{parentName:"tr",align:null},"Array of all output VCF index files.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"output_intervals"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"scatterDir/")),(0,r.kt)("td",{parentName:"tr",align:null},"Interval list file produced by the workflow.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"crosscheck_fingerprint_check"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},".fingerprintcheck")),(0,r.kt)("td",{parentName:"tr",align:null},"Fingerprint metrics")))),(0,r.kt)("h2",{id:"versioning-and-testing"},"Versioning and testing"),(0,r.kt)("p",null,"All JointGenotyping pipeline releases are documented in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/broad/dna_seq/germline/joint_genotyping/JointGenotyping.changelog.md"},"JointGenotyping changelog")," and tested using ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/broad/dna_seq/germline/joint_genotyping/test_data_overview.md"},"plumbing and scientific test data"),". To learn more about WARP pipeline testing, see ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"Testing Pipelines"),"."),(0,r.kt)("h2",{id:"citing-the-jointgenotyping-pipeline"},"Citing the JointGenotyping Pipeline"),(0,r.kt)("p",null,"If you use the JointGenotyping Pipeline in your research, please consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"feedback"},"Feedback"),(0,r.kt)("p",null,"Please help us make our tools better by ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"; we welcome pipeline-related suggestions or questions."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8a4527e6.054431df.js b/assets/js/8a4527e6.054431df.js deleted file mode 100644 index 370e2f1c5..000000000 --- a/assets/js/8a4527e6.054431df.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[2024],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return f}});var i=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=i.createContext({}),p=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),c=p(n),d=r,f=c["".concat(s,".").concat(d)]||c[d]||u[d]||a;return n?i.createElement(f,o(o({ref:t},m),{},{components:n})):i.createElement(f,o({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,o=new Array(a);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var p=2;p=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=i.createContext({}),p=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),c=p(n),d=r,f=c["".concat(s,".").concat(d)]||c[d]||u[d]||a;return n?i.createElement(f,o(o({ref:t},m),{},{components:n})):i.createElement(f,o({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,o=new Array(a);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var p=2;p=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var m=i.createContext({}),l=function(t){var e=i.useContext(m),a=e;return t&&(a="function"==typeof t?t(e):d(d({},e),t)),a},o=function(t){var e=l(t.components);return i.createElement(m.Provider,{value:e},t.children)},c="mdxType",N={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},h=i.forwardRef((function(t,e){var a=t.components,r=t.mdxType,n=t.originalType,m=t.parentName,o=p(t,["components","mdxType","originalType","parentName"]),c=l(a),h=r,k=c["".concat(m,".").concat(h)]||c[h]||N[h]||n;return a?i.createElement(k,d(d({ref:e},o),{},{components:a})):i.createElement(k,d({ref:e},o))}));function k(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var n=a.length,d=new Array(n);d[0]=h;var p={};for(var m in e)hasOwnProperty.call(e,m)&&(p[m]=e[m]);p.originalType=t,p[c]="string"==typeof t?t:r,d[1]=p;for(var l=2;l1 times")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"http://daehwankimlab.github.io/hisat2/manual/"},"HISAT2")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Number and percent reads aligned more than 1 time")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"BAD_CYCLES.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"CODING_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"CORRECT_STRAND_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"ESTIMATED_LIBRARY_SIZE")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"GC_DROPOUT")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"GC_NC_0_19")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"GC_NC_20_39")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"GC_NC_40_59")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"GC_NC_60_79")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"GC_NC_80_100")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"IGNORED_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"INCORRECT_STRAND_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"INTERGENIC_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"INTRONIC_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"MEAN_READ_LENGTH.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"MEDIAN_3PRIME_BIAS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"MEDIAN_5PRIME_BIAS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"MEDIAN_5PRIME_TO_3PRIME_BIAS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"MEDIAN_CV_COVERAGE")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"NUM_R1_TRANSCRIPT_STRAND_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"NUM_R2_TRANSCRIPT_STRAND_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"NUM_UNEXPLAINED_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"Overall alignment rate")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"http://daehwankimlab.github.io/hisat2/manual/"},"HISAT2")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Overall percent of reads that aligned")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_ADAPTER.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_CHIMERAS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_CODING_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_CORRECT_STRAND_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_INTERGENIC_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_INTRONIC_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_MRNA_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_PF_READS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_PF_READS_ALIGNED.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_PF_READS_IMPROPER_PAIRS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_R1_TRANSCRIPT_STRAND_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_R2_TRANSCRIPT_STRAND_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_READS_ALIGNED_IN_PAIRS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_RIBOSOMAL_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_USABLE_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PCT_UTR_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PERCENT_DUPLICATION")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_ALIGNED_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_ALIGNED_BASES.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_HQ_ALIGNED_BASES.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_HQ_ALIGNED_Q20_BASES.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_HQ_ALIGNED_READS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_HQ_ERROR_RATE.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_HQ_MEDIAN_MISMATCHES.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_INDEL_RATE.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_MISMATCH_RATE.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_NOISE_READS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_READS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_READS_ALIGNED.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"PF_READS_IMPROPER_PAIRS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"READS_ALIGNED_IN_PAIRS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"READS_USED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"READ_PAIRS_EXAMINED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"READ_PAIR_DUPLICATES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"READ_PAIR_OPTICAL_DUPLICATES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"RIBOSOMAL_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"SECONDARY_OR_SUPPLEMENTARY_RDS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"STRAND_BALANCE.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"TOTAL_CLUSTERS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"TOTAL_READS.UNPAIRED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"Total reads")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"http://daehwankimlab.github.io/hisat2/manual/"},"HISAT2")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Total number of aligned reads")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"UNMAPPED_READS")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"UNPAIRED_READS_EXAMINED")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"UNPAIRED_READ_DUPLICATES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"UTR_BASES")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"WINDOW_SIZE")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")),(0,r.kt)("td",{parentName:"tr",align:"left"},"See ",(0,r.kt)("a",{parentName:"td",href:"https://broadinstitute.github.io/picard/picard-metric-definitions.html"},"Picard")," documentation")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"alignable reads")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://github.com/deweylab/RSEM/blob/master/cnt_file_description.txt"},"RSEM cnt file")),(0,r.kt)("td",{parentName:"tr",align:"left"},"The number of alignable reads")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"filtered reads")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://github.com/deweylab/RSEM/blob/master/cnt_file_description.txt"},"RSEM cnt file")),(0,r.kt)("td",{parentName:"tr",align:"left"},"The number of filtered reads due to too many alignments")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"multiple mapped")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://github.com/deweylab/RSEM/blob/master/cnt_file_description.txt"},"RSEM cnt file")),(0,r.kt)("td",{parentName:"tr",align:"left"},"The number of reads aligned to multiple genes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"strand")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://github.com/deweylab/RSEM/blob/master/cnt_file_description.txt"},"RSEM cnt file")),(0,r.kt)("td",{parentName:"tr",align:"left"},"The RSEM read_type; describes if data is single- or paired-end")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"total alignments")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://github.com/deweylab/RSEM/blob/master/cnt_file_description.txt"},"RSEM cnt file")),(0,r.kt)("td",{parentName:"tr",align:"left"},"The RSEM nHits; the number of total alignments")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"total reads")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://github.com/deweylab/RSEM/blob/master/cnt_file_description.txt"},"RSEM cnt file")),(0,r.kt)("td",{parentName:"tr",align:"left"},"The number of total alignable reads")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"unalignable reads")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://github.com/deweylab/RSEM/blob/master/cnt_file_description.txt"},"RSEM cnt file")),(0,r.kt)("td",{parentName:"tr",align:"left"},"The number of reads unalignable")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"uncertain reads")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://github.com/deweylab/RSEM/blob/master/cnt_file_description.txt"},"RSEM cnt file")),(0,r.kt)("td",{parentName:"tr",align:"left"},"The number of reads aligned to multiple locations")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"unique aligned")),(0,r.kt)("td",{parentName:"tr",align:"center"},(0,r.kt)("a",{parentName:"td",href:"https://github.com/deweylab/RSEM/blob/master/cnt_file_description.txt"},"RSEM cnt file")),(0,r.kt)("td",{parentName:"tr",align:"left"},"The number of reads uniquely alignable to one gene")))),(0,r.kt)("h2",{id:"table-3-row-attributes-gene-metrics"},"Table 3. Row Attributes (Gene Metrics)"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Gene Metrics"),(0,r.kt)("th",{parentName:"tr",align:null},"Program"),(0,r.kt)("th",{parentName:"tr",align:null},"Details"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ensembl_ids")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://www.gencodegenes.org/"},"GENCODE GTF")),(0,r.kt)("td",{parentName:"tr",align:null},"The gene_id listed in the GENCODE GTF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"gene_names")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://www.gencodegenes.org/"},"GENCODE GTF")),(0,r.kt)("td",{parentName:"tr",align:null},"The unique gene_name provided in the GENCODE GTF")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"Gene")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://www.gencodegenes.org/"},"GENCODE GTF")),(0,r.kt)("td",{parentName:"tr",align:null},"The unique gene_name provided in the GENCODE GTF; identical to attribute in ",(0,r.kt)("inlineCode",{parentName:"td"},"gene_names"))))))}N.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8ce4a3d8.3b8d87cd.js b/assets/js/8ce4a3d8.3b8d87cd.js new file mode 100644 index 000000000..313ffd42c --- /dev/null +++ b/assets/js/8ce4a3d8.3b8d87cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[1703],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return h}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(n),c=i,h=u["".concat(s,".").concat(c)]||u[c]||m[c]||r;return n?a.createElement(h,l(l({ref:t},p),{},{components:n})):a.createElement(h,l({ref:t},p))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,l=new Array(r);l[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var d=2;d--build--.tar")),(0,i.kt)("td",{parentName:"tr",align:null},"TAR file containing a species-specific reference genome and GTF file for ",(0,i.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR"},"STAR")," alignment.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"pipeline_version_out"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"BuildIndices_v")),(0,i.kt)("td",{parentName:"tr",align:null},"String describing the version of the BuildIndices pipeline used.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"snSS2_annotation_gtf_modified"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"modified_v.annotation.gtf")),(0,i.kt)("td",{parentName:"tr",align:null},"GTF file containing gene annotations filtered for selected biotypes.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"reference_bundle"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"bwa-mem2-2.2.1---build-.tar")),(0,i.kt)("td",{parentName:"tr",align:null},"TAR file containing the reference index files for ",(0,i.kt)("a",{parentName:"td",href:"https://github.com/lh3/bwa"},"BWA-mem")," alignment.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"chromosome_sizes"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"chrom.sizes")),(0,i.kt)("td",{parentName:"tr",align:null},"Text file containing chromosome sizes for the genome build.")))),(0,i.kt)("h2",{id:"versioning-and-testing"},"Versioning and testing"),(0,i.kt)("p",null,"All BuildIndices pipeline releases are documented in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/build_indices/BuildIndices.changelog.md"},"BuildIndices changelog")," and tested manually using ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/tree/master/pipelines/skylab/build_indices"},"reference JSON files"),"."),(0,i.kt)("h2",{id:"citing-the-buildindices-pipeline"},"Citing the BuildIndices Pipeline"),(0,i.kt)("p",null,"If you use the BuildIndices Pipeline in your research, please consider citing our preprint:"),(0,i.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,i.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,i.kt)("h2",{id:"consortia-support"},"Consortia support"),(0,i.kt)("p",null,"This pipeline is supported by the ",(0,i.kt)("a",{parentName:"p",href:"https://braininitiative.nih.gov/"},"BRAIN Initiative")," (BICCN and BICAN). "),(0,i.kt)("p",null,"If your organization also uses this pipeline, we would like to list you! Please reach out to us by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"."),(0,i.kt)("h2",{id:"feedback"},"Feedback"),(0,i.kt)("p",null,"Please help us make our tools better by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP")," for pipeline-related suggestions or questions."))}m.isMDXComponent=!0},4563:function(e,t,n){t.Z=n.p+"assets/images/buildindices_diagram-df706c5e53b274ea9d451efd93ce1c0e.png"}}]); \ No newline at end of file diff --git a/assets/js/8ce4a3d8.dfe3b5df.js b/assets/js/8ce4a3d8.dfe3b5df.js deleted file mode 100644 index 809ac1e80..000000000 --- a/assets/js/8ce4a3d8.dfe3b5df.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[1703],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return h}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(n),c=i,h=u["".concat(s,".").concat(c)]||u[c]||m[c]||r;return n?a.createElement(h,l(l({ref:t},p),{},{components:n})):a.createElement(h,l({ref:t},p))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,l=new Array(r);l[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var d=2;d--build--.tar")),(0,i.kt)("td",{parentName:"tr",align:null},"TAR file containing a species-specific reference genome and GTF file for ",(0,i.kt)("a",{parentName:"td",href:"https://github.com/alexdobin/STAR"},"STAR")," alignment.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"pipeline_version_out"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"BuildIndices_v")),(0,i.kt)("td",{parentName:"tr",align:null},"String describing the version of the BuildIndices pipeline used.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"snSS2_annotation_gtf_modified"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"modified_v.annotation.gtf")),(0,i.kt)("td",{parentName:"tr",align:null},"GTF file containing gene annotations filtered for selected biotypes.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"reference_bundle"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"bwa-mem2-2.2.1---build-.tar")),(0,i.kt)("td",{parentName:"tr",align:null},"TAR file containing the reference index files for ",(0,i.kt)("a",{parentName:"td",href:"https://github.com/lh3/bwa"},"BWA-mem")," alignment.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"chromosome_sizes"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"chrom.sizes")),(0,i.kt)("td",{parentName:"tr",align:null},"Text file containing chromosome sizes for the genome build.")))),(0,i.kt)("h2",{id:"versioning-and-testing"},"Versioning and testing"),(0,i.kt)("p",null,"All BuildIndices pipeline releases are documented in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/pipelines/skylab/build_indices/BuildIndices.changelog.md"},"BuildIndices changelog")," and tested manually using ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/tree/master/pipelines/skylab/build_indices"},"reference JSON files"),"."),(0,i.kt)("h2",{id:"citing-the-buildindices-pipeline"},"Citing the BuildIndices Pipeline"),(0,i.kt)("p",null,"If you use the BuildIndices Pipeline in your research, please consider citing our preprint:"),(0,i.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,i.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,i.kt)("h2",{id:"consortia-support"},"Consortia support"),(0,i.kt)("p",null,"This pipeline is supported by the ",(0,i.kt)("a",{parentName:"p",href:"https://braininitiative.nih.gov/"},"BRAIN Initiative")," (BICCN and BICAN). "),(0,i.kt)("p",null,"If your organization also uses this pipeline, we would like to list you! Please reach out to us by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP"),"."),(0,i.kt)("h2",{id:"feedback"},"Feedback"),(0,i.kt)("p",null,"Please help us make our tools better by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues"},"filing an issue in WARP")," for pipeline-related suggestions or questions."))}m.isMDXComponent=!0},4563:function(e,t,n){t.Z=n.p+"assets/images/buildindices_diagram-df706c5e53b274ea9d451efd93ce1c0e.png"}}]); \ No newline at end of file diff --git a/assets/js/9434f829.12b2f91e.js b/assets/js/9434f829.12b2f91e.js deleted file mode 100644 index c6c785961..000000000 --- a/assets/js/9434f829.12b2f91e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[6805],{3905:function(t,e,a){a.d(e,{Zo:function(){return m},kt:function(){return g}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function l(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),s=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},m=function(t){var e=s(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,m=o(t,["components","mdxType","originalType","parentName"]),d=s(a),c=r,g=d["".concat(p,".").concat(c)]||d[c]||u[c]||l;return a?n.createElement(g,i(i({ref:e},m),{},{components:a})):n.createElement(g,i({ref:e},m))}));function g(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=c;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[d]="string"==typeof t?t:r,i[1]=o;for(var s=2;s=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),s=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},m=function(t){var e=s(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,m=o(t,["components","mdxType","originalType","parentName"]),d=s(a),c=r,g=d["".concat(p,".").concat(c)]||d[c]||u[c]||l;return a?n.createElement(g,i(i({ref:e},m),{},{components:a})):n.createElement(g,i({ref:e},m))}));function g(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=c;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[d]="string"==typeof t?t:r,i[1]=o;for(var s=2;s=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),u=p(a),d=r,h=u["".concat(s,".").concat(d)]||u[d]||c[d]||i;return a?n.createElement(h,l(l({ref:t},m),{},{components:a})):n.createElement(h,l({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:r,l[1]=o;for(var p=2;p.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"New annotations enable merging data for filtering without using genotypes. For example:"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"RAW_GT_COUNT(S) for doing ExcessHet calculation from a sites-only file."),(0,r.kt)("li",{parentName:"ul"},"QUALapprox and/or AS_QUALapprox for doing QUAL approximation/filling. "),(0,r.kt)("li",{parentName:"ul"},"QUAL VCF field from a combined sites-only field."),(0,r.kt)("li",{parentName:"ul"},"VarDP and/or AS_VarDP used to calculate QualByDepth/QD annotation for VQSR."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"The MIN_DP has been removed.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Reblocked GVCFs have the following cost/scale improvements:"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A reduced storage footprint compared with HaplotypeCaller GVCF output."),(0,r.kt)("li",{parentName:"ul"},"Fewer VariantContexts (i.e. lines) per VCF which speeds up GenomicsDB/Hail import."),(0,r.kt)("li",{parentName:"ul"},"Fewer alternate alleles which reduce memory requirements for merging.")))),(0,r.kt)("p",null,"Additionally, the 4 GQ band schema has specific improvements compared with the 7-band schema:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"It does not drop GQ0s; reblocked GVCFs should cover all the positions that the input GVCF covers."),(0,r.kt)("li",{parentName:"ol"},"It has no overlaps; the only overlapping positions should be two variants (i.e. deletions) on separate haplotypes."),(0,r.kt)("li",{parentName:"ol"},"No more no-calls; all genotypes should be called. Positions with no data will be homRef with GQ0.")),(0,r.kt)("p",null,"Read more about the reblocked GVCFs in the ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/blog/Nov21_ReblockedGVCF"},"WARP Blog"),"."),(0,r.kt)("h3",{id:"base-quality-scores"},"Base quality scores"),(0,r.kt)("p",null,"The final CRAM files have base quality scores binned according to the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/CCDG/Pipeline-Standardization/blob/master/PipelineStandard.md#base-quality-score-binning-scheme"},"Functional Equivalence specification")," (",(0,r.kt)("a",{parentName:"p",href:"https://www.nature.com/articles/s41467-018-06159-4"},"Regier et al., 2018"),")."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Original Score"),(0,r.kt)("th",{parentName:"tr",align:null},"Score after BQSR recalibration"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"1-6"),(0,r.kt)("td",{parentName:"tr",align:null},"unchanged")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"7-12"),(0,r.kt)("td",{parentName:"tr",align:null},"10")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"13-22"),(0,r.kt)("td",{parentName:"tr",align:null},"20")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"22-infinity"),(0,r.kt)("td",{parentName:"tr",align:null},"30")))),(0,r.kt)("h2",{id:"important-notes"},"Important Notes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Runtime parameters are optimized for Broad's Google Cloud Platform implementation."),(0,r.kt)("li",{parentName:"ul"},"For help running workflows on the Google Cloud Platform or locally please\nview the following tutorial ",(0,r.kt)("a",{parentName:"li",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360035530952"},"(How to) Execute Workflows from the gatk-workflows Git Organization"),"."),(0,r.kt)("li",{parentName:"ul"},"Please visit the ",(0,r.kt)("a",{parentName:"li",href:"https://gatk.broadinstitute.org/hc/en-us/categories/360002310591"},"GATK Technical Documentation")," site for further documentation on our workflows and tools."),(0,r.kt)("li",{parentName:"ul"},"You can access relevant reference and resource bundles in the ",(0,r.kt)("a",{parentName:"li",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360035890811"},"GATK Resource Bundle"),".")),(0,r.kt)("h2",{id:"citing-the-exome-germline-single-sample-pipeline"},"Citing the Exome Germline Single Sample Pipeline"),(0,r.kt)("p",null,"If you use the Exome Germline Single Sample Pipeline in your research, please consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"contact-us"},"Contact Us"),(0,r.kt)("p",null,"This material is provided by the Data Science Platform group at the Broad Institute. Please direct any questions or concerns to one of our forum sites : ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/community/topics"},"GATK")," or ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us/community/topics/360000500432"},"Terra"),"."),(0,r.kt)("h2",{id:"licensing"},"Licensing"),(0,r.kt)("p",null,"Copyright Broad Institute, 2023 | BSD-3"),(0,r.kt)("p",null,"The workflow script is released under the ",(0,r.kt)("strong",{parentName:"p"},"WDL open source code license (BSD-3)")," (full license text at ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/LICENSE"},"https://github.com/broadinstitute/warp/blob/master/LICENSE"),"). However, please note that the programs it calls may be subject to different licenses. Users are responsible for checking that they are authorized to run all programs before running this script."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://software.broadinstitute.org/gatk/download/licensing.php"},"GATK")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://bio-bwa.sourceforge.net/bwa.shtml#13"},"BWA")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://broadinstitute.github.io/picard/"},"Picard")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.htslib.org/terms/"},"Samtools"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/95cfac0d.f636b027.js b/assets/js/95cfac0d.f636b027.js deleted file mode 100644 index 871bf2c8f..000000000 --- a/assets/js/95cfac0d.f636b027.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[6692],{3905:function(e,t,a){a.d(t,{Zo:function(){return m},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),u=p(a),d=r,h=u["".concat(s,".").concat(d)]||u[d]||c[d]||i;return a?n.createElement(h,l(l({ref:t},m),{},{components:a})):n.createElement(h,l({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:r,l[1]=o;for(var p=2;p.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"New annotations enable merging data for filtering without using genotypes. For example:"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"RAW_GT_COUNT(S) for doing ExcessHet calculation from a sites-only file."),(0,r.kt)("li",{parentName:"ul"},"QUALapprox and/or AS_QUALapprox for doing QUAL approximation/filling. "),(0,r.kt)("li",{parentName:"ul"},"QUAL VCF field from a combined sites-only field."),(0,r.kt)("li",{parentName:"ul"},"VarDP and/or AS_VarDP used to calculate QualByDepth/QD annotation for VQSR."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"The MIN_DP has been removed.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Reblocked GVCFs have the following cost/scale improvements:"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A reduced storage footprint compared with HaplotypeCaller GVCF output."),(0,r.kt)("li",{parentName:"ul"},"Fewer VariantContexts (i.e. lines) per VCF which speeds up GenomicsDB/Hail import."),(0,r.kt)("li",{parentName:"ul"},"Fewer alternate alleles which reduce memory requirements for merging.")))),(0,r.kt)("p",null,"Additionally, the 4 GQ band schema has specific improvements compared with the 7-band schema:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"It does not drop GQ0s; reblocked GVCFs should cover all the positions that the input GVCF covers."),(0,r.kt)("li",{parentName:"ol"},"It has no overlaps; the only overlapping positions should be two variants (i.e. deletions) on separate haplotypes."),(0,r.kt)("li",{parentName:"ol"},"No more no-calls; all genotypes should be called. Positions with no data will be homRef with GQ0.")),(0,r.kt)("p",null,"Read more about the reblocked GVCFs in the ",(0,r.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/blog/Nov21_ReblockedGVCF"},"WARP Blog"),"."),(0,r.kt)("h3",{id:"base-quality-scores"},"Base quality scores"),(0,r.kt)("p",null,"The final CRAM files have base quality scores binned according to the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/CCDG/Pipeline-Standardization/blob/master/PipelineStandard.md#base-quality-score-binning-scheme"},"Functional Equivalence specification")," (",(0,r.kt)("a",{parentName:"p",href:"https://www.nature.com/articles/s41467-018-06159-4"},"Regier et al., 2018"),")."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Original Score"),(0,r.kt)("th",{parentName:"tr",align:null},"Score after BQSR recalibration"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"1-6"),(0,r.kt)("td",{parentName:"tr",align:null},"unchanged")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"7-12"),(0,r.kt)("td",{parentName:"tr",align:null},"10")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"13-22"),(0,r.kt)("td",{parentName:"tr",align:null},"20")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"22-infinity"),(0,r.kt)("td",{parentName:"tr",align:null},"30")))),(0,r.kt)("h2",{id:"important-notes"},"Important Notes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Runtime parameters are optimized for Broad's Google Cloud Platform implementation."),(0,r.kt)("li",{parentName:"ul"},"For help running workflows on the Google Cloud Platform or locally please\nview the following tutorial ",(0,r.kt)("a",{parentName:"li",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360035530952"},"(How to) Execute Workflows from the gatk-workflows Git Organization"),"."),(0,r.kt)("li",{parentName:"ul"},"Please visit the ",(0,r.kt)("a",{parentName:"li",href:"https://gatk.broadinstitute.org/hc/en-us/categories/360002310591"},"GATK Technical Documentation")," site for further documentation on our workflows and tools."),(0,r.kt)("li",{parentName:"ul"},"You can access relevant reference and resource bundles in the ",(0,r.kt)("a",{parentName:"li",href:"https://gatk.broadinstitute.org/hc/en-us/articles/360035890811"},"GATK Resource Bundle"),".")),(0,r.kt)("h2",{id:"citing-the-exome-germline-single-sample-pipeline"},"Citing the Exome Germline Single Sample Pipeline"),(0,r.kt)("p",null,"If you use the Exome Germline Single Sample Pipeline in your research, please consider citing our preprint:"),(0,r.kt)("p",null,"Degatano, K.; Awdeh, A.; Dingman, W.; Grant, G.; Khajouei, F.; Kiernan, E.; Konwar, K.; Mathews, K.; Palis, K.; Petrillo, N.; Van der Auwera, G.; Wang, C.; Way, J.; Pipelines, W. WDL Analysis Research Pipelines: Cloud-Optimized Workflows for Biological Data Processing and Reproducible Analysis. Preprints 2024, 2024012131. ",(0,r.kt)("a",{parentName:"p",href:"https://doi.org/10.20944/preprints202401.2131.v1"},"https://doi.org/10.20944/preprints202401.2131.v1")),(0,r.kt)("h2",{id:"contact-us"},"Contact Us"),(0,r.kt)("p",null,"This material is provided by the Data Science Platform group at the Broad Institute. Please direct any questions or concerns to one of our forum sites : ",(0,r.kt)("a",{parentName:"p",href:"https://gatk.broadinstitute.org/hc/en-us/community/topics"},"GATK")," or ",(0,r.kt)("a",{parentName:"p",href:"https://support.terra.bio/hc/en-us/community/topics/360000500432"},"Terra"),"."),(0,r.kt)("h2",{id:"licensing"},"Licensing"),(0,r.kt)("p",null,"Copyright Broad Institute, 2023 | BSD-3"),(0,r.kt)("p",null,"The workflow script is released under the ",(0,r.kt)("strong",{parentName:"p"},"WDL open source code license (BSD-3)")," (full license text at ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/master/LICENSE"},"https://github.com/broadinstitute/warp/blob/master/LICENSE"),"). However, please note that the programs it calls may be subject to different licenses. Users are responsible for checking that they are authorized to run all programs before running this script."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://software.broadinstitute.org/gatk/download/licensing.php"},"GATK")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://bio-bwa.sourceforge.net/bwa.shtml#13"},"BWA")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://broadinstitute.github.io/picard/"},"Picard")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.htslib.org/terms/"},"Samtools"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/992e1bf4.3d492e95.js b/assets/js/992e1bf4.3d492e95.js new file mode 100644 index 000000000..a1371f122 --- /dev/null +++ b/assets/js/992e1bf4.3d492e95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[5551],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=a.createContext({}),l=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=l(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=l(n),h=i,m=c["".concat(p,".").concat(h)]||c[h]||d[h]||r;return n?a.createElement(m,o(o({ref:t},u),{},{components:n})):a.createElement(m,o({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=h;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:i,o[1]=s;for(var l=2;ldevelop branch of WARP.",id:"6-make-a-pull-request-to-the-develop-branch-of-warp",level:3},{value:"7. Make revisions based on feedback.",id:"7-make-revisions-based-on-feedback",level:3},{value:"8. Merge the PR.",id:"8-merge-the-pr",level:3},{value:"Have questions?",id:"have-questions",level:2}],u={toc:l},c="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"example-contribution"},"Example Contribution"),(0,i.kt)("h2",{id:"step-by-step-instructions-for-a-small-pipeline-update"},"Step-by-step instructions for a small pipeline update"),(0,i.kt)("p",null,"This example provides step-by-step instructions for how to apply the WARP ",(0,i.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-guidelines"},"Contribution Guidelines")," to a small pipeline update. "),(0,i.kt)("p",null,"Read the ",(0,i.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-guidelines"},"Contribution Guidelines")," for more information on the contribution process, types of contributions, and the review process."),(0,i.kt)("h3",{id:"background"},"Background"),(0,i.kt)("p",null,"For this example contribution, we'll make a simple change to the ",(0,i.kt)("inlineCode",{parentName:"p"},"input_id")," metadata description in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/develop/pipelines/skylab/optimus/Optimus.wdl"},"Optimus workflow"),". "),(0,i.kt)("p",null,"This parameter description is currently listed in the pipeline's WDL workflow as: "),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-WDL"},' input_id: "name of sample matching this file, inserted into read group header"\n')),(0,i.kt)("p",null,"Our update will add a clarification that this string can be a UUID or a human-readable identifier:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-WDL"},'input_id: "name of sample matching this file, inserted into read group header; can be a UUID or human-readable ID"\n')),(0,i.kt)("h3",{id:"before-starting--what-to-consider"},"Before starting- what to consider"),(0,i.kt)("p",null,"Any update to a workflow WDL, a task called by a WDL, or a workflow\u2019s accompanying Docker image or script will require an update to the workflow version number and the changelog for ",(0,i.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"testing")," purposes. Since our example update will be added to the Optimus WDL, we should be aware that our change will require these changelog and version updates."),(0,i.kt)("p",null,"For this update, we\u2019ll also assume that we do ",(0,i.kt)("strong",{parentName:"p"},"not")," have permissions to the WARP repository, meaning that we'll need to make a fork of the repository where we can make commits."),(0,i.kt)("h3",{id:"1-scope-the-work"},"1. Scope the work."),(0,i.kt)("p",null,"Our update is very small, so we don\u2019t need to ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"file an issue")," first unless we want to confirm with the WARP team that our update is accurate before making the change."),(0,i.kt)("h3",{id:"2-read-the-guidelines-for-changelog-updates"},"2. Read the guidelines for changelog updates."),(0,i.kt)("p",null,"Since we\u2019re making an update to the workflow WDL and need to update the changelog, we need to read the ",(0,i.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp/changelog_style"},"changelog style guide")," and ",(0,i.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/VersionAndReleasePipelines"},"versioning guide")," to identify the new version number."),(0,i.kt)("p",null,"In this example case, the existing pipeline version is ",(0,i.kt)("inlineCode",{parentName:"p"},"4.2.5"),". Since our change does not break the pipeline, affect inputs/outputs or cause scientific changes, the guides tell us that this update is a patch. The new pipeline version will be ",(0,i.kt)("inlineCode",{parentName:"p"},"4.2.6"),". "),(0,i.kt)("h3",{id:"3-make-a-fork-of-the-warp-repository"},"3. Make a fork of the WARP repository."),(0,i.kt)("p",null,"Since we don't have permission to make a branch in WARP, we\u2019ll need to ",(0,i.kt)("a",{parentName:"p",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"make a fork")," instead. To do this from the GitHub UI, we navigate to ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp"},"WARP")," and click the fork icon."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7330).Z,width:"661",height:"360"})),(0,i.kt)("h3",{id:"4-make-the-updates-on-the-fork"},"4. Make the updates on the fork."),(0,i.kt)("p",null,"Either locally or the in UI, we\u2019ll edit the existing parameter description in the Optimus workflow and commit the changes to our fork."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(9673).Z,width:"1970",height:"198"})),(0,i.kt)("h3",{id:"5-assess-and-make-any-additional-pipeline-file-changes"},"5. Assess and make any additional pipeline file changes."),(0,i.kt)("p",null,"Since our update requires a new version number and changelog entry, we need to update the WDL version and the accompanying changelog. The pipeline version number is indicated in the workflow WDL by the string variable ",(0,i.kt)("inlineCode",{parentName:"p"},"pipeline_version"),". We'll make a patch and change this to ",(0,i.kt)("inlineCode",{parentName:"p"},"4.2.6"),"."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(6997).Z,width:"962",height:"192"})),(0,i.kt)("p",null,"We\u2019ll also update the Optimus changelog according to the style guide to reflect the version change."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(4011).Z,width:"1728",height:"252"})),(0,i.kt)("h3",{id:"6-make-a-pull-request-to-the-develop-branch-of-warp"},"6. Make a pull request to the ",(0,i.kt)("strong",{parentName:"h3"},"develop")," branch of WARP."),(0,i.kt)("p",null,"To merge our updates to the WARP repository, we'll need to create a pull request (PR). Since we're making a PR from a fork, we can follow the instructions outlined in the GitHub Docs ",(0,i.kt)("a",{parentName:"p",href:"https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork"},"guide for making a PR from a fork"),". "),(0,i.kt)("p",null,"When we create the PR, we need to specify a WARP branch to use as the base. All updates should be merged into the WARP ",(0,i.kt)("strong",{parentName:"p"},"develop")," branch, which we can specify in the GitHub UI when we open the PR."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1324).Z,width:"1808",height:"134"})," "),(0,i.kt)("p",null,"After the PR is created, we can tag the WARP team by making a comment in the PR: ",(0,i.kt)("inlineCode",{parentName:"p"},"test and review @broadinstitute/warp-admins"),"."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(717).Z,width:"1728",height:"212"})),(0,i.kt)("p",null,"The team will then work with us to kick off any necessary ",(0,i.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"tests"),".\nWhen the tests are successful, we'll see a green check to the left of the test name on the PR's Conversation tab in the GitHub UI."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7054).Z,width:"1712",height:"994"})),(0,i.kt)("p",null,"Even if the tests pass, merging will be blocked until the review is complete and at least two reviewers have approved the PR, as outlined in the ",(0,i.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-guidelines/#review-process"},"Contribution Guidelines"),"."),(0,i.kt)("h3",{id:"7-make-revisions-based-on-feedback"},"7. Make revisions based on feedback."),(0,i.kt)("p",null,"If the WARP team has comments or requires changes, they'll note these directly in the PR. Once the PR and revisions are approved by two reviewers, the PR is ready for merging."),(0,i.kt)("h3",{id:"8-merge-the-pr"},"8. Merge the PR."),(0,i.kt)("p",null,"Since we don't have permission for the repository, we don't need to take any action for this step. The WARP team will merge our changes when the PR is ready, reviewed, and all tests have passed."),(0,i.kt)("p",null,"After merging, the WARP team will merge all updates on the ",(0,i.kt)("strong",{parentName:"p"},"develop")," branch into ",(0,i.kt)("strong",{parentName:"p"},"staging"),", and then the ",(0,i.kt)("strong",{parentName:"p"},"staging")," branch into the ",(0,i.kt)("strong",{parentName:"p"},"master")," branch. "),(0,i.kt)("p",null,"Once our updates are merged to the ",(0,i.kt)("strong",{parentName:"p"},"master")," branch, the pipeline will be released and available to the community! "),(0,i.kt)("h2",{id:"have-questions"},"Have questions?"),(0,i.kt)("p",null,"Contact us by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"filing an issue"),"."))}d.isMDXComponent=!0},1324:function(e,t,n){t.Z=n.p+"assets/images/PR_base-2c5cc7a509b38ad0a16487bfc5bf97e8.png"},7330:function(e,t,n){t.Z=n.p+"assets/images/fork-859918a3b8000026d02e337cdfedd1fa.png"},4011:function(e,t,n){t.Z=n.p+"assets/images/optimus_changelog-92601a5f052f4f5bd95b0b6c40c67a1f.png"},6997:function(e,t,n){t.Z=n.p+"assets/images/optimus_pipeline_version-b960d21ace78f3d5db6ac69a35acac30.png"},9673:function(e,t,n){t.Z=n.p+"assets/images/optimus_wdl_update-d1fccc188e63a68cf1e188cc8991dbe5.png"},7054:function(e,t,n){t.Z=n.p+"assets/images/tests-9749c1dd3dfc937a53fee85cd0704ba5.png"},717:function(e,t,n){t.Z=n.p+"assets/images/warp-admins-tag-56c503e35ef8b5e3de00267d41992b9a.png"}}]); \ No newline at end of file diff --git a/assets/js/992e1bf4.440f4035.js b/assets/js/992e1bf4.440f4035.js deleted file mode 100644 index 4a3e00b06..000000000 --- a/assets/js/992e1bf4.440f4035.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[5551],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),p=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return i.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(n),h=a,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||r;return n?i.createElement(m,o(o({ref:t},u),{},{components:n})):i.createElement(m,o({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,o[1]=s;for(var p=2;pdevelop branch of WARP.",id:"6-make-a-pull-request-to-the-develop-branch-of-warp",level:3},{value:"7. Make revisions based on feedback.",id:"7-make-revisions-based-on-feedback",level:3},{value:"8. Merge the PR.",id:"8-merge-the-pr",level:3},{value:"Have questions?",id:"have-questions",level:2}],u={toc:p},c="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"example-contribution"},"Example Contribution"),(0,a.kt)("h2",{id:"step-by-step-instructions-for-a-small-pipeline-update"},"Step-by-step instructions for a small pipeline update"),(0,a.kt)("p",null,"This example provides step-by-step instructions for how to apply the WARP ",(0,a.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-guidelines"},"Contribution Guidelines")," to a small pipeline update. "),(0,a.kt)("p",null,"Read the ",(0,a.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-guidelines"},"Contribution Guidelines")," for more information on the contribution process, types of contributions, and the review process."),(0,a.kt)("h3",{id:"background"},"Background"),(0,a.kt)("p",null,"For this example contribution, we'll make a simple change to the ",(0,a.kt)("inlineCode",{parentName:"p"},"input_id")," metadata description in the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/blob/develop/pipelines/skylab/optimus/Optimus.wdl"},"Optimus workflow"),". "),(0,a.kt)("p",null,"This parameter description is currently listed in the pipeline's WDL workflow as: "),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-WDL"},' input_id: "name of sample matching this file, inserted into read group header"\n')),(0,a.kt)("p",null,"Our update will add a clarification that this string can be a UUID or a human-readable identifier:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-WDL"},'input_id: "name of sample matching this file, inserted into read group header; can be a UUID or human-readable ID"\n')),(0,a.kt)("h3",{id:"before-starting--what-to-consider"},"Before starting- what to consider"),(0,a.kt)("p",null,"Any update to a workflow WDL, a task called by a WDL, or a workflow\u2019s accompanying Docker image or script will require an update to the workflow version number and the changelog for ",(0,a.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"testing")," purposes. Since our example update will be added to the Optimus WDL, we should be aware that our change will require these changelog and version updates."),(0,a.kt)("p",null,"For this update, we\u2019ll also assume that we do ",(0,a.kt)("strong",{parentName:"p"},"not")," have permissions to the WARP repository, meaning that we'll need to make a fork of the repository where we can make commits."),(0,a.kt)("h3",{id:"1-scope-the-work"},"1. Scope the work."),(0,a.kt)("p",null,"Our update is very small, so we don\u2019t need to ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"file an issue")," first unless we want to confirm with the WARP team that our update is accurate before making the change."),(0,a.kt)("h3",{id:"2-read-the-guidelines-for-changelog-updates"},"2. Read the guidelines for changelog updates."),(0,a.kt)("p",null,"Since we\u2019re making an update to the workflow WDL and need to update the changelog, we need to read the ",(0,a.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp/changelog_style"},"changelog style guide")," and ",(0,a.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/VersionAndReleasePipelines"},"versioning guide")," to identify the new version number."),(0,a.kt)("p",null,"In this example case, the existing pipeline version is ",(0,a.kt)("inlineCode",{parentName:"p"},"4.2.5"),". Since our change does not break the pipeline, affect inputs/outputs or cause scientific changes, the guides tell us that this update is a patch. The new pipeline version will be ",(0,a.kt)("inlineCode",{parentName:"p"},"4.2.6"),". "),(0,a.kt)("h3",{id:"3-make-a-fork-of-the-warp-repository"},"3. Make a fork of the WARP repository."),(0,a.kt)("p",null,"Since we don't have permission to make a branch in WARP, we\u2019ll need to ",(0,a.kt)("a",{parentName:"p",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"make a fork")," instead. To do this from the GitHub UI, we navigate to ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp"},"WARP")," and click the fork icon."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(7330).Z,width:"661",height:"360"})),(0,a.kt)("h3",{id:"4-make-the-updates-on-the-fork"},"4. Make the updates on the fork."),(0,a.kt)("p",null,"Either locally or the in UI, we\u2019ll edit the existing parameter description in the Optimus workflow and commit the changes to our fork."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(9673).Z,width:"1970",height:"198"})),(0,a.kt)("h3",{id:"5-assess-and-make-any-additional-pipeline-file-changes"},"5. Assess and make any additional pipeline file changes."),(0,a.kt)("p",null,"Since our update requires a new version number and changelog entry, we need to update the WDL version and the accompanying changelog. The pipeline version number is indicated in the workflow WDL by the string variable ",(0,a.kt)("inlineCode",{parentName:"p"},"pipeline_version"),". We'll make a patch and change this to ",(0,a.kt)("inlineCode",{parentName:"p"},"4.2.6"),"."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(6997).Z,width:"962",height:"192"})),(0,a.kt)("p",null,"We\u2019ll also update the Optimus changelog according to the style guide to reflect the version change."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(4011).Z,width:"1728",height:"252"})),(0,a.kt)("h3",{id:"6-make-a-pull-request-to-the-develop-branch-of-warp"},"6. Make a pull request to the ",(0,a.kt)("strong",{parentName:"h3"},"develop")," branch of WARP."),(0,a.kt)("p",null,"To merge our updates to the WARP repository, we'll need to create a pull request (PR). Since we're making a PR from a fork, we can follow the instructions outlined in the GitHub Docs ",(0,a.kt)("a",{parentName:"p",href:"https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork"},"guide for making a PR from a fork"),". "),(0,a.kt)("p",null,"When we create the PR, we need to specify a WARP branch to use as the base. All updates should be merged into the WARP ",(0,a.kt)("strong",{parentName:"p"},"develop")," branch, which we can specify in the GitHub UI when we open the PR."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(1324).Z,width:"1808",height:"134"})," "),(0,a.kt)("p",null,"After the PR is created, we can tag the WARP team by making a comment in the PR: ",(0,a.kt)("inlineCode",{parentName:"p"},"test and review @broadinstitute/warp-admins"),"."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(717).Z,width:"1728",height:"212"})),(0,a.kt)("p",null,"The team will then work with us to kick off any necessary ",(0,a.kt)("a",{parentName:"p",href:"https://broadinstitute.github.io/warp/docs/About_WARP/TestingPipelines"},"tests"),".\nWhen the tests are successful, we'll see a green check to the left of the test name on the PR's Conversation tab in the GitHub UI."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(7054).Z,width:"1712",height:"994"})),(0,a.kt)("p",null,"Even if the tests pass, merging will be blocked until the review is complete and at least two reviewers have approved the PR, as outlined in the ",(0,a.kt)("a",{parentName:"p",href:"/warp/docs/contribution/contribute_to_warp/contribution-guidelines/#review-process"},"Contribution Guidelines"),"."),(0,a.kt)("h3",{id:"7-make-revisions-based-on-feedback"},"7. Make revisions based on feedback."),(0,a.kt)("p",null,"If the WARP team has comments or requires changes, they'll note these directly in the PR. Once the PR and revisions are approved by two reviewers, the PR is ready for merging."),(0,a.kt)("h3",{id:"8-merge-the-pr"},"8. Merge the PR."),(0,a.kt)("p",null,"Since we don't have permission for the repository, we don't need to take any action for this step. The WARP team will merge our changes when the PR is ready, reviewed, and all tests have passed."),(0,a.kt)("p",null,"After merging, the WARP team will merge all updates on the ",(0,a.kt)("strong",{parentName:"p"},"develop")," branch into ",(0,a.kt)("strong",{parentName:"p"},"staging"),", and then the ",(0,a.kt)("strong",{parentName:"p"},"staging")," branch into the ",(0,a.kt)("strong",{parentName:"p"},"master")," branch. "),(0,a.kt)("p",null,"Once our updates are merged to the ",(0,a.kt)("strong",{parentName:"p"},"master")," branch, the pipeline will be released and available to the community! "),(0,a.kt)("h2",{id:"have-questions"},"Have questions?"),(0,a.kt)("p",null,"Contact us by ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/broadinstitute/warp/issues/new"},"filing an issue"),"."))}d.isMDXComponent=!0},1324:function(e,t,n){t.Z=n.p+"assets/images/PR_base-2c5cc7a509b38ad0a16487bfc5bf97e8.png"},7330:function(e,t,n){t.Z=n.p+"assets/images/fork-859918a3b8000026d02e337cdfedd1fa.png"},4011:function(e,t,n){t.Z=n.p+"assets/images/optimus_changelog-92601a5f052f4f5bd95b0b6c40c67a1f.png"},6997:function(e,t,n){t.Z=n.p+"assets/images/optimus_pipeline_version-b960d21ace78f3d5db6ac69a35acac30.png"},9673:function(e,t,n){t.Z=n.p+"assets/images/optimus_wdl_update-d1fccc188e63a68cf1e188cc8991dbe5.png"},7054:function(e,t,n){t.Z=n.p+"assets/images/tests-9749c1dd3dfc937a53fee85cd0704ba5.png"},717:function(e,t,n){t.Z=n.p+"assets/images/warp-admins-tag-56c503e35ef8b5e3de00267d41992b9a.png"}}]); \ No newline at end of file diff --git a/assets/js/a25de53b.880f667b.js b/assets/js/a25de53b.880f667b.js new file mode 100644 index 000000000..2add17fff --- /dev/null +++ b/assets/js/a25de53b.880f667b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite_2=self.webpackChunkwebsite_2||[]).push([[4840],{3905:function(t,e,a){a.d(e,{Zo:function(){return s},kt:function(){return g}});var n=a(7294);function l(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(l[a]=t[a]);return l}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(l[a]=t[a])}return l}var p=n.createContext({}),m=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},s=function(t){var e=m(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},k=n.forwardRef((function(t,e){var a=t.components,l=t.mdxType,r=t.originalType,p=t.parentName,s=o(t,["components","mdxType","originalType","parentName"]),d=m(a),k=l,g=d["".concat(p,".").concat(k)]||d[k]||u[k]||r;return a?n.createElement(g,i(i({ref:e},s),{},{components:a})):n.createElement(g,i({ref:e},s))}));function g(t,e){var a=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var r=a.length,i=new Array(r);i[0]=k;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[d]="string"==typeof t?t:l,i[1]=o;for(var m=2;m