Git Product home page Git Product logo

brainiak-aperture's Introduction

Brain Imaging Analysis Kit

Status of GitHub Actions workflow

image

Join the chat at https://gitter.im/brainiak/brainiak

The Brain Imaging Analysis Kit is a package of Python modules useful for neuroscience, primarily focused on functional Magnetic Resonance Imaging (fMRI) analysis.

The package was originally created by a collaboration between Intel and the Princeton Neuroscience Institute (PNI).

To reduce verbosity, we may refer to the Brain Imaging Analysis Kit using the BrainIAK abbreviation. Whenever lowercase spelling is used (e.g., Python package name), we use brainiak.

Quickstart

If you have Conda:

conda install -c brainiak -c defaults -c conda-forge brainiak

Otherwise, or if you want to compile from source, install the requirements (see docs/installation) and then install from PyPI:

python3 -m pip install brainiak

Note that to use the brainiak.matnormal package, you need to install additional dependencies. As of October 2020, the required versions are not available as Conda packages, so you should install from PyPI, even when using Conda:

python3 -m pip install -U tensorflow tensorflow-probability

Note that we do not support Windows.

Docker

You can also test BrainIAK without installing it using Docker:

docker pull brainiak/brainiak
docker run -it -p 8888:8888 -v brainiak:/mnt --name demo brainiak/brainiak

To run Jupyter notebooks in the running container, try:

python3 -m notebook --allow-root --no-browser --ip=0.0.0.0

Then visit http://localhost:8888 in your browser and enter the token. Protip: run screen before running the notebook command.

Note that we do not support MPI execution using Docker containers and that performance will not be optimal.

Support

If you have a question or feedback, chat with us on Gitter or email our list at [email protected]. If you find a problem with BrainIAK, you can also open an issue on GitHub.

Examples

We include BrainIAK usage examples in the examples directory of the code repository, e.g., funcalign/srm_image_prediction_example.ipynb.

To run the examples, download an archive of the latest BrainIAK release from GitHub. Note that we only support the latest release at this moment, so make sure to upgrade your BrainIAK installation.

Documentation

The documentation is available at http://brainiak.org/docs.

Contributing

We welcome contributions. Have a look at the issues labeled "easy" for starting contribution ideas. Please read the guide in CONTRIBUTING.rst first.

Citing

Please cite BrainIAK in your publications as: "Brain Imaging Analysis Kit, http://brainiak.org." Additionally, if you use RRIDs to identify resources, please mention BrainIAK as "Brain Imaging Analysis Kit, RRID:SCR_014824". Finally, please cite the publications referenced in the documentation of the BrainIAK modules you use, e.g., SRM.

brainiak-aperture's People

Contributors

camerontellis avatar cbaldassano avatar gdoubleyew avatar jameswardantony avatar jeremymanning avatar jhutchin avatar lcnature avatar manojneuro avatar mihaic avatar mshvartsman avatar paulapbrooks avatar paxtonfitzpatrick avatar peetal avatar snastase avatar tuko avatar vyaivo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brainiak-aperture's Issues

More MN prototyping examples?

Hi folks -

One of the cool things we've tried pushing with brainiak.matnormal is a prototyping tool people can use to try structured-covariance models more easily. With this in mind, it'd be awesome if someone wanted to kick the tires and see how easy it is to set up their favorite models in separable-structured-cov flavor. In the paper we had full examples with SRM and RSA, and in the notebook I've added matrix-normal factor analysis (basically slight extension of PPCA) just to show something new, but having someone else actually try it would be great. I think @jeremymanning and I discussed doing the same with TFA forever ago at SFN, and in my very naive understanding the existence of MatnormalRegression.calibrate makes that model a simple instance of IEM. Basically any (multi)linear gaussian regression or factor model should hopefully be not very much code to try.

Aperture Review

I couldn't figure out how to post my review on the OSF Preprint page so I am putting it here. Hopefully that will not cause any issues.

The article “BrainIAK: The Brain Imaging Analysis Kit” describes a software package for performing several different advanced analyses of functional neuroimaging data and resources for learning how to use it. Overall the paper is well written and provides detailed and informative descriptions of each of the included methods. The notebooks are well done and provide helpful demos to help users more quickly learn how to use the system. By optimizing the software to run efficiently on HPC systems, the developers have further empowered users to scale up their analysis. Overall, nicely done!

I enjoyed the section on optimization and was glad to see that a notebook with scaling advice is provided. I would prefer to see some of this information in the paper, perhaps each method could be accompanied by a brief section that provides this advice? In particular details about what dimension of the data is most crucial for an algorithm, and how to set bounds to avoid overwhelming the system.

I couldn’t find information about how Brainiak handles scheduling itself to run on clusters. What types of clusters and cluster software does it support? Or does it leave this detail to the user?

It would be nice to include some more information about how the software is developed. It appears to be primarily writing in Python with at least some of the more computationally intensive code written in C++. Also, please provide some information about how testing is performed at various levels. Are their datasets that the users can use to verify or benchmark their installations? Are their CI/CD systems that can automatically test pull requests?

It is nice to see the section on how to contribute to Brainiak. It would be useful to also include code standard requirements, any form of autolinting that will be performed on PRs, and details about how PRs are reviewed prior to merging.

In section 2.5 it might be useful to mention the similarity of the implemented methods to methods developed for dynamic functional connectivity analyses e.g., PMID 19629982 and PMC3920766. Is it possible that the described HMM approach could be used for dynamic FC with some modification?

In the introduction to real time fMRI section, the statement “Existing software frameworks have helped researchers to better implement RT-fMRI studies.” appears to be missing citations.

The optimization section mentions searchlight analysis, but I couldn’t find it mentioned in the earlier descriptions of methods. Are all of the methods in the toolbox described here? If not, it would be good to include a table of all of the methods included in the toolbox along with citations.

Creating a public repo for these examples

I was thinking of creating a new repo for these examples, once everything is in its final state in the next day or so. We can call it brainiak-new-examples and then change it to brainiak-aperture-examples (or some variant) if the paper goes through review successfully at Aperture.

Do you'll think this is a good idea? Alternatively, we can make this repo public access, and rename the repo to brainiak-new-examples (or something else that we agree on).

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.