バイオインフォマティクスのツール、ワークフロー、コンテナ関連調査

# 概要

気づいたものをメモしておく
バイオインフォマティクス以外のも集まりそうなので、タイトルなどは要検討か。

# ツール

* [Using Bioconda — Bioconda documentation](https://bioconda.github.io/)
* 
リストがあるので、ツールや、そのサイト、ドキュメントを探すのによいかもしれない。

* [The community platform for bioinformatics - OMICtools](https://omictools.com/)


# ワークフローシステム

## ワークフローシステムのリスト

２００超えたそうです。

[Existing Workflow systems · common-workflow-language/common-workflow-language Wiki](https://github.com/common-workflow-language/common-workflow-language/wiki/Existing-Workflow-systems) 

## ワークフローシステムがたくさんあることを紹介しているスライド

CWLの中の人による紹介

* [2017-11-03 Scientific Workflow systems](https://www.slideshare.net/StianSoilandReyes/20171103-scientific-workflow-systems) 

## ワークフローシステムの例


### Common Workflow Language

* [Common Workflow Language](http://www.commonwl.org/) 

#### CWL の Spec

* [Common Workflow Language Specifications, v1.0.2](http://www.commonwl.org/v1.0/)

#### CWL のワークフローを GitHub で探す

以下の方法で探すことができる。

* [Search · extension:cwl cwlVersion](https://github.com/search?utf8=%E2%9C%93&q=extension%3Acwl+cwlVersion&type=Code) 

### Nextflow

* [Nextflow - A DSL for parallel and scalable computational pipelines](https://www.nextflow.io/) 

#### Nextflow の　Spec

あるのかわからないが、ドキュメントはこちら

* [Nextflow's documentation! — Nextflow 0.26.0 documentation](https://www.nextflow.io/docs/latest/index.html)

### Workflow Description Language WDL

[WDL \| Home](https://software.broadinstitute.org/wdl/)

### Snakemake

#### Snakemake を使ったワークフロー

- [Snakemake\-Workflows](https://github.com/snakemake-workflows/)

# ツールのコンテナ化関連

## BioContainers


* [BioContainers](http://biocontainers.pro/)

### BioContainers の Singularity のレポジトリ


[Index of /singularity/](https://depot.galaxyproject.org/singularity/)


### specs

* [BioContainers/specs: BioContainers specifications](https://github.com/BioContainers/specs) 


### Best practice

Biocontainers の best practices となっていますが、一般的なものとしても使えるところが多かったように思います。

* [Best Practices](http://biocontainers.pro/docs/developer-manual/best-practices/)

### biocontainers のイメージなどの探し方

Bioconatinersは、biocondaにあるパッケージをコンテナにするプロジェクトで
だいたいdockerコンテナになっています。
ほとんどのdockerコンテナは、quay.ioで公開されていた気がします。
docker hubは、あまりにイメージが多いためだったか、ビルドが遅いからだったかで、
そんなにつかわれていなかったと記憶しています

Biocontainersは以下が公式サイトです。
https://biocontainers.pro/#/registry

コンテナ化されているかなどは、以下で探せます
https://biocontainers.pro/#/registry

また、Biocontainersのsingularityに変換されたものはこちらにあります。
Galaxyのアドレスになっていますが、biocondaとbiocontainersとgalaxyの中心人物は
たしか同一のひとだったとおもいます。
https://depot.galaxyproject.org/singularity/

バイオのツールを探すなら、
singularity hub で探すよりは、
biocontainersで、探してから、自分で変換 `singularity pull` するのが速いかもしれません。


## Manuscript about Ten simple rules to contenarized your bioinformatics software

`Recomendations to contenarized your bioinformatics software`

Docker とか　Singularity なども書いてある

[ypriverol/containers-rules-manuscript: Manuscript about Ten simple rules to contenarized your bioinformatics software](https://github.com/ypriverol/containers-rules-manuscript) 

## コンテナ一般の Best Practices

* [Container Best Practices](http://docs.projectatomic.io/container-best-practices/)

# ツールごとの、入出力に関する定義

このツールを動かすには

* 入力がこの形式のファイル
* 出力がこの形式のファイル

みたいなのが、定義されているところを探しています。
ワークフローの途中でバリデーションしたり、
エディタのサポートなどに使いたいと思っています。

パラメータについても必要なのかもしれません。。

あれば、ぜひ見てみたいが、まだ見つけていないです。。。
ご存知の方がいらっしゃいましたら教えていただけるとうれしいです。

## XML

[WorkflowConversion/CTDSchema: Single location in which all CTD schemas are located](https://github.com/WorkflowConversion/CTDSchema "WorkflowConversion/CTDSchema: Single location in which all CTD schemas are located")

```
Common Tool Descriptors (CTDs for short) are XML documents that represent the inputs, outputs, parameters of tools in a platform-independent way.

Once a tool is represented in a CTD, it can then be imported into different workflow systems, such as Galaxy, KNIME.

See the samples folder for further information.
```

## 参考になりそうなプロジェクト

以下のプロジェクトなどを参考になりそう。

* [Galaxy Community Hub](https://galaxyproject.org/)
* [Common Workflow Language](http://www.commonwl.org/) 
* [Bioboxes](http://bioboxes.org/) 
* [Apache Taverna - Introduction](https://taverna.incubator.apache.org/introduction/)
* [Dockstore](https://dockstore.org/containers/quay.io%2Fpancancer%2Fpcawg-bwa-mem-workflow)
* [cwltool/README.rst at master · common-workflow-language/cwltool](https://github.com/common-workflow-language/cwltool/blob/master/README.rst#use-with-ga4gh-tool-registry-api) 

## これはどうかな？

入出力について触れられている気がする。
あとは、パイプラインなんかの考えもおもしろそう

* [NCBI-Hackathons/SPeW: Automatic Packaging and Distribution of Bioinformatics Pipelines](https://github.com/NCBI-Hackathons/SPeW) 


## テストデータについて

Dockstoreは、テストデータに関する記述もできそうである。

* [Dockstore](https://dockstore.org/containers/quay.io%2Fpancancer%2Fpcawg-bwa-mem-workflow)

# コマンドラインパラメータについて

こういう考え方もある。

* [titus\-blog/2018\-our\-command\-line\-patterns\.md at add/command\_line\_patterns · ctb/titus\-blog](https://github.com/ctb/titus-blog/blob/add/command_line_patterns/src/2018-our-command-line-patterns.md)

# ビッグデータに関するコーディング

Galaxy の bjorn さんによるコーディングガイド

* [bgruening/coding\_for\_big\_data: X things you should take into consideration if you code for big data analysis](https://github.com/bgruening/coding_for_big_data)