갤럭시를 이용한 Planeemo Virtual Appliance 중 하나
설명 내용
플랜에모의 이미지는요.
확인 사항
터미널을 시작하고 도구를 만드는 디렉터리로 이동하여 다음 명령을 실행합니다
(갤럭시 자체도 내부에 포함돼 있어 시동을 걸 때 시간이 좀 걸린다)
$ docker run -p 8010:80 -p 9009:9009 -v `pwd`:/opt/galaxy/tools -i -t planemo/interactive /bin/bash
다음은 모든 용기의 조작입니다# source ./planemo-virtualenv/bin/activate
# cd /opt/galaxy/tools
# planemo tool_init --force \
--id 'line_count' \
--name 'Count number of lines (wc -l)' \
--example_command 'wc -l target.txt > result.txt' \
--example_input target.txt \
--example_output result.txt
Tool written to line_count.xml
line_count.파일 이름은 xml이고 내용은 다음과 같습니다<tool id="line_count" name="Count number of lines (wc -l)" version="0.1.0">
<requirements>
</requirements>
<command detect_errors="exit_code"><![CDATA[
wc -l "$input1" > "$output1"
]]></command>
<inputs>
<param type="data" name="input1" format="txt" />
</inputs>
<outputs>
<data name="output1" format="txt" />
</outputs>
<help><![CDATA[
TODO: Fill in help.
]]></help>
</tool>
테스트 용례를 자동으로 생성할 때테스트용 데이터 사전 제작
# seq 1 9 > target.txt
# wc -l target.txt > result.txt
# planemo tool_init --force \
--id 'line_count' \
--name 'Count number of lines (wc -l)' \
--example_command 'wc -l target.txt > result.txt' \
--example_input target.txt \
--example_output result.txt \
--test_case
Tool written to line_count.xml
Copying test-file target.txt
cp 'target.txt' 'test-data'
Copying test-file result.txt
cp 'result.txt' 'test-data'
테스트용 파일을 복사하기 위해test-data 디렉터리를 생성합니다# ls -aR
.:
. .. line_count.xml result.txt target.txt test-data
./test-data:
. .. result.txt target.txt
제작된 xml 파일은 다음과 같다<tool id="line_count" name="Count number of lines (wc -l)" version="0.1.0">
<requirements>
</requirements>
<command detect_errors="exit_code"><![CDATA[
wc -l "$input1" > "$output1"
]]></command>
<inputs>
<param type="data" name="input1" format="txt" />
</inputs>
<outputs>
<data name="output1" format="txt" />
</outputs>
<tests>
<test>
<param name="input1" value="target.txt"/>
<output name="output1" file="result.txt"/>
</test>
</tests>
<help><![CDATA[
TODO: Fill in help.
]]></help>
</tool>
문법 검사planeemo lint을 이용한 문법 검사
# planemo lint line_count.xml
Linting tool /opt/galaxy/tools/planemo/line_count.xml
Applying linter tests... CHECK
.. CHECK: 1 test(s) found.
Applying linter output... CHECK
.. INFO: 1 outputs found.
Applying linter inputs... CHECK
.. INFO: Found 1 input parameters.
Applying linter help... WARNING
.. WARNING: Help contains TODO text.
.. CHECK: Tool contains help section.
.. CHECK: Help contains valid reStructuredText.
Applying linter general... CHECK
.. CHECK: Tool defines a version [0.1.0].
.. CHECK: Tool defines a name [Count number of lines (wc -l)].
.. CHECK: Tool defines an id [line_count].
.. CHECK: Tool targets 16.01 Galaxy profile.
Applying linter command... CHECK
.. INFO: Tool contains a command.
Applying linter citations... WARNING
.. WARNING: No citations found, consider adding citations to your tool.
Applying linter tool_xsd... CHECK
.. INFO: File validates against XML schema.
Failed linting
경고 내용은 다음과 같습니다.실행 테스트
이번에는 Warning이 테스트를 이렇게 하도록 하겠습니다.
# planemo test line_count.xml
git clone --bare 'https://github.com/galaxyproject/galaxy' '/root/.planemo/gx_repo'
Cloning into bare repository '/root/.planemo/gx_repo'...
remote: Counting objects: 344814, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 344814 (delta 2), reused 1 (delta 1), pack-reused 344807
Receiving objects: 100% (344814/344814), 434.19 MiB | 3.79 MiB/s, done.
Resolving deltas: 100% (274423/274423), done.
Checking connectivity... done.
cd /tmp/tmp76zZ8I; git clone --branch 'master' '/root/.planemo/gx_repo' 'galaxy-dev'; cd galaxy-dev; if [ -d .venv ] || [ -f dist-eggs.ini ]; then GALAXY_VIRTUAL_ENV=.venv; else GALAXY_VIRTUAL_ENV=/root/.planemo/gx_venv; fi; export GALAXY_VIRTUAL_ENV; if [ ! -e $GALAXY_VIRTUAL_ENV ]; then /home/ubuntu/planemo-virtualenv/bin/virtualenv -p /home/ubuntu/planemo-virtualenv/bin/python2.7 $GALAXY_VIRTUAL_ENV; fi; [ -e $GALAXY_VIRTUAL_ENV ] && . $GALAXY_VIRTUAL_ENV/bin/activate; COMMON_STARTUP_ARGS=; $(grep -q 'skip-venv' run_tests.sh) && COMMON_STARTUP_ARGS="--dev-wheels"; export COMMON_STARTUP_ARGS; echo "Set COMMON_STARTUP_ARGS to ${COMMON_STARTUP_ARGS}"; ./scripts/common_startup.sh ${COMMON_STARTUP_ARGS}
Cloning into 'galaxy-dev'...
...
처음 실행할 때는 갤럭시 다운로드 등 실행 환경을 준비해야 하기 때문에 상당한 시간이 걸린다커피타임
그리고 결국 실패했어요.
======================================================================
FAIL: Count number of lines (wc -l) ( line_count ) > Test-1
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/tmpbwFF2Q/galaxy-dev/test/functional/test_toolbox.py", line 316, in test_tool
self.do_it(td)
File "/tmp/tmpbwFF2Q/galaxy-dev/test/functional/test_toolbox.py", line 82, in do_it
raise e
JobOutputsError: History item different than expected, difference (using diff):
( /opt/galaxy/tools/planemo/test-data/result.txt v. /tmp/tmpVsOQVBresult.txt )
--- local_file
+++ history_data
@@ -1 +1 @@
-9 target.txt
+9 /tmp/tmpbwFF2Q/files/000/dataset_1.dat
----------------------------------------------------------------------
XML: /tmp/tmpbwFF2Q/xunit.xml
----------------------------------------------------------------------
Ran 1 test in 8.632s
FAILED (failures=1)
실행wc -l target.txt > result.txt
하면 출력 결과에 파일 이름이 포함되지만 갤럭시 실행 환경에서는 출력 파일을 포함하는 경로의 파일 이름을 제공합니다테스트 데이터 및 명령 변경 및 재시도
테스트용 데이터 다시 만들기
(파일 이름을 출력하지 않기 위해 wc 명령에 데이터를 제공하는 방법이 변경되었습니다)
# seq 1 9 > target.txt
# wc -l < target.txt > result.txt
# cat result.txt
9
planeemo를 이용하여 xml 다시 만들기# planemo tool_init --force \
--id 'line_count' \
--name 'Count number of lines (wc -l)' \
--example_command 'wc -l < target.txt > result.txt' \
--example_input target.txt \
--example_output result.txt \
--test_case
테스트 수행(출력 결과가 길기 때문에 두 위치에서 생략
...
# planemo test
git --git-dir /root/.planemo/gx_repo fetch >/dev/null 2>&1
...
----------------------------------------------------------------------
XML: /tmp/tmpQiOVQK/xunit.xml
----------------------------------------------------------------------
Ran 1 test in 8.370s
OK
...
Testing complete. HTML report is in "/opt/galaxy/tools/planemo/tool_test_output.html".
All 1 test(s) executed passed.
line_count[0]: passed
시험에 붙다내부에서 갤럭시 실례를 실행한 후 테스트를 실행하기 때문에 테스트에 시간이 좀 걸린다
실행 결과 tooltest_output.>로 출력된 것이기 때문에 브라우저로 열어 보십시오
오늘 여기까지
갤럭시 Docker contaainer 내부에서 Planema를 사용하는 방법에 대해서는 @youyuh48씨의 갤럭시용 도구 개발을 시도해 보다를 참조하는 것이 좋습니다.
Reference
이 문제에 관하여(갤럭시를 이용한 Planeemo Virtual Appliance 중 하나), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/percipere/items/91bfe30aa5eca58e7ec5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)