ivis-mizuguchi 2 years ago
parent
commit
c6245869e1
46 changed files with 1923 additions and 0 deletions
  1. 3 0
      .gitconfig
  2. 13 0
      .gitignore
  3. 7 0
      .ssh/git-annex-shell
  4. 3 0
      .ssh/git-annex-wrapper
  5. 3 0
      WORKFLOW/PACKAGE/.gitconfig
  6. 13 0
      WORKFLOW/PACKAGE/.gitignore
  7. 123 0
      WORKFLOW/PACKAGE/SECTIONS/enter_metadata.ipynb
  8. 97 0
      WORKFLOW/PACKAGE/SECTIONS/finish.ipynb
  9. 72 0
      WORKFLOW/PACKAGE/SECTIONS/save.ipynb
  10. 105 0
      WORKFLOW/PACKAGE/SECTIONS/util/datalad_save_push.ipynb
  11. 71 0
      WORKFLOW/PACKAGE/SECTIONS/util/prepare_for_workflow_every_time.ipynb
  12. 12 0
      WORKFLOW/PACKAGE/environment.yml
  13. 68 0
      WORKFLOW/PACKAGE/experiment.ipynb
  14. 0 0
      WORKFLOW/PACKAGE/input_data/.gitkeep
  15. 0 0
      WORKFLOW/PACKAGE/meta_data.json
  16. 1 0
      WORKFLOW/PACKAGE/output_data/.gitkeep
  17. 32 0
      WORKFLOW/PACKAGE/source/main.ipynb
  18. 3 0
      WORKFLOW/README.md
  19. 17 0
      WORKFLOW/WORKFLOW/FLOWS/README.md
  20. 109 0
      WORKFLOW/WORKFLOW/FLOWS/base_FLOW.ipynb
  21. 19 0
      WORKFLOW/WORKFLOW/FLOWS/bio_FLOW.ipynb
  22. 19 0
      WORKFLOW/WORKFLOW/FLOWS/neuro_FLOW.ipynb
  23. 1 0
      WORKFLOW/WORKFLOW/SECTIONS/README.md
  24. 41 0
      WORKFLOW/WORKFLOW/SECTIONS/base/01_preparation_phase/setup_data_analysis_tools.ipynb
  25. 41 0
      WORKFLOW/WORKFLOW/SECTIONS/base/01_preparation_phase/setup_data_cleaning_tools.ipynb
  26. 67 0
      WORKFLOW/WORKFLOW/SECTIONS/base/01_preparation_phase/work_with_GakuNinRDM.ipynb
  27. 105 0
      WORKFLOW/WORKFLOW/SECTIONS/base/02_experimental_phase/check_pipeline.ipynb
  28. 200 0
      WORKFLOW/WORKFLOW/SECTIONS/base/02_experimental_phase/launch_an_experiment.ipynb
  29. 42 0
      WORKFLOW/WORKFLOW/SECTIONS/base/02_experimental_phase/monitor_repository.ipynb
  30. 142 0
      WORKFLOW/WORKFLOW/SECTIONS/base/02_experimental_phase/run_pipeline.ipynb
  31. 56 0
      WORKFLOW/WORKFLOW/SECTIONS/base/03_after_research_phase/publish.ipynb
  32. 1 0
      WORKFLOW/WORKFLOW/SECTIONS/base/util/README.md
  33. 105 0
      WORKFLOW/WORKFLOW/SECTIONS/base/util/datalad_save_push.ipynb
  34. 7 0
      WORKFLOW/WORKFLOW/SECTIONS/base/util/load.py
  35. 233 0
      WORKFLOW/WORKFLOW/SECTIONS/base/util/prepare_for_workflow.ipynb
  36. 87 0
      WORKFLOW/WORKFLOW/SECTIONS/base/util/prepare_for_workflow_every_time.ipynb
  37. 0 0
      WORKFLOW/WORKFLOW/SECTIONS/bio/01_preparation_phase/.gitkeep
  38. 0 0
      WORKFLOW/WORKFLOW/SECTIONS/bio/02_experimental_phase/.gitkeep
  39. 0 0
      WORKFLOW/WORKFLOW/SECTIONS/bio/03_after_research_phase/.gitkeep
  40. 0 0
      WORKFLOW/WORKFLOW/SECTIONS/bio/util/.gitkeep
  41. 0 0
      WORKFLOW/WORKFLOW/SECTIONS/neuro/01_preparation_phase/.gitkeep
  42. 0 0
      WORKFLOW/WORKFLOW/SECTIONS/neuro/02_experimental_phase/.gitkeep
  43. 0 0
      WORKFLOW/WORKFLOW/SECTIONS/neuro/03_after_research_phase/.gitkeep
  44. 0 0
      WORKFLOW/WORKFLOW/SECTIONS/neuro/util/.gitkeep
  45. 4 0
      WORKFLOW/param_files/param_for_dataladsiblings.json
  46. 1 0
      experiments/pipeline.json

+ 3 - 0
.gitconfig

@@ -0,0 +1,3 @@
+[user]
+	name = ivis-mizuguchi
+	email = rino.mizuguchi@ivis.co.jp

+ 13 - 0
.gitignore

@@ -0,0 +1,13 @@
+
+/.cache/
+/.conda/
+/.config/
+/.ipython/
+/.local/
+/.tmp/
+/.bashrc
+/.bash_logout
+/.profile
+/.netrc
+.ipynb_checkpoints/
+

+ 7 - 0
.ssh/git-annex-shell

@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+if [ "x$SSH_ORIGINAL_COMMAND" != "x" ]; then
+exec '/srv/conda/envs/notebook/share/git-annex-8.20211123-0/runshell' git-annex-shell -c "$SSH_ORIGINAL_COMMAND"
+else
+exec '/srv/conda/envs/notebook/share/git-annex-8.20211123-0/runshell' git-annex-shell -c "$@"
+fi

+ 3 - 0
.ssh/git-annex-wrapper

@@ -0,0 +1,3 @@
+#!/bin/sh
+set -e
+exec '/srv/conda/envs/notebook/share/git-annex-8.20211123-0/runshell' "$@"

+ 3 - 0
WORKFLOW/PACKAGE/.gitconfig

@@ -0,0 +1,3 @@
+[user]
+	name = ivis-mizuguchi
+	email = rino.mizuguchi@ivis.co.jp

+ 13 - 0
WORKFLOW/PACKAGE/.gitignore

@@ -0,0 +1,13 @@
+
+/.cache/
+/.conda/
+/.config/
+/.ipython/
+/.local/
+/.tmp/
+/.bashrc
+/.bash_logout
+/.profile
+/.netrc
+.ipynb_checkpoints/
+

+ 123 - 0
WORKFLOW/PACKAGE/SECTIONS/enter_metadata.ipynb

@@ -0,0 +1,123 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 実験メタデータを入力する\n",
+    "\n",
+    "これは、実験日や実験者などのメタデータを入力するためのノートブックです。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. メタデータを入力する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "1. 以下のセルを実行して、実験日を入力してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "experiment_date = input()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "2. 以下のセルを実行して、実験者を入力してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "experimenter = input()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. meta_data.jsonに書き込む"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import json\n",
+    "from collections import OrderedDict\n",
+    "\n",
+    "meta_data = {\n",
+    "    \"experiment_date\": experiment_date,\n",
+    "    \"experimenter\": experimenter\n",
+    "}\n",
+    "with open('../meta_data.json', 'w') as jf:\n",
+    "    json.dump(meta_data, jf, ensure_ascii=False, indent=2)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3. 変更内容を書き戻す"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%cd ~/\n",
+    "!git add ~/\n",
+    "!git commit -m 'メタデータ入力'\n",
+    "\n",
+    "# import papermill as pm\n",
+    "# \n",
+    "# pm.execute_notebook(\n",
+    "#     './util/datalad_save_push.ipynb',\n",
+    "#     '-',\n",
+    "#     parameters = dict(SAVE_MESSAGE = 'メタデータ入力', PATH = '/home/jovyan/meta_data.json')\n",
+    "# )"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 97 - 0
WORKFLOW/PACKAGE/SECTIONS/finish.ipynb

@@ -0,0 +1,97 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 実験を終了する\n",
+    "\n",
+    "これは実験を終了するためのノートブックです。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. 実行環境構成を記録する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "conda env export > ~/environment.yml\n",
+    "pip freeze > ~/requirements.txt"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. コミットメッセージを入力する\n",
+    "\n",
+    "以下のセルでコミットメッセージを入力してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "save_message = input()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3. 実験を書き戻す"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%cd ~/\n",
+    "!git add ~/\n",
+    "!git commit -m $save_message\n",
+    "!git push origin master\n",
+    "\n",
+    "# import papermill as pm\n",
+    "# \n",
+    "# pm.execute_notebook(\n",
+    "#     './util/datalad_save_push.ipynb',\n",
+    "#     '-',\n",
+    "#     parameters = dict(SAVE_MESSAGE = save_message)\n",
+    "# )"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 72 - 0
WORKFLOW/PACKAGE/SECTIONS/save.ipynb

@@ -0,0 +1,72 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 実験を途中保存する\n",
+    "\n",
+    "これは、実験終了前に実験を途中で保存するためのノートブックです。  \n",
+    "途中保存ではGINリポジトリへの書き戻しは行われませんが、変更履歴が残ります。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "1. コミットメッセージを変数に入力する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "save_message = input()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "2. 途中保存する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%cd ~/\n",
+    "!git add ~/\n",
+    "!git commit -m $save_message\n",
+    "\n",
+    "# from datalad import api\n",
+    "# api.save(message=save_message)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 105 - 0
WORKFLOW/PACKAGE/SECTIONS/util/datalad_save_push.ipynb

@@ -0,0 +1,105 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# ワークフロー実行結果を書き戻す\n",
+    "\n",
+    "このノートブックでは、変更内容をginリポジトリに書き戻します。  \n",
+    "※各セクションのセルでpapermillによって自動実行されるノートブックなので手作業での実施は非推奨です。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": [
+     "parameters"
+    ]
+   },
+   "outputs": [],
+   "source": [
+    "SIBLING_NAME = \"gin\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "※PATHが指定されない場合は/home/jovyan/をPATHとする"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": [
+     "parameters"
+    ]
+   },
+   "outputs": [],
+   "source": [
+    "PATH = \"/home/jovyan\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. 書き戻しの準備を行う"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from datalad import api\n",
+    "\n",
+    "api.save(message=SAVE_MESSAGE, path=PATH, recursive=True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. 変更内容を書き戻す"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from datalad import api\n",
+    "\n",
+    "api.push(to=SIBLING_NAME, result_renderer='default', path=PATH, recursive=True)"
+   ]
+  }
+ ],
+ "metadata": {
+  "celltoolbar": "Tags",
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 71 - 0
WORKFLOW/PACKAGE/SECTIONS/util/prepare_for_workflow_every_time.ipynb

@@ -0,0 +1,71 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "4719bc46",
+   "metadata": {},
+   "source": [
+    "# ワークフロー実行準備(binder環境起動毎)\n",
+    "\n",
+    "- このノートブックでは、binder環境が起動するたびに必要なワークフロー実行のための処理を行います。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "3d968f7c",
+   "metadata": {},
+   "source": [
+    "## データ書き戻しのための.netrcファイルの設定\n",
+    "\n",
+    "- 以下のセルを実行し、表示されたURLに遷移して、【ユーザ名】と【パスワード】を書き換えてください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "178dfe28",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "echo \"\n",
+    "machine dg02.dg.rcos.nii.ac.jp\n",
+    "login 【ユーザ名】\n",
+    "password 【パスワード】\n",
+    "\" > ~/.netrc"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "ec0051a9",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "print(\"https://jupyter.cs.rcos.nii.ac.jp\" + os.environ[\"JUPYTERHUB_SERVICE_PREFIX\"] + \"edit/.netrc\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}

+ 12 - 0
WORKFLOW/PACKAGE/environment.yml

@@ -0,0 +1,12 @@
+channels:
+  - conda-forge
+  - defaults
+dependencies:
+  - datalad
+  - openpyxl
+  - openssl=1.1.1l
+  - pip=21.2.4
+  - python=3.8.12
+  - python_abi=3.8
+  - wheel=0.37.0
+  - papermill

+ 68 - 0
WORKFLOW/PACKAGE/experiment.ipynb

@@ -0,0 +1,68 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 実験支援ノートブック\n",
+    "\n",
+    "これは、実験中のワークフローを支援するためのノートブックです。  \n",
+    "リンクに遷移して必要なワークフローを実行してください。  \n",
+    "※実験は、sourceフォルダ内の [main.ipynb](./source/main.ipynb) に記述してください。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "##  0. 準備"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "|||\n",
+    "|:---:|:---:|\n",
+    "|[書き戻しの準備](./SECTIONS/util/prepare_for_workflow_every_time.ipynb)|"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. 実験中ワークフロー"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "||||\n",
+    "|:---:|:---:|:---:|\n",
+    "|[実験メタデータを入力する](./SECTIONS/enter_metadata.ipynb)|[実験を途中保存する](./SECTIONS/save.ipynb)|[実験を終了する](./SECTIONS/finish.ipynb)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 0 - 0
WORKFLOW/PACKAGE/input_data/.gitkeep


+ 0 - 0
WORKFLOW/PACKAGE/meta_data.json


+ 1 - 0
WORKFLOW/PACKAGE/output_data/.gitkeep

@@ -0,0 +1 @@
+

+ 32 - 0
WORKFLOW/PACKAGE/source/main.ipynb

@@ -0,0 +1,32 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 3 - 0
WORKFLOW/README.md

@@ -0,0 +1,3 @@
+# データガバナンス機能 ワークフロー
+
+[WORKFLOW/FLOWS/base_FLOW.ipynb](WORKFLOW/FLOWS/base_FLOW.ipynb)

+ 17 - 0
WORKFLOW/WORKFLOW/FLOWS/README.md

@@ -0,0 +1,17 @@
+# FLOWS
+
+## FLOWSでは分野ごとのフロー群を整理する
+
+## ◆◆◆開発メモ◆◆◆
+
+現時点では、プロトタイプを動かすために以下の作業が必要なのでprepare_for_datalad_push.ipynbで作業を定義している。
+
+- .gitconfigにユーザー名とメールアドレスを登録する
+- jupyterhubでid_rsa(秘密鍵)を.ssh下に配置し、ginリポジトリにペアの公開鍵を登録する
+- .gitignoreで.local以下のファイルをgit管理から外す
+- .ssh/configで以下を指定
+    host *
+            StrictHostKeyChecking no
+            UserKnownHostsFile=/dev/null
+
+

+ 109 - 0
WORKFLOW/WORKFLOW/FLOWS/base_FLOW.ipynb

@@ -0,0 +1,109 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# FLOW\n",
+    "\n",
+    "このノートブックは、研究の準備、実施、公開までの研究者のワークフロー実施を支援します。  \n",
+    "「0.データガバナンス機能と連携する」を最初に実行したあと、初期フェーズから中期フェーズ、後期フェーズの順に進んでください。  \n",
+    "各フェーズでは、リンクからセクションノートブックに遷移し、手順に沿ってセルを実行することでワークフローを行えます。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 0. ワークフローを実行するための準備をする\n",
+    "\n",
+    "ワークフロー実行結果をデータガバナンス機能に書き戻すために必要な処理を行います。  \n",
+    "次のフェーズに進む前に必ず実行する必要があります。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "|||\n",
+    "|:---:|:---:|\n",
+    "|[binder環境立ち上げ毎に実行](../SECTIONS/base/util/prepare_for_workflow_every_time.ipynb)|[初回立ち上げ時に実行](../SECTIONS/base/util/prepare_for_workflow.ipynb)|"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. 研究準備フェーズ\n",
+    "\n",
+    "研究準備フェーズでは実験前の準備をサポートします。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "||||||\n",
+    "|:---:|:---:|:---:|:---:|:---:|\n",
+    "|[GakuNin RDMと連携する](../SECTIONS/base/01_preparation_phase/work_with_GakuNinRDM.ipynb)|[データクリーニングツールを準備する](../SECTIONS/base/01_preparation_phase/setup_data_cleaning_tools.ipynb)|[データ分析ツールを準備する](../SECTIONS/base/01_preparation_phase/setup_data_analysis_tools.ipynb)|"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. 実験期フェーズ\n",
+    "\n",
+    "実験期フェーズでは実験の試行錯誤や再現性の確保をサポートします。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "||||||\n",
+    "|:---:|:---:|:---:|:---:|:---:|\n",
+    "|[実験を実行する](../SECTIONS/base/02_experimental_phase/launch_an_experiment.ipynb)|[実験パイプラインをチェックする](../SECTIONS/base/02_experimental_phase/check_pipeline.ipynb)|[実験パイプラインを実行する](../SECTIONS/base/02_experimental_phase/run_pipeline.ipynb)|[研究リポジトリをモニタリングする](../SECTIONS/base/02_experimental_phase/monitor_repository.ipynb)|"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3. 実験終了後フェーズ\n",
+    "\n",
+    "実験終了後フェーズでは研究成果の公開をサポートします。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "|||\n",
+    "|:---:|:---:|\n",
+    "|[研究成果を公開する](../SECTIONS/base/03_after_research_phase/publish.ipynb)|"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 19 - 0
WORKFLOW/WORKFLOW/FLOWS/bio_FLOW.ipynb

@@ -0,0 +1,19 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 分野固有フローのサンプル(bio)"
+   ]
+  }
+ ],
+ "metadata": {
+  "language_info": {
+   "name": "python"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}

+ 19 - 0
WORKFLOW/WORKFLOW/FLOWS/neuro_FLOW.ipynb

@@ -0,0 +1,19 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 分野固有フローのサンプル(neuro)"
+   ]
+  }
+ ],
+ "metadata": {
+  "language_info": {
+   "name": "python"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}

+ 1 - 0
WORKFLOW/WORKFLOW/SECTIONS/README.md

@@ -0,0 +1 @@
+属するフェーズなどでセクションを整理する

+ 41 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/01_preparation_phase/setup_data_analysis_tools.ipynb

@@ -0,0 +1,41 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# データ分析ツールの環境構築\n",
+    "\n",
+    "これはDMP情報に基づき、データ分析ツールの環境構築をするためのノートブックです。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "TBD"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 41 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/01_preparation_phase/setup_data_cleaning_tools.ipynb

@@ -0,0 +1,41 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# データクリーニングツールの環境構築\n",
+    "\n",
+    "これはDMP情報に基づき、データクリーニングツールの環境構築をするためのノートブックです。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "TBD"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 67 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/01_preparation_phase/work_with_GakuNinRDM.ipynb

@@ -0,0 +1,67 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# GakuNin RDMと連携する\n",
+    "\n",
+    "GakuNin RDMと連携するためのノートブックです。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## ◆◆◆開発メモ◆◆◆\n",
+    "GakuNin RDMとの連携方法が明確でないためマークダウンのみ。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. GakuNin RDMに遷移する\n",
+    "\n",
+    "https://rdm.nii.ac.jp/ に遷移してください。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. GakuNin RDMにサインインして新規プロジェクトを作成する  \n",
+    "\n",
+    "※既存プロジェクトと連携する場合はこのステップを飛ばしてください。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3. データガバナンス機能連携アドオンを設定する"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 105 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/02_experimental_phase/check_pipeline.ipynb

@@ -0,0 +1,105 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 実験パイプラインのチェック\n",
+    "\n",
+    "これは実験パイプライン構成をチェックするためのノートブックです。  "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. パイプライン定義ファイルのチェック\n",
+    "\n",
+    "- このステップでは、パイプライン定義ファイルとパッケージ群の情報に相違がないか確認します。\n",
+    "- 以下のセルを実行し、エラーが起きないことを確認してください。\n",
+    "- エラーが起きた場合は、表示されたリンクに遷移してパイプライン定義ファイルを修正&エラーが起きなくなるまで再実行を繰り返してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import json\n",
+    "import glob\n",
+    "\n",
+    "# 作業ディレクトリに移動\n",
+    "%cd ~/experiments/\n",
+    "\n",
+    "# 実験パイプライン定義ファイルの読み込み\n",
+    "pipeline = json.load(open(\"pipeline.json\"))\n",
+    "print(\"実験パイプライン:\" + str(pipeline))\n",
+    "\n",
+    "# 実験パッケージ群の読み込み\n",
+    "files = glob.glob(\"./*/\")\n",
+    "\n",
+    "experiments = []\n",
+    "for file in files:\n",
+    "    experiments += [os.path.basename(file[:-1])]\n",
+    "print(\"実験パッケージ :\" + str(experiments))\n",
+    "\n",
+    "# 元のディレクトリに移動\n",
+    "%cd -\n",
+    "\n",
+    "# 過不足の確認\n",
+    "if set(pipeline) != set(experiments):\n",
+    "    link = \"https://jupyter.cs.rcos.nii.ac.jp\" + os.environ[\"JUPYTERHUB_SERVICE_PREFIX\"] + \"edit/experiments/pipeline.json\"\n",
+    "    raise Exception(\"実験パイプラインと実験パッケージ間で相違があります\\n\\n以下のURLに遷移して修正してください\\n\" + link)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. 変更内容を書き戻す"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%cd ~/\n",
+    "!git add ~/\n",
+    "!git commit -m '実験パイプラインのチェック'\n",
+    "\n",
+    "# import papermill as pm\n",
+    "# \n",
+    "# pm.execute_notebook(\n",
+    "#     '../util/datalad_save_push.ipynb',\n",
+    "#     '-',\n",
+    "#     parameters = dict(SAVE_MESSAGE = 'パイプライン構築', PATH = [未定])\n",
+    "# )"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 200 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/02_experimental_phase/launch_an_experiment.ipynb

@@ -0,0 +1,200 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 実験を開始する\n",
+    "\n",
+    "これは、実験パッケージを用意して実験を行うためのノートブックです。  "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. 実験用の空リポジトリを作成する\n",
+    "実験リポジトリを作成する準備として、[リポジトリの作成方法](https://gin.g-node.org/G-Node/Info/wiki/Web+Interface#creating-a-repository)を参考にデータガバナンス機能で実験用の空リポジトリを作成してください。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "1. [データガバナンス機能に遷移する](http://dg02.dg.rcos.nii.ac.jp/)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. ステップ1で作成した空リポジトリに実験パッケージをコピーする"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "1. 以下のセルを実行すると入力フォームが現れます。ステップ1で作成した空リポジトリの名前を入力してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "repository_title = input()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%cd ~/\n",
+    "tmp = !git remote -v\n",
+    "tmp = tmp[0]\n",
+    "tmp = tmp[tmp.find(\"http\"):]\n",
+    "tmp = tmp.split(\"/\")\n",
+    "tmp = tmp[0] + \"//\" + tmp[2] + \"/\" + tmp[3]\n",
+    "\n",
+    "ssh_url = tmp + \"/\" + repository_title + \".git\"\n",
+    "print(ssh_url)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "2. 空リポジトリ名のフォルダを作成し、実験パッケージをコピーします。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "!mkdir ~/.tmp/\n",
+    "!git init ~/.tmp/$repository_title\n",
+    "# !datalad create ~/.tmp/$repository_title\n",
+    "!cp -r ~/WORKFLOW/PACKAGE/. ~/.tmp/$repository_title/\n",
+    "\n",
+    "%cd ~/.tmp/$repository_title\n",
+    "!git add ~/.tmp/$repository_title\n",
+    "!git commit -m '1st commit'\n",
+    "!git remote add $repository_title $ssh_url\n",
+    "!git push $repository_title master\n",
+    "# !datalad save --to-git -m \"1st commit\"\n",
+    "# !datalad push"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3. 上記リポジトリをサブデータセットとして設定する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%cd ~/\n",
+    "!git submodule add $ssh_url ./experiments/$repository_title"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 4. pipeline.jsonに実験名を追記する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import json\n",
+    "\n",
+    "with open('/home/jovyan/experiments/pipeline.json', 'r') as f:\n",
+    "    pipeline = json.load(f)\n",
+    "\n",
+    "pipeline.append(repository_title)\n",
+    "\n",
+    "with open('/home/jovyan/experiments/pipeline.json', 'w') as f:\n",
+    "    json.dump(pipeline, f, indent = 4)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 5. 変更内容を書き戻す"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%cd ~/\n",
+    "!git add ~/\n",
+    "!git commit -m '実験の作成'\n",
+    "!git push origin master\n",
+    "# !datalad save --to-git -m \"実験の作成\"\n",
+    "# !datalad push"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 6. 複製したパッケージのコンテナを立ち上げて、ソースコードのJupyterNotebookに遷移する\n",
+    "\n",
+    "以下のセルを実行して表示されるリンクを押下してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import urllib\n",
+    "\n",
+    "print(\n",
+    "    \"https://binder.cs.rcos.nii.ac.jp/v2/git/\" + urllib.parse.quote(ssh_url, safe='') + \"/HEAD?filepath=experiment.ipynb\"\n",
+    ")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 42 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/02_experimental_phase/monitor_repository.ipynb

@@ -0,0 +1,42 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# リポジトリ構成のモニタリング(検討中)\n",
+    "\n",
+    "これはリポジトリ構成をモニタリングするためのノートブックです。  \n",
+    "システムによってパラメタライズされるため、手動での実行は非推奨です。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "TBD"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 142 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/02_experimental_phase/run_pipeline.ipynb

@@ -0,0 +1,142 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "8db76987",
+   "metadata": {},
+   "source": [
+    "# 実験パイプラインの実行\n",
+    "\n",
+    "これは実験パイプラインを実行するためのノートブックです。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "71da3526",
+   "metadata": {},
+   "source": [
+    "## 1. 実験パイプライン情報の取得\n",
+    "\n",
+    "- このステップでは、実行する実験パイプラインの定義情報を取得します。\n",
+    "- 以下のセルを実行してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b1d8a854",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import json\n",
+    "\n",
+    "# 作業ディレクトリに移動\n",
+    "%cd ~/experiments/\n",
+    "\n",
+    "# 実験パイプライン定義ファイルの読み込み\n",
+    "pipeline = json.load(open(\"pipeline.json\"))\n",
+    "print(\"実験パイプライン:\" + str(pipeline))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "77ea8bce",
+   "metadata": {},
+   "source": [
+    "## 2. 実験パッケージの最新化"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b4ac08ea",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for experiment in pipeline:\n",
+    "    %cd $experiment\n",
+    "    !git pull\n",
+    "    %cd ../"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "96b52333",
+   "metadata": {},
+   "source": [
+    "## 3. 実験パイプラインの実行\n",
+    "\n",
+    "- このステップでは、定義情報に基づいて実験パイプラインを実行します。\n",
+    "- 以下のセルを実行してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8dd4ffaf",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%cd ~/experiments/\n",
+    "\n",
+    "import papermill\n",
+    "\n",
+    "outputs = []\n",
+    "\n",
+    "for experiment in pipeline:\n",
+    "    print(\"\\n============================================================ \" + experiment)\n",
+    "\n",
+    "    print(\"\\n# 出力ディレクトリの初期化\")\n",
+    "    cmd = \"rm -rf \" + experiment + \"/output_data/*\"\n",
+    "    print(\"$ \" + cmd)\n",
+    "    !$cmd\n",
+    "    \n",
+    "    print(\"\\n前実験の出力データを当実験の入力データとして複製\")\n",
+    "    for output in outputs:\n",
+    "        cmd = \"cp -rf \" + output + \"/output_data/* \" + experiment + \"/input_data/\" \n",
+    "        print(\"$ \" + cmd)\n",
+    "        !$cmd\n",
+    "\n",
+    "    print(\"\\n実験再現のための環境構築\")\n",
+    "    cmd = \"pip install -r \" + experiment + \"/requirements.txt\"\n",
+    "    print(\"$ \" + cmd)\n",
+    "    !$cmd\n",
+    "\n",
+    "    print(\"\\n実験ソースコードの実行\")\n",
+    "    cmd = experiment + \"/source/\"\n",
+    "    print(\"$ cd \" + cmd)\n",
+    "    %cd $cmd\n",
+    "\n",
+    "    papermill.execute_notebook(\"main.ipynb\", \"log.ipynb\")\n",
+    "    \n",
+    "    cmd = \"-\"\n",
+    "    print(\"$ cd \" + cmd)\n",
+    "    %cd $cmd\n",
+    "\n",
+    "    print(\"\\n次実験に備えて本実験の出力データを登録\")\n",
+    "    outputs += [experiment]"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}

+ 56 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/03_after_research_phase/publish.ipynb

@@ -0,0 +1,56 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 研究成果の公開\n",
+    "\n",
+    "これはDMP情報に基づき、研究成果を公開するためのノートブックです。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## ◆◆◆開発メモ◆◆◆\n",
+    "後期フェーズについては不明確な部分が多いためプロトタイプではTBDとする"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "- ## キュレーション機能と連携する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "- ## 公開基盤と連携する"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 1 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/util/README.md

@@ -0,0 +1 @@
+どのフェーズでも必要なセクションをモジュール化する

+ 105 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/util/datalad_save_push.ipynb

@@ -0,0 +1,105 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# ワークフロー実行結果を書き戻す\n",
+    "\n",
+    "このノートブックでは、変更内容をGINリポジトリに書き戻します。  \n",
+    "※各セクションのセルでpapermillによって自動実行されるノートブックなので手作業での実施は非推奨です。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": [
+     "parameters"
+    ]
+   },
+   "outputs": [],
+   "source": [
+    "SIBLING_NAME = \"gin\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "※PATHが指定されない場合は/home/jovyan/をPATHとする"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": [
+     "parameters"
+    ]
+   },
+   "outputs": [],
+   "source": [
+    "PATH = \"/home/jovyan\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. 書き戻しの準備を行う"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from datalad import api\n",
+    "\n",
+    "api.save(message=SAVE_MESSAGE, path=PATH, recursive=True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. 変更内容を書き戻す"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from datalad import api\n",
+    "\n",
+    "api.push(to=SIBLING_NAME, result_renderer='default', path=PATH, recursive=True)"
+   ]
+  }
+ ],
+ "metadata": {
+  "celltoolbar": "Tags",
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 7 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/util/load.py

@@ -0,0 +1,7 @@
+import json
+
+JSON = ""
+def load_json(PATH):
+    with open(PATH) as f:
+        JSON = json.load(f)
+        return JSON

+ 233 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/util/prepare_for_workflow.ipynb

@@ -0,0 +1,233 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# ワークフロー実行のための準備\n",
+    "\n",
+    "このノートブックでは、ワークフロー実行のための準備を行います。 \n",
+    "上から順番にセルを実行してください。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. .gitconfigにユーザー名とメールアドレスを登録する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "    1. 以下のセルでgitアカウントのユーザー名とメールアドレスを入力してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "ivis-mizuguchi\n"
+     ]
+    }
+   ],
+   "source": [
+    "name = input()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "rino.mizuguchi@ivis.co.jp\n"
+     ]
+    }
+   ],
+   "source": [
+    "email = input()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "    2. 入力されたユーザー名とメールアドレスを.gitconfigに登録します。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "0"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "import os\n",
+    "\n",
+    "os.system(\"cd /home/jovyan\")\n",
+    "os.system(\"git config --global user.name \" + name)\n",
+    "os.system(\"git config --global user.email \" + email)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. Dataladを使用するため、このリポジトリをデータセットとする"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "create(ok): /home/jovyan (dataset)\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[INFO] Creating a new annex repo at /home/jovyan \n"
+     ]
+    }
+   ],
+   "source": [
+    "%%sh\n",
+    "cd ~/\n",
+    "datalad create --force"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3. Git管理対象外ファイルを.gitignoreで設定する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "\n",
+    "echo \"\n",
+    "/.cache/\n",
+    "/.conda/\n",
+    "/.config/\n",
+    "/.ipython/\n",
+    "/.local/\n",
+    "/.tmp/\n",
+    "/.bashrc\n",
+    "/.bash_logout\n",
+    "/.profile\n",
+    "/.netrc\n",
+    ".ipynb_checkpoints/\n",
+    "\" > ~/.gitignore"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 4. 実験用フォルダを作成し、その中にpipeline.jsonを用意する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "mkdir ~/experiments\n",
+    "echo \"[]\" > ~/experiments/pipeline.json"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 5. 必要なファイルをPACKAGEテンプレートに複製する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "cd ~/\n",
+    "cp .gitconfig WORKFLOW/PACKAGE/.gitconfig\n",
+    "cp .gitignore WORKFLOW/PACKAGE/.gitignore\n",
+    "cp environment.yml WORKFLOW/PACKAGE/environment.yml"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 6. 変更内容を書き戻す"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%cd ~/\n",
+    "!datalad save --to-git -m \"save\"\n",
+    "!datalad push"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}

+ 87 - 0
WORKFLOW/WORKFLOW/SECTIONS/base/util/prepare_for_workflow_every_time.ipynb

@@ -0,0 +1,87 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "fcc7eedb",
+   "metadata": {},
+   "source": [
+    "# ワークフロー実行準備(binder環境起動毎)\n",
+    "\n",
+    "- このノートブックでは、binder環境が起動するたびに必要なワークフロー実行のための処理を行います。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "aebe0454",
+   "metadata": {},
+   "source": [
+    "## データ書き戻しのための.netrcファイルの設定\n",
+    "\n",
+    "- 以下のセルを実行し、表示されたURLに遷移して、【ユーザ名】と【パスワード】を書き換えてください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "90d41d5f",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "echo \"\n",
+    "machine dg02.dg.rcos.nii.ac.jp\n",
+    "login 【ユーザ名】\n",
+    "password 【パスワード】\n",
+    "\" > ~/.netrc"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "1ccb3bf1",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "https://jupyter.cs.rcos.nii.ac.jp/user/ivis_rino_mizuguchi@rdm.nii.ac.jp/ivis-mizuguchi-0113-1-ywg9vby3/edit/.netrc\n"
+     ]
+    }
+   ],
+   "source": [
+    "import os\n",
+    "print(\"https://jupyter.cs.rcos.nii.ac.jp\" + os.environ[\"JUPYTERHUB_SERVICE_PREFIX\"] + \"edit/.netrc\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "a6911471",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}

+ 0 - 0
WORKFLOW/WORKFLOW/SECTIONS/bio/01_preparation_phase/.gitkeep


+ 0 - 0
WORKFLOW/WORKFLOW/SECTIONS/bio/02_experimental_phase/.gitkeep


+ 0 - 0
WORKFLOW/WORKFLOW/SECTIONS/bio/03_after_research_phase/.gitkeep


+ 0 - 0
WORKFLOW/WORKFLOW/SECTIONS/bio/util/.gitkeep


+ 0 - 0
WORKFLOW/WORKFLOW/SECTIONS/neuro/01_preparation_phase/.gitkeep


+ 0 - 0
WORKFLOW/WORKFLOW/SECTIONS/neuro/02_experimental_phase/.gitkeep


+ 0 - 0
WORKFLOW/WORKFLOW/SECTIONS/neuro/03_after_research_phase/.gitkeep


+ 0 - 0
WORKFLOW/WORKFLOW/SECTIONS/neuro/util/.gitkeep


+ 4 - 0
WORKFLOW/param_files/param_for_dataladsiblings.json

@@ -0,0 +1,4 @@
+{
+    "http":"Push  URL: http://dg02.dg.rcos.nii.ac.jp/",
+    "ssh":"ssh://root@dg02.dg.rcos.nii.ac.jp:3001/"
+}

+ 1 - 0
experiments/pipeline.json

@@ -0,0 +1 @@
+[]