1 2<!doctype html> 3<html lang="en" class="no-js"> 4 <head> 5 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width,initial-scale=1"> 8 9 10 11 12 <link rel="prev" href=".."> 13 14 15 <link rel="next" href="../00_orientation/"> 16 17 18 19 20 21 <link rel="icon" href="../assets/images/taxoflow_logo.svg"> 22 <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.4"> 23 24 25 26 <title>Precourse preparations - TaxoFlow - The Tutorial</title> 27 28 29 30 <link rel="stylesheet" href="../assets/stylesheets/main.484c7ddc.min.css"> 31 32 33 <link rel="stylesheet" href="../assets/stylesheets/palette.ab4e12ef.min.css"> 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 <style>:root{--md-admonition-icon--catalog:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8.347.631A.75.75%200%200%201%209.123.26l.238.04a3.25%203.25%200%200%201%202.591%204.098L11.494%206h.665a3.25%203.25%200%200%201%203.118%204.167l-1.135%203.859A2.75%202.75%200%200%201%2011.503%2016H6.586a3.75%203.75%200%200%201-2.184-.702A1.75%201.75%200%200%201%203%2016H1.75A1.75%201.75%200%200%201%200%2014.25v-6.5C0%206.784.784%206%201.75%206h3.417a.25.25%200%200%200%20.217-.127ZM4.75%2013.649l.396.33c.404.337.914.521%201.44.521h4.917a1.25%201.25%200%200%200%201.2-.897l1.135-3.859A1.75%201.75%200%200%200%2012.159%207.5H10.5a.75.75%200%200%201-.721-.956l.731-2.558a1.75%201.75%200%200%200-1.127-2.14L6.69%206.611a1.75%201.75%200%200%201-1.523.889H4.75ZM3.25%207.5h-1.5a.25.25%200%200%200-.25.25v6.5c0%20.138.112.25.25.25H3a.25.25%200%200%200%20.25-.25Z%22/%3E%3C/svg%3E');--md-admonition-icon--courses:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M0%201.75A.75.75%200%200%201%20.75%201h4.253c1.227%200%202.317.59%203%201.501A3.74%203.74%200%200%201%2011.006%201h4.245a.75.75%200%200%201%20.75.75v10.5a.75.75%200%200%201-.75.75h-4.507a2.25%202.25%200%200%200-1.591.659l-.622.621a.75.75%200%200%201-1.06%200l-.622-.621A2.25%202.25%200%200%200%205.258%2013H.75a.75.75%200%200%201-.75-.75Zm7.251%2010.324.004-5.073-.002-2.253A2.25%202.25%200%200%200%205.003%202.5H1.5v9h3.757a3.75%203.75%200%200%201%201.994.574M8.755%204.75l-.004%207.322a3.75%203.75%200%200%201%201.992-.572H14.5v-9h-3.495a2.25%202.25%200%200%200-2.25%202.25%22/%3E%3C/svg%3E');--md-admonition-icon--terminal:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M0%202.75C0%201.784.784%201%201.75%201h12.5c.966%200%201.75.784%201.75%201.75v10.5A1.75%201.75%200%200%201%2014.25%2015H1.75A1.75%201.75%200%200%201%200%2013.25Zm1.75-.25a.25.25%200%200%200-.25.25v10.5c0%20.138.112.25.25.25h12.5a.25.25%200%200%200%20.25-.25V2.75a.25.25%200%200%200-.25-.25ZM7.25%208a.75.75%200%200%201-.22.53l-2.25%202.25a.749.749%200%200%201-1.275-.326.75.75%200%200%201%20.215-.734L5.44%208%203.72%206.28a.749.749%200%200%201%20.326-1.275.75.75%200%200%201%20.734.215l2.25%202.25c.141.14.22.331.22.53m1.5%201.5h3a.75.75%200%200%201%200%201.5h-3a.75.75%200%200%201%200-1.5%22/%3E%3C/svg%3E');--md-admonition-icon--full-code:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M5%203c-1.1%200-2%20.9-2%202s-.9%202-2%202v2c1.1%200%202%20.9%202%202s.9%202%202%202h2v-2H5v-1c0-1.1-.9-2-2-2%201.1%200%202-.9%202-2V5h2V3m4%200c1.1%200%202%20.9%202%202s.9%202%202%202v2c-1.1%200-2%20.9-2%202s-.9%202-2%202H9v-2h2v-1c0-1.1.9-2%202-2-1.1%200-2-.9-2-2V5H9V3zm11%203v12c0%201.11-.89%202-2%202H4a2%202%200%200%201-2-2v-3h2v3h16V6h-2.97V4H20c1.11%200%202%20.89%202%202%22/%3E%3C/svg%3E');--md-admonition-icon--learning:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M7.693%201.066a.75.75%200%200%201%20.614%200l7.25%203.25a.75.75%200%200%201%200%201.368L13%206.831v2.794c0%201.024-.81%201.749-1.66%202.173-.893.447-2.075.702-3.34.702q-.417%200-.816-.036a.75.75%200%200%201%20.133-1.494Q7.649%2011%208%2011c1.082%200%202.025-.221%202.67-.543.69-.345.83-.682.83-.832V7.503L8.307%208.934a.75.75%200%200%201-.614%200L4%207.28v1.663c.296.105.575.275.812.512.438.438.688%201.059.688%201.796v3a.75.75%200%200%201-.75.75h-3a.75.75%200%200%201-.75-.75v-3c0-.737.25-1.358.688-1.796.237-.237.516-.407.812-.512V6.606L.443%205.684a.75.75%200%200%201%200-1.368ZM2.583%205%208%207.428%2013.416%205%208%202.572ZM2.5%2011.25v2.25H4v-2.25c0-.388-.125-.611-.25-.735a.7.7%200%200%200-.5-.203.7.7%200%200%200-.5.203c-.125.124-.25.347-.25.735%22/%3E%3C/svg%3E');--md-admonition-icon--people:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M2%205.5a3.5%203.5%200%201%201%205.898%202.549%205.51%205.51%200%200%201%203.034%204.084.75.75%200%201%201-1.482.235%204
79%204%200%200%200-7.9%200%20.75.75%200%200%201-1.482-.236A5.5%205.5%200%200%201%203.102%208.05%203.5%203.5%200%200%201%202%205.5M11%204a3.001%203.001%200%200%201%202.22%205.018%205%205%200%200%201%202.56%203.012.749.749%200%200%201-.885.954.75.75%200%200%201-.549-.514%203.51%203.51%200%200%200-2.522-2.372.75.75%200%200%201-.574-.73v-.352a.75.75%200%200%201%20.416-.672A1.5%201.5%200%200%200%2011%205.5.75.75%200%200%201%2011%204m-5.5-.5a2%202%200%201%200-.001%203.999A2%202%200%200%200%205.5%203.5%22/%3E%3C/svg%3E');--md-admonition-icon--licensing:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8.75.75V2h.985c.304%200%20.603.08.867.231l1.29.736q.058.033.124.033h2.234a.75.75%200%200%201%200%201.5h-.427l2.111%204.692a.75.75%200%200%201-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04q-.317.265-.686.45C14.556%2010.78%2013.88%2011%2013%2011a4.5%204.5%200%200%201-2.023-.454%203.5%203.5%200%200%201-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75%200%200%201-.154-.838L12.178%204.5h-.162c-.305%200-.604-.079-.868-.231l-1.29-.736a.25.25%200%200%200-.124-.033H8.75V13h2.5a.75.75%200%200%201%200%201.5h-6.5a.75.75%200%200%201%200-1.5h2.5V3.5h-.984a.25.25%200%200%200-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112%204.692a.75.75%200%200%201-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04q-.317.265-.686.45C4.556%2010.78%203.88%2011%203%2011a4.5%204.5%200%200%201-2.023-.454%203.5%203.5%200%200%201-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75%200%200%201-.154-.838L2.178%204.5H1.75a.75.75%200%200%201%200-1.5h2.234a.25.25%200%200%200%20.125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75%200%200%201%201.5%200m2.945%208.477c.285.135.718.273%201.305.273s1.02-.138%201.305-.273L13%206.327Zm-10%200c.285.135.718.273%201.305.273s1.02-.138%201.305-.273L3%206.327Z%22/%3E%3C/svg%3E');--md-admonition-icon--videos:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M0%203.75C0%202.784.784%202%201.75%202h12.5c.966%200%201.75.784%201.75%201.75v8.5A1.75%201.75%200%200%201%2014.25%2014H1.75A1.75%201.75%200%200%201%200%2012.25Zm1.75-.25a.25.25%200%200%200-.25.25v8.5c0%20.138.112.25.25.25h12.5a.25.25%200%200%200%20.25-.25v-8.5a.25.25%200%200%200-.25-.25Z%22/%3E%3Cpath%20d%3D%22M6%2010.559V5.442a.25.25%200%200%201%20.379-.215l4.264%202.559a.25.25%200%200%201%200%20.428l-4.264%202.559A.25.25%200%200%201%206%2010.559%22/%3E%3C/svg%3E');}</style> 80 81 82 83 84 85 86 87 88 89 90 91 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 92 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"> 93 <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> 94 95 96 97 <link rel="stylesheet" href="../stylesheets/extra.css"> 98 99
99<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
99 100 101 102 103 104 105 </head> 106 107 108 109 110 111 112 113 114 115 <body dir="ltr" data-md-color-scheme="clear" data-md-color-primary="indigo" data-md-color-accent="indigo"> 116 117 118 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> 119 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> 120 <label class="md-overlay" for="__drawer"></label> 121 <div data-md-component="skip"> 122 123 124 <a href="#course-goal" class="md-skip"> 125 Skip to content 126 </a> 127 128 </div> 129 <div data-md-component="announce"> 130 131 </div> 132 133 <div data-md-color-scheme="default" data-md-component="outdated" hidden> 134 135 <aside class="md-banner md-banner--warning"> 136 <div class="md-banner__inner md-grid md-typeset"> 137 138 You're not viewing the latest version. 139 <a href="../.."> 140 <strong>Click here to go to latest.</strong> 141 </a> 142 143 </div> 144
144<script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL(".."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
144 145 </aside> 146 147 </div> 148 149 150 151 152 153 154<header class="md-header md-header--shadow" data-md-component="header"> 155 <nav class="md-header__inner md-grid" aria-label="Header"> 156 <a href=".." title="TaxoFlow - The Tutorial" class="md-header__button md-logo" aria-label="TaxoFlow - The Tutorial" data-md-component="logo"> 157 158 <img src="../assets/images/taxoflow_logo.svg" alt="logo"> 159 160 </a> 161 <label class="md-header__button md-icon" for="__drawer"> 162 163 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> 164 </label> 165 <div class="md-header__title" data-md-component="header-title"> 166 <div class="md-header__ellipsis"> 167 <div class="md-header__topic"> 168 <span class="md-ellipsis"> 169 TaxoFlow - The Tutorial 170 </span> 171 </div> 172 <div class="md-header__topic" data-md-component="header-topic"> 173 <span class="md-ellipsis"> 174 175 Precourse preparations 176 177 </span> 178 </div> 179 </div> 180 </div> 181 182 183 <form class="md-header__option" data-md-component="palette"> 184 185 186 187 188 <input class="md-option" data-md-color-media="" data-md-color-scheme="clear" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0"> 189 190 <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden> 191 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> 192 </label> 193 194 195 196 197 198 <input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1"> 199 200 <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden> 201 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> 202 </label> 203 204 205</form> 206 207 208 209
209<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
209 210 211 212 213 214 215 <label class="md-header__button md-icon" for="__search"> 216 217 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> 218 </label> 219 <div class="md-search" data-md-component="search" role="dialog"> 220 <label class="md-search__overlay" for="__search"></label> 221 <div class="md-search__inner" role="search"> 222 <form class="md-search__form" name="search"> 223 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> 224 <label class="md-search__icon md-icon" for="__search"> 225 226 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> 227 228 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> 229 </label> 230 <nav class="md-search__options" aria-label="Search"> 231 232 <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1"> 233 234 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> 235 </button> 236 </nav> 237 238 </form> 239 <div class="md-search__output"> 240 <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix> 241 <div class="md-search-result" data-md-component="search-result"> 242 <div class="md-search-result__meta"> 243 Initializing search 244 </div> 245 <ol class="md-search-result__list" role="presentation"></ol> 246 </div> 247 </div> 248 </div> 249 </div> 250</div> 251 252 253 254 <div class="md-header__source"> 255 <a href="https://github.com/jeffe107/taxoflow_tutorial" title="Go to repository" class="md-source" data-md-component="source"> 256 <div class="md-source__icon md-icon"> 257 258 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> 259 </div> 260 <div class="md-source__repository"> 261 jeffe107/taxoflow_tutorial 262 </div> 263</a> 264 </div> 265 266 </nav> 267 268</header> 269 270 <div class="md-container" data-md-component="container"> 271 272 273 274 275 276 277 <main class="md-main" data-md-component="main"> 278 <div class="md-main__inner md-grid"> 279 280 281 282 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > 283 <div class="md-sidebar__scrollwrap"> 284 <div class="md-sidebar__inner"> 285 286 287 288 289<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> 290 <label class="md-nav__title" for="__drawer"> 291 <a href=".." title="TaxoFlow - The Tutorial" class="md-nav__button md-logo" aria-label="TaxoFlow - The Tutorial" data-md-component="logo"> 292 293 <img src="../assets/images/taxoflow_logo.svg" alt="logo"> 294 295 </a> 296 TaxoFlow - The Tutorial 297 </label> 298 299 <div class="md-nav__source"> 300 <a href="https://github.com/jeffe107/taxoflow_tutorial" title="Go to repository" class="md-source" data-md-component="source"> 301 <div class="md-source__icon md-icon"> 302 303 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m
303-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> 304 </div> 305 <div class="md-source__repository"> 306 jeffe107/taxoflow_tutorial 307 </div> 308</a> 309 </div> 310 311 <ul class="md-nav__list" data-md-scrollfix> 312 313 314 315 316 317 318 319 <li class="md-nav__item"> 320 <a href=".." class="md-nav__link"> 321 322 323 324 <span class="md-ellipsis"> 325 326 327 Home 328 329 330 331 </span> 332 333 334 335 </a> 336 </li> 337 338 339 340 341 342 343 344 345 346 347 348 <li class="md-nav__item md-nav__item--active"> 349 350 <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> 351 352 353 354 <label class="md-nav__link md-nav__link--active" for="__toc"> 355 356 357 358 <span class="md-ellipsis"> 359 360 361 Precourse preparations 362 363 364 365 </span> 366 367 368 369 <span class="md-nav__icon md-icon"></span> 370 </label> 371 372 <a href="./" class="md-nav__link md-nav__link--active"> 373 374 375 376 <span class="md-ellipsis"> 377 378 379 Precourse preparations 380 381 382 383 </span> 384 385 386 387 </a> 388 389 390<nav class="md-nav md-nav--secondary" aria-label="Table of contents"> 391 392 <label class="md-nav__title" for="__toc"> 393 <span class="md-nav__icon md-icon"></span> 394 Table of contents 395 </label> 396 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> 397 <li class="md-nav__item"> 398 <a href="#course-goal" class="md-nav__link"> 399 <span class="md-ellipsis"> 400 401 Course goal 402 403 </span> 404 </a> 405 406</li> <li class="md-nav__item"> 407 <a href="#background-knowledge" class="md-nav__link"> 408 <span class="md-ellipsis"> 409 410 Background knowledge 411 412 </span> 413 </a> 414 415 <nav class="md-nav" aria-label="Background knowledge"> 416 <ul class="md-nav__list"> 417 418 <li class="md-nav__item"> 419 <a href="#unix" class="md-nav__link"> 420 <span class="md-ellipsis"> 421 422 UNIX 423 424 </span> 425 </a> 426 427</li> 428 429 </ul> 430 </nav> 431 432</li> <li class="md-nav__item"> 433 <a href="#software" class="md-nav__link"> 434 <span class="md-ellipsis"> 435 436 Software 437 438 </span> 439 </a> 440 441 <nav class="md-nav" aria-label="Software"> 442 <ul class="md-nav__list"> 443 444 <li class="md-nav__item"> 445 <a href="#os" class="md-nav__link"> 446 <span class="md-ellipsis"> 447 448 OS 449 450 </span> 451 </a> 452 453</li> 454 455 <li class="md-nav__item"> 456 <a href="#github-codespaces-code-editor" class="md-nav__link"> 457 <span class="md-ellipsis"> 458 459 GitHub Codespaces - Code editor 460 461 </span> 462 </a> 463 464 <nav class="md-nav" aria-label="GitHub Codespaces - Code editor"> 465 <ul class="md-nav__list"> 466 467 <li class="md-nav__item"> 468 <a href="#vs-code-video-tutorial" class="md-nav__link"> 469 <span class="md-ellipsis"> 470 471 VS code video tutorial 472 473 </span> 474 </a> 475 476</li> 477 478 </ul> 479 </nav> 480 481</li> 482 483 <li class="md-nav__item"> 484 <a href="#alternative-installations" class="md-nav__link"> 485 <span class="md-ellipsis"> 486 487 Alternative installations 488 489 </span> 490 </a> 491 492</li> 493 494 <li class="md-nav__item"> 495 <a href="#pipeline-specific-tools" class="md-nav__link"> 496 <span class="md-ellipsis"> 497 498 Pipeline-specific tools 499 500 </span> 501 </a> 502 503</li> 504 505 </ul> 506 </nav> 507 508</li> <li class="md-nav__item"> 509 <a href="#website-colour-code-explanation" class="md-nav__link"> 510 <span class="md-ellipsis"> 511 512 Website colour code explanation 513 514 </span> 515 </a> 516 517</li> 518 </ul> 519 520</nav> 521<nav class="md-nav md-nav--secondary sidebar_resources" aria-label="Resources"> 522 <label class="md-nav__title">Resources</label> 523 <ul class="md-nav__list"> 524 <li class="md-nav__item"> 525 <!-- Community forum (training) --> 526 <a 527 href="https://www.preprints.org/manuscript/202512.1989" 528 target="_blank" 529 rel="noopener" 530 class="md-nav__link" 531 >
532 <span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m19 2-5 4.5v11l5-4.5zM6.5 5C4.55 5 2.45 5.4 1 6.5v14.66c0 .25.25.5.5.5.1 0 .15-.07.25-.07 1.35-.65 3.3-1.09 4.75-1.09 1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.31 4.75 1.06.1.05.15.03.25.03.25 0 .5-.25.5-.5V6.5c-.6-.45-1.25-.75-2-1V19c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V6.5C10.55 5.4 8.45 5 6.5 5"/></svg></span> 533 Paper 534 </a> 535 </li> 536 <li class="md-nav__item"> 537 <!-- Nextflow slack --> 538 <a 539 href="https://www.nextflow.io/slack-invite.html" 540 target="_blank" 541 rel="noopener" 542 class="md-nav__link" 543 > 544 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 545 <path 546 d="M6 15a2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2h2v2m1 0a2 2 0 0 1 2-2 2 2 0 0 1 2 2v5a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-5m2-8a2 2 0 0 1-2-2 2 2 0 0 1 2-2 2 2 0 0 1 2 2v2H9m0 1a2 2 0 0 1 2 2 2 2 0 0 1-2 2H4a2 2 0 0 1-2-2 2 2 0 0 1 2-2h5m8 2a2 2 0 0 1 2-2 2 2 0 0 1 2 2 2 2 0 0 1-2 2h-2v-2m-1 0a2 2 0 0 1-2 2 2 2 0 0 1-2-2V5a2 2 0 0 1 2-2 2 2 0 0 1 2 2v5m-2 8a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2v-2h2m0-1a2 2 0 0 1-2-2 2 2 0 0 1 2-2h5a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-5Z" 547 ></path> 548 </svg> 549 Nextflow Slack 550 </a> 551 </li> 552 <li class="md-nav__item"> 553 <!-- Github issues --> 554 <a 555 href="https://github.com/jeffe107/taxoflow_tutorial/issues" 556 target="_blank" 557 rel="noopener" 558 class="md-nav__link" 559 > 560 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 561 <path 562 d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34-.46-1.16-1.11-1.47-1.11-1.47-.91-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.87 1.52 2.34 1.07 2.91.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.92 0-1.11.38-2 1.03-2.71-.1-.25-.45-1.29.1-2.64 0 0 .84-.27 2.75 1.02.79-.22 1.65-.33 2.5-.33.85 0 1.71.11 2.5.33 1.91-1.29 2.75-1.02 2.75-1.02.55 1.35.2 2.39.1 2.64.65.71 1.03 1.6 1.03 2.71 0 3.82-2.34 4.66-4.57 4.91.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2Z" 563 ></path> 564 </svg> 565 GitHub issues 566 </a> 567 </li> 568 <li class="md-nav__item"> 569 <!-- Nextflow docs --> 570 <a 571 href="https://nextflow.io/docs/latest/index.html" 572 target="_blank" 573 rel="noopener" 574 class="md-nav__link" 575 > 576 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 577 <path 578 d="M17.5 14.33c.79 0 1.63.08 2.5.24v1.5c-.62-.16-1.46-.24-2.5-.24-1.9 0-3.39.33-4.5.99v-1.69c1.17-.53 2.67-.8 4.5-.8M13 12.46c1.29-.53 2.79-.79 4.5-.79.79 0 1.63.07 2.5.23v1.5c-.62-.16-1.46-.24-2.5-.24-1.9 0-3.39.34-4.5.99m4.5-3.65c-1.9 0-3.39.32-4.5 1V9.84c1.23-.56 2.73-.84 4.5-.84.79 0 1.63.08 2.5.23v1.55c-.74-.19-1.59-.28-2.5-.28m3.5 8V7c-1.04-.33-2.21-.5-3.5-.5-2.05 0-3.88.5-5.5 1.5v11.5c1.62-1 3.45-1.5 5.5-1.5 1.19 0 2.36.16 3.5.5m-3.5-14c2.35 0 4.19.5 5.5 1.5v14.56c0 .12-.05.24-.16.35-.11.09-.23.17-.34.17-.11 0-.19-.02-.25-.05-1.28-.69-2.87-1.03-4.75-1.03-2.05 0-3.88.5-5.5 1.5-1.34-1-3.17-1.5-5.5-1.5-1.66 0-3.25.36-4.75 1.07-.03.01-.07.01-.12.03-.04.01-.08.02-.13.02-.11 0-.23-.04-.34-.12a.475.475 0 0 1-.16-.35V6c1.34-1 3.18-1.5 5.5-1.5 2.33 0 4.16.5 5.5 1.5 1.34-1 3.17-1.5 5.5-1.5Z" 579 ></path> 580 </svg> 581 Nextflow Docs 582 </a> 583 </li> 584 </ul> 585</nav> 586 587 </li> 588 589 590 591 592 593 594 595 596 597 <li class="md-nav__item"> 598 <a href="../00_orientation/" class="md-nav__link"> 599 600 601 602 <span class="md-ellipsis"> 603 604 605 Orientation 606 607 608 609 </span> 610 611 612 613 </a> 614 </li> 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 <li class="md-nav__item md-nav__item--nested"> 630 631 632 633 <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" > 634 635 636 <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0"> 637 638 639 640 <span class="md-ellipsis"> 641 642 643 Course material 644 645 646 647 </span> 648 649 650
651 <span class="md-nav__icon md-icon"></span> 652 </label> 653 654 <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false"> 655 <label class="md-nav__title" for="__nav_4"> 656 <span class="md-nav__icon md-icon"></span> 657 658 659 Course material 660 661 662 </label> 663 <ul class="md-nav__list" data-md-scrollfix> 664 665 666 667 668 669 670 671 <li class="md-nav__item"> 672 <a href="../course_material/01_pipeline/" class="md-nav__link"> 673 674 675 676 <span class="md-ellipsis"> 677 678 679 Part 1 - Pipeline 680 681 682 683 </span> 684 685 686 687 </a> 688 </li> 689 690 691 692 693 694 695 696 697 698 699 <li class="md-nav__item"> 700 <a href="../course_material/02_single-sample/" class="md-nav__link"> 701 702 703 704 <span class="md-ellipsis"> 705 706 707 Part 2 - Single sample 708 709 710 711 </span> 712 713 714 715 </a> 716 </li> 717 718 719 720 721 722 723 724 725 726 727 <li class="md-nav__item"> 728 <a href="../course_material/03_multi-sample/" class="md-nav__link"> 729 730 731 732 <span class="md-ellipsis"> 733 734 735 Part 3 - Multisample 736 737 738 739 </span> 740 741 742 743 </a> 744 </li> 745 746 747 748 749 </ul> 750 </nav> 751 752 </li> 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 <li class="md-nav__item md-nav__item--nested"> 768 769 770 771 <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" > 772 773 774 <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0"> 775 776 777 778 <span class="md-ellipsis"> 779 780 781 Environments 782 783 784 785 </span> 786 787 788 789 <span class="md-nav__icon md-icon"></span> 790 </label> 791 792 <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false"> 793 <label class="md-nav__title" for="__nav_5"> 794 <span class="md-nav__icon md-icon"></span> 795 796 797 Environments 798 799 800 </label> 801 <ul class="md-nav__list" data-md-scrollfix> 802 803 804 805 806 807 808 809 <li class="md-nav__item"> 810 <a href="../envsetup/" class="md-nav__link"> 811 812 813 814 <span class="md-ellipsis"> 815 816 817 Environment options 818 819 820 821 </span> 822 823 824 825 </a> 826 </li> 827 828 829 830 831 832 833 834 835 836 837 <li class="md-nav__item"> 838 <a href="../envsetup/01_setup/" class="md-nav__link"> 839 840 841 842 <span class="md-ellipsis"> 843 844 845 GitHub Codespaces 846 847 848 849 </span> 850 851 852 853 </a> 854 </li> 855 856 857 858 859 860 861 862 863 864 865 <li class="md-nav__item"> 866 <a href="../envsetup/03_devcontainer/" class="md-nav__link"> 867 868 869 870 <span class="md-ellipsis"> 871 872 873 Local Devcontainers 874 875 876 877 </span> 878 879 880 881 </a> 882 </li> 883 884 885 886 887 888 889 890 891 892 893 <li class="md-nav__item"> 894 <a href="../envsetup/02_local/" class="md-nav__link"> 895 896 897 898 <span class="md-ellipsis"> 899 900 901 Manual installation 902 903 904 905 </span> 906 907 908 909 </a> 910 </li> 911 912 913 914 915 916 917 918 919 920 921 <li class="md-nav__item"> 922 <a href="../envsetup/04_sandbox/" class="md-nav__link"> 923 924 925 926 <span class="md-ellipsis"> 927 928 929 CodeSandbox 930 931 932 933 </span> 934 935 936 937 </a> 938 </li> 939 940 941 942 943 944 945 946 947 948 949 <li class="md-nav__item"> 950 <a href="../envsetup/05_HPC/" class="md-nav__link"> 951 952 953 954 <span class="md-ellipsis"> 955 956 957 HPC installation 958 959 960 961 </span> 962 963 964 965 </a> 966 </li> 967 968 969 970 971 </ul> 972 </nav> 973 974 </li> 975 976 977 978 </ul> 979</nav> 980 </div> 981 </div> 982 </div> 983 984 985 986 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > 987 <div class="md-sidebar__scrollwrap"> 988 <div class="md-sidebar__inner"> 989 990<nav class="md-nav md-nav--secondary" aria-label="Table of contents"> 991 992 <label class="md-nav__title" for="__toc"> 993 <span class="md-nav__icon md-icon"></span> 994 Table of contents 995 </label> 996 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> 997 <li class="md-nav__item"> 998 <a href="#course-goal" class="md-nav__link"> 999 <span class="md-ellipsis"> 1000 1001 Course goal 1002 1003 </span> 1004 </a> 1005 1006</li> <li class="md-nav__item"> 1007 <a href="#background-knowledge" class="md-nav__link"> 1008 <span class="md-ellipsis"> 1009
1010 Background knowledge 1011 1012 </span> 1013 </a> 1014 1015 <nav class="md-nav" aria-label="Background knowledge"> 1016 <ul class="md-nav__list"> 1017 1018 <li class="md-nav__item"> 1019 <a href="#unix" class="md-nav__link"> 1020 <span class="md-ellipsis"> 1021 1022 UNIX 1023 1024 </span> 1025 </a> 1026 1027</li> 1028 1029 </ul> 1030 </nav> 1031 1032</li> <li class="md-nav__item"> 1033 <a href="#software" class="md-nav__link"> 1034 <span class="md-ellipsis"> 1035 1036 Software 1037 1038 </span> 1039 </a> 1040 1041 <nav class="md-nav" aria-label="Software"> 1042 <ul class="md-nav__list"> 1043 1044 <li class="md-nav__item"> 1045 <a href="#os" class="md-nav__link"> 1046 <span class="md-ellipsis"> 1047 1048 OS 1049 1050 </span> 1051 </a> 1052 1053</li> 1054 1055 <li class="md-nav__item"> 1056 <a href="#github-codespaces-code-editor" class="md-nav__link"> 1057 <span class="md-ellipsis"> 1058 1059 GitHub Codespaces - Code editor 1060 1061 </span> 1062 </a> 1063 1064 <nav class="md-nav" aria-label="GitHub Codespaces - Code editor"> 1065 <ul class="md-nav__list"> 1066 1067 <li class="md-nav__item"> 1068 <a href="#vs-code-video-tutorial" class="md-nav__link"> 1069 <span class="md-ellipsis"> 1070 1071 VS code video tutorial 1072 1073 </span> 1074 </a> 1075 1076</li> 1077 1078 </ul> 1079 </nav> 1080 1081</li> 1082 1083 <li class="md-nav__item"> 1084 <a href="#alternative-installations" class="md-nav__link"> 1085 <span class="md-ellipsis"> 1086 1087 Alternative installations 1088 1089 </span> 1090 </a> 1091 1092</li> 1093 1094 <li class="md-nav__item"> 1095 <a href="#pipeline-specific-tools" class="md-nav__link"> 1096 <span class="md-ellipsis"> 1097 1098 Pipeline-specific tools 1099 1100 </span> 1101 </a> 1102 1103</li> 1104 1105 </ul> 1106 </nav> 1107 1108</li> <li class="md-nav__item"> 1109 <a href="#website-colour-code-explanation" class="md-nav__link"> 1110 <span class="md-ellipsis"> 1111 1112 Website colour code explanation 1113 1114 </span> 1115 </a> 1116 1117</li> 1118 </ul> 1119 1120</nav> 1121<nav class="md-nav md-nav--secondary sidebar_resources" aria-label="Resources"> 1122 <label class="md-nav__title">Resources</label> 1123 <ul class="md-nav__list"> 1124 <li class="md-nav__item"> 1125 <!-- Community forum (training) --> 1126 <a 1127 href="https://www.preprints.org/manuscript/202512.1989" 1128 target="_blank" 1129 rel="noopener" 1130 class="md-nav__link" 1131 > 1132 <span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m19 2-5 4.5v11l5-4.5zM6.5 5C4.55 5 2.45 5.4 1 6.5v14.66c0 .25.25.5.5.5.1 0 .15-.07.25-.07 1.35-.65 3.3-1.09 4.75-1.09 1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.31 4.75 1.06.1.05.15.03.25.03.25 0 .5-.25.5-.5V6.5c-.6-.45-1.25-.75-2-1V19c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V6.5C10.55 5.4 8.45 5 6.5 5"/></svg></span> 1133 Paper 1134 </a> 1135 </li> 1136 <li class="md-nav__item"> 1137 <!-- Nextflow slack --> 1138 <a 1139 href="https://www.nextflow.io/slack-invite.html" 1140 target="_blank" 1141 rel="noopener" 1142 class="md-nav__link" 1143 > 1144 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1145 <path 1146 d="M6 15a2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2h2v2m1 0a2 2 0 0 1 2-2 2 2 0 0 1 2 2v5a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-5m2-8a2 2 0 0 1-2-2 2 2 0 0 1 2-2 2 2 0 0 1 2 2v2H9m0 1a2 2 0 0 1 2 2 2 2 0 0 1-2 2H4a2 2 0 0 1-2-2 2 2 0 0 1 2-2h5m8 2a2 2 0 0 1 2-2 2 2 0 0 1 2 2 2 2 0 0 1-2 2h-2v-2m-1 0a2 2 0 0 1-2 2 2 2 0 0 1-2-2V5a2 2 0 0 1 2-2 2 2 0 0 1 2 2v5m-2 8a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2v-2h2m0-1a2 2 0 0 1-2-2 2 2 0 0 1 2-2h5a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-5Z" 1147 ></path> 1148 </svg> 1149 Nextflow Slack 1150 </a> 1151 </li> 1152 <li class="md-nav__item"> 1153 <!-- Github issues --> 1154 <a 1155 href="https://github.com/jeffe107/taxoflow_tutorial/issues" 1156 target="_blank" 1157 rel="noopener" 1158 class="md-nav__link" 1159 > 1160 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1161 <path 1162 d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34-.46-1.16-1.11-1.47-1.11-1.47-.91-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.87 1.52 2.34 1.07 2.91.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.92 0-1.11.38-2 1.03-2.71-.1-.25-.45-1.29.1-2.64 0 0 .84-.27 2.75 1.02.79-.22 1.65-.33 2.5-.33.85 0 1.71.11 2.5.33 1.91-1.29 2.75-1.02 2.75-1.02.55 1.35.2 2.39.1 2.64.65.71 1.03
11621.6 1.03 2.71 0 3.82-2.34 4.66-4.57 4.91.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2Z" 1163 ></path> 1164 </svg> 1165 GitHub issues 1166 </a> 1167 </li> 1168 <li class="md-nav__item"> 1169 <!-- Nextflow docs --> 1170 <a 1171 href="https://nextflow.io/docs/latest/index.html" 1172 target="_blank" 1173 rel="noopener" 1174 class="md-nav__link" 1175 > 1176 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1177 <path 1178 d="M17.5 14.33c.79 0 1.63.08 2.5.24v1.5c-.62-.16-1.46-.24-2.5-.24-1.9 0-3.39.33-4.5.99v-1.69c1.17-.53 2.67-.8 4.5-.8M13 12.46c1.29-.53 2.79-.79 4.5-.79.79 0 1.63.07 2.5.23v1.5c-.62-.16-1.46-.24-2.5-.24-1.9 0-3.39.34-4.5.99m4.5-3.65c-1.9 0-3.39.32-4.5 1V9.84c1.23-.56 2.73-.84 4.5-.84.79 0 1.63.08 2.5.23v1.55c-.74-.19-1.59-.28-2.5-.28m3.5 8V7c-1.04-.33-2.21-.5-3.5-.5-2.05 0-3.88.5-5.5 1.5v11.5c1.62-1 3.45-1.5 5.5-1.5 1.19 0 2.36.16 3.5.5m-3.5-14c2.35 0 4.19.5 5.5 1.5v14.56c0 .12-.05.24-.16.35-.11.09-.23.17-.34.17-.11 0-.19-.02-.25-.05-1.28-.69-2.87-1.03-4.75-1.03-2.05 0-3.88.5-5.5 1.5-1.34-1-3.17-1.5-5.5-1.5-1.66 0-3.25.36-4.75 1.07-.03.01-.07.01-.12.03-.04.01-.08.02-.13.02-.11 0-.23-.04-.34-.12a.475.475 0 0 1-.16-.35V6c1.34-1 3.18-1.5 5.5-1.5 2.33 0 4.16.5 5.5 1.5 1.34-1 3.17-1.5 5.5-1.5Z" 1179 ></path> 1180 </svg> 1181 Nextflow Docs 1182 </a> 1183 </li> 1184 </ul> 1185</nav> 1186 </div> 1187 </div> 1188 </div> 1189 1190 1191 1192 <div class="md-content" data-md-component="content"> 1193 1194 <article class="md-content__inner md-typeset"> 1195 1196 1197 1198 1199 1200 1201 1202 1203 <h1>Precourse preparations</h1> 1204 1205<h2 id="course-goal">Course goal</h2> 1206<p>This is course is designed in two practical parts. In the first part (<strong>Part 2 - single sample</strong>), you will identify key components of the Nextflow dataflow paradigm using a validated pipeline whose purpose is to demonstrate how processes are connected. For the second part (<strong>Part 3 - multi-sample</strong>), once you are able to establish how data is flowing, you’ll <em>collect()</em> the knowledge from Part 1 to extend the pipeline for multi-sample analysis.</p> 1207<p>By the end of the course, you will have constructed/understood a functional workflow implemented in <strong>Nextflow DSL2</strong>, using common features such as processes, channels, modules and configuration profiles. You will also have gained experience running the workflow in a controlled environment, and you will be equipped with the necessary information to execute the pipelines on a High Performance Computing (HPC) environment.</p> 1208<h2 id="background-knowledge">Background knowledge</h2> 1209<p>This workshop assumes learners to have a basic understanding of working with the command line on UNIX-based systems and a <a href="https://github.com/features/codespaces">GitHub Codespaces</a> account.</p> 1210<h3 id="unix">UNIX</h3> 1211<p>You can test your UNIX skills with a quiz <a href="https://docs.google.com/forms/d/e/1FAIpQLSd2BEWeOKLbIRGBT_aDEGPce1FOaVYBbhBiaqcaHoBKNB27MQ/viewform?usp=sf_link">here</a>. If you don’t have experience with UNIX command line, or if you are unsure whether you meet the prerequisites, please follow this <a href="https://edu.sib.swiss/pluginfile.php/2878/mod_resource/content/4/couselab-html/content.html">online UNIX tutorial</a>.</p> 1212<h2 id="software">Software</h2> 1213<h3 id="os">OS</h3> 1214<p>This is an OS-agnostic course that requires from only to count with a laptop, a modern browser and a GitHub Codespaces account.</p> 1215<p>All the software needed in this workflow is either:</p> 1216<ul> 1217<li>Already installed in a GitHub Codespaces environment.</li> 1218<li>Already available in Docker containers.</li> 1219<li>Will be installed via containers during today’s exercises.</li> 1220</ul> 1221<p>All information of this course is based on the <a href="https://docs.seqera.io/nextflow/">official Nextflow documentation</a> and uses <strong>Nextflow DSL2</strong> syntax.</p> 1222<div class="admonition warning"> 1223<p class="admonition-title">Nextflow version</p> 1224<p>This tutorial uses a pinned version of Nextflow (<strong>25.10.4</strong>) with parser <strong>v2</strong>. This is important considering the rapid evolution of Nextflow, thu
1224s ensuring the proper execution of the pipeline.</p> 1225</div> 1226<h3 id="github-codespaces-code-editor">GitHub Codespaces - Code editor</h3> 1227<p>GitHub Codespaces is one of its kind nowadays services as there are really only a few alternative options to replace in case of any problem. It provides a complete self-contained execution environment and connected to an IDE for free! However, the resources are limited on the free tier we will be using for this course. Good news is that it should be sufficient for the purpose of the course, and in normal conditions no one would (hopefully) run out the resources allocated by Codespaces on the free tier.</p> 1228<p>You can start here:</p> 1229<p><a href="https://codespaces.new/jeffe107/taxoflow_tutorial?quickstart=1"><img alt="Open in GitHub Codespaces" src="https://github.com/codespaces/badge.svg" /></a></p> 1230<div class="admonition warning"> 1231<p class="admonition-title">Open the link in a new tab</p> 1232</div> 1233<p>This link will open VS code on your browser, and hence it is expected that you are familiar with the layout and basic functionalities VS code has. Otherwise, please check this quick <a href="https://code.visualstudio.com/docs/getstarted/getting-started">tutorial</a> before the course to understand where everything is.</p> 1234<div class="admonition tip"> 1235<p class="admonition-title">Setting GitHub Codespaces</p> 1236<p>More information about setting Codespaces on the <a href="../envsetup/01_setup/">Environment setup section</a>.</p> 1237</div> 1238<h4 id="vs-code-video-tutorial">VS code video tutorial</h4> 1239<p>You can find a video tutorial to learn about VS code:</p> 1240<iframe width="560" height="315" src="https://www.youtube.com/embed/1ZfO149BJvg" title="" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen><a href="https://www.ivatech.dev" style="display:none;">website development</a></iframe> 1241 1242<h3 id="alternative-installations">Alternative installations</h3> 1243<p>You can install and execute the pipeline of this tutorial locally using your local VS Code; please follow the <a href="../envsetup/03_devcontainer/">Local Devcontainers setup</a>. If you wish to use an HPC cluster, you will find specific instructions on the <a href="../envsetup/05_HPC/">HPC installation setup</a>. On the other hand, an alternative online computing environment is available through <a href="../envsetup/04_sandbox/">CodeSandbox</a>.</p> 1244<h3 id="pipeline-specific-tools">Pipeline-specific tools</h3> 1245<p>The specific versions of the software used by TaxoFlow are detailed <a href="../course_material/01_pipeline/#1-workflow-design">here</a></p> 1246<h2 id="website-colour-code-explanation">Website colour code explanation</h2> 1247<p>We tried to use a colour code throughout the website to make the different pieces of information easily distinguishable. Here’s a quick summary about the colour blocks you will encounter:</p> 1248<div class="admonition info"> 1249<p class="admonition-title">This is a supplementary piece of information</p> 1250</div> 1251<div class="admonition tip"> 1252<p class="admonition-title">This is a tip to help you advance with the course</p> 1253</div> 1254<div class="admonition success"> 1255<p class="admonition-title">This is the output on the console</p> 1256</div> 1257<div class="admonition warning"> 1258<p class="admonition-title">This is a warning about a potential problem</p> 1259</div> 1260<div class="admonition abstract"> 1261<p class="admonition-title">These are directory contents</p> 1262</div> 1263<div class="admonition bug"> 1264<p class="admonition-title">This is an explanation about a common bug/error</p> 1265</div> 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 </article> 1280 </div> 1281 1282
1283<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
1283 1284 </div> 1285 1286 <button type="button" class="md-top md-icon" data-md-component="top" hidden> 1287 1288 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> 1289 Back to top 1290</button> 1291 1292 </main> 1293 1294 <footer class="md-footer"> 1295 1296 1297 1298 <nav class="md-footer__inner md-grid" aria-label="Footer" > 1299 1300 1301 <a href=".." class="md-footer__link md-footer__link--prev" aria-label="Previous: Home"> 1302 <div class="md-footer__button md-icon"> 1303 1304 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> 1305 </div> 1306 <div class="md-footer__title"> 1307 <span class="md-footer__direction"> 1308 Previous 1309 </span> 1310 <div class="md-ellipsis"> 1311 Home 1312 </div> 1313 </div> 1314 </a> 1315 1316 1317 1318 <a href="../00_orientation/" class="md-footer__link md-footer__link--next" aria-label="Next: Orientation"> 1319 <div class="md-footer__title"> 1320 <span class="md-footer__direction"> 1321 Next 1322 </span> 1323 <div class="md-ellipsis"> 1324 Orientation 1325 </div> 1326 </div> 1327 <div class="md-footer__button md-icon"> 1328 1329 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg> 1330 </div> 1331 </a> 1332 1333 </nav> 1334 1335 1336 <div class="md-footer-meta md-typeset"> 1337 <div class="md-footer-meta__inner md-grid"> 1338 <div class="md-copyright"> 1339 1340 <div class="md-copyright__highlight"> 1341 Copyright © 2021-2026 University of Fribourg - BUGFri <a href="#__consent">Change cookie settings</a> 1342 1343 </div> 1344 1345 1346 Made with 1347 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> 1348 Material for MkDocs 1349 </a> 1350 1351</div> 1352 1353 </div> 1354 </div> 1355</footer> 1356 1357 </div> 1358 <div class="md-dialog" data-md-component="dialog"> 1359 <div class="md-dialog__inner md-typeset"></div> 1360 </div> 1361 1362 1363 <div class="md-consent" data-md-component="consent" id="__consent" hidden> 1364 <div class="md-consent__overlay"></div> 1365 <aside class="md-consent__inner"> 1366 <form class="md-consent__form md-grid md-typeset" name="consent"> 1367 1368 1369 1370 1371 1372 1373<h4>Cookie consent</h4> 1374<p>We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our trainig material and whether users find what they're searching for. With your consent, you're helping us to make our training material better.</p> 1375<input class="md-toggle" type="checkbox" id="__settings" > 1376<div class="md-consent__settings"> 1377 <ul class="task-list"> 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 <li class="task-list-item"> 1391 <label class="task-list-control"> 1392 <input type="checkbox" name="github" checked> 1393 <span class="task-list-indicator"></span> 1394 GitHub 1395 </label> 1396 </li> 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 <li class="task-list-item"> 1409 <label class="task-list-control"> 1410 <input type="checkbox" name="matomo" checked> 1411 <span class="task-list-indicator"></span> 1412 Matomo Analytics 1413 </label> 1414 </li> 1415 1416 1417 1418 </ul> 1419</div> 1420<div class="md-consent__controls"> 1421 1422 1423 <button class="md-button md-button--primary">Accept</button> 1424 1425 1426 1427 1428 1429 1430 1431 <label class="md-button" for="__settings">Manage settings</label> 1432 1433 1434</div> 1435 </form> 1436 </aside> 1437 </div> 1438
1438<script>var consent=__md_get("__consent");if(consent)for(var input of document.forms.consent.elements)input.name&&(input.checked=consent[input.name]||!1);else"file:"!==location.protocol&&setTimeout((function(){document.querySelector("[data-md-component=consent]").hidden=!1}),250);var form=document.forms.consent;for(var action of["submit","reset"])form.addEventListener(action,(function(e){if(e.preventDefault(),"reset"===e.type)for(var n of document.forms.consent.elements)n.name&&(n.checked=!1);__md_set("__consent",Object.fromEntries(Array.from(new FormData(form).keys()).map((function(e){return[e,!0]})))),location.hash="",location.reload()}))</script>
1438 1439 1440 1441 1442 1443
1443<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.top", "navigation.footer"], "search": "../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
1443 1444 1445 1446
1446<script src="../assets/javascripts/bundle.79ae519e.min.js"></script>
1446 1447 1448
1448<script src="../javascripts/consent.js"></script>
1448 1449 1450 1451 </body> 1452</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.