Giter Club home page Giter Club logo

afni_ci_test_data's Introduction

What is AFNI?

AFNI (Analysis of Functional NeuroImages) is a suite of programs for looking at and analyzing MRI brain images at all stages of analysis (planning, setting up acquisition, preprocessing, analysis, quality control and statistical analysis). It contains C, Python and R programs, as well as shell scripts, primarily developed for the analysis and display of multiple MRI modalities:

  • functional MRI (FMRI)
    • resting state, task-based or naturalistic paradigms
    • single- or multi-echo acquisitions
  • anatomical/structural MRI
    • at various field strengths
  • diffusion weighted imaging (DWI)
    • for DTI or HARDI modeling and tractography

Many AFNI programs have been applied and adapted to other modalities, such as ECoG, EEG, MEG, and more.

It has graphical displays for both slice-wise and surface-based viewing. In both cases, many aspects of visualization can be scripted for automatic image generation.

Please visit these websites for more information and to ask questions:

Install AFNI on your computer

You can install AFNI on various Linux, macOS and Windows systems. Detailed instructions for each system are provided here. This is the way most users get the AFNI code to use.

Please make sure to use the AFNI system check to help guide you in the process, as well facilitate asking questions:

afni_system_check.py -check_all

Getting started with AFNI: quick guide links

Additional software collaborations

AFNI benefits from integration and collaboration with several other actively developed neuroimaging software packages. We greatly appreciate the work of (and often the discussions with) their developers, and note some of these projects here. Further useful dependencies are cited within the codebase.

The following software are distributed within AFNI directly:

  • dcm2niix, included as dcm2niix_afni
  • NiiVue, included as niivue_afni.umd.js

AFNI also has several programs and features that complement directly with the following projects:

  • FreeSurfer, via @SUMA_Make_Spec_FS and afni_proc.py
  • LayNii, for layer FMRI processing and visualization
  • tedana, via afni_proc.py
  • TORTOISE, via the FATCAT and other DWI tools in AFNI

One aspect of AFNI's wide usage and motivation for maintaining long-term stability is that it serves as an underlying part within several other software projects and pipeline tools in the field. Some projects that use AFNI include:

  • BrainSuite: Functional Pipeline: open-source workflow for processing FMRI data
  • C-PAC: Configurable Pipeline for the Analysis of Connectomes software package
  • DPABI: Data Processing & Analysis for Brain Imaging software suite
  • ENIGMA HALFpipe: software from a consortium combining imaging and genetics
  • fMRIPrep: FMRI preprocessing pipeline that combines tools from well-known software packages
  • LONI QC: data review platform for neuroimaging studies with one or more centers
  • NeoRS: Neonatal Resting State fMRI data preprocessing pipeline
  • NeuroDebian: an open, turnkey platform for neuroscience, integrating software
  • NeuroDesk: open platform of data analysis environments for reproducible neuroimaging
  • Nipype: an open-source initiative to integrate different packages in a workflow

NIFTI and GIFTI

AFNI developers also lead the maintenance of the following fundamental neuroimaging repositories:

These are the code for the standard volumetric and surface dataset formats, respectively, in MRI. These formats are central to how software input/output standard data, and most neuroimaging packages in the field (including AFNI itself) use at least one of these formats.

NIFTI was first developed by a consortium of neuroimaging developers in 2004, with AFNI's Bob Cox being a primary architect and first author of the format description, which is still so widely used today:

AFNI code directory

Currently, the top directory contains three sub-directories, each with further code stratification:

doc/

documentation for AFNI (though this is outdated; current doc content resides in its own git tree here: https://github.com/afni/afni_doc)

src/

source code for AFNI

src/python_scripts/

Python command programs and library files; distributed together as the afnipy module, which can be imported and used as:

from afnipy import ...

tests/

tests for AFNI codebase

Compilation of AFNI

In addition to standard installation of AFNI on computers, you can also compile the code locally on your computer (e.g., for development). In src/, you need to choose one of the Makefile.* files that is closest to your system, and cp it to be named Makefile. Makefile is set up to install into the INSTALLDIR location, defined in that file -- you should probably change that to be appropriate for your use.

If you are using Mac OS X, choose one of the Makefile.macosx* files.

For later versions of Mac OS X, Apple's C compiler does not support OpenMP, so we recommend downloading and installing a version of gcc from http://hpc.sourceforge.net/ or purchasing a commercial C compiler (e.g., Intel's icc) that does support OpenMP. Several important programs in the AFNI suite are parallelized via OpenMP, and will run much faster if compiled appropriately.

If you are using Linux, try Makefile.linux_openmp_64 first.

To make and install everything do:

make vastness

The command:

make cleanest

will remove all the *.o files, etc.

Making a pull request to the AFNI code base

Notes for making a fork and pull request to AFNI are provided here:
https://afni.nimh.nih.gov/pub/dist/doc/htmldoc/devdocs/pull_requests/pr_ex.html
Users and developers are also welcome to open up GitHub Issues here:
https://github.com/afni/afni/issues
We also have a very active Message Board for asking questions about using AFNI programs, getting help with installations, seeing new features, staying up-to-date with Bootcamp and other announcements, and more:
https://discuss.afni.nimh.nih.gov/

Online testing notes

image

image

image

afni_ci_test_data's People

Contributors

afni-dglen avatar afnihq avatar leej3 avatar mrneont avatar rmarkello avatar yarikoptic avatar

Stargazers

 avatar

Watchers

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

afni_ci_test_data's Issues

Help elderly me

Hi @afni-rickr -- do you have notes from those few sessions we did a few months back... I feel user ran into an issue which we had (some binary files were committed to git instead of git-annex) and I can't recall it.

Related -- do you guys have some slack or whatever for rapid correspondence?

cannot 'data-lad publish ...' to 'afni_ci_test_data'

@leej3

I have successfully gone through all the steps on the instruction page except the last command:
datalad publish --transfer-data=all --to=afni_ci_test_data

I have done this on three separate systems: Ubuntu 20.04, Mac 10.15 and lastly Ubuntu 16.04. Note that on this last one, I am on the 'safni' machine.

Strictly following the instructions, when I try the above command, I get this error:

[INFO   ] Publishing Dataset(/home/afniHQ/FOR_TEST_AFNI/afni/tests/afni_ci_test_data) data to afni_ci_test_data 
CommandError: 'git -c diff.ignoreSubmodules=none annex copy --to=afni_ci_test_data --fast --json --json-error-messages --json-progress -c annex.dotfiles=true -c annex.retry=3 -- .' failed with exitcode 1 under /home/afniHQ/FOR_TEST_AFNI/afni/tests/afni_ci_test_data
git-annex: copy: 6 failed

The same occurs even if I edit my .git/config file with the extra information, suggested on the main instruction page.

One problem is: the instructions say users must have git-annex ver=7. However, the environment.yml only installs datalad, which takes care of installing git-annex, and I cannot specify git-annex version anywhere. And datalad seems to always install git-annex ver=8.

On a Mac, I could not get homebrew to install git-annex ver=7 either through building or going through the git repo. On the current safni Ubuntu, I tried editing my conda environment by uninstalling git-annex ver=8, then installing git-annex ver=7 (and then I had to reinstall datalad, too), with:

conda remove git-annex
conda config --append channels conda-forge
conda install git-annex=7
conda install datalad

However, when running the datalad publish command again, I now got this error:

CommandError: 'git -c diff.ignoreSubmodules=none annex wanted afni_ci_test_data -c annex.dotfiles=true -c annex.retry=3' failed with exitcode 1 under /home/afniHQ/FOR_TEST_AFNI/afni/tests/afni_ci_test_data
git-annex: Repository version 8 is not supported. Upgrade git-annex.

So, I seem to be stuck between datalad requirement of git-annex ver=8 and the afni_tests_ci_data requirement of git-annex ver=7. (Assuming that is the origin of the original failure message; I don't even know.)

Any advice is welcome, thanks.

how to install git-annex ver=7 on a Mac?

@leej3

I have a Mac OS 10.15. I am trying to run the testing framework, and get all the way to the 2nd data-lad publish, as described in this issue:
#2

I am not sure what that error means, but this part of the instructions:
https://github.com/afni/afni_ci_test_data#git-configuration
says that git-annex should "likely be" ver=7, but installing datalad always brings a dependency of git-annex ver=8. I don't even know how to install git-annex ver=7 on this Mac OS.

Things I have tried:

A) The building the conda env with the distributed environment.yml: only specifies datalad, and I only get git-annex ver=8.

B) brew install git-annex : only installs ver=8. Trying brew install git-annex@7 to try to specify a version only produces an error (even if I try the full version number with the dot).

C) Trying to follow the instructions here (which you suggested in an email):
https://itnext.io/how-to-install-an-older-brew-package-add141e58d32
I followed its instructions for git-annex, leading me to run this, but git-annex is not allowed to install in this way, as the text output implies:

$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/58523dde0519e92b494a833c66baea59389d4e84/Formula/git-annex.rb
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
Updated 6 formulae.
==> Updated Casks
Updated 1 cask.

Traceback (most recent call last):
9: from /usr/local/Homebrew/Library/Homebrew/brew.rb:122:in `<main>'
8: from /usr/local/Homebrew/Library/Homebrew/cmd/install.rb:131:in `install'
7: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:303:in `parse'
6: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:634:in `formulae'
5: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:634:in `map'
4: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:638:in `block in formulae'
3: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:404:in `factory'
2: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:180:in `get_formula'
1: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:185:in `klass'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:277:in `load_file': Invalid usage: Installation of git-annex from a GitHub commit URL is unsupported! `brew extract git-annex` to a stable tap on GitHub instead. (UsageError)
12: from /usr/local/Homebrew/Library/Homebrew/brew.rb:155:in `<main>'
11: from /usr/local/Homebrew/Library/Homebrew/brew.rb:157:in `rescue in <main>'
10: from /usr/local/Homebrew/Library/Homebrew/help.rb:64:in `help'
9: from /usr/local/Homebrew/Library/Homebrew/help.rb:83:in `command_help'
8: from /usr/local/Homebrew/Library/Homebrew/help.rb:103:in `parser_help'
7: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:303:in `parse'
6: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:634:in `formulae'
5: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:634:in `map'
4: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:638:in `block in formulae'
3: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:404:in `factory'
2: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:180:in `get_formula'
1: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:185:in `klass'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:277:in `load_file': Invalid usage: Installation of git-annex from a GitHub commit URL is unsupported! `brew extract git-annex` to a stable tap on GitHub instead. (UsageError)

D) ... So I went the "brew extract ..." route, suggested by the above. First I googled about it: there were no hits for "brew extract git-annex", but for just "brew extract", there was this helpful/general page:
https://cmichel.io/how-to-install-an-old-package-version-with-brew/
(I also did try again "brew install [email protected]", thinking the more specific version might get found, but that failed.)
I did these steps then:

$ brew tap-new $USER/local-git-annex
$ brew extract --version=7 git-annex $USER/local-git-annex
==> Searching repository history
Warning: Calling `cellar` in a bottle block is deprecated! Use `brew style --fix` on the formula to update the style or use `sha256` with a `cellar:` argument instead.
Please report this issue to the homebrew/core tap (not Homebrew/brew or Homebrew/core), or even better, submit a PR to fix it:
  /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/git-annex.rb:15

[... and MANY MORE repeats of this warning...]

Error: git-annex: cannot load such file -- language/haskell

I also tried running the 2nd command above with the full version number 7.[number], but that didn't change anything. Googling about that error brought me here:
https://stackoverflow.com/questions/67059691/warning-calling-sha256-digest-tag-in-a-bottle-block-is-deprecated-use
... so I ran:
brew style --fix /usr/local/Homebrew/Library/Taps/ptaylor/homebrew-local-git-annex/Formula
(I note that before running this, I checked out what the above directory looked---it was empty; after running this command, it still was.)
... but then running the above "brew extract ..." didn't produce any different output.

Any advice is welcome.

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.