neuropoly / axonseg

Segment axon and myelin from microscopy data. Written in Matlab.
MIT License
19 stars 12 forks source link

Parameters analysis in axon segmentation (EquivDiameter, MajorAxis, MinorAxis, Circularity,...) #12

Closed alzaia closed 7 years ago

alzaia commented 9 years ago

Goal : how to get the best discrimination between true & false axons in axon segmentation.

tanguyduval commented 9 years ago

Implement a Linear discriminant analysis for that: http://www.mathworks.com/help/stats/discriminant-analysis.html?refresh=true#brah8i8-1

alzaia commented 9 years ago

Ok so thats what its called!

tanguyduval commented 9 years ago

Yep!

alzaia commented 8 years ago

This is what I get when I do some validation analysis :

screen shot 2015-11-30 at 5 41 59 pm

tanguyduval commented 8 years ago

Looks great! Can you make explicit your conclusions plz

-----Original Message----- From: alzaia notifications@github.com To: neuropoly/axon_segmentation axon_segmentation@noreply.github.com Cc: tanguyduval duvaltanguy@gmail.com Sent: lun., 30 nov. 2015 17:44 Subject: Re: [axon_segmentation] Parameters analysis in axon segmentation (EquivDiameter, MajorAxis, MinorAxis, Circularity,...) (#12)

This is what I get when I do some validation analysis :

screen shot 2015-11-30 at 5 41 59 pm


Reply to this email directly or view it on GitHub: https://github.com/neuropoly/axon_segmentation/issues/12#issuecomment-160785503

alzaia commented 8 years ago

I used the Jaccard index here because I can't have the TNs (I only have TP, FP & FN), & I think its a very good indicator in our case. (J = TP/(TP+FP+FN)).

jcohenadad commented 8 years ago

great investigation! :+1:

alzaia commented 8 years ago

I implemented some new axon discrimination parameters by using the information from the neighbourhood (assuming that a true axon is supposed to have a myelin ring surrounding it). So I can use the neighbourhood intensities (both means & std) & the contrast between neighbourhood vs axon candidate.

So I compared these metrics for true & false axons (manual seg.) for different neighbourhood sizes to see if I can discriminate between the 2 groups.

screen shot 2015-12-09 at 6 35 39 pm

It looks like by using a small neighbourhood, I can get a better separation between true vs false axons. I did some tests, it doesn't affect the sensitivity too much if I add these neighbourhood metrics, but it seems to improve the specificity a little. It doesn't make a huge difference, but the more discrimination parameters we can find (specific to our case), the better.

I also did a version updating the neighbourhood screening size, depending on the axon candidate diameter (I used a 0.6 g-ratio to estimate the "myelin thickness").

screen shot 2015-12-09 at 6 35 49 pm

tanguyduval commented 8 years ago

Looks great! Also, thank you for the clarity of your figures, really really nice!

Indeed it is important to use the g-ratio --> makes it independant of pixelsize!

Also in addition to mean and std, you should look at the skewness. Your distribution in the dilated mask is certainly asymmetric due to the presence of small amount of non-myelin (please check this asumption --> display histogram in true and false axons). https://en.wikipedia.org/wiki/Skewness

2015-12-09 18:51 GMT-05:00 alzaia notifications@github.com:

I implemented some new axon discrimination parameters by using the information from the neighbourhood (assuming that a true axon is supposed to have a myelin ring surrounding it). So I can use the neighbourhood intensities (both means & std) & the contrast between neighbourhood vs axon candidate.

So I compared these metrics for true & false axons (manual seg.) for different neighbourhood sizes to see if I can discriminate between the 2 groups.

[image: screen shot 2015-12-09 at 6 35 39 pm] https://cloud.githubusercontent.com/assets/14980394/11702397/4a2784d0-9ea4-11e5-898a-ee6583ef7220.png

It looks like by using a small neighbourhood, I can get a better separation between true vs false axons. I did some tests, it doesn't affect the sensitivity too much if I add these neighbourhood metrics, but it seems to improve the specificity a little. It doesn't make a huge difference, but the more discrimination parameters we can find (specific to our case), the better.

I also did a version updating the neighbourhood screening size, depending on the axon candidate diameter (I used a 0.6 g-ratio to estimate the "myelin thickness").

[image: screen shot 2015-12-09 at 6 35 49 pm] https://cloud.githubusercontent.com/assets/14980394/11702400/4d89dfce-9ea4-11e5-8756-0299d7610886.png

— Reply to this email directly or view it on GitHub https://github.com/neuropoly/axon_segmentation/issues/12#issuecomment-163440063 .

tanguyduval commented 7 years ago

One problem with discriminant analysis is that the extraction of features is a bit slow... notably the extraction of intensity in each axons (requires a loop over axons)..