pitagora-network.github.io

ツール XML の書き方 〜 ラッパー君と実体君

通常はラッパー君と実体君がいる。

ラッパー君: ツールの実行の際のパラメータ選択画面を定義する 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)

ツールの作り方 〜 Tool Dependencies

` ``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)