Code Monkey home page Code Monkey logo

niftyone's Introduction

NiftyOne

NiftyOne Mosaic

NiftyOne is a platform for bulk visualization of large-scale neuroimaging datasets. It is built with FiftyOne.

Installation

1. Install conda For stability, NiftyOne should be installed in it's own environment. For example,

conda create -y -n niftyone python=3.10
conda activate niftyone

pip install -U pip
pip install git+https://github.com/cmi-dair/niftyone.git

Testing

  1. Install datalad to download the data files
  2. You can use whatever BIDS dataset (such as ds000102 from OpenNeuro) as an example to test
niftyone bids_dir output_dir participant --workers 8

Usage

1. Test launching the app

niftyone app launch

2. Generate figures for each participant

niftyone bids_dir output_dir participant --workers 8

3. Collect participant figures into a FiftyOne dataset

niftyone bids_dir output_dir group

4. Launch FiftyOne app

niftyone bids_dir output_dir launch

Running NiftyOne on a remote cluster

1) SSH into the login node

from a Mac/Linux/Windows Powershell terminal:

2) switch from the login node to a compute node

e.g. interact

3) Follow steps above to create a conda environment, install, and launch the app

At this point you should see "App Launched" in your terminal with a localhost URL.

4) Port Forwarding

Open a second terminal.

Execute the following command to create a multihop port forward from your local machine --> login node --> compute node. Related gist

HOST=(name of compute node, not the full address. e.g. r001) PORT=5151

ssh -L $PORT:localhost:$PORT [email protected] ssh -L $PORT:localhost:$PORT -N $HOST

5) Open http://localhost:5151 on your local browser to check the app.

Additional reference:

https://superuser.com/questions/1154383/ssh-port-forwarding-on-windows

https://phoenixnap.com/kb/ssh-port-forwarding

FAQ

Q1) Where can NiftyOne be installed?

NiftyOne can be installed both locally and on a remote server. If NiftyOne is installed on a server, the output can be viewed from a local web browser after port fowarding.

Q2) Port forwarding is not working and I am getting connection errors

Try testing with a simple HTTP server with a "Hello World" HTML file using port fowarding to rule out any networking problems before installing further software.

$python3 -m http.server 9000

https://www.digitalocean.com/community/tutorials/python-simplehttpserver-http-server#python-simplehttpserver-error-no-module-named-simplehttpserver

Q3) I am getting the following error:

/home/user/.../mongod: error while loading shared libraries

Try re-installing mongo and re-creating the virtual conda environment.

Q4) I am getting the following error:

OSError: You must have fiftyone>=0.22.1 installed in order to migrate from v0.22.1 to v0.21.6, but you are currently running fiftyone==0.21.6.

Try re-installing fiftyone / niftyone

Q5) I am getting an error about connection failure to port 5151

Try incrementing to port 5152, 5153, etc

niftyone's People

Contributors

clane9 avatar patrick-g-h avatar

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.