fiji / SNT

Legacy project superseded by https://github.com/morphonets/SNT
GNU General Public License v3.0
11 stars 30 forks source link

Analyze Sholl profiles using the Sholl_Analysis plugin #7

Closed tferr closed 8 years ago

tferr commented 8 years ago

Simple Neurite Tracer (SNT) ability to perform Sholl is less capable than the one provided by the Sholl_Analysis (SA) plugin. Also, as is, Fiji is somewhat schizophrenic: There are two ways of doing this type of analysis: one via SNT the other via SA. This commit does some house cleaning and makes SNT aware of SA, so that sampled profiles can be analyzed in detail: With this commit, SNT will pass all the heavy lifting to SA.

SLast release of SA made it aware of SNT, so now we have a unifying workflow for users doing Sholl on ImageJ!

@ctrueden: PR #6 required no dependencies, but this merge will require pom-fiji-26.1.2 because it requires Sholl_Analysis 3.5.6, released yesterday (but not yet uploaded to the java-8 update site)

ctrueden commented 8 years ago

Thanks @tferr. If you do not want to wait for a new pom-fiji, you can always pin to an explicit dependency version in the POM. So here you can set Sholl_Analysis.version to 3.6.7 in the <properties> and then it should build and be mergeable, without you needing to wait on me.

tferr commented 8 years ago

Thanks @ctrueden. I had tried it, but when I add:

    <properties>
        <Sholl_Analysis.version>3.6.7</Sholl_Analysis.version>
    </properties>

I get the following error on my Eclipse:

 [WARNING] Rule 6: org.apache.maven.plugins.enforcer.BanCircularDependencies failed with message:
Circular Dependency found. Your project's groupId:artifactId combination must not exist in the list of direct or transitive dependencies.
  sc.fiji:Simple_Neurite_Tracer

I am guessing because Sholl_Analysis now requires SNT, and this generates some sort of circular dependency? But don't worry if you cannot look into it. IJ2 paper first! :) we can certainly wait a couple of weeks for the new pom.

ctrueden commented 8 years ago

I am guessing because Sholl_Analysis now requires SNT, and this generates some sort of circular dependency?

Yes, we must decide: is SNT built on Sholl_Analysis? Or is Sholl_Analysis built on SNT? We cannot do both.

tferr commented 8 years ago

Are there any recommendations/guidelines? I find it hard to answer that, because:

Either way would work for me.. What do you guys recommend?

tferr commented 8 years ago

@ctrueden I just wanted to mention that the functionality of this PR was mention in the forum. If you can give some quick pointers I can probably look into it still this week

tferr commented 8 years ago

@ctrueden: Could it be that the Jenkins job is not yet set for Java8? Latest build failed with Fatal error compiling: invalid target release: 1.8

ctrueden commented 8 years ago

@tferr Yes, the SNT job was set to Java 7. I fixed it, reran the build, and it passed now.

Many apologies for my slowness to reply; last week and this week are both extremely busy for me. Things will settle down next week, at which time I will be catching up on email etc. notifications, and can advise you further as needed here.

For now, in brief: the ways to solve circular deps are:

1) Make A depend on B, and make B call A only via reflection. E.g., IJ.runPlugIn with a string name.

2) Much preferred and less hacky: factor out A and B's common functionality into a library C, and make A and B both depend on it.

tferr commented 8 years ago

@ctrueden, No problem!

For now I went the easiest route: Removed the plugin from Sholl_Analysis and placed it in SNT. It actually makes things much easier, because the code gets simplified a lot, as it can access SNT's private methods (although I did need to make lots of methods public in Sholl_Analysis. I released a new version and uploaded it to the Java 8 update site. I won't have much time to work on this for a while, so I think I'll just convert my todo list to issues so that things are not forgotten.

Thanks a lot! Didn't want to derail you from the manuscript. (BTW, Is the IJ2 paper going to be available on biorxiv.org?)

ctrueden commented 8 years ago

I went the easiest route: Removed the plugin from Sholl_Analysis and placed it in SNT.

Great, it is definitely simplest if one component can simply depend on the other.

BTW, Is the IJ2 paper going to be available on biorxiv.org?

Thanks for the reminder. Yes, we are submitting to BMC Bioinformatics and they have no issue with that, so I can submit the manuscript to biorxiv.org. Is this paper also appropriate for arxiv.org? And I guess I should also put something on figshare? Anything else? I find the whole preprint server landscape immensely confusing and complicated.