Camino technical documentation

This is the main page for general information about using Camino. For pipeline examples with real data, see the tutorials.

1.  I/O in Camino

  Main page: Data I/O

Covers data import and general I/O capabilities for image and raw data. For specific information on the contents of Camino data files, see below.

2.  File formats

  Main page: Camino file formats

The file formats are documented in the man page of the various programs. Generally, output is raw binary, voxel-ordered data, without headers or file name dependence, to facilitate streaming and parallelization. Some support for NIfTI image I/O is provided transparently, but specific converter programs provide more options.

Scheme files have their own page, see below.

3.  Scheme files

  Main page: Camino scheme files

Scheme files are text files containing details of the MRI acquisition. Most users will only need to specify gradient directions and b-values. More detailed formats are available for advanced users.

4.  Tests

  Main page: Camino tests

There are two levels of testing, unit tests for individual classes and methods inside the code, and application tests that are calls to the Camino commands. All of these tests live in the camino/test directory. Unit tests

The unit tests are written in the JUnit test framework. They are not compiled by default, compile them using the makefile in camino/test. Then execute

 ./runTest.sh

You can test particular packages by specifying the package name as an option, eg

 ./runTest.sh -numerics

Application tests

The application tests are in the file camino/test/ScriptTest. It basically runs various Camino commands and outputs results as text to stdout, or diffs against a known result. This makes it easy to write tests but makes the results machine dependent. The main purpose of these tests is for regression testing - making sure that new features don't alter existing results unexpectedly.

Because of the machine dependence of the results, it's necessary to generate results on a clean copy of the code before making local modifications. To do this, cd to camino/ and run

 test/ScriptTest > ScriptTest.out.mymachine 

Then make your changes and run test/ScriptTest again, capturing stdout to a new file as above. Then diff the output from your modified code against ScriptTest.out.mymachine.

5.  Camino development guidelines

  Main page: Camino code organization

The Camino code is written in Java, and organized into packages by theme. The user-accessible executables (mostly bash shell scripts) live in the camino/bin/ directory. Please see the main page for details on how to organize code and documentation. See the test page for testing information.