Frequently Asked Questions about CT-FIRE

Q1: What is the difference between CT-FIRE and CurveAlign?

These two programs were developed with complementary but slightly different main goals. CurveAlign was developed first and had the main goal of quantifying all fiber angles within a region of interest relative to a user defined boundary be it a straight line or a tumor boundary. As our research grew in investigating the role of collagen in cancer progression and invasion we wanted to investigate how individual fiber parameters could influence cancer and other diseases. Out of this need came the development of CT-FIRE to analyze individual fiber metrics such as length, width, angle, and curvature. Besides the relative angle quantification with respect to the boundary, the current version of CurveAlign can be used to extract other collagen fiber features, such as localized fiber density, fiber alignment, and the spatial relationship between fiber and the associated boundary. In addition, the extracted individual fibers extracted by CT-FIRE can be imported into the CurveAlign for additional feature extraction mentioned above. We have future plans to integrate these programs further. For now, CurveAlign should be used for bulk assessment of collagen features including alignment/density and CT-FIRE for individual fiber quantification.

Q2: How do I use CT-FIRE?

The manual including a number of tutorials is a good start point for learning the basics of CT-FIRE.

Q3: How to adjust the parameters to get optimized fiber extraction results?

A default parameters setting is provided in the tool that usually works for most images we tested. We have made some parameters adjustable through the GUI which is described in the tutorials of the manual. The first two parameters on the setting window affect the extraction most: the first one ”thresh_im2” is the background threshold and the second one “s_xlinkbox” is essentially the size of the search box to find the central points that form each fiber. The smaller “s_xlinkbox” is, the more local maximums or central points and more thinner fibers can be identified.

Q4: Can I export the coordinates of the points that form a fiber?

Yes, but a separate Matlab script is needed to find the coordinates of the extracted fibers. The coordinates of fiber are saved in the “.mat” file under the “ctFIREout” folder. Specifically, after the .mat file is loaded into Matlab, in the structure variable “data”: data.Fa includes the index of the points of each fiber, data.Xa includes the coordinate of all the points.

Q5: is there a requirement for the image format?

We recommend using 8-bit image as some default parameters (e.g. thresh_im2 in A3) and visualization functions are mostly applicable for this type of format. RGB image will be automatically converted into 8-bit in the tools. But other formats such as 12-bit and 16-bit images need a manual conversion. Fiji ( can be used to do a format conversion.

Q6: What is the unit of the fiber length and width? Is it related to the image size?

The unit of fiber length and width is in pixels. It is not related to the image size but the image resolution, e.g. pixel per micron or ppm. For example, if the fiber length is LEN pixels, its physical size is LEN/ppm microns.

Q7: What are the major limitations or challenges of CT-FIRE?

There are mainly three limitations to be concerned about: 1) It has difficulty to extract an intact fiber (especially those having curvy shapes and varying intensities along their length) from a dense fiber network. The tracking of such a long curvy fiber may end up with a few fiber segments along the fiber propagation direction. In practice, if the orientation of individual fibers is not of interest, in CurveAlign, the CT-FIRE segments mode can be selected as the fiber analysis method, which theoretically would yield comparable alignment results to other applicable methods; 2) If fiber thicknesses vary a lot in an image, either the thinnest or the thickest fibers have to be compromised to some extent since only fibers whose thicknesses are within a fixed searching range can be accessed in the current fiber propagation algorithm; and 3) The fiber-tracking algorithm is computationally demanding. The speed issue will need to be properly addressed before the program can perform real-time image processing or analysis of very large images (for example 10,000 x 10,000 pixels). Of note, we have enabled parallel computing for fiber extraction in CT-FIRE. Although this feature cannot reduce the processing time for each image, it allows the computer to process multiple images simultaneously depending on how many CPU cores in the computer are available for running CT-FIRE, allowing for more rapid batch analysis of many images.

Q8: CT-FIRE will not run due to a Windows DLL error pop-up, what now?

To solve this error and allow CT-FIRE to run, please make a copy of the "tbb.dll" file from the default MCR directory (C:\Program Files\MATLAB\R2013b\bin\win64\tbb.dll) and put it in the same directory as the APP file. This is due to a path conflict with the Threading Building Block libraries for managing multicore processing.

For more details see:



Q9: I use CT-FIRE on several platforms, there are some feature inconsistencies. Why?

While we attempt to have a unified release of CT-FIRE for all supported platforms, we noticed that 1) there are some differences in installation as mentioned in the manual or the primary website; 2) the graphical user interfaces across different OS systems are not identical.

Q10: What if I have a question or comment about CT-FIRE or want to request a new feature?

If you have CT-FIRE specific issues, please contact our lead developer Yuming Liu. If you have general questions or want to seek potential collaboration with us about collagen quantification, you may fill out this form here. We are glad to hear from you!

Q11: How can I contribute to the project?

If you are a developer and want to help volunteer to help develop the project, please check out the CT-FIRE GitHub page.

Q12: How long does it take to launch the standalone app?

It largely depends on the system configuration. It usually takes a little longer, e.g. a couple of minutes, if the app is run for the first time in a computer.