<!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>read_group</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&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 < 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: [{"key":"data_structures","display_name":"data_structures","parent":"","search_name":"","icon":null,"href":null,"ancestor":true,"current":false,"nest_level":1,"children":["data_structures_flag_filter","data_structures_read_group"]}, {"key":"data_structures_flag_filter","display_name":"flag_filter","parent":"data_structures/flag_filter","search_name":"data_structures/flag_filter/index.html","icon":"../../assets/wdl-dir-unselected.svg","href":"../flag_filter/index.html","ancestor":false,"current":false,"nest_level":2,"children":["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"]}, {"key":"data_structures_flag_filter_FlagFilter_struct_html","display_name":"FlagFilter","parent":"data_structures/flag_filter","search_name":"data_structures/flag_filter/FlagFilter-struct.html","icon":"../../assets/struct-unselected.svg","href":"../flag_filter/FlagFilter-struct.html","ancestor":false,"current":false,"nest_level":3,"children":[]}, {"key":"data_structures_flag_filter_validate_flag_filter_workflow_html","display_name":"validate_flag_filter","parent":"data_structures/flag_filter","search_name":"data_structures/flag_filter/validate_flag_filter-workflow.html","icon":"../../assets/workflow-unselected.svg","href":"../flag_filter/validate_flag_filter-workflow.html","ancestor":false,"current":false,"nest_level":3,"children":[]}, {"key":"data_structures_flag_filter_validate_string_is_12bit_oct_dec_or_hex_task_html","display_name":"validate_string_is_12bit_oct_dec_or_hex","parent":"data_structures/flag_filter","search_name":"data_structures/flag_filter/validate_string_is_12bit_oct_dec_or_hex-task.html","icon":"../../assets/task-unselected.svg","href":"../flag_filter/validate_string_is_12bit_oct_dec_or_hex-task.html","ancestor":false,"current":false,"nest_level":3,"children":[]}, {"key":"data_structures_read_group","display_name":"read_group","parent":"data_structures/read_group","search_name":"data_structures/read_group/index.html","icon":"../../assets/wdl-dir-selected.svg","href":"index.html","ancestor":true,"current":true,"nest_level":2,"children":["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"]}, {"key":"data_structures_read_group_ReadGroup_struct_html","display_name":"ReadGroup","parent":"data_structures/read_group","search_name":"data_structures/read_group/ReadGroup-struct.html","icon":"../../assets/struct-unselected.svg","href":"ReadGroup-struct.html","ancestor":false,"current":false,"nest_level":3,"children":[]}, {"key":"data_structures_read_group_get_read_groups_task_html","display_name":"get_read_groups","parent":"data_structures/read_group","search_name":"data_structures/read_group/get_read_groups-task.html","icon":"../../assets/task-unselected.svg","href":"get_read_groups-task.html","ancestor":false,"current":false,"nest_level":3,"children":[]}, {"key":"data_structures_read_group_read_group_to_string_task_html","display_name":"read_group_to_string","parent":"data_structures/read_group","search_name":"data_structures/read_group/read_group_to_string-task.html","icon":"../../assets/task-unselected.svg","href":"read_group_to_string-task.html","ancestor":false,"current":false,"nest_level":3,"children":[]}, {"key":"data_structures_read_group_validate_read_group_task_html","display_name":"validate_read_group","parent":"data_structures/read_group","search_name":"data_structures/read_group/validate_read_group-task.html","icon":"../../assets/task-unselected.svg","href":"validate_read_group-task.html","ancestor":false,"current":false,"nest_level":3,"children":[]}],
get searchedNodes() {
if (this.search === '') {
return [];
}
this.showWorkflows = false;
return this.nodes.filter(node => node.search_name.toLowerCase().includes(this.search.toLowerCase()));
},
get shownNodes() {
if (this.search !== '') {
return [];
}
return this.nodes.filter(node => 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 => {
if (n.key === key) {
this.showChildrenCache[key] = !this.showChildrenCache[key];
this.children(key).forEach(child => {
this.setShow(child, this.showChildrenCache[key]);
});
}
});
},
setShow(key, value) {
this.nodes.forEach(n => {
if (n.key === key) {
this.showSelfCache[key] = value;
this.showChildrenCache[key] = value;
this.children(key).forEach(child => {
this.setShow(child, value);
});
}
});
},
reset() {
this.nodes.forEach(n => {
this.showSelfCache[n.key] = true;
this.showChildrenCache[n.key] = true;
});
}
}" x-cloak x-init="$nextTick(() => { 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(() => { 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(() => { 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) && !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) && !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 !== '' && 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 !== '' && 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="`"${search}"`" class="text-slate-50"></span></li></ul><ul x-show="showWorkflows && 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><span class="layout__breadcrumb-inactive">read_group</span></div></div></div></div><div class="main__container"><h1 id="title" class="main__title">read_group</h1><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 id="preamble" class="main__section"><div class="markdown-body"><p>Read groups are defined in the SAM spec</p>
<ul>
<li>ID: Read group identifier. Each Read Group must have a unique ID.
The value of ID is used in the RG tags of alignment records.</li>
<li>BC: "Barcode sequence identifying the sample or library. This value is the
expected barcode bases as read by the sequencing machine in the absence
of errors. If there are several barcodes for the sample/library
(e.g., one on each end of the template), the recommended implementation
concatenates all the barcodes separating them with hyphens (<code>-</code>).</li>
<li>CN: Name of sequencing center producing the read.</li>
<li>DS: Description.</li>
<li>DT: Date the run was produced (ISO8601 date or date/time).</li>
<li>FO: Flow order. The array of nucleotide bases that correspond to the nucleotides
used for each flow of each read. Multi-base flows are encoded in IUPAC format,
and non-nucleotide flows by various other characters.
Format: /\*|[ACMGRSVTWYHKDBN]+/</li>
<li>KS: The array of nucleotide bases that correspond to the key sequence of each read.</li>
<li>LB: Library.</li>
<li>PG: Programs used for processing the read group.</li>
<li>PI: Predicted median insert size, rounded to the nearest integer.</li>
<li>PL: Platform/technology used to produce the reads.
Valid values: CAPILLARY, DNBSEQ (MGI/BGI), ELEMENT, HELICOS, ILLUMINA, IONTORRENT,
LS454, ONT (Oxford Nanopore), PACBIO (Pacific Biosciences), SINGULAR, SOLID,
and ULTIMA. This field should be omitted when the technology is not in this list
(though the PM field may still be present in this case) or is unknown.</li>
<li>PM: Platform model. Free-form text providing further details of the
platform/technology used.</li>
<li>PU: Platform unit (e.g., flowcell-barcode.lane for Illumina or slide
for SOLiD). Unique identifier.</li>
<li>SM: Sample. Use pool name where a pool is being sequenced.</li>
</ul>
<p>An example input JSON entry for <code>read_group</code> might look like this:</p>
<pre><code>{
"read_group": {
"ID": "rg1",
"PI": 150,
"PL": "ILLUMINA",
"SM": "Sample",
"LB": "Sample"
}
}
</code></pre>
</div></div><div class="main__section"><h2 id="toc" class="main__section-header">Table of Contents</h2><div class="main__grid-container"><div class="main__grid-toc-container"><div class="main__grid-header-cell">Page</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"><a class="text-brand-pink-400 hover:text-pink-200" href="ReadGroup-struct.html">ReadGroup</a></div><div class="main__grid-cell"><code>struct</code></div><div class="main__grid-cell">N/A</div><div x-show="description_expanded" class="main__grid-full-width-cell">ERROR</div></div><div class="main__grid-row-separator"></div><div class="main__grid-row" x-data="{ description_expanded: false }"><div class="main__grid-cell"><a class="text-brand-violet-400 hover:text-violet-200" href="read_group_to_string-task.html">read_group_to_string</a></div><div class="main__grid-cell"><code>task</code></div><div class="main__grid-cell">Stringifies a ReadGroup struct</div><div x-show="description_expanded" class="main__grid-full-width-cell">Stringifies a ReadGroup struct</div></div><div class="main__grid-row-separator"></div><div class="main__grid-row" x-data="{ description_expanded: false }"><div class="main__grid-cell"><a class="text-brand-violet-400 hover:text-violet-200" href="get_read_groups-task.html">get_read_groups</a></div><div class="main__grid-cell"><code>task</code></div><div class="main__grid-cell">Gets read group information from a BAM file and writes it out as JSON which is converted to a WDL struct.</div><div x-show="description_expanded" class="main__grid-full-width-cell">Gets read group information from a BAM file and writes it out as JSON which is converted to a WDL struct.</div></div><div class="main__grid-row-separator"></div><div class="main__grid-row" x-data="{ description_expanded: false }"><div class="main__grid-cell"><a class="text-brand-violet-400 hover:text-violet-200" href="validate_read_group-task.html">validate_read_group</a></div><div class="main__grid-cell"><code>task</code></div><div class="main__grid-cell">Validate a ReadGroup struct's fields are defined</div><div x-show="description_expanded" class="main__grid-full-width-cell">Validate a ReadGroup struct's fields are defined</div></div></div></div></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="#preamble" class="right-sidebar__section-header">Preamble</a><a href="#toc" class="right-sidebar__section-header">Table of Contents</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>