Sapporo-server dogfooding pt.2
DBCLSノード@遺伝研スパコン
任意のWF実行を試したいので SAPPORO_RUN_ONLY_REGISTERED_WORKFLOWS=False します
code:compose
$ git diff
diff --git a/docker-compose.yml b/docker-compose.yml
index d3e746a..76dd204 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,18 +5,18 @@ services:
container_name: sapporo
volumes:
- /tmp:/tmp
- - /usr/bin/docker:/usr/bin/docker
+ - /cm/local/apps/docker/current/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock
- ${PWD}:${PWD}
environment:
- SAPPORO_HOST=0.0.0.0
- - SAPPORO_PORT=8080
- - SAPPORO_DEBUG=False
+ - SAPPORO_PORT=8123
+ - SAPPORO_DEBUG=True
- SAPPORO_RUN_DIR=${PWD}/run
- SAPPORO_GET_RUNS=True
- SAPPORO_RUN_ONLY_REGISTERED_WORKFLOWS=False
ports:
- - 8080:8080
+ - 8123:8123
restart: always
working_dir: ${PWD}
$ docker-compose up
Recreating sapporo ... done
Attaching to sapporo
sapporo | * Serving Flask app "sapporo.app" (lazy loading)
sapporo | * Environment: production
sapporo | WARNING: This is a development server. Do not use it in a production deployment.
sapporo | Use a production WSGI server instead.
sapporo | * Debug mode: on
sapporo | * Restarting with stat
sapporo | * Debugger is active!
sapporo | * Debugger PIN: 128-248-418
{
"default_workflow_engine_parameters": [],
"supported_filesystem_protocols": [
"http",
"https",
"file"
],
"supported_wes_versions": [
"1.0.0"
],
"system_state_counts": {
"COMPLETE": 2,
"UNKNOWN": 16
},
"tags": {
"debug": true,
"get_runs": true,
"registered_only_mode": false,
"run_dir": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run",
"wes_name": "sapporo",
"workflow_attachment": true
},
"workflow_engine_versions": {
"cromwell": "50",
"cwltool": "1.0.20191225192155",
"nextflow": "20.04.1",
"snakemake": "v5.17.0",
"toil": "4.1.0"
},
"workflow_type_versions": {
"CWL": {
"workflow_type_version": [
"v1.0",
"v1.1",
"v1.1.0-dev1"
]
}
}
}
{
"msg": "workflow_params not included in the form data of the request.",
"status_code": 400
}
workflow_params がないと言われた
この場合は workflow_url がないと先に言うべきではないのかしら?
言われるがままに workflow_params だけ指定して投げてみる
code:curl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<html>
<head>
<title>IndexError: tuple index out of range // Werkzeug Debugger</title>
<link rel="stylesheet" href="?__debugger__=yes&cmd=resource&f=style.css"
type="text/css">
<!-- We need to make sure this has a favicon so that the debugger does
not by accident trigger a request to /favicon.ico which might
change the application state. -->
<link rel="shortcut icon"
href="?__debugger__=yes&cmd=resource&f=console.png">
<script src="?__debugger__=yes&cmd=resource&f=jquery.js"></script>
<script src="?__debugger__=yes&cmd=resource&f=debugger.js"></script>
<script type="text/javascript">
var TRACEBACK = 140737299279248,
CONSOLE_MODE = false,
EVALEX = true,
EVALEX_TRUSTED = false,
SECRET = "XYf2dS2HtqfRICgpvBZ8";
</script>
</head>
<body style="background-color: #fff"> <div class="debugger">
<h1>IndexError</h1>
<div class="detail">
<p class="errormsg">IndexError: tuple index out of range</p>
</div>
<h2 class="traceback">Traceback <em>(most recent call last)</em></h2>
<div class="traceback">
...
</form>
</div>
</div>
</body>
</html>
<!--
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1926, in dispatch_request
self.raise_routing_exception(req)
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1908, in raise_routing_exception
raise request.routing_exception
File "/usr/local/lib/python3.8/site-packages/flask/ctx.py", line 350, in match_request
result = self.url_adapter.match(return_rule=True)
File "/usr/local/lib/python3.8/site-packages/werkzeug/routing.py", line 1940, in match
raise MethodNotAllowed(valid_methods=list(have_match_for))
werkzeug.exceptions.MethodNotAllowed: 405 Method Not Allowed: The method is not allowed for the requested URL.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1816, in handle_user_exception
return self.handle_http_exception(e)
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1744, in handle_http_exception
return handler(e)
File "/usr/local/lib/python3.8/site-packages/sapporo-1.0.1-py3.8.egg/sapporo/app.py", line 232, in error_handler_exception
current_app.logger.error(exception.args0) IndexError: tuple index out of range
-->
ギョエー!
なんかhtml返ってきましたけど!
よくみたらcurlコマンドラインオプションの位置がおかしかったので修正
code:curl
{
"msg": "workflow_type not included in the form data of the request.",
"status_code": 400
}
あ、ちゃんとできた
よかった
でもhtmlが返ってくるのはビビる
次は workflow_type だそうです
code:curl
{
"msg": "workflow_type_version not included in the form data of the request.",
"status_code": 400
}
workflow_type_version は指定したワークフロー記述から判定してほしいよね、、
高まるagodashiの需要
code:curl
$ curl -s -X POST -F "workflow_params=<workflow_params.json" -F "workflow_type=CWL" -F "workflow_type_version=v1.0" http://0.0.0.0:8123/runs {
"msg": "workflow_url not included in the form data of the request.",
"status_code": 400
}
やっとworkflow_urlないでって言われた
code:curl
{
"msg": "workflow_engine_name not included in the form data of the request.",
"status_code": 400
}
はいはい
code:curl
{
"msg": "The server encountered an internal error and was unable to complete your request.",
"status_code": 500
}
ウッ!
なんでや
code:dockercomposelogs
$ docker-compose logs
sapporo | During handling of the above exception, another exception occurred:
sapporo |
sapporo | Traceback (most recent call last):
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2464, in __call__
sapporo | return self.wsgi_app(environ, start_response)
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2450, in wsgi_app
sapporo | response = self.handle_exception(e)
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1867, in handle_exception
sapporo | reraise(exc_type, exc_value, tb)
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
sapporo | raise value
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
sapporo | response = self.full_dispatch_request()
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
sapporo | rv = self.handle_user_exception(e)
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1816, in handle_user_exception
sapporo | return self.handle_http_exception(e)
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1744, in handle_http_exception
sapporo | return handler(e)
sapporo | File "/usr/local/lib/python3.8/site-packages/sapporo-1.0.1-py3.8.egg/sapporo/app.py", line 232, in error_handler_exception
sapporo | current_app.logger.error(exception.args0) sapporo | IndexError: tuple index out of range
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
sapporo | rv = self.dispatch_request()
sapporo | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
sapporo | return self.view_functionsrule.endpoint(**req.view_args) sapporo | File "/usr/local/lib/python3.8/site-packages/sapporo-1.0.1-py3.8.egg/sapporo/controller.py", line 84, in post_runs
sapporo | dump_wf_engine_params(run_id)
sapporo | File "/usr/local/lib/python3.8/site-packages/sapporo-1.0.1-py3.8.egg/sapporo/util.py", line 113, in dump_wf_engine_params
sapporo | KeyError: 'workflow_engine_parameters'
sapporo |
あっはい workflow_engine_parameters ですね
そんならそうやて言うてくれよ
code:curl
workflow_url 指定せずに workflow_params だけ指定されたケースのエラーハンドリングができてないっぽい
意地悪せずにurl指定してみましょう
code:curl
{
"run_id": "995ddefa-6082-4a78-a1a2-e25d5385162f"
}
よっしゃ
docker-stats 見ると動いているっぽい
get runs やってみましょう
code:curl
{
"run_id": "995ddefa-6082-4a78-a1a2-e25d5385162f",
"state": "RUNNING"
}
{
"outputs": null,
"request": {
"workflow_attachment": [],
"workflow_engine_name": "cwltool",
"workflow_engine_parameters": "{}\n",
"workflow_type": "CWL",
"workflow_type_version": "v1.0",
},
"run_id": "995ddefa-6082-4a78-a1a2-e25d5385162f",
"run_log": {
"cmd": "docker run -i --rm -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp -v /home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/99/995ddefa-6082-4a78-a1a2-e25d5385162f:/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/99/995ddefa-6082-4a78-a1a2-e25d5385162f -w=/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/99/995ddefa-6082-4a78-a1a2-e25d5385162f/exe commonworkflowlanguage/cwltool:1.0.20191225192155 --outdir /home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/99/995ddefa-6082-4a78-a1a2-e25d5385162f/outputs https://github.com/pitagora-network/DAT2-cwl/raw/develop/workflow/meta16s-seq/meta16s-seq.demo.cwl /home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/99/995ddefa-6082-4a78-a1a2-e25d5385162f/exe/workflow_params.json 1>/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/99/995ddefa-6082-4a78-a1a2-e25d5385162f/stdout.log 2>/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/99/995ddefa-6082-4a78-a1a2-e25d5385162f/stderr.log", "end_time": null,
"exit_code": null,
"name": null,
"start_time": "2020-07-10T02:54:11",
"stderr": "\u001b[1;30mINFO\u001b[0m /usr/local/bin/cwltool 1.0.20191225192155\n\u001b[1;30mINFO\u001b[0m workflow start\n\u001b[1;30mINFO\u001b[0m workflow starting step download.metadata\n\u001b[1;30mINFO\u001b[0m step download.metadata start\n\u001b[1;30mINFO\u001b[0m 'docker', 'pull', 'alpine:3.9'\n3.9: Pulling from library/alpine\n31603596830f: Pulling fs layer\n31603596830f: Verifying Checksum\n31603596830f: Download complete\n31603596830f: Pull complete\nDigest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011\nStatus: Downloaded newer image for alpine:3.9\n\u001b[1;30mINFO\u001b[0m job download.metadata /tmp/ovwjs00z$ docker \\\n run \\\n -i \\\n --volume=/tmp/ovwjs00z:/JbBetD:rw \\\n --volume=/tmp/gnqa6k94:/tmp:rw \\\n --workdir=/JbBetD \\\n --read-only=true \\\n --user=0:0 \\\n --rm \\\n --env=TMPDIR=/tmp \\\n --env=HOME=/JbBetD \\\n --cidfile=/tmp/sf8sfj0g/20200710025438-093883.cid \\\n alpine:3.9 \\\n wget \\\n --output-document=metadata.txt \\\n https://zenodo.org/record/3371848/files/metadata.txt 2> /tmp/ovwjs00z/wget-stderr.log\n\u001b[1;30mINFO\u001b[0m job download.metadata Max memory used: 0MiB\n\u001b[1;30mINFO\u001b[0m job download.metadata completed success\n\u001b[1;30mINFO\u001b[0m step download.metadata completed success\n\u001b[1;30mINFO\u001b[0m workflow starting step download.classifier\n\u001b[1;30mINFO\u001b[0m step download.classifier start\n\u001b[1;30mINFO\u001b[0m job download.classifier /tmp/_meg_l94$ docker \\\n run \\\n -i \\\n --volume=/tmp/_meg_l94:/JbBetD:rw \\\n --volume=/tmp/c0uc3hje:/tmp:rw \\\n --workdir=/JbBetD \\\n --read-only=true \\\n --user=0:0 \\\n --rm \\\n --env=TMPDIR=/tmp \\\n --env=HOME=/JbBetD \\\n --cidfile=/tmp/jy3sfrpt/20200710025453-796336.cid \\\n alpine:3.9 \\\n wget \\\n --output-document=gg-13-8-99-nb-classifier.qza \\\n https://zenodo.org/record/3371848/files/gg-13-8-99-nb-classifier.qza 2> /tmp/_meg_l94/wget-stderr.log\n\u001b[1;30mINFO\u001b[0m job download.classifier Max memory used: 0MiB\n\u001b[1;30mINFO\u001b[0m job download.classifier completed success\n\u001b[1;30mINFO\u001b[0m step download.classifier completed success\n\u001b[1;30mINFO\u001b[0m workflow starting step download.fastq.tar\n\u001b[1;30mINFO\u001b[0m step download.fastq.tar start\n\u001b[1;30mINFO\u001b[0m job download.fastq.tar /tmp/uarak8p8$ docker \\\n run \\\n -i \\\n --volume=/tmp/uarak8p8:/JbBetD:rw \\\n --volume=/tmp/_p0a6yys:/tmp:rw \\\n --workdir=/JbBetD \\\n --read-only=true \\\n --user=0:0 \\\n --rm \\\n --env=TMPDIR=/tmp \\\n --env=HOME=/JbBetD \\\n --cidfile=/tmp/ayqnh_lk/20200710025523-610003.cid \\\n alpine:3.9 \\\n wget \\\n --output-document=fastq.tar.gz \\\n https://zenodo.org/record/3371848/files/fastq.tar.gz 2> /tmp/uarak8p8/wget-stderr.log\n", "stdout": ""
},
"state": "RUNNING",
"task_logs": null
}
動いとる、ヨシヨシ
キャンセルしてみましょう
code:curl
{
"run_id": "995ddefa-6082-4a78-a1a2-e25d5385162f",
"state": "RUNNING"
}
{
"run_id": "995ddefa-6082-4a78-a1a2-e25d5385162f"
}
{
"run_id": "995ddefa-6082-4a78-a1a2-e25d5385162f",
"state": "CANCELING"
}
なかなかキャンセルできない
docker stats 見るとコンテナがぶんぶん回っている
code:dockerstats
{
"run_id": "995ddefa-6082-4a78-a1a2-e25d5385162f",
"state": "CANCELED"
}
しばらく放置していたらキャンセルできた
時間がかかるのはしゃあない
もういっぺんやってみよう、ちゃんと実行できるのか
code:curl
$ curl -s -X POST -F "workflow_params=<workflow_params.json" -F "workflow_type=CWL" -F "workflow_type_version=v1.0" -F "wor295/1837$
{
"run_id": "38f11b56-7cfc-488f-8b7e-9f653646cc79"
}
{
"run_id": "38f11b56-7cfc-488f-8b7e-9f653646cc79",
"state": "COMPLETE"
}
{
"outputs": {
"alpha-rarefaction.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/alpha-rarefaction.qzv",
"ancom_table_ob_l5_diet.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/ancom_table_ob_l5_diet.qzv",
"demux.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/demux.qzv",
"heatmap_l5_group.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/heatmap_l5_group.qzv",
"observed_otus-group-significance.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/observed_otus-group-significance.qzv",
"observed_otus-group-significance.qzv_2": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/observed_otus-group-significance.qzv_2
",
"rep-seqs.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/rep-seqs.qzv",
"shannon-group-significance.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/shannon-group-significance.qzv",
"stats-dada2.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/stats-dada2.qzv",
"table.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/table.qzv",
"taxa-bar-plots.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/taxa-bar-plots.qzv",
"taxonomy.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/taxonomy.qzv",
"unweighted-unifrac-group-significance.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/unweighted-unifrac-group-significan
ce.qzv",
"weighted-unifrac-group-significance.qzv": "/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/weighted-unifrac-group-significance.q
zv"
},
"request": {
"workflow_attachment": [],
"workflow_engine_name": "cwltool",
"workflow_engine_parameters": "{}\n",
"workflow_type": "CWL",
"workflow_type_version": "v1.0",
},
"run_id": "38f11b56-7cfc-488f-8b7e-9f653646cc79",
"run_id": "38f11b56-7cfc-488f-8b7e-9f653646cc79",
"run_log": {
"cmd": "docker run -i --rm -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp -v /home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79:/
home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79 -w=/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653$
46cc79/exe commonworkflowlanguage/cwltool:1.0.20191225192155 --outdir /home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs https://github$ com/pitagora-network/DAT2-cwl/raw/develop/workflow/meta16s-seq/meta16s-seq.demo.cwl /home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/exe/work$
low_params.json 1>/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/stdout.log 2>/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/$
8f11b56-7cfc-488f-8b7e-9f653646cc79/stderr.log",
"end_time": "2020-07-10T05:57:02",
"exit_code": 0,
"name": null,
"start_time": "2020-07-10T05:29:48",
"stderr": "REMOVED BECAUSE ITS TOO LONG"
"stdout": "{\n \"alpha-rarefaction.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/alpha-rarefaction.qzv\",\n \"basename\": \"alpha-rarefaction.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$a56274b00cabb82ce8ba842feee96beef41cce7e\",\n \"size\": 333404,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/alpha-rarefaction.qzv\"\n },\n \"ancom_table_ob_l5_diet.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/ancom_table_ob_l5_diet.qzv\",\n \"basename\": \"ancom_table_ob_l5_diet.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$93b65aad12b6c5e14a3589d2b3438e6bddb1cbb9\",\n \"size\": 411871,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/ancom_table_ob_l5_diet.qzv\"\n },\n \"demux.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/demux.qzv\",\n \"basename\": \"demux.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$2d892664e7204a7678a1011791fec1de607017a0\",\n \"size\": 298926,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/demux.qzv\"\n },\n \"faith-pd-group-significance.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/observed_otus-group-significance.qzv\",\n \"basename\": \"observed_otus-group-significance.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$424f9ba09ab34192c46815b03a184259ac2a08b8\",\n \"size\": 328522,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/observed_otus-group-significance.qzv\"\n },\n \"heatmap_l5_group.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/heatmap_l5_group.qzv\",\n \"basename\": \"heatmap_l5_group.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$7e6488721cae401ca4f5be47a534d76ccca392de\",\n \"size\": 467645,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/heatmap_l5_group.qzv\"\n },\n \"observed_otus-group-significance.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/observed_otus-group-significance.qzv_2\",\n \"basename\": \"observed_otus-group-significance.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$6bfbc3f536d3f2fd110ac64f35ac7f8397b944ed\",\n \"size\": 327864,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/observed_otus-group-significance.qzv_2\"\n },\n \"rep-seqs.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/rep-seqs.qzv\",\n \"basename\": \"rep-seqs.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$ecd79dc0fb966585b319a5cd1d0790c76ecc4981\",\n \"size\": 319186,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/rep-seqs.qzv\"\n },\n \"shannon-group-significance.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/shannon-group-significance.qzv\",\n \"basename\": \"shannon-group-significance.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$28462d3b68c870ead9bde414fd052ed2e7abe6ef\",\n \"size\": 328286,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/shannon-group-significance.qzv\"\n },\n \"stats-dada2.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/stats-dada2.qzv\",\n \"basename\": \"stats-dada2.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$7afcad59f961814d4ed595f99717357588763c70\",\n \"size\": 1215879,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/stats-dada2.qzv\"\n },\n \"table.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/table.qzv\",\n \"basename\": \"table.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$ad6b682dbc8adef32401a7186299394d28dee033\",\n \"size\": 444490,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/table.qzv\"\n },\n \"taxa-bar-plots.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/taxa-bar-plots.qzv\",\n \"basename\": \"taxa-bar-plots.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$4c3b3dbac95e43933c6edd19fee471cf15bc581a\",\n \"size\": 365088,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/taxa-bar-plots.qzv\"\n },\n \"taxonomy.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/taxonomy.qzv\",\n \"basename\": \"taxonomy.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$d606d2dccc6865144755748198a9c0fb9a0fb038\",\n \"size\": 1308160,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/taxonomy.qzv\"\n },\n \"unweighted-unifrac-group-significance.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/unweighted-unifrac-group-significance.qzv\",\n \"basename\": \"unweighted-unifrac-group-significance.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$d381ca34e48cf9516238c7f58fcddaf4697251f8\",\n \"size\": 325370,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/unweighted-unifrac-group-significance.qzv\"\n },\n \"weighted-unifrac-group-significance.vis\": {\n \"location\": \"file:///home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/weighted-unifrac-group-significance.qzv\",\n \"basename\": \"weighted-unifrac-group-significance.qzv\",\n \"class\": \"File\",\n \"checksum\": \"sha1$6903aef4339685aeb146d14395628670a2e9eed5\",\n \"size\": 327547,\n \"path\": \"/home/inutano/work/sapporo-dogfooding/SAPPORO-service/run/38/38f11b56-7cfc-488f-8b7e-9f653646cc79/outputs/weighted-unifrac-group-significance.qzv\"\n }\n}\n"
},
"state": "COMPLETE",
"task_logs": null
}
ちゃんと実行できました、めでたしめでたし
あとはデータ入出力の部分をスムーズにするだけですね