ツール XML の書き方 〜 ラッパー君と実体君
通常はラッパー君と実体君がいる。
ラッパー君: ツールの実行の際のパラメータ選択画面を定義する XML ファイル。ここから実体くんを呼び出す。
- 例 tab2csv.xml(ラッパー君のテンプレートとして使うとよい)
<tool id="tab2csv" name="Tabular to CSV" version="0.2">
<description>converter</description>
<command interpreter="bash">
tab2csv.sh $input_file $output_file $dq
</command>
<inputs>
<param name="input_file" type="data" format="tabular" label="File (tabular)"/>
<param name="dq" type="boolean" truevalue="--double-quotation" falsevalue="" checked="False" label="Double quotation" />
</inputs>
<outputs>
<data name="output_file" format="csv" label="${tool.name} on ${on_string}"/>
</outputs>
<help>
to be written.
</help>
</tool>
実体君: ツールの処理を記述するスクリプト(shell / python / ruby / Rscript など)ファイル。
if [ -e $3 ]
then
sed -e 's/\t/,/g' $1 > $2
else
sed -e 's/\t/","/g' $1 | sed -e 's/^\|$/"/g' > $2
fi
ツールの作り方 〜 ラッパー君の登録
$ cd ~/galaxy-dist/config
$ cp tool_conf.xml.sample tool_conf.xml
$ vi tool_conf.xml
...
` `
` `
` `
` `
` `
` `
` `
` `
</toolbox>
$ sudo service galaxy restart
(password: galaxy)
` ``Model-based Analysis of ChIP-Seq (1.4.2)`
` ``macs14 --version`
` ``macs14_wrapper.py $options_file $output_bed_file $output_extra_files $output_extra_files.files_path`</command>
` `
` ``R`
` ``macs14`
` `
- tool_dependencies.xml を作る
` `
` `
` `
` `
` `
` `
ツール XML の書き方(外部サービスと連携するタイプ)
---------------------------------------------------
- FileBrowserの例
- inputs actions: 同じサーバーにサービスがある場合、URLは “../../filebrowser”(Galaxyを参照するURLの2つ上の階層)のようにして参照できる
browser
link_path_2.pl $source $dest</command>
go to Local File Browser $GALAXY_URL
ツール XML で Tool Dependencies を参照する
------------------------------------------
- tool_dependencies.xml
Tool Shed リポジトリの作成(開発時)
------------------------------------
- [Galaxy Test Tool Shed](https://testtoolshed.g2.bx.psu.edu/) にログインして新規リポジトリ作成
- Create new repository
- Name はよく考えて決める(クローン後は変更不可)
- Synopsis, Detailed description はとりあえず Name と同じでOK(後で変更可)
- Repository type は通常は Unrestricted でOK(後で変更可)
- Categories はとりあえず未選択でOK(後で変更可)
- 開発環境でレポジトリをクローン
`$ hg clone `[`https://pitagora@testtoolshed.g2.bx.psu.edu/repos/pitagora/`](https://pitagora@testtoolshed.g2.bx.psu.edu/repos/pitagora/)
`$ cd `
- ホームディレクトリに .hgrc ファイルを作り、username を記載する
`$ cd ~/`
`$ vi .hg/hgrc`
`[ui]`
`username = <YOUR_EMAIL@HOST.COM>`
- このディレクトリ内に全てのファイルを格納、更新
- レポジトリの更新を反映
`$ cd `
`$ hg add *`
`$ hg commit -m `“`commit`”
`$ hg push`
- Tool Shed の UI から、そのレポジトリの画面で Repository Actions > Reset all repository metadata
- コミットで新しいRevisionができるのに、古いRevisionがRepository metadataと関連付けられたままになることがあるため。**原因不明**
Tool Dependency Package の作成
------------------------------
- ツールのときと同様に、レポジトリを作成します。名前は「package_macs_1_4_2」のような感じにするのが慣習です。
- インストールに必要なファイルを「tar -cz」で固めて、公開用のサーバー( <http://download.pitagora-galaxy.org/package/source/> )にアップロードします。
- レポジトリの中に、「tool_dependencies.xml」というファイルを作成します。
- download_by_url: アップロードした圧縮ファイルのURL
- shell_command: 一行でコマンドを記述。$INSTALL_DIRにインストールするようにします。
- set_environment: 環境変数
- Tips
- download_by_url でダウンロードされる先は galaxy-dist/database/tmp/tmp-toolshed-XXXXXXX/
- .tar.gz も .tar.bz2 も展開される
- tool_dependencies.xml の例(python でインストールするタイプ)
http://download.pitagora-galaxy.org/package/source/MACS-1.4.2-1.tar.gz
export PYTHONPATH=$INSTALL_DIR/lib/python && python setup.py install --prefix $INSTALL_DIR --install-lib $INSTALL_DIR/lib/python
$INSTALL_DIR/lib/python
$INSTALL_DIR/lib/python/site-packages
$INSTALL_DIR/bin
- tool_dependencies.xml の例(バイナリ展開するだけのタイプ)
https://github.com/kingsfordgroup/sailfish/releases/download/v0.6.3/Sailfish-0.6.3-Linux_x86-64.tar.gz
cp -r * $INSTALL_DIR/
$INSTALL_DIR/bin
$INSTALL_DIR/lib
- 参考になるリンク
- [ToolDependenciesTagSets](https://wiki.galaxyproject.org/ToolDependenciesTagSets)
- [UpdatingToRevisionWithNewToolDependencies](https://wiki.galaxyproject.org/UpdatingToRevisionWithNewToolDependencies)