소스 검색

Merge commit '48fce9cee22e3ad2ccea4e3efad3a4dbb7cec86f' into main

ivis-kuwata 2 년 전
부모
커밋
41cc5cd4ed

+ 0 - 1
PACKAGE/README.md

@@ -1 +0,0 @@
-実験パッケージのテンプレート

+ 76 - 4
PACKAGE/experiment.ipynb

@@ -13,16 +13,88 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "- ## 実験メタデータを入力する\n",
-    "TBD"
+    "- ## 実験メタデータを入力する"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "- ## 実験を途中保存する\n",
-    "TBD"
+    "    1. 変数にメタデータ情報を入力し、入力後セルを実行する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "Experiment_date = \"2021/12/15\" \n",
+    "Experimenter = \"yamada taro\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "    2. meta_data.jsonに保存する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "- ## 実験を途中保存する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "    1. コミットメッセージを変数に入力する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "save_message = \"\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "    2. 一部のファイルのみ保存したい場合は、変数に保存したいファイル名を入力する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "save_files = \"\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "    3. 途中保存する"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from datalad import api\n",
+    "\n",
+    "api.save(message=save_message, path=save_files)"
    ]
   },
   {

+ 3 - 3
WORKFLOW/FLOWS/FLOW.ipynb

@@ -24,7 +24,7 @@
    "source": [
     "||||||\n",
     "|:---:|:---:|:---:|:---:|:---:|\n",
-    "|[GakuNin RDMと連携する](../sections/early_phase/work_with_GakuNinRDM.ipynb)|[研究リポジトリを初期化する](../sections/early_phase/init_research_repo.ipynb)|[データクリーニングツールを準備する](../sections/early_phase/setup_data_cleaning_tools.ipynb)|[データ分析ツールを準備する](../sections/early_phase/setup_data_analysis_tools.ipynb)|[解析基盤でR言語を使う準備をする](../sections/early_phase/setup_r_kernel.ipynb)|"
+    "|[GakuNin RDMと連携する](../SECTIONS/01_preparation_phase/work_with_GakuNinRDM.ipynb)|[研究用のフォルダ構成を初期化する](../SECTIONS/01_preparation_phase/init_research_repo.ipynb)|[データクリーニングツールを準備する](../SECTIONS/01_preparation_phase/setup_data_cleaning_tools.ipynb)|[データ分析ツールを準備する](../SECTIONS/01_preparation_phase/setup_data_analysis_tools.ipynb)|[解析基盤でR言語を使う準備をする](../SECTIONS/01_preparation_phase/setup_r_kernel.ipynb)|"
    ]
   },
   {
@@ -41,7 +41,7 @@
    "source": [
     "|||||\n",
     "|:---:|:---:|:---:|:---:|\n",
-    "|[実験を実行する](../sections/middle_phase/launch_an_experiment.ipynb)|[研究リポジトリをモニタリングする](../sections/middle_phase/monitor_repository.ipynb)|[パイプラインを構築する](../sections/middle_phase/support_making_pipeline.ipynb)|[研究データを追加する](../sections/middle_phase/add_research_data.ipynb)|"
+    "|[実験を実行する](../SECTIONS/02_experimental_phase/launch_an_experiment.ipynb)|[研究リポジトリをモニタリングする](../SECTIONS/02_experimental_phase/monitor_repository.ipynb)|[パイプラインを構築する](../SECTIONS/02_experimental_phase/support_making_pipeline.ipynb)|[研究データを追加する](../SECTIONS/02_experimental_phase/add_research_data.ipynb)|"
    ]
   },
   {
@@ -58,7 +58,7 @@
    "source": [
     "|||\n",
     "|:---:|:---:|\n",
-    "|[キュレーション機能と連携する](../sections/last_phase/work_with_data_curation.ipynb)|[WEKO3と連携する](../sections/last_phase/work_with_weko3.ipynb)|"
+    "|[キュレーション機能と連携する](../SECTIONS/03_after_research_phase/work_with_data_curation.ipynb)|[WEKO3と連携する](../SECTIONS/03_after_research_phase/work_with_weko3.ipynb)|"
    ]
   },
   {

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

@@ -4,9 +4,9 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# 研究リポジトリを初期化する\n",
+    "# 研究用のフォルダ構成を初期化する\n",
     "\n",
-    "これはDMP情報に基づき、研究リポジトリを初期化するためのノートブックです"
+    "これはDMP情報に基づき、研究用のフォルダ構成を初期化するためのノートブックです"
    ]
   },
   {
@@ -20,7 +20,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 2. 取得したプロジェクト名で研究リポジトリを初期化する"
+    "## 2. 取得したプロジェクト名で研究用のフォルダ構成を初期化する"
    ]
   },
   {

+ 4 - 4
WORKFLOW/SECTIONS/01_preparation_phase/setup_r_kernel.ipynb

@@ -4,7 +4,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# R言語の環境構築\n",
+    "# R言語の環境構築する\n",
     "\n",
     "JupyterNotebook環境にR言語環境を構築するためのノートブックです。"
    ]
@@ -13,21 +13,21 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## R言語のバージョンやパッケージを変数に入力する"
+    "## 1. インストールしたいR言語のバージョンやパッケージを変数に入力する"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## R言語のKernelとパッケージ等のインストールをパッケージの実行環境構成に記載する\n"
+    "## 2. R言語のKernelとパッケージ等のインストールをパッケージの実行環境構成に記載する\n"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 変更内容を書き戻す"
+    "## 3. 変更内容を書き戻す"
    ]
   }
  ],

+ 34 - 7
WORKFLOW/SECTIONS/01_preparation_phase/work_with_existing_GakuNinRDM.ipynb

@@ -4,7 +4,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# GakuNin RDM 既存プロジェクトとの連携\n",
+    "# GakuNin RDMの既存のプロジェクトと連携する\n",
     "\n",
     "これはDMP情報に基づき、GakuNin RDMと連携するためのノートブックです。"
    ]
@@ -13,16 +13,31 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 連携する既存プロジェクト情報の変数を用意する\n",
-    "papermillでワークフロー生成機能がdmp.jsonから取得した情報(プロジェクトIDなど)にオーバーライドされる"
+    "## 1. 連携する既存プロジェクト情報を取得する"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## GakuNin RDMからデータガバナンス機能に接続する\n",
-    "APIでプロジェクトを検索する\n",
+    "    - DMPのプロジェクト名とGakuNin RDMのプロジェクト名が同じ場合\n",
+    "        1.DMP情報からプロジェクト名を取得する\n",
+    "    - GakuNin RDMのプロジェクト名を指定して連携する場合\n",
+    "        1.変数にプロジェクト名を入力する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. GakuNin RDMからデータガバナンス機能に接続する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "APIでプロジェクトを検索する  \n",
     "管理基盤のアドオンでプロジェクトとデータガバナンス機能をgin接続する  "
    ]
   },
@@ -30,7 +45,13 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## データガバナンス機能からGakuNin RDMに接続する\n",
+    "## 3. データガバナンス機能からGakuNin RDMに接続する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
     "リポジトリのREADME.mdにGakuNin RDMへのリンクを貼付する"
    ]
   },
@@ -38,7 +59,13 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 変更を書き戻す\n",
+    "## 4. 変更を書き戻す"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
     "utilのdatalad save&pushをpapermillで実行する"
    ]
   }

+ 19 - 12
WORKFLOW/SECTIONS/01_preparation_phase/work_with_new_GakuNinRDM.ipynb

@@ -4,7 +4,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# GakuNin RDM 新規作成プロジェクトとの連携\n",
+    "# 新規プロジェクトを作成して連携する\n",
     "\n",
     "これはDMP情報に基づき、GakuNin RDMと連携するためのノートブックです。"
    ]
@@ -13,40 +13,41 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 作成するプロジェクト情報の変数を用意する\n",
-    "papermillでワークフロー生成機能がdmp.jsonから取得した情報にオーバーライドされる"
+    "## 1. DMP情報からプロジェクト名を取得する"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## GakuNin RDMのAPIでプロジェクトを作成する\n",
-    "\n",
-    "プロジェクト情報に沿ったプロジェクトをGakuNin RDMに作成する。"
+    "## 2. GakuNin RDMのAPIでプロジェクトを作成する"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3. 作成時に反映できない情報があればプロジェクトの情報を更新する"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## プロジェクトの情報を更新する\n",
-    "作成時に反映できない情報があればプロジェクト情報を更新する"
+    "## 4. GakuNin RDMからデータガバナンス機能に接続する"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## GakuNin RDMからデータガバナンス機能に接続する\n",
-    "管理基盤のアドオンで作成したプロジェクトとデータガバナンス機能をgin接続する"
+    "## 5. データガバナンス機能からGakuNin RDMに接続する"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## データガバナンス機能からGakuNin RDMに接続する\n",
     "リポジトリのREADME.mdにGakuNin RDMのリンクを貼付する"
    ]
   },
@@ -54,7 +55,13 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 変更を書き戻す\n",
+    "## 6. 変更を書き戻す"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
     "utilのdatalad save&pushをpapermillで実行する"
    ]
   }

+ 1 - 1
WORKFLOW/SECTIONS/02_experimental_phase/add_research_data.ipynb

@@ -44,7 +44,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 4. フローに埋め込まれているdmp.jsonに追加する研究データを書き込む"
+    "## 4. フローのdmp.jsonに追加した研究データを書き込む"
    ]
   }
  ],

+ 9 - 2
WORKFLOW/SECTIONS/02_experimental_phase/launch_an_experiment.ipynb

@@ -11,14 +11,21 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 1. 実験記録テンプレートを複製して書き戻す"
+    "## 1. パッケージを研究用フォルダに複製する"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## 2. 実験パッケージのソースコードに遷移する\n",
+    "## 2. 複製したパッケージを書き戻す"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3. 複製したパッケージのコンテナを立ち上げて、ソースコードのJupyterNotebookに遷移する\n",
     "\n",
     "※binderコンテナを立ち上げるボタンを配置する  "
    ]

+ 73 - 2
WORKFLOW/SECTIONS/util/datalad_save_push.ipynb

@@ -5,14 +5,85 @@
    "metadata": {},
    "source": [
     "# 情報を書き戻す\n",
-    "datalad save、datalad pushで変更内容をデータガバナンス機能へ書き戻す。"
+    "変更内容をデータガバナンス機能へ書き戻す。"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "TBD"
+    "## 1. 書き戻しの準備を行う"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from datalad import api\n",
+    "\n",
+    "api.save(path=SAVE_PATH, message=SAVE_MESSAGE"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "\n",
+    "os.chdir(CWD)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "chmod 600 /home/jovyan/.ssh/id_rsa"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sh\n",
+    "mkdir ./tmp\n",
+    "git remote show origin > ./tmp/remote.txt"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2. 書き戻す"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from datalad import api\n",
+    "\n",
+    "# SSHでの接続URLを生成\n",
+    "with open('./tmp/remote.txt', 'r') as f:\n",
+    "    lines = [s.strip() for s in f.readlines()]\n",
+    "    ssh_remote = lines[2].replace('Push  URL: '+HTTP_HOST, SSH_HOST)\n",
+    "\n",
+    "try:\n",
+    "    api.siblings(action='add', name=SIBLING_NAME, url=ssh_remote)\n",
+    "except:\n",
+    "    pass\n",
+    "\n",
+    "api.push(to=SIBLING_NAME, result_renderer='default')"
    ]
   }
  ],

+ 43 - 0
WORKFLOW/SECTIONS/util/load_dmp.ipynb

@@ -0,0 +1,43 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# DMP情報を読み込む"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import json\n",
+    "with open('../../../dmp.json') as f:\n",
+    "    dmp = json.load(f)"
+   ]
+  }
+ ],
+ "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
+}

+ 60 - 0
dmp.json

@@ -0,0 +1,60 @@
+{
+    "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": ""
+            }
+        ]
+    }
+}