[{"data":1,"prerenderedAt":5294},["ShallowReactive",2],{"navigation":3,"/genomics-platform/analyzing-data/creating-a-cloud-app":421,"/genomics-platform/analyzing-data/creating-a-cloud-app-surround":5288},[4,19,25,131,197],{"title":5,"_path":6,"children":7,"icon":18},"Overview","/overview",[8,9,12,15],{"title":5,"_path":6},{"title":10,"_path":11},"About our Ecosystem","/overview/ecosystem",{"title":13,"_path":14},"Citing St. Jude Cloud","/overview/citing-stjude-cloud",{"title":16,"_path":17},"Frequently Asked Questions","/overview/faq","sjc-icon:child-logo",{"title":20,"_path":21,"children":22,"icon":24},"CC4K","/cc4k",[23],{"title":5,"_path":21},"sjc-icon:ontology-tree",{"title":26,"_path":27,"children":28,"icon":130},"Genomics Platform","/genomics-platform",[29,49,62,80,99],{"title":30,"_path":31,"children":32},"Getting Started","/genomics-platform/getting-started",[33,35,38,41,44,46],{"title":5,"_path":34},"/genomics-platform/getting-started/overview",{"title":36,"_path":37},"Accounts and Billing","/genomics-platform/getting-started/accounts-and-billing",{"title":39,"_path":40},"Making a Data Request","/genomics-platform/getting-started/making-a-data-request",{"title":42,"_path":43},"Filling Out the DAA","/genomics-platform/getting-started/filling-out-the-daa",{"title":16,"_path":45},"/genomics-platform/getting-started/faq",{"title":47,"_path":48},"Glossary","/genomics-platform/getting-started/glossary",{"title":50,"_path":51,"children":52},"About Our Data","/genomics-platform/about-our-data",[53,56,59],{"title":54,"_path":55},"Data Sets and Data Access Units","/genomics-platform/about-our-data/data-sets-and-data-access-units",{"title":57,"_path":58},"File Formats and Sequencing Information","/genomics-platform/about-our-data/file-formats-and-sequencing-information",{"title":60,"_path":61},"Metadata and Clinical Information","/genomics-platform/about-our-data/metadata-and-clinical-information",{"title":63,"_path":64,"children":65},"Managing Data","/genomics-platform/managing-data",[66,68,71,74,77],{"title":5,"_path":67},"/genomics-platform/managing-data/overview",{"title":69,"_path":70},"Upload/Download Data (Local)","/genomics-platform/managing-data/upload-download-data-local",{"title":72,"_path":73},"Upload/Download Data (Cluster)","/genomics-platform/managing-data/upload-download-data-cluster",{"title":75,"_path":76},"Upload/Download Data (DNAnexus)","/genomics-platform/managing-data/upload-download-data-dnanexus",{"title":78,"_path":79},"Renewing Your DAA","/genomics-platform/managing-data/renewing-your-daa",{"title":81,"_path":82,"children":83},"Analyzing Data","/genomics-platform/analyzing-data",[84,87,90,93,96],{"title":85,"_path":86},"Command Line Interaction","/genomics-platform/analyzing-data/command-line-interaction",{"title":88,"_path":89},"Running Our Workflows","/genomics-platform/analyzing-data/running-our-workflows",{"title":91,"_path":92},"Creating a Cloud Application","/genomics-platform/analyzing-data/creating-a-cloud-app",{"title":94,"_path":95},"Interactive Nodes","/genomics-platform/analyzing-data/interactive-nodes",{"title":97,"_path":98},"Visualizing NGS Data","/genomics-platform/analyzing-data/visualizing-ngs-data",{"title":100,"_path":101,"children":102},"Workflow Guides","/genomics-platform/workflow-guides",[103,106,109,112,115,118,121,124,127],{"title":104,"_path":105},"ChIP-Seq Peak Calling","/genomics-platform/workflow-guides/chipseq",{"title":107,"_path":108},"cis-X","/genomics-platform/workflow-guides/cisx",{"title":110,"_path":111},"MethylationToActivity","/genomics-platform/workflow-guides/methylation-to-activity",{"title":113,"_path":114},"Mutational Signatures","/genomics-platform/workflow-guides/mutational-signatures",{"title":116,"_path":117},"Rapid RNA-Seq","/genomics-platform/workflow-guides/rapid-rnaseq",{"title":119,"_path":120},"RNA-Seq Expression Classification","/genomics-platform/workflow-guides/rnaseq-expression-classification",{"title":122,"_path":123},"SEAseq","/genomics-platform/workflow-guides/seaseq",{"title":125,"_path":126},"SequencErr","/genomics-platform/workflow-guides/sequencerr",{"title":128,"_path":129},"WARDEN Differential Gene Expression","/genomics-platform/workflow-guides/warden","sjc-icon:genomics-platform",{"title":132,"_path":133,"children":134,"icon":196},"PeCan","/pecan",[135,149,156,174,181,190],{"title":5,"_path":136,"children":137},"/pecan/overview",[138,140,143,146],{"title":30,"_path":139},"/pecan/overview/getting-started",{"title":141,"_path":142},"Methods and Data","/pecan/overview/methods-and-data",{"title":144,"_path":145},"Videos","/pecan/overview/videos",{"title":147,"_path":148},"FAQ","/pecan/overview/faq",{"title":150,"_path":151,"children":152},"Cohort Building","/pecan/cohort-building",[153],{"title":154,"_path":155},"Create Custom Cohorts","/pecan/cohort-building/cohort-building",{"title":157,"_path":158,"children":159},"Data Facets","/pecan/data-facets",[160,163,165,168,171],{"title":161,"_path":162},"Variants","/pecan/data-facets/variants",{"title":113,"_path":164},"/pecan/data-facets/mutational-signatures",{"title":166,"_path":167},"Expression","/pecan/data-facets/expression",{"title":169,"_path":170},"Histology","/pecan/data-facets/histology",{"title":172,"_path":173},"Use Cases","/pecan/data-facets/use-cases",{"title":175,"_path":176,"children":177},"Accessibility","/pecan/accessibility",[178],{"title":179,"_path":180},"Keyboard Shortcuts","/pecan/accessibility/keyboard-shortcuts",{"title":182,"_path":183,"children":184},"PeCan PIE","/pecan/pecan-pie",[185,188],{"title":186,"_path":187},"What is PIE","/pecan/pecan-pie/what-is-pie",{"title":147,"_path":189},"/pecan/pecan-pie/faq",{"title":191,"_path":192,"children":193},"Release Notes","/pecan/release-notes",[194],{"title":195,"_path":192},"PeCan Release Notes","sjc-icon:pecan",{"title":198,"_path":199,"children":200,"icon":420},"Visualization Community","/visualization-community",[201,215,246,307,411],{"title":5,"_path":202,"children":203},"/visualization-community/overview",[204,207,210,213],{"title":205,"_path":206},"What is Visualization Community","/visualization-community/overview/what-is-visualization-community",{"title":208,"_path":209},"What are ProteinPaint and GenomePaint","/visualization-community/overview/what-are-proteinpaint-and-genome-paint",{"title":211,"_path":212},"Data Types","/visualization-community/overview/data-types-and-graphs",{"title":147,"_path":214},"/visualization-community/overview/faq",{"title":30,"_path":216,"children":217},"/visualization-community/getting-started",[218,220,223,226,229,232,235,238,241,243],{"title":5,"_path":219},"/visualization-community/getting-started/overview",{"title":221,"_path":222},"How to Sign-in","/visualization-community/getting-started/how-to-sign-in",{"title":224,"_path":225},"How to Use the VisEditor","/visualization-community/getting-started/how-to-use-the-viseditor",{"title":227,"_path":228},"Tracks and Apps","/visualization-community/getting-started/tracks-and-apps",{"title":230,"_path":231},"Manage Your Data","/visualization-community/getting-started/manage-your-data",{"title":233,"_path":234},"Collections & Communities","/visualization-community/getting-started/collections-and-communities",{"title":236,"_path":237},"Public vs. Private Visualizations","/visualization-community/getting-started/public-vs-private-visualizations",{"title":239,"_path":240},"Embedding","/visualization-community/getting-started/embedding",{"title":144,"_path":242},"/visualization-community/getting-started/videos",{"title":244,"_path":245},"NEW Data Download","/visualization-community/getting-started/new-data-download",{"title":247,"_path":248,"children":249},"Code Block Library","/visualization-community/code-block-library",[250,253,256,259,262,265,268,271,274,277,280,283,286,289,292,295,298,301,304],{"title":251,"_path":252},"Code Block Basics","/visualization-community/code-block-library/code-block-basics",{"title":254,"_path":255},"Allelic Imbalance","/visualization-community/code-block-library/allelic-imbalance",{"title":257,"_path":258},"Arc","/visualization-community/code-block-library/arc",{"title":260,"_path":261},"BAM","/visualization-community/code-block-library/bam",{"title":263,"_path":264},"BigWig","/visualization-community/code-block-library/bigwig",{"title":266,"_path":267},"BigWig Stranded","/visualization-community/code-block-library/bigwig-stranded",{"title":269,"_path":270},"Expression Rank","/visualization-community/code-block-library/expression-rank",{"title":272,"_path":273},"Hi-C","/visualization-community/code-block-library/hi-c",{"title":275,"_path":276},"Heatmap","/visualization-community/code-block-library/heatmap",{"title":278,"_path":279},"JSON BED","/visualization-community/code-block-library/json-bed",{"title":281,"_path":282},"Lollipop","/visualization-community/code-block-library/lollipop",{"title":284,"_path":285},"MA Volcano","/visualization-community/code-block-library/ma-volcano",{"title":287,"_path":288},"Profile Gene Value","/visualization-community/code-block-library/profile-gene-value",{"title":290,"_path":291},"RNA Splice Junction","/visualization-community/code-block-library/rna-splice-junction",{"title":293,"_path":294},"Single Cell","/visualization-community/code-block-library/single-cell",{"title":296,"_path":297},"Splice Junctions Cohort","/visualization-community/code-block-library/splice-junctions-cohort",{"title":299,"_path":300},"Track List and Facet Table","/visualization-community/code-block-library/track-list-and-facet-table",{"title":302,"_path":303},"t-SNE","/visualization-community/code-block-library/t-sne",{"title":305,"_path":306},"VCF","/visualization-community/code-block-library/vcf",{"title":308,"_path":309,"children":310},"ProteinPaint","/visualization-community/proteinpaint",[311,313,316,318,321,324,327,330,333,336,339,342,345,348,351,354,357,360,363,366,369,372,375,378,381,384,387,390,393,396,399,402,405,408],{"title":308,"_path":312},"/visualization-community/proteinpaint/proteinpaint",{"title":314,"_path":315},"Introduction","/visualization-community/proteinpaint/introduction",{"title":30,"_path":317},"/visualization-community/proteinpaint/getting-started",{"title":319,"_path":320},"Loading Datasets","/visualization-community/proteinpaint/loading-datasets",{"title":322,"_path":323},"Viewing SNV/Indel Mutations","/visualization-community/proteinpaint/viewing-snv-indel-mutations",{"title":325,"_path":326},"Viewing Gene Fusions","/visualization-community/proteinpaint/viewing-gene-fusions",{"title":328,"_path":329},"Viewing Expression Data","/visualization-community/proteinpaint/viewing-expression-data",{"title":331,"_path":332},"Filtering Mutations","/visualization-community/proteinpaint/filtering-mutations",{"title":334,"_path":335},"Exporting Figures and Data","/visualization-community/proteinpaint/exporting-figures-and-data",{"title":337,"_path":338},"Using the Gene Table","/visualization-community/proteinpaint/using-the-gene-table",{"title":340,"_path":341},"Using the Sample Table","/visualization-community/proteinpaint/using-the-sample-table",{"title":343,"_path":344},"Using the Heatmap","/visualization-community/proteinpaint/using-the-heatmap",{"title":346,"_path":347},"Using Disease Pie Charts","/visualization-community/proteinpaint/using-disease-pie-charts",{"title":349,"_path":350},"Stratifying Mutations by Cancer Subtype","/visualization-community/proteinpaint/stratifying-mutations-by-cancer-subtype",{"title":352,"_path":353},"SNV and Indel","/visualization-community/proteinpaint/snv-and-indel",{"title":355,"_path":356},"SV and fusion transcript","/visualization-community/proteinpaint/sv-and-fusion-transcript",{"title":358,"_path":359},"Copy Number Variants","/visualization-community/proteinpaint/copy-number-variants",{"title":361,"_path":362},"Internal tandem duplications","/visualization-community/proteinpaint/internal-tandem-duplications",{"title":364,"_path":365},"Intragenic deletion","/visualization-community/proteinpaint/intragenic-deletion",{"title":367,"_path":368},"Truncation, N-loss, or C-loss","/visualization-community/proteinpaint/truncation",{"title":370,"_path":371},"JSON-BED","/visualization-community/proteinpaint/json-bed",{"title":373,"_path":374},"Splice Junction","/visualization-community/proteinpaint/splice-junction",{"title":376,"_path":377},"Profile-Gene-Value","/visualization-community/proteinpaint/profile-gene-value",{"title":379,"_path":380},"Bampile","/visualization-community/proteinpaint/bampile",{"title":382,"_path":383},"Add Custom Protein Domains","/visualization-community/proteinpaint/add-custom-protein-domains",{"title":385,"_path":386},"Using Custom Tracks","/visualization-community/proteinpaint/using-custom-tracks",{"title":388,"_path":389},"Visualize Your Mutation Data","/visualization-community/proteinpaint/visualize-your-mutation-data",{"title":391,"_path":392},"Loading SNV/Indel Mutations from a File","/visualization-community/proteinpaint/loading-mutations-from-file",{"title":394,"_path":395},"Uploaded Mutation Data User Interface","/visualization-community/proteinpaint/uploaded-mutation-data",{"title":397,"_path":398},"Loading a TCGA MAF File","/visualization-community/proteinpaint/loading-tcga-maf-file",{"title":400,"_path":401},"Using a VCF File","/visualization-community/proteinpaint/using-vcf-file",{"title":403,"_path":404},"Embedding ProteinPaint","/visualization-community/proteinpaint/embedding-proteinpaint",{"title":406,"_path":407},"URL Parameters","/visualization-community/proteinpaint/url-parameters",{"title":409,"_path":410},"Organizing Data into a Study View","/visualization-community/proteinpaint/study-view",{"title":412,"_path":413,"children":414},"GenomePaint","/visualization-community/genomepaint",[415,417],{"title":412,"_path":416},"/visualization-community/genomepaint/genomepaint",{"title":418,"_path":419},"GenomePaint User Guide","/visualization-community/genomepaint/genomepaint-user-guide","sjc-icon:viz",{"_path":92,"_dir":422,"_draft":423,"_partial":423,"_locale":424,"title":91,"description":425,"body":426,"_type":5282,"_id":5283,"_source":5284,"_file":5285,"_stem":5286,"_extension":5287},"analyzing-data",false,"","This guide will take you through the process of writing an application for working with and manipulating the St. Jude data you've requested.\nBy creating your own application, you will be able to wrap genomic tools and packages from external sources, as well as any tool or application you might have written yourself.",{"type":427,"children":428,"toc":5263},"root",[429,436,477,483,488,493,498,521,527,532,541,578,584,591,692,706,711,762,767,854,873,900,906,925,953,1011,1048,1053,1158,1180,1200,1206,1218,1286,1300,1305,2080,2103,2117,2123,2135,2233,2293,2305,2330,2336,2364,2402,2407,2599,2605,2633,2638,2724,2760,2896,2908,3319,3341,3347,3359,3372,3397,3402,3450,3470,3509,3522,3582,3625,3631,3636,3648,3653,3738,3743,3887,3892,3904,4326,4332,4366,4371,4394,4399,4412,4439,4451,4515,4529,4536,4549,4554,4561,4567,4579,4638,4643,4674,4685,4690,5031,5036,5043,5049,5062,5067,5074,5079,5086,5098,5184,5190,5202,5214,5220,5257],{"type":430,"tag":431,"props":432,"children":433},"element","p",{},[434],{"type":435,"value":425},"text",{"type":430,"tag":437,"props":438,"children":441},"callout",{"color":439,"icon":440},"blue","i-heroicons-light-bulb",[442],{"type":430,"tag":431,"props":443,"children":444},{},[445,451,455,457,466,468,475],{"type":430,"tag":446,"props":447,"children":448},"strong",{},[449],{"type":435,"value":450},"Tip",{"type":430,"tag":452,"props":453,"children":454},"br",{},[],{"type":435,"value":456},"\nWe have created a wide variety of example cloud applications which you can view at ",{"type":430,"tag":458,"props":459,"children":463},"a",{"href":460,"rel":461},"https://github.com/stjudecloud/cloud-app-tutorial",[462],"nofollow",[464],{"type":435,"value":465},"this GitHub repository",{"type":435,"value":467},".\nThe completed source code for the particular application created here is available in the ",{"type":430,"tag":458,"props":469,"children":472},{"href":470,"rel":471},"https://github.com/stjudecloud/cloud-app-tutorial/tree/master/examples/dx-fastqc-example-app",[462],[473],{"type":435,"value":474},"dx-fastqc-example-app",{"type":435,"value":476}," folder.\nYou are welcome to clone the repository and use it as a reference while following this tutorial or try building the application and running it on your own project.",{"type":430,"tag":478,"props":479,"children":481},"h2",{"id":480},"overview",[482],{"type":435,"value":5},{"type":430,"tag":431,"props":484,"children":485},{},[486],{"type":435,"value":487},"The biggest difference between running an application in the cloud (as opposed to running it in a local environment) is the way we access that data and manipulate it.\nWriting and running your own cloud application grants numerous benefits.\nIt allows you to submit numerous jobs in parallel, access your data from anywhere with an Internet connection, and utilize resources and compute power at a fraction of the cost (when compared to building your own infrastructure).",{"type":430,"tag":431,"props":489,"children":490},{},[491],{"type":435,"value":492},"Writing your own application will allow you to wrap custom tools to manipulate any data that you have previously requested.\nWhen you run your application, the request gets sent to a virtualized Linux container (Ubuntu 14.04 or 16.04) where any dependencies are installed and where your script will be run.\nAny tools or packages that you include (either through the included package managers, or bundled together in your project) will be available locally on the virtual Linux machine.",{"type":430,"tag":431,"props":494,"children":495},{},[496],{"type":435,"value":497},"However, there are differences in how we manage our data. When a job is submitted, a virtual machine is provisioned specifically for that job request, meaning that it is spun up at-will or when needed.\nIt also implies that once the job has completed, the virtual machine will be reprovisioned or deleted.\nAny job output or data must be uploaded back to the project space.",{"type":430,"tag":431,"props":499,"children":500},{},[501,503,510,512,519],{"type":435,"value":502},"In this tutorial, we will be wrapping the ",{"type":430,"tag":458,"props":504,"children":507},{"href":505,"rel":506},"https://www.bioinformatics.babraham.ac.uk/projects/fastqc/",[462],[508],{"type":435,"value":509},"FastQC",{"type":435,"value":511},", a quality control tool for raw sequence data, into our application.\nThis will allow us to run FastQC on any of the St. Jude next generation sequencing data in the cloud.\nFor specific information about how FastQC works, please refer to the ",{"type":430,"tag":458,"props":513,"children":516},{"href":514,"rel":515},"https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/",[462],[517],{"type":435,"value":518},"FastQC documentation",{"type":435,"value":520},".",{"type":430,"tag":478,"props":522,"children":524},{"id":523},"data",[525],{"type":435,"value":526},"Data",{"type":430,"tag":431,"props":528,"children":529},{},[530],{"type":435,"value":531},"For this tutorial I have requested the PCGP dataset, and once my access request has been approved, my project directory space will look like the following.",{"type":430,"tag":431,"props":533,"children":534},{},[535],{"type":430,"tag":536,"props":537,"children":540},"img",{"alt":538,"src":539},"creating a cloud app","/img/genomics-platform/analyzing-data/creating-a-cloud-app/creating-a-cloud-app-0.png",[],{"type":430,"tag":437,"props":542,"children":544},{"color":439,"icon":543},"i-heroicons-document-text-solid",[545],{"type":430,"tag":431,"props":546,"children":547},{},[548,553,556,558,563,565,570,572,577],{"type":430,"tag":446,"props":549,"children":550},{},[551],{"type":435,"value":552},"Note",{"type":430,"tag":452,"props":554,"children":555},{},[],{"type":435,"value":557},"\nIf you do not yet have data in a DNAnexus project, you may request data from St. Jude Cloud by following the directions ",{"type":430,"tag":458,"props":559,"children":560},{"href":40},[561],{"type":435,"value":562},"here",{"type":435,"value":564}," or you may upload your own data using ",{"type":430,"tag":458,"props":566,"children":567},{"href":86},[568],{"type":435,"value":569},"the command line",{"type":435,"value":571},".\nIn order to make a data request or upload your own data using the command line, you must first ",{"type":430,"tag":458,"props":573,"children":574},{"href":37},[575],{"type":435,"value":576},"create a St. Jude Cloud account",{"type":435,"value":520},{"type":430,"tag":478,"props":579,"children":581},{"id":580},"writing-the-application",[582],{"type":435,"value":583},"Writing the Application",{"type":430,"tag":585,"props":586,"children":588},"h3",{"id":587},"requirements",[589],{"type":435,"value":590},"Requirements",{"type":430,"tag":592,"props":593,"children":594},"table",{},[595,624],{"type":430,"tag":596,"props":597,"children":598},"thead",{},[599],{"type":430,"tag":600,"props":601,"children":602},"tr",{},[603,609,614,619],{"type":430,"tag":604,"props":605,"children":606},"th",{},[607],{"type":435,"value":608},"Tool",{"type":430,"tag":604,"props":610,"children":611},{},[612],{"type":435,"value":613},"Download",{"type":430,"tag":604,"props":615,"children":616},{},[617],{"type":435,"value":618},"Website",{"type":430,"tag":604,"props":620,"children":621},{},[622],{"type":435,"value":623},"Version",{"type":430,"tag":625,"props":626,"children":627},"tbody",{},[628,662],{"type":430,"tag":600,"props":629,"children":630},{},[631,637,647,657],{"type":430,"tag":632,"props":633,"children":634},"td",{},[635],{"type":435,"value":636},"dx-toolkit",{"type":430,"tag":632,"props":638,"children":639},{},[640],{"type":430,"tag":458,"props":641,"children":644},{"href":642,"rel":643},"https://documentation.dnanexus.com/downloads",[462],[645],{"type":435,"value":646},"Source",{"type":430,"tag":632,"props":648,"children":649},{},[650],{"type":430,"tag":458,"props":651,"children":654},{"href":652,"rel":653},"https://www.dnanexus.com/",[462],[655],{"type":435,"value":656},"DNAnexus",{"type":430,"tag":632,"props":658,"children":659},{},[660],{"type":435,"value":661},"v0.291.1",{"type":430,"tag":600,"props":663,"children":664},{},[665,669,677,687],{"type":430,"tag":632,"props":666,"children":667},{},[668],{"type":435,"value":509},{"type":430,"tag":632,"props":670,"children":671},{},[672],{"type":430,"tag":458,"props":673,"children":675},{"href":505,"rel":674},[462],[676],{"type":435,"value":646},{"type":430,"tag":632,"props":678,"children":679},{},[680],{"type":430,"tag":458,"props":681,"children":684},{"href":682,"rel":683},"https://www.bioinformatics.babraham.ac.uk/",[462],[685],{"type":435,"value":686},"Babraham Bioinformatics",{"type":430,"tag":632,"props":688,"children":689},{},[690],{"type":435,"value":691},"v0.11.8",{"type":430,"tag":431,"props":693,"children":694},{},[695,697,704],{"type":435,"value":696},"Installing the dx-toolkit requires Python to be installed locally.\nUsing the system provided version of Python can be problematic for a number of reasons, so we recommend using the ",{"type":430,"tag":458,"props":698,"children":701},{"href":699,"rel":700},"https://www.anaconda.com/download",[462],[702],{"type":435,"value":703},"Anaconda",{"type":435,"value":705}," environment manager to install Python.",{"type":430,"tag":431,"props":707,"children":708},{},[709],{"type":435,"value":710},"You can view the following guides for how to install conda on your system.",{"type":430,"tag":712,"props":713,"children":714},"ul",{},[715,732,747],{"type":430,"tag":716,"props":717,"children":718},"li",{},[719,724,726],{"type":430,"tag":446,"props":720,"children":721},{},[722],{"type":435,"value":723},"Windows.",{"type":435,"value":725}," ",{"type":430,"tag":458,"props":727,"children":730},{"href":728,"rel":729},"https://docs.anaconda.com/anaconda/install/windows/",[462],[731],{"type":435,"value":728},{"type":430,"tag":716,"props":733,"children":734},{},[735,740,741],{"type":430,"tag":446,"props":736,"children":737},{},[738],{"type":435,"value":739},"Mac OS.",{"type":435,"value":725},{"type":430,"tag":458,"props":742,"children":745},{"href":743,"rel":744},"https://docs.anaconda.com/anaconda/install/mac-os/",[462],[746],{"type":435,"value":743},{"type":430,"tag":716,"props":748,"children":749},{},[750,755,756],{"type":430,"tag":446,"props":751,"children":752},{},[753],{"type":435,"value":754},"Linux.",{"type":435,"value":725},{"type":430,"tag":458,"props":757,"children":760},{"href":758,"rel":759},"https://docs.anaconda.com/anaconda/install/linux/",[462],[761],{"type":435,"value":758},{"type":430,"tag":431,"props":763,"children":764},{},[765],{"type":435,"value":766},"Once you have conda installed, run the following commands to create a new environment with Python, activate it, and install the dx-toolkit.",{"type":430,"tag":768,"props":769,"children":773},"pre",{"className":770,"code":771,"language":772,"meta":424,"style":424},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","conda create -n dx python=3.7\nconda activate dx\npip install dxpy\n","bash",[774],{"type":430,"tag":775,"props":776,"children":777},"code",{"__ignoreMap":424},[778,817,835],{"type":430,"tag":779,"props":780,"children":783},"span",{"class":781,"line":782},"line",1,[784,790,796,801,806,811],{"type":430,"tag":779,"props":785,"children":787},{"style":786},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[788],{"type":435,"value":789},"conda",{"type":430,"tag":779,"props":791,"children":793},{"style":792},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[794],{"type":435,"value":795}," create",{"type":430,"tag":779,"props":797,"children":798},{"style":792},[799],{"type":435,"value":800}," -n",{"type":430,"tag":779,"props":802,"children":803},{"style":792},[804],{"type":435,"value":805}," dx",{"type":430,"tag":779,"props":807,"children":808},{"style":792},[809],{"type":435,"value":810}," python=",{"type":430,"tag":779,"props":812,"children":814},{"style":813},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[815],{"type":435,"value":816},"3.7\n",{"type":430,"tag":779,"props":818,"children":820},{"class":781,"line":819},2,[821,825,830],{"type":430,"tag":779,"props":822,"children":823},{"style":786},[824],{"type":435,"value":789},{"type":430,"tag":779,"props":826,"children":827},{"style":792},[828],{"type":435,"value":829}," activate",{"type":430,"tag":779,"props":831,"children":832},{"style":792},[833],{"type":435,"value":834}," dx\n",{"type":430,"tag":779,"props":836,"children":838},{"class":781,"line":837},3,[839,844,849],{"type":430,"tag":779,"props":840,"children":841},{"style":786},[842],{"type":435,"value":843},"pip",{"type":430,"tag":779,"props":845,"children":846},{"style":792},[847],{"type":435,"value":848}," install",{"type":430,"tag":779,"props":850,"children":851},{"style":792},[852],{"type":435,"value":853}," dxpy\n",{"type":430,"tag":431,"props":855,"children":856},{},[857,859,864,866,872],{"type":435,"value":858},"Now whenever you want to develop something for the cloud using ",{"type":430,"tag":775,"props":860,"children":862},{"className":861},[],[863],{"type":435,"value":636},{"type":435,"value":865},", just open your terminal and type ",{"type":430,"tag":775,"props":867,"children":869},{"className":868},[],[870],{"type":435,"value":871},"conda activate dx",{"type":435,"value":520},{"type":430,"tag":431,"props":874,"children":875},{},[876,878,883,885,891,893,899],{"type":435,"value":877},"To access your DNAnexus projects from the command line, you must login using ",{"type":430,"tag":775,"props":879,"children":881},{"className":880},[],[882],{"type":435,"value":636},{"type":435,"value":884},".\nFor users not affiliated with St. Jude, simply type ",{"type":430,"tag":775,"props":886,"children":888},{"className":887},[],[889],{"type":435,"value":890},"dx login",{"type":435,"value":892}," and enter your username and password when prompted.\nUsers with a St. Jude account will need to generate an API token for authentication.\nInstructions can be found ",{"type":430,"tag":458,"props":894,"children":897},{"href":895,"rel":896},"https://documentation.dnanexus.com/user/login-and-logout#authentication-tokens",[462],[898],{"type":435,"value":562},{"type":435,"value":520},{"type":430,"tag":585,"props":901,"children":903},{"id":902},"getting-started",[904],{"type":435,"value":905},"Getting started",{"type":430,"tag":431,"props":907,"children":908},{},[909,911,916,918,923],{"type":435,"value":910},"The easiest way to install ",{"type":430,"tag":775,"props":912,"children":914},{"className":913},[],[915],{"type":435,"value":636},{"type":435,"value":917}," is through ",{"type":430,"tag":775,"props":919,"children":921},{"className":920},[],[922],{"type":435,"value":843},{"type":435,"value":924},", the Python package manager.\nSimply run the following command in your terminal:",{"type":430,"tag":768,"props":926,"children":928},{"className":770,"code":927,"language":772,"meta":424,"style":424},"pip install dxpy --upgrade\n",[929],{"type":430,"tag":775,"props":930,"children":931},{"__ignoreMap":424},[932],{"type":430,"tag":779,"props":933,"children":934},{"class":781,"line":782},[935,939,943,948],{"type":430,"tag":779,"props":936,"children":937},{"style":786},[938],{"type":435,"value":843},{"type":430,"tag":779,"props":940,"children":941},{"style":792},[942],{"type":435,"value":848},{"type":430,"tag":779,"props":944,"children":945},{"style":792},[946],{"type":435,"value":947}," dxpy",{"type":430,"tag":779,"props":949,"children":950},{"style":792},[951],{"type":435,"value":952}," --upgrade\n",{"type":430,"tag":431,"props":954,"children":955},{},[956,958,964,966,971,973,978,980,985,987,994,996,1001,1003,1009],{"type":435,"value":957},"For this application, we will be using the ",{"type":430,"tag":775,"props":959,"children":961},{"className":960},[],[962],{"type":435,"value":963},"dx-app-wizard",{"type":435,"value":965}," command that is included in the ",{"type":430,"tag":775,"props":967,"children":969},{"className":968},[],[970],{"type":435,"value":636},{"type":435,"value":972},".\n",{"type":430,"tag":775,"props":974,"children":976},{"className":975},[],[977],{"type":435,"value":963},{"type":435,"value":979}," is an interactive prompt that creates a boilerplate project that will allow you to quickly create an application.\nFor more on ",{"type":430,"tag":775,"props":981,"children":983},{"className":982},[],[984],{"type":435,"value":963},{"type":435,"value":986},", refer to the DNAnexus wiki article on ",{"type":430,"tag":458,"props":988,"children":991},{"href":989,"rel":990},"https://documentation.dnanexus.com/developer/apps/intro-to-building-apps",[462],[992],{"type":435,"value":993},"Intro to Building Apps",{"type":435,"value":995},".\nBefore continuing, be sure to refer to the ",{"type":430,"tag":458,"props":997,"children":998},{"href":86},[999],{"type":435,"value":1000},"command line interaction page",{"type":435,"value":1002}," for a walkthrough on how to install ",{"type":430,"tag":458,"props":1004,"children":1007},{"href":1005,"rel":1006},"https://documentation.dnanexus.com/downloads#DNAnexus-Platform-SDK",[462],[1008],{"type":435,"value":636},{"type":435,"value":1010}," and how to select your project workspace.",{"type":430,"tag":437,"props":1012,"children":1013},{"color":439,"icon":440},[1014],{"type":430,"tag":431,"props":1015,"children":1016},{},[1017,1021,1024,1026,1031,1033,1038,1040,1047],{"type":430,"tag":446,"props":1018,"children":1019},{},[1020],{"type":435,"value":450},{"type":430,"tag":452,"props":1022,"children":1023},{},[],{"type":435,"value":1025},"\nIt is not necessary to use ",{"type":430,"tag":775,"props":1027,"children":1029},{"className":1028},[],[1030],{"type":435,"value":963},{"type":435,"value":1032},".\nAll the necessary files and project directory structure can be created manually.\nHowever, ",{"type":430,"tag":775,"props":1034,"children":1036},{"className":1035},[],[1037],{"type":435,"value":963},{"type":435,"value":1039}," provides a quick and easy way to get started.\nFor more information, refer to the ",{"type":430,"tag":458,"props":1041,"children":1044},{"href":1042,"rel":1043},"https://documentation.dnanexus.com/developer/apps/advanced-app-tutorial",[462],[1045],{"type":435,"value":1046},"Advanced App Tutorial",{"type":435,"value":520},{"type":430,"tag":431,"props":1049,"children":1050},{},[1051],{"type":435,"value":1052},"All DNAnexus project applications will have the following structure:",{"type":430,"tag":768,"props":1054,"children":1056},{"className":770,"code":1055,"language":772,"meta":424,"style":424},"dx-fastqc-example-app/\n├── dxapp.json\n├── resources/\n│   └── usr/\n│       └── bin/\n└── src/\n    └── dx-fastqc-example-app.sh\n",[1057],{"type":430,"tag":775,"props":1058,"children":1059},{"__ignoreMap":424},[1060,1068,1081,1093,1112,1130,1144],{"type":430,"tag":779,"props":1061,"children":1062},{"class":781,"line":782},[1063],{"type":430,"tag":779,"props":1064,"children":1065},{"style":786},[1066],{"type":435,"value":1067},"dx-fastqc-example-app/\n",{"type":430,"tag":779,"props":1069,"children":1070},{"class":781,"line":819},[1071,1076],{"type":430,"tag":779,"props":1072,"children":1073},{"style":786},[1074],{"type":435,"value":1075},"├──",{"type":430,"tag":779,"props":1077,"children":1078},{"style":792},[1079],{"type":435,"value":1080}," dxapp.json\n",{"type":430,"tag":779,"props":1082,"children":1083},{"class":781,"line":837},[1084,1088],{"type":430,"tag":779,"props":1085,"children":1086},{"style":786},[1087],{"type":435,"value":1075},{"type":430,"tag":779,"props":1089,"children":1090},{"style":792},[1091],{"type":435,"value":1092}," resources/\n",{"type":430,"tag":779,"props":1094,"children":1096},{"class":781,"line":1095},4,[1097,1102,1107],{"type":430,"tag":779,"props":1098,"children":1099},{"style":786},[1100],{"type":435,"value":1101},"│  ",{"type":430,"tag":779,"props":1103,"children":1104},{"style":792},[1105],{"type":435,"value":1106}," └──",{"type":430,"tag":779,"props":1108,"children":1109},{"style":792},[1110],{"type":435,"value":1111}," usr/\n",{"type":430,"tag":779,"props":1113,"children":1115},{"class":781,"line":1114},5,[1116,1120,1125],{"type":430,"tag":779,"props":1117,"children":1118},{"style":786},[1119],{"type":435,"value":1101},{"type":430,"tag":779,"props":1121,"children":1122},{"style":792},[1123],{"type":435,"value":1124},"     └──",{"type":430,"tag":779,"props":1126,"children":1127},{"style":792},[1128],{"type":435,"value":1129}," bin/\n",{"type":430,"tag":779,"props":1131,"children":1133},{"class":781,"line":1132},6,[1134,1139],{"type":430,"tag":779,"props":1135,"children":1136},{"style":786},[1137],{"type":435,"value":1138},"└──",{"type":430,"tag":779,"props":1140,"children":1141},{"style":792},[1142],{"type":435,"value":1143}," src/\n",{"type":430,"tag":779,"props":1145,"children":1147},{"class":781,"line":1146},7,[1148,1153],{"type":430,"tag":779,"props":1149,"children":1150},{"style":786},[1151],{"type":435,"value":1152},"    └──",{"type":430,"tag":779,"props":1154,"children":1155},{"style":792},[1156],{"type":435,"value":1157}," dx-fastqc-example-app.sh\n",{"type":430,"tag":431,"props":1159,"children":1160},{},[1161,1163,1169,1171,1178],{"type":435,"value":1162},"The ",{"type":430,"tag":775,"props":1164,"children":1166},{"className":1165},[],[1167],{"type":435,"value":1168},"dxapp.json",{"type":435,"value":1170}," file is a JSON file that contains metadata about the application we are writing that are needed to build and run the app on the DNAnexus Platform.\nMost notably, you will need to specify all of the inputs your app requires (both input files or any settings you can tune), output files, and other options such as the number of cores and memory required to run the tool.\nTo see the full list of fields, refer to the ",{"type":430,"tag":458,"props":1172,"children":1175},{"href":1173,"rel":1174},"https://documentation.dnanexus.com/developer/apps/app-metadata",[462],[1176],{"type":435,"value":1177},"DNAnexus wiki",{"type":435,"value":1179}," guide on the application metadata.",{"type":430,"tag":431,"props":1181,"children":1182},{},[1183,1184,1190,1192,1198],{"type":435,"value":1162},{"type":430,"tag":775,"props":1185,"children":1187},{"className":1186},[],[1188],{"type":435,"value":1189},"dx-fastqc-example-app.sh",{"type":435,"value":1191}," file is a bash script is what will be executed when the application is run.\nAny executable binaries that accompany the application, such as other tools or scripts, are placed in the ",{"type":430,"tag":775,"props":1193,"children":1195},{"className":1194},[],[1196],{"type":435,"value":1197},"resources",{"type":435,"value":1199}," folder.\nFrom there, we can call the executable from within the app when it is run.",{"type":430,"tag":478,"props":1201,"children":1203},{"id":1202},"creating-the-project",[1204],{"type":435,"value":1205},"Creating the Project",{"type":430,"tag":431,"props":1207,"children":1208},{},[1209,1211,1216],{"type":435,"value":1210},"Start by running the ",{"type":430,"tag":775,"props":1212,"children":1214},{"className":1213},[],[1215],{"type":435,"value":963},{"type":435,"value":1217}," command from your terminal.",{"type":430,"tag":437,"props":1219,"children":1222},{"color":1220,"icon":1221},"green","i-heroicons-exclamation-circle",[1223],{"type":430,"tag":431,"props":1224,"children":1225},{},[1226,1231,1234,1236,1241,1243,1249,1251,1256,1258,1264,1266,1272,1274,1277,1279,1284],{"type":430,"tag":446,"props":1227,"children":1228},{},[1229],{"type":435,"value":1230},"Info",{"type":430,"tag":452,"props":1232,"children":1233},{},[],{"type":435,"value":1235},"\nThis helper tool will create a ",{"type":430,"tag":446,"props":1237,"children":1238},{},[1239],{"type":435,"value":1240},"local",{"type":435,"value":1242}," directory on your machine.\nAny code changes we make will be done ",{"type":430,"tag":1244,"props":1245,"children":1246},"em",{},[1247],{"type":435,"value":1248},"inside",{"type":435,"value":1250}," this local project directory created by ",{"type":430,"tag":775,"props":1252,"children":1254},{"className":1253},[],[1255],{"type":435,"value":963},{"type":435,"value":1257},".\nThis is because we can write our application locally, ",{"type":430,"tag":458,"props":1259,"children":1261},{"href":1260},"#building-your-app",[1262],{"type":435,"value":1263},"build the application",{"type":435,"value":1265},", and then ",{"type":430,"tag":458,"props":1267,"children":1269},{"href":1268},"#running-your-app",[1270],{"type":435,"value":1271},"run the application",{"type":435,"value":1273}," in the cloud.",{"type":430,"tag":452,"props":1275,"children":1276},{},[],{"type":435,"value":1278},"\nBuilding the application will compile ",{"type":430,"tag":775,"props":1280,"children":1282},{"className":1281},[],[1283],{"type":435,"value":474},{"type":435,"value":1285}," and then upload it into the project space on the cloud.\nWhen we run an application, it will be submitted as a job to be run in the cloud.\nWith this process, we can write the application locally and run it on our data in the cloud, without ever having to utilize personal bandwidth and compute time.",{"type":430,"tag":768,"props":1287,"children":1289},{"className":770,"code":1288,"language":772,"meta":424,"style":424},"dx-app-wizard\n",[1290],{"type":430,"tag":775,"props":1291,"children":1292},{"__ignoreMap":424},[1293],{"type":430,"tag":779,"props":1294,"children":1295},{"class":781,"line":782},[1296],{"type":430,"tag":779,"props":1297,"children":1298},{"style":786},[1299],{"type":435,"value":1288},{"type":430,"tag":431,"props":1301,"children":1302},{},[1303],{"type":435,"value":1304},"For our inputs, we will enter the following:",{"type":430,"tag":768,"props":1306,"children":1308},{"className":770,"code":1307,"language":772,"meta":424,"style":424},"$ App Name: dx-fastqc-example-app\n...\n$ Title []: FastQC Example Application\n...\n$ Summary []: Uses FastQC to generate quality control reports on raw sequence data.\n...\n$ Version [0.0.1]: 0.0.1\n...\n$ 1st input name (\u003CENTER> to finish): bam_file\n$ Label (optional human-readable name) []: BAM File\n...\n$ Choose a class (\u003CTAB> twice for choices): file\n$ This is an optional parameter [y/n]: n\n...\n$ 1st output name (\u003CENTER> to finish): fastqc_html\n$ Label (optional human-readable name) []: FastQC HTML Report\n$ Choose a class (\u003CTAB> twice for choices): file\n\n$ 2nd output name (\u003CENTER> to finish): fastqc_zip\n$ Label (optional human-readable name) []: FastQC Zip File\n$ Choose a class (\u003CTAB> twice for choices): file\n...\n$ Timeout policy [48h]: 48h\n...\n$ Programming language: bash\n...\n$ Will this app need access to the Internet? [y/N]: N\n...\n$ Will this app need access to the parent project? [y/N]: y\n...\n$ Choose an instance type for your app [mem1_ssd1_x4]: azure:mem1_ssd1_x4\n",[1309],{"type":430,"tag":775,"props":1310,"children":1311},{"__ignoreMap":424},[1312,1335,1344,1362,1369,1386,1393,1410,1418,1461,1504,1512,1560,1598,1606,1644,1681,1721,1731,1769,1806,1846,1854,1877,1885,1908,1916,1969,1977,2028,2036],{"type":430,"tag":779,"props":1313,"children":1314},{"class":781,"line":782},[1315,1320,1325,1330],{"type":430,"tag":779,"props":1316,"children":1317},{"style":786},[1318],{"type":435,"value":1319},"$",{"type":430,"tag":779,"props":1321,"children":1322},{"style":792},[1323],{"type":435,"value":1324}," App",{"type":430,"tag":779,"props":1326,"children":1327},{"style":792},[1328],{"type":435,"value":1329}," Name:",{"type":430,"tag":779,"props":1331,"children":1332},{"style":792},[1333],{"type":435,"value":1334}," dx-fastqc-example-app\n",{"type":430,"tag":779,"props":1336,"children":1337},{"class":781,"line":819},[1338],{"type":430,"tag":779,"props":1339,"children":1341},{"style":1340},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1342],{"type":435,"value":1343},"...\n",{"type":430,"tag":779,"props":1345,"children":1346},{"class":781,"line":837},[1347,1351,1356],{"type":430,"tag":779,"props":1348,"children":1349},{"style":786},[1350],{"type":435,"value":1319},{"type":430,"tag":779,"props":1352,"children":1353},{"style":792},[1354],{"type":435,"value":1355}," Title",{"type":430,"tag":779,"props":1357,"children":1359},{"style":1358},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1360],{"type":435,"value":1361}," []: FastQC Example Application\n",{"type":430,"tag":779,"props":1363,"children":1364},{"class":781,"line":1095},[1365],{"type":430,"tag":779,"props":1366,"children":1367},{"style":1340},[1368],{"type":435,"value":1343},{"type":430,"tag":779,"props":1370,"children":1371},{"class":781,"line":1114},[1372,1376,1381],{"type":430,"tag":779,"props":1373,"children":1374},{"style":786},[1375],{"type":435,"value":1319},{"type":430,"tag":779,"props":1377,"children":1378},{"style":792},[1379],{"type":435,"value":1380}," Summary",{"type":430,"tag":779,"props":1382,"children":1383},{"style":1358},[1384],{"type":435,"value":1385}," []: Uses FastQC to generate quality control reports on raw sequence data.\n",{"type":430,"tag":779,"props":1387,"children":1388},{"class":781,"line":1132},[1389],{"type":430,"tag":779,"props":1390,"children":1391},{"style":1340},[1392],{"type":435,"value":1343},{"type":430,"tag":779,"props":1394,"children":1395},{"class":781,"line":1146},[1396,1400,1405],{"type":430,"tag":779,"props":1397,"children":1398},{"style":786},[1399],{"type":435,"value":1319},{"type":430,"tag":779,"props":1401,"children":1402},{"style":792},[1403],{"type":435,"value":1404}," Version",{"type":430,"tag":779,"props":1406,"children":1407},{"style":1358},[1408],{"type":435,"value":1409}," [0.0.1]: 0.0.1\n",{"type":430,"tag":779,"props":1411,"children":1413},{"class":781,"line":1412},8,[1414],{"type":430,"tag":779,"props":1415,"children":1416},{"style":1340},[1417],{"type":435,"value":1343},{"type":430,"tag":779,"props":1419,"children":1421},{"class":781,"line":1420},9,[1422,1426,1431,1436,1441,1446,1451,1456],{"type":430,"tag":779,"props":1423,"children":1424},{"style":786},[1425],{"type":435,"value":1319},{"type":430,"tag":779,"props":1427,"children":1428},{"style":792},[1429],{"type":435,"value":1430}," 1st",{"type":430,"tag":779,"props":1432,"children":1433},{"style":792},[1434],{"type":435,"value":1435}," input",{"type":430,"tag":779,"props":1437,"children":1438},{"style":792},[1439],{"type":435,"value":1440}," name",{"type":430,"tag":779,"props":1442,"children":1443},{"style":1358},[1444],{"type":435,"value":1445}," (\u003CENTER> ",{"type":430,"tag":779,"props":1447,"children":1448},{"style":792},[1449],{"type":435,"value":1450},"to",{"type":430,"tag":779,"props":1452,"children":1453},{"style":792},[1454],{"type":435,"value":1455}," finish",{"type":430,"tag":779,"props":1457,"children":1458},{"style":1358},[1459],{"type":435,"value":1460},"): bam_file\n",{"type":430,"tag":779,"props":1462,"children":1464},{"class":781,"line":1463},10,[1465,1469,1474,1479,1484,1488,1493,1499],{"type":430,"tag":779,"props":1466,"children":1467},{"style":786},[1468],{"type":435,"value":1319},{"type":430,"tag":779,"props":1470,"children":1471},{"style":792},[1472],{"type":435,"value":1473}," Label",{"type":430,"tag":779,"props":1475,"children":1476},{"style":1358},[1477],{"type":435,"value":1478}," (optional ",{"type":430,"tag":779,"props":1480,"children":1481},{"style":792},[1482],{"type":435,"value":1483},"human-readable",{"type":430,"tag":779,"props":1485,"children":1486},{"style":792},[1487],{"type":435,"value":1440},{"type":430,"tag":779,"props":1489,"children":1490},{"style":1358},[1491],{"type":435,"value":1492},") ",{"type":430,"tag":779,"props":1494,"children":1496},{"style":1495},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1497],{"type":435,"value":1498},"[]",{"type":430,"tag":779,"props":1500,"children":1501},{"style":1358},[1502],{"type":435,"value":1503},": BAM File\n",{"type":430,"tag":779,"props":1505,"children":1507},{"class":781,"line":1506},11,[1508],{"type":430,"tag":779,"props":1509,"children":1510},{"style":1340},[1511],{"type":435,"value":1343},{"type":430,"tag":779,"props":1513,"children":1515},{"class":781,"line":1514},12,[1516,1520,1525,1530,1535,1540,1545,1550,1555],{"type":430,"tag":779,"props":1517,"children":1518},{"style":786},[1519],{"type":435,"value":1319},{"type":430,"tag":779,"props":1521,"children":1522},{"style":792},[1523],{"type":435,"value":1524}," Choose",{"type":430,"tag":779,"props":1526,"children":1527},{"style":792},[1528],{"type":435,"value":1529}," a",{"type":430,"tag":779,"props":1531,"children":1532},{"style":792},[1533],{"type":435,"value":1534}," class",{"type":430,"tag":779,"props":1536,"children":1537},{"style":1358},[1538],{"type":435,"value":1539}," (\u003CTAB> ",{"type":430,"tag":779,"props":1541,"children":1542},{"style":792},[1543],{"type":435,"value":1544},"twice",{"type":430,"tag":779,"props":1546,"children":1547},{"style":792},[1548],{"type":435,"value":1549}," for",{"type":430,"tag":779,"props":1551,"children":1552},{"style":792},[1553],{"type":435,"value":1554}," choices",{"type":430,"tag":779,"props":1556,"children":1557},{"style":1358},[1558],{"type":435,"value":1559},"): file\n",{"type":430,"tag":779,"props":1561,"children":1563},{"class":781,"line":1562},13,[1564,1568,1573,1578,1583,1588,1593],{"type":430,"tag":779,"props":1565,"children":1566},{"style":786},[1567],{"type":435,"value":1319},{"type":430,"tag":779,"props":1569,"children":1570},{"style":792},[1571],{"type":435,"value":1572}," This",{"type":430,"tag":779,"props":1574,"children":1575},{"style":792},[1576],{"type":435,"value":1577}," is",{"type":430,"tag":779,"props":1579,"children":1580},{"style":792},[1581],{"type":435,"value":1582}," an",{"type":430,"tag":779,"props":1584,"children":1585},{"style":792},[1586],{"type":435,"value":1587}," optional",{"type":430,"tag":779,"props":1589,"children":1590},{"style":792},[1591],{"type":435,"value":1592}," parameter",{"type":430,"tag":779,"props":1594,"children":1595},{"style":1358},[1596],{"type":435,"value":1597}," [y/n]: n\n",{"type":430,"tag":779,"props":1599,"children":1601},{"class":781,"line":1600},14,[1602],{"type":430,"tag":779,"props":1603,"children":1604},{"style":1340},[1605],{"type":435,"value":1343},{"type":430,"tag":779,"props":1607,"children":1609},{"class":781,"line":1608},15,[1610,1614,1618,1623,1627,1631,1635,1639],{"type":430,"tag":779,"props":1611,"children":1612},{"style":786},[1613],{"type":435,"value":1319},{"type":430,"tag":779,"props":1615,"children":1616},{"style":792},[1617],{"type":435,"value":1430},{"type":430,"tag":779,"props":1619,"children":1620},{"style":792},[1621],{"type":435,"value":1622}," output",{"type":430,"tag":779,"props":1624,"children":1625},{"style":792},[1626],{"type":435,"value":1440},{"type":430,"tag":779,"props":1628,"children":1629},{"style":1358},[1630],{"type":435,"value":1445},{"type":430,"tag":779,"props":1632,"children":1633},{"style":792},[1634],{"type":435,"value":1450},{"type":430,"tag":779,"props":1636,"children":1637},{"style":792},[1638],{"type":435,"value":1455},{"type":430,"tag":779,"props":1640,"children":1641},{"style":1358},[1642],{"type":435,"value":1643},"): fastqc_html\n",{"type":430,"tag":779,"props":1645,"children":1647},{"class":781,"line":1646},16,[1648,1652,1656,1660,1664,1668,1672,1676],{"type":430,"tag":779,"props":1649,"children":1650},{"style":786},[1651],{"type":435,"value":1319},{"type":430,"tag":779,"props":1653,"children":1654},{"style":792},[1655],{"type":435,"value":1473},{"type":430,"tag":779,"props":1657,"children":1658},{"style":1358},[1659],{"type":435,"value":1478},{"type":430,"tag":779,"props":1661,"children":1662},{"style":792},[1663],{"type":435,"value":1483},{"type":430,"tag":779,"props":1665,"children":1666},{"style":792},[1667],{"type":435,"value":1440},{"type":430,"tag":779,"props":1669,"children":1670},{"style":1358},[1671],{"type":435,"value":1492},{"type":430,"tag":779,"props":1673,"children":1674},{"style":1495},[1675],{"type":435,"value":1498},{"type":430,"tag":779,"props":1677,"children":1678},{"style":1358},[1679],{"type":435,"value":1680},": FastQC HTML Report\n",{"type":430,"tag":779,"props":1682,"children":1684},{"class":781,"line":1683},17,[1685,1689,1693,1697,1701,1705,1709,1713,1717],{"type":430,"tag":779,"props":1686,"children":1687},{"style":786},[1688],{"type":435,"value":1319},{"type":430,"tag":779,"props":1690,"children":1691},{"style":792},[1692],{"type":435,"value":1524},{"type":430,"tag":779,"props":1694,"children":1695},{"style":792},[1696],{"type":435,"value":1529},{"type":430,"tag":779,"props":1698,"children":1699},{"style":792},[1700],{"type":435,"value":1534},{"type":430,"tag":779,"props":1702,"children":1703},{"style":1358},[1704],{"type":435,"value":1539},{"type":430,"tag":779,"props":1706,"children":1707},{"style":792},[1708],{"type":435,"value":1544},{"type":430,"tag":779,"props":1710,"children":1711},{"style":792},[1712],{"type":435,"value":1549},{"type":430,"tag":779,"props":1714,"children":1715},{"style":792},[1716],{"type":435,"value":1554},{"type":430,"tag":779,"props":1718,"children":1719},{"style":1358},[1720],{"type":435,"value":1559},{"type":430,"tag":779,"props":1722,"children":1724},{"class":781,"line":1723},18,[1725],{"type":430,"tag":779,"props":1726,"children":1728},{"emptyLinePlaceholder":1727},true,[1729],{"type":435,"value":1730},"\n",{"type":430,"tag":779,"props":1732,"children":1734},{"class":781,"line":1733},19,[1735,1739,1744,1748,1752,1756,1760,1764],{"type":430,"tag":779,"props":1736,"children":1737},{"style":786},[1738],{"type":435,"value":1319},{"type":430,"tag":779,"props":1740,"children":1741},{"style":792},[1742],{"type":435,"value":1743}," 2nd",{"type":430,"tag":779,"props":1745,"children":1746},{"style":792},[1747],{"type":435,"value":1622},{"type":430,"tag":779,"props":1749,"children":1750},{"style":792},[1751],{"type":435,"value":1440},{"type":430,"tag":779,"props":1753,"children":1754},{"style":1358},[1755],{"type":435,"value":1445},{"type":430,"tag":779,"props":1757,"children":1758},{"style":792},[1759],{"type":435,"value":1450},{"type":430,"tag":779,"props":1761,"children":1762},{"style":792},[1763],{"type":435,"value":1455},{"type":430,"tag":779,"props":1765,"children":1766},{"style":1358},[1767],{"type":435,"value":1768},"): fastqc_zip\n",{"type":430,"tag":779,"props":1770,"children":1772},{"class":781,"line":1771},20,[1773,1777,1781,1785,1789,1793,1797,1801],{"type":430,"tag":779,"props":1774,"children":1775},{"style":786},[1776],{"type":435,"value":1319},{"type":430,"tag":779,"props":1778,"children":1779},{"style":792},[1780],{"type":435,"value":1473},{"type":430,"tag":779,"props":1782,"children":1783},{"style":1358},[1784],{"type":435,"value":1478},{"type":430,"tag":779,"props":1786,"children":1787},{"style":792},[1788],{"type":435,"value":1483},{"type":430,"tag":779,"props":1790,"children":1791},{"style":792},[1792],{"type":435,"value":1440},{"type":430,"tag":779,"props":1794,"children":1795},{"style":1358},[1796],{"type":435,"value":1492},{"type":430,"tag":779,"props":1798,"children":1799},{"style":1495},[1800],{"type":435,"value":1498},{"type":430,"tag":779,"props":1802,"children":1803},{"style":1358},[1804],{"type":435,"value":1805},": FastQC Zip File\n",{"type":430,"tag":779,"props":1807,"children":1809},{"class":781,"line":1808},21,[1810,1814,1818,1822,1826,1830,1834,1838,1842],{"type":430,"tag":779,"props":1811,"children":1812},{"style":786},[1813],{"type":435,"value":1319},{"type":430,"tag":779,"props":1815,"children":1816},{"style":792},[1817],{"type":435,"value":1524},{"type":430,"tag":779,"props":1819,"children":1820},{"style":792},[1821],{"type":435,"value":1529},{"type":430,"tag":779,"props":1823,"children":1824},{"style":792},[1825],{"type":435,"value":1534},{"type":430,"tag":779,"props":1827,"children":1828},{"style":1358},[1829],{"type":435,"value":1539},{"type":430,"tag":779,"props":1831,"children":1832},{"style":792},[1833],{"type":435,"value":1544},{"type":430,"tag":779,"props":1835,"children":1836},{"style":792},[1837],{"type":435,"value":1549},{"type":430,"tag":779,"props":1839,"children":1840},{"style":792},[1841],{"type":435,"value":1554},{"type":430,"tag":779,"props":1843,"children":1844},{"style":1358},[1845],{"type":435,"value":1559},{"type":430,"tag":779,"props":1847,"children":1849},{"class":781,"line":1848},22,[1850],{"type":430,"tag":779,"props":1851,"children":1852},{"style":1340},[1853],{"type":435,"value":1343},{"type":430,"tag":779,"props":1855,"children":1857},{"class":781,"line":1856},23,[1858,1862,1867,1872],{"type":430,"tag":779,"props":1859,"children":1860},{"style":786},[1861],{"type":435,"value":1319},{"type":430,"tag":779,"props":1863,"children":1864},{"style":792},[1865],{"type":435,"value":1866}," Timeout",{"type":430,"tag":779,"props":1868,"children":1869},{"style":792},[1870],{"type":435,"value":1871}," policy",{"type":430,"tag":779,"props":1873,"children":1874},{"style":1358},[1875],{"type":435,"value":1876}," [48h]: 48h\n",{"type":430,"tag":779,"props":1878,"children":1880},{"class":781,"line":1879},24,[1881],{"type":430,"tag":779,"props":1882,"children":1883},{"style":1340},[1884],{"type":435,"value":1343},{"type":430,"tag":779,"props":1886,"children":1888},{"class":781,"line":1887},25,[1889,1893,1898,1903],{"type":430,"tag":779,"props":1890,"children":1891},{"style":786},[1892],{"type":435,"value":1319},{"type":430,"tag":779,"props":1894,"children":1895},{"style":792},[1896],{"type":435,"value":1897}," Programming",{"type":430,"tag":779,"props":1899,"children":1900},{"style":792},[1901],{"type":435,"value":1902}," language:",{"type":430,"tag":779,"props":1904,"children":1905},{"style":792},[1906],{"type":435,"value":1907}," bash\n",{"type":430,"tag":779,"props":1909,"children":1911},{"class":781,"line":1910},26,[1912],{"type":430,"tag":779,"props":1913,"children":1914},{"style":1340},[1915],{"type":435,"value":1343},{"type":430,"tag":779,"props":1917,"children":1919},{"class":781,"line":1918},27,[1920,1924,1929,1934,1939,1944,1949,1954,1959,1964],{"type":430,"tag":779,"props":1921,"children":1922},{"style":786},[1923],{"type":435,"value":1319},{"type":430,"tag":779,"props":1925,"children":1926},{"style":792},[1927],{"type":435,"value":1928}," Will",{"type":430,"tag":779,"props":1930,"children":1931},{"style":792},[1932],{"type":435,"value":1933}," this",{"type":430,"tag":779,"props":1935,"children":1936},{"style":792},[1937],{"type":435,"value":1938}," app",{"type":430,"tag":779,"props":1940,"children":1941},{"style":792},[1942],{"type":435,"value":1943}," need",{"type":430,"tag":779,"props":1945,"children":1946},{"style":792},[1947],{"type":435,"value":1948}," access",{"type":430,"tag":779,"props":1950,"children":1951},{"style":792},[1952],{"type":435,"value":1953}," to",{"type":430,"tag":779,"props":1955,"children":1956},{"style":792},[1957],{"type":435,"value":1958}," the",{"type":430,"tag":779,"props":1960,"children":1961},{"style":792},[1962],{"type":435,"value":1963}," Internet?",{"type":430,"tag":779,"props":1965,"children":1966},{"style":1358},[1967],{"type":435,"value":1968}," [y/N]: N\n",{"type":430,"tag":779,"props":1970,"children":1972},{"class":781,"line":1971},28,[1973],{"type":430,"tag":779,"props":1974,"children":1975},{"style":1340},[1976],{"type":435,"value":1343},{"type":430,"tag":779,"props":1978,"children":1980},{"class":781,"line":1979},29,[1981,1985,1989,1993,1997,2001,2005,2009,2013,2018,2023],{"type":430,"tag":779,"props":1982,"children":1983},{"style":786},[1984],{"type":435,"value":1319},{"type":430,"tag":779,"props":1986,"children":1987},{"style":792},[1988],{"type":435,"value":1928},{"type":430,"tag":779,"props":1990,"children":1991},{"style":792},[1992],{"type":435,"value":1933},{"type":430,"tag":779,"props":1994,"children":1995},{"style":792},[1996],{"type":435,"value":1938},{"type":430,"tag":779,"props":1998,"children":1999},{"style":792},[2000],{"type":435,"value":1943},{"type":430,"tag":779,"props":2002,"children":2003},{"style":792},[2004],{"type":435,"value":1948},{"type":430,"tag":779,"props":2006,"children":2007},{"style":792},[2008],{"type":435,"value":1953},{"type":430,"tag":779,"props":2010,"children":2011},{"style":792},[2012],{"type":435,"value":1958},{"type":430,"tag":779,"props":2014,"children":2015},{"style":792},[2016],{"type":435,"value":2017}," parent",{"type":430,"tag":779,"props":2019,"children":2020},{"style":792},[2021],{"type":435,"value":2022}," project?",{"type":430,"tag":779,"props":2024,"children":2025},{"style":1358},[2026],{"type":435,"value":2027}," [y/N]: y\n",{"type":430,"tag":779,"props":2029,"children":2031},{"class":781,"line":2030},30,[2032],{"type":430,"tag":779,"props":2033,"children":2034},{"style":1340},[2035],{"type":435,"value":1343},{"type":430,"tag":779,"props":2037,"children":2039},{"class":781,"line":2038},31,[2040,2044,2048,2052,2057,2062,2066,2071,2075],{"type":430,"tag":779,"props":2041,"children":2042},{"style":786},[2043],{"type":435,"value":1319},{"type":430,"tag":779,"props":2045,"children":2046},{"style":792},[2047],{"type":435,"value":1524},{"type":430,"tag":779,"props":2049,"children":2050},{"style":792},[2051],{"type":435,"value":1582},{"type":430,"tag":779,"props":2053,"children":2054},{"style":792},[2055],{"type":435,"value":2056}," instance",{"type":430,"tag":779,"props":2058,"children":2059},{"style":792},[2060],{"type":435,"value":2061}," type",{"type":430,"tag":779,"props":2063,"children":2064},{"style":792},[2065],{"type":435,"value":1549},{"type":430,"tag":779,"props":2067,"children":2068},{"style":792},[2069],{"type":435,"value":2070}," your",{"type":430,"tag":779,"props":2072,"children":2073},{"style":792},[2074],{"type":435,"value":1938},{"type":430,"tag":779,"props":2076,"children":2077},{"style":1358},[2078],{"type":435,"value":2079}," [mem1_ssd1_x4]: azure:mem1_ssd1_x4\n",{"type":430,"tag":437,"props":2081,"children":2082},{"color":439,"icon":440},[2083],{"type":430,"tag":431,"props":2084,"children":2085},{},[2086,2090,2093,2095,2102],{"type":430,"tag":446,"props":2087,"children":2088},{},[2089],{"type":435,"value":450},{"type":430,"tag":452,"props":2091,"children":2092},{},[],{"type":435,"value":2094},"\nAlthough our app doesn't need any Internet access in this example, it may be required for your project.\nAlso be sure to check what instance type you will need in the ",{"type":430,"tag":458,"props":2096,"children":2099},{"href":2097,"rel":2098},"https://documentation.dnanexus.com/developer/api/running-analyses/instance-types",[462],[2100],{"type":435,"value":2101},"API Specifications",{"type":435,"value":520},{"type":430,"tag":431,"props":2104,"children":2105},{},[2106,2108,2115],{"type":435,"value":2107},"The FastQC executable supports a variety of file formats (BAM, SAM, FASTQ, etc.), and outputs a HTML report and a zip file that contains all the graphs and data.\nWe will use that knowledge to write the input and output parameters for our application.\nWe can also specify other parameters such as the timeout policy, programming language, and instance type.\nFor more information, refer to the ",{"type":430,"tag":458,"props":2109,"children":2112},{"href":2110,"rel":2111},"https://documentation.dnanexus.com/developer/api/running-analyses/io-and-run-specifications",[462],[2113],{"type":435,"value":2114},"IO and Run Specification",{"type":435,"value":2116}," guide.",{"type":430,"tag":478,"props":2118,"children":2120},{"id":2119},"integrating-tools-and-packages",[2121],{"type":435,"value":2122},"Integrating Tools and Packages",{"type":430,"tag":431,"props":2124,"children":2125},{},[2126,2128,2133],{"type":435,"value":2127},"Once we have finished creating the basic FastQC application using ",{"type":430,"tag":775,"props":2129,"children":2131},{"className":2130},[],[2132],{"type":435,"value":963},{"type":435,"value":2134},", the project structure should look like:",{"type":430,"tag":768,"props":2136,"children":2138},{"className":770,"code":2137,"language":772,"meta":424,"style":424},"dx-fastqc-example-app/\n├── Readme.developer.md\n├── Readme.md\n├── dxapp.json\n├── resources/\n├── src/\n│   └── dx-fastqc-example-app.sh\n└── test/\n",[2139],{"type":430,"tag":775,"props":2140,"children":2141},{"__ignoreMap":424},[2142,2149,2161,2173,2184,2195,2206,2221],{"type":430,"tag":779,"props":2143,"children":2144},{"class":781,"line":782},[2145],{"type":430,"tag":779,"props":2146,"children":2147},{"style":786},[2148],{"type":435,"value":1067},{"type":430,"tag":779,"props":2150,"children":2151},{"class":781,"line":819},[2152,2156],{"type":430,"tag":779,"props":2153,"children":2154},{"style":786},[2155],{"type":435,"value":1075},{"type":430,"tag":779,"props":2157,"children":2158},{"style":792},[2159],{"type":435,"value":2160}," Readme.developer.md\n",{"type":430,"tag":779,"props":2162,"children":2163},{"class":781,"line":837},[2164,2168],{"type":430,"tag":779,"props":2165,"children":2166},{"style":786},[2167],{"type":435,"value":1075},{"type":430,"tag":779,"props":2169,"children":2170},{"style":792},[2171],{"type":435,"value":2172}," Readme.md\n",{"type":430,"tag":779,"props":2174,"children":2175},{"class":781,"line":1095},[2176,2180],{"type":430,"tag":779,"props":2177,"children":2178},{"style":786},[2179],{"type":435,"value":1075},{"type":430,"tag":779,"props":2181,"children":2182},{"style":792},[2183],{"type":435,"value":1080},{"type":430,"tag":779,"props":2185,"children":2186},{"class":781,"line":1114},[2187,2191],{"type":430,"tag":779,"props":2188,"children":2189},{"style":786},[2190],{"type":435,"value":1075},{"type":430,"tag":779,"props":2192,"children":2193},{"style":792},[2194],{"type":435,"value":1092},{"type":430,"tag":779,"props":2196,"children":2197},{"class":781,"line":1132},[2198,2202],{"type":430,"tag":779,"props":2199,"children":2200},{"style":786},[2201],{"type":435,"value":1075},{"type":430,"tag":779,"props":2203,"children":2204},{"style":792},[2205],{"type":435,"value":1143},{"type":430,"tag":779,"props":2207,"children":2208},{"class":781,"line":1146},[2209,2213,2217],{"type":430,"tag":779,"props":2210,"children":2211},{"style":786},[2212],{"type":435,"value":1101},{"type":430,"tag":779,"props":2214,"children":2215},{"style":792},[2216],{"type":435,"value":1106},{"type":430,"tag":779,"props":2218,"children":2219},{"style":792},[2220],{"type":435,"value":1157},{"type":430,"tag":779,"props":2222,"children":2223},{"class":781,"line":1412},[2224,2228],{"type":430,"tag":779,"props":2225,"children":2226},{"style":786},[2227],{"type":435,"value":1138},{"type":430,"tag":779,"props":2229,"children":2230},{"style":792},[2231],{"type":435,"value":2232}," test/\n",{"type":430,"tag":437,"props":2234,"children":2235},{"color":1220,"icon":1221},[2236],{"type":430,"tag":431,"props":2237,"children":2238},{},[2239,2243,2246,2248,2254,2256,2262,2264,2270,2272,2278,2280,2283,2285,2291],{"type":430,"tag":446,"props":2240,"children":2241},{},[2242],{"type":435,"value":1230},{"type":430,"tag":452,"props":2244,"children":2245},{},[],{"type":435,"value":2247},"\nAnything in the resources folder is unpacked into the root directory (",{"type":430,"tag":775,"props":2249,"children":2251},{"className":2250},[],[2252],{"type":435,"value":2253},"/",{"type":435,"value":2255},") of the virtual Linux machine that your application will run on.\nIf we create the directory path ",{"type":430,"tag":775,"props":2257,"children":2259},{"className":2258},[],[2260],{"type":435,"value":2261},"dx-fastqc-example-app/resources/usr/bin/",{"type":435,"value":2263},", anything in the bin folder would be unpacked into ",{"type":430,"tag":775,"props":2265,"children":2267},{"className":2266},[],[2268],{"type":435,"value":2269},"/usr/bin/",{"type":435,"value":2271}," on the Linux machine.\nThis is handy because that path is included in the default ",{"type":430,"tag":775,"props":2273,"children":2275},{"className":2274},[],[2276],{"type":435,"value":2277},"$PATH",{"type":435,"value":2279}," environment variable.",{"type":430,"tag":452,"props":2281,"children":2282},{},[],{"type":435,"value":2284},"\nYour application's executable will use ",{"type":430,"tag":775,"props":2286,"children":2288},{"className":2287},[],[2289],{"type":435,"value":2290},"/home/dnanexus/",{"type":435,"value":2292}," as its current working directory.",{"type":430,"tag":431,"props":2294,"children":2295},{},[2296,2298,2303],{"type":435,"value":2297},"Though ",{"type":430,"tag":775,"props":2299,"children":2301},{"className":2300},[],[2302],{"type":435,"value":963},{"type":435,"value":2304}," does not create this, we can create it ourselves.\nPaste the following lines into your terminal.",{"type":430,"tag":768,"props":2306,"children":2308},{"className":770,"code":2307,"language":772,"meta":424,"style":424},"mkdir -p dx-fastqc-example-app/resources/usr/bin\n",[2309],{"type":430,"tag":775,"props":2310,"children":2311},{"__ignoreMap":424},[2312],{"type":430,"tag":779,"props":2313,"children":2314},{"class":781,"line":782},[2315,2320,2325],{"type":430,"tag":779,"props":2316,"children":2317},{"style":786},[2318],{"type":435,"value":2319},"mkdir",{"type":430,"tag":779,"props":2321,"children":2322},{"style":792},[2323],{"type":435,"value":2324}," -p",{"type":430,"tag":779,"props":2326,"children":2327},{"style":792},[2328],{"type":435,"value":2329}," dx-fastqc-example-app/resources/usr/bin\n",{"type":430,"tag":478,"props":2331,"children":2333},{"id":2332},"packaging-fastqc",[2334],{"type":435,"value":2335},"Packaging FastQC",{"type":430,"tag":431,"props":2337,"children":2338},{},[2339,2341,2346,2348,2355,2357,2362],{"type":435,"value":2340},"To incorporate FastQC into this project, we need to download the executable binary and package it within the ",{"type":430,"tag":775,"props":2342,"children":2344},{"className":2343},[],[2345],{"type":435,"value":474},{"type":435,"value":2347},".\nDownload the ",{"type":430,"tag":458,"props":2349,"children":2352},{"href":2350,"rel":2351},"https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.8.zip",[462],[2353],{"type":435,"value":2354},"FastQC v0.11.8 (Win/Linux zip file)",{"type":435,"value":2356}," and unzip it.\nAfter unzipping, move the FastQC folder into the ",{"type":430,"tag":775,"props":2358,"children":2360},{"className":2359},[],[2361],{"type":435,"value":1197},{"type":435,"value":2363}," folder.",{"type":430,"tag":768,"props":2365,"children":2367},{"className":770,"code":2366,"language":772,"meta":424,"style":424},"unzip fastqc_v0.11.8.zip\nmv FastQC /path/to/project/dx-fastqc-example-app/resources/\n",[2368],{"type":430,"tag":775,"props":2369,"children":2370},{"__ignoreMap":424},[2371,2384],{"type":430,"tag":779,"props":2372,"children":2373},{"class":781,"line":782},[2374,2379],{"type":430,"tag":779,"props":2375,"children":2376},{"style":786},[2377],{"type":435,"value":2378},"unzip",{"type":430,"tag":779,"props":2380,"children":2381},{"style":792},[2382],{"type":435,"value":2383}," fastqc_v0.11.8.zip\n",{"type":430,"tag":779,"props":2385,"children":2386},{"class":781,"line":819},[2387,2392,2397],{"type":430,"tag":779,"props":2388,"children":2389},{"style":786},[2390],{"type":435,"value":2391},"mv",{"type":430,"tag":779,"props":2393,"children":2394},{"style":792},[2395],{"type":435,"value":2396}," FastQC",{"type":430,"tag":779,"props":2398,"children":2399},{"style":792},[2400],{"type":435,"value":2401}," /path/to/project/dx-fastqc-example-app/resources/\n",{"type":430,"tag":431,"props":2403,"children":2404},{},[2405],{"type":435,"value":2406},"Now, our project will look like this:",{"type":430,"tag":768,"props":2408,"children":2410},{"className":770,"code":2409,"language":772,"meta":424,"style":424},"dx-fastqc-example-app/\n├── LICENSE\n├── README.md\n├── Readme.developer.md\n├── dxapp.json\n├── test/\n├── resources/\n│   ├── FastQC/\n│   │   ├── fastqc\n│   │   └── ...\n│   └── usr/\n│       └── bin/\n└── src/\n    └── dx-fastqc-example-app.sh\n",[2411],{"type":430,"tag":775,"props":2412,"children":2413},{"__ignoreMap":424},[2414,2421,2433,2445,2456,2467,2478,2489,2506,2527,2547,2562,2577,2588],{"type":430,"tag":779,"props":2415,"children":2416},{"class":781,"line":782},[2417],{"type":430,"tag":779,"props":2418,"children":2419},{"style":786},[2420],{"type":435,"value":1067},{"type":430,"tag":779,"props":2422,"children":2423},{"class":781,"line":819},[2424,2428],{"type":430,"tag":779,"props":2425,"children":2426},{"style":786},[2427],{"type":435,"value":1075},{"type":430,"tag":779,"props":2429,"children":2430},{"style":792},[2431],{"type":435,"value":2432}," LICENSE\n",{"type":430,"tag":779,"props":2434,"children":2435},{"class":781,"line":837},[2436,2440],{"type":430,"tag":779,"props":2437,"children":2438},{"style":786},[2439],{"type":435,"value":1075},{"type":430,"tag":779,"props":2441,"children":2442},{"style":792},[2443],{"type":435,"value":2444}," README.md\n",{"type":430,"tag":779,"props":2446,"children":2447},{"class":781,"line":1095},[2448,2452],{"type":430,"tag":779,"props":2449,"children":2450},{"style":786},[2451],{"type":435,"value":1075},{"type":430,"tag":779,"props":2453,"children":2454},{"style":792},[2455],{"type":435,"value":2160},{"type":430,"tag":779,"props":2457,"children":2458},{"class":781,"line":1114},[2459,2463],{"type":430,"tag":779,"props":2460,"children":2461},{"style":786},[2462],{"type":435,"value":1075},{"type":430,"tag":779,"props":2464,"children":2465},{"style":792},[2466],{"type":435,"value":1080},{"type":430,"tag":779,"props":2468,"children":2469},{"class":781,"line":1132},[2470,2474],{"type":430,"tag":779,"props":2471,"children":2472},{"style":786},[2473],{"type":435,"value":1075},{"type":430,"tag":779,"props":2475,"children":2476},{"style":792},[2477],{"type":435,"value":2232},{"type":430,"tag":779,"props":2479,"children":2480},{"class":781,"line":1146},[2481,2485],{"type":430,"tag":779,"props":2482,"children":2483},{"style":786},[2484],{"type":435,"value":1075},{"type":430,"tag":779,"props":2486,"children":2487},{"style":792},[2488],{"type":435,"value":1092},{"type":430,"tag":779,"props":2490,"children":2491},{"class":781,"line":1412},[2492,2496,2501],{"type":430,"tag":779,"props":2493,"children":2494},{"style":786},[2495],{"type":435,"value":1101},{"type":430,"tag":779,"props":2497,"children":2498},{"style":792},[2499],{"type":435,"value":2500}," ├──",{"type":430,"tag":779,"props":2502,"children":2503},{"style":792},[2504],{"type":435,"value":2505}," FastQC/\n",{"type":430,"tag":779,"props":2507,"children":2508},{"class":781,"line":1420},[2509,2513,2518,2522],{"type":430,"tag":779,"props":2510,"children":2511},{"style":786},[2512],{"type":435,"value":1101},{"type":430,"tag":779,"props":2514,"children":2515},{"style":792},[2516],{"type":435,"value":2517}," │  ",{"type":430,"tag":779,"props":2519,"children":2520},{"style":792},[2521],{"type":435,"value":2500},{"type":430,"tag":779,"props":2523,"children":2524},{"style":792},[2525],{"type":435,"value":2526}," fastqc\n",{"type":430,"tag":779,"props":2528,"children":2529},{"class":781,"line":1463},[2530,2534,2538,2542],{"type":430,"tag":779,"props":2531,"children":2532},{"style":786},[2533],{"type":435,"value":1101},{"type":430,"tag":779,"props":2535,"children":2536},{"style":792},[2537],{"type":435,"value":2517},{"type":430,"tag":779,"props":2539,"children":2540},{"style":792},[2541],{"type":435,"value":1106},{"type":430,"tag":779,"props":2543,"children":2544},{"style":792},[2545],{"type":435,"value":2546}," ...\n",{"type":430,"tag":779,"props":2548,"children":2549},{"class":781,"line":1506},[2550,2554,2558],{"type":430,"tag":779,"props":2551,"children":2552},{"style":786},[2553],{"type":435,"value":1101},{"type":430,"tag":779,"props":2555,"children":2556},{"style":792},[2557],{"type":435,"value":1106},{"type":430,"tag":779,"props":2559,"children":2560},{"style":792},[2561],{"type":435,"value":1111},{"type":430,"tag":779,"props":2563,"children":2564},{"class":781,"line":1514},[2565,2569,2573],{"type":430,"tag":779,"props":2566,"children":2567},{"style":786},[2568],{"type":435,"value":1101},{"type":430,"tag":779,"props":2570,"children":2571},{"style":792},[2572],{"type":435,"value":1124},{"type":430,"tag":779,"props":2574,"children":2575},{"style":792},[2576],{"type":435,"value":1129},{"type":430,"tag":779,"props":2578,"children":2579},{"class":781,"line":1562},[2580,2584],{"type":430,"tag":779,"props":2581,"children":2582},{"style":786},[2583],{"type":435,"value":1138},{"type":430,"tag":779,"props":2585,"children":2586},{"style":792},[2587],{"type":435,"value":1143},{"type":430,"tag":779,"props":2589,"children":2590},{"class":781,"line":1600},[2591,2595],{"type":430,"tag":779,"props":2592,"children":2593},{"style":786},[2594],{"type":435,"value":1152},{"type":430,"tag":779,"props":2596,"children":2597},{"style":792},[2598],{"type":435,"value":1157},{"type":430,"tag":478,"props":2600,"children":2602},{"id":2601},"installing-dependencies",[2603],{"type":435,"value":2604},"Installing Dependencies",{"type":430,"tag":437,"props":2606,"children":2607},{"color":439,"icon":440},[2608],{"type":430,"tag":431,"props":2609,"children":2610},{},[2611,2615,2618,2620,2623,2625,2632],{"type":430,"tag":446,"props":2612,"children":2613},{},[2614],{"type":435,"value":450},{"type":430,"tag":452,"props":2616,"children":2617},{},[],{"type":435,"value":2619},"\nIf you are importing custom tools, or are using tools that rely on various packages and requirements, they can be specified in the \"runSpec\".",{"type":430,"tag":452,"props":2621,"children":2622},{},[],{"type":435,"value":2624},"\nFor more information on installing dependencies and available software packages, refer to the ",{"type":430,"tag":458,"props":2626,"children":2629},{"href":2627,"rel":2628},"https://documentation.dnanexus.com/developer/apps/execution-environment",[462],[2630],{"type":435,"value":2631},"Execution Environment Reference",{"type":435,"value":520},{"type":430,"tag":431,"props":2634,"children":2635},{},[2636],{"type":435,"value":2637},"Some external package managers that we can leverage when building an app include:",{"type":430,"tag":592,"props":2639,"children":2640},{},[2641,2657],{"type":430,"tag":596,"props":2642,"children":2643},{},[2644],{"type":430,"tag":600,"props":2645,"children":2646},{},[2647,2652],{"type":430,"tag":604,"props":2648,"children":2649},{},[2650],{"type":435,"value":2651},"Package Manager",{"type":430,"tag":604,"props":2653,"children":2654},{},[2655],{"type":435,"value":2656},"Application",{"type":430,"tag":625,"props":2658,"children":2659},{},[2660,2673,2686,2699,2712],{"type":430,"tag":600,"props":2661,"children":2662},{},[2663,2668],{"type":430,"tag":632,"props":2664,"children":2665},{},[2666],{"type":435,"value":2667},"APT",{"type":430,"tag":632,"props":2669,"children":2670},{},[2671],{"type":435,"value":2672},"Advanced Packaging Tool for Ubuntu",{"type":430,"tag":600,"props":2674,"children":2675},{},[2676,2681],{"type":430,"tag":632,"props":2677,"children":2678},{},[2679],{"type":435,"value":2680},"CPAN",{"type":430,"tag":632,"props":2682,"children":2683},{},[2684],{"type":435,"value":2685},"Comprehensive Perl Archive Network",{"type":430,"tag":600,"props":2687,"children":2688},{},[2689,2694],{"type":430,"tag":632,"props":2690,"children":2691},{},[2692],{"type":435,"value":2693},"CRAN",{"type":430,"tag":632,"props":2695,"children":2696},{},[2697],{"type":435,"value":2698},"Comprehensive R Archive Network",{"type":430,"tag":600,"props":2700,"children":2701},{},[2702,2707],{"type":430,"tag":632,"props":2703,"children":2704},{},[2705],{"type":435,"value":2706},"gem",{"type":430,"tag":632,"props":2708,"children":2709},{},[2710],{"type":435,"value":2711},"Package Manager for Ruby",{"type":430,"tag":600,"props":2713,"children":2714},{},[2715,2719],{"type":430,"tag":632,"props":2716,"children":2717},{},[2718],{"type":435,"value":843},{"type":430,"tag":632,"props":2720,"children":2721},{},[2722],{"type":435,"value":2723},"PyPI (Python Package Index)",{"type":430,"tag":431,"props":2725,"children":2726},{},[2727,2729,2736,2738,2743,2745,2750,2752,2758],{"type":435,"value":2728},"One requirement for FastQC is that it must have a suitable ",{"type":430,"tag":458,"props":2730,"children":2733},{"href":2731,"rel":2732},"https://www.java.com/en/",[462],[2734],{"type":435,"value":2735},"Java Runtime Environment",{"type":435,"value":2737},".\nTo include this in the app, we have to edit the ",{"type":430,"tag":775,"props":2739,"children":2741},{"className":2740},[],[2742],{"type":435,"value":1168},{"type":435,"value":2744}," file.\nOpen ",{"type":430,"tag":775,"props":2746,"children":2748},{"className":2747},[],[2749],{"type":435,"value":1168},{"type":435,"value":2751}," and append the following line to ",{"type":430,"tag":775,"props":2753,"children":2755},{"className":2754},[],[2756],{"type":435,"value":2757},"\"runSpec\"",{"type":435,"value":2759},":",{"type":430,"tag":768,"props":2761,"children":2765},{"className":2762,"code":2763,"language":2764,"meta":424,"style":424},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","  \"execDepends\": [\n    {\n      \"name\": \"openjdk-7-jre-headless\",\n      \"package_manager\": \"apt\"\n    }\n  ]\n","json",[2766],{"type":430,"tag":775,"props":2767,"children":2768},{"__ignoreMap":424},[2769,2797,2805,2846,2880,2888],{"type":430,"tag":779,"props":2770,"children":2771},{"class":781,"line":782},[2772,2777,2782,2787,2792],{"type":430,"tag":779,"props":2773,"children":2774},{"style":1495},[2775],{"type":435,"value":2776},"  \"",{"type":430,"tag":779,"props":2778,"children":2779},{"style":792},[2780],{"type":435,"value":2781},"execDepends",{"type":430,"tag":779,"props":2783,"children":2784},{"style":1495},[2785],{"type":435,"value":2786},"\"",{"type":430,"tag":779,"props":2788,"children":2789},{"style":1358},[2790],{"type":435,"value":2791},": ",{"type":430,"tag":779,"props":2793,"children":2794},{"style":1495},[2795],{"type":435,"value":2796},"[\n",{"type":430,"tag":779,"props":2798,"children":2799},{"class":781,"line":819},[2800],{"type":430,"tag":779,"props":2801,"children":2802},{"style":1495},[2803],{"type":435,"value":2804},"    {\n",{"type":430,"tag":779,"props":2806,"children":2807},{"class":781,"line":837},[2808,2813,2819,2823,2827,2832,2837,2841],{"type":430,"tag":779,"props":2809,"children":2810},{"style":1495},[2811],{"type":435,"value":2812},"      \"",{"type":430,"tag":779,"props":2814,"children":2816},{"style":2815},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[2817],{"type":435,"value":2818},"name",{"type":430,"tag":779,"props":2820,"children":2821},{"style":1495},[2822],{"type":435,"value":2786},{"type":430,"tag":779,"props":2824,"children":2825},{"style":1495},[2826],{"type":435,"value":2759},{"type":430,"tag":779,"props":2828,"children":2829},{"style":1495},[2830],{"type":435,"value":2831}," \"",{"type":430,"tag":779,"props":2833,"children":2834},{"style":792},[2835],{"type":435,"value":2836},"openjdk-7-jre-headless",{"type":430,"tag":779,"props":2838,"children":2839},{"style":1495},[2840],{"type":435,"value":2786},{"type":430,"tag":779,"props":2842,"children":2843},{"style":1495},[2844],{"type":435,"value":2845},",\n",{"type":430,"tag":779,"props":2847,"children":2848},{"class":781,"line":1095},[2849,2853,2858,2862,2866,2870,2875],{"type":430,"tag":779,"props":2850,"children":2851},{"style":1495},[2852],{"type":435,"value":2812},{"type":430,"tag":779,"props":2854,"children":2855},{"style":2815},[2856],{"type":435,"value":2857},"package_manager",{"type":430,"tag":779,"props":2859,"children":2860},{"style":1495},[2861],{"type":435,"value":2786},{"type":430,"tag":779,"props":2863,"children":2864},{"style":1495},[2865],{"type":435,"value":2759},{"type":430,"tag":779,"props":2867,"children":2868},{"style":1495},[2869],{"type":435,"value":2831},{"type":430,"tag":779,"props":2871,"children":2872},{"style":792},[2873],{"type":435,"value":2874},"apt",{"type":430,"tag":779,"props":2876,"children":2877},{"style":1495},[2878],{"type":435,"value":2879},"\"\n",{"type":430,"tag":779,"props":2881,"children":2882},{"class":781,"line":1114},[2883],{"type":430,"tag":779,"props":2884,"children":2885},{"style":1495},[2886],{"type":435,"value":2887},"    }\n",{"type":430,"tag":779,"props":2889,"children":2890},{"class":781,"line":1132},[2891],{"type":430,"tag":779,"props":2892,"children":2893},{"style":1495},[2894],{"type":435,"value":2895},"  ]\n",{"type":430,"tag":431,"props":2897,"children":2898},{},[2899,2901,2906],{"type":435,"value":2900},"Be sure to add a comma at the very end of the \"file\" object line to accommodate the new \"execDepends\" lines.\nNow, the ",{"type":430,"tag":775,"props":2902,"children":2904},{"className":2903},[],[2905],{"type":435,"value":2757},{"type":435,"value":2907}," object should look like the following:",{"type":430,"tag":768,"props":2909,"children":2911},{"className":2762,"code":2910,"language":2764,"meta":424,"style":424},"  ...\n  \"runSpec\": {\n    \"timeoutPolicy\": {\n      \"*\": {\n        \"hours\": 48\n      }\n    },\n    \"interpreter\": \"bash\",\n    \"release\": \"14.04\",\n    \"distribution\": \"Ubuntu\",\n    \"file\": \"src/dx-fastqc-example-app.sh\",\n    \"execDepends\": [\n      {\n        \"name\": \"openjdk-7-jre-headless\",\n        \"package_manager\": \"apt\"\n      }\n    ]\n  },\n  ...\n",[2912],{"type":430,"tag":775,"props":2913,"children":2914},{"__ignoreMap":424},[2915,2923,2948,2974,2998,3024,3032,3040,3076,3113,3150,3187,3211,3219,3254,3285,3292,3300,3312],{"type":430,"tag":779,"props":2916,"children":2917},{"class":781,"line":782},[2918],{"type":430,"tag":779,"props":2919,"children":2920},{"style":1358},[2921],{"type":435,"value":2922},"  ...\n",{"type":430,"tag":779,"props":2924,"children":2925},{"class":781,"line":819},[2926,2930,2935,2939,2943],{"type":430,"tag":779,"props":2927,"children":2928},{"style":1495},[2929],{"type":435,"value":2776},{"type":430,"tag":779,"props":2931,"children":2932},{"style":792},[2933],{"type":435,"value":2934},"runSpec",{"type":430,"tag":779,"props":2936,"children":2937},{"style":1495},[2938],{"type":435,"value":2786},{"type":430,"tag":779,"props":2940,"children":2941},{"style":1358},[2942],{"type":435,"value":2791},{"type":430,"tag":779,"props":2944,"children":2945},{"style":1495},[2946],{"type":435,"value":2947},"{\n",{"type":430,"tag":779,"props":2949,"children":2950},{"class":781,"line":837},[2951,2956,2961,2965,2969],{"type":430,"tag":779,"props":2952,"children":2953},{"style":1495},[2954],{"type":435,"value":2955},"    \"",{"type":430,"tag":779,"props":2957,"children":2958},{"style":2815},[2959],{"type":435,"value":2960},"timeoutPolicy",{"type":430,"tag":779,"props":2962,"children":2963},{"style":1495},[2964],{"type":435,"value":2786},{"type":430,"tag":779,"props":2966,"children":2967},{"style":1495},[2968],{"type":435,"value":2759},{"type":430,"tag":779,"props":2970,"children":2971},{"style":1495},[2972],{"type":435,"value":2973}," {\n",{"type":430,"tag":779,"props":2975,"children":2976},{"class":781,"line":1095},[2977,2981,2986,2990,2994],{"type":430,"tag":779,"props":2978,"children":2979},{"style":1495},[2980],{"type":435,"value":2812},{"type":430,"tag":779,"props":2982,"children":2983},{"style":786},[2984],{"type":435,"value":2985},"*",{"type":430,"tag":779,"props":2987,"children":2988},{"style":1495},[2989],{"type":435,"value":2786},{"type":430,"tag":779,"props":2991,"children":2992},{"style":1495},[2993],{"type":435,"value":2759},{"type":430,"tag":779,"props":2995,"children":2996},{"style":1495},[2997],{"type":435,"value":2973},{"type":430,"tag":779,"props":2999,"children":3000},{"class":781,"line":1114},[3001,3006,3011,3015,3019],{"type":430,"tag":779,"props":3002,"children":3003},{"style":1495},[3004],{"type":435,"value":3005},"        \"",{"type":430,"tag":779,"props":3007,"children":3008},{"style":813},[3009],{"type":435,"value":3010},"hours",{"type":430,"tag":779,"props":3012,"children":3013},{"style":1495},[3014],{"type":435,"value":2786},{"type":430,"tag":779,"props":3016,"children":3017},{"style":1495},[3018],{"type":435,"value":2759},{"type":430,"tag":779,"props":3020,"children":3021},{"style":813},[3022],{"type":435,"value":3023}," 48\n",{"type":430,"tag":779,"props":3025,"children":3026},{"class":781,"line":1132},[3027],{"type":430,"tag":779,"props":3028,"children":3029},{"style":1495},[3030],{"type":435,"value":3031},"      }\n",{"type":430,"tag":779,"props":3033,"children":3034},{"class":781,"line":1146},[3035],{"type":430,"tag":779,"props":3036,"children":3037},{"style":1495},[3038],{"type":435,"value":3039},"    },\n",{"type":430,"tag":779,"props":3041,"children":3042},{"class":781,"line":1412},[3043,3047,3052,3056,3060,3064,3068,3072],{"type":430,"tag":779,"props":3044,"children":3045},{"style":1495},[3046],{"type":435,"value":2955},{"type":430,"tag":779,"props":3048,"children":3049},{"style":2815},[3050],{"type":435,"value":3051},"interpreter",{"type":430,"tag":779,"props":3053,"children":3054},{"style":1495},[3055],{"type":435,"value":2786},{"type":430,"tag":779,"props":3057,"children":3058},{"style":1495},[3059],{"type":435,"value":2759},{"type":430,"tag":779,"props":3061,"children":3062},{"style":1495},[3063],{"type":435,"value":2831},{"type":430,"tag":779,"props":3065,"children":3066},{"style":792},[3067],{"type":435,"value":772},{"type":430,"tag":779,"props":3069,"children":3070},{"style":1495},[3071],{"type":435,"value":2786},{"type":430,"tag":779,"props":3073,"children":3074},{"style":1495},[3075],{"type":435,"value":2845},{"type":430,"tag":779,"props":3077,"children":3078},{"class":781,"line":1420},[3079,3083,3088,3092,3096,3100,3105,3109],{"type":430,"tag":779,"props":3080,"children":3081},{"style":1495},[3082],{"type":435,"value":2955},{"type":430,"tag":779,"props":3084,"children":3085},{"style":2815},[3086],{"type":435,"value":3087},"release",{"type":430,"tag":779,"props":3089,"children":3090},{"style":1495},[3091],{"type":435,"value":2786},{"type":430,"tag":779,"props":3093,"children":3094},{"style":1495},[3095],{"type":435,"value":2759},{"type":430,"tag":779,"props":3097,"children":3098},{"style":1495},[3099],{"type":435,"value":2831},{"type":430,"tag":779,"props":3101,"children":3102},{"style":792},[3103],{"type":435,"value":3104},"14.04",{"type":430,"tag":779,"props":3106,"children":3107},{"style":1495},[3108],{"type":435,"value":2786},{"type":430,"tag":779,"props":3110,"children":3111},{"style":1495},[3112],{"type":435,"value":2845},{"type":430,"tag":779,"props":3114,"children":3115},{"class":781,"line":1463},[3116,3120,3125,3129,3133,3137,3142,3146],{"type":430,"tag":779,"props":3117,"children":3118},{"style":1495},[3119],{"type":435,"value":2955},{"type":430,"tag":779,"props":3121,"children":3122},{"style":2815},[3123],{"type":435,"value":3124},"distribution",{"type":430,"tag":779,"props":3126,"children":3127},{"style":1495},[3128],{"type":435,"value":2786},{"type":430,"tag":779,"props":3130,"children":3131},{"style":1495},[3132],{"type":435,"value":2759},{"type":430,"tag":779,"props":3134,"children":3135},{"style":1495},[3136],{"type":435,"value":2831},{"type":430,"tag":779,"props":3138,"children":3139},{"style":792},[3140],{"type":435,"value":3141},"Ubuntu",{"type":430,"tag":779,"props":3143,"children":3144},{"style":1495},[3145],{"type":435,"value":2786},{"type":430,"tag":779,"props":3147,"children":3148},{"style":1495},[3149],{"type":435,"value":2845},{"type":430,"tag":779,"props":3151,"children":3152},{"class":781,"line":1506},[3153,3157,3162,3166,3170,3174,3179,3183],{"type":430,"tag":779,"props":3154,"children":3155},{"style":1495},[3156],{"type":435,"value":2955},{"type":430,"tag":779,"props":3158,"children":3159},{"style":2815},[3160],{"type":435,"value":3161},"file",{"type":430,"tag":779,"props":3163,"children":3164},{"style":1495},[3165],{"type":435,"value":2786},{"type":430,"tag":779,"props":3167,"children":3168},{"style":1495},[3169],{"type":435,"value":2759},{"type":430,"tag":779,"props":3171,"children":3172},{"style":1495},[3173],{"type":435,"value":2831},{"type":430,"tag":779,"props":3175,"children":3176},{"style":792},[3177],{"type":435,"value":3178},"src/dx-fastqc-example-app.sh",{"type":430,"tag":779,"props":3180,"children":3181},{"style":1495},[3182],{"type":435,"value":2786},{"type":430,"tag":779,"props":3184,"children":3185},{"style":1495},[3186],{"type":435,"value":2845},{"type":430,"tag":779,"props":3188,"children":3189},{"class":781,"line":1514},[3190,3194,3198,3202,3206],{"type":430,"tag":779,"props":3191,"children":3192},{"style":1495},[3193],{"type":435,"value":2955},{"type":430,"tag":779,"props":3195,"children":3196},{"style":2815},[3197],{"type":435,"value":2781},{"type":430,"tag":779,"props":3199,"children":3200},{"style":1495},[3201],{"type":435,"value":2786},{"type":430,"tag":779,"props":3203,"children":3204},{"style":1495},[3205],{"type":435,"value":2759},{"type":430,"tag":779,"props":3207,"children":3208},{"style":1495},[3209],{"type":435,"value":3210}," [\n",{"type":430,"tag":779,"props":3212,"children":3213},{"class":781,"line":1562},[3214],{"type":430,"tag":779,"props":3215,"children":3216},{"style":1495},[3217],{"type":435,"value":3218},"      {\n",{"type":430,"tag":779,"props":3220,"children":3221},{"class":781,"line":1600},[3222,3226,3230,3234,3238,3242,3246,3250],{"type":430,"tag":779,"props":3223,"children":3224},{"style":1495},[3225],{"type":435,"value":3005},{"type":430,"tag":779,"props":3227,"children":3228},{"style":786},[3229],{"type":435,"value":2818},{"type":430,"tag":779,"props":3231,"children":3232},{"style":1495},[3233],{"type":435,"value":2786},{"type":430,"tag":779,"props":3235,"children":3236},{"style":1495},[3237],{"type":435,"value":2759},{"type":430,"tag":779,"props":3239,"children":3240},{"style":1495},[3241],{"type":435,"value":2831},{"type":430,"tag":779,"props":3243,"children":3244},{"style":792},[3245],{"type":435,"value":2836},{"type":430,"tag":779,"props":3247,"children":3248},{"style":1495},[3249],{"type":435,"value":2786},{"type":430,"tag":779,"props":3251,"children":3252},{"style":1495},[3253],{"type":435,"value":2845},{"type":430,"tag":779,"props":3255,"children":3256},{"class":781,"line":1608},[3257,3261,3265,3269,3273,3277,3281],{"type":430,"tag":779,"props":3258,"children":3259},{"style":1495},[3260],{"type":435,"value":3005},{"type":430,"tag":779,"props":3262,"children":3263},{"style":786},[3264],{"type":435,"value":2857},{"type":430,"tag":779,"props":3266,"children":3267},{"style":1495},[3268],{"type":435,"value":2786},{"type":430,"tag":779,"props":3270,"children":3271},{"style":1495},[3272],{"type":435,"value":2759},{"type":430,"tag":779,"props":3274,"children":3275},{"style":1495},[3276],{"type":435,"value":2831},{"type":430,"tag":779,"props":3278,"children":3279},{"style":792},[3280],{"type":435,"value":2874},{"type":430,"tag":779,"props":3282,"children":3283},{"style":1495},[3284],{"type":435,"value":2879},{"type":430,"tag":779,"props":3286,"children":3287},{"class":781,"line":1646},[3288],{"type":430,"tag":779,"props":3289,"children":3290},{"style":1495},[3291],{"type":435,"value":3031},{"type":430,"tag":779,"props":3293,"children":3294},{"class":781,"line":1683},[3295],{"type":430,"tag":779,"props":3296,"children":3297},{"style":1495},[3298],{"type":435,"value":3299},"    ]\n",{"type":430,"tag":779,"props":3301,"children":3302},{"class":781,"line":1723},[3303,3308],{"type":430,"tag":779,"props":3304,"children":3305},{"style":1495},[3306],{"type":435,"value":3307},"  }",{"type":430,"tag":779,"props":3309,"children":3310},{"style":1358},[3311],{"type":435,"value":2845},{"type":430,"tag":779,"props":3313,"children":3314},{"class":781,"line":1733},[3315],{"type":430,"tag":779,"props":3316,"children":3317},{"style":1358},[3318],{"type":435,"value":2922},{"type":430,"tag":431,"props":3320,"children":3321},{},[3322,3324,3330,3332,3339],{"type":435,"value":3323},"When you build and run your application, the virtual environment will now download ",{"type":430,"tag":775,"props":3325,"children":3327},{"className":3326},[],[3328],{"type":435,"value":3329},"openjdk-7",{"type":435,"value":3331}," from Ubuntu's APT package manager as a prerequisite.\nFor more information on how to specify packages from Git, R, or Python, refer to the ",{"type":430,"tag":458,"props":3333,"children":3336},{"href":3334,"rel":3335},"https://documentation.dnanexus.com/developer/apps/execution-environment#software-packages",[462],[3337],{"type":435,"value":3338},"Software Packages",{"type":435,"value":3340}," wiki page.",{"type":430,"tag":478,"props":3342,"children":3344},{"id":3343},"calling-fastqc",[3345],{"type":435,"value":3346},"Calling FastQC",{"type":430,"tag":431,"props":3348,"children":3349},{},[3350,3352,3357],{"type":435,"value":3351},"The last step is to call the FastQC executable from within the app.\nOpen up ",{"type":430,"tag":775,"props":3353,"children":3355},{"className":3354},[],[3356],{"type":435,"value":3178},{"type":435,"value":3358}," with a text editor.\nInside this Bash script is where we will be working with FastQC and our data.\nBefore we dive in, its a good idea to add a few useful parameters for the script execution.",{"type":430,"tag":431,"props":3360,"children":3361},{},[3362,3364,3370],{"type":435,"value":3363},"Right after the Bash shebang (",{"type":430,"tag":775,"props":3365,"children":3367},{"className":3366},[],[3368],{"type":435,"value":3369},"#!/bin/bash",{"type":435,"value":3371},"), add the following line:",{"type":430,"tag":768,"props":3373,"children":3375},{"className":770,"code":3374,"language":772,"meta":424,"style":424},"set -e -x\n",[3376],{"type":430,"tag":775,"props":3377,"children":3378},{"__ignoreMap":424},[3379],{"type":430,"tag":779,"props":3380,"children":3381},{"class":781,"line":782},[3382,3387,3392],{"type":430,"tag":779,"props":3383,"children":3384},{"style":1340},[3385],{"type":435,"value":3386},"set",{"type":430,"tag":779,"props":3388,"children":3389},{"style":792},[3390],{"type":435,"value":3391}," -e",{"type":430,"tag":779,"props":3393,"children":3394},{"style":792},[3395],{"type":435,"value":3396}," -x\n",{"type":430,"tag":431,"props":3398,"children":3399},{},[3400],{"type":435,"value":3401},"Below is a table describing what each flag does:",{"type":430,"tag":592,"props":3403,"children":3404},{},[3405,3421],{"type":430,"tag":596,"props":3406,"children":3407},{},[3408],{"type":430,"tag":600,"props":3409,"children":3410},{},[3411,3416],{"type":430,"tag":604,"props":3412,"children":3413},{},[3414],{"type":435,"value":3415},"Flag",{"type":430,"tag":604,"props":3417,"children":3418},{},[3419],{"type":435,"value":3420},"Description",{"type":430,"tag":625,"props":3422,"children":3423},{},[3424,3437],{"type":430,"tag":600,"props":3425,"children":3426},{},[3427,3432],{"type":430,"tag":632,"props":3428,"children":3429},{},[3430],{"type":435,"value":3431},"-e",{"type":430,"tag":632,"props":3433,"children":3434},{},[3435],{"type":435,"value":3436},"Exit immediately if a command exits with a non-zero status.",{"type":430,"tag":600,"props":3438,"children":3439},{},[3440,3445],{"type":430,"tag":632,"props":3441,"children":3442},{},[3443],{"type":435,"value":3444},"-x",{"type":430,"tag":632,"props":3446,"children":3447},{},[3448],{"type":435,"value":3449},"Print each command to standard error before execution.",{"type":430,"tag":431,"props":3451,"children":3452},{},[3453,3455,3460,3462,3468],{"type":435,"value":3454},"Our first change has to do with how our BAM file is downloaded.\nAlthough ",{"type":430,"tag":775,"props":3456,"children":3458},{"className":3457},[],[3459],{"type":435,"value":963},{"type":435,"value":3461}," automatically generates a line that will download the input file and rename it, we want to keep the original file name because FastQC uses the input file as part of the report name.\nRemove the ",{"type":430,"tag":775,"props":3463,"children":3465},{"className":3464},[],[3466],{"type":435,"value":3467},"-o bam_file",{"type":435,"value":3469}," portion so the line looks like the following:",{"type":430,"tag":768,"props":3471,"children":3473},{"className":770,"code":3472,"language":772,"meta":424,"style":424},"dx download \"$bam_file\"       # Downloads our input BAM file without renaming\n",[3474],{"type":430,"tag":775,"props":3475,"children":3476},{"__ignoreMap":424},[3477],{"type":430,"tag":779,"props":3478,"children":3479},{"class":781,"line":782},[3480,3485,3490,3494,3499,3503],{"type":430,"tag":779,"props":3481,"children":3482},{"style":786},[3483],{"type":435,"value":3484},"dx",{"type":430,"tag":779,"props":3486,"children":3487},{"style":792},[3488],{"type":435,"value":3489}," download",{"type":430,"tag":779,"props":3491,"children":3492},{"style":1495},[3493],{"type":435,"value":2831},{"type":430,"tag":779,"props":3495,"children":3496},{"style":1358},[3497],{"type":435,"value":3498},"$bam_file",{"type":430,"tag":779,"props":3500,"children":3501},{"style":1495},[3502],{"type":435,"value":2786},{"type":430,"tag":779,"props":3504,"children":3506},{"style":3505},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3507],{"type":435,"value":3508},"       # Downloads our input BAM file without renaming\n",{"type":430,"tag":431,"props":3510,"children":3511},{},[3512,3514,3520],{"type":435,"value":3513},"After the application downloads the input file, we need to create the appropriate output directories and run FastQC on our BAM file.\nAdd the following lines to the bash script within the ",{"type":430,"tag":775,"props":3515,"children":3517},{"className":3516},[],[3518],{"type":435,"value":3519},"main",{"type":435,"value":3521}," function:",{"type":430,"tag":768,"props":3523,"children":3525},{"className":770,"code":3524,"language":772,"meta":424,"style":424},"mkdir ~/fastqc-out/                                    # FastQC Output Folder\n/FastQC/fastqc \"$bam_file_name\" -o ~/fastqc-out        # Runs FastQC on BAM File\n",[3526],{"type":430,"tag":775,"props":3527,"children":3528},{"__ignoreMap":424},[3529,3546],{"type":430,"tag":779,"props":3530,"children":3531},{"class":781,"line":782},[3532,3536,3541],{"type":430,"tag":779,"props":3533,"children":3534},{"style":786},[3535],{"type":435,"value":2319},{"type":430,"tag":779,"props":3537,"children":3538},{"style":792},[3539],{"type":435,"value":3540}," ~/fastqc-out/",{"type":430,"tag":779,"props":3542,"children":3543},{"style":3505},[3544],{"type":435,"value":3545},"                                    # FastQC Output Folder\n",{"type":430,"tag":779,"props":3547,"children":3548},{"class":781,"line":819},[3549,3554,3558,3563,3567,3572,3577],{"type":430,"tag":779,"props":3550,"children":3551},{"style":786},[3552],{"type":435,"value":3553},"/FastQC/fastqc",{"type":430,"tag":779,"props":3555,"children":3556},{"style":1495},[3557],{"type":435,"value":2831},{"type":430,"tag":779,"props":3559,"children":3560},{"style":1358},[3561],{"type":435,"value":3562},"$bam_file_name",{"type":430,"tag":779,"props":3564,"children":3565},{"style":1495},[3566],{"type":435,"value":2786},{"type":430,"tag":779,"props":3568,"children":3569},{"style":792},[3570],{"type":435,"value":3571}," -o",{"type":430,"tag":779,"props":3573,"children":3574},{"style":792},[3575],{"type":435,"value":3576}," ~/fastqc-out",{"type":430,"tag":779,"props":3578,"children":3579},{"style":3505},[3580],{"type":435,"value":3581},"        # Runs FastQC on BAM File\n",{"type":430,"tag":437,"props":3583,"children":3584},{"color":439,"icon":440},[3585],{"type":430,"tag":431,"props":3586,"children":3587},{},[3588,3592,3595,3597,3603,3605,3611,3613,3616,3618,3624],{"type":430,"tag":446,"props":3589,"children":3590},{},[3591],{"type":435,"value":450},{"type":430,"tag":452,"props":3593,"children":3594},{},[],{"type":435,"value":3596},"\nBe sure to use ",{"type":430,"tag":775,"props":3598,"children":3600},{"className":3599},[],[3601],{"type":435,"value":3602},"\"$bam_file_name\"",{"type":435,"value":3604}," as our input for FastQC.\nUsing ",{"type":430,"tag":775,"props":3606,"children":3608},{"className":3607},[],[3609],{"type":435,"value":3610},"\"$bam_file\"",{"type":435,"value":3612}," only returns the DNAnexus file-id associated with the input file.",{"type":430,"tag":452,"props":3614,"children":3615},{},[],{"type":435,"value":3617},"\nFor more information on helper variables, refer to the ",{"type":430,"tag":458,"props":3619,"children":3622},{"href":3620,"rel":3621},"https://documentation.dnanexus.com/developer/apps/advanced-app-tutorial#set-output-name-using-bash-app-helper-variables",[462],[3623],{"type":435,"value":1046},{"type":435,"value":520},{"type":430,"tag":478,"props":3626,"children":3628},{"id":3627},"uploading-files",[3629],{"type":435,"value":3630},"Uploading Files",{"type":430,"tag":431,"props":3632,"children":3633},{},[3634],{"type":435,"value":3635},"After FastQC finishes, the last thing to do is to upload the reports generated by FastQC to our project.\nThese virtual Linux machines are provisioned at-will, meaning that they are only spun up when a job is submitted.\nWhen we create an application and run it in the cloud, we submit it as a job to be executed.\nWhen a job gets executed, a virtual machine will download all the necessary requirements (tools, packages, data, etc.) and run the job.\nAny output files on the machine must be uploaded back to the project space after a job finishes executing.\nAny information and data not uploaded to the project space will be inaccessible and lost.",{"type":430,"tag":431,"props":3637,"children":3638},{},[3639,3641,3646],{"type":435,"value":3640},"You will see two lines generated for us by ",{"type":430,"tag":775,"props":3642,"children":3644},{"className":3643},[],[3645],{"type":435,"value":963},{"type":435,"value":3647}," when we specified the outputs for our application.\nWe need to change these to upload the correct files from our output directory that we specified for FastQC.\nOtherwise, it assumes they are in the home directory.\nBefore this, we can also (optionally) rename the files to be uploaded.\nAdd the following lines, making sure to replace the two original upload lines.",{"type":430,"tag":431,"props":3649,"children":3650},{},[3651],{"type":435,"value":3652},"Lines to remove/overwrite:",{"type":430,"tag":768,"props":3654,"children":3656},{"className":770,"code":3655,"language":772,"meta":424,"style":424},"# Generated by dx-app-wizard\nfastqc_html=$(dx upload fastqc_html --brief)\nfastqc_zip=$(dx upload fastqc_zip --brief)\n",[3657],{"type":430,"tag":775,"props":3658,"children":3659},{"__ignoreMap":424},[3660,3668,3705],{"type":430,"tag":779,"props":3661,"children":3662},{"class":781,"line":782},[3663],{"type":430,"tag":779,"props":3664,"children":3665},{"style":3505},[3666],{"type":435,"value":3667},"# Generated by dx-app-wizard\n",{"type":430,"tag":779,"props":3669,"children":3670},{"class":781,"line":819},[3671,3676,3681,3685,3690,3695,3700],{"type":430,"tag":779,"props":3672,"children":3673},{"style":1358},[3674],{"type":435,"value":3675},"fastqc_html",{"type":430,"tag":779,"props":3677,"children":3678},{"style":1495},[3679],{"type":435,"value":3680},"=$(",{"type":430,"tag":779,"props":3682,"children":3683},{"style":786},[3684],{"type":435,"value":3484},{"type":430,"tag":779,"props":3686,"children":3687},{"style":792},[3688],{"type":435,"value":3689}," upload",{"type":430,"tag":779,"props":3691,"children":3692},{"style":792},[3693],{"type":435,"value":3694}," fastqc_html",{"type":430,"tag":779,"props":3696,"children":3697},{"style":792},[3698],{"type":435,"value":3699}," --brief",{"type":430,"tag":779,"props":3701,"children":3702},{"style":1495},[3703],{"type":435,"value":3704},")\n",{"type":430,"tag":779,"props":3706,"children":3707},{"class":781,"line":837},[3708,3713,3717,3721,3725,3730,3734],{"type":430,"tag":779,"props":3709,"children":3710},{"style":1358},[3711],{"type":435,"value":3712},"fastqc_zip",{"type":430,"tag":779,"props":3714,"children":3715},{"style":1495},[3716],{"type":435,"value":3680},{"type":430,"tag":779,"props":3718,"children":3719},{"style":786},[3720],{"type":435,"value":3484},{"type":430,"tag":779,"props":3722,"children":3723},{"style":792},[3724],{"type":435,"value":3689},{"type":430,"tag":779,"props":3726,"children":3727},{"style":792},[3728],{"type":435,"value":3729}," fastqc_zip",{"type":430,"tag":779,"props":3731,"children":3732},{"style":792},[3733],{"type":435,"value":3699},{"type":430,"tag":779,"props":3735,"children":3736},{"style":1495},[3737],{"type":435,"value":3704},{"type":430,"tag":431,"props":3739,"children":3740},{},[3741],{"type":435,"value":3742},"Lines to add:",{"type":430,"tag":768,"props":3744,"children":3746},{"className":770,"code":3745,"language":772,"meta":424,"style":424},"# (Optional) Renames the FastQC reports\nmv ~/fastqc-out/*.html ~/fastqc-out/fastqc-report.html\nmv ~/fastqc-out/*.zip ~/fastqc-out/fastqc-report.zip\n\n# Uploads the respective HTML and Zip file (lines to change)\nfastqc_html=$(dx upload ~/fastqc-out/fastqc-report.html --brief)\nfastqc_zip=$(dx upload ~/fastqc-out/fastqc-report.zip --brief)\n",[3747],{"type":430,"tag":775,"props":3748,"children":3749},{"__ignoreMap":424},[3750,3758,3783,3808,3815,3823,3855],{"type":430,"tag":779,"props":3751,"children":3752},{"class":781,"line":782},[3753],{"type":430,"tag":779,"props":3754,"children":3755},{"style":3505},[3756],{"type":435,"value":3757},"# (Optional) Renames the FastQC reports\n",{"type":430,"tag":779,"props":3759,"children":3760},{"class":781,"line":819},[3761,3765,3769,3773,3778],{"type":430,"tag":779,"props":3762,"children":3763},{"style":786},[3764],{"type":435,"value":2391},{"type":430,"tag":779,"props":3766,"children":3767},{"style":792},[3768],{"type":435,"value":3540},{"type":430,"tag":779,"props":3770,"children":3771},{"style":1358},[3772],{"type":435,"value":2985},{"type":430,"tag":779,"props":3774,"children":3775},{"style":792},[3776],{"type":435,"value":3777},".html",{"type":430,"tag":779,"props":3779,"children":3780},{"style":792},[3781],{"type":435,"value":3782}," ~/fastqc-out/fastqc-report.html\n",{"type":430,"tag":779,"props":3784,"children":3785},{"class":781,"line":837},[3786,3790,3794,3798,3803],{"type":430,"tag":779,"props":3787,"children":3788},{"style":786},[3789],{"type":435,"value":2391},{"type":430,"tag":779,"props":3791,"children":3792},{"style":792},[3793],{"type":435,"value":3540},{"type":430,"tag":779,"props":3795,"children":3796},{"style":1358},[3797],{"type":435,"value":2985},{"type":430,"tag":779,"props":3799,"children":3800},{"style":792},[3801],{"type":435,"value":3802},".zip",{"type":430,"tag":779,"props":3804,"children":3805},{"style":792},[3806],{"type":435,"value":3807}," ~/fastqc-out/fastqc-report.zip\n",{"type":430,"tag":779,"props":3809,"children":3810},{"class":781,"line":1095},[3811],{"type":430,"tag":779,"props":3812,"children":3813},{"emptyLinePlaceholder":1727},[3814],{"type":435,"value":1730},{"type":430,"tag":779,"props":3816,"children":3817},{"class":781,"line":1114},[3818],{"type":430,"tag":779,"props":3819,"children":3820},{"style":3505},[3821],{"type":435,"value":3822},"# Uploads the respective HTML and Zip file (lines to change)\n",{"type":430,"tag":779,"props":3824,"children":3825},{"class":781,"line":1132},[3826,3830,3834,3838,3842,3847,3851],{"type":430,"tag":779,"props":3827,"children":3828},{"style":1358},[3829],{"type":435,"value":3675},{"type":430,"tag":779,"props":3831,"children":3832},{"style":1495},[3833],{"type":435,"value":3680},{"type":430,"tag":779,"props":3835,"children":3836},{"style":786},[3837],{"type":435,"value":3484},{"type":430,"tag":779,"props":3839,"children":3840},{"style":792},[3841],{"type":435,"value":3689},{"type":430,"tag":779,"props":3843,"children":3844},{"style":792},[3845],{"type":435,"value":3846}," ~/fastqc-out/fastqc-report.html",{"type":430,"tag":779,"props":3848,"children":3849},{"style":792},[3850],{"type":435,"value":3699},{"type":430,"tag":779,"props":3852,"children":3853},{"style":1495},[3854],{"type":435,"value":3704},{"type":430,"tag":779,"props":3856,"children":3857},{"class":781,"line":1146},[3858,3862,3866,3870,3874,3879,3883],{"type":430,"tag":779,"props":3859,"children":3860},{"style":1358},[3861],{"type":435,"value":3712},{"type":430,"tag":779,"props":3863,"children":3864},{"style":1495},[3865],{"type":435,"value":3680},{"type":430,"tag":779,"props":3867,"children":3868},{"style":786},[3869],{"type":435,"value":3484},{"type":430,"tag":779,"props":3871,"children":3872},{"style":792},[3873],{"type":435,"value":3689},{"type":430,"tag":779,"props":3875,"children":3876},{"style":792},[3877],{"type":435,"value":3878}," ~/fastqc-out/fastqc-report.zip",{"type":430,"tag":779,"props":3880,"children":3881},{"style":792},[3882],{"type":435,"value":3699},{"type":430,"tag":779,"props":3884,"children":3885},{"style":1495},[3886],{"type":435,"value":3704},{"type":430,"tag":431,"props":3888,"children":3889},{},[3890],{"type":435,"value":3891},"In this step, we are also moving the HTML and Zip file generated by FastQC to the directories which will be uploaded.",{"type":430,"tag":431,"props":3893,"children":3894},{},[3895,3897,3902],{"type":435,"value":3896},"After this step, ",{"type":430,"tag":775,"props":3898,"children":3900},{"className":3899},[],[3901],{"type":435,"value":1189},{"type":435,"value":3903}," should look like:",{"type":430,"tag":768,"props":3905,"children":3907},{"className":770,"code":3906,"language":772,"meta":424,"style":424},"#!/bin/bash\n\nset -e -x\n\nmain() {\n    echo \"Value of bam_file: '$bam_file'\"\n\n    # Downloads file from project to virtual machine workspace\n    dx download \"$bam_file\"\n\n    # Creating output directory for FastQC\n    mkdir ~/fastqc-out\n\n    # Runs FastQC on BAM file\n    /FastQC/fastqc \"$bam_file_name\" -o ~/fastqc-out\n\n    # Renames the FastQC reports to include the BAM file prefix\n    mv ~/fastqc-out/*.html ~/fastqc-out/fastqc-report.html\n    mv ~/fastqc-out/*.zip ~/fastqc-out/fastqc-report.zip\n\n    # Uploads the respective HTML and Zip file\n    fastqc_html=$(dx upload ~/fastqc-out/fastqc-report.html --brief)\n    fastqc_zip=$(dx upload ~/fastqc-out/fastqc-report.zip --brief)\n\n    # Adds and formats appropriate output variables for your app\n    dx-jobutil-add-output fastqc_html \"$fastqc_html\" --class=file\n    dx-jobutil-add-output fastqc_zip \"$fastqc_zip\" --class=file\n}\n",[3908],{"type":430,"tag":775,"props":3909,"children":3910},{"__ignoreMap":424},[3911,3919,3926,3941,3948,3964,3994,4001,4009,4033,4040,4048,4061,4068,4076,4104,4111,4119,4143,4166,4173,4181,4213,4245,4252,4260,4290,4318],{"type":430,"tag":779,"props":3912,"children":3913},{"class":781,"line":782},[3914],{"type":430,"tag":779,"props":3915,"children":3916},{"style":3505},[3917],{"type":435,"value":3918},"#!/bin/bash\n",{"type":430,"tag":779,"props":3920,"children":3921},{"class":781,"line":819},[3922],{"type":430,"tag":779,"props":3923,"children":3924},{"emptyLinePlaceholder":1727},[3925],{"type":435,"value":1730},{"type":430,"tag":779,"props":3927,"children":3928},{"class":781,"line":837},[3929,3933,3937],{"type":430,"tag":779,"props":3930,"children":3931},{"style":1340},[3932],{"type":435,"value":3386},{"type":430,"tag":779,"props":3934,"children":3935},{"style":792},[3936],{"type":435,"value":3391},{"type":430,"tag":779,"props":3938,"children":3939},{"style":792},[3940],{"type":435,"value":3396},{"type":430,"tag":779,"props":3942,"children":3943},{"class":781,"line":1095},[3944],{"type":430,"tag":779,"props":3945,"children":3946},{"emptyLinePlaceholder":1727},[3947],{"type":435,"value":1730},{"type":430,"tag":779,"props":3949,"children":3950},{"class":781,"line":1114},[3951,3955,3960],{"type":430,"tag":779,"props":3952,"children":3953},{"style":1340},[3954],{"type":435,"value":3519},{"type":430,"tag":779,"props":3956,"children":3957},{"style":1495},[3958],{"type":435,"value":3959},"()",{"type":430,"tag":779,"props":3961,"children":3962},{"style":1495},[3963],{"type":435,"value":2973},{"type":430,"tag":779,"props":3965,"children":3966},{"class":781,"line":1132},[3967,3972,3976,3981,3985,3990],{"type":430,"tag":779,"props":3968,"children":3969},{"style":1340},[3970],{"type":435,"value":3971},"    echo",{"type":430,"tag":779,"props":3973,"children":3974},{"style":1495},[3975],{"type":435,"value":2831},{"type":430,"tag":779,"props":3977,"children":3978},{"style":792},[3979],{"type":435,"value":3980},"Value of bam_file: '",{"type":430,"tag":779,"props":3982,"children":3983},{"style":1358},[3984],{"type":435,"value":3498},{"type":430,"tag":779,"props":3986,"children":3987},{"style":792},[3988],{"type":435,"value":3989},"'",{"type":430,"tag":779,"props":3991,"children":3992},{"style":1495},[3993],{"type":435,"value":2879},{"type":430,"tag":779,"props":3995,"children":3996},{"class":781,"line":1146},[3997],{"type":430,"tag":779,"props":3998,"children":3999},{"emptyLinePlaceholder":1727},[4000],{"type":435,"value":1730},{"type":430,"tag":779,"props":4002,"children":4003},{"class":781,"line":1412},[4004],{"type":430,"tag":779,"props":4005,"children":4006},{"style":3505},[4007],{"type":435,"value":4008},"    # Downloads file from project to virtual machine workspace\n",{"type":430,"tag":779,"props":4010,"children":4011},{"class":781,"line":1420},[4012,4017,4021,4025,4029],{"type":430,"tag":779,"props":4013,"children":4014},{"style":786},[4015],{"type":435,"value":4016},"    dx",{"type":430,"tag":779,"props":4018,"children":4019},{"style":792},[4020],{"type":435,"value":3489},{"type":430,"tag":779,"props":4022,"children":4023},{"style":1495},[4024],{"type":435,"value":2831},{"type":430,"tag":779,"props":4026,"children":4027},{"style":1358},[4028],{"type":435,"value":3498},{"type":430,"tag":779,"props":4030,"children":4031},{"style":1495},[4032],{"type":435,"value":2879},{"type":430,"tag":779,"props":4034,"children":4035},{"class":781,"line":1463},[4036],{"type":430,"tag":779,"props":4037,"children":4038},{"emptyLinePlaceholder":1727},[4039],{"type":435,"value":1730},{"type":430,"tag":779,"props":4041,"children":4042},{"class":781,"line":1506},[4043],{"type":430,"tag":779,"props":4044,"children":4045},{"style":3505},[4046],{"type":435,"value":4047},"    # Creating output directory for FastQC\n",{"type":430,"tag":779,"props":4049,"children":4050},{"class":781,"line":1514},[4051,4056],{"type":430,"tag":779,"props":4052,"children":4053},{"style":786},[4054],{"type":435,"value":4055},"    mkdir",{"type":430,"tag":779,"props":4057,"children":4058},{"style":792},[4059],{"type":435,"value":4060}," ~/fastqc-out\n",{"type":430,"tag":779,"props":4062,"children":4063},{"class":781,"line":1562},[4064],{"type":430,"tag":779,"props":4065,"children":4066},{"emptyLinePlaceholder":1727},[4067],{"type":435,"value":1730},{"type":430,"tag":779,"props":4069,"children":4070},{"class":781,"line":1600},[4071],{"type":430,"tag":779,"props":4072,"children":4073},{"style":3505},[4074],{"type":435,"value":4075},"    # Runs FastQC on BAM file\n",{"type":430,"tag":779,"props":4077,"children":4078},{"class":781,"line":1608},[4079,4084,4088,4092,4096,4100],{"type":430,"tag":779,"props":4080,"children":4081},{"style":786},[4082],{"type":435,"value":4083},"    /FastQC/fastqc",{"type":430,"tag":779,"props":4085,"children":4086},{"style":1495},[4087],{"type":435,"value":2831},{"type":430,"tag":779,"props":4089,"children":4090},{"style":1358},[4091],{"type":435,"value":3562},{"type":430,"tag":779,"props":4093,"children":4094},{"style":1495},[4095],{"type":435,"value":2786},{"type":430,"tag":779,"props":4097,"children":4098},{"style":792},[4099],{"type":435,"value":3571},{"type":430,"tag":779,"props":4101,"children":4102},{"style":792},[4103],{"type":435,"value":4060},{"type":430,"tag":779,"props":4105,"children":4106},{"class":781,"line":1646},[4107],{"type":430,"tag":779,"props":4108,"children":4109},{"emptyLinePlaceholder":1727},[4110],{"type":435,"value":1730},{"type":430,"tag":779,"props":4112,"children":4113},{"class":781,"line":1683},[4114],{"type":430,"tag":779,"props":4115,"children":4116},{"style":3505},[4117],{"type":435,"value":4118},"    # Renames the FastQC reports to include the BAM file prefix\n",{"type":430,"tag":779,"props":4120,"children":4121},{"class":781,"line":1723},[4122,4127,4131,4135,4139],{"type":430,"tag":779,"props":4123,"children":4124},{"style":786},[4125],{"type":435,"value":4126},"    mv",{"type":430,"tag":779,"props":4128,"children":4129},{"style":792},[4130],{"type":435,"value":3540},{"type":430,"tag":779,"props":4132,"children":4133},{"style":1358},[4134],{"type":435,"value":2985},{"type":430,"tag":779,"props":4136,"children":4137},{"style":792},[4138],{"type":435,"value":3777},{"type":430,"tag":779,"props":4140,"children":4141},{"style":792},[4142],{"type":435,"value":3782},{"type":430,"tag":779,"props":4144,"children":4145},{"class":781,"line":1733},[4146,4150,4154,4158,4162],{"type":430,"tag":779,"props":4147,"children":4148},{"style":786},[4149],{"type":435,"value":4126},{"type":430,"tag":779,"props":4151,"children":4152},{"style":792},[4153],{"type":435,"value":3540},{"type":430,"tag":779,"props":4155,"children":4156},{"style":1358},[4157],{"type":435,"value":2985},{"type":430,"tag":779,"props":4159,"children":4160},{"style":792},[4161],{"type":435,"value":3802},{"type":430,"tag":779,"props":4163,"children":4164},{"style":792},[4165],{"type":435,"value":3807},{"type":430,"tag":779,"props":4167,"children":4168},{"class":781,"line":1771},[4169],{"type":430,"tag":779,"props":4170,"children":4171},{"emptyLinePlaceholder":1727},[4172],{"type":435,"value":1730},{"type":430,"tag":779,"props":4174,"children":4175},{"class":781,"line":1808},[4176],{"type":430,"tag":779,"props":4177,"children":4178},{"style":3505},[4179],{"type":435,"value":4180},"    # Uploads the respective HTML and Zip file\n",{"type":430,"tag":779,"props":4182,"children":4183},{"class":781,"line":1848},[4184,4189,4193,4197,4201,4205,4209],{"type":430,"tag":779,"props":4185,"children":4186},{"style":1358},[4187],{"type":435,"value":4188},"    fastqc_html",{"type":430,"tag":779,"props":4190,"children":4191},{"style":1495},[4192],{"type":435,"value":3680},{"type":430,"tag":779,"props":4194,"children":4195},{"style":786},[4196],{"type":435,"value":3484},{"type":430,"tag":779,"props":4198,"children":4199},{"style":792},[4200],{"type":435,"value":3689},{"type":430,"tag":779,"props":4202,"children":4203},{"style":792},[4204],{"type":435,"value":3846},{"type":430,"tag":779,"props":4206,"children":4207},{"style":792},[4208],{"type":435,"value":3699},{"type":430,"tag":779,"props":4210,"children":4211},{"style":1495},[4212],{"type":435,"value":3704},{"type":430,"tag":779,"props":4214,"children":4215},{"class":781,"line":1856},[4216,4221,4225,4229,4233,4237,4241],{"type":430,"tag":779,"props":4217,"children":4218},{"style":1358},[4219],{"type":435,"value":4220},"    fastqc_zip",{"type":430,"tag":779,"props":4222,"children":4223},{"style":1495},[4224],{"type":435,"value":3680},{"type":430,"tag":779,"props":4226,"children":4227},{"style":786},[4228],{"type":435,"value":3484},{"type":430,"tag":779,"props":4230,"children":4231},{"style":792},[4232],{"type":435,"value":3689},{"type":430,"tag":779,"props":4234,"children":4235},{"style":792},[4236],{"type":435,"value":3878},{"type":430,"tag":779,"props":4238,"children":4239},{"style":792},[4240],{"type":435,"value":3699},{"type":430,"tag":779,"props":4242,"children":4243},{"style":1495},[4244],{"type":435,"value":3704},{"type":430,"tag":779,"props":4246,"children":4247},{"class":781,"line":1879},[4248],{"type":430,"tag":779,"props":4249,"children":4250},{"emptyLinePlaceholder":1727},[4251],{"type":435,"value":1730},{"type":430,"tag":779,"props":4253,"children":4254},{"class":781,"line":1887},[4255],{"type":430,"tag":779,"props":4256,"children":4257},{"style":3505},[4258],{"type":435,"value":4259},"    # Adds and formats appropriate output variables for your app\n",{"type":430,"tag":779,"props":4261,"children":4262},{"class":781,"line":1910},[4263,4268,4272,4276,4281,4285],{"type":430,"tag":779,"props":4264,"children":4265},{"style":786},[4266],{"type":435,"value":4267},"    dx-jobutil-add-output",{"type":430,"tag":779,"props":4269,"children":4270},{"style":792},[4271],{"type":435,"value":3694},{"type":430,"tag":779,"props":4273,"children":4274},{"style":1495},[4275],{"type":435,"value":2831},{"type":430,"tag":779,"props":4277,"children":4278},{"style":1358},[4279],{"type":435,"value":4280},"$fastqc_html",{"type":430,"tag":779,"props":4282,"children":4283},{"style":1495},[4284],{"type":435,"value":2786},{"type":430,"tag":779,"props":4286,"children":4287},{"style":792},[4288],{"type":435,"value":4289}," --class=file\n",{"type":430,"tag":779,"props":4291,"children":4292},{"class":781,"line":1918},[4293,4297,4301,4305,4310,4314],{"type":430,"tag":779,"props":4294,"children":4295},{"style":786},[4296],{"type":435,"value":4267},{"type":430,"tag":779,"props":4298,"children":4299},{"style":792},[4300],{"type":435,"value":3729},{"type":430,"tag":779,"props":4302,"children":4303},{"style":1495},[4304],{"type":435,"value":2831},{"type":430,"tag":779,"props":4306,"children":4307},{"style":1358},[4308],{"type":435,"value":4309},"$fastqc_zip",{"type":430,"tag":779,"props":4311,"children":4312},{"style":1495},[4313],{"type":435,"value":2786},{"type":430,"tag":779,"props":4315,"children":4316},{"style":792},[4317],{"type":435,"value":4289},{"type":430,"tag":779,"props":4319,"children":4320},{"class":781,"line":1971},[4321],{"type":430,"tag":779,"props":4322,"children":4323},{"style":1495},[4324],{"type":435,"value":4325},"}\n",{"type":430,"tag":478,"props":4327,"children":4329},{"id":4328},"building-your-app",[4330],{"type":435,"value":4331},"Building Your App",{"type":430,"tag":431,"props":4333,"children":4334},{},[4335,4337,4341,4343,4348,4350,4356,4358,4364],{"type":435,"value":4336},"Before building, ensure that you are in the parent directory of the ",{"type":430,"tag":446,"props":4338,"children":4339},{},[4340],{"type":435,"value":1240},{"type":435,"value":4342}," project folder generated by ",{"type":430,"tag":775,"props":4344,"children":4346},{"className":4345},[],[4347],{"type":435,"value":963},{"type":435,"value":4349},".\nTo check, if you enter the command ",{"type":430,"tag":775,"props":4351,"children":4353},{"className":4352},[],[4354],{"type":435,"value":4355},"ls",{"type":435,"value":4357},", you should see the project folder ",{"type":430,"tag":775,"props":4359,"children":4361},{"className":4360},[],[4362],{"type":435,"value":4363},"dx-fastqc-example-app/",{"type":435,"value":4365}," appear in the output.",{"type":430,"tag":431,"props":4367,"children":4368},{},[4369],{"type":435,"value":4370},"To build your application, enter the following into your terminal:",{"type":430,"tag":768,"props":4372,"children":4374},{"className":770,"code":4373,"language":772,"meta":424,"style":424},"dx build dx-fastqc-example-app\n",[4375],{"type":430,"tag":775,"props":4376,"children":4377},{"__ignoreMap":424},[4378],{"type":430,"tag":779,"props":4379,"children":4380},{"class":781,"line":782},[4381,4385,4390],{"type":430,"tag":779,"props":4382,"children":4383},{"style":786},[4384],{"type":435,"value":3484},{"type":430,"tag":779,"props":4386,"children":4387},{"style":792},[4388],{"type":435,"value":4389}," build",{"type":430,"tag":779,"props":4391,"children":4392},{"style":792},[4393],{"type":435,"value":1334},{"type":430,"tag":431,"props":4395,"children":4396},{},[4397],{"type":435,"value":4398},"This command will package the tools and files as an application which can then be run on the DNAnexus Platform.\nIn the screenshot below, you can see the compiled app in our project workspace selected and highlighted in blue.",{"type":430,"tag":431,"props":4400,"children":4401},{},[4402,4404,4410],{"type":435,"value":4403},"To verify that the build was completed successfully, you can enter ",{"type":430,"tag":775,"props":4405,"children":4407},{"className":4406},[],[4408],{"type":435,"value":4409},"dx ls",{"type":435,"value":4411},".\nThis should show you all the files in your project space in the cloud.",{"type":430,"tag":768,"props":4413,"children":4415},{"className":770,"code":4414,"language":772,"meta":424,"style":424},"# This will show what files are in your root directory for your project space in the cloud\ndx ls\n",[4416],{"type":430,"tag":775,"props":4417,"children":4418},{"__ignoreMap":424},[4419,4427],{"type":430,"tag":779,"props":4420,"children":4421},{"class":781,"line":782},[4422],{"type":430,"tag":779,"props":4423,"children":4424},{"style":3505},[4425],{"type":435,"value":4426},"# This will show what files are in your root directory for your project space in the cloud\n",{"type":430,"tag":779,"props":4428,"children":4429},{"class":781,"line":819},[4430,4434],{"type":430,"tag":779,"props":4431,"children":4432},{"style":786},[4433],{"type":435,"value":3484},{"type":430,"tag":779,"props":4435,"children":4436},{"style":792},[4437],{"type":435,"value":4438}," ls\n",{"type":430,"tag":431,"props":4440,"children":4441},{},[4442,4444,4449],{"type":435,"value":4443},"You should see something along the lines of this printed out in your terminal.\nNote that a compiled copy of our ",{"type":430,"tag":775,"props":4445,"children":4447},{"className":4446},[],[4448],{"type":435,"value":474},{"type":435,"value":4450}," now lives in the project.",{"type":430,"tag":768,"props":4452,"children":4454},{"className":770,"code":4453,"language":772,"meta":424,"style":424},".\n├── immediate/\n│   └── ...\n├── dx-fastqc-example-app\n└── SAMPLE_INFO.txt\n",[4455],{"type":430,"tag":775,"props":4456,"children":4457},{"__ignoreMap":424},[4458,4465,4477,4492,4503],{"type":430,"tag":779,"props":4459,"children":4460},{"class":781,"line":782},[4461],{"type":430,"tag":779,"props":4462,"children":4463},{"style":1340},[4464],{"type":435,"value":972},{"type":430,"tag":779,"props":4466,"children":4467},{"class":781,"line":819},[4468,4472],{"type":430,"tag":779,"props":4469,"children":4470},{"style":786},[4471],{"type":435,"value":1075},{"type":430,"tag":779,"props":4473,"children":4474},{"style":792},[4475],{"type":435,"value":4476}," immediate/\n",{"type":430,"tag":779,"props":4478,"children":4479},{"class":781,"line":837},[4480,4484,4488],{"type":430,"tag":779,"props":4481,"children":4482},{"style":786},[4483],{"type":435,"value":1101},{"type":430,"tag":779,"props":4485,"children":4486},{"style":792},[4487],{"type":435,"value":1106},{"type":430,"tag":779,"props":4489,"children":4490},{"style":792},[4491],{"type":435,"value":2546},{"type":430,"tag":779,"props":4493,"children":4494},{"class":781,"line":1095},[4495,4499],{"type":430,"tag":779,"props":4496,"children":4497},{"style":786},[4498],{"type":435,"value":1075},{"type":430,"tag":779,"props":4500,"children":4501},{"style":792},[4502],{"type":435,"value":1334},{"type":430,"tag":779,"props":4504,"children":4505},{"class":781,"line":1114},[4506,4510],{"type":430,"tag":779,"props":4507,"children":4508},{"style":786},[4509],{"type":435,"value":1138},{"type":430,"tag":779,"props":4511,"children":4512},{"style":792},[4513],{"type":435,"value":4514}," SAMPLE_INFO.txt\n",{"type":430,"tag":431,"props":4516,"children":4517},{},[4518,4520,4527],{"type":435,"value":4519},"You can also ",{"type":430,"tag":458,"props":4521,"children":4524},{"href":4522,"rel":4523},"https://platform.dnanexus.com/projects",[462],[4525],{"type":435,"value":4526},"view the project",{"type":435,"value":4528}," directly from your browser.\nYou will see a similar result.",{"type":430,"tag":431,"props":4530,"children":4531},{},[4532],{"type":430,"tag":536,"props":4533,"children":4535},{"alt":538,"src":4534},"/img/genomics-platform/analyzing-data/creating-a-cloud-app/creating-a-cloud-app-1.png",[],{"type":430,"tag":431,"props":4537,"children":4538},{},[4539,4541,4547],{"type":435,"value":4540},"Any time you make any changes to the scripts or the application, you will need to rebuild the application.\nTo overwrite a previous version of the app, specify the ",{"type":430,"tag":775,"props":4542,"children":4544},{"className":4543},[],[4545],{"type":435,"value":4546},"-f",{"type":435,"value":4548}," command.",{"type":430,"tag":431,"props":4550,"children":4551},{},[4552],{"type":435,"value":4553},"You can also inspect and configure the application by clicking on it.",{"type":430,"tag":431,"props":4555,"children":4556},{},[4557],{"type":430,"tag":536,"props":4558,"children":4560},{"alt":538,"src":4559},"/img/genomics-platform/analyzing-data/creating-a-cloud-app/creating-a-cloud-app-2.png",[],{"type":430,"tag":478,"props":4562,"children":4564},{"id":4563},"running-your-app",[4565],{"type":435,"value":4566},"Running Your App",{"type":430,"tag":431,"props":4568,"children":4569},{},[4570,4572,4577],{"type":435,"value":4571},"To run the ",{"type":430,"tag":775,"props":4573,"children":4575},{"className":4574},[],[4576],{"type":435,"value":474},{"type":435,"value":4578},", enter the following into the terminal:",{"type":430,"tag":768,"props":4580,"children":4582},{"className":770,"code":4581,"language":772,"meta":424,"style":424},"dx run dx-fastqc-example-app -i bam_file=/path/to/\u003Cbam-file>.bam\n",[4583],{"type":430,"tag":775,"props":4584,"children":4585},{"__ignoreMap":424},[4586],{"type":430,"tag":779,"props":4587,"children":4588},{"class":781,"line":782},[4589,4593,4598,4603,4608,4613,4618,4623,4628,4633],{"type":430,"tag":779,"props":4590,"children":4591},{"style":786},[4592],{"type":435,"value":3484},{"type":430,"tag":779,"props":4594,"children":4595},{"style":792},[4596],{"type":435,"value":4597}," run",{"type":430,"tag":779,"props":4599,"children":4600},{"style":792},[4601],{"type":435,"value":4602}," dx-fastqc-example-app",{"type":430,"tag":779,"props":4604,"children":4605},{"style":792},[4606],{"type":435,"value":4607}," -i",{"type":430,"tag":779,"props":4609,"children":4610},{"style":792},[4611],{"type":435,"value":4612}," bam_file=/path/to/",{"type":430,"tag":779,"props":4614,"children":4615},{"style":1495},[4616],{"type":435,"value":4617},"\u003C",{"type":430,"tag":779,"props":4619,"children":4620},{"style":792},[4621],{"type":435,"value":4622},"bam-fil",{"type":430,"tag":779,"props":4624,"children":4625},{"style":1358},[4626],{"type":435,"value":4627},"e",{"type":430,"tag":779,"props":4629,"children":4630},{"style":1495},[4631],{"type":435,"value":4632},">",{"type":430,"tag":779,"props":4634,"children":4635},{"style":792},[4636],{"type":435,"value":4637},".bam\n",{"type":430,"tag":431,"props":4639,"children":4640},{},[4641],{"type":435,"value":4642},"For this example, I am using the PCGP dataset and my run command will look like the following:",{"type":430,"tag":768,"props":4644,"children":4646},{"className":770,"code":4645,"language":772,"meta":424,"style":424},"dx run dx-fastqc-example-app -i bam_file=/immediate/bam/SJBALL020073_D1.RNA-Seq.bam\n",[4647],{"type":430,"tag":775,"props":4648,"children":4649},{"__ignoreMap":424},[4650],{"type":430,"tag":779,"props":4651,"children":4652},{"class":781,"line":782},[4653,4657,4661,4665,4669],{"type":430,"tag":779,"props":4654,"children":4655},{"style":786},[4656],{"type":435,"value":3484},{"type":430,"tag":779,"props":4658,"children":4659},{"style":792},[4660],{"type":435,"value":4597},{"type":430,"tag":779,"props":4662,"children":4663},{"style":792},[4664],{"type":435,"value":4602},{"type":430,"tag":779,"props":4666,"children":4667},{"style":792},[4668],{"type":435,"value":4607},{"type":430,"tag":779,"props":4670,"children":4671},{"style":792},[4672],{"type":435,"value":4673}," bam_file=/immediate/bam/SJBALL020073_D1.RNA-Seq.bam\n",{"type":430,"tag":431,"props":4675,"children":4676},{},[4677,4679],{"type":435,"value":4678},"The input path will vary depending on how the data looks inside your DNAnexus project, but it might look like the following: ",{"type":430,"tag":775,"props":4680,"children":4682},{"className":4681},[],[4683],{"type":435,"value":4684},"/restricted/bam/\u003Cbam-file>.bam",{"type":430,"tag":431,"props":4686,"children":4687},{},[4688],{"type":435,"value":4689},"You will be prompted to confirm that you wish to run the application with the following JSON input and whether you would like to monitor the job in your terminal.",{"type":430,"tag":768,"props":4691,"children":4693},{"className":770,"code":4692,"language":772,"meta":424,"style":424},"Using input JSON:\n{\n    \"bam_file\": {\n        \"$dnanexus_link\": {\n            \"project\": \"project-FV9XFG0991ZbPVgQ2jx1vZv5\",\n            \"id\": \"file-FV9gzf8991ZXQ1kv7V3BqgjV\"\n        }\n    }\n}\n\nConfirm running the executable with this input [Y/n]: Y\nCalling applet-FVbY8Qj991ZQ1863BGK6x0bk with output destination project-FV9XFG0991ZbPVgQ2jx1vZv5:/\n\nJob ID: job-FVbY8Z0991ZXx5v1Fk3QgJPV\nWatch launched job now? [Y/n] Y\n\nJob Log\n-------\nWatching job job-FVbY8Z0991ZXx5v1Fk3QgJPV. Press Ctrl+C to stop.\n",[4694],{"type":430,"tag":775,"props":4695,"children":4696},{"__ignoreMap":424},[4697,4714,4721,4737,4761,4790,4815,4823,4830,4837,4844,4884,4915,4922,4940,4968,4975,4987,4995],{"type":430,"tag":779,"props":4698,"children":4699},{"class":781,"line":782},[4700,4705,4709],{"type":430,"tag":779,"props":4701,"children":4702},{"style":786},[4703],{"type":435,"value":4704},"Using",{"type":430,"tag":779,"props":4706,"children":4707},{"style":792},[4708],{"type":435,"value":1435},{"type":430,"tag":779,"props":4710,"children":4711},{"style":792},[4712],{"type":435,"value":4713}," JSON:\n",{"type":430,"tag":779,"props":4715,"children":4716},{"class":781,"line":819},[4717],{"type":430,"tag":779,"props":4718,"children":4719},{"style":1495},[4720],{"type":435,"value":2947},{"type":430,"tag":779,"props":4722,"children":4723},{"class":781,"line":837},[4724,4729,4733],{"type":430,"tag":779,"props":4725,"children":4726},{"style":786},[4727],{"type":435,"value":4728},"    \"bam_file\"",{"type":430,"tag":779,"props":4730,"children":4731},{"style":1340},[4732],{"type":435,"value":2759},{"type":430,"tag":779,"props":4734,"children":4735},{"style":792},[4736],{"type":435,"value":2973},{"type":430,"tag":779,"props":4738,"children":4739},{"class":781,"line":1095},[4740,4744,4749,4753,4757],{"type":430,"tag":779,"props":4741,"children":4742},{"style":786},[4743],{"type":435,"value":3005},{"type":430,"tag":779,"props":4745,"children":4746},{"style":1358},[4747],{"type":435,"value":4748},"$dnanexus_link",{"type":430,"tag":779,"props":4750,"children":4751},{"style":786},[4752],{"type":435,"value":2786},{"type":430,"tag":779,"props":4754,"children":4755},{"style":1340},[4756],{"type":435,"value":2759},{"type":430,"tag":779,"props":4758,"children":4759},{"style":792},[4760],{"type":435,"value":2973},{"type":430,"tag":779,"props":4762,"children":4763},{"class":781,"line":1114},[4764,4769,4773,4777,4782,4786],{"type":430,"tag":779,"props":4765,"children":4766},{"style":786},[4767],{"type":435,"value":4768},"            \"project\"",{"type":430,"tag":779,"props":4770,"children":4771},{"style":1340},[4772],{"type":435,"value":2759},{"type":430,"tag":779,"props":4774,"children":4775},{"style":1495},[4776],{"type":435,"value":2831},{"type":430,"tag":779,"props":4778,"children":4779},{"style":792},[4780],{"type":435,"value":4781},"project-FV9XFG0991ZbPVgQ2jx1vZv5",{"type":430,"tag":779,"props":4783,"children":4784},{"style":1495},[4785],{"type":435,"value":2786},{"type":430,"tag":779,"props":4787,"children":4788},{"style":792},[4789],{"type":435,"value":2845},{"type":430,"tag":779,"props":4791,"children":4792},{"class":781,"line":1132},[4793,4798,4802,4806,4811],{"type":430,"tag":779,"props":4794,"children":4795},{"style":786},[4796],{"type":435,"value":4797},"            \"id\"",{"type":430,"tag":779,"props":4799,"children":4800},{"style":1340},[4801],{"type":435,"value":2759},{"type":430,"tag":779,"props":4803,"children":4804},{"style":1495},[4805],{"type":435,"value":2831},{"type":430,"tag":779,"props":4807,"children":4808},{"style":792},[4809],{"type":435,"value":4810},"file-FV9gzf8991ZXQ1kv7V3BqgjV",{"type":430,"tag":779,"props":4812,"children":4813},{"style":1495},[4814],{"type":435,"value":2879},{"type":430,"tag":779,"props":4816,"children":4817},{"class":781,"line":1146},[4818],{"type":430,"tag":779,"props":4819,"children":4820},{"style":1495},[4821],{"type":435,"value":4822},"        }\n",{"type":430,"tag":779,"props":4824,"children":4825},{"class":781,"line":1412},[4826],{"type":430,"tag":779,"props":4827,"children":4828},{"style":1358},[4829],{"type":435,"value":2887},{"type":430,"tag":779,"props":4831,"children":4832},{"class":781,"line":1420},[4833],{"type":430,"tag":779,"props":4834,"children":4835},{"style":1358},[4836],{"type":435,"value":4325},{"type":430,"tag":779,"props":4838,"children":4839},{"class":781,"line":1463},[4840],{"type":430,"tag":779,"props":4841,"children":4842},{"emptyLinePlaceholder":1727},[4843],{"type":435,"value":1730},{"type":430,"tag":779,"props":4845,"children":4846},{"class":781,"line":1506},[4847,4852,4857,4861,4866,4871,4875,4879],{"type":430,"tag":779,"props":4848,"children":4849},{"style":786},[4850],{"type":435,"value":4851},"Confirm",{"type":430,"tag":779,"props":4853,"children":4854},{"style":792},[4855],{"type":435,"value":4856}," running",{"type":430,"tag":779,"props":4858,"children":4859},{"style":792},[4860],{"type":435,"value":1958},{"type":430,"tag":779,"props":4862,"children":4863},{"style":792},[4864],{"type":435,"value":4865}," executable",{"type":430,"tag":779,"props":4867,"children":4868},{"style":792},[4869],{"type":435,"value":4870}," with",{"type":430,"tag":779,"props":4872,"children":4873},{"style":792},[4874],{"type":435,"value":1933},{"type":430,"tag":779,"props":4876,"children":4877},{"style":792},[4878],{"type":435,"value":1435},{"type":430,"tag":779,"props":4880,"children":4881},{"style":1358},[4882],{"type":435,"value":4883}," [Y/n]: Y\n",{"type":430,"tag":779,"props":4885,"children":4886},{"class":781,"line":1514},[4887,4892,4897,4901,4905,4910],{"type":430,"tag":779,"props":4888,"children":4889},{"style":786},[4890],{"type":435,"value":4891},"Calling",{"type":430,"tag":779,"props":4893,"children":4894},{"style":792},[4895],{"type":435,"value":4896}," applet-FVbY8Qj991ZQ1863BGK6x0bk",{"type":430,"tag":779,"props":4898,"children":4899},{"style":792},[4900],{"type":435,"value":4870},{"type":430,"tag":779,"props":4902,"children":4903},{"style":792},[4904],{"type":435,"value":1622},{"type":430,"tag":779,"props":4906,"children":4907},{"style":792},[4908],{"type":435,"value":4909}," destination",{"type":430,"tag":779,"props":4911,"children":4912},{"style":792},[4913],{"type":435,"value":4914}," project-FV9XFG0991ZbPVgQ2jx1vZv5:/\n",{"type":430,"tag":779,"props":4916,"children":4917},{"class":781,"line":1562},[4918],{"type":430,"tag":779,"props":4919,"children":4920},{"emptyLinePlaceholder":1727},[4921],{"type":435,"value":1730},{"type":430,"tag":779,"props":4923,"children":4924},{"class":781,"line":1600},[4925,4930,4935],{"type":430,"tag":779,"props":4926,"children":4927},{"style":786},[4928],{"type":435,"value":4929},"Job",{"type":430,"tag":779,"props":4931,"children":4932},{"style":792},[4933],{"type":435,"value":4934}," ID:",{"type":430,"tag":779,"props":4936,"children":4937},{"style":792},[4938],{"type":435,"value":4939}," job-FVbY8Z0991ZXx5v1Fk3QgJPV\n",{"type":430,"tag":779,"props":4941,"children":4942},{"class":781,"line":1608},[4943,4948,4953,4958,4963],{"type":430,"tag":779,"props":4944,"children":4945},{"style":786},[4946],{"type":435,"value":4947},"Watch",{"type":430,"tag":779,"props":4949,"children":4950},{"style":792},[4951],{"type":435,"value":4952}," launched",{"type":430,"tag":779,"props":4954,"children":4955},{"style":792},[4956],{"type":435,"value":4957}," job",{"type":430,"tag":779,"props":4959,"children":4960},{"style":792},[4961],{"type":435,"value":4962}," now?",{"type":430,"tag":779,"props":4964,"children":4965},{"style":1358},[4966],{"type":435,"value":4967}," [Y/n] Y\n",{"type":430,"tag":779,"props":4969,"children":4970},{"class":781,"line":1646},[4971],{"type":430,"tag":779,"props":4972,"children":4973},{"emptyLinePlaceholder":1727},[4974],{"type":435,"value":1730},{"type":430,"tag":779,"props":4976,"children":4977},{"class":781,"line":1683},[4978,4982],{"type":430,"tag":779,"props":4979,"children":4980},{"style":786},[4981],{"type":435,"value":4929},{"type":430,"tag":779,"props":4983,"children":4984},{"style":792},[4985],{"type":435,"value":4986}," Log\n",{"type":430,"tag":779,"props":4988,"children":4989},{"class":781,"line":1723},[4990],{"type":430,"tag":779,"props":4991,"children":4992},{"style":786},[4993],{"type":435,"value":4994},"-------\n",{"type":430,"tag":779,"props":4996,"children":4997},{"class":781,"line":1733},[4998,5003,5007,5012,5017,5022,5026],{"type":430,"tag":779,"props":4999,"children":5000},{"style":786},[5001],{"type":435,"value":5002},"Watching",{"type":430,"tag":779,"props":5004,"children":5005},{"style":792},[5006],{"type":435,"value":4957},{"type":430,"tag":779,"props":5008,"children":5009},{"style":792},[5010],{"type":435,"value":5011}," job-FVbY8Z0991ZXx5v1Fk3QgJPV.",{"type":430,"tag":779,"props":5013,"children":5014},{"style":792},[5015],{"type":435,"value":5016}," Press",{"type":430,"tag":779,"props":5018,"children":5019},{"style":792},[5020],{"type":435,"value":5021}," Ctrl+C",{"type":430,"tag":779,"props":5023,"children":5024},{"style":792},[5025],{"type":435,"value":1953},{"type":430,"tag":779,"props":5027,"children":5028},{"style":792},[5029],{"type":435,"value":5030}," stop.\n",{"type":430,"tag":431,"props":5032,"children":5033},{},[5034],{"type":435,"value":5035},"You can also monitor active jobs by going to the project space and selecting the \"Monitor\" tab.",{"type":430,"tag":431,"props":5037,"children":5038},{},[5039],{"type":430,"tag":536,"props":5040,"children":5042},{"alt":538,"src":5041},"/img/genomics-platform/analyzing-data/creating-a-cloud-app/creating-a-cloud-app-3.png",[],{"type":430,"tag":478,"props":5044,"children":5046},{"id":5045},"job-completion",[5047],{"type":435,"value":5048},"Job Completion",{"type":430,"tag":431,"props":5050,"children":5051},{},[5052,5054,5060],{"type":435,"value":5053},"Once the job finishes, you will receive an email from DNAnexus (",{"type":430,"tag":458,"props":5055,"children":5057},{"href":5056},"mailto:notification@dnanexus.com",[5058],{"type":435,"value":5059},"notification@dnanexus.com",{"type":435,"value":5061},") about whether the job has completed successfully or failed.",{"type":430,"tag":431,"props":5063,"children":5064},{},[5065],{"type":435,"value":5066},"Make sure to check that these emails don't get sent to your spam folder.",{"type":430,"tag":431,"props":5068,"children":5069},{},[5070],{"type":430,"tag":536,"props":5071,"children":5073},{"alt":538,"src":5072},"/img/genomics-platform/analyzing-data/creating-a-cloud-app/creating-a-cloud-app-4.png",[],{"type":430,"tag":431,"props":5075,"children":5076},{},[5077],{"type":435,"value":5078},"Clicking the links in the email should open up a new tab in your browser and take you to the appropriate project.\nHere, we can see that FastQC has run successfully and that the two files generated by FastQC have been uploaded back into our project space.",{"type":430,"tag":431,"props":5080,"children":5081},{},[5082],{"type":430,"tag":536,"props":5083,"children":5085},{"alt":538,"src":5084},"/img/genomics-platform/analyzing-data/creating-a-cloud-app/creating-a-cloud-app-5.png",[],{"type":430,"tag":431,"props":5087,"children":5088},{},[5089,5091,5096],{"type":435,"value":5090},"Again, if we run the ",{"type":430,"tag":775,"props":5092,"children":5094},{"className":5093},[],[5095],{"type":435,"value":4409},{"type":435,"value":5097}," command, we can verify that two new files titled \"fastqc-report.html\" and \"fastqc-report.zip\" are in the root directory of our project.",{"type":430,"tag":768,"props":5099,"children":5101},{"className":770,"code":5100,"language":772,"meta":424,"style":424},".\n├── immediate/\n│   └── ...\n├── dx-fastqc-example-app\n├── fastqc-report.html\n├── fastqc-report.zip\n└── SAMPLE_INFO.txt\n",[5102],{"type":430,"tag":775,"props":5103,"children":5104},{"__ignoreMap":424},[5105,5112,5123,5138,5149,5161,5173],{"type":430,"tag":779,"props":5106,"children":5107},{"class":781,"line":782},[5108],{"type":430,"tag":779,"props":5109,"children":5110},{"style":1340},[5111],{"type":435,"value":972},{"type":430,"tag":779,"props":5113,"children":5114},{"class":781,"line":819},[5115,5119],{"type":430,"tag":779,"props":5116,"children":5117},{"style":786},[5118],{"type":435,"value":1075},{"type":430,"tag":779,"props":5120,"children":5121},{"style":792},[5122],{"type":435,"value":4476},{"type":430,"tag":779,"props":5124,"children":5125},{"class":781,"line":837},[5126,5130,5134],{"type":430,"tag":779,"props":5127,"children":5128},{"style":786},[5129],{"type":435,"value":1101},{"type":430,"tag":779,"props":5131,"children":5132},{"style":792},[5133],{"type":435,"value":1106},{"type":430,"tag":779,"props":5135,"children":5136},{"style":792},[5137],{"type":435,"value":2546},{"type":430,"tag":779,"props":5139,"children":5140},{"class":781,"line":1095},[5141,5145],{"type":430,"tag":779,"props":5142,"children":5143},{"style":786},[5144],{"type":435,"value":1075},{"type":430,"tag":779,"props":5146,"children":5147},{"style":792},[5148],{"type":435,"value":1334},{"type":430,"tag":779,"props":5150,"children":5151},{"class":781,"line":1114},[5152,5156],{"type":430,"tag":779,"props":5153,"children":5154},{"style":786},[5155],{"type":435,"value":1075},{"type":430,"tag":779,"props":5157,"children":5158},{"style":792},[5159],{"type":435,"value":5160}," fastqc-report.html\n",{"type":430,"tag":779,"props":5162,"children":5163},{"class":781,"line":1132},[5164,5168],{"type":430,"tag":779,"props":5165,"children":5166},{"style":786},[5167],{"type":435,"value":1075},{"type":430,"tag":779,"props":5169,"children":5170},{"style":792},[5171],{"type":435,"value":5172}," fastqc-report.zip\n",{"type":430,"tag":779,"props":5174,"children":5175},{"class":781,"line":1146},[5176,5180],{"type":430,"tag":779,"props":5177,"children":5178},{"style":786},[5179],{"type":435,"value":1138},{"type":430,"tag":779,"props":5181,"children":5182},{"style":792},[5183],{"type":435,"value":4514},{"type":430,"tag":478,"props":5185,"children":5187},{"id":5186},"conclusion",[5188],{"type":435,"value":5189},"Conclusion",{"type":430,"tag":431,"props":5191,"children":5192},{},[5193,5195,5201],{"type":435,"value":5194},"If you have made it this far, you have likely wrapped your first genomic analysis tool for use in the cloud.\nFor your reference, we have included the final FastQC application at the ",{"type":430,"tag":458,"props":5196,"children":5198},{"href":460,"rel":5197},[462],[5199],{"type":435,"value":5200},"St. Jude App Tutorial Repository",{"type":435,"value":520},{"type":430,"tag":431,"props":5203,"children":5204},{},[5205,5207,5213],{"type":435,"value":5206},"If you have any questions or suggestions on how we can improve this tutorial, please email us at ",{"type":430,"tag":458,"props":5208,"children":5210},{"href":5209},"mailto:support@stjude.cloud",[5211],{"type":435,"value":5212},"support@stjude.cloud",{"type":435,"value":520},{"type":430,"tag":478,"props":5215,"children":5217},{"id":5216},"similar-topics",[5218],{"type":435,"value":5219},"Similar Topics",{"type":430,"tag":431,"props":5221,"children":5222},{},[5223,5228,5231,5235,5238,5243,5246,5250,5253],{"type":430,"tag":458,"props":5224,"children":5225},{"href":55},[5226],{"type":435,"value":5227},"About our Data",{"type":430,"tag":452,"props":5229,"children":5230},{},[],{"type":430,"tag":458,"props":5232,"children":5233},{"href":40},[5234],{"type":435,"value":39},{"type":430,"tag":452,"props":5236,"children":5237},{},[],{"type":430,"tag":458,"props":5239,"children":5240},{"href":67},[5241],{"type":435,"value":5242},"Working with our Data Overview",{"type":430,"tag":452,"props":5244,"children":5245},{},[],{"type":430,"tag":458,"props":5247,"children":5248},{"href":70},[5249],{"type":435,"value":69},{"type":430,"tag":452,"props":5251,"children":5252},{},[],{"type":430,"tag":458,"props":5254,"children":5255},{"href":86},[5256],{"type":435,"value":85},{"type":430,"tag":5258,"props":5259,"children":5260},"style",{},[5261],{"type":435,"value":5262},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":424,"searchDepth":819,"depth":819,"links":5264},[5265,5266,5267,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281],{"id":480,"depth":819,"text":5},{"id":523,"depth":819,"text":526},{"id":580,"depth":819,"text":583,"children":5268},[5269,5270],{"id":587,"depth":837,"text":590},{"id":902,"depth":837,"text":905},{"id":1202,"depth":819,"text":1205},{"id":2119,"depth":819,"text":2122},{"id":2332,"depth":819,"text":2335},{"id":2601,"depth":819,"text":2604},{"id":3343,"depth":819,"text":3346},{"id":3627,"depth":819,"text":3630},{"id":4328,"depth":819,"text":4331},{"id":4563,"depth":819,"text":4566},{"id":5045,"depth":819,"text":5048},{"id":5186,"depth":819,"text":5189},{"id":5216,"depth":819,"text":5219},"markdown","content:3.genomics-platform:4.analyzing-data:3.creating-a-cloud-app.md","content","3.genomics-platform/4.analyzing-data/3.creating-a-cloud-app.md","3.genomics-platform/4.analyzing-data/3.creating-a-cloud-app","md",[5289,5291],{"_path":89,"title":88,"description":5290},"In this guide, we will explain generally how to run, from end-to-end, any of our in house analysis workflows from within the DNAnexus cloud ecosystem.\nThe DNAnexus genomic ecosystem is the backbone for the computation and storage in St. Jude Cloud\nIf you'd like, you can read an introduction to the DNAnexus ecosystem here.\nIf you haven't already, follow this guide to request access to St. Jude data in this secure cloud ecosystem.",{"_path":95,"title":5292,"description":5293},"Interactive Nodes in the Cloud","Apart from creating and running cloud apps, you can request an interactive node in the cloud to use for iterative development.\nThis can be particularly useful if you want to run some quick analyses on the cloud, want to run tools without creating an app, or want to submit jobs similar to bsub on the local St. Jude HPC.",1791243632955]