How to Detect Cancer Metastasis with NCRF

Oct 31, 2020 | Data Science

In an age where artificial intelligence plays a pivotal role in medical diagnostics, the Cancer Metastasis Detection with Neural Conditional Random Field (NCRF) system emerges as a breakthrough. This blog will guide you through the process of setting up this system, training it, and evaluating its results. So, roll up your sleeves, and let’s get started!

Prerequisites

Before diving into the world of NCRF, it’s essential to have the right tools in your toolbox. Here’s what you need:

Most dependencies can be installed via pip. A requirements.txt file is also provided for easy installation:

pip install -r requirements.txt -i https://pypi.python.org/simple

Data Preparation

The heart of this project lies in the data. You will primarily work with Whole Slide Images (WSI). Here’s the breakdown:

Whole Slide Images

The WSI needed for this project can be accessed through the Camelyon16 challenge. After approval, make sure you download these high-resolution images (around 700GB in total) and place them in a directory called WSI_TRAIN.

Annotations

The cancer regions are annotated using XML files provided by the Camelyon16 organizers. You can convert these into a simpler JSON format which your model can use. For that, run:

python NCRFwsibincamelyon16xml2json.py Tumor_001.xml Tumor_001.json

Patch Images

Directly using WSI for training a deep CNN isn’t feasible due to their size. Thus, smaller patch images (e.g., 256×256) are sampled:

  • Use the provided CSV files to generate patches.
  • Run the following commands to generate patches:
python NCRFwsibinpatch_gen.py WSI_TRAIN NCRFcoords/tumor_train.txt PATCHES_TUMOR_TRAIN
python NCRFwsibinpatch_gen.py WSI_TRAIN NCRFcoords/normal_train.txt PATCHES_NORMAL_TRAIN

This will prepare your training dataset.

Model Training

With your data prepared, it’s time to train! Use your favorite config file to facilitate training:

python NCRFwsibintrain.py CFG_PATH cfg.json SAVE_PATH

Make sure to set the correct paths that point to your generated patches and the JSON files. Monitor the training process using TensorBoard!

Testing the Model

Once trained, it’s time to test the model to locate tumors:

  • Generate a tissue mask to focus on relevant regions in the WSI.
  • python NCRFwsibintissue_mask.py WSI_PATH Test_026.tif MASK_PATH Test_026.npy
  • Compute the probability map using the trained model.
  • python NCRFwsibinprobs_map.py WSI_PATH Test_026.tif CKPT_PATH best.ckpt CFG_PATH cfg.json MASK_PATH Test_026.npy PROBS_MAP_PATH Test_026.npy
  • Use non-maximal suppression (NMS) for tumor localization:
  • python NCRFwsibinnms.py PROBS_MAP_PATH Test_026.npy COORD_PATH Test_026.csv

Troubleshooting

While working with this system, you might run into a few hiccups. Here are some troubleshooting suggestions:

  • If you’re facing installation issues, double-check your Python and library versions; compatibility is key!
  • Check your paths meticulously; even a small typo can lead to errors.
  • For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

With the NCRF model ready, you’re all set to embark on your own journey of cancer metastasis detection. Happy coding!

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox