PageSourceSearch

https://www.rastair.com/glossary.html

html rastair.com collected 2026-10-06 19:58:27 UTC 51,947 bytes, 489 lines download raw bytes

1<!DOCTYPE HTML>
2<html lang="en" class="light sidebar-visible" dir="ltr">
3    <head>
4        <!-- Book generated using mdBook -->
5        <meta charset="UTF-8">
6        <title>Glossary - Rastair</title>
7
8
9        <!-- Custom HTML head -->
10        <link rel="stylesheet" id="silktide-consent-manager-css" href="theme/silktide-consent-manager.css">
11        
11<script src="theme/silktide-consent-manager.js"></script>
11
12        
12<script>
13        silktideCookieBannerManager.updateCookieBannerConfig({
14          background: {
15            showBackground: false
16          },
17          cookieIcon: {
18            position: "bottomLeft"
19          },
20          cookieTypes: [
21            {
22              id: "analytics",
23              name: "Analytics",
24              description: "<p>We use Google Analytics to measure how many people visit this page. This data is not used for advertising, only to give us insights into how many researchers are interested in rastair. This might help us with grant applications to justify that we're serving the community.</p>",
25              required: false,
26              onAccept: function() {
27                gtag('consent', 'update', {
28                  analytics_storage: 'granted',
29                });
30                dataLayer.push({
31                  'event': 'consent_accepted_analytics',
32                });
33              },
34              onReject: function() {
35                gtag('consent', 'update', {
36                  analytics_storage: 'denied',
37                });
38              }
39            }
40          ],
41          text: {
42            banner: {
43              description: "<p>We use Google analytics to measure engagement with rastair, not to serve advertisements. This helps us demonstrate that we serve the scientific community. If you would prefer not to be counted, you can safely reject cookies here.</p>",
44              acceptAllButtonText: "Accept",
45              acceptAllButtonAccessibleLabel: "Accept cookies",
46              rejectNonEssentialButtonText: "Reject",
47              rejectNonEssentialButtonAccessibleLabel: "Reject tracking",
48              preferencesButtonText: "Preferences",
49              preferencesButtonAccessibleLabel: "Toggle preferences"
50            },
51            preferences: {
52              title: "Customize your cookie preferences",
53              description: "<p>We respect your right to privacy. You can choose not to allow some types of cookies. Your cookie preferences will apply across our website.</p>",
54              creditLinkText: "Get this banner for free",
55              creditLinkAccessibleLabel: "Get this banner for free"
56            }
57          }
58        });
59        </script>
59
60        
61        
62        <!-- Google tag (gtag.js) + Consent Mode -->
63        
63<script>
64          // Create gtag stub immediately (so consent signals queue before gtag.js loads)
65          window.dataLayer = window.dataLayer || [];
66          function gtag(){ dataLayer.push(arguments); }
67        
68          // Default: deny analytics storage until the user consents (typical GDPR/UK approach)
69          gtag('consent', 'default', {
70            analytics_storage: 'denied',
71            // Optional but recommended: wait briefly for the banner choice before firing tags
72            wait_for_update: 500
73          });
74        </script>
vendor: 81 bytes, lines 74-76
74
75        
76        <script async src="https://www.googletagmanager.com/gtag/js?id=
76G-QXG3E5BT9L
vendor: 20 bytes, lines 76-77
76"></script>
77        
77<script>
78          gtag('js', new Date());
79          gtag('config', 'G-QXG3E5BT9L');
80        </script>
80
81        <meta name="description" content="Rastair is a command-line tool to process epigentic sequencing data. It can call genetic variants and DNA methylation simultaneously from Illumina™ 5base and TAPS+.">
82        <meta name="viewport" content="width=device-width, initial-scale=1">
83        <meta name="theme-color" content="#ffffff">
84
85        <link rel="icon" href="favicon.svg">
86        <link rel="shortcut icon" href="favicon.png">
87        <link rel="stylesheet" href="css/variables.css">
88        <link rel="stylesheet" href="css/general.css">
89        <link rel="stylesheet" href="css/chrome.css">
90        <link rel="stylesheet" href="css/print.css" media="print">
91
92        <!-- Fonts -->
93        <link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
94        <link rel="stylesheet" href="fonts/fonts.css">
95
96        <!-- Highlight.js Stylesheets -->
97        <link rel="stylesheet" id="highlight-css" href="highlight.css">
98        <link rel="stylesheet" id="tomorrow-night-css" href="tomorrow-night.css">
99        <link rel="stylesheet" id="ayu-highlight-css" href="ayu-highlight.css">
100
101        <!-- Custom theme stylesheets -->
102        <link rel="stylesheet" href="theme/custom.css">
103        <link rel="stylesheet" href="theme/mdbook-admonish.css">
104        <link rel="stylesheet" href="theme/silktide-consent-manager.css">
105
106
107        <!-- Provide site root and default themes to javascript -->
108        
108<script>
109            const path_to_root = "";
110            const default_light_theme = "light";
111            const default_dark_theme = "navy";
112            window.path_to_searchindex_js = "searchindex.js";
113        </script>
113
114        <!-- Start loading toc.js asap -->
115        
115<script src="toc.js"></script>
115
116    </head>
117    <body>
118    <div id="mdbook-help-container">
119        <div id="mdbook-help-popup">
120            <h2 class="mdbook-help-title">Keyboard shortcuts</h2>
121            <div>
122                <p>Press <kbd>←</kbd> or <kbd>→</kbd> to navigate between chapters</p>
123                <p>Press <kbd>S</kbd> or <kbd>/</kbd> to search in the book</p>
124                <p>Press <kbd>?</kbd> to show this help</p>
125                <p>Press <kbd>Esc</kbd> to hide this help</p>
126            </div>
127        </div>
128    </div>
129    <div id="body-container">
130        <!-- Work around some values being stored in localStorage wrapped in quotes -->
131        
131<script>
132            try {
133                let theme = localStorage.getItem('mdbook-theme');
134                let sidebar = localStorage.getItem('mdbook-sidebar');
135
136                if (theme.startsWith('"') && theme.endsWith('"')) {
137                    localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
138                }
139
140                if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
141                    localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
142                }
143            } catch (e) { }
144        </script>
144
145
146        <!-- Set the theme before any content is loaded, prevents flash -->
147        
147<script>
148            const default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? default_dark_theme : default_light_theme;
149            let theme;
150            try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
151            if (theme === null || theme === undefined) { theme = default_theme; }
152            const html = document.documentElement;
153            html.classList.remove('light')
154            html.classList.add(theme);
155            html.classList.add("js");
156        </script>
156
157
158        <input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
159
160        <!-- Hide / unhide sidebar before it is displayed -->
161        
161<script>
162            let sidebar = null;
163            const sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
164            if (document.body.clientWidth >= 1080) {
165                try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
166                sidebar = sidebar || 'visible';
167            } else {
168                sidebar = 'hidden';
169                sidebar_toggle.checked = false;
170            }
171            if (sidebar === 'visible') {
172                sidebar_toggle.checked = true;
173            } else {
174                html.classList.remove('sidebar-visible');
175            }
176        </script>
176
177
178        <nav id="sidebar" class="sidebar" aria-label="Table of contents">
179            <!-- populated by js -->
180            <mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
181            <noscript>
182                <iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
183            </noscript>
184            <div id="sidebar-resize-handle" class="sidebar-resize-handle">
185                <div class="sidebar-resize-indicator"></div>
186            </div>
187        </nav>
188
189        <div id="page-wrapper" class="page-wrapper">
190
191            <div class="page">
192                <div id="menu-bar-hover-placeholder"></div>
193                <div id="menu-bar" class="menu-bar sticky">
194                    <div class="left-buttons">
195                        <label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
196                            <i class="fa fa-bars"></i>
197                        </label>
198                        <button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
199                            <i class="fa fa-paint-brush"></i>
200                        </button>
201                        <ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
202                            <li role="none"><button role="menuitem" class="theme" id="default_theme">Auto</button></li>
203                            <li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
204                            <li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
205                            <li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
206                            <li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
207                            <li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
208                        </ul>
209                        <button id="search-toggle" class="icon-button" type="button" title="Search (`/`)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="/ s" aria-controls="searchbar">
210                            <i class="fa fa-search"></i>
211                        </button>
212                    </div>
213
214                    <h1 class="menu-title">Rastair</h1>
215
216                    <div class="right-buttons">
217                        <a href="print.html" title="Print this book" aria-label="Print this book">
218                            <i id="print-button" class="fa fa-print"></i>
219                        </a>
220                        <a href="https://github.com/bsbludwig/rastair" title="Git repository" aria-label="Git repository">
221                            <i id="git-repository-button" class="fa fa-github"></i>
222                        </a>
223
224                    </div>
225                </div>
226
227                <div id="search-wrapper" class="hidden">
228                    <form id="searchbar-outer" class="searchbar-outer">
229                        <div class="search-wrapper">
230                            <input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
231                            <div class="spinner-wrapper">
232                                <i class="fa fa-spinner fa-spin"></i>
233                            </div>
234                        </div>
235                    </form>
236                    <div id="searchresults-outer" class="searchresults-outer hidden">
237                        <div id="searchresults-header" class="searchresults-header"></div>
238                        <ul id="searchresults">
239                        </ul>
240                    </div>
241                </div>
242
243                <!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
244                
244<script>
245                    document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
246                    document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
247                    Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
248                        link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
249                    });
250                </script>
250
251
252                <div id="content" class="content">
253                    <main>
254                        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css">
255<h1 id="glossary"><a class="header" href="#glossary">Glossary</a></h1>
256<h2 id="file-formats"><a class="header" href="#file-formats">File Formats</a></h2>
257<h3 id="entry--SAM"><a class="header" href="#entry--SAM"><strong>SAM</strong> – Sequence Alignment Map</a></h3>
258<p>A text-based file format that stores sequence data in a tab-delimited format. <a href="https://samtools.github.io/hts-specs/SAMv1.pdf">Format Specification for version 1.0</a>. It is used to store the alignment of sequence reads to a <a href="glossary.html#entry--referenceGenome">reference genome</a>. SAM files are used to visualize and analyze sequence data in genome browsers like <a href="glossary.html#entry--IGV" title="Integrative Genomics Viewer">IGV</a>.</p>
259<p>Additional keys are defined in the <a href="https://samtools.github.io/hts-specs/SAMtags.pdf">Optional Fields Specification</a>.</p>
260<h3 id="entry--BAM"><a class="header" href="#entry--BAM"><strong>BAM</strong> – Binary Alignment Map</a></h3>
261<p>A binary version of the <a href="glossary.html#entry--SAM" title="Sequence Alignment Map">SAM</a> file format. It is a compressed, indexed, and binary representation of the sequence alignment data. BAM files are used to store sequence data efficiently. They can be visualized and analyzed in genome browsers like <a href="glossary.html#entry--IGV" title="Integrative Genomics Viewer">IGV</a>.</p>
262<h3 id="entry--CRAM"><a class="header" href="#entry--CRAM"><strong>CRAM</strong> – Compressed Reference-oriented Alignment Map</a></h3>
263<p>A variant of  the <a href="glossary.html#entry--SAM" title="Sequence Alignment Map">SAM</a>/<a href="glossary.html#entry--BAM" title="Binary Alignment Map">BAM</a> file format that reduces file size by only saving differences to a fixed reference sequence.</p>
264<h3 id="entry--BED"><a class="header" href="#entry--BED"><strong>BED</strong> – Browser Extensible Data</a></h3>
265<p>A tab-separated-file format that stores genomic regions as a list of intervals.</p>
266<p>It looks like this:</p>
267<pre><code>chr1	11873	12227	ENSG00000223972.5	0	+
268chr1	12612	12721	ENSG00000227232.5	0	-
269chr1	13220	14409	ENSG00000278267.1	0	+
270</code></pre>
271<p>The first three columns represent the chromosome, start position, and end position of the interval. The other columns contain additional information about the interval. Importantly, the start position in a bed file is 0-based, and the end position refers to the first base that is outside the interval. So, to refer to the first base of chromosome 1, one would write</p>
272<pre><code>chr1 0 1 Interval_of_length_1
273</code></pre>
274<h3 id="entry--VCF"><a class="header" href="#entry--VCF"><strong>VCF</strong> – Variant Call Format</a></h3>
275<p>Tab-separated-file format that stores information about genetic variants. <a href="https://samtools.github.io/hts-specs/VCFv4.5.pdf">Format Specification for VCFv4.5</a>. It is used to represent SNPs, insertions, deletions, and other types of genetic variations. VCF files contain information about the variant's position, <a href="glossary.html#entry--refAllele">reference allele</a>, <a href="glossary.html#entry--altAllele">alternative allele</a>, quality score, and other annotations.</p>
276<p>It looks like this:</p>
277<pre><code>#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	sample1	sample2
278chr1	10001	.	A	C	30	PASS	.	GT:DP	0/1:10	1/1:20
279chr1	10002	.	T	G	20	PASS	.	GT:DP	0/1:15	1/1:25
280</code></pre>
281<p>The first row contains the column headers. The first eight columns are mandatory fields that describe the variant. The remaining columns contain information about the samples and their genotypes. Importantly, unlike in <a href="glossary.html#entry--BED" title="Browser Extensible Data">BED</a>, the position column in VCF files is 1-based.</p>
282<h3 id="entry--FASTA"><a class="header" href="#entry--FASTA"><strong>FASTA</strong></a></h3>
283<p>A text-based file format for storing nucleotide or protein sequences. Each record consists of a header line starting with <code>&gt;</code>, followed by one or more lines of sequence. Rastair uses FASTA files to store the <a href="glossary.html#entry--referenceGenome">reference genome</a> sequence, indexed with <code>
283samtools faidx</code> for efficient random access.</p>
284<h3 id="entry--FASTQ"><a class="header" href="#entry--FASTQ"><strong>FASTQ</strong></a></h3>
285<p>A text-based file format that stores DNA or RNA sequences, optionally with corresponding quality scores such as produced by most sequencing machines. It is used to store raw sequencing data from high-throughput sequencing experiments. FASTQ files contain the sequence data in the form of nucleotide bases (A, T, C, G) and <a href="glossary.html#entry--Phred-scaled">Phred-scaled</a> quality scores that represent the confidence in each base call.</p>
286<h3 id="entry--BCF"><a class="header" href="#entry--BCF"><strong>BCF</strong> – Binary Call Format</a></h3>
287<p>A binary version of the <a href="glossary.html#entry--VCF" title="Variant Call Format">VCF</a> file format. It stores variant calls in a compressed and indexed binary format. BCF files are more efficient for storing large variant datasets and can be used with tools like <a href="glossary.html#entry--bcftools">BCFtools</a>.</p>
288<h3 id="entry--BGZF"><a class="header" href="#entry--BGZF"><strong>BGZF</strong> – Blocked GNU Zip Format</a></h3>
289<p>A block compression format in which the input file is compressed as a series of GZIP-compressed blocks that can be indexed for efficient random access.</p>
290<h3 id="entry--qname"><a class="header" href="#entry--qname"><strong>qname</strong> – query template name</a></h3>
291<p>A unique identifier for a sequence <a href="glossary.html#entry--read" title="sequence read">read</a> in a <a href="glossary.html#entry--SAM" title="Sequence Alignment Map">SAM</a> or <a href="glossary.html#entry--BAM" title="Binary Alignment Map">BAM</a> file. It is used to track the origin of the read and link it to other information in the file. Example: <code>NB502094:69:HN2H2BGX5:2:21111:24699:8526</code></p>
292<h2 id="genetics"><a class="header" href="#genetics">Genetics</a></h2>
293<h3 id="entry--TAPS"><a class="header" href="#entry--TAPS"><strong>TAPS</strong> – TET-Assisted Pyridine-Borane Sequencing</a></h3>
294<p>A method for detecting DNA modifications, such as <a href="glossary.html#entry--methylation">methylation</a>, at single-base resolution. TAPS uses a chemical reaction to convert 5-methylcytosine (5mC) to thymine (T) while leaving unmodified cytosines unchanged. Allows the detection of 5mC sites using standard sequencing technologies. Alternative to <a href="glossary.html#entry--bisulfite">bisulfite</a> sequencing, which can introduce biases and artifacts during the conversion process. You can read more about it <a href="https://en.wikipedia.org/wiki/TET-assisted_pyridine_borane_sequencing">here</a>.</p>
295<h3 id="entry--5Base"><a class="header" href="#entry--5Base"><strong>5Base</strong> – Illumina 5-Base sequencing</a></h3>
296<p>Illumina launched a chemistry that uses a custom enzyme to convert methylated (and hydroxymethylated) cytosine to thymine. The resulting data look very similar to TAPS data. Read more <a href="https://www.illumina.com/science/genomics-research/articles/5-base-solution.html">here</a>.</p>
297<h3 id="entry--bisulfite"><a class="header" href="#entry--bisulfite"><strong>bisulfite</strong></a></h3>
298<p>A chemical treatment that converts only <em>unmethylated</em> cytosines to uracil in DNA. Used in bisulfite sequencing to detect DNA <a href="glossary.html#entry--methylation">methylation</a> patterns.</p>
299<h3 id="entry--variant"><a class="header" href="#entry--variant"><strong>variant</strong></a></h3>
300<p>A genomic locus that differs from the given <a href="glossary.html#entry--referenceGenome">reference genome</a>. Variants can be <a href="glossary.html#entry--SNV" title="Single Nucleotide Variant">SNVs</a>, insertions, deletions, or structural changes.</p>
301<h3 id="entry--allele"><a class="header" href="#entry--allele"><strong>allele</strong></a></h3>
302<p>In cells with more than one homologous chromosomes, an allele refers to each of the observed sequences. In particular, a diploid genome will have two alleles per autosomal position.</p>
303<h3 id="entry--refAllele"><a class="header" href="#entry--refAllele"><strong>reference allele</strong></a></h3>
304<p><a href="glossary.html#entry--allele">allele</a> that matches the <a href="glossary.html#entry--referenceGenome">reference genome</a> at a specific <a href="glossary.html#entry--locus">locus</a>. Opposite to <a href="glossary.html#entry--altAllele">alternative allele</a>.</p>
305<h3 id="entry--altAllele"><a class="header" href="#entry--altAllele"><strong>alternative allele</strong></a></h3>
306<p><a href="glossary.html#entry--allele">allele</a> that is different from the <a href="glossary.html#entry--refAllele">reference allele</a> at a specific <a href="glossary.html#entry--locus">locus</a>. Opposite to <a href="glossary.html#entry--refAllele">reference allele</a>.</p>
307<h3 id="entry--referenceGenome"><a class="header" href="#entry--referenceGenome"><strong>reference genome</strong></a></h3>
308<p>Sequence of the species' genome that is used as a reference for comparing and analyzing genetic data. In particular, most al
308ignment algorithms will use a reference genome to map reads to.</p>
309<h3 id="entry--haplotype"><a class="header" href="#entry--haplotype"><strong>haplotype</strong></a></h3>
310<p>A haplotype is a set of <a href="glossary.html#entry--variant">variants</a> that co-occur on the same chromosome sequence, and are therefore linked.</p>
311<h3 id="entry--methylation"><a class="header" href="#entry--methylation"><strong>methylation</strong></a></h3>
312<p>Cytosine methylation is the enzymatic addition of a methyl group to cytosine by DNA methyltransferases. In animals, DNA methylation occurs at <a href="glossary.html#entry--CpG" title="Cytosine-phosphate-Guanine">CpG</a> dinucleotides.</p>
313<h3 id="entry--methylated"><a class="header" href="#entry--methylated"><strong>methylated</strong></a></h3>
314<p>Refers to a base that has undergone <a href="glossary.html#entry--methylation">methylation</a>.</p>
315<h3 id="entry--SNV"><a class="header" href="#entry--SNV"><strong>SNV</strong> – Single Nucleotide Variant</a></h3>
316<p>A variation in a single nucleotide that occurs at a specific position in the genome. SNV is commonly used to refer to somatic variation, <em>ie.</em> a difference between <em>eg.</em> a cancer and its host.</p>
317<h3 id="entry--SNP"><a class="header" href="#entry--SNP"><strong>SNP</strong> – Single Nucleotide Polymorphism</a></h3>
318<p>Formally, a SNP is a <a href="glossary.html#entry--variant">variant</a> that occurs at a given minimum frequency in the population. However, it is nowadays often used to refer to any inherited <a href="glossary.html#entry--variant">variant</a> in an individual.</p>
319<h3 id="entry--locus"><a class="header" href="#entry--locus"><strong>locus</strong></a></h3>
320<p>A specific position on a chromosome, for example the position of a <a href="glossary.html#entry--variant">variant</a> in the genome.</p>
321<h3 id="entry--assay"><a class="header" href="#entry--assay"><strong>assay</strong></a></h3>
322<p>A test or procedure used to measure a specific property or characteristic of a sample. In genetics, assays are used to detect and measure genetic variations, gene expression levels, protein interactions, and other biological processes.</p>
323<h3 id="entry--GIAB"><a class="header" href="#entry--GIAB"><strong>GIAB</strong> – Genome In a Bottle</a></h3>
324<p>"A public-private-academic consortium hosted by NIST to develop the technical infrastructure (reference standards, reference methods, and reference data) to enable translation of whole human genome sequencing to clinical practice and innovations in technologies." -- <a href="https://www.nist.gov/programs-projects/genome-bottle">nist.gov</a></p>
325<h3 id="entry--DiploidGenome"><a class="header" href="#entry--DiploidGenome"><strong>diploid genome</strong></a></h3>
326<p>Genome that contains two sets of chromosome:pl, one set inherited from each parent.</p>
327<h3 id="entry--indel"><a class="header" href="#entry--indel"><strong>indel</strong> – insertion/deletion</a></h3>
328<p>Variation in the genome where a small number of nucleotides are inserted or deleted.</p>
329<h3 id="entry--CpG"><a class="header" href="#entry--CpG"><strong>CpG</strong> – Cytosine-phosphate-Guanine</a></h3>
330<p>A site in the DNA sequence where a cytosine nucleotide is followed by a guanine nucleotide in the linear sequence of bases along its 5' → 3' direction. CpG sites are often associated with gene regulation through DNA <a href="glossary.html#entry--methylation">methylation</a>.</p>
331<h3 id="entry--VAF"><a class="header" href="#entry--VAF"><strong>VAF</strong> – Variant Allele Frequency</a></h3>
332<p>The proportion of observations of a specific <a href="glossary.html#entry--altAllele">alternative allele</a> in a sample, compared to the total number of observations <a href="glossary.html#entry--locus">locus</a>:</p>
333<p><span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord">VAF</span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.4133em;vertical-align:-0.4811em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9322em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord text mtight"><span class="mord mtight">Total reads covering the site</span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.4461em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord text mtight"><span class="mord mtight">Reads supporting the variant allele</span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.4811em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></p>
334<h3 id="entry--denovo"><a class="header" href="#entry--denovo"><strong>de-novo CpG</strong></a></h3>
335<p>A <a href="glossary.html#entry--CpG" title="Cytosine-phosphate-Guanine">CpG</a> site that is not present in the <a href="glossary.html#entry--referenceGenome">reference genome</a> but seems to occur in the sample when there is a variant that turns a <code>NG</code> (or a <code>CN</code>) into a <code>CG</code>.</p>
336<h2 id="programming"><a class="header" href="#programming">Programming</a></h2>
337<h3 id="entry--Rust"><a class="header" href="#entry--Rust"><strong>Rust</strong></a></h3>
338<p>A systems programming language, known for its safety, speed, and concurrency.</p>
339<h3 id="entry--CLI"><a class="header" href="#entry--CLI"><strong>CLI</strong> – Command Line Interface</a></h3>
340<p>Terminal-based interface for interacting with software using text commands.</p>
341<h3 id="entry--LLVM"><a class="header" href="#entry--LLVM"><strong>LLVM</strong></a></h3>
342<p>Compiler infrastructure project, used as backend for various programming languages including the official <a href="glossary.html#entry--Rust">Rust</a> compiler.</p>
343<h3 id="entry--closure"><a class="header" href="#entry--closure"><strong>closure</strong></a></h3>
344<p>A function that "closes over" bindings in the surrounding scope, i.e., variables from around its definition location are accessible inside of it.</p>
345<h3 id="entry--flamegraph"><a class="header" href="#entry--flamegraph"><strong>flamegraph</strong></a></h3>
346<p>A visualization of profiled software, allowing the user to see which functions are consuming the most time. The x-axis represents the stack depth, and the y-axis represents the function name. The width of each box represents the amount of time spent in that function. @gregg2016flame</p>
347<h3 id="entry--LTO"><a class="header" href="#entry--LTO"><strong>LTO</strong> – Link Time Optimization</a></h3>
348<p>A compiler optimization technique that performs optimizations across the entire program at link time, rather than at compile time. This can lead to improved performance and reduced code size.</p>
349<h3 id="entry--CI"><a class="header" href="#entry--CI"><strong>CI</strong> – Continuous Integration</a></h3>
350<p>A software development practice where automated tests and builds are run on a regular basis (e.g. on every push to the repository) to ensure that code changes do not introduce new bugs or issues.</p>
351<h3 id="entry--PGO"><a class="header" href="#entry--PGO"><strong>PGO</strong> – Profile-Guided Optimization</a></h3>
352<p>A compiler optimization technique that uses profiling information from previous runs of the program to optimize the code for better performance. This can lead to improved runtime performance and reduced code size.</p>
353<h3 id="entry--STDOUT"><a class="header" href="#entry--STDOUT"><strong><code>stdout</code></strong> – standard output</a></h3>
354<p>The default program output for terminal applications, which streams it either to the terminal or the next program in a pipeline.</p>
355<p>For example, when running <code>ls -l | grep "myfile"</code>, <code>ls -l</code> sends its output to the standard output, which is then piped to <code>grep</code> to filter for lines containing "myfile".</p>
356<h3 id="entry--GPU"><a class="header" href="#entry--GPU"><strong>GPU</strong> – Graphics Processing Unit</a></h3>
357<p>Graphics processor, originally designed for rendering graphics, but increasingly used for general-purpose computing due to its ability to perform parallel computations efficiently. GPUs are commonly used in machine learning, scientific simulations, and other computationally intensive tasks.</p>
358<h3 id="entry--Vulkan"><a class="header" href="#entry--Vulkan"><strong>Vulkan</strong></a></h3>
359<p>A graphics and compute API that provides high-performance access to modern GPUs. It is designed to be cross-platform and is used for developing applications that require high-performance graphics and compute capabilities, such as video games, scientific simulations, and machine learning.</p>
360<h2 id="sequence-analysis"><a class="header" href="#sequence-analysis">Sequence Analysis</a></h2>
361<h3 id="entry--CIGAR"><a class="header" href="#entry--CIGAR"><strong>CIGAR</strong> – Compact Idiosyncratic Gapped Alignment Report</a></h3>
362<p>A string that represents the alignment of a sequence read to a <a href="glossary.html#entry--referenceGenome">reference genome</a>. It encodes information about the alignment, including matches, mismatches, insertions, deleti
362ons, and skips. It is used in the <a href="glossary.html#entry--SAM" title="Sequence Alignment Map">SAM</a> and <a href="glossary.html#entry--BAM" title="Binary Alignment Map">BAM</a> file formats.</p>
363<h3 id="entry--mapQ"><a class="header" href="#entry--mapQ"><strong>mapQ</strong> – mapping quality</a></h3>
364<p>A <a href="glossary.html#entry--Phred-scaled">Phred-scaled</a> probability that the mapping position of a read is incorrect. A higher mapping quality indicates a more reliable alignment. Numbers are typically between 0 and 60.</p>
365<h3 id="entry--baseQ"><a class="header" href="#entry--baseQ"><strong>baseQ</strong> – base quality</a></h3>
366<p>A <a href="glossary.html#entry--Phred-scaled">Phred-scaled</a> probability that the base call is incorrect. A higher base quality indicates a more reliable base call. Numbers are typically between 0 and 40.</p>
367<h3 id="entry--OT"><a class="header" href="#entry--OT"><strong>OT</strong> – Original Top</a></h3>
368<p>The "original top" of the DNA fragment that was sequenced. The "top" by definition is the sequence that matches the reference sequence.</p>
369<h3 id="entry--OB"><a class="header" href="#entry--OB"><strong>OB</strong> – Original Bottom</a></h3>
370<p>The "original bottom" of the DNA fragment that was sequenced.</p>
371<h3 id="entry--record"><a class="header" href="#entry--record"><strong>record</strong></a></h3>
372<p>Alternative term for <a href="glossary.html#entry--read" title="sequence read">read</a>.</p>
373<h3 id="entry--read"><a class="header" href="#entry--read"><strong>read</strong> – sequence read</a></h3>
374<p>A sequence of DNA or RNA that is generated by a high-throughput sequencing technology. In "short-read sequencing", they are typically between a few dozen and a few hundred base pairs long.</p>
375<h3 id="entry--alignment"><a class="header" href="#entry--alignment"><strong>alignment</strong></a></h3>
376<p>Represents the position and base-to-base mapping of a sequence <a href="glossary.html#entry--read" title="sequence read">read</a> to a <a href="glossary.html#entry--referenceGenome">reference genome</a>.</p>
377<h3 id="entry--pileup"><a class="header" href="#entry--pileup"><strong>pileup</strong></a></h3>
378<p>A summary of the read alignments at a specific position in the <a href="glossary.html#entry--referenceGenome">reference genome</a> in <a href="glossary.html#entry--BAM" title="Binary Alignment Map">BAM</a> and <a href="glossary.html#entry--SAM" title="Sequence Alignment Map">SAM</a> files. As a data structure, a pileup is a matrix where each row represents a <a href="glossary.html#entry--read" title="sequence read">read</a> and each column represents a position in the <a href="glossary.html#entry--referenceGenome">reference genome</a>. From this, the most likely base at that position can be inferred and used to call variants.</p>
379<h2 id="statistics"><a class="header" href="#statistics">Statistics</a></h2>
380<h3 id="entry--RMS"><a class="header" href="#entry--RMS"><strong>RMS</strong> – Root Mean Square</a></h3>
381<p>Statistical measure of the average deviation of a set of values from their mean.</p>
382<h3 id="entry--ChiSquare"><a class="header" href="#entry--ChiSquare"><strong>Chi-square test</strong></a></h3>
383<p>Determine whether there is a significant association between the observed frequencies of the variables with the expected frequencies to assess the independence of the variables.</p>
384<p>The test statistic is calculated as the sum of the squared differences between the observed and expected frequencies, divided by the expected frequencies. The resulting value is compared to a critical value from the Chi-square distribution to determine statistical significance:
385<span class="katex-display"><span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.0585em;vertical-align:-0.1944em;"></span><span class="mord"><span class="mord mathnormal">χ</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8641em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:2.7688em;vertical-align:-1.2777em;"></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.05em;"><span style="top:-1.8723em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span><span style="top:-3.05em;"><span class="pstrut" style="height:3.05em;"></span><span><span class="mop op-symbol large-op">∑</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.2777em;"><span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.4911em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mopen">(</span><span class="mord"><span class="mord mathnormal" style="margin-right:0.02778em;">O</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.836em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span>
386where <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.02778em;">O</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> is the observed frequency, <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> is the expected frequency, and the sum is taken over all categories.</p>
387<p>The Chi-square test is commonly used in genetics to assess the association between genetic variants and phenotypes, as well as in population genetics to test for deviations from Hardy-Weinberg equilibrium, which describes the expected frequencies of genotypes in a population under certain assumptions.</p>
388<h3 id="entry--RandomForest"><a class="header" href="#entry--RandomForest"><strong>RF</strong> – Random Forest</a></h3>
389<p>Supervised learning algorithm, used for classification and regression.</p>
390<h3 id="entry--ML"><a class="header" href="#entry--ML"><strong>ML</strong> – Machine Learning</a></h3>
391<p>Algorithms that can receive input data and use statistical analysis to predict an output value within an acceptable range.</p>
392<h3 id="entry--Phred-scaled"><a class="header" href="#entry--Phred-scaled"><strong>Phred-scaled</strong></a></h3>
393<p>A Phred-scaled quality score is a logarithmic measure of the probability that a base call is incorrect. The formula 
393is <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8778em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">Q</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">−</span><span class="mord">10</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mop">lo<span style="margin-right:0.01389em;">g</span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.13889em;">P</span></span></span></span> where <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.13889em;">P</span></span></span></span>  is the probability of an incorrect base call. A higher Phred score indicates a more reliable base call. The name "Phred" comes from the base calling software of the same name.</p>
394<h3 id="entry--maximumLikelihood"><a class="header" href="#entry--maximumLikelihood"><strong>maximum likelihood</strong></a></h3>
395<p>A method used to estimate the parameters of a statistical model. It finds the parameter values that maximize the likelihood of the observed data. The maximum likelihood estimate is the set of parameter values that make the observed data most probable. It is a common method for fitting models to data in statistics and machine learning.</p>
396<h2 id="tools"><a class="header" href="#tools">Tools</a></h2>
397<h3 id="entry--samtools"><a class="header" href="#entry--samtools"><strong>SAMtools</strong></a></h3>
398<p>A <a href="https://www.htslib.org/doc/samtools.html">suite of utilities</a> for manipulating <a href="glossary.html#entry--SAM" title="Sequence Alignment Map">SAM</a> and <a href="glossary.html#entry--BAM" title="Binary Alignment Map">BAM</a>. It can manipulate <a href="glossary.html#entry--SAM" title="Sequence Alignment Map">SAM</a> and <a href="glossary.html#entry--BAM" title="Binary Alignment Map">BAM</a> files.</p>
399<h3 id="entry--bcftools"><a class="header" href="#entry--bcftools"><strong>BCFtools</strong></a></h3>
400<p>A <a href="https://samtools.github.io/bcftools/bcftools.html">set of utilities</a> for manipulating variant calls in the <a href="glossary.html#entry--VCF" title="Variant Call Format">VCF</a> and BCF file formats.</p>
401<h3 id="entry--bedtools"><a class="header" href="#entry--bedtools"><strong>BEDtools</strong></a></h3>
402<p>A popular <a href="https://bedtools.readthedocs.io/en/latest/">suite of utilities</a> for manipulating genomic intervals stored in <a href="glossary.html#entry--BED" title="Browser Extensible Data">BED</a> files.</p>
403<h3 id="entry--GATK"><a class="header" href="#entry--GATK"><strong>GATK</strong> – Genome Analysis Toolkit</a></h3>
404<p>A <a href="https://gatk.broadinstitute.org">software package</a> for analyzing sequencing data with tools for variant discovery, genotyping, and other analyses.</p>
405<h3 id="entry--IGV"><a class="header" href="#entry--IGV"><strong>IGV</strong> – Integrative Genomics Viewer</a></h3>
406<p>A <a href="https://igv.org/">tool for interactive exploration</a> of <a href="glossary.html#entry--SAM" title="Sequence Alignment Map">SAM</a> and <a href="glossary.html#entry--BAM" title="Binary Alignment Map">BAM</a> files.
407Also see  @screenshot-igv.</p>
408<h3 id="entry--bwa2-aligner"><a class="header" href="#entry--bwa2-aligner"><strong>BWA</strong> – Burrows-Wheeler Aligner</a></h3>
409<p>A <a href="https://github.com/bwa-mem2/bwa-mem2">sequence alignment program</a> for mapping low-divergent sequences against a large <a href="glossary.html#entry--referenceGenome">reference genome</a>.</p>
410<h3 id="entry--Minimap2"><a class="header" href="#entry--Minimap2"><strong>Minimap2</strong></a></h3>
411<p>A <a href="https://github.com/lh3/minimap2">sequence alignment program</a> that aligns DNA or mRNA sequences against a reference database. Often used for long-read data.</p>
412<h3 id="entry--htslib"><a class="header" href="#entry--htslib"><strong>htslib</strong></a></h3>
413<p>A C library for reading/writing sequencing data, used by tools like <a href="glossary.html#entry--samtools">SAMtools</a> and <a href="glossary.html#entry--bcftools">BCFtools</a> to manipulate <a href="glossary.html#entry--SAM" title="Sequence Alignment Map">SAM</a>, <a href="glossary.html#entry--BAM" title="Binary Alignment Map">BAM</a>, and <a href="glossary.html#entry--VCF" title="Variant Call Format">VCF</a> files. Rastair uses the <a href="glossary.html#entry--Rust">Rust</a> bindings provided by the <code>rust-htslib</code> crate.</p>
414<h3 id="entry--bgzip"><a class="header" href="#entry--bgzip"><strong>bgzip</strong></a></h3>
415<p>Compression tool that produces <a href="glossary.html#entry--BGZF" title="Blocked GNU Zip Format">BGZF</a> files, commonly used to compress <a href="glossary.html#entry--VCF" title="Variant Call Format">VCF</a> and <a href="glossary.html#entry--BAM" title="Binary Alignment Map">BAM</a> files. Part of <a href="glossary.html#entry--samtools">SAMtools</a>. <a href="https://www.htslib.org/doc/bgzip.html">Homepage</a>.</p>
416<h3 id="entry--tabix"><a class="header" href="#entry--tabix"><strong>tabix</strong></a></h3>
417<p>An indexing tool for tab-delimited files, such as <a href="glossary.html#entry--VCF" title="Variant Call Format">VCF</a> and <a href="glossary.html#entry--BED" title="Browser Extensible Data">BED</a> files. It creates an index file that allows for efficient random access to specific regions of the file. Part of <a href="glossary.html#entry--samtools">SAMtools</a>. <a href="https://www.htslib.org/doc/tabix.html">Homepage</a></p>
418<h3 id="entry--dragen"><a class="header" href="#entry--dragen"><strong>DRAGEN</strong></a></h3>
419<p>Illumina DRAGEN (Dynamic Read Analysis for GENomics) is a platform for genomic data analysis, providing alignment, variant calling, and other bioinformatics tasks. <a href="https://www.illumina.com/products/by-type/informatics-products/dragen-secondary-analysis.html">Homepage</a></p>
420<h3 id="entry--bismark"><a class="header" href="#entry--bismark"><strong>Bismark</strong></a></h3>
421<p>A tool to map bisulfite converted sequence reads and determine cytosine methylation states. <a href="https://felixkrueger.github.io/Bismark/">Homepage</a></p>
422<h3 id="entry--SLURM"><a class="header" href="#entry--SLURM"><strong>SLURM</strong> – Simple Linux Utility for Resource Management</a></h3>
423<p>An open-source job scheduler used in high-performance computing environments to manage and allocate resources for computational tasks. It allows users to submit, monitor, and control jobs on a cluster of computers. <a href="https://slurm.schedmd.com/">Homepage</a></p>
424
425                    </main>
426
427                    <nav class="nav-wrapper" aria-label="Page navigation">
428                        <!-- Mobile navigation buttons -->
429                            <a rel="prev" href="architecture.html" class="mobile-nav-chapter
429s previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
430                                <i class="fa fa-angle-left"></i>
431                            </a>
432
433
434                        <div style="clear: both"></div>
435                    </nav>
436                </div>
437            </div>
438
439            <nav class="nav-wide-wrapper" aria-label="Page navigation">
440                    <a rel="prev" href="architecture.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
441                        <i class="fa fa-angle-left"></i>
442                    </a>
443
444            </nav>
445
446        </div>
447
448        <!-- Livereload script (if served using the cli tool) -->
449        
449<script>
450            const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
451            const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
452            const socket = new WebSocket(wsAddress);
453            socket.onmessage = function (event) {
454                if (event.data === "reload") {
455                    socket.close();
456                    location.reload();
457                }
458            };
459
460            window.onbeforeunload = function() {
461                socket.close();
462            }
463        </script>
463
464
465
466
467        
467<script>
468            window.playground_copyable = true;
469        </script>
469
470
471
472        
472<script src="elasticlunr.min.js"></script>
472
473        
473<script src="mark.min.js"></script>
473
474        
474<script src="searcher.js"></script>
474
475
476        
476<script src="clipboard.min.js"></script>
476
477        
477<script src="highlight.js"></script>
477
478        
478<script src="book.js"></script>
478
479
480        <!-- Custom JS scripts -->
481        
481<script src="mermaid.min.js"></script>
481
482        
482<script src="mermaid-init.js"></script>
482
483        
483<script src="theme/silktide-consent-manager.js"></script>
483
484
485
486
487    </div>
488    </body>
489</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.