GithubHelp home page GithubHelp logo

pnlbwh / brainstools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from brainsia/brainstools

0.0 1.0 1.0 32.3 MB

A suite of tools for medical image processing focused on brain analysis

Home Page: http://brainsia.github.io/BRAINSTools/

License: Apache License 2.0

Python 14.24% MATLAB 0.81% Shell 1.28% CMake 7.44% C++ 70.42% C 1.18% Tcl 0.14% Makefile 0.04% R 0.53% TeX 1.15% Jupyter Notebook 2.21% Objective-C 0.54% Batchfile 0.01%

brainstools's Introduction

The BRAINSTools is a harness to assist in building the many of the BRAINSTools under development.

Developers should run the ./Utilities/SetupForDevelopment.sh script to get started.

If developing on Mac OS X, make sure the xcode command line tools are installed with the command: xcode-select --install

For more information on the individual BRAINSTools, please see the following link: https://github.com/BRAINSia/BRAINSTools/wiki

Building

Linux-based system follows basically similar instruction.

clone https://github.com/BRAINSia/BRAINSTools.git
mkdir BRAINSTools_build
cd BRAINSTools_build
ccmake ../BRAINSTools
make #make -j4 or make -j8 depending on the available cores

OS dependent instruction is given for any dependencies or other issues. Please report any issue you found so that we could update the instruction accordingly.

We also recommend to check out NAMICExternalProjects, https://github.com/BRAINSia/NAMICExternalProjects, which provides a set of tools, including ANTs Package, Slicer Modules, and our own BRAINSTools.

Mac OSX

Building BRAINSTools on mac is the same as any standard out of source cmake build. Make a folder for the BRAINSTools project. Clone the BRAINSTools repository, and run the set-up script. Make a build directory contained in the same folder as the git repository. From the build directory, run cmake (or ccmake to manually configure the build settings) with the BRAINSTools repo as an argument, then run make. For Example:

mkdir brains
cd brains
git clone http://github.com/BRAINSIa/BRAINSTools.git

cd BRAINSTools
./Utilities/SetupForDevelopment.sh
cd ..

mkdir build
cd build
cmake ../BRAINSTools

## NOTE: To configure options in the cmake GUI, use:
##     ccmake ../BRAINSTools
## instead
make -j${NUMOFTHREADS} -k

## NOTE: To find the number of threads from the OSX terminal, use:
##    sysctl -n hw.ncpu

Linux RedHat 6

Example session for a clean build:

mkdir ~/src/mytester
cd ~/src/mytester
git clone git://github.com/BRAINSia/BRAINSTools.git

cd BRAINSTools/
bash ./Utilities/SetupForDevelopment.sh

mkdir -p ../BRAINSTools-build
cd ../BRAINSTools-build/
CC=/usr/bin/gcc-4.2 CXX=/usr/bin/g++-4.2 ccmake ../BRAINSTools \
    -DUSE_BRAINSConstellationDetector:BOOL=ON \
    -DUSE_BRAINSABC:BOOL=ON

make -j${NUMOFTHREADS} -k

## NOTE: The fetching of data still has problems with parallel builds, so we need to restart it at least
#        once
make

Linux Debian (Ubuntu)

Building BRAINSTools on a fresh install has the additional dependency of building CMake on your system. You cannot use the version from apt-get as that does some unnatural things with Python resources to be backwards compatible (see http://public.kitware.com/Bug/view.php?id=14156).

  1. Install the necessary dependencies:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git python2.7
python2.7-dev g++ freeglut3-dev
  1. Get the CMake binaries:
# You can find the URL of the latest CMake binary by
# * Go to www.cmake.org/download in a browser
# * Hover over the desired 'Binary distribution' for your operating
#     system
# * Right-click and select 'Copy Link Address' for the file ending in
#     "tar.gz"
URL=http://www.cmake.org/files/v3.2/cmake-3.2.1-Linux-x86_64.tar.gz
wget ${URL}
# Decompress the file
tar -xzvf cmake-3.2.1-Linux-x86_64.tar.gz
# Add the binary to your PATH environment variable
export PATH=${PWD}/cmake-3.2.1-Linux-x86_64/bin:${PATH}
  1. Clone the repository and build:
git clone https://github.com/BRAINSia/BRAINSTools.git
mkdir build
cd build
CC=/usr/bin/gcc-4.8 \
CXX=/usr/bin/g++-4.8 \
cmake ../BRAINSTools \
make -j${NUMOFTHREADS} -k

โš ๏ธ You can find the number of threads on your system in Ubuntu with lscpu

Testing

BRAINSTools_MAX_TEST_LEVEL adjusts how agressive the test suite is so that long running tests or incomplete tests can easily be silenced

1 - Run the absolute minimum very fast tests (These should always pass before any code commit)
3 - Run fast tests on continous builds (These need immediate attention if they begin to fail)
5 - Run moderate nightly tests (These need immediate attention if they begin to fail)
7 - Run long running extensive test that are a burden to normal development (perhaps test 1x per week)
8 - Run tests that fail due to incomplete test building, these are good ideas for test that we don't have time to make robust)
9 - Run silly tests that don't have much untility
set(BRAINSTools_MAX_TEST_LEVEL 3 CACHE STRING "Testing level for managing test burden")

brainstools's People

Contributors

hjmjohnson avatar aghayoor avatar jessicaforbes avatar jcfr avatar hui-xie avatar ihnorton avatar fedorov avatar lwen avatar matsuij avatar reginakim avatar lassoan avatar juanprietob avatar finetjul avatar cpinter avatar fbudin69500 avatar ipektest avatar karenpease avatar tomwright01 avatar ajjl avatar chrisgorgo avatar langstraat avatar vovythevov avatar pipitone avatar josephsnyder avatar msmolens avatar phcerdan avatar sjh26 avatar pieper avatar tientong98 avatar azure-pipelines[bot] avatar

Watchers

James Cloos avatar

Forkers

renma1

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.