Unable to run PlaceSemiLMPatches due to missing function?

@muratmaga There seems to be an issue concerning the PlaceSemiLMPatches module in SlicerMorph. I have organized my files as described in the help files, but I receive the following errors when trying to place my patches on the rest of the specimens.

Traceback (most recent call last):

File “C:/Users/maria/AppData/Local/NA-MIC/Slicer 5.0.3/NA-MIC/Extensions-30893/SlicerMorph/lib/Slicer-5.0/qt-scripted-modules/PlaceSemiLMPatches.py”, line 176, in onApplyButton

logic.run(self.meshDirectory.currentPath, self.landmarkDirectory.currentPath, self.gridFile.currentPath,

File “C:/Users/maria/AppData/Local/NA-MIC/Slicer 5.0.3/NA-MIC/Extensions-30893/SlicerMorph/lib/Slicer-5.0/qt-scripted-modules/PlaceSemiLMPatches.py”, line 216, in run


AttributeError: ‘list’ object has no attribute ‘GetNumberOfControlPoints’

Here is a google drive folder of a few representative specimens and landmarks organized as I have on my computer. The patch template was created on specimen W037. Any help would be appreciated!

Thank you for reporting. I can repllicate the issue. Will post an update when we fix it.

@Maria_Feiler Thanks, we have fixed this issue on our repo. You can update from there, or from the extension manager after the next nightly build.

1 Like


I noticed that you are using an old stable (5.0.3). Please switch to the newest stable (5.2.2) and then download the slicermorph extension tomorrow. With the stable versions, you can easily update the SlicerMorph to its latest version, but this is only available for the most recent stable build (which is 5.2.2).

Thank you @muratmaga and @smrolfe for giving this a look! Unfortunately, there seem to be more problems with the program even with the most updated Slicer and SlicerMorph. When I run the program using the files in the folder shared previously, it runs but places the patches in seemingly random places. I even tried making a new grid connectivity file using patches near the incisors, but it placed the patches on the top of the head (even for the reference specimen). Any ideas?

This is what I got from your samples (W037). It seems correct to me. This is slicer 5.2.2 on windows, after updating the SlicerMorph extension.

Also if you are going to use this many semiLMs, perhaps consider using PseudoLMgenerator, which will allow you more uniformly sample. Then you can use the ProjectSemiLMPatches (insted of placepatches you are using) to transfer them.

We have an SlicerMorph online office hour tomorrow at 11 (PT), where we can take a look if it works for you. DM me or email for link if you want to attend.

Here is an example. Takes about 3 minutes or so… You can sample more or less densely, and remove the unnecessary/unwanted points (such as on teeth) with markupsEditor plugin.