Skip to content
Yuming Liu edited this page Feb 27, 2023 · 24 revisions

Frequently Asked Questions about CT-FIRE(CTF)

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

These two programs were developed with complementary but 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. Although both tools can only analyze 2D images or image stacks so far, 3D fiber analysis can hopefully be added soon.

Q2: How do I use CT-FIRE?

The manual including a number of tutorials is a good starting point for learning the basics of CT-FIRE. Four extracted fiber properties: (1) Width: average width along the fiber length, in pixels; (2) Angle: fiber angle with respect to the positive X (horizontal-)-axis, ranging between 0-180 degrees; (3) Length: the distance that the fiber travels from one end to the other end, in pixels; and (4) straightness: the distance between the end points of the fiber divided by the distance along the path of the fiber (i.e. fiber length), dimensionless, ranging between 0-1.

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 with a description listed in the last section of the manual. Some tips: 1) 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. 2) For the image whose size is equal or smaller than 128x128 pixels, the value for the "Number of the selected " needs to be changed from default value (3) to 2 or smaller. To make this change, in the "Parameters" panel, click the "Update" button, change the value of "Number of the selected scales " in the second prompt dialog window; 3) To include the thick fibers or fiber bundles, adding more coarser scales in the curvelet transform would help. For instance, the default number of scales is 3, you may increase it to 4 or 5 (for 512x512 pixels image) to include more coarser scales. The maximum number of scales in CT-FIRE for a N1 by N2 pixels image can be calculated as "ceil(log2(min(N1,N2)) - 4).

Besides directly processing region of interest (ROI) image of small size (128x128 or smaller ), you may first analyze the full size image with a larger field of view, then annotate the smaller ROIs with "ROI manager" module and do corresponding ROI analysis, which might improve the accuracy of fiber tracking around the ROI edges. More details you may refer to our manual. In addition, the following protocol might also help your analysis: Liu, Y., Keikhosravi, A., Mehta, G.S., Drifka, C.R., and Eliceiri, K.W. (2017). Methods for quantifying fibrillar collagen alignment. In Fibrosis, (Springer), pp. 429–451.

For all other parameters, refer to the following two resources:
Appendix A of this paper: https://github.com/uw-loci/curvelets/blob/master/FIRE/documentation/Stein08_FIRE.pdf
Parameters file: https://github.com/uw-loci/curvelets/blob/master/ctFIRE/param_FIREdef.m

Q4: Can I export the coordinates of the points that form a fiber or create other measurements besides the default output ?

Yes, but a customized Matlab script is needed to post-process a .mat file associated with each image under the “ctFIREout” folder. Currently,in the structure variable “data” included in the .mat file, we mainly use the following fiber network information:
data.Xa-all the coordinates of representative points of the extracted fibers
data.Fa- index of the points [in data.Xa] associated with each extracted fiber
data.Ra-the distance from fiber center to the background
data. M.L-length of each extracted fiber
data.M.angle_xy- fiber angle in the XY plane
For other fiber network descriptors, refer to:
https://github.com/uw-loci/curvelets/blob/master/ctFIRE/fire_2D_ang1.m
For other measurements, refer to :
https://github.com/uw-loci/curvelets/blob/master/FIRE/measure/network_stat.m

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 (https://imagej.net/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. In addition, if the intact fiber length extraction is a concern or there is a big variation in the length distribution, the statistical analysis of other fiber metrics including width, straightness and angle can be normalized by the calculated fiber length as a post-processing step; 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: https://www.mathworks.com/matlabcentral/answers/115024-errors-in-making-standalone-program-using-matlab-2013b?requestedDomain=www.mathworks.com https://www.threadingbuildingblocks.org/

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.

Q13: Mac users: How to allow the system to launch a Mac app from an unidentified developer?

Open Terminal and enter the following code to get your Anywhere option: sudo spctl --master-disable

To get rid of the Anywhere option, you'll need to go to Terminal again, and this time type: sudo spctl --master-enable

Refer to the following links for more details:

https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac

https://www.macworld.co.uk/how-to/mac-software/mac-app-unidentified-developer-3669596/

Q14 Mac users: how to launch the app?

Right click the APP(ctrl -click)----->Show Package Contents ----> Contents---->MacOS---->applauncher (right-click and choose open).

Q15 How to validate the use of CT-FIRE/CurveAlign?

The users can follow the tutorials or protocols to test and choose a tool that best meets their needs. The validation of the usage or the accuracy of a tool usually relies on visual inspection, cross-validation by other tools developed based on different mythologies, comparing the results with those from manual or semi-automatic measurements, or analyzing computationally generated fiber images with known fiber metrics. For regular daily use, visual inspection if available is the most practical strategy.

Q16 How to combine the CT-FIRE results from multiple images?

Once the CT-FIRE analysis is done for all the images, the individual fiber information can be combined directly or after run a "CurveAlign" feature extraction. Detailed guide can be seen here.