Bläddra i källkod

Merge remote-tracking branch 'kuwata/main'

ivis-mizuguchi 2 år sedan
förälder
incheckning
56cc3c3420
34 ändrade filer med 596 tillägg och 301 borttagningar
  1. 3 4
      README.md
  2. 17 1
      WORKFLOW/FLOWS/README.md
  3. 19 10
      WORKFLOW/FLOWS/base_FLOW.ipynb
  4. 19 0
      WORKFLOW/FLOWS/bio_FLOW.ipynb
  5. 19 0
      WORKFLOW/FLOWS/neuro_FLOW.ipynb
  6. 0 97
      WORKFLOW/SECTIONS/02_experimental_phase/launch_an_experiment.ipynb
  7. 16 16
      WORKFLOW/SECTIONS/01_preparation_phase/init_research_repo.ipynb
  8. 0 0
      WORKFLOW/SECTIONS/base/01_preparation_phase/setup_data_analysis_tools.ipynb
  9. 0 0
      WORKFLOW/SECTIONS/base/01_preparation_phase/setup_data_cleaning_tools.ipynb
  10. 15 0
      WORKFLOW/SECTIONS/01_preparation_phase/setup_r_kernel.ipynb
  11. 0 0
      WORKFLOW/SECTIONS/base/01_preparation_phase/work_with_GakuNinRDM.ipynb
  12. 15 4
      WORKFLOW/SECTIONS/01_preparation_phase/work_with_existing_GakuNinRDM.ipynb
  13. 15 4
      WORKFLOW/SECTIONS/01_preparation_phase/work_with_new_GakuNinRDM.ipynb
  14. 0 0
      WORKFLOW/SECTIONS/base/02_experimental_phase/add_research_data.ipynb
  15. 55 0
      WORKFLOW/SECTIONS/base/02_experimental_phase/define_experimental_dependencies.ipynb
  16. 134 0
      WORKFLOW/SECTIONS/base/02_experimental_phase/launch_an_experiment.ipynb
  17. 0 0
      WORKFLOW/SECTIONS/base/02_experimental_phase/monitor_repository.ipynb
  18. 11 5
      WORKFLOW/SECTIONS/02_experimental_phase/support_making_pipeline.ipynb
  19. 0 0
      WORKFLOW/SECTIONS/base/03_after_research_phase/work_with_data_curation.ipynb
  20. 0 0
      WORKFLOW/SECTIONS/base/03_after_research_phase/work_with_weko3.ipynb
  21. 0 0
      WORKFLOW/SECTIONS/base/util/README.md
  22. 32 22
      WORKFLOW/SECTIONS/util/datalad_save_push.ipynb
  23. 0 0
      WORKFLOW/SECTIONS/base/util/load.py
  24. 226 0
      WORKFLOW/SECTIONS/base/util/prepare_for_datalad_push.ipynb
  25. 0 0
      WORKFLOW/SECTIONS/bio/01_preparation_phase/.gitkeep
  26. 0 0
      WORKFLOW/SECTIONS/bio/02_experimental_phase/.gitkeep
  27. 0 0
      WORKFLOW/SECTIONS/bio/03_after_research_phase/.gitkeep
  28. 0 0
      WORKFLOW/SECTIONS/bio/util/.gitkeep
  29. 0 0
      WORKFLOW/SECTIONS/neuro/01_preparation_phase/.gitkeep
  30. 0 0
      WORKFLOW/SECTIONS/neuro/02_experimental_phase/.gitkeep
  31. 0 0
      WORKFLOW/SECTIONS/neuro/03_after_research_phase/.gitkeep
  32. 0 0
      WORKFLOW/SECTIONS/neuro/util/.gitkeep
  33. 0 78
      WORKFLOW/SECTIONS/util/create_params_for_push.ipynb
  34. 0 60
      dmp.json

+ 3 - 4
README.md

@@ -1,4 +1,3 @@
-# workflow-template
- 
-dg02:
-[![Binder](https://binder.cs.rcos.nii.ac.jp/badge_logo.svg)](https://binder.cs.rcos.nii.ac.jp/v2/gh/ivis-mizuguchi/workflow-template/main)
+# データガバナンス機能 ワークフロー
+
+[WORKFLOW/FLOWS/base_FLOW.ipynb](WORKFLOW/FLOWS/base_FLOW.ipynb)

+ 17 - 1
WORKFLOW/FLOWS/README.md

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

+ 19 - 10
WORKFLOW/FLOWS/base_FLOW.ipynb

@@ -6,30 +6,37 @@
    "source": [
     "# FLOW\n",
     "\n",
-    "研究の準備、実施、公開までの研究者のワークフロー実施を支援する  \n",
-    "初期フェーズから中期フェーズ、後期フェーズの順に進み、各フェーズで必要なセクションを研究者自身が実行する想定"
+    "このノートブックは、研究の準備、実施、公開までの研究者のワークフロー実施を支援します。  \n",
+    "「0.データガバナンス機能と連携する」を最初に実行したあと、初期フェーズから中期フェーズ、後期フェーズの順に進んでください。  \n",
+    "各フェーズでは、リンクからセクションノートブックに遷移し、手順に沿ってセルを実行することでワークフローを行えます。"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 0. データガバナンス機能と連携する"
+    "## 0. データガバナンス機能と連携する\n",
+    "\n",
+    "データガバナンス機能と連携するために必要な処理を行います。  \n",
+    "次のフェーズに進む前に必ず実行する必要があります。"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "[書き戻しの準備をする](../SECTIONS/util/create_params_for_push.ipynb)"
+    "|||\n",
+    "|:---:|:---:|\n",
+    "|[書き戻しの準備をする](../SECTIONS/util/prepare_for_datalad_push.ipynb)|"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 1. 初期フェーズ\n",
-    "初期フェーズでは実験前の準備をサポートする"
+    "## 1. 研究準備フェーズ\n",
+    "\n",
+    "研究準備フェーズでは実験前の準備をサポートします。"
    ]
   },
   {
@@ -45,8 +52,9 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 2. 中期フェーズ\n",
-    "中期フェーズでは実験の試行錯誤や再現性の確保をサポートする"
+    "## 2. 実験期フェーズ\n",
+    "\n",
+    "実験期フェーズでは実験の試行錯誤や再現性の確保をサポートします。"
    ]
   },
   {
@@ -62,8 +70,9 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 3. 後期フェーズ\n",
-    "後期フェーズでは研究後のキュレーションやデータや論文の公開をサポートする"
+    "## 3. 実験終了後フェーズ\n",
+    "\n",
+    "実験終了後フェーズではキュレーション機能との連携やデータや論文の公開をサポートします。"
    ]
   },
   {

+ 19 - 0
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/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
+}

+ 0 - 97
WORKFLOW/SECTIONS/02_experimental_phase/launch_an_experiment.ipynb

@@ -1,97 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# 実験を実行する"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## 1. 実験名を入力する"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "experiment_title = ''"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## 2. パッケージを研究用フォルダに複製する"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%%sh\n",
-    "cp -r /home/jovyan/PACKAGE/* /home/jovyan/[project_title]/[experiment_title]"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## 3. 複製したパッケージを書き戻す"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%%sh\n",
-    "papermill ../util/datalad_save_push.ipynb ./init_research_repo_output.ipynb -f ../../params.yaml -p SAVE_MESSAGE = '実験を作成'"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## 4. 複製したパッケージのコンテナを立ち上げて、ソースコードのJupyterNotebookに遷移する\n",
-    "※下のリンクは未完成"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "[![Binder](https://binder.cs.rcos.nii.ac.jp/badge_logo.svg)](https://binder.cs.rcos.nii.ac.jp/v2/gh/[ユーザー名]/['/home/jovyan/[project-title]/[wxperiment-title]']/main)"
-   ]
-  }
- ],
- "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
-}

+ 16 - 16
WORKFLOW/SECTIONS/01_preparation_phase/init_research_repo.ipynb

@@ -6,7 +6,8 @@
    "source": [
     "# 研究用のフォルダ構成を初期化する\n",
     "\n",
-    "これはDMP情報に基づき、研究用のフォルダ構成を初期化するためのノートブックです"
+    "これはDMP情報に基づき、研究用のフォルダ構成を初期化するためのノートブックです。  \n",
+    "※このノートブックを実行するためには、FLOWの「0. データガバナンス機能と連携する」の実行後である必要があります。"
    ]
   },
   {
@@ -25,17 +26,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "The Project\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "import sys\n",
     "import os\n",
@@ -59,7 +52,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "DMP_PATHにjson形式のDMPファイルのパスを入力する"
+    "以下のセルを実行して、フォームにjson形式のDMPファイルのパスを入力してください。"
    ]
   },
   {
@@ -68,7 +61,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "DMP_PATH = \"\""
+    "DMP_PATH = input()"
    ]
   },
   {
@@ -111,7 +104,9 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 3. 変更内容を書き戻す"
+    "## 3. 変更内容を書き戻す\n",
+    "\n",
+    "params.yamlの情報を用いてこのノートブックの実行結果をginリポジトリに反映します。"
    ]
   },
   {
@@ -120,8 +115,13 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "%%sh\n",
-    "papermill ../util/datalad_save_push.ipynb - -f ../../params.yaml -p SAVE_MESSAGE = '研究用のフォルダ構成を初期化'"
+    "import papermill as pm\n",
+    "\n",
+    "pm.execute_notebook(\n",
+    "    '../util/datalad_save_push.ipynb',\n",
+    "    '-',\n",
+    "    parameters = dict(SAVE_MESSAGE = '研究用のフォルダ構成を初期化', PATH = experiment_folder_pass)\n",
+    ")"
    ]
   }
  ],

WORKFLOW/SECTIONS/01_preparation_phase/setup_data_analysis_tools.ipynb → WORKFLOW/SECTIONS/base/01_preparation_phase/setup_data_analysis_tools.ipynb


WORKFLOW/SECTIONS/01_preparation_phase/setup_data_cleaning_tools.ipynb → WORKFLOW/SECTIONS/base/01_preparation_phase/setup_data_cleaning_tools.ipynb


+ 15 - 0
WORKFLOW/SECTIONS/01_preparation_phase/setup_r_kernel.ipynb

@@ -29,6 +29,21 @@
    "source": [
     "## 3. 変更内容を書き戻す"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import papermill as pm\n",
+    "\n",
+    "pm.execute_notebook(\n",
+    "    '../util/datalad_save_push.ipynb',\n",
+    "    '-',\n",
+    "    parameters = dict(SAVE_MESSAGE = 'R言語の環境を構築', PATH = '/home/jovyan/PACKAGE')\n",
+    ")"
+   ]
   }
  ],
  "metadata": {

WORKFLOW/SECTIONS/01_preparation_phase/work_with_GakuNinRDM.ipynb → WORKFLOW/SECTIONS/base/01_preparation_phase/work_with_GakuNinRDM.ipynb


+ 15 - 4
WORKFLOW/SECTIONS/01_preparation_phase/work_with_existing_GakuNinRDM.ipynb

@@ -6,7 +6,8 @@
    "source": [
     "# GakuNin RDMの既存のプロジェクトと連携する\n",
     "\n",
-    "これはDMP情報に基づき、GakuNin RDMと連携するためのノートブックです。"
+    "これはDMP情報に基づき、GakuNin RDMと連携するためのノートブックです。  \n",
+    "※このノートブックを実行するためには、FLOWの「0. データガバナンス機能と連携する」の実行後である必要があります。"
    ]
   },
   {
@@ -59,14 +60,24 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 4. 変更を書き戻す"
+    "## 4. 変更内容を書き戻す\n",
+    "\n",
+    "params.yamlの情報を用いてこのノートブックの実行結果をginリポジトリに反映します。"
    ]
   },
   {
-   "cell_type": "markdown",
+   "cell_type": "code",
+   "execution_count": null,
    "metadata": {},
+   "outputs": [],
    "source": [
-    "utilのdatalad save&pushをpapermillで実行する"
+    "import papermill as pm\n",
+    "\n",
+    "pm.execute_notebook(\n",
+    "    '../util/datalad_save_push.ipynb',\n",
+    "    '-',\n",
+    "    parameters = dict(SAVE_MESSAGE = 'GakuNin RDMと連携', PATH = '/home/jovyan/README.md')\n",
+    ")"
    ]
   }
  ],

+ 15 - 4
WORKFLOW/SECTIONS/01_preparation_phase/work_with_new_GakuNinRDM.ipynb

@@ -6,7 +6,8 @@
    "source": [
     "# 新規プロジェクトを作成して連携する\n",
     "\n",
-    "これはDMP情報に基づき、GakuNin RDMと連携するためのノートブックです。"
+    "これはDMP情報に基づき、GakuNin RDMと連携するためのノートブックです。  \n",
+    "※このノートブックを実行するためには、FLOWの「0. データガバナンス機能と連携する」の実行後である必要があります。"
    ]
   },
   {
@@ -55,14 +56,24 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 6. 変更を書き戻す"
+    "## 6. 変更内容を書き戻す\n",
+    "\n",
+    "params.yamlの情報を用いてこのノートブックの実行結果をginリポジトリに反映します。"
    ]
   },
   {
-   "cell_type": "markdown",
+   "cell_type": "code",
+   "execution_count": null,
    "metadata": {},
+   "outputs": [],
    "source": [
-    "utilのdatalad save&pushをpapermillで実行する"
+    "import papermill as pm\n",
+    "\n",
+    "pm.execute_notebook(\n",
+    "    '../util/datalad_save_push.ipynb',\n",
+    "    '-',\n",
+    "    parameters = dict(SAVE_MESSAGE = 'GakuNin RDMと連携', PATH = '/home/jovyan/README.md')\n",
+    ")"
    ]
   }
  ],

WORKFLOW/SECTIONS/02_experimental_phase/add_research_data.ipynb → WORKFLOW/SECTIONS/base/02_experimental_phase/add_research_data.ipynb


+ 55 - 0
WORKFLOW/SECTIONS/base/02_experimental_phase/define_experimental_dependencies.ipynb

@@ -0,0 +1,55 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 実験に依存関係を定義する\n",
+    "\n",
+    "これは、実験コードに他の実験との依存関係を定義して実験パイプラインを構築する準備を行うためのノートブックです。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. 依存関係を定義したい実験を選択する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. ステップ1.で選択した実験の依存関係を定義する"
+   ]
+  },
+  {
+   "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
+}

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

@@ -0,0 +1,134 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 実験を実行する\n",
+    "\n",
+    "これは、実験パッケージを用意して実験を行うためのノートブックです。  \n",
+    "※このノートブックを実行するためには、FLOWの「0. データガバナンス機能と連携する」-「書き戻しの準備をする」と「1. 研究準備フェーズ」-「研究用のフォルダ構成を初期化する」の実行後である必要があります。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## ◆◆◆開発メモ◆◆◆\n",
+    "\n",
+    "- パッケージを研究用フォルダに複製するためにフォルダ名が必要なので、init_research_repo.ipynbの中で研究用フォルダ名をparams.yamlに追加するセルを追加する\n",
+    "- パッケージコンテナに遷移するリンクが未完成"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. 実験のパッケージを生成する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 1. 実験タイトルを入力する\n",
+    "\n",
+    "下のセルを実行して、フォームにこれから行う実験のタイトルを入力してください。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "experiment_title = input()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 2. パッケージを研究用フォルダに複製する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "experiment_path = \"/home/jovyan\" + project_title + experiment_title"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "cp -r /home/jovyan/PACKAGE/* experiment_path"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 3. 複製したパッケージを書き戻す"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import papermill as pm\n",
+    "\n",
+    "pm.execute_notebook(\n",
+    "    '../util/datalad_save_push.ipynb',\n",
+    "    '-',\n",
+    "    parameters = dict(SAVE_MESSAGE = '実験を作成', PATH = experiment_path)\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. 作成したパッケージのコンテナを立ち上げて実験に移る\n",
+    "\n",
+    "以下のボタンをクリックすると実験を開始できます。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "[![Binder](https://binder.cs.rcos.nii.ac.jp/badge_logo.svg)](https://binder.cs.rcos.nii.ac.jp/v2/gh/[ユーザー名]/['/home/jovyan/[project-title]/[wxperiment-title]']/main)"
+   ]
+  }
+ ],
+ "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
+}

WORKFLOW/SECTIONS/02_experimental_phase/monitor_repository.ipynb → WORKFLOW/SECTIONS/base/02_experimental_phase/monitor_repository.ipynb


+ 11 - 5
WORKFLOW/SECTIONS/02_experimental_phase/support_making_pipeline.ipynb

@@ -17,7 +17,8 @@
     "## ◆◆◆開発メモ◆◆◆\n",
     "- 実験パイプラインの構築支援は、02_experimental_phaseとパッケージ内のコードipynbで行う\n",
     "    - 02_experimental_phaseではパイプラインの構築(pipeline.yaml作成)の支援と、パッケージのコードに依存関係を記述する支援の2つのセクションを用意する。\n",
-    "    - また、パッケージ内のコードipynbでは、最上部に依存関係を記述するセクションを用意する。(Jupyterlab_templatesが使えれば、最上部にparametersタグをつきの依存関係記述用セルを設置したコード用jupyterlab_templatesを用意する)"
+    "    - また、パッケージ内のコードipynbでは、最上部に依存関係を記述するセクションを用意する。(Jupyterlab_templatesが使えれば、最上部にparametersタグをつきの依存関係記述用セルを設置したコード用jupyterlab_templatesを用意する)\n",
+    "    - pipeline.yamlの保存先をどこにするか また、pipeline.yamlは1つだと想定するのか"
    ]
   },
   {
@@ -26,8 +27,8 @@
    "source": [
     "## 1. 前準備\n",
     "\n",
-    "パイプラインを構築するには、実行順を指定したい実験の全てのコードで依存関係を定義する必要があります。\n",
-    "コードに依存関係を定義していない場合は、02_experimental_phaseの[依存関係を定義する]()セクションで依存関係を定義してください。"
+    "パイプラインを構築するには、実行順を指定したい実験の全てのコードで依存関係を定義する必要があります。  \n",
+    "コードに依存関係を定義していない場合は、02_experimental_phaseの[依存関係を定義する](./define_experimental_dependencies.ipynb)セクションで依存関係を定義してください。"
    ]
   },
   {
@@ -82,8 +83,13 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "%%sh\n",
-    "papermill ../util/datalad_save_push.ipynb - -f ../../params.yaml -p SAVE_MESSAGE = 'パイプライン構築'"
+    "import papermill as pm\n",
+    "\n",
+    "pm.execute_notebook(\n",
+    "    '../util/datalad_save_push.ipynb',\n",
+    "    '-',\n",
+    "    parameters = dict(SAVE_MESSAGE = 'パイプライン構築', PATH = [未定])\n",
+    ")"
    ]
   }
  ],

WORKFLOW/SECTIONS/03_after_research_phase/work_with_data_curation.ipynb → WORKFLOW/SECTIONS/base/03_after_research_phase/work_with_data_curation.ipynb


WORKFLOW/SECTIONS/03_after_research_phase/work_with_weko3.ipynb → WORKFLOW/SECTIONS/base/03_after_research_phase/work_with_weko3.ipynb


WORKFLOW/SECTIONS/util/README.md → WORKFLOW/SECTIONS/base/util/README.md


+ 32 - 22
WORKFLOW/SECTIONS/util/datalad_save_push.ipynb

@@ -4,37 +4,50 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# 情報を書き戻す\n",
-    "変更内容をデータガバナンス機能へ書き戻す。"
+    "# ワークフロー実行結果を書き戻す\n",
+    "\n",
+    "このノートブックでは、変更内容をginリポジトリに書き戻します。  \n",
+    "※各セクションのセルでpapermillによって自動実行されるノートブックなので手作業での実施は非推奨です。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": [
+     "parameters"
+    ]
+   },
+   "outputs": [],
+   "source": [
+    "SIBLING_NAME = \"gin\""
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 1. 書き戻しの準備を行う"
+    "※PATHが指定されない場合は/home/jovyan/をPATHとする"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {},
+   "metadata": {
+    "tags": [
+     "parameters"
+    ]
+   },
    "outputs": [],
    "source": [
-    "from datalad import api\n",
-    "\n",
-    "api.save(message=SAVE_MESSAGE)"
+    "PATH = \"/home/jovyan\""
    ]
   },
   {
-   "cell_type": "code",
-   "execution_count": null,
+   "cell_type": "markdown",
    "metadata": {},
-   "outputs": [],
    "source": [
-    "import os\n",
-    "\n",
-    "os.chdir(\"/home/jovyan\")"
+    "## 1. 書き戻しの準備を行う"
    ]
   },
   {
@@ -43,15 +56,16 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "%%sh\n",
-    "chmod 600 /home/jovyan/.ssh/id_rsa"
+    "from datalad import api\n",
+    "\n",
+    "api.save(message=SAVE_MESSAGE, path=PATH, recursive=True)"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 2. 書き戻す"
+    "## 2. 変更内容を書き戻す"
    ]
   },
   {
@@ -62,16 +76,12 @@
    "source": [
     "from datalad import api\n",
     "\n",
-    "try:\n",
-    "    api.siblings(action='add', name=SIBLING_NAME, url=SSH_PUSH_URL)\n",
-    "except:\n",
-    "    pass\n",
-    "\n",
-    "api.push(to=SIBLING_NAME, result_renderer='default')"
+    "api.push(to=SIBLING_NAME, result_renderer='default', path=PATH, recursive=True)"
    ]
   }
  ],
  "metadata": {
+  "celltoolbar": "Tags",
   "kernelspec": {
    "display_name": "Python 3",
    "language": "python",

WORKFLOW/SECTIONS/util/load.py → WORKFLOW/SECTIONS/base/util/load.py


+ 226 - 0
WORKFLOW/SECTIONS/base/util/prepare_for_datalad_push.ipynb

@@ -0,0 +1,226 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 書き戻しの準備をする\n",
+    "\n",
+    "このノートブックでは、ワークフロー実行結果をginリポジトリに書き戻すための準備を行います。  \n",
+    "上から順番にセルを実行してください。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 0. SSH秘密鍵を.ssh/id_rsaに配置する\n",
+    "\n",
+    "プロトタイプではSSH秘密鍵をjupyterhubの.ssh/id_rsa、公開鍵をginリポジトリに登録することでSSH接続するため、初めにSSH秘密鍵を.ssh/id_rsaに配置してください。"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 1. バージョン管理システムdataladを使用するために、このリポジトリをdatalad datasetとして認識させる"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "cd\n",
+    "datalad create --force"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. dataladでワークフロー実行結果をginリポジトリに反映させるために、ginリポジトリをリモートリポジトリとして登録する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "mkdir ./tmp\n",
+    "git remote show origin > ./tmp/remote.txt"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "with open('./tmp/remote.txt', 'r') as f:\n",
+    "    lines = [s.strip() for s in f.readlines()]\n",
+    "    ssh_push_url = lines[2].replace('Push  URL: http://dg02.dg.rcos.nii.ac.jp/', 'ssh://root@dg02.dg.rcos.nii.ac.jp:3001/') "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from datalad import api\n",
+    "\n",
+    "try:\n",
+    "    api.siblings(action='add', name='gin', url=ssh_push_url)\n",
+    "except:\n",
+    "    pass"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3. SSH接続で書き戻しを行うためにssh鍵に権限を与える(ssh鍵は.sshディレクトリの中にid_rsaとして保存する)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "cd\n",
+    "chmod 600 /home/jovyan/.ssh/id_rsa"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 4. .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": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "\n",
+    "os.system(\"git config --global user.name \" + name)\n",
+    "os.system(\"git config --global user.email \" + email)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 5. .gitignoreで.local配下をgit管理しない設定にする"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "cd\n",
+    "echo \".local/*\" >> .gitignore"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 6. SSH鍵の利用確認をオフにする"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "cd\n",
+    "echo \"host *\\n\\tStrictHostKeyChecking no\\n\\tUserKnownHostsFile /dev/null\" >> .ssh/config"
+   ]
+  }
+ ],
+ "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
+}

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


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


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


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


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


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


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


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


+ 0 - 78
WORKFLOW/SECTIONS/util/create_params_for_push.ipynb

@@ -1,78 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# datalad save&push用params.yaml作成"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%%sh\n",
-    "mkdir ./tmp\n",
-    "git remote show origin > ./tmp/remote.txt"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "with open('./tmp/remote.txt', 'r') as f:\n",
-    "    lines = [s.strip() for s in f.readlines()]\n",
-    "    ssh_push_url = lines[2].replace('Push  URL: https://github.com/', 'ssh://root@dg02.dg.rcos.nii.ac.jp:3001/') # ssh_remote = lines[2].replace('Push  URL: http://dg02.dg.rcos.nii.ac.jp/', 'ssh://root@dg02.dg.rcos.nii.ac.jp:3001/')"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 22,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "{'DEFAULT_BRANCH': 'origin', 'SIBLING_NAME': 'gin', 'SSH_PUSH_URL': 'ssh://root@dg02.dg.rcos.nii.ac.jp:3001/ivis-mizuguchi/workflow-template'}\n"
-     ]
-    }
-   ],
-   "source": [
-    "import yaml\n",
-    "\n",
-    "with open('../../params.yaml', 'w') as yf:\n",
-    "    yaml.dump({\n",
-    "        \"SSH_PUSH_URL\": ssh_push_url,\n",
-    "        \"SIBLING_NAME\": \"gin\",\n",
-    "        \"DEFAULT_BRANCH\": \"origin\"\n",
-    "    }, yf, default_flow_style=False)"
-   ]
-  }
- ],
- "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
-}

+ 0 - 60
dmp.json

@@ -1,60 +0,0 @@
-{
-    "schema": "amed",
-    "createDate": "2021/07/21",
-    "project": {
-        "fiscalYear": 2021,
-        "title": "The Project",
-        "problemName": "",
-        "representative": {
-            "belongTo": "NII",
-            "post": "",
-            "name": "John Doe"
-        }
-    },
-    "required": {
-        "hasRegistNecessity": false,
-        "noRegistReason": ""
-    },
-    "researches": {
-        "description": "",
-        "data": [
-            {
-                "title": "The Data",
-                "releasePolicy": "",
-                "concealReason": "",
-                "repositoryType": "",
-                "repositoryName": "",
-                "dataAmount": ""
-            }
-        ]
-    },
-    "forPublication": {
-        "hasOfferPolicy": false,
-        "policyName": "This is just content when 'hasOfferPolicy' is true"
-    },
-    "researchers": {
-        "numberOfPeople": 1,
-        "manager": {
-            "isConcurrent": false,
-            "personal": {
-                "belongTo": "NII",
-                "post": "",
-                "name":"Bill Doe"
-            }
-        },
-        "staff": [
-            {
-                "belongTo": "NII",
-                "post": "",
-                "name": "Mary Doe",
-                "e-Rad": "0000",
-                "canPublished": false,
-                "postType": "Professor",
-                "financialResource": "AMED",
-                "employmentStatus": "full-time",
-                "roles": "data curation",
-                "remarks": ""
-            }
-        ]
-    }
-}