Giter Club home page Giter Club logo

mrianalysisstudioformouse's Introduction

studio

studio is a GUI based online workflow pipeline tools for processing animal MRI data.

studio helps researchers try multiple data analysis methods, visualize the results, and construct the data analysis pipelines easily and quickly on GUI without setting up local environment.

studio also supports reproducibility of scientific research, standardization of analysis protocols, and developments of novel analysis tools as plug-in.

Key Features

🔰 Easy-To-Create Workflow

  • zero-knowledge of coding: studio allows you to create analysis pipelines easily on the GUI.

⚡ Visualizing analysis results

  • quick visualization: studio supports you visualize the analysis results by plotly.

🚀 Managing Workflows

  • recording and reproducing: studio records and reproduces the workflow pipelines easily.

Installation

Prepare configuration files

Prepare .env

  • Copy .env.example to .env and replace SECRET_KEY in .env with your SECRET_KEY.
    • To create random SECRET_KEY:
      openssl rand -hex 32
      

Prepare firebase configs

This application uses firebase.

  • Copy firebase_config.example.json to firebase_config.json and replace content of firebase_config.json with your Firebase config.
  • Copy firebase_private.example.json to firebase_private.json and replace content of firebase_private.json with your Firebase private key.

Prepare firebase configs

Running Application

Docker required: Please install docker in advance.

  • On Linux(Ubuntu) or macOS or Windows:
    • Run the file to set up and start the app:

      docker compose up
      

Open browser. http://localhost:8000

Using GUI

Workflow

  • studio allows you to make your analysis pipelines by graph style using nodes and edges on GUI. Parameters for each analysis are easily changeable.

Visualize

  • studio allows you to visualize the analysis results with one click by plotly. It supports a variety of plotting styles.

Record

  • studio supports you in recording and reproducing workflow pipelines in an organized manner.

Contributors

Proposers

Sho Yagishita

Developers

Keita Matsumoto, Nobuo Kawada, Rei Hashimoto, Naoki Takada, Atsuo Matsueda

References

This product is based on OptiNiSt, proposed by OIST Neural Computation Unit

mrianalysisstudioformouse's People

Contributors

ben-reactplus avatar dependabot[bot] avatar emuemujp avatar hiiaka avatar itutu-tienday avatar kuwabaram avatar quanpython avatar reihashimoto avatar rysk-t avatar sanglevinh avatar shogoakiyama avatar takada-naoki-github avatar toshikwa avatar toto-maru avatar ttya16 avatar ykyamane avatar yoshifumi14 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

mrianalysisstudioformouse's Issues

[3.Database] ソート項目の実装

データテーブルのソート機能が未実装。実装する。

■タスク

  • FrontEndでのソート・フィルタ実装の検討
    • 前提条件
      • ページングは不要(無限のスクロールでOK)
  • FrontEndでソート・フィルタを実装した場合の、性能検証
    • テスト条件
      • データテーブルのある各画面で、表示やソートの処理時間に、1秒/5秒 を要するデータ件数を確認する

アカウントのデータ項目(Role)の仕様調整

アカウントのデータ項目(Role)について、以下の仕様調整の反映をお願いしたいと思います。

  • DBのカラムのタイプをNumberとする。 また、Role名称を変更する。

    • 以下 設定内容
      1. "Admin" (Code:1) ※管理者
      2. "Data Manager" (Code:10) ※データ取得者(データ管理者)
      3. "User" (Code:20) ※解析実行者
  • 補足

    • DB上はNumberで保有する。名称はプログラム or DB のどちらで保有する形でもOK。

[3b. ListView] 修正事項

  • TreeとListの切り替えはのリンクは、「Tree / List」としてください。(「Tree / Image」となっている)
  • Subject, Session, へテストデータを設定してください。

BackEnd API向けFirebase認証サンプル&独自簡易Tokenの実装

BackEnd API向けの、Firebaseユーザー認証情報の受け渡しのサンプルコードを作成する。
※BackEnd API の開発者(外部)へ、サンプルコードを提供する目的。

  • 想定作成物
    • サンプルコード
      • FrontEndからBackEndへのユーザー認証情報のデータ送信のサンプル
        • ※HTTPヘッダに認証情報を載せることを想定しますが(JWT等)、実装方式についてご提案をお願いしたく思います。
      • BackEnd でのユーザー認証情報の取得(パース)処理のサンプル
        • 受け渡すユーザー情報は、以下を想定。
          • ユーザーID、所属(Lab)、ユーザー名(Name)、権限(Role)
          • ※ユーザーIDの書式について、情報提供をお願いします。
    • 独自簡易Tokenの実装

課題

  • 1. Firebase Token処理の復元
    • 5/23の修正で、認証モジュール(deps.pyなど)から、それまで組み込まれていた Firebase Token処理が、削除されている様です。
    • 独自tokenは、以下で記載しているように暫定機能のため、Firebase Token処理のコードは残しておいていただきたいと思います。
    • deps.py 内の token検査処理は、フラグ変数の切り替えで、Firebase token OR 独自token を切り替えられるようにしておいていただければと思います。

[3-1. Image View] Viewerが表示されない

3/18版で、TreeView と ListView の画面で、画像レコードを選択しても、Viewerが表示されない事象が発生している。

■備考

  • 事象は、#35 に記載の内容に同様(何もない画面が表示される)
  • ブラウザキャッシュをクリアしても、事象は発生する。

OptiNiStユニットテスト整理(B/E)

  • 対応内容
    • 関連issue oist#404 と同様の内容を適用
      • ただし当システム(MRI Analysis Studio)では、多くのAPIは未使用であるため、実行時エラー(大半はパス指定の修正)が解消されればOK.(テストケースの追加は不要)

ワークフロー処理の中断APIの実装

現行optinistのWorkflowのRUN CANCEL処理は、FrontEndで完結した動作(BackEndへ終了通知が投げられていない)となっている。
シングルユーザー利用であればあまり問題とならないが、マルチユーザーで利用する場合や、関連issueの内容から、ワークフロー処理の中断処理が必要となることが想定される。

上記、ワークフロー処理の中断API の実装を検討・実施する。

[4. Projects] 修正事項

  • "Project" "Projects" の用語の揺れあり (基本的には "Projects" で統一)
  • "Project Name" にダミーデータを表示しておいてもらいたい
  • "DEL (DELETE PROJECT)" ボタンを追加する

Firebase処理周り動作確認

Firebase処理周りの実装の動作確認を行う。

  • 準備
    • Firebase処理周りが実際に動作するアプリケーションのバージョン(ブランチ)を用意する。
    • Firebase環境でのデータ確認手順を用意(テキスト)する。

※この対応は、レビュアー(Araya)側での動作確認を想定しており、詳細なテストは、別途テスターによる実施を想定。

[4-1. Add Project] [4-2. Edit Project] 修正事項

  • 左側ペインへの画像ドラッグ&ドロップ時、ドロップ可能な領域を、ハイライトしていただきたい。
  • ADD ボタンを、OKボタンとする(ADDだと、EDIT時の画面で、文言が適切でないため)

Firebase認証セッションの維持

Firebase認証セッション(Token)は、有効期限が1時間であるようだが、
ワークフローの実行は1時間以上要するケースがあるため、ユーザーが画面を無操作であっても、認証セッションを維持させておきたい。

  • 要件

    • ユーザー操作中は、ログインセッションは維持する
    • ワークフロー画面での処理実行中は、ユーザー操作がない状態でも、ログインセッションは維持する
    • ログインセッションの有効期限は、以下を想定 (1 or 2 のいずれかは、実装の複雑さ、対応工数、も参考に選定する)
      • 1. ユーザーの最終画面操作から、X時間維持する(Xは当初24時間、変更可能とする)
      • 2. 初回ログイン成功から、X時間維持する(Xは当初24時間、変更可能とする)
        • ユーザー操作中であっても、上記の期限超過時は、ログアウトとなる
    • 上記の処理フローの説明ドキュメントを作成する
  • 情報

  • 技術仕様確認

    • 認証セッションの有効期限を、「ユーザーの最終操作時間から、XX時間後」という方式にすることは、(比較的簡易に)実現可能であるかどうか。

通信時のローディングアイコン表示

BackEndとのAPI通信時に、ローディングアイコンを表示する対応をお願いします。

  • 補足
    • 基本的には、一通りの通信処理で、ローディングアイコン表示を実施する。
    • 現行のoptinist(workflow画面等)では、ローディングアイコン表示がもともと入っていないため、一旦対応保留。(今後の組み込みを想定)
      • ただし、現行のoptinistで処理時間のかかる通信は、ローディングアイコン表示対象。

不具合・指摘

  • 6/9版
      1. 以下の画面にローディングアイコン表示が入っていない。
        • 4.Projects
        • 4-1.Add Project
      1. 3. Databae viewで、tree/list を切り替えると、loading icon が表示されなくなっている(背景はグレーにはなる)
      1. 4-2. Edit Project で、loading icon が表示されたりされなかったりする模様(右ペインにloading icon が入っていない?)

対応残

  • 5-2. Result
  • 5-3. Visualize

Workflowセッションの自動復元

現行Optinistでは、ブラウザリロード時、Workflow画面やVisualize画面のセッションを維持できていない。
また Workflow処理実行中にブラウザが落ちた場合なども、セッションを維持できていない。
これを、状態維持可能としたい。

  • 対応内容

    • まず、対応方式の検証・レビューを行う。
    • Workflow画面を優先する。Visualize画面はまずは優先度:低
  • 関連

OptiNiSTオリジナルリポジトリの修正の取り込み

概要
OptiNiStオリジナルリポジトリで実施されている修正のうち、必要なものを当リポジトリへ取り込む。

重要度
中: この機能は開発要件に含まれているが、早急に対応する必要はない。

ブランチ名
TBD

期限
2023/3

対象issue

※上記のリストへのissue追加は想定される。

OHIF Viewer組み込み

概要
MRI画像Viewerについて、「OHIF Viewer」を利用する方向で仮決定。
仕様調査、組み込みを実施する。

重要度

ブランチ名
追加機能のbranchを書く。

期限
2023/3

関連
#6

想定タスク

※適宜追加更新

  • 基本要件への対応

  • 利用バージョンの選定

    • 最新はv3系の様であるが、3系の利用で問題はないか?
      • 3系で動作可能。 (2023/2)
  • 表示

    • 複数画像の表示切替の検証

      • 以下を検証
        • 1. Viewer標準の画面リスト(左サイド欄)による切り替え
        • 2. 1画像ずつ、独自に配置したボタン(← →)による切り替え
        • → 1. での対応が行いやすいらしいことを確認。(dicom json内のjsonデータをUIに渡すことで一覧表示される)
    • Viewerのモーダル表示 (OHIF標準のUIでポップアップ表示させる)

      • → 別アプリ(nodeアプリ)として立ち上げることで、標準UIのviewerを立ち上げ可能。
  • 画像リソース

    • OHIF Viewer NiFTI形式データの表示可否調査
      • 対応不可ということを再確認。
      • #59
    • dicom webを利用した画像表示
    • ローカルファイルからの画像表示
  • UI

    • メニューボタンのカスタマイズ方法
      • → 一旦、簡易な対応は難しいらしいことを確認。(dicom web経由のUI構築が必要?)
  • その他

    • 3Dモデル表示
      • → 非対応を確認。

MRI Image Viewer画像断面回転・Resize機能の組み込み

MRI Image Viewer で画像断面回転機能を有効とする件について、
現在時点、以下の内容ですすめる方針とする。

  • 対応方針

    • Bran Browser に、画像断面回転機能を組み込む(カスタマイズする)。

    • 補足

      • OHIF Viewerは、画像断面回転機能 等、必要な機能を有しているが、実際に組み込むにあたっては課題も多いため、対象外を想定。
      • ここまでの情報調査で、Bran Browser が 比較的 機能を有しており、カスタマイズ が対応可能そうであることから、Bran Browserを対象とする。
  • 対応内容

    • Bran Browser へ、画像の回転機能を実装する。
      • 単純な画像の回転(Rorate)ではなく、「断面の回転」の処理となる。(一定 複雑な処理)
      • OHIF Viewerの同機能が、参考となる。
    • まずは、実現可否性の調査から、実施する。
    • Bran Browser 以外でも、対応案や参考情報があれば、共有いただきたい。
  • スケジュール

    • まずは 以下の画面実装を優先し、その後 当件をすすめる。
    • 対応期日は 5/9~5/23 となる見込み。

[共通]各ページでブラウザリロードすると404となる

各ページ(ログイン画面以降、全ページ?)でブラウザリロードすると、404エラーが発生する模様。

404エラーの際、以下のJSONの応答が返る。

{
  detail: "Not Found"
}

※FastAPI配下にFrontEndのコンテンツを格納していることが原因か。
 技術的対応方法を提案をいただきたい。

MRI画像Viewer組み込み

概要
MRI画像Viewerの組み込みタスク

重要度

ブランチ名
TBD

期限
2023/3

ライブラリ

補足

  • #15 で OHIF viewerの導入を検討したが、課題があるため、他Viewerの導入を進める。
  • 1.BrainBrowser, 2.Papaya の優先順で進める。
    • 実装コストや技術面で課題があれば、優先度を調整。
  • Viewerからイメージデータへのアクセスは、URL形式(https://~)を想定。

[1. TOP] ダミーログイン処理の準備

検収時に万一Firebase認証機能が動作しない可能性(環境問題)を想定し、Firebase認証を利用しないダミーのログイン処理を用意する(準備まででOK)

MRI Image Viewer再選定

概要
#15 にてOHIF Viewerの組み込みを検証しているが、採用の判断が難しい状況が確認されているため(dicom serverが必須)、他のViewer製品の再選定を、実施する。

重要度

ブランチ名
TBD

期限
※調整中(2023/2末時点)

ライブラリ
※調査前

関連

画面表示情報の仕様修正

以下、画面表示情報の仕様修正を行う。

  • 資料

    • 画面設計_v10.pptx
  • 修正内容

    • DatabaseのViewのカラムの名称変更
      • Dataset → Datatype
    • 日付時刻のフォーマット調整(秒の表示 不要)
      • 4.Projects, etc
    • Image Viewerの操作アイコン(←→×)が見えづらい。
      • アイコンの背景(サークル)を少し明るくするなど。

MRIデータ→BIDS形式ツール調査

MRIデータをBIDS形式へ対応するためのツールを調査する

  • 要望
    • OSS、自動処理(バッチ処理)対応、を前提
    • Bruker ParaVsion 形式のファイルを処理できること

重要度

期限
2023/1末

ライブラリ

  • SAMRI
  • MRI Manager
  • BruRaw

関連issue
#2

フロントエンドNifTi Viewerモジュール選定

フロントエンド(React)で仕様するNifTi Viewerモジュール選定する

重要度

期限
2023/1末

想定ライブラリ

その他

Workflowセッションの管理方式の改修

対応内容

  • 現状の課題

    • 現在のoptinistでは、複数のworkflowを同時実行することが想定されていない。
    • これに対し、MRI STUDIO版では、「Project」に紐づくworkflowを、複数 同時実行可能とすることが求められる。
  • 対応内容

    • 複数のworkflowを同時実行できるようにする。
    • また同時実行の他、同時実行の状態確認も可能とする。
    • 停止操作などのworkflow個別の管理操作も可能とする。
  • 想定される課題

    • frontend
      • 修正箇所の洗い出し結果によっては、修正の影響範囲が小さくない可能性もある。
      • ※現在のoptinistでは、workflow のステート管理が明文化されていないため、このタイミングで整理しておきたい。
    • backend
      • 複数のworkflowプロセスを同時実行しても問題がないか、仕様確認が必要。
  • 関連

MRIデータのBIDS形式への対応の設計

追加機能についての概要
MRIデータをBIDS形式へ対応するための設計の実施

重要度

期限
2023/1E

タスクリスト

  • 調査
    • BIDS仕様調査、情報整理
    • MRIデータ仕様調査、情報整理
  • MRI-BIDSのマージ検討
    • ディレクトリ構造設計
    • ディレクトリCRUDルール設計

その他

[3a. TreeView] 修正事項

  • ツリーが3階層だが、現時点最新版では、4階層の想定。
  • ダミーの画像レコードは、同一のフォルダ内に、複数件(2件以上)登録しておいていただきたい。

[5-1-1. Alignment] Alignmentダイアログ実装

5-1-1. Alignmentダイアログ を実装する。

■設計資料

■関連

■不具合

  • 1. 「<>」キーで画像を切り替えると、前の画像で入力した設定値が、クリアされている模様。
  • 2. OK ボタンで確定→再度Alignment Dialogを表示すると、入力した設定値が、クリアされている模様。
  • 3. 「Edit Imageset」で Edit Project画面へ遷移した後、OKで確定すると、Workflow画面へ戻っていない。

[3-1. Image View] 修正事項

  • 何度かイメージを選択すると、ダイアログが表示されない(空のダイアログがオーバーレイされる)事象が発生するケースがある。 ※この事象が発生した場合は、ESCキーを押さないと、元の画面に復帰できない。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.