Installed SCT_5.3.0 by COMMENTINGOUT last couple of lines in install_sct which correspond to validation of dependencies. Problem is that Keras was not successfully installed due to wrong GLIBC version (which as we discussed I cannot change). Here is the error I was getting:
As mentioned, I fixed this error by commenting out last couple of lines in install_sct because I dont think I need Keras in order to execute sct_propseg or sct_label_vertabrae (only binaries I need)
Here is the issue. When I run sct_propseg on machine where I installed SCT_5.3.0 as described above, I run into this error:
It looks like there are 2 different problems in this thread: Fixing the v3.2.3 installation, and fixing the v5.3.0 installation. Before tackling either of the problems, I just want to clarify this part here:
What differences did you find between the v3.2.3 propseg and v5.3.0 propseg?
What was the exact “sct_propseg” command used? (I ask because in the pasted error log, the full command was cut off.)
Hi @joshuacwnewton! The correct segmentation is produced with SCT 5.3 while the incorrect one is produced with SCT 3.2.3. I’ve used same data for both and -CSF flag as well.
Although, I think you misunderstood what I am trying to achieve. I need success rate of SCT’s 5.3.0 PropSeg in 3.2.3 version. Meaning, I would like to replicate changes in PropSeg that are in SC5 5.3.0 in the SCT 3.2.3 (If you understand what I mean).
Here is the file generated from SCT 3.2.3. which is getting us INCORRECT segmentation. I would like to have SCT 3.2.3 to give a CORRET one isntead.propseg-log.txt (5.4 KB)
I am currently trying to edit sct_propseg.py from SCT 3.2.3 to mimic sct_propseg.py from SCT 5.3.0.
Thank you for the clarification. I understand what you mean.
I’ve looked into the possibility, but it is not straightforward to do this. Specifically, it turns out that the core algorithm for sct_propseg hasn’t actually changed between v3.2.3 and v5.3.0.
This means that the improvements you’ve noticed are due to updates to other parts of SCT. (For example, in 2019 there was a major refactoring of the OptiC centerline detection algorithm. OptiC is used in sct_propseg, so this may be one of the sources of improvement.)
Because of the scope of the changes that have been made over the years, it would be a nontrivial effort to stitch the improvements from v5.3.0 into v3.2.3.
You mention in an earlier comment that you were able to get v5.3.0 into a partially working state:
So, if we instead got “sct_propseg” to work for v5.3.0, would that be sufficient?
But, yes! If we could somehow make sct_5.3.0 PropSeg to work that would be great! But, I cannot install it due to GLIBC version problem (which I cannot touch because it will mess with entire system). Any suggestions on how to do this?
I will generate logs from installation and send them in!
Of course! I think we might be able to work around this limitation.
There was an earlier assessment you made that I agree with: sct_propseg and sct_label_vertebrae do not rely on Keras. So, in theory, they should be able to be run in isolation, even with the older GLIBC version.
That’s why I made this earlier suggestion. If we look at the debugging information for sct_propseg, we might be able to determine why it was that it failed.
This is interesting… When I look at this output log, I don’t see the error that was mentioned in your earlier comment, and the output files appear to be created OK:
e[33mFile /home/stefan/sdintegration/pythonPlugin/test/__main__.Test.test_verify/Output/analysisFolder/stiched_spine_seg.nii.gz already exists. Will overwrite it.e[0m
e[33mFile /home/stefan/sdintegration/pythonPlugin/test/__main__.Test.test_verify/Output/analysisFolder/stiched_spine_centerline.nii.gz already exists. Will overwrite it.e[0m
Could you double-check to see if it’s working OK for you?
@joshuacwnewton sorry, a lot happened from that day. Basically, that was my “failed” attempt of patching SCT_3.2.3.
I think we can return to installation of SCT_5.3.0 as you suggested. The output of PropSeg I’ve sent you is from MY LOCAL Machine, where I installed SCT_5.3.0 without issues. When I try to install it on our system, I get the following: sct_error_log.txt (66.4 KB)
Also, I’ve noticed that when downloading data it fails due to some network error.
The good news is: What you see in that error log is actually just a post-installation check. Meaning that, if you’re able get to that point, SCT has already installed itself.
So, on your remote machine, you should still be able to run the v5.3.0 version of sct_propseg (even with the GLIBC error).
Thank you for the update. Could you try that command on your remote machine with the “-v 2” suggestion from earlier? The full output log is helpful for identifying exactly what went wrong.
This is a bit confusing to me. The error for v5.3.0 occurred inside “isct_propseg”, but that should be identical to the “isct_propseg” that was inside v3.2.3. (See the screenshots in my earlier comment.)
In other words, if the GLIBC on your work machine is causing issues for v5.3.0, then in theory you would experience this error on any version of SCT (v3.2.3 included)…
@joshuacwnewton strange. I think I already sent you SCT 3.2.3 output from the same machine. Btw, here we dont have any GLIBC issues, just INCORRECT segmentation.