Issue with saving per object classification

cellprofiler
classifier
cellprofiler-analyst

#1

Hello,

I’m trying to exclude from the analysis cells using power of the Classifier as discussed in this thread

The issue is that the per object classification doesn’t save in the DB when I score all images.An empty Error window appears (in one of the first tries the Error window wasn’t empty and told that the database is locked, similar to this thread; I’ve tried to get this non-empty-error once again but after several tens of time I gave up).

Please find attached the screenshots. Here is dubug log:

[MainThread] SELECT name FROM sqlite_master WHERE type=‘table’ and name=‘ExpAnt93_AC_individual’
[MainThread] SELECT name FROM sqlite_temp_master WHERE type=‘table’ and name=‘ExpAnt93_AC_individual’
Skipping table checking step for sqlite
[MainThread] SELECT ImageNumber FROM ExpAnt93_AC_Per_Image GROUP BY ImageNumber
[MainThread] SELECT ExpAnt93_AC_Per_FilteredNuclei.ImageNumber, COUNT(ExpAnt93_AC_Per_FilteredNuclei.FilteredNuclei_Number_Object_Number) FROM ExpAnt93_AC_Per_FilteredNuclei GROUP BY ExpAnt93_AC_Per_FilteredNuclei.ImageNumber
[MainThread] SELECT ExpAnt93_AC_Per_Image.ImageNumber FROM ExpAnt93_AC_Per_Image
[MainThread] SELECT ExpAnt93_AC_Per_FilteredNuclei.ImageNumber, FilteredNuclei_AreaShape_Area,FilteredNuclei_AreaShape_Center_X,FilteredN… FROM ExpAnt93_AC_Per_FilteredNuclei WHERE (ExpAnt93_AC_Per_FilteredNuclei.ImageNumber <= 20) AND 1 = 1
Any values that cannot be converted to float are set to 0
[MainThread] SELECT ExpAnt93_AC_Per_FilteredNuclei.ImageNumber, FilteredNuclei_AreaShape_Area,FilteredNuclei_AreaShape_Center_X,FilteredNuclei_AreaS… FROM ExpAnt93_AC_Per_FilteredNuclei WHERE (ExpAnt93_AC_Per_FilteredNuclei.ImageNumber > 20) AND (ExpAnt93_AC_Per_FilteredNuclei.ImageNumber <= 70) AND 1 = 1
Any values that cannot be converted to float are set to 0
[MainThread] SELECT ExpAnt93_AC_Per_FilteredNuclei.ImageNumber, FilteredNuclei_AreaShape_Area,FilteredNuclei_AreaShape_Center_X,FilteredNuclei_AreaShape FROM ExpAnt93_AC_Per_FilteredNuclei WHERE (ExpAnt93_AC_Per_FilteredNuclei.ImageNumber > 70) AND (ExpAnt93_AC_Per_FilteredNuclei.ImageNumber <= 120) AND 1 = 1
Any values that cannot be converted to float are set to 0
Saving cell classes to database…
[MainThread] DROP TABLE IF EXISTS ExpAnt93_AC_individual
[MainThread] CREATE TABLE ExpAnt93_AC_individual (ImageNumber INT, FilteredNuclei_Number_Object_Number INT, class VARCHAR (3), class_number INT)
[MainThread] CREATE INDEX idx_ExpAnt93_AC_individual ON ExpAnt93_AC_individual (ImageNumber,FilteredNuclei_Number_Object_Number)
[MainThread] SELECT ExpAnt93_AC_Per_FilteredNuclei.ImageNumber,ExpAnt93_AC_Per_FilteredNuclei.FilteredNuclei_Number_Object_Number, FilteredNuclei_AreaShape_Area,FilteredNuclei_AreaShape_Center_X,FilteredNuclei_AreaShape_Center_Y,FilteredNuclei_AreaShape_Center_Z,…FROM ExpAnt93_AC_Per_FilteredNuclei WHERE (ExpAnt93_AC_Per_FilteredNuclei.ImageNumber <= 20)
Any values that cannot be converted to float are set to 0
[Thread-30] Connecting to the database…
[Thread-30] SQLite file: K:\project_Ant\ExpAnt93_CellProfiler\AC\ExpAnt93_AC_DB.db
[Thread-30] SELECT ImageNumber FROM ExpAnt93_AC_Per_Image GROUP BY ImageNumber
[Thread-30] SELECT FilteredNuclei_Location_Center_X, FilteredNuclei_Location_Center_Y FROM ExpAnt93_AC_Per_FilteredNuclei WHERE (ImageNumber=57 AND FilteredNuclei_Number_Object_Number=207)
[Thread-30] SELECT FilteredNuclei_Location_Center_X, FilteredNuclei_Location_Center_Y FROM ExpAnt93_AC_Per_FilteredNuclei WHERE (ImageNumber=10 AND FilteredNuclei_Number_Object_Number=468)
[Thread-30] SELECT FilteredNuclei_Location_Center_X, FilteredNuclei_Location_Center_Y FROM ExpAnt93_AC_Per_FilteredNuclei WHERE (ImageNumber=46 AND FilteredNuclei_Number_Object_Number=1029)

[Thread-30] SELECT FilteredNuclei_Location_Center_X, FilteredNuclei_Location_Center_Y FROM ExpAnt93_AC_Per_FilteredNuclei WHERE (ImageNumber=46 AND FilteredNuclei_Number_Object_Number=117)

Instead of … and , there are many-many column names and ImageNumber/ObjectNumber pairs respectively. The part with “Thread-30” appears after Error window (i.e. it fails to save per object data, but calculate per image data that I can access after clicking Score All once again).

Does anybody no how to fix or overcome this issue?

Screen shots here


#2

Hmmm, are you running CPA from built or from source installation? Can you try the latter and see if that fixes the problem?


#3

I was running CPA from built. I’ll try to install from source and let you know on the results.
Thank you for the suggestion


#4

Hi Beth,

I’ve installed CPA from source and tried to run classification on the same dataset and another (smaller). Unfortunately I can’t reproduce the analysis because the CPA installed from source works much-much slower than CPA installed from built. Thus Score All for built took a couple of minutes while for source it estimates remaining time as 70 000 hr and I’ve cancel it after a half an hour. Should it be like that? Or did I make some mistake during installation from source?


#5

No, it should not be like that, and there’s no comparable issue in the CPA Github.

What OS are you using? Can you upload your database, properties file, and training set somewhere so we can try to test it in our hands?


#6

Here is link to Google Drive with DB, properties and training set. The pipeline used to generate this DB is also there.
https://drive.google.com/drive/folders/14vW_PLxXHJdBpK6jDMS-AAhjVrxAJrMR?usp=sharing

I’m using Windows 10 (64-bit).