MeasureTexture parameters not recognised as rules

Hi,

I have been extracting Area and Texture measurements and using these in Analyst to split my objects in categories. I then use these rules to classify my objects for all my experiments. Since I started using Cell Profiler 4.0.7 I can not use the Rules I have generated because all the Texture-derived measurements seem to not be recognised. I can not properly load my txt file with the rules on the pipeline as I get a message saying that “X measurement is not available at this stage of the pipeline. Consider editing the rules to match the available measurements or adding measurement modules to produce the measurements”. My pipelines however have not changed since I installed the latest CP version and Texture is still calculated in earlier stages of the pipeline.
Any ideas on why this may be happening?

Thank you!

This definitely sounds like something we need to investigate! Could you share a pipeline @kni along with a sample image so that we can reproduce the error?

Thanks for reporting this!

Can I ask a clarifying question here- are these rules generated from a previous (CellProfiler 2 or 3) set that you are now trying to apply within CellProfiler 4, or are these rules that were generated on a CellProfiler4- analyzed set, that now CellProfiler 4 is refusing to recognize?

I ask because the feature names changed slightly for MeasureTexture between CellProfiler 3 and 4, so it wouldn’t be surprising if rules made from old data don’t work automatically in the new version of the program (though they could be made to with a very small amount of editing). If the data in question was generated in CellProfiler 4 and then not working in CellProfiler 4, that’s definitely a bug we should look into - in that case, please do upload a pipeline as Pearl requested, AND also the rules file you’re trying to use would be helpful.

Hi both, many thanks for your answers. To clarify, the original rules were generated using a previous CellProfiler version and could not be applied on the pipeline (also generated using a previous version) after the update. To address what Beth suggested, I rerun the original pipeline that generates the database in the updated CP, repeated training in the CP analyst and with the new rules tried to re-run the pipeline that performs the classification in CP 4.0.7. This also did not work. I am attaching a few example images, the pipeline that performs the classification and the rules.

Many thanks for your time!

20210208_ExamplePipeline.cpproj (83.2 KB) Smooth Hyperprotrusive Others.txt (4.0 KB)

20190330 Example Expt 1_Plate 1_D5_1_2019y04m01d_11h00m.tif (1.4 MB) 20190330 Example Expt 1_Plate 1_D5_1_2019y04m01d_12h00m.tif (1.4 MB) 20190330 Example Expt 1_Plate 1_D5_1_2019y04m01d_13h00m.tif (1.4 MB)

So, there are a couple of different things going on here

  1. Your image after EnhanceEdges was called EdgedImage in your pipeline you used to make the rules, and EdgedPhase in the pipeline reading the rules- they need to have the same name in both pipelines to work.
  2. Once that was fixed, it still wasn’t working, because a couple of the measurements that ended up in your rules set from CPA got a portion of their names shortened EdgedImage to EdgedImg, presumably just because the measurement name was super long and ExportToDatabase shortens the names by default in the setting below. My understanding is CellProfiler is supposed to nicely handle reading those shortened names back in; I’ll look into that. In the meantime, you can do either of a couple of things:
    A) Just edit your rules file in two places to put EdgedImg back to EdgedImage; I’ve confirmed FilterObjects is now ok once that is fixed
    B) In the future, set the value below to a bigger number (as long as you’re using SQLite)

Hi Beth,
many thanks for your reply! I will give that a try!