Git Product home page Git Product logo

morphman's Introduction

Documentation Status CircleCI Build status DOI codecov Conda Version

Create a stenois

Manipulation of the internal carotid artery, by introducing an artificial stenosis.

Description

morphMan (morphological manipulation) is a collection of tools for automated and objective manipulation and reconstruction of morphological features of patient-specific vascular geometries. In the tutorials we examplify the usage by manipulating internal carotid arteries , but the tool can be applied to any geometry with a tubular shape.

The goal of morphMan is to provide research groups, and other individuals, with a set of tools to investigate the impact of altering morphological features in patient-specific geometries. For instance, morphMan can be used to investigate how cross-sectional area, bifurcation angles, and over all curvature change the local hemodynamics.

Authors

morphMan is developed by

  • Aslak W. Bergersen
  • Henrik A. Kjeldsberg

Licence

morphMan is licensed under the GNU GPL, version 3 or (at your option) any later version.

morphMan is Copyright (2016-2022) by the authors.

Documentation

For an introduction to morphMan, and tutorials, please refer to the documentation.

If you use wish to use morphMan for journal publications, please cite the following the following journal article for the methods:

Bergersen, Aslak W., Henrik A. Kjeldsberg, and Kristian Valen‐Sendstad. "A Framework for Automated and Objective Modification of Tubular Structures: Application to the Internal Carotid Artery." International Journal for Numerical Methods in Biomedical Engineering (2020): e3330.

And the journal article from JOSS for the software:

Kjeldsberg et al., (2019). morphMan: Automated manipulation of vascular geometries. Journal of Open Source Software, 4(35), 1065, https://doi.org/10.21105/joss.01065

Installation

For reference, morphMan requires the following dependencies: VTK 9.1, Numpy 1.23, SciPy 1.8.1, and VMTK 1.5. If you are on Windows, macOS or Linux you can install all the general dependencies through conda-forge. First install Anaconda or Miniconda, then add conda-forge to your channels with:

conda config --add channels conda-forge
conda config --set channel_priority strict

Once the conda-forge channel has been enabled, morphman can be installed with conda:

conda create -n your_environment morphman

or with mamba:

mamba create -n your_environment morphman

You can then activate your environment with morphman by running

source activate your_environment

You are now all set, and can start manipulating your geometries. To get started, we have created some tutorials for the different modules within morphMan.

Contact

The latest version of this software can be obtained from

https://github.com/KVSlab/morphMan

Please report bugs and other issues through the issue tracker at:

https://github.com/KVSlab/morphMan/issues

morphman's People

Contributors

arfon avatar aslakbergersen avatar hkjeldsberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

morphman's Issues

Add new vector for rotation in manipulate_branch

Now it is only possible to rotate the branch around the normal vector of the surface. However, for adding a new vector for rotation normal to the vector would make it possible to rotate the branch in any direction.

JOSS Review - Blocking Issue - Paper Audience

This is a blocking issue for the JOSS Review at: openjournals/joss-reviews#1065

The Software Paper Section states:

A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?

Please specify who the target audience is for the tool. Is this for researchers, clinicians, students? What level of programming background does the user need to have to use the tool?

Restructure common.py

Common.py not contains a lot of functionality, and should be refactored.

One suggestion is to split it into centerline_operations.py, voronoi_operations.py, surface_operations.py, vmtk_wrapper.py, and vtk_wrapper.py.

Restructuring the code would simplify future development, ease maintenance, and likely reduce the number of lines as some functions would be generalized and merged.

Surface changes outside of ROIs

Hello,
I'm trying to exploit morphMan to deflate and inflate specific vascular zones of a model, in order to perform CFD analyses on the model's possible anatomical variations.
While morphMan correctly inflates and / or deflates the region of interest, it strongly alters the whole surface of the model and not just the region of interest, to the point that CFD analyses are not possible. In particular, I'd like my model to be as smooth as possible and to have its flow extensions untouched by morphMan.

The initial model appears as follows:
model

This is how it appears after the inflation:
morphman

Any chance there's a way to perform inflations and deflations without altering the surface outside of the ROI so much?
Thank you,
Best Regards,
Michael

Generalize functions wrapping vtk and vmtk

In common.py there are many functions wrapping vtk and vmtk functions. These should be more generall, exposing more of the options that already exist in the methods (with default values).

For instance, vtk.vtkThreshold has options for turning on/off AllScalars and UseContinousCellRange, both of which are now not available to set when calling threshold

Inducing bend in straight vascular segment

Hello @hkjeldsberg ,

The curvature of a straight cylindrical segment remains unchanged for any values of alpha/beta in manipulate bend. I guess this is due to the fact that a straight segment does not inherently have curvatures.

Is there any way to induce curvature in a straight segment, and also define the direction of the curvature?

Regards.

Manipulate aneurysm sac geometry

Possible new features that might be nice to have in morphman

  • Change aspect ratio of aneurysm sac by changing either width or height of aneurysm.

  • Expand or shrink aneurysm sac by increasing or decreasing the distance between a reference point (possibly center of the aneurysm sac) and surface points.

Take better advantage of vtk.util.numpy_support

In common.py there are many examples of looping over vtk arrays and insert values into python lists or numpy arrays. These should instead be converted using numpy_support functions.

Furthermore, there might be for-loops that can be vectorized, providing some speed-up to the algorithms.

Add option for asymmetry in stenosis and buldge

In manipulate_area move the points relative to F in the direction of the FrenetNorm. In addition, there should be an option to set the direction based on an angle to rotate the FrenetNorm.

Runtime Warning in Manipulate Bend, Manipulate Curvature

I have a simple geometry containing one inlet and 2 outlets. While using both Manipulate bend and Manipulate curvature, it displays the following warning:

For Manipulate bend:

-- Clipping Voronoi diagram
-- Computing translation directions.
-- Smoothing, clean, and check surface
C:\Users\user\anaconda3\envs\morphman\lib\site-packages\morphman-0.3-py3.6.egg\morphman\common\surface_operations.py:554: RuntimeWarning: invalid value encountered in arccos
Cleaning surface.
Triangulating surface.
Computing centerlines.
Computing centerlines...

Due to the error in the surface_operations module in line 554, the "# Extract translation vectors" portion in manipulate bend does not get executed. The process finishes but there is no change in the geometry.

I have attached the picture of the geometry and can also provide the vtp file personally.
Can anyone help me out?

image

JOSS Review - Blocking Issue - Community Guidelines

This is a blocking issue for the JOSS Review: openjournals/joss-reviews#1065

The JOSS Submission Requires:

Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Please add documentation about how to set up an environment for development and/or guidelines on contributions. Preferably this would be in a separate CONTRIBUTING.md file.

TypeError in estimate_alpha_and_beta

Hello @hkjeldsberg ,

while trying to compute alpha/beta values, my arguments were:

default_values["quantity_to_compute"] = "angle"
default_values["region_points"] = []
default_values["value-change"] = 10
default_values["grid-size"] = 25

Set region of interest

default_values["region_of_interest"] = "manual"
default_values["region_points"] = []

Run manipulation

estimate_alpha_and_beta(**default_values)

But I get the error:

Traceback (most recent call last):
File "C:\Users\user\Desktop\morphman_dev2\estimate_curve_angle.py", line 29, in
estimate_alpha_and_beta(**default_values)
TypeError: estimate_alpha_and_beta() got an unexpected keyword argument 'smooth'

Best Regards,
Sadat

Manipulate Bifurcation: vtkMassProperties error and ValueError

Hello @hkjeldsberg

While manipulating bifurcation on different geometries, I get different kinds of error. I have grossly identified 5 cases:

  1. Everything works fine, no error with geometries with 1 inlet, 2 or more outlets
  2. vtkMassProperties error while initially importing geometry, but no further error and angle changed successfully
  3. vtkMassProperties error while initially importing geometry, ValueError afterwards.
  4. only ValueError.
  5. only valueError while moving a certain pair of outlets in geometries with 3 outlets. (Angle between outlet 1 and 2 changes but 1 & 3; or 2 & 3 does not change)

These could indeed be geometry specific problems, but the valueError seems to be consistent in multiple geometries. I have used the "provide inlet" method in all of the geometries. I can provide the geometry files if necessary.

Best Reagrds,
Sadat

vtkMassProperties Error:

C:\Users\user\anaconda3\envs\morphman_dev\python.exe C:/Users/user/Desktop/morphman_dev/main.py
2022-09-15 18:57:10.989 ( 0.774s) [ ] vtkDelaunay2D.cxx:840 ERR| vtkDelaunay2D (000001ED0A9A36D0): ERROR: Edge [55 0] is non-manifold!!!
2022-09-15 18:57:11.024 ( 0.809s) [ ] vtkExecutive.cxx:753 ERR| vtkCompositeDataPipeline (000001ED05DEC000): Algorithm vtkDelaunay2D(000001ED0A9A36D0) returned failure for request: vtkInformation (000001ED0B1A5570)
Debug: Off
Modified Time: 13551
Reference Count: 1
Registered Events: (none)
Request: REQUEST_DATA
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1
FROM_OUTPUT_PORT: 0

2022-09-15 18:57:11.041 ( 0.826s) [ ] vtkMassProperties.cxx:89 ERR| vtkMassProperties (000001ED05DEC200): No data to measure...!

ValueError:

Computing centerlines...Cleaning surface.
Triangulating surface.
Computing centerlines.
Computing centerlines...-- Computing voronoi diagram.
-- Clipping centerlines.
-- Clipping Voronoi diagram
-- Rotating centerlines and voronoi diagram.
Traceback (most recent call last):
File "C:\Users\user\Desktop\morphman_dev\main.py", line 24, in
manipulate_bifurcation(**default_values)
File "C:\Users\user\anaconda3\envs\morphman_dev\lib\site-packages\morphman\morphman\manipulate_bifurcation.py", line 157, in manipulate_bifurcation
rotated_cl = rotate_cl(patch_cl, end_points[1], m, R)
File "C:\Users\user\anaconda3\envs\morphman_dev\lib\site-packages\morphman\morphman\manipulate_bifurcation.py", line 353, in rotate_cl
tolerance = get_centerline_tolerance(patch_cl)
File "C:\Users\user\anaconda3\envs\morphman_dev\lib\site-packages\morphman\morphman\common\centerline_operations.py", line 257, in get_centerline_tolerance
tolerance = np.mean(length[1:n] - length[:n - 1]) / 2.0
ValueError: operands could not be broadcast together with shapes (40,) (41,)

Process finished with exit code 1

Remove ´find_region_of_interest_and_diverging_centerlines´

The function find_region_of_interest_and_diverging_centerlines used in manipulate_bend.py is very similar to the updated version of get_line_to_change, and should be replaced.

Furthermore, it will also allow for an arbitrary number of "diverging" centerlines in the region of interest, rather than just one.

TypeError: SetNumberOfComponents argument 1: an integer is required (got type vtkCommonDataModelPython.vtkPolyData)

Hi,
I have a problem in running morphan methods, I have a .vtp file of an aneurysm and I want to modify the area.
I use "morphman-area --ifile surface_remeshed.vtp --ofile surface_remeshed_increased.vtp --method variation --ratio 4 --region-of-interest manual --poly-ball-size 100 100 100
" in anaconda prompt.
It returns the following error: TypeError: SetNumberOfComponents argument 1: an integer is required (got type vtkCommonDataModelPython.vtkPolyData)
How can I solve?
Cattura
Cattura1
Thanks in advance

Martina

Manipulate bifurcation - Separate amount of rotation

Currently, manipulation of the branches at the bifurcation is restricted to being rotated an angle +/-θ

Instead, a possible feature is to separate the amount of rotation.
This feature would allow the user to specify two angles, θ1 and θ2 corresponding to the desired rotation for the first and the second daughter branch, respectively.

pip install gives UnicodeDecodeError: 'ascii' codec can't decode byte

When trying to install morhpMan I get the following error:

$ pip3 install .
Processing /tmp/morphMan
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-mjkkli3s-build/setup.py", line 4, in <module>
        long_description = fh.read()
      File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
        return codecs.ascii_decode(input, self.errors)[0]
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 2365: ordinal not in range(128)

This patch fixes the problem:

diff --git a/setup.py b/setup.py
index 0d51ed3..8ba08ad 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
 import setuptools
 
-with open("README.md", "r") as fh:
+with open("README.md", "r", encoding="utf-8") as fh:
     long_description = fh.read()
 
 DEPENDENCIES = []  # 'scipy', 'numpy', 'vtk']

A value error when using morphman-area

Hi, I'm new in morphman,
When I use morphman-area command to adjust a coronary geometry model, there is an error like this:

Please select region of interest in the render window.
Quit renderer
-- The chosen region points: [-3.548530340194702, 1.9141699075698853, -15.790369987487793]
Traceback (most recent call last):
  File "/home/isaac/Program/anaconda3/envs/morphman/bin/morphman-area", line 10, in <module>
    sys.exit(main_area())
  File "/home/isaac/Program/anaconda3/envs/morphman/lib/python3.10/site-packages/morphman/manipulate_area.py", line 572, in main_area
    manipulate_area(**read_command_line_area())
  File "/home/isaac/Program/anaconda3/envs/morphman/lib/python3.10/site-packages/morphman/manipulate_area.py", line 76, in manipulate_area
    centerline_splined, centerline_remaining, centerline_diverging, region_points, diverging_ids = get_line_to_change(
  File "/home/isaac/Program/anaconda3/envs/morphman/lib/python3.10/site-packages/morphman/common/centerline_operations.py", line 479, in get_line_to_change
    line_to_change = compute_splined_centerline(line_to_change, nknots=nknots, isline=True)
  File "/home/isaac/Program/anaconda3/envs/morphman/lib/python3.10/site-packages/morphman/common/centerline_operations.py", line 761, in compute_splined_centerline
    fx = splrep(curv_coor, data[:, 0], k=4, t=t)
  File "/home/isaac/Program/anaconda3/envs/morphman/lib/python3.10/site-packages/scipy/interpolate/_fitpack_py.py", line 288, in splrep
    res = _impl.splrep(x, y, w, xb, xe, k, task, s, t, full_output, per, quiet)
  File "/home/isaac/Program/anaconda3/envs/morphman/lib/python3.10/site-packages/scipy/interpolate/_fitpack_impl.py", line 508, in splrep
    raise _iermess[ier][1](_iermess[ier][0])
ValueError: Error on input data

This is my input:

morphman-area -i model.vtp -o symmetry_stenosis.vtp -b 250 250 250 -m stenosis -r manual --size 2.0 -p 50

How can I solve this error, thanks!

Error using Manipulate Area on geometry with multiple inlets and outlets

I installed Morphman to inflate a vascular section. However, when I try to apply any script to the geometry, I get the following error:

morphman-area --ifile veloc6.vtp --ofile veloc6vs.vtp --method area --percentage 20 --region-of-interest first_line --poly-ball-size 250 250 250
Traceback (most recent call last):
  File "C:\Users\ducog\Anaconda3\envs\morhpman-env\Scripts\morphman-area-script.py", line 10, in <module>
    load_entry_point('morphman==1.0', 'console_scripts', 'morphman-area')()
  File "C:\Users\ducog\Anaconda3\envs\morhpman-env\lib\site-packages\morphman-1.0-py3.6.egg\morphman\manipulate_area.py", line 572, in main_area
  File "C:\Users\ducog\Anaconda3\envs\morhpman-env\lib\site-packages\morphman-1.0-py3.6.egg\morphman\manipulate_area.py", line 79, in manipulate_area
  File "C:\Users\ducog\Anaconda3\envs\morhpman-env\lib\site-packages\morphman-1.0-py3.6.egg\morphman\common\centerline_operations.py", line 296, in get_line_to_change
  File "C:\Users\ducog\Anaconda3\envs\morhpman-env\lib\site-packages\morphman-1.0-py3.6.egg\morphman\common\centerline_operations.py", line 251, in get_centerline_tolerance
ValueError: operands could not be broadcast together with shapes (2,) (3,)

The error seems to be with the geometry, as I do get results when using other geometries. I've attached an image of the geometry. Anyone who knows how I could solve the issue?

picture_tcpc

JOSS Review - Blocking Issue - LICENSE File

This is a Blocking issue for the project's JOSS Submission: openjournals/joss-reviews#1065

Two things:

  1. Remove the .md from the LICENSE.md file. It is important to have a pure plain text license file (which it not markdown formatted) for automated LICENSE finders to include appropriately.

  2. Please list the applicable licenses for VMTK / VTK / ITK (and other dependent projects), basically, copy paste (and modify where appropriate) the VMTK LICENSE file

Issue with running Manipulate Branch tutorial

Hi,

I am trying to run the tutorial for Manipulate Branch, but I am getting some errors. When I run the command, morphman-branch --ifile C0002/surface/model.vtp --ofile C0002/surface/moved_and_rotated_branch.vtp --azimuth-angle 180 --branch-number 1 --branch-location 21.7 18.1 25.9 --translation-method commandline --poly-ball-size 250 250 250, to translate and rotate the branch (as per the tutorial), I get the following error:

$ morphman-branch --ifile C0002/surface/model.vtp --ofile C0002/surface/moved_and_rotated_branch.vtp --azimuth-angle 180 --branch-number 1 --branch-location 21.7 18.1 25.9 --translation-method commandline --poly-ball-size 250 250 250
-- Computing centerlines and Voronoi diagram
-- Smoothing Voronoi diagram
-- Clipping Voronoi diagram
Computing distance.
/home/jonathanpham/anaconda3/envs/morphMan/lib/python3.10/site-packages/morphman/manipulate_branch.py:459: RuntimeWarning: divide by zero encountered in divide
  intersection = np.array(p2) + direction * (distance_array[id2] / length)
/home/jonathanpham/anaconda3/envs/morphMan/lib/python3.10/site-packages/morphman/manipulate_branch.py:459: RuntimeWarning: invalid value encountered in multiply
  intersection = np.array(p2) + direction * (distance_array[id2] / length)
Traceback (most recent call last):
  File "/home/jonathanpham/anaconda3/envs/morphMan/bin/morphman-branch", line 10, in <module>
    sys.exit(main_branch())
  File "/home/jonathanpham/anaconda3/envs/morphMan/lib/python3.10/site-packages/morphman/manipulate_branch.py", line 1105, in main_branch
    manipulate_branch(**read_command_line_branch())
  File "/home/jonathanpham/anaconda3/envs/morphMan/lib/python3.10/site-packages/morphman/manipulate_branch.py", line 112, in manipulate_branch
    move_and_rotate_branch(polar_angle, azimuth_angle, capped_surface, centerlines, centerlines_complete,
  File "/home/jonathanpham/anaconda3/envs/morphMan/lib/python3.10/site-packages/morphman/manipulate_branch.py", line 270, in move_and_rotate_branch
    origin, old_normal = get_origin(voronoi_remaining, centerlines, diverging_centerline_branch)
  File "/home/jonathanpham/anaconda3/envs/morphMan/lib/python3.10/site-packages/morphman/manipulate_branch.py", line 465, in get_origin
    new_normal = surface_with_normals.GetPointData().GetNormals().GetTuple(intersection_id)
ValueError: expects 0 <= tupleIdx && tupleIdx < GetNumberOfTuples()

It looks like the tutorial example is not working out-of-the-box for me. Any recommendations on how to solve this problem?

JOSS Review - Installation Method

This is for the JOSS Review: openjournals/joss-reviews#1065.

As this is a pure python package, it seems fairly simply to add a setup.py script which would install this package as a system python package. The only additions required would be either:

  1. specifying the appropriate entry_point for each script in setup.py
  2. add a simple CLI wrapper for the scripts via argparse, or click. Which would accomplish the same as (1) in a much cleaner (and probably easier) way.

Pure python packages can be trivial converted to conda packages via Conda Build and then uploaded to Anaconda Cloud where VMTK and other dependencies would be downloaded and linked "auto-magically" via Anaconda.

I'm not going to mark this as a blocking issue, since installation is easily enough performed, and the current solution satisfies the minimum JOSS requirements.

However, I would request feedback on why this hasn't been prioritized & included from the start? It's certainly possible that I'm missing something important about the code and/or project structure which makes this a more complex task than it initially appears? My concern stems from the fact that anyone who finds the package needs to not only know the field, but also be comfortable with Git/Github, and needs to know how to work with python in a more complex way than pulling up any terminal in any directory and typing the morphman foo command. It's OK to require that knowledge, but it should probably be stated as "prerequisite knowledge" somewhere in the documentation or JOSS paper.

Deflation of an area of interest

Hi,
I'm trying to obtain a deflation of an area of interest exploiting morphMan via Anaconda prompt.
The vmtk renderer launches normally, but after I choose the start and end points for the AOI and quit the renderer, the following issue appears:
morphman issue
areaofinterest

Any tips for solving this issue?
Thanks in advance,
Michael

A more advanced manipulate_branch

Instead of getting the normal to rotate the branch (when moving) from the centerline this could be done by reconstructing a small section of the parent branch and then average the normal in the region around where the centerline crosses the surface.

This portion of the surface could also be compared to the new location of the branch and used to adjust the base of the branch to make the method more robust.

Extension/Reduction of a vascular segment

Hello @hkjeldsberg ,

I want to extend/reduce a certain portion of the vascular geometry lengthwise, while preserving (if possible) its natural curvature or centerline path. Is it possible to implement such a feature?

Adding to that, I would like to bring up a previously discussed issue. While changing the bend severely, the length of the vascular geometry changes. Is it possible to keep the length unchanged while changing the bend or will this issue be addressed/worked on later?

Best Regards,
Sadat

Automated detection of relevant outlets

manipulate_bifurcation and the sub-module automated_landmarking of morphMan relies on selecting the relevant outlets, which is currently done by the user manually.

For applications related to the ICA, or similar tubular structures, this process could be automated, by considering the two outlets furthest apart each other, excluding the largest outlet, presumed to be the inlet.

Manipulate bend & curvature - Preserve the curvilinear length of the vessel

When using the algorithms for manipulating the shape of a bend, or curvature, the curvilinear length of the vessel is also altered. This causes a stretching or compression in the region of interest.

It is desirable to preserve the length of the length of the vessel, a feature yet to be implemented.
Although this feature might restrict some of the alterations performed on the vessel, the patient-specificness of the model is preserved.

vmtkcenterlines error when running aneurysm removal demo

I installed morphMan by using this command in my system with Anaconda3/5.1.0:

conda create -n sac-analysis -c vmtk -c morphman morphman

Then I run the demo by using this command:

 morphman-bifurcation --ifile C0066/surface/model.vtp --ofile C0066/surface/removed_aneurysm.vtp --keep-fixed-1 True --keep-fixed-2 True --bif True --lower True --angle 0 --region-of-interest commandline --region-points 31.37 60.65 25.21 67.81 43.08 41.24 --poly-ball-size 250 250 250

But I'm getting this error:

-- Region of interest is defined by the region points: 
Outlet 1: (31.371356964111328, 60.65427780151367, 25.212461471557617) 
Outlet 2: (67.81478881835938, 43.07576370239258, 41.239501953125)
Cleaning surface.
Triangulating surface.
Traceback (most recent call last):
  File "/home/yousefi/.conda/envs/sac-analysis/bin/morphman-bifurcation", line 11, in <module>
    load_entry_point('morphman==1.0', 'console_scripts', 'morphman-bifurcation')()
  File "/home/yousefi/.conda/envs/sac-analysis/lib/python3.6/site-packages/morphman-1.0-py3.6.egg/morphman/manipulate_bifurcation.py", line 652, in main_bifurcation
  File "/home/yousefi/.conda/envs/sac-analysis/lib/python3.6/site-packages/morphman-1.0-py3.6.egg/morphman/manipulate_bifurcation.py", line 97, in manipulate_bifurcation
  File "/home/yousefi/.conda/envs/sac-analysis/lib/python3.6/site-packages/morphman-1.0-py3.6.egg/morphman/common/surface_operations.py", line 712, in compute_centerlines
  File "/home/yousefi/.conda/envs/sac-analysis/lib/python3.6/site-packages/morphman-1.0-py3.6.egg/morphman/common/vmtk_wrapper.py", line 91, in vmtk_compute_centerlines
  File "/home/yousefi/.conda/envs/sac-analysis/lib/python3.6/site-packages/vmtk/vmtkcenterlines.py", line 595, in Execute
    self.SeedSelector.Execute()
  File "/home/yousefi/.conda/envs/sac-analysis/lib/python3.6/site-packages/vmtk/vmtkcenterlines.py", line 128, in Execute
    for i in range(len(self.SourcePoints)/3):
TypeError: 'float' object cannot be interpreted as an integer

Any idea how to fix it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.