wdl-doc 0.10.0

Documentation generator for Workflow Description Language (WDL) documents.
Documentation
<!DOCTYPE html><html x-data="{ DEFAULT_THEME: '' }" x-bind:class="(localStorage.getItem('theme') ?? DEFAULT_THEME) === 'light' ? 'light' : ''" x-cloak><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>get_read_groups</title><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&amp;display=swap" rel="stylesheet"><script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/persist@3.x.x/dist/cdn.min.js"></script><script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script><script defer src="../../index.js"></script><link rel="stylesheet" type="text/css" href="../../style.css"></head><body class="body--base"><div class="layout__container layout__container--alt-layout" x-transition x-data="{
                sidebarState: $persist(window.innerWidth &lt; 768 ? 'hidden' : 'normal').using(sessionStorage),
                get showSidebarButtons() { return this.sidebarState !== 'hidden'; },
                get showCenterButtons() { return this.sidebarState === 'hidden'; },
                get containerClasses() {
                    const base = 'layout__container layout__container--alt-layout';
                    switch(this.sidebarState) {
                        case 'hidden': return base + ' layout__container--left-hidden';
                        case 'xl': return base + ' layout__container--left-xl';
                        default: return base;
                    }
                },
                getSidebarButtonClass(state) {
                    return 'left-sidebar__size-button ' + (this.sidebarState === state ? 'left-sidebar__size-button--active' : '');
                },
                collapseSidebar() { this.sidebarState = 'hidden'; },
                restoreSidebar() { this.sidebarState = 'normal'; },
                expandSidebar() { this.sidebarState = 'xl'; }
            }" x-bind:class="containerClasses"><div class="layout__sidebar-left" x-transition><div class="absolute top-5 right-2 flex gap-1 z-10" x-cloak x-show="showSidebarButtons"><button x-on:click="collapseSidebar()" x-bind:disabled="sidebarState === 'hidden'" x-bind:class="getSidebarButtonClass('hidden')"><img src="../../assets/sidebar-icon-hide.svg" alt="" class="block light:hidden"></img><img src="../../assets/sidebar-icon-hide.light.svg" alt="" class="hidden light:block"></img></button><button x-on:click="restoreSidebar()" x-bind:disabled="sidebarState === 'normal'" x-bind:class="getSidebarButtonClass('normal')"><img src="../../assets/sidebar-icon-default.svg" alt="" class="block light:hidden"></img><img src="../../assets/sidebar-icon-default.light.svg" alt="" class="hidden light:block"></img></button><button x-on:click="expandSidebar()" x-bind:disabled="sidebarState === 'xl'" x-bind:class="getSidebarButtonClass('xl')"><img src="../../assets/sidebar-icon-expand.svg" alt="" class="block light:hidden"></img><img src="../../assets/sidebar-icon-expand.light.svg" alt="" class="hidden light:block"></img></button></div><div x-data="{
                showWorkflows: $persist(false).using(sessionStorage),
                search: $persist('').using(sessionStorage),
                dirOpen: '../../assets/chevron-up.svg',
                dirClosed: '../../assets/chevron-down.svg',
                nodes: [{&quot;key&quot;:&quot;data_structures&quot;,&quot;display_name&quot;:&quot;data_structures&quot;,&quot;parent&quot;:&quot;&quot;,&quot;search_name&quot;:&quot;&quot;,&quot;icon&quot;:null,&quot;href&quot;:null,&quot;ancestor&quot;:true,&quot;current&quot;:false,&quot;nest_level&quot;:1,&quot;children&quot;:[&quot;data_structures_flag_filter&quot;,&quot;data_structures_read_group&quot;]}, {&quot;key&quot;:&quot;data_structures_flag_filter&quot;,&quot;display_name&quot;:&quot;flag_filter&quot;,&quot;parent&quot;:&quot;data_structures/flag_filter&quot;,&quot;search_name&quot;:&quot;data_structures/flag_filter/index.html&quot;,&quot;icon&quot;:&quot;../../assets/wdl-dir-unselected.svg&quot;,&quot;href&quot;:&quot;../flag_filter/index.html&quot;,&quot;ancestor&quot;:false,&quot;current&quot;:false,&quot;nest_level&quot;:2,&quot;children&quot;:[&quot;data_structures_flag_filter_FlagFilter_struct_html&quot;,&quot;data_structures_flag_filter_validate_flag_filter_workflow_html&quot;,&quot;data_structures_flag_filter_validate_string_is_12bit_oct_dec_or_hex_task_html&quot;]}, {&quot;key&quot;:&quot;data_structures_flag_filter_FlagFilter_struct_html&quot;,&quot;display_name&quot;:&quot;FlagFilter&quot;,&quot;parent&quot;:&quot;data_structures/flag_filter&quot;,&quot;search_name&quot;:&quot;data_structures/flag_filter/FlagFilter-struct.html&quot;,&quot;icon&quot;:&quot;../../assets/struct-unselected.svg&quot;,&quot;href&quot;:&quot;../flag_filter/FlagFilter-struct.html&quot;,&quot;ancestor&quot;:false,&quot;current&quot;:false,&quot;nest_level&quot;:3,&quot;children&quot;:[]}, {&quot;key&quot;:&quot;data_structures_flag_filter_validate_flag_filter_workflow_html&quot;,&quot;display_name&quot;:&quot;validate_flag_filter&quot;,&quot;parent&quot;:&quot;data_structures/flag_filter&quot;,&quot;search_name&quot;:&quot;data_structures/flag_filter/validate_flag_filter-workflow.html&quot;,&quot;icon&quot;:&quot;../../assets/workflow-unselected.svg&quot;,&quot;href&quot;:&quot;../flag_filter/validate_flag_filter-workflow.html&quot;,&quot;ancestor&quot;:false,&quot;current&quot;:false,&quot;nest_level&quot;:3,&quot;children&quot;:[]}, {&quot;key&quot;:&quot;data_structures_flag_filter_validate_string_is_12bit_oct_dec_or_hex_task_html&quot;,&quot;display_name&quot;:&quot;validate_string_is_12bit_oct_dec_or_hex&quot;,&quot;parent&quot;:&quot;data_structures/flag_filter&quot;,&quot;search_name&quot;:&quot;data_structures/flag_filter/validate_string_is_12bit_oct_dec_or_hex-task.html&quot;,&quot;icon&quot;:&quot;../../assets/task-unselected.svg&quot;,&quot;href&quot;:&quot;../flag_filter/validate_string_is_12bit_oct_dec_or_hex-task.html&quot;,&quot;ancestor&quot;:false,&quot;current&quot;:false,&quot;nest_level&quot;:3,&quot;children&quot;:[]}, {&quot;key&quot;:&quot;data_structures_read_group&quot;,&quot;display_name&quot;:&quot;read_group&quot;,&quot;parent&quot;:&quot;data_structures/read_group&quot;,&quot;search_name&quot;:&quot;data_structures/read_group/index.html&quot;,&quot;icon&quot;:&quot;../../assets/wdl-dir-selected.svg&quot;,&quot;href&quot;:&quot;index.html&quot;,&quot;ancestor&quot;:true,&quot;current&quot;:false,&quot;nest_level&quot;:2,&quot;children&quot;:[&quot;data_structures_read_group_ReadGroup_struct_html&quot;,&quot;data_structures_read_group_get_read_groups_task_html&quot;,&quot;data_structures_read_group_read_group_to_string_task_html&quot;,&quot;data_structures_read_group_validate_read_group_task_html&quot;]}, {&quot;key&quot;:&quot;data_structures_read_group_ReadGroup_struct_html&quot;,&quot;display_name&quot;:&quot;ReadGroup&quot;,&quot;parent&quot;:&quot;data_structures/read_group&quot;,&quot;search_name&quot;:&quot;data_structures/read_group/ReadGroup-struct.html&quot;,&quot;icon&quot;:&quot;../../assets/struct-unselected.svg&quot;,&quot;href&quot;:&quot;ReadGroup-struct.html&quot;,&quot;ancestor&quot;:false,&quot;current&quot;:false,&quot;nest_level&quot;:3,&quot;children&quot;:[]}, {&quot;key&quot;:&quot;data_structures_read_group_get_read_groups_task_html&quot;,&quot;display_name&quot;:&quot;get_read_groups&quot;,&quot;parent&quot;:&quot;data_structures/read_group&quot;,&quot;search_name&quot;:&quot;data_structures/read_group/get_read_groups-task.html&quot;,&quot;icon&quot;:&quot;../../assets/task-selected.svg&quot;,&quot;href&quot;:&quot;get_read_groups-task.html&quot;,&quot;ancestor&quot;:true,&quot;current&quot;:true,&quot;nest_level&quot;:3,&quot;children&quot;:[]}, {&quot;key&quot;:&quot;data_structures_read_group_read_group_to_string_task_html&quot;,&quot;display_name&quot;:&quot;read_group_to_string&quot;,&quot;parent&quot;:&quot;data_structures/read_group&quot;,&quot;search_name&quot;:&quot;data_structures/read_group/read_group_to_string-task.html&quot;,&quot;icon&quot;:&quot;../../assets/task-unselected.svg&quot;,&quot;href&quot;:&quot;read_group_to_string-task.html&quot;,&quot;ancestor&quot;:false,&quot;current&quot;:false,&quot;nest_level&quot;:3,&quot;children&quot;:[]}, {&quot;key&quot;:&quot;data_structures_read_group_validate_read_group_task_html&quot;,&quot;display_name&quot;:&quot;validate_read_group&quot;,&quot;parent&quot;:&quot;data_structures/read_group&quot;,&quot;search_name&quot;:&quot;data_structures/read_group/validate_read_group-task.html&quot;,&quot;icon&quot;:&quot;../../assets/task-unselected.svg&quot;,&quot;href&quot;:&quot;validate_read_group-task.html&quot;,&quot;ancestor&quot;:false,&quot;current&quot;:false,&quot;nest_level&quot;:3,&quot;children&quot;:[]}],
                get searchedNodes() {
                    if (this.search === '') {
                        return [];
                    }
                    this.showWorkflows = false;
                    return this.nodes.filter(node =&gt; node.search_name.toLowerCase().includes(this.search.toLowerCase()));
                },
                get shownNodes() {
                    if (this.search !== '') {
                        return [];
                    }
                    return this.nodes.filter(node =&gt; this.showSelfCache[node.key]);
                },
                dag: {'data_structures': ['data_structures_flag_filter', 'data_structures_read_group'], 'data_structures_flag_filter': ['data_structures_flag_filter_FlagFilter_struct_html', 'data_structures_flag_filter_validate_flag_filter_workflow_html', 'data_structures_flag_filter_validate_string_is_12bit_oct_dec_or_hex_task_html'], 'data_structures_flag_filter_FlagFilter_struct_html': [], 'data_structures_flag_filter_validate_flag_filter_workflow_html': [], 'data_structures_flag_filter_validate_string_is_12bit_oct_dec_or_hex_task_html': [], 'data_structures_read_group': ['data_structures_read_group_ReadGroup_struct_html', 'data_structures_read_group_get_read_groups_task_html', 'data_structures_read_group_read_group_to_string_task_html', 'data_structures_read_group_validate_read_group_task_html'], 'data_structures_read_group_ReadGroup_struct_html': [], 'data_structures_read_group_get_read_groups_task_html': [], 'data_structures_read_group_read_group_to_string_task_html': [], 'data_structures_read_group_validate_read_group_task_html': []},
                showSelfCache: $persist({'data_structures': true, 'data_structures_flag_filter': true, 'data_structures_flag_filter_FlagFilter_struct_html': true, 'data_structures_flag_filter_validate_flag_filter_workflow_html': true, 'data_structures_flag_filter_validate_string_is_12bit_oct_dec_or_hex_task_html': true, 'data_structures_read_group': true, 'data_structures_read_group_ReadGroup_struct_html': true, 'data_structures_read_group_get_read_groups_task_html': true, 'data_structures_read_group_read_group_to_string_task_html': true, 'data_structures_read_group_validate_read_group_task_html': true}).using(sessionStorage),
                showChildrenCache: $persist({'data_structures': true, 'data_structures_flag_filter': true, 'data_structures_flag_filter_FlagFilter_struct_html': true, 'data_structures_flag_filter_validate_flag_filter_workflow_html': true, 'data_structures_flag_filter_validate_string_is_12bit_oct_dec_or_hex_task_html': true, 'data_structures_read_group': true, 'data_structures_read_group_ReadGroup_struct_html': true, 'data_structures_read_group_get_read_groups_task_html': true, 'data_structures_read_group_read_group_to_string_task_html': true, 'data_structures_read_group_validate_read_group_task_html': true}).using(sessionStorage),
                children(key) {
                    return this.dag[key];
                },
                toggleChildren(key) {
                    this.nodes.forEach(n =&gt; {
                        if (n.key === key) {
                            this.showChildrenCache[key] = !this.showChildrenCache[key];
                            this.children(key).forEach(child =&gt; {
                                this.setShow(child, this.showChildrenCache[key]);
                            });
                        }
                    });
                },
                setShow(key, value) {
                    this.nodes.forEach(n =&gt; {
                        if (n.key === key) {
                            this.showSelfCache[key] = value;
                            this.showChildrenCache[key] = value;
                            this.children(key).forEach(child =&gt; {
                                this.setShow(child, value);
                            });
                        }
                    });
                },
                reset() {
                    this.nodes.forEach(n =&gt; {
                        this.showSelfCache[n.key] = true;
                        this.showChildrenCache[n.key] = true;
                    });
                }
            }" x-cloak x-init="$nextTick(() =&gt; { document.querySelector('.is-scrolled-to')?.scrollIntoView({ block: 'center', behavior: 'instant' }); })" class="left-sidebar__container"><div class="sticky px-4"><a href="../../index.html"><img src="../../assets/logo.svg" class="w-[120px] flex-none mb-8 block light:hidden" alt="Logo"><img src="../../assets/logo.light.svg" class="w-[120px] flex-none mb-8 hidden light:block" alt="Logo"></a><div class="relative w-full h-10"><input id="searchbox" x-model.debounce="search" type="text" placeholder="Search..." class="left-sidebar__searchbox"><img src="../../assets/search.svg" class="absolute left-2 top-1/2 -translate-y-1/2 size-6 pointer-events-none block light:hidden" alt="Search icon"><img src="../../assets/search.light.svg" class="absolute left-2 top-1/2 -translate-y-1/2 size-6 pointer-events-none hidden light:block" alt="Search icon"><img src="../../assets/x-mark.svg" class="absolute right-2 top-1/2 -translate-y-1/2 size-6 hover:cursor-pointer block light:hidden" alt="Clear icon" x-show="search !== ''" x-on:click="search = ''"><img src="../../assets/x-mark.light.svg" class="absolute right-2 top-1/2 -translate-y-1/2 size-6 hover:cursor-pointer hidden light:block" alt="Clear icon" x-show="search !== ''" x-on:click="search = ''"></div><div class="left-sidebar__tabs-container mt-4"><button x-on:click="showWorkflows = true; search = ''; $nextTick(() =&gt; { document.querySelector('.is-scrolled-to')?.scrollIntoView({ block: 'center', behavior: 'instant' }); })" class="left-sidebar__tabs text-slate-50 border-b-slate-50" x-bind:class="! showWorkflows ? 'opacity-40 light:opacity-60 hover:opacity-80' : ''"><img src="../../assets/list-bullet-selected.svg" class="left-sidebar__icon block light:hidden" alt="List icon"><img src="../../assets/list-bullet-selected.light.svg" class="left-sidebar__icon hidden light:block" alt="List icon"><p>Workflows</p></button><button x-on:click="showWorkflows = false; $nextTick(() =&gt; { document.querySelector('.is-scrolled-to')?.scrollIntoView({ block: 'center', behavior: 'instant' }); })" class="left-sidebar__tabs text-slate-50 border-b-slate-50" x-bind:class="showWorkflows ? 'opacity-50 light:opacity-60 hover:opacity-80' : ''"><img src="../../assets/folder-selected.svg" class="left-sidebar__icon block light:hidden" alt="List icon"><img src="../../assets/folder-selected.light.svg" class="left-sidebar__icon hidden light:block" alt="List icon"><p>Full Directory</p></button></div></div><div x-cloak class="left-sidebar__content-container pt-4"><ul x-show="! showWorkflows || search != ''" class="left-sidebar__content"><sprocket-tooltip content="docs" class="block"><a href="../../index.html" x-show="search === ''" aria-label="docs" class="left-sidebar__row hover:bg-slate-700/40"><div class="left-sidebar__content-item-container crop-ellipsis"><div class="relative shrink-0"><img src="../../assets/dir-open.svg" class="left-sidebar__icon block light:hidden" alt="Directory icon"><img src="../../assets/dir-open.light.svg" class="left-sidebar__icon hidden light:block" alt="Directory icon"></div><div class="text-slate-50">docs</div></div></a></sprocket-tooltip><template x-for="node in shownNodes"><sprocket-tooltip x-bind:content="node.display_name" class="block isolate"><a x-bind:href="node.href" x-show="showSelfCache[node.key]" x-on:click="if (node.href === null) toggleChildren(node.key)" x-bind:aria-label="node.display_name" class="left-sidebar__row" x-bind:class="`${node.current ? 'is-scrolled-to left-sidebar__row--active' : (node.href === null) ? showChildrenCache[node.key] ? 'left-sidebar__row-folder left-sidebar__row-folder--open' : 'left-sidebar__row-folder left-sidebar__row-folder--closed' : 'left-sidebar__row-page'} ${node.ancestor ? 'left-sidebar__content-item-container--ancestor' : ''}`"><template x-for="i in Array.from({ length: node.nest_level })"><div class="left-sidebar__indent -z-1"></div></template><div class="left-sidebar__content-item-container crop-ellipsis"><div class="relative left-sidebar__icon shrink-0"><img x-bind:src="node.icon || dirOpen" class="left-sidebar__icon block light:hidden" alt="Node icon" x-bind:class="`${(node.icon === null) &amp;&amp; !showChildrenCache[node.key] ? 'rotate-180' : ''}`"><img x-bind:src="(node.icon || dirOpen).replace('.svg', '.light.svg')" class="left-sidebar__icon hidden light:block" alt="Node icon" x-bind:class="`${(node.icon === null) &amp;&amp; !showChildrenCache[node.key] ? 'rotate-180' : ''}`"></div><div class="crop-ellipsis" x-text="node.display_name"></div></div></a></sprocket-tooltip></template><template x-for="node in searchedNodes"><li class="left-sidebar__search-result-item"><p class="text-xs text-slate-500 crop-ellipsis" x-text="node.parent"></p><div class="left-sidebar__search-result-item-container"><img x-bind:src="node.icon" class="left-sidebar__icon" alt="Node icon"><sprocket-tooltip class="crop-ellipsis" x-bind:content="node.display_name"><a x-bind:href="node.href" x-text="node.display_name"></a></sprocket-tooltip></div></li></template><li x-show="search !== '' &amp;&amp; searchedNodes.length === 0" class="flex place-content-center"><img src="../../assets/search.svg" class="size-8 block light:hidden" alt="Search icon"><img src="../../assets/search.light.svg" class="size-8 hidden light:block" alt="Search icon"></li><li x-show="search !== '' &amp;&amp; searchedNodes.length === 0" class="flex gap-1 place-content-center text-center break-words whitespace-normal text-sm text-slate-500"><span x-text="'No results found for'"></span><span x-text="`&quot;${search}&quot;`" class="text-slate-50"></span></li></ul><ul x-show="showWorkflows &amp;&amp; search === ''" class="left-sidebar__content"><li class=""><div class="left-sidebar__row left-sidebar__row--unclickable"><img src="../../assets/category-selected.svg" class="left-sidebar__icon block light:hidden" alt="Category icon"><img src="../../assets/category-selected.light.svg" class="left-sidebar__icon hidden light:block" alt="Category icon"><p class="text-slate-50">Other</p></div><ul class=""><a href="../flag_filter/validate_flag_filter-workflow.html" x-data="{
                                    node: {
                                        current: false,
                                        icon: '../../assets/workflow-unselected.svg',
                                    }
                                }" class="left-sidebar__row" x-bind:class="node.current ? 'bg-slate-600/50 is-scrolled-to' : 'hover:bg-slate-700/40'"><div class="left-sidebar__indent -1"></div><div class="left-sidebar__content-item-container crop-ellipsis"><img x-bind:src="node.icon" class="left-sidebar__icon light:hidden" alt="Workflow icon"><img x-bind:src="node.icon?.replace('.svg', '.light.svg')" class="left-sidebar__icon hidden light:block" alt="Workflow icon"><sprocket-tooltip content="validate_flag_filter" class="crop-ellipsis" x-bind:class="node.current ? 'text-slate-50' : 'group-hover:text-slate-50'"><span>validate_flag_filter</span></sprocket-tooltip></div></a></ul></li></ul></div></div></div><div class="layout__main-center"><div class="layout__main-center-content"><div><div class="flex gap-1 mb-3" x-show="showCenterButtons"><button x-on:click="collapseSidebar()" x-bind:disabled="sidebarState === 'hidden'" x-bind:class="getSidebarButtonClass('hidden')"><img src="../../assets/sidebar-icon-hide.svg" alt="" class="block light:hidden"></img><img src="../../assets/sidebar-icon-hide.light.svg" alt="" class="hidden light:block"></img></button><button x-on:click="restoreSidebar()" x-bind:disabled="sidebarState === 'normal'" x-bind:class="getSidebarButtonClass('normal')"><img src="../../assets/sidebar-icon-default.svg" alt="" class="block light:hidden"></img><img src="../../assets/sidebar-icon-default.light.svg" alt="" class="hidden light:block"></img></button><button x-on:click="expandSidebar()" x-bind:disabled="sidebarState === 'xl'" x-bind:class="getSidebarButtonClass('xl')"><img src="../../assets/sidebar-icon-expand.svg" alt="" class="block light:hidden"></img><img src="../../assets/sidebar-icon-expand.light.svg" alt="" class="hidden light:block"></img></button></div><div class="flex flex-row-reverse items-start justify-between"><button x-on:click="
                                document.documentElement.classList.toggle('light')
                                localStorage.setItem('theme', document.documentElement.classList.contains('light') ? 'light' : 'dark')
                                " class="border border-slate-700 rounded-md h-8 flex items-center justify-center text-slate-300 text-lg w-8 cursor-pointer hover:border-slate-500">☀︎</button><div class="layout__breadcrumbs"><div class="layout__breadcrumb-container"><a class="layout__breadcrumb-clickable" href="../../index.html">docs</a><span> / </span><span class="layout__breadcrumb-inactive">data_structures</span><span> / </span><a href="index.html" class="layout__breadcrumb-clickable">read_group</a><span> / </span><span class="layout__breadcrumb-inactive">get_read_groups</span></div></div></div></div><div class="main__container"><span class="text-brand-violet-400">Task</span><h1 id="title" class="main__title"><code>get_read_groups</code></h1><div class="markdown-body mb-4">Gets read group information from a BAM file and writes it out as JSON which is converted to a WDL struct.</div><div class="main__badge-container"><div class="main__badge"><span class="main__badge-text">WDL Version</span><div class="main__badge-inner"><span class="main__badge-inner-text">1.1</span></div></div></div><div x-data="{ unix: true }" class="main__run-with-container"><div class="main__run-with-label"><span class="main__run-with-label-text">RUN WITH</span><button x-on:click="unix = !unix" class="main__run-with-toggle"><div x-bind:class="unix ? 'main__run-with-toggle-label--active' : 'main__run-with-toggle-label--inactive'">Unix</div><div x-bind:class="!unix ? 'main__run-with-toggle-label--active' : 'main__run-with-toggle-label--inactive'">Windows</div></button></div><div class="main__run-with-content"><p class="main__run-with-content-text">sprocket run --entrypoint get_read_groups <span x-show="unix">data_structures/read_group.wdl</span><span x-show="!unix">data_structures\read_group.wdl</span> [INPUTS]...</p></div></div><div class="main__section"><h2 id="inputs" class="main__section-header">Inputs</h2><h3 id="required-inputs" class="main__section-subheader">Required Inputs</h3><div class="main__grid-container"><div class="main__grid-req-inputs-container"><div class="main__grid-header-cell">Name</div><div class="main__grid-header-cell">Type</div><div class="main__grid-header-cell">Description</div><div class="main__grid-header-separator"></div><div class="main__grid-row" x-data="{ description_expanded: false }"><div class="main__grid-cell"><code>bam</code></div><div class="main__grid-cell"><code>File</code></div><div class="main__grid-cell">Input BAM format file to get read groups from</div><div x-show="description_expanded" class="main__grid-full-width-cell">Input BAM format file to get read groups from</div></div></div></div><h3 id="other-inputs" class="main__section-subheader">Other Inputs</h3><div class="main__grid-container"><div class="main__grid-non-req-param-container"><div class="main__grid-header-cell">Name</div><div class="main__grid-header-cell">Type</div><div class="main__grid-header-cell">Default</div><div class="main__grid-header-cell">Description</div><div class="main__grid-header-separator"></div><div class="main__grid-row" x-data="{ description_expanded: false, expr_expanded: false }"><div class="main__grid-cell"><code>modify_disk_size_gb</code></div><div class="main__grid-cell"><code>Int</code></div><div class="main__grid-cell"><code>0</code></div><div class="main__grid-cell">Add to or subtract from dynamic disk space allocation. Default disk size is determined by the size of the inputs. Specified in GB.</div><div x-show="description_expanded" class="main__grid-full-width-cell">Add to or subtract from dynamic disk space allocation. Default disk size is determined by the size of the inputs. Specified in GB.</div><div x-show="expr_expanded" class="main__grid-full-width-cell"><sprocket-code language="wdl">0</sprocket-code></div></div></div></div></div><div class="main__section"><h2 id="outputs" class="main__section-header">Outputs</h2><div class="main__grid-container"><div class="main__grid-non-req-param-container"><div class="main__grid-header-cell">Name</div><div class="main__grid-header-cell">Type</div><div class="main__grid-header-cell">Expression</div><div class="main__grid-header-cell">Description</div><div class="main__grid-header-separator"></div><div class="main__grid-row" x-data="{ description_expanded: false, expr_expanded: false }"><div class="main__grid-cell"><code>read_groups</code></div><div class="main__grid-cell"><code>Array[ReadGroup]</code></div><div class="main__grid-cell"><code>read_json(&quot;read_groups.json&quot;)</code></div><div class="main__grid-cell">An array of ReadGroup structs containing read group information.</div><div x-show="description_expanded" class="main__grid-full-width-cell">An array of ReadGroup structs containing read group information.</div><div x-show="expr_expanded" class="main__grid-full-width-cell"><sprocket-code language="wdl">read_json(&quot;read_groups.json&quot;)</sprocket-code></div></div></div></div></div><div class="main__section"><h2 id="runtime" class="main__section-header">Default Runtime Attributes</h2><div class="main__grid-container"><div class="main__grid-runtime-container"><div class="main__grid-header-cell">Attribute</div><div class="main__grid-header-cell">Value</div><div class="main__grid-header-separator"></div><div class="main__grid-row"><div class="main__grid-cell"><code>memory</code></div><div class="main__grid-cell"><code>&quot;4 GB&quot;</code></div></div><div class="main__grid-row-separator"></div><div class="main__grid-row"><div class="main__grid-cell"><code>disks</code></div><div class="main__grid-cell"><code>&quot;~{disk_size_gb} GB&quot;</code></div></div><div class="main__grid-row-separator"></div><div class="main__grid-row"><div class="main__grid-cell"><code>container</code></div><div class="main__grid-cell"><code>&quot;quay.io/biocontainers/pysam:0.22.0--py38h15b938a_1&quot;</code></div></div><div class="main__grid-row-separator"></div><div class="main__grid-row"><div class="main__grid-cell"><code>maxRetries</code></div><div class="main__grid-cell"><code>1</code></div></div></div></div></div><div class="main__section"><h2 id="command" class="main__section-header">Command</h2><sprocket-code language="wdl" class="pt-8">set -euo pipefail
BAM=&quot;~{bam}&quot; OUTFILE=&quot;read_groups.json&quot; python - &lt;&lt;END
import os  # lint-check: ignore
import pysam  # lint-check: ignore
import json  # lint-check: ignore
sam = pysam.AlignmentFile(os.environ[&quot;BAM&quot;], &quot;rb&quot;)

out_file = open(os.environ[&quot;OUTFILE&quot;], &quot;w&quot;)
header = sam.header.to_dict()[&quot;RG&quot;]
modified_header = []
for read_group in sorted(header, key=lambda d: d['ID']):
    modified_header.append({k:v.upper() if k=='PL' else v for k,v in read_group.items()})
json.dump(modified_header, out_file)
out_file.close()
END</sprocket-code></div></div></div></div><div class="layout__sidebar-right"><div class="right-sidebar__container"><div class="right-sidebar__header">ON THIS PAGE</div><a href="#inputs" class="right-sidebar__section-header">Inputs</a><div class="right-sidebar__section-items"><a href="#required-inputs" class="right-sidebar__section-item">Required Inputs</a></div><div class="right-sidebar__section-items"><a href="#other-inputs" class="right-sidebar__section-item">Other Inputs</a></div><a href="#outputs" class="right-sidebar__section-header">Outputs</a><a href="#runtime" class="right-sidebar__section-header">Runtime</a><a href="#command" class="right-sidebar__section-header">Command</a><div class="right-sidebar__back-to-top-container"><a href="#title" class="right-sidebar__back-to-top"><span class="right-sidebar__back-to-top-icon">↑</span><span class="right-sidebar__back-to-top-text">Back to top</span></a></div></div></div></div></body></html>