-
Notifications
You must be signed in to change notification settings - Fork 11
/
workflow.html
614 lines (549 loc) · 30.8 KB
/
workflow.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Global Site Tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-107286198-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments)
};
gtag('js', new Date());
gtag('config', 'UA-107286198-1');
</script>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>SoS - Script of Script</title>
<!-- Bootstrap Core CSS -->
<link href="vendor/bootstrap/cosmo_css/bootstrap.min.css" rel="stylesheet">
<!-- Custom Fonts -->
<link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Droid+Sans:400,700" rel="stylesheet">
<!-- Theme CSS -->
<link href="css/testtab.css" rel="stylesheet">
<!-- <link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.4.2/tocbot.css">
-->
<style>
/* The Table of Contents container element */
#toc {
max-height: 90%;
overflow: auto;
margin-right: 4%;
width: 20%;
border: 1px solid #ccc;
webkit-border-radius: 6px;
moz-border-radius: 6px;
border-radius: 6px;
position: sticky;
float: left;
top: 100px;
}
/* The Table of Contents is composed of multiple nested unordered lists. These styles remove the default styling of an unordered list because it is ugly. */
#toc ul, #toc li {
list-style: none;
margin: 0;
padding: 0;
border: none;
line-height: 1.5em;
}
#toc > .toc-list {
overflow: hidden;
position: relative;
padding-left: 0px;
li {
list-style: none;
}
}
#toc > .toc-list > .toc-item > a {
padding-left: 10px;
}
.toc-list .toc-list a {
margin: 0;
padding-left: 15px;
font-size: 14px;
}
.toc-list .toc-list .toc-list a {
margin: 0;
padding-left: 30px;
font-size: 14px;
}
a.toc-link {
height: 100%;
}
.is-collapsible {
max-height: 1000px;
overflow: hidden;
transition: all 300ms ease-in-out;
}
.is-collapsed {
max-height: 0;
}
.is-position-fixed {
position: fixed !important;
top: 0;
}
/* Twitter Bootstrap Override Style */
.nav-list > li > a, .nav-list .nav-header {
margin: 0px;
}
.notebook-container {
box-shadow: none;
}
li.toc-item .is-active-link {
background-color: #6197d5;
color: white;
}
.nav > li > a:hover, .nav > li > a:focus {
text-decoration: none;
background-color: #eeeeee;
color: #337ab7;
}
h1::before, h2::before, h3::before, h4::before, h5::before, h6::before {
display: block;
content: " ";
height: 80px;
margin-top: -80px;
visibility: hidden;
}
.nav {
margin-bottom: 25px;
}
/* https://github.com/tscanlin/tocbot/issues/121 */
h1:focus, h2:focus, h3:focus, h4:focus, h5:focus, h6:focus, h7:focus {
outline: none !important;
box-shadow: none !important;
}
</style>
</head>
<body id="page-top" class="index">
<!-- Header -->
<header>
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="follow">
<ul class="list-inline gitbutton">
<li style="vertical-align: -3px;">
<form action="search.html" class="search-form">
<div class="form-group has-feedback">
<label for="search" class="sr-only">Search</label>
<input type="text" name="q" class="form-control" id="tipue_search_input" pattern=".{3,}" placeholder=" Search">
<span class="glyphicon glyphicon-search form-control-feedback"></span>
</div>
<div style="clear: both;"></div>
</form>
</li>
<li><a href="https://github.com/vatlab" target="_blank"><i class="fab fa-github fa-2x"></i></a>
</li>
</li>
<li><a href="https://vatlab.github.io/blog" target="_blank"><i class="fab fa-blogger-b fa-2x"></i></a>
</li>
<li>
<a href="https://twitter.com/bioworkflows" target="_blank">
<i class="fab fa-twitter fa-2x"></i>
</a>
</li>
<li><a href="https://gitter.im/vatlab/SoS" target="_blank"><i class="fab fa-gitter fa-2x"></i></a>
</li>
<li><a href="https://www.youtube.com/channel/UCPsumGZ-C2NddWO54CvEdSw/videos" target="_blank">
<i class="fab fa-youtube fa-2x"></i></a>
</li>
<li><a href="https://github.com/binder-examples/jupyter-sos" target="_blank">
<img src="img/binder_white.png" style="width:1.2em;height:1.2em;margin-bottom:0.4em"
onmouseover="this.src='img/binder.png';"
onmouseout="this.src='img/binder_white.png';" >
</a>
</li>
<li><a href="http://128.135.144.117:8000/" target="_blank"><i
class="fa fa-rocket fa-2x" ></i></a>
</li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="intro-text">
<div class="container-fluid">
<div class="row vertical-align">
<div class="header-size-styling intro-heading col-xs-4 col-sm-5 col-md-5 col-lg-5" id="left-word">SoS</div>
<span class="rotater-size-styling intro-heading col-xs-8 col-sm-7 col-md-7 col-lg-7" id="rotating_title"></span>
</div>
</div>
<div class="intro-lead-in">Notebook environment for both interactive data analysis and batch data processing</div>
</div>
</div>
</div>
</div>
</header>
<div id="exTab2" class="container">
<a name="content"></a>
<nav id="navigation">
<ul class="nav nav-tabs">
<li><a href="index.html#content">Introduction</a> </li>
<li><a href="running.html#content">Running SoS</a> </li>
<li><a href="notebook.html#content">SoS Notebook</a> </li>
<li class="active"><a href="workflow.html#content">SoS Workflow</a> </li>
</ul>
</nav>
<div id="toc" class="tocify"> </div><!--/.well -->
<div class="tab-content">
<div class="row-fluid">
<div class="col-xs-12 col-sm-5 col-md-4">
</div><!--/span-->
<div class="col-xs-12 col-sm-7 col-md-8 notebook-container">
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Introductory-Videos"><a id="notebook_intro_videos" />Introductory Videos<a class="anchor-link" href="#Introductory-Videos"></a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<div class="container">
<div class="row">
<div class="col-sm-3">
<div class="embed-responsive embed-responsive-16by9">
<iframe width="560" height="315" src="https://www.youtube.com/embed/E5Eh7BVbbTM?wmode=opaque" frameborder="0" allowfullscreen></iframe>
<div class="overlay-duration">14:08</div>
</div>
<p>Basics of SoS workflow system</p>
</div>
<div class="col-sm-3">
<div class="embed-responsive embed-responsive-16by9">
<iframe width="560" height="315" src="https://www.youtube.com/embed/roTDvSXSPgU?wmode=opaque" frameborder="0" allowfullscreen></iframe>
<div class="overlay-duration">16:52</div>
</div>
<p>More on SoS workflow system</p>
</div>
<div class="col-sm-3">
<div class="embed-responsive embed-responsive-16by9">
<iframe width="560" height="315" src="https://www.youtube.com/embed/_LSQr3DHBpU?wmode=opaque" frameborder="0" allowfullscreen></iframe>
<div class="overlay-duration">16:16</div>
</div>
<p>Use SoS in SoS Notebook</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Getting-help">Getting help<a class="anchor-link" href="#Getting-help"></a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>SoS Notebook comes with an extensive set of documentation but it can be daunting to dive into it to get the information you need.</p>
<ul>
<li><p>If you have a casual question like if certain feature exists or how certain things are handled, it is better to <a href="https://gitter.im/vatlab/SoS">ask it in our gitter channel</a>. You can also use the <i class="fab fa-gitter fa-2x"></i> button at the top right corner of the homepage.</p>
</li>
<li><p>If you have a more serious question or suggestion, please feel free to post to our <a href="https://github.com/vatlab/sos">issue tracker</a>. SoS consists of tens of modules and related issue trackers but free feel to post to any of them because it is easy for us to move the issue to an appropriate tracker if needed.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Documentation">Documentation<a class="anchor-link" href="#Documentation"></a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Our documentation is hosted on our live server and can be edited directly. If you spot an error or feel like contributing to the document, please</p>
<ol>
<li>Click the <i class="fa fa-edit fa-2x"></i> button to the top right corner of each tutorial</li>
<li>Execute the notebook and edit it on our live server</li>
<li>Enter <code>!create-pr <Shift-Enter></code> in the console panel to send us a PR</li>
</ol>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="The-basics">The basics<a class="anchor-link" href="#The-basics"></a></h2><ul>
<li><a href="doc/user_guide/sos_overview.html">SoS workflow: a 20 minute overview</a></li>
<li><a href="doc/user_guide/variable_and_parameter.html">Variables and parameters</a></li>
<li><a href="doc/user_guide/input_substeps.html">Step input, output, and substeps</a></li>
<li><a href="doc/user_guide/basic_workflow.html">Basic SoS workflows</a></li>
<li><a href="doc/user_guide/organize_scripts.html">Using SoS Workflow for daily data analysis</a></li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Syntax-and-data-types">Syntax and data types<a class="anchor-link" href="#Syntax-and-data-types"></a></h2><ul>
<li><a href="doc/user_guide/sos_syntax.html">Syntax and file formats (<code>global</code> and other sections)</a></li>
<li><a href="doc/user_guide/script_format.html">Script format of function calls</a></li>
<li><a href="doc/user_guide/parameter_statement.html">The <code>parameter</code> statement</a></li>
<li><a href="doc/user_guide/config_files.html">Configuration files (option <code>-c</code>)</a></li>
<li><a href="doc/user_guide/targets.html">SoS targets (<code>file_target</code>, <code>sos_variable</code>, <code>R_Library</code>, and more)</a> </li>
<li><a href="doc/user_guide/sos_targets.html">The <code>sos_targets</code> data type</a></li>
<li><a href="doc/user_guide/sos_functions.html">SoS functions (<code>get_output</code> and <code>expand_pattern</code>)</a></li>
<li><a href="doc/user_guide/extending_sos.html">Extending SoS</a></li>
</ul>
<h2 id="SoS-Steps">SoS Steps<a class="anchor-link" href="#SoS-Steps"></a></h2><ul>
<li><a href="doc/user_guide/input_statement.html">The <code>input</code> statement</a><ul>
<li><a href="doc/user_guide/named_input.html">Named input (keyword and dictionary input)</a></li>
<li><a href="doc/user_guide/group_by.html">Input option <code>group_by</code></a></li>
<li><a href="doc/user_guide/for_each.html">Input option <code>for_each</code></a></li>
<li><a href="doc/user_guide/paired_group_with.html">Input options <code>paired_with</code> and <code>group_with</code></a> </li>
<li><a href="doc/user_guide/input_pattern.html">Input option <code>pattern</code> and function <code>expand_pattern</code></a> </li>
<li><a href="doc/user_guide/concurrent_substep.html">Input option <code>concurrent</code></a> </li>
<li><a href="doc/user_guide/dynamic_input.html">Dynamic input (<code>dynamic</code> target)</a> </li>
</ul>
</li>
<li><a href="doc/user_guide/output_statement.html">The <code>output</code> statement</a><ul>
<li><a href="doc/user_guide/output_group_by.html">Output option <code>group_by</code></a></li>
<li><a href="doc/user_guide/output_groups_vars.html">Output option <code>paired_with</code> and <code>group_with</code></a></li>
<li><a href="doc/user_guide/dynamic_output.html">Dynamic output (<code>dynamic</code> target)</a> </li>
</ul>
</li>
<li><a href="doc/user_guide/depends_statement.html">The <code>depends</code> statement</a> </li>
<li><a href="doc/user_guide/sos_actions.html">SoS actions and common options (action options <code>active</code>, <code>allow_error</code>, <code>args</code>, <code>container</code>, <code>engine</code>, <code>default_env</code>, <code>env</code>, <code>input</code>, <code>output</code>, <code>stdout</code>, <code>stderr</code>, <code>template</code>, <code>template_name</code>, <code>tracked</code>, and <code>workdir</code>)</a><ul>
<li><a href="doc/user_guide/shell_actions.html">Command execution actions (actions <code>run</code>, <code>sh</code>, and <code>bash</code>)</a></li>
<li><a href="doc/user_guide/script_actions.html">Script execution actions (actions <code>Python</code>, <code>R</code>, <code>JavaScript</code> etc)</a></li>
<li><a href="doc/user_guide/report_actions.html">Report generation actions (actions <code>report</code>, <code>pandoc</code>, and <code>RMarkdown</code>)</a></li>
<li><a href="doc/user_guide/control_actions.html">Conditional actions (actions <code>warn_if</code>, <code>skip_if</code>, <code>done_if</code> and <code>fail_if</code>)</a> </li>
<li><a href="doc/user_guide/download_actions.html">Action <code>download</code></a></li>
<li><a href="doc/user_guide/docker.html">Running scripts in docker containers (Action option <code>container</code> and action <code>docker_build</code>)</a></li>
<li><a href="doc/user_guide/singularity.html">Running scripts in singularity (Action options <code>container</code> and <code>engine</code>, action <code>singularity_build</code>)</a></li>
</ul>
</li>
<li><a href="doc/user_guide/task_statement.html">The <code>task</code> statement and option <code>-q</code>, task options <code>queue</code>, <code>shared</code>, <code>env</code>, <code>prepend_path</code>)</a><ul>
<li><a href="doc/user_guide/host_setup.html">Host configuration (<code>~/.sos/hosts.yml</code> and <code>sos remote</code> command)</a> </li>
<li><a href="doc/user_guide/task_template.html">Task templates (options such as <code>mem</code>, <code>cores</code>, <code>walltime</code>, and <code>nodes</code>)</a> </li>
<li><a href="doc/user_guide/task_tags.html">Task tags (option <code>tags</code>)</a> </li>
<li><a href="doc/user_guide/trunk_size.html">Combining tasks (options <code>trunk_size</code> and <code>trunk_workers</code>)</a> </li>
<li><a href="doc/user_guide/task_files.html">Path translation and file synchronization (options <code>workdir</code>, <code>to_host</code> and <code>from_host</code>)</a></li>
<li><a href="doc/user_guide/remote_target.html">Working with remote files (<code>remote</code> target)</a> </li>
</ul>
</li>
</ul>
<h2 id="SoS-Workflows">SoS Workflows<a class="anchor-link" href="#SoS-Workflows"></a></h2><ul>
<li><a href="doc/user_guide/step_dependencies.html">Summary of step dependencies</a><ul>
<li><a href="doc/user_guide/named_output.html">Named output (function <code>named_output</code>)</a> </li>
<li><a href="doc/user_guide/output_from.html">Output from another step (function <code>output_from</code>)</a> </li>
<li><a href="doc/user_guide/target_sos_step.html">Explicit step and workflow dependency (target <code>sos_step</code>)</a> </li>
<li><a href="doc/user_guide/auxiliary_steps.html">Makefile-style pattern-matching rules (section option <code>provides</code>)</a></li>
<li><a href="doc/user_guide/step_variables.html">Global and local variables</a> </li>
<li><a href="doc/user_guide/shared_variables.html">Sharing variables across steps (step and task option <code>shared</code> and target <code>sos_variable</code>)</a> </li>
</ul>
</li>
<li><a href="doc/user_guide/sos_workflows.html">Introduction to SoS Workflows</a> <ul>
<li><a href="doc/user_guide/process_oriented.html">Process-oriented workflows</a> </li>
<li><a href="doc/user_guide/outcome_oriented.html">Outcome-oriented workflows</a></li>
<li><a href="doc/user_guide/mixed_style.html">Mixed-style workflows</a> </li>
<li><a href="doc/user_guide/data_flow.html">Data-flow style workflows</a> </li>
<li><a href="doc/user_guide/nested_workflow.html">Nested workflow (function <code>sos_run</code>)</a></li>
</ul>
</li>
</ul>
<h2 id="Command-line-interface">Command line interface<a class="anchor-link" href="#Command-line-interface"></a></h2><ul>
<li><a href="doc/user_guide/cli.html">List of all sos commands and options</a></li>
<li>Execution of workflows <ul>
<li><a href="doc/user_guide/verbosity_and_jobs.html">Verbosity and number of workers (options <code>-v</code> and <code>-j</code>)</a></li>
<li><a href="doc/user_guide/signature.html">Runtime signature (option <code>-s</code>)</a></li>
<li><a href="doc/user_guide/error_handling.html">Error handling (option <code>-e</code>)</a> </li>
<li><a href="doc/user_guide/trace_dependency.html">Dependency tracing (option <code>-T</code>)</a></li>
<li><a href="doc/user_guide/dryrun.html">Dryrun mode (option <code>-n</code>)</a></li>
<li><a href="doc/user_guide/remote_execution.html">Customized environments and remote execution of workflows (option <code>-r</code>)</a> </li>
<li><a href="doc/user_guide/workflow_dag.html">Output DAG of workflows (option <code>-d</code>)</a> </li>
<li><a href="doc/user_guide/workflow_summary.html">Report generation (option <code>-p</code>)</a> </li>
</ul>
</li>
<li>Utilities <ul>
<li><a href="doc/user_guide/task_management.html">Task management (commands <code>status</code>, <code>kill</code>, and <code>purge</code>)</a></li>
<li><a href="doc/user_guide/sos_remote.html">Setup and test remote hosts (command <code>sos remote</code>)</a></li>
<li><a href="doc/user_guide/convert.html">Format conversion (command <code>sos convert</code> and <code>%convert</code>)</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Publication">Publication<a class="anchor-link" href="#Publication"></a></h1><p>Please cite the following publication if you use SoS workflow engine for your work:</p>
<p><a href="https://doi.org/10.1371/journal.pcbi.1006843"><strong>Script of Scripts: a pragmatic workflow system for daily computational research</strong></a>
<small>Gao Wang and Bo Peng (2019) <em> PLoS Computational Biology</em>. doi: 10.1371/journal.pcbi.1006843</small></p>
<p>Here are a list of examples from the publication:</p>
<ul>
<li><a href="doc/examples/Process_Oriented.html">Process_Oriented.sos</a> (<a href="doc/examples/Process_Oriented.sos">script</a>)<br>
<small>Demonstration of a process_oriented forward-style workflow that executes steps in pre-sepecified order.</small></li>
<li><a href="doc/examples/Process_Oriented_Modular.html">Process_Oriented_Modular.sos</a> (<a href="doc/examples/Process_Oriented_Modular.sos">script</a>)<br>
<small>Same example as above with codes for core computations stored as separate scripts.</small></li>
<li><a href="doc/examples/Outcome_Oriented.html">Outcome_Oriented.sos</a> (<a href="doc/examples/Outcome_Oriented.sos">script</a>)<br>
<small>Demonstration of a outcome-oriented Makefile-style workflow that executes steps that are needed to generate specified outcome.</small></li>
<li><a href="doc/examples/Outcome_Oriented_Step_Targets.html">Outcome_Oriented_Step_Targets.sos</a> (<a href="doc/examples/Outcome_Oriented.sos">script</a>)<br>
<small>Demonstration of a outcome-oriented Makefile-style workflow that determines and executes dependencies by step targets instead of files.</small></li>
<li><a href="doc/examples/Mixed_Style.html">Mixed_Style.sos</a> (<a href="doc/examples/Mixed_Style.sos">script</a>)<br>
<small>Demonstration of a mixed-style workflow that executes steps of a forward-step workflow with dependencies produced by auxiliary steps.</small></li>
<li><a href="doc/examples/Mixed_Style_Data_Flow.html">Mixed_Style_Data_Flow.sos</a> (<a href="doc/examples/Mixed_Style_Data_Flow.sos">script</a>)<br>
<small>Demonstration of a mixed-style workflow that executes steps of a forward-step workflow with dependencies specified by named outputs.</small></li>
<li><a href="doc/examples/WGS_Call.html">Next-generation sequencing genotyping pipeline</a> (<a href="doc/examples/WGS_Call.ipynb">notebook</a>)<br>
<small>This is the SoS version of the <a href="http://www.htslib.org/workflow/#mapping_to_variant">samtools workflow: WGS/WES Mapping to Variant Calls - Version 1.0</a></small></li>
<li><a href="doc/examples/RNASeqDE.html">RNA Seq Differential Expression Analysis Workflow</a> (<a href="doc/examples/RNASeqDE.ipynb">notebook</a> and <a href="doc/examples/RNASeqDE_report.html">generated report</a>)<br>
<small>This is the SoS version of the <a href="https://www.bioconductor.org/help/workflows/rnaseqGene/">RNA-seq workflow: gene-level exploratory analysis and differential expression</a> from bioconductor.</small></li>
<li><a href="doc/examples/RNASeqGTEx.html">RNA Seq Normalization and Expression Residuals Analysis Workflow</a> (<a href="doc/examples/RNASeqGTEx.ipynb">notebook</a> and <a href="doc/examples/RNASeqGTEx_report.html">generated report</a>)<br>
<small>This is the SoS version of the RNA-seq preprocessing step of <a href="https://github.com/broadinstitute/gtex-pipeline/tree/63b13b8ced25cf8ab8e7a26f40a495e523630a9b/qtl">eQTL discovery pipeline</a> from the <a href="https://www.gtexportal.org/home/"> GTEx Consortium </a>, updated July 31, 2017.</small> </li>
</ul>
<p>Please <a href="doc/examples/Workflow_Manuscript_Examples.html">follow instructions here</a> to reproduce all but the last (due to data accessibility restrictions) examples.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Example-Scripts-and-workflow-notebooks">Example Scripts and workflow notebooks<a class="anchor-link" href="#Example-Scripts-and-workflow-notebooks"></a></h1><p>SoS scripts for the maintenance of SoS</p>
<ul>
<li><a href="doc/examples/update_toc.html">update_toc.sos</a> (<a href="doc/examples/update_toc.sos">script</a>)<br>
<small>A sos script that was used by SoS to update TOC of the wiki pages</small></li>
<li><a href="doc/examples/release.html">release</a> (<a href="doc/examples/release">script</a>)<br>
<small>Script to manage SoS website and release SoS to pip, docker hub, etc</small></li>
</ul>
<p>Pedagogical examples</p>
<ul>
<li><a href="doc/examples/DEG_Annotation_remote.html">DEG Annotation with external task</a> (<a href="doc/examples/DEG_Annotation_remote.ipynb">notebook</a>)<br>
<small>The same example but submit the R part of the workflow as an external task</small></li>
<li><a href="doc/examples/LineCount.html">Simple External Tasks</a> (<a href="doc/examples/LineCount.ipynb">notebook</a>)<br>
<small>An example to generate and execute a number of external tasks in Jupyter notebook. You can try to use option <code>trunk_size</code> to group the tasks. This example also demonstrates the use of option <code>shared</code> to collect results from tasks as variables</small></li>
<li><a href="doc/examples/Remote_Target.html">Remote Target</a> (<a href="doc/examples/Remote_Target.ipynb">notebook</a>)<br>
<small>An example on the analysis of targets that reside on remote servers using target <code>remote()</code> and step option <code>remote</code></small></li>
</ul>
<p>Real-world applications</p>
<ul>
<li><a href="https://github.com/TADA-A/TADA-A/blob/master/external_tools/mutation_annotation_pipeline.ipynb">Data preprocessing for TADA-A R analysis</a>, for Liu et al 2018, American Journal of Human Genetics.</li>
<li><a href="https://github.com/stephenslab/gtexresults/blob/master/workflows/fastqtl_to_mash.ipynb">Data preprocessing for MASH R analysis</a> and <a href="https://gaow.github.io/mnm-gtex-v8/analysis/mashr_flashr_workflow.html">Multivariate eQTL analysis pipeline</a>, for Urbut et al 2018, Nature Genetics.</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [ ]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-sos"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="container-fluid footer-links">
<div class="row">
<div class="col col-sm-4">
<a href="https://www.mdanderson.org/" target="_blank"><img src="img/mdacc_boot_walk_mdacc_boot_walk_logo_hires.png" alt="The University of Texas MD Anderson
Cancer Center" height="75"></a>
</div>
<div class="col col-sm-4">
</div>
<div class="col col-sm-4">
<span class="copyright">Copyright © <a
href="http://faculty.mdanderson.org/Bo_Peng/Default.asp?SNID=0"
target="_blank">Bo Peng</a> and </span></br>
<span class="copyright"> <a href="http://www.mdanderson.org/research/departments-labs-institutes/departments-divisions/bioinformatics-and-computational-biology.html" target="_blank">
The University of Texas MD Anderson Cancer Center</a>
</span>
</br>
All Rights Reserved
<br>
Distributed under a <a href="https://opensource.org/licenses/BSD-3-Clause" target="_blank">3-clause BSD License</a>
</div>
</div>
</div>
</footer>
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
<!-- Bootstrap Core JavaScript -->
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!-- Plugin JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>
<!-- Contact Form JavaScript -->
<script src="js/jqBootstrapValidation.js"></script>
<!-- <script src="js/contact_me.js"></script> -->
<!-- Theme JavaScript -->
<script src="js/agency.min.js"></script>
<script src="js/docs.js"></script>
<script src="js/sos_script.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.4.2/tocbot.min.js"></script>
<script>
var content = document.querySelector('.notebook-container')
var headings = content.querySelectorAll('h1, h2, h3, h4, h5, h6, h7')
var headingMap = {}
function indexedHeaders(headings) {
if (!headings) {
return '';
}
let counts = [0, 0, 0, 0, 0, 0, 0]
for (let i = 0; i < headings.length; ++i) {
++counts[parseInt(headings[i].tagName[1])-1]
}
// now, we remove the first 1 if it is the first tag, and if
// it has only one, and if it is not the only header
let first = counts.findIndex(x => x > 0);
console.log(first)
if (counts[first] == 1 && counts.reduce((a, b) => a + b, 0) != counts[first]
&& parseInt(headings[0].tagName[1]) === first + 1) {
counts[first] = 0;
}
//
return counts.map((x, idx) => x > 0 ? 'H' + (idx+1) : '').filter(x => x).join(',');
}
Array.prototype.forEach.call(headings, function(heading) {
var id = heading.id ? heading.id : heading.textContent.toLowerCase()
.split(' ').join('-').split(':').join('');
headingMap[id] = !isNaN(headingMap[id]) ? ++headingMap[id] : 0;
if (headingMap[id]) {
heading.id = id + '-' + headingMap[id]
} else {
heading.id = id
}
})
tocbot.init({
// Where to render the table of contents.
tocSelector: '#toc',
// Where to grab the headings to build the table of contents.
contentSelector: '.notebook-container',
// Which headings to grab inside of the contentSelector element.
headingSelector: indexedHeaders(headings),
//
listClass: 'toc-list',
extraListClasses: 'nav nav-list',
//
listItemClass: 'toc-item',
//
activeListItemClass: 'active',
//
orderedList: false,
//
scrollSmooth: true
});
</script>
</body>
</html>