Angicart depends on OCaml and other open-source UNIX utilities, and is known to work on most Linux distributions and on OS X. OCaml is not currently supported on Windows. Lines beginning with
$
are meant to be typed at the command-line (i.e., a terminal) without the
$
. Lines beginning with
#
are meant to be typed at a root shell. If you need help, please contact the author as described in the README. Each program can be built using the accompanying script
make.sh
. For example, the program graphdisplay can be built using
$ ./make.sh grapshdisplay native
while the other four programs can be built by replacing
graphdisplay
with the desired program name.
Program descriptions:
-
– Converts input image files to a list of points that differentiation vessels from nonvessels. Differentiation is accomplished by applying threshold to the brightness of individual voxels from the stack of input images.pngs2pls
Options:
Example usage:-d Source directory for images named NNNNN.png -r range -t Use thresholding with value N.NNN -g Output a graphdisplay file of the point list -o Output file -help Display this list of options --help Display this list of options
where$ pngs2pls.native -d dir -r min max -t threshold -o output
is the directory for the png images,dir
is the first index (an integer),min
is the last index,max
is the relative intensity between 0.0 and 1.0 to differentiate vasculature from nonvasculature, andthreshold
is the desired name for the output file with the list of points.output
-
– Creates point graph from the list of points created withpls2pg
.pngs2pls
Options:
Example usage:-f point list file, created by png2pls -E Keep entire graph, not just the LCC -o output file -help Display this list of options --help Display this list of options
where$ pls2pg.native -o output [-f] points.pls
is the desired name of the file with the point graph andoutput
is to be replaced with the name of the input file with the list of points from the programpoints.pls
.pngs2pls
-
– Erodes the point graph data fromskeletonize
to determine the centerlines of the network.pls2pg
Options:
Example usage:-f pointgraph, created by pls2pg -o Output file -help Display this list of options --help Display this list of options
$ skeletonize.native -o output [-f] lcc.pg
is the desired name of the file with the skeleton andoutput
is to be replaced with the name of the input file with the point graph from the programlcc.pg
.pls2pg
-
– Analyzes the full network topology and segment attributes given the skeleton fromvis
.skeletonize
Options:
Example usage:-f pointgraph, created by skeleton -g Output graph for visualization -v tree data tab-separated value file -l the tag, or first data column -b branchpoint data file -S Output fake symmetric data -A Output fake symmetric data -d Dimension of a voxel in millimeters -help Display this list of options --help Display this list of options
wherevis.native -g out.gp -v out.tsv -d 0.7x0.7x0.8 [-f] skel.gd
is the desired name of the segmentented visualization;out.gp
is to be replaced by the desired name of the analysis (formatted as tab-separated values); the three numbers inout.tsv
are to be replaced respectively by the horizontal separation between pixels, the vertical separation between pixels, and the separation bewteen consecutive images from the input image files; and0.7x0.7x0.8
is to be replaced with the name of the input file with the skeleton from the programskel.gd
.skeleton
-
– Interactively visualizes with the network, skeleton, or segmentation.graphdisplay
Options:
Example usage:-f File to display -g Take a pointgraph file as input rather than a graphdisplay file -p With -g, display points only (no edges) -help Display this list of options --help Display this list of options
where…graphdisplay.native [-f] filename
FAQ
(Compiled from the various README.md files)
What information can Angicart extract about networks?
Angicart analyses 3D radiographic images of blood vessels to determine the centerlines, topology, radius, length, and volume of blood vessel segments. A complete list of output data is listed on the reproducing the analysis page, with an example given on the data page.
What types of inputs does Angicart accept?
Angicart expects sequentially-numbered PNG images.
Where can I download the latest version of Angicart?
The source code for Angicart is available via GitHub at https://github.com/mnewberry/angicart.
How do I use Angicart?
Angicart requires an OCaml compiler. See the installation page for instructions on getting Angicart setup.
How can I quickly retrieve a list of options in the command line?
Use the standard option
--help
(or
-help
). For example:
$ ./skeletonize.native --help
Usage: skeletonize -o output [-f] lcc.pg
Skeletonize a connected pointgraph
-f pointgraph, created by output_value
-o Output file
-help Display this list of options
--help Display this list of options
I recently updated to the latest OS X, how do I get Angicart working again?
Ensure that you have accepted any new terms and conditions for Xcode, and that Homebrew and OPAM are up-to-date using
$ sudo xcodebuild -license
[ ... ]
$ brew update
[ ... ]
$ brew upgrade
[ ... ]
$ opam update
[ ... ]
$ opam upgrade
[ ... ]
and responding to the promts given during each process.
Why OCaml?
See the OCaml description from ocaml.org for a list of benifits to the language.
How do I cite Angicart?
Please cite the introductory paper: Newberry MG, Ennis DB, Savage VM (2015), “Testing Foundations of Biological Scaling Theory Using Automated Measurements of Vascular Networks.” PLoS Comput Biol 11(8): e1004455. doi:10.1371/journal.pcbi.1004455