Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 44 additions & 3 deletions docs/_writing_cwl_intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ tool is generated.
--example_input 2.fastq \
--example_output 2.fasta \
--container 'dukegcb/seqtk' \
--test_case \
--help_from_command 'seqtk seq'

This command generates the following CWL YAML file.
Expand All @@ -88,9 +89,49 @@ This command generates the following CWL YAML file.
Applying linter new_draft... CHECK
.. INFO: Modern CWL version [cwl:draft-3]

A later revision of this document ill discuss defining more
parameters for this tool and include information on generating and
running tests with planemo for CWL tools.
In addition to the actual tool file, a test file will be generated
using the example command and provided test data. The file contents are as
follows:

.. literalinclude:: writing/seqtk_seq_tests_v3.yml
:language: yaml

This file is a planemo-specific artifact. This file may contain 1 or more
tests - each test is an element of the top-level list. ``tool_init`` will use
the example command to build just one test.

Each test consists of a few parts:

- ``doc`` - this attribute provides a short description for the test.
- ``job`` - this can be the path to a CWL job description or a job
description embedded right in the test (``tool_init`` builds the latter).
- ``outputs`` - this section describes the expected output for a test. Each
output ID of the tool or workflow under test can appear as a key. The
example above just describes expected specific output file contents exactly
but many more expectations can be described.

The tests described in this file can be run using the planemo ``test`` (or
simply ``t``) command on the original file. By default, planemo will run tool
tests with Galaxy but we can also specify the use of ``cwltool`` (the
reference implementation of CWL) which will be quicker and more robust until
while Galaxy support for the CWL is still in development.

$ planemo test --no-container --engine cwltool seqtk_seq.cwl
Enable beta testing mode to test artifact that isn't a Galaxy tool.
All 1 test(s) executed passed.
seqtk_seq_0: passed

We can also open up the Galaxy web inteface with this tool loaded
using the ``serve`` (or just ``s``) command.

::

$ planemo s --cwl seqtk_seq.cwl
...
serving on http://127.0.0.1:9090

Open up http://127.0.0.1:9090 in a web browser to view your new
tool.

For more information on the Common Workflow Language check out the Draft 3
`User Guide`_ and Specification_.
Expand Down
8 changes: 6 additions & 2 deletions docs/_writing_test_and_serve.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

::

$ planemo t --galaxy_root=/path/to/galaxy
$ planemo t
...
All 1 test(s) executed passed.
seqtk_seq[0]: passed
Expand All @@ -10,8 +10,12 @@ Now we can open Galaxy with the ``serve`` (or just ``s``).

::

$ planemo s --galaxy_root=/path/to/galaxy
$ planemo s
...
serving on http://127.0.0.1:9090

Open up http://127.0.0.1:9090 in a web browser to view your new tool.

Serve and test can be passed various command line arguments such as
``--galaxy_root`` to specify a Galaxy instance to use (by default
planemo will download and manage a instance just for planemo).
13 changes: 1 addition & 12 deletions docs/galaxy_changelog.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,7 @@
<head>
<title>Galaxy Tool Framework Changes</title>
<meta charset="utf-8">
<style>
@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);

body { font-family: 'Droid Serif'; }
h1, h2, h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: normal;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
</style>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<textarea id="source">
Expand Down
Binary file added docs/images/organic_mower_wat.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions docs/planemo.linters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ planemo.linters package
Submodules
----------

planemo.linters.doi module
--------------------------

.. automodule:: planemo.linters.doi
:members:
:undoc-members:
:show-inheritance:

planemo.linters.urls module
---------------------------

Expand Down
8 changes: 8 additions & 0 deletions docs/planemo.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,14 @@ planemo.config module
:undoc-members:
:show-inheritance:

planemo.docker module
---------------------

.. automodule:: planemo.docker
:members:
:undoc-members:
:show-inheritance:

planemo.exit_codes module
-------------------------

Expand Down
16 changes: 16 additions & 0 deletions docs/planemo.test.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,22 @@ planemo.test package
Submodules
----------

planemo.test.check_output module
--------------------------------

.. automodule:: planemo.test.check_output
:members:
:undoc-members:
:show-inheritance:

planemo.test.data module
------------------------

.. automodule:: planemo.test.data
:members:
:undoc-members:
:show-inheritance:

planemo.test.results module
---------------------------

Expand Down
124 changes: 104 additions & 20 deletions docs/presentations/2016_workflows.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,20 @@
<head>
<title>Planemo: A Scientific Workflow SDK</title>
<meta charset="utf-8">
<style>
@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);

body { font-family: 'Droid Serif'; }
h1, h2, h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: normal;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
</style>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<textarea id="source">

class: center, middle

## Planemo: A Scientific Workflow SDK
layout: true
class: inverse, middle

---
class: special
# Planemo: A Scientific Workflow SDK
John Chilton, Aysam Guerler, and the Galaxy Team

---

Expand Down Expand Up @@ -52,6 +47,9 @@

???

The editor form now uses the same backbone driven MVC components as the
new tool form presented last year.

---

### GUI Enhancements - Workflow Run Form
Expand All @@ -62,6 +60,84 @@

???

The run workflow form has likewise been overhauled and will be merged soon. This
should allow more dynamic option control when running workflows.

---

### GUI Enhancements - Labels

TODO: UPDATE IMAGE

![Workflow Run Form](images/gx_new_workflow_run.png)

???

When reasoning about workflows and connections between steps, persistent and unique
labels for steps and outputs are important. These are useful in the API and too a
lesser extent in the GUI today.

A major theme of this presentation is going to be that workflows are programs, they
are a coding artifact. I'm not sure anyone would disagree with me on that - but I
think the implications may be counter-intuitive at times.

---

### GUI Enhancements - Nested Workflows

TODO: UPDATE IMAGE

![Nested Workflows](images/gx_new_workflow_run.png)

???

Workflows are programs, languages describing programs should provide abstractions for
composition. Nesting workflows was one of the most requested feature requests of
Galaxy and it now supports this.

---

### What About Planemo?

???

Enough screenshots right - when I present people expect to see long command-lines!

---

### Planemo's Success

It is *the way* to develop Galaxy tools in 2016! Why?

- Artifact-centric - not Galaxy-centric or registry-centric.
- Fits into existing developer workflows - CLI, Git(hub), CI (Travis).
- Flexible
- Well documented w/focus on usage examples.

It is about **developer workflow**.

???

In 2014, Greg von Kuster presented a tool development workflow that involved
publishing things to a local tool shed and running tests from there and viewing
the results through the web interface. I call this registry or shed centric tool
development (development activities "boot strap the tool shed, upload to the tool
shed, run tests against the tool shed, view results in the tool shed, export capsule
from the tool shed". Prior to that tool development was Galaxy-centric - "download
Galaxy, update the Galaxy tool conf, update the Galaxy test data, run the Galaxy
tests." Planemo is tool centric - lint the tool, test the tool, serve the tool.

---

class: bottom
background-image: url(images/organic_mower_wat.jpg)
background-position: center;
background-repeat: no-repeat;
background-size: contain;

### So Planemo?

Photo Credit: Peter Smith (@skwiot)

---

Expand All @@ -75,8 +151,9 @@

???

The artisinal, free range, organic text editor of my choice. It is a go
lang rewrite of a node rewrite of an Erlang editor from 1987 - it is the hottest editor you've never heard of.
The hippest, artisinal, free range text editor of my choice. It is a go
lang rewrite of a node rewrite of an Erlang editor from 1987 - it is super hot right
now but I'm sure you've never heard of.

---

Expand All @@ -90,17 +167,24 @@
\"queries\": \"[{\\\"input2\\\": null, \\\"__index__\\\": 0}]\"}",
```

Neither human writable, nor human readable.

JSON doesn't allow comments - one shouldn't have to describe a
configuration file in JSON let alone write a program in it.
- Neither human writable, nor human readable.
- JSON doesn't allow comments.
- One shouldn't have to describe a configuration file in JSON,
let alone write a program in it.

---

### Format 2 Workflows
### Format 2 Workflows - Example

TODO: SHOW EXAMPLE

---

### Format 2 Workflows

- Started as a way to build test workflows for Galaxy testing framework.
- All steps can be labeled, connections described by ID.
-

</textarea>
<script src="https://gnab.github.io/remark/downloads/remark-latest.min.js">
Expand Down
Loading