Login  Register

Trainable Segmentation

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options Options
Embed post
Permalink
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Trainable Segmentation

Bob Loushin
42 posts
Recently the Trainable Segmentation plugin in FIJI was mentioned in another thread.  It looks very interesting for one of my applications.  Is it available as a plugin for ImageJ?  If so, where can I download the .jar?  Are there other plug-ins that it depends on that I’d also need?

Thank you!

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

Ignacio Arganda-Carreras
138 posts
Dear Bob,

You can download the Trainable Segmentation package (including
Trainable_Segmentation and Weka_Segmentation plugins) and all its
dependencies from the Fiji repository. But why don't you use it within Fiji
so you don't have to worry about the dependencies?

ignacio

On Mon, Mar 11, 2013 at 8:46 PM, Bob <[hidden email]> wrote:

> Recently the Trainable Segmentation plugin in FIJI was mentioned in
> another thread.  It looks very interesting for one of my applications.  Is
> it available as a plugin for ImageJ?  If so, where can I download the .jar?
>  Are there other plug-ins that it depends on that I’d also need?
>
> Thank you!
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>



--
Ignacio Arganda-Carreras, Ph.D.
Seung's lab, 46-5065
Department of Brain and Cognitive Sciences
Massachusetts Institute of Technology
43 Vassar St.
Cambridge, MA 02139
USA

Phone: (001) 617-324-3747
Website: http://bioweb.cnb.csic.es/~iarganda/index_EN.html

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

dscho
1631 posts
In reply to this post by Bob Loushin
Hi Bob,

On Mon, 11 Mar 2013, Bob wrote:

> Recently the Trainable Segmentation plugin in FIJI was mentioned in
> another thread.  It looks very interesting for one of my applications.
> Is it available as a plugin for ImageJ?  If so, where can I download the
> .jar?  Are there other plug-ins that it depends on that I’d also need?

The easiest way to get it is to install Fiji:

        http://fiji.sc/

As Fiji is just ImageJ (i.e. a distribution of ImageJ including many
useful plugins), of course it would be possible to copy a number of .jar
files into your existing ImageJ directory.

To identify those you would have to inspect the "Dependencies" section of
the advanced mode of Help>Update Fiji recursively, or the respective
pom.xml files in the source code repository.

However, it would still run the risk of incompatible .jar versions and it
would be hard to keep everything up-to-date.

The latter point being addressed by Fiji -- a lot of hard work by really
smart people was put into that! -- I fail to see any value in spending a
substantial effort on ripping the Trainable Segmentation out of Fiji just
to be able to install it in a possibly incompatible ImageJ version...

Remember: Fiji is not competing with ImageJ. It is just a community
project to contribute improvements primarily relevant to life science to
ImageJ. An important offshoot is the updater and dependency management.
Try to benefit from our hard work, please.

Ciao,
Johannes

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

Bob Loushin
42 posts
In reply to this post by Ignacio Arganda-Carreras
Both you and Mr. Schindelin gave very similar answers to my
question--answers which, as a regular reader of the group, I expected.  I
was also hoping to hear something along the lines of "Go to x and download
the plugin, it's clean of any other dependencies", but that does not seem to
be true in this case.  I'll try to address your question, though.  There are
good reasons, from my perspective, to choose ImageJ over FIJI.

1)  I've already got an installed base of half a dozen non-programmer users
using ImageJ, with a bunch of plug-ins installed, many of which I wrote, and
many of which I didn't.  Switching would involve the hassle of converting
all their machines (personally--they aren't savvy enough to do it
themselves), and then reinstalling all the plug-ins under FIJI as well,
although some might already be there.

2)  I'm not a real programmer--I just play one at work.  All the fancy tools
real programmers use are a barrier to entry for me.  Don't get me
wrong--Eclipse, Github, Netbeans etc. are all great tools for those who code
for a living.  But I spend maybe 15% of my time programming at work.  I'll
go months without writing a line of code, until a problem comes along that
needs it.  Then it's critically important!  The rest of the time I'm in the
lab, at meetings, juggling budgets, etc.  Even if all those tools cut down
my programming time by half, it would take years to recover the time
invested in learning them because I don't code enough to make it worthwhile.
I have other areas of expertise that are more critical to my job that I
invest my training time in.

3)  So I have to stick to simple to learn.  Formal training is out of the
question.  Every language I currently use (Java, macro, Visual Basic, a
smattering of JavaScript) is self-taught.  Notepad++ to edit.  "Compile and
run" in ImageJ, and hope any error messages aren't too mysterious.  Hand
coded build files to make .jars for the more complex stuff.  My "code
repository" is a folder full of .java files (backed up offsite, naturally).
Need a plugin?  Pull it off the ImageJ site and dump it in the plugins
folder.  The code is at the same place, or often right in the .jar!
Marvelously simple.  But my projects are small enough that I can get away
with that.  ImageJ is a perfect match for this style.  Yes, FIJI can be used
the same way.  But the spirit of it seems to be more oriented towards using
real programming tools, and making sure everything fits correctly, etc.
Great for efficiency but again that barrier thing.  So the short answer to
the question "Why ImageJ instead of FIJI?" is, in my case, ImageJ has
everything I need and less that I don't.  FIJI seems to add a lot of stuff I
don't need without adding anything I do (well, except maybe Trainable
Segmentation...).

I guess the purpose of this lengthy response is a gentle reminder to the
experts that not everybody else can be.  Where possible, suggest solutions
that require little or no specialized knowledge.  Sometimes quick and dirty
really is better than elegant and bullet proof, if it's a lot simpler.  I
can't be an expert in everything.  My plumber, accountant, and karate
instructor all tell me I could be so much better at what they do if I just
devoted the effort to it that they do...but none of them have a degree in my
field, either.  So most of the people asking questions on the list are not
only less of a programming expert than the FIJI team, they also are less
likely to be able to invest the time and energy to become one.

For the case at hand, I'll download FIJI just to try out the Trainable
Segmentation.  If it handles my problem, great!  Then I'll need to decide if
it's easier to switch everybody to FIJI or come up the learning curve (it
might not be very big...I haven't looked) on using a real code repository so
I can pull what I need out of it and drop it into ImageJ.  Is the stuff in
the repository in .jar files and ready to install, or would I also need to
rebuild it?  I'll figure it out if I need to.

Thanks for letting me ramble.  And thank you (both the ImageJ and FIJI
teams), not only for your help, but for all the time and energy you spend on
making an incredibly useful tool for the rest of us to use--even if we can't
master the intricacies it takes to build it.

Bob
-----Original Message-----
From: Ignacio Arganda-Carreras
Sent: Monday, March 11, 2013 10:17 PM
To: [hidden email]
Subject: Re: Trainable Segmentation

Dear Bob,

You can download the Trainable Segmentation package (including
Trainable_Segmentation and Weka_Segmentation plugins) and all its
dependencies from the Fiji repository. But why don't you use it within Fiji
so you don't have to worry about the dependencies?

ignacio

On Mon, Mar 11, 2013 at 8:46 PM, Bob <[hidden email]> wrote:

> Recently the Trainable Segmentation plugin in FIJI was mentioned in
> another thread.  It looks very interesting for one of my applications.  Is
> it available as a plugin for ImageJ?  If so, where can I download the
> .jar?
>  Are there other plug-ins that it depends on that I’d also need?
>
> Thank you!
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>



--
Ignacio Arganda-Carreras, Ph.D.
Seung's lab, 46-5065
Department of Brain and Cognitive Sciences
Massachusetts Institute of Technology
43 Vassar St.
Cambridge, MA 02139
USA

Phone: (001) 617-324-3747
Website: http://bioweb.cnb.csic.es/~iarganda/index_EN.html

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html 

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

ctrueden
1670 posts
Hi Bob,

> I guess the purpose of this lengthy response is a gentle reminder to
> the experts that not everybody else can be.

I am very sorry that you feel Fiji is not as easy to use as regular ImageJ.
Please believe me when I say that one of Fiji's primary goals is to make
things *easier* for the "life sciences hackers" like yourself, not harder:

* The updater makes it much easier to keep core plugins up to date.

* There is a Script Editor that is intended to be both friendlier (e.g.,
syntax highlighting) and more powerful (e.g., more scripting languages
available) than ImageJ's default macro editor.

* Fiji attempts to organize core plugins into intuitive categories.

* There is a cross-platform launcher which makes Fiji support the same
options on every platform.

> Where possible, suggest solutions that require little or no
> specialized knowledge.

Absolutely agreed. Fiji is not intended to require "specialized knowledge."
Quite the opposite. The Trainable Segmentation Editor is a perfect example:
you simply label the regions then ask it to deduce the rest automatically.

> Don't get me wrong--Eclipse, Github, Netbeans etc. are all great tools
> for those who code for a living.  But I spend maybe 15% of my time
> programming at work.

None of those tools are required to use or develop code using Fiji. We are
very sorry if people have the impression that they are needed. The Script
Editor is the way to go for "casual" or quick hacking.

> Yes, FIJI can be used the same way.

Indeed. Have you tried it? Did you encounter issues beyond those of regular
ImageJ? If so, we would greatly appreciate bug reports so that we can fix
them and make your life easier.

> the learning curve (it might not be very big...I haven't looked)

Please try it. And if you have problems, please report back so that we can
make the software better. Again, the last thing we want is to limit Fiji to
only "professional developers." People like you are part of the target
audience.

Sincerely,
Curtis


On Tue, Mar 12, 2013 at 9:30 PM, Bob <[hidden email]> wrote:

> Both you and Mr. Schindelin gave very similar answers to my
> question--answers which, as a regular reader of the group, I expected.  I
> was also hoping to hear something along the lines of "Go to x and download
> the plugin, it's clean of any other dependencies", but that does not seem
> to be true in this case.  I'll try to address your question, though.  There
> are good reasons, from my perspective, to choose ImageJ over FIJI.
>
> 1)  I've already got an installed base of half a dozen non-programmer
> users using ImageJ, with a bunch of plug-ins installed, many of which I
> wrote, and many of which I didn't.  Switching would involve the hassle of
> converting all their machines (personally--they aren't savvy enough to do
> it themselves), and then reinstalling all the plug-ins under FIJI as well,
> although some might already be there.
>
> 2)  I'm not a real programmer--I just play one at work.  All the fancy
> tools real programmers use are a barrier to entry for me.  Don't get me
> wrong--Eclipse, Github, Netbeans etc. are all great tools for those who
> code for a living.  But I spend maybe 15% of my time programming at work.
>  I'll go months without writing a line of code, until a problem comes along
> that needs it.  Then it's critically important!  The rest of the time I'm
> in the lab, at meetings, juggling budgets, etc.  Even if all those tools
> cut down my programming time by half, it would take years to recover the
> time invested in learning them because I don't code enough to make it
> worthwhile. I have other areas of expertise that are more critical to my
> job that I invest my training time in.
>
> 3)  So I have to stick to simple to learn.  Formal training is out of the
> question.  Every language I currently use (Java, macro, Visual Basic, a
> smattering of JavaScript) is self-taught.  Notepad++ to edit.  "Compile and
> run" in ImageJ, and hope any error messages aren't too mysterious.  Hand
> coded build files to make .jars for the more complex stuff.  My "code
> repository" is a folder full of .java files (backed up offsite, naturally).
> Need a plugin?  Pull it off the ImageJ site and dump it in the plugins
> folder.  The code is at the same place, or often right in the .jar!
> Marvelously simple.  But my projects are small enough that I can get away
> with that.  ImageJ is a perfect match for this style.  Yes, FIJI can be
> used the same way.  But the spirit of it seems to be more oriented towards
> using real programming tools, and making sure everything fits correctly,
> etc. Great for efficiency but again that barrier thing.  So the short
> answer to the question "Why ImageJ instead of FIJI?" is, in my case, ImageJ
> has everything I need and less that I don't.  FIJI seems to add a lot of
> stuff I don't need without adding anything I do (well, except maybe
> Trainable Segmentation...).
>
> I guess the purpose of this lengthy response is a gentle reminder to the
> experts that not everybody else can be.  Where possible, suggest solutions
> that require little or no specialized knowledge.  Sometimes quick and dirty
> really is better than elegant and bullet proof, if it's a lot simpler.  I
> can't be an expert in everything.  My plumber, accountant, and karate
> instructor all tell me I could be so much better at what they do if I just
> devoted the effort to it that they do...but none of them have a degree in
> my field, either.  So most of the people asking questions on the list are
> not only less of a programming expert than the FIJI team, they also are
> less likely to be able to invest the time and energy to become one.
>
> For the case at hand, I'll download FIJI just to try out the Trainable
> Segmentation.  If it handles my problem, great!  Then I'll need to decide
> if it's easier to switch everybody to FIJI or come up the learning curve
> (it might not be very big...I haven't looked) on using a real code
> repository so I can pull what I need out of it and drop it into ImageJ.  Is
> the stuff in the repository in .jar files and ready to install, or would I
> also need to rebuild it?  I'll figure it out if I need to.
>
> Thanks for letting me ramble.  And thank you (both the ImageJ and FIJI
> teams), not only for your help, but for all the time and energy you spend
> on making an incredibly useful tool for the rest of us to use--even if we
> can't master the intricacies it takes to build it.
>
> Bob
> -----Original Message----- From: Ignacio Arganda-Carreras
> Sent: Monday, March 11, 2013 10:17 PM
> To: [hidden email]
> Subject: Re: Trainable Segmentation
>
>
> Dear Bob,
>
> You can download the Trainable Segmentation package (including
> Trainable_Segmentation and Weka_Segmentation plugins) and all its
> dependencies from the Fiji repository. But why don't you use it within Fiji
> so you don't have to worry about the dependencies?
>
> ignacio
>
> On Mon, Mar 11, 2013 at 8:46 PM, Bob <[hidden email]> wrote:
>
>  Recently the Trainable Segmentation plugin in FIJI was mentioned in
>> another thread.  It looks very interesting for one of my applications.  Is
>> it available as a plugin for ImageJ?  If so, where can I download the
>> .jar?
>>  Are there other plug-ins that it depends on that I’d also need?
>>
>> Thank you!
>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.**html<http://imagej.nih.gov/ij/list.html>
>>
>>
>
>
> --
> Ignacio Arganda-Carreras, Ph.D.
> Seung's lab, 46-5065
> Department of Brain and Cognitive Sciences
> Massachusetts Institute of Technology
> 43 Vassar St.
> Cambridge, MA 02139
> USA
>
> Phone: (001) 617-324-3747
> Website: http://bioweb.cnb.csic.es/~**iarganda/index_EN.html<http://bioweb.cnb.csic.es/~iarganda/index_EN.html>
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.**html<http://imagej.nih.gov/ij/list.html>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.**html<http://imagej.nih.gov/ij/list.html>
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

Pavel Tomancak
13 posts
In reply to this post by Bob Loushin
Dear Bob,

My understanding is that you want to use Trainable segmentation not necessarily to develop it. Trainable segmentation is one of the Fiji specific projects that rely on Fiji's facilities. The people who developed it (Ignacio) have their day jobs and probably don't have the time and energy to make it run under ImageJ.

Why don't you just try to download Fiji and run it on your data? It will certainly require less effort then making it run seamlessly in ImageJ.

If trainable segmentation is what you and your base of biology users want to use and insist on running it under ImageJ then we can discuss whether such migration is possible. A viable alternative may be to have both ImageJ and Fiji installed and revert to Fiji when trainable segmentation is required.

All the best

PAvel

-----------------------------------------------------------------------------------
Pavel Tomancak, Ph.D.

Group Leader
Max Planck Institute of Molecular Cell Biology and Genetics
Pfotenhauerstr. 108
D-01307 Dresden Tel.: +49 351 210 2670
Germany Fax: +49 351 210 2020

email: [hidden email]
url : http://www.mpi-cbg.de/research/research-groups/pavel-tomancak.html
twitter : http://twitter.com/PavelTomancak
-----------------------------------------------------------------------------------


On Mar 13, 2013, at 3:30 AM, Bob <[hidden email]> wrote:

> Both you and Mr. Schindelin gave very similar answers to my question--answers which, as a regular reader of the group, I expected.  I was also hoping to hear something along the lines of "Go to x and download the plugin, it's clean of any other dependencies", but that does not seem to be true in this case.  I'll try to address your question, though.  There are good reasons, from my perspective, to choose ImageJ over FIJI.
>
> 1)  I've already got an installed base of half a dozen non-programmer users using ImageJ, with a bunch of plug-ins installed, many of which I wrote, and many of which I didn't.  Switching would involve the hassle of converting all their machines (personally--they aren't savvy enough to do it themselves), and then reinstalling all the plug-ins under FIJI as well, although some might already be there.
>
> 2)  I'm not a real programmer--I just play one at work.  All the fancy tools real programmers use are a barrier to entry for me.  Don't get me wrong--Eclipse, Github, Netbeans etc. are all great tools for those who code for a living.  But I spend maybe 15% of my time programming at work.  I'll go months without writing a line of code, until a problem comes along that needs it.  Then it's critically important!  The rest of the time I'm in the lab, at meetings, juggling budgets, etc.  Even if all those tools cut down my programming time by half, it would take years to recover the time invested in learning them because I don't code enough to make it worthwhile. I have other areas of expertise that are more critical to my job that I invest my training time in.
>
> 3)  So I have to stick to simple to learn.  Formal training is out of the question.  Every language I currently use (Java, macro, Visual Basic, a smattering of JavaScript) is self-taught.  Notepad++ to edit.  "Compile and run" in ImageJ, and hope any error messages aren't too mysterious.  Hand coded build files to make .jars for the more complex stuff.  My "code repository" is a folder full of .java files (backed up offsite, naturally). Need a plugin?  Pull it off the ImageJ site and dump it in the plugins folder.  The code is at the same place, or often right in the .jar! Marvelously simple.  But my projects are small enough that I can get away with that.  ImageJ is a perfect match for this style.  Yes, FIJI can be used the same way.  But the spirit of it seems to be more oriented towards using real programming tools, and making sure everything fits correctly, etc. Great for efficiency but again that barrier thing.  So the short answer to the question "Why ImageJ instead of FIJI?" is, in my case, ImageJ has everything I need and less that I don't.  FIJI seems to add a lot of stuff I don't need without adding anything I do (well, except maybe Trainable Segmentation...).
>
> I guess the purpose of this lengthy response is a gentle reminder to the experts that not everybody else can be.  Where possible, suggest solutions that require little or no specialized knowledge.  Sometimes quick and dirty really is better than elegant and bullet proof, if it's a lot simpler.  I can't be an expert in everything.  My plumber, accountant, and karate instructor all tell me I could be so much better at what they do if I just devoted the effort to it that they do...but none of them have a degree in my field, either.  So most of the people asking questions on the list are not only less of a programming expert than the FIJI team, they also are less likely to be able to invest the time and energy to become one.
>
> For the case at hand, I'll download FIJI just to try out the Trainable Segmentation.  If it handles my problem, great!  Then I'll need to decide if it's easier to switch everybody to FIJI or come up the learning curve (it might not be very big...I haven't looked) on using a real code repository so I can pull what I need out of it and drop it into ImageJ.  Is the stuff in the repository in .jar files and ready to install, or would I also need to rebuild it?  I'll figure it out if I need to.
>
> Thanks for letting me ramble.  And thank you (both the ImageJ and FIJI teams), not only for your help, but for all the time and energy you spend on making an incredibly useful tool for the rest of us to use--even if we can't master the intricacies it takes to build it.
>
> Bob
> -----Original Message----- From: Ignacio Arganda-Carreras
> Sent: Monday, March 11, 2013 10:17 PM
> To: [hidden email]
> Subject: Re: Trainable Segmentation
>
> Dear Bob,
>
> You can download the Trainable Segmentation package (including
> Trainable_Segmentation and Weka_Segmentation plugins) and all its
> dependencies from the Fiji repository. But why don't you use it within Fiji
> so you don't have to worry about the dependencies?
>
> ignacio
>
> On Mon, Mar 11, 2013 at 8:46 PM, Bob <[hidden email]> wrote:
>
>> Recently the Trainable Segmentation plugin in FIJI was mentioned in
>> another thread.  It looks very interesting for one of my applications.  Is
>> it available as a plugin for ImageJ?  If so, where can I download the .jar?
>> Are there other plug-ins that it depends on that I’d also need?
>>
>> Thank you!
>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>
>
>
>
> --
> Ignacio Arganda-Carreras, Ph.D.
> Seung's lab, 46-5065
> Department of Brain and Cognitive Sciences
> Massachusetts Institute of Technology
> 43 Vassar St.
> Cambridge, MA 02139
> USA
>
> Phone: (001) 617-324-3747
> Website: http://bioweb.cnb.csic.es/~iarganda/index_EN.html
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html 
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html


--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

dscho
1631 posts
In reply to this post by Bob Loushin
Hi Bob,

On Tue, 12 Mar 2013, Bob wrote:

> Both you and Mr. Schindelin

Actually, just "Johannes" is fine.

> gave very similar answers to my question--answers which, as a regular
> reader of the group, I expected.  I was also hoping to hear something
> along the lines of "Go to x and download the plugin, it's clean of any
> other dependencies", but that does not seem to be true in this case.
> I'll try to address your question, though.

Yes, I know that you were hoping for something like that, but I hoped to
give you even simpler instructions than "go to a website, download this
file, then on the same website, download that file, too, and yet another
file, and then, on every computer you have ImageJ installed, find the
folder into which it was installed, open the subdirectory called plugins/,
copy the files you downloaded, restart ImageJ and test that everything
still works correctly."

You see, the intention of the Fiji project is not to require users to learn
new tricks. Its intention is to let users download the .zip, unpack it,
and start processing and analyzing images. No hassles with keeping things
up-to-date. No hassles with copying files. No hassles with having to
remember where things go.

> There are good reasons, from my perspective, to choose ImageJ over FIJI.

I am really glad that you give me the opportunity to address your
concerns. Please bear with me, I think that you will understand at the end
of this mail that Fiji caters to users just like you.

> 1)  I've already got an installed base of half a dozen non-programmer
> users using ImageJ, with a bunch of plug-ins installed, many of which I
> wrote, and many of which I didn't.  Switching would involve the hassle
> of converting all their machines (personally--they aren't savvy enough
> to do it themselves), and then reinstalling all the plug-ins under FIJI
> as well, although some might already be there.

You can turn an existing ImageJ installation into a Fiji installation with
one drag 'n drop followed by pressing Ctrl+J:

http://fiji.sc/Frequently_Asked_Questions#How_do_I_turn_my_ImageJ_installation_into_a_Fiji_one.3F

(Note: I just added this FAQ entry, triggered by your email, even if the
functionality existed for some time now.)

> 2)  I'm not a real programmer--I just play one at work.  All the fancy
> tools real programmers use are a barrier to entry for me.  Don't get me
> wrong--Eclipse, Github, Netbeans etc. are all great tools for those who
> code for a living.  But I spend maybe 15% of my time programming at
> work.  I'll go months without writing a line of code, until a problem
> comes along that needs it.  Then it's critically important!  The rest of
> the time I'm in the lab, at meetings, juggling budgets, etc.  Even if
> all those tools cut down my programming time by half, it would take
> years to recover the time invested in learning them because I don't code
> enough to make it worthwhile. I have other areas of expertise that are
> more critical to my job that I invest my training time in.

I would call you a real programmer by that description (including the
lack of time ;-)), but of course not a computer scientist.

And that is perfectly okay: I put a lot of time and effort into making
Fiji easy to use for *both* programming experts as well as self-taught
programmers. As well as users who do not want to write a single line of
code.

Sure, it is nice that you can use Eclipse, GitHub and Maven if you are an
expert in those technologies. It really helps getting started developing
with Fiji in that case.

But Fiji was started with the wet lab in mind. Biologists, physicists,
technical assistants who just need to get the job done. In some cases --
probably very similar to yours, I guess! -- those users started using the
macro language *because* it helped getting things done, faster. Some of
these power users needed more, still, and learnt Java. Or one of the
scripting languages Fiji supports (and these power users are the reason
Fiji supports scripting languages -- why learn Java if you know, say,
Python already?).

And just like you, those power users did not want to learn new tools.
*Unless* they were easy to use and got the job done quicker. If the time
spent on learning the tool and using the tool was shorter than doing
things without the tool, it was worth their time.

> 3)  So I have to stick to simple to learn.  Formal training is out of
> the question.  Every language I currently use (Java, macro, Visual
> Basic, a smattering of JavaScript) is self-taught.  Notepad++ to edit.
> "Compile and run" in ImageJ, and hope any error messages aren't too
> mysterious.  Hand coded build files to make .jars for the more complex
> stuff.  My "code repository" is a folder full of .java files (backed up
> offsite, naturally). Need a plugin?  Pull it off the ImageJ site and
> dump it in the plugins folder.  The code is at the same place, or often
> right in the .jar! Marvelously simple.  But my projects are small enough
> that I can get away with that.  ImageJ is a perfect match for this
> style.  Yes, FIJI can be used the same way.

I challenge you to download & unpack Fiji, start it and hit the '[' key.
It will open the Script Editor. Just open a macro of yours. See the syntax
highlighting? Makes things simpler, does it not? We included that only
because it gets things done, faster.

Or even better: open a .java file of yours. Hit Ctrl+R and see it compiled
and run. Then change something in the file. Hit Ctrl+R and see the new
version compiled and run. I bet this is much faster than what you did
earlier: edit things in Notepad++, switch focus to ImageJ, then click
Plugins>Compile and Run..., double-click the .java file in the file
chooser.

As to bundling plugins in a .jar file? Easy: in the Script Editor, select
File>Export as .jar.

Bundling plugins in a .jar file together with their .java source? In the
Script Editor, select File>Export as .jar (with source).

> But the spirit of it seems to be more oriented towards using real
> programming tools, and making sure everything fits correctly, etc.

I hope that I convinced you by now that you do not need to change anything
in the development style you developed over the years. You simply have a
new swiss army knife available. That is all.

Nobody forces you to use advanced development tools. Or have additional
correctness checks or something.

> Great for efficiency but again that barrier thing.

The barrier is maybe lower than you think ;-)

> So the short answer to the question "Why ImageJ instead of FIJI?" is, in
> my case, ImageJ has everything I need and less that I don't.

Well, you said that you downloaded and wrote plugins. So ImageJ does not
have everything you need. It is, however, extensible. And that is exactly
what Fiji provides: extensions.

> FIJI seems to add a lot of stuff I don't need without adding anything I
> do (well, except maybe Trainable Segmentation...).

Certainly, Fiji bundles so many things that it is almost guaranteed that
you do not need all of them.

It was never the point of having a distribution that fits one particular
set of scientists perfectly, and just that. It always intended to have the
things you need, and the things somebody else needs, and all it costs to
use it is to download and unpack an archive, and then double-click an
icon, that's all.

> I guess the purpose of this lengthy response is a gentle reminder to the
> experts that not everybody else can be.  Where possible, suggest
> solutions that require little or no specialized knowledge.  Sometimes
> quick and dirty really is better than elegant and bullet proof, if it's
> a lot simpler.  I can't be an expert in everything.  My plumber,
> accountant, and karate instructor all tell me I could be so much better
> at what they do if I just devoted the effort to it that they do...but
> none of them have a degree in my field, either.  So most of the people
> asking questions on the list are not only less of a programming expert
> than the FIJI team, they also are less likely to be able to invest the
> time and energy to become one.

Of course, I know that designing and maintaining Fiji is something that
requires a certain skill set that not every biologist has.

As I mentioned earlier, though: the point of Fiji is not to be
complicated. Certain parts are, but it is *my* job to take care of them.
*Your* job is to benefit from the hard work that was put into Fiji, and to
make sure that I am reminded of things that are still not as simple as
they could be.

> For the case at hand, I'll download FIJI just to try out the Trainable
> Segmentation.  If it handles my problem, great!  Then I'll need to
> decide if it's easier to switch everybody to FIJI or come up the
> learning curve (it might not be very big...I haven't looked) on using a
> real code repository so I can pull what I need out of it and drop it
> into ImageJ.

I am sure that you will find that Fiji looks pretty similar to ImageJ.
That is not a coincidence, it is intentional. Fiji is just ImageJ. It was
never intended to be something else than a distribution of ImageJ with
some plugins that make life easier.

The learning curve associated with switching from ImageJ to Fiji, hence,
is expected to be virtually zero.

Of course, you can make your own life harder by trying to rip out a couple
of things from Fiji and put them into a bare-bones ImageJ installation.
But why? What would be the point, other than spending time that would be
better spent in one of the meetings you mentioned earlier, or juggling
budgets, just to get exactly the same you have already, with Fiji?

> Is the stuff in the repository in .jar files and ready to install, or
> would I also need to rebuild it?  I'll figure it out if I need to.

As Fiji tries to make things easier, not more difficult, for the users,
everything is ready to run. (Not in the source code repository, though,
that is the playground for the developers.)

> Thanks for letting me ramble.  And thank you (both the ImageJ and FIJI
> teams), not only for your help, but for all the time and energy you
> spend on making an incredibly useful tool for the rest of us to
> use--even if we can't master the intricacies it takes to build it.

If you want to build it from scratch, it's very easy, too ('sh Build.sh'
after checking out the source from git://github.com/fiji/fiji), but I
believe that you will be satisfied with the downloadable .zip file.

And I kept one goodie for the end of this mail. You mentioned that you
have multiple installations of ImageJ which you have to update with your
custom plugins yourself, manually, because your users are not savvy enough
to do it themselves.

This is where the updater comes in.

Now, I hear you say: "But I do not have an update site!". And my response:
you can have an update site in less than half an hour. And it will save
you dozens of hours in the future because you can just upload new versions
of the plugins to the update site, and the users will get those updates
automatically.

Have a Dropbox account [*1*]? Then you have all you need for your very own
update site.

(Even if you lack a Dropbox account, it is dead simple to get one, and for
the purposes of an update site, a free account will do just fine.)

Simply read through

        http://fiji.sc/How_to_set_up_and_populate_an_update_site

and pay special attention to the Dropbox section. (This should not take
more than 2 minutes of your time, and to set up the update site and to
upload your custom plugins should not take more than 15 minutes in
addition.)

Then tell your users to follow http://fiji.sc/Update_Sites with your
update site's URL, and you're set [*2*]!

Summary: Fiji is intended to make life easy and simple, even for
scientists who did not study computer science.

Ciao,
Johannes

Footnote *1*: Kudos to Curtis for thinking of using Dropbox as an update
site. It is a brilliant idea!

Footnote *2*: At the moment, the updater will not suggest automatically to
update when a Dropbox update site you follow has new updates. As a user,
you do not have to understand the technical details unless you want to,
suffice to say that one of the next updates will bring you a fix for that!

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

Bob Loushin
42 posts
Johannes,

Thank you for the detailed reply.  As mentioned in my earlier response, I
will download FIJI to try the Trainable Segmentation.  I'm encouraged to see
that transitioning from ImageJ is so straightforward; that makes it much
more likely that it will be my eventual solution.

As far as syntax highlighting goes, Notepad++ actually does an excellent job
of that for many languages, including all of the ones I use except perhaps
macro (I haven't checked).  It's even customizable, so I could add syntax
highlighting for macros if I wanted, but it's not worth my time.  If my code
will be more complex than about one page I switch to Java anyway, so I
haven't felt this was an issue.  Switching to Java is prompted by the desire
to break things up into smaller classes and functions (which is clumsy in
macro), not a lack of syntax highlighting.  But since it's available, it
will be an added convenience!  For those unfamiliar with Notepad++, it's an
open source text editor.  It's very similar to ImageJ/FIJI in many ways:  an
active user community, extendable through plug-ins, highly customizable.  I
don't know if it's available cross platform, I've only used it in Windows.
It even has a hex editor plug-in, which I've used to decipher different
image header formats.  A tabbed interface makes it easy to keep several
classes open at once and switch back and forth between them.

I don't need to be convinced that, from a user's standpoint, there is no
learning curve to switching from ImageJ to FIJI.  I've downloaded it and
test run it in the past to see if there was anything it had that I needed
but ImageJ didn't have.  At the time, there wasn't, but that was a while
ago, and much has changed since then.  But as you say, the interfaces are
identical.

I am intrigued by the possibility of automating the updates.  This is one of
those things I always assumed was too much hassle for small projects but
very useful for big ones.  If it is as easy as you say, however, it may be
worthwhile for my situation.  I'll definitely look into it.

I would also like to address a comment Curtis Rueden made in his response.
I apologize for leaving the impression that I felt FIJI was not, in general,
as easy to use as ImageJ.  It would be more accurate to say that when I did
a side by side comparison 3 or 4 years ago, I found the programming
interface of ImageJ to be a better fit to my needs.  But I'm open to change,
and as I said, I will try it again.

Again, thank you for creating such a useful tool!

Bob
-----Original Message-----
From: Johannes Schindelin
Sent: Wednesday, March 13, 2013 1:58 PM
To: [hidden email]
Subject: Re: Trainable Segmentation

Hi Bob,

On Tue, 12 Mar 2013, Bob wrote:

> Both you and Mr. Schindelin

Actually, just "Johannes" is fine.

> gave very similar answers to my question--answers which, as a regular
> reader of the group, I expected.  I was also hoping to hear something
> along the lines of "Go to x and download the plugin, it's clean of any
> other dependencies", but that does not seem to be true in this case.
> I'll try to address your question, though.

Yes, I know that you were hoping for something like that, but I hoped to
give you even simpler instructions than "go to a website, download this
file, then on the same website, download that file, too, and yet another
file, and then, on every computer you have ImageJ installed, find the
folder into which it was installed, open the subdirectory called plugins/,
copy the files you downloaded, restart ImageJ and test that everything
still works correctly."

You see, the intention of the Fiji project is not to require users to learn
new tricks. Its intention is to let users download the .zip, unpack it,
and start processing and analyzing images. No hassles with keeping things
up-to-date. No hassles with copying files. No hassles with having to
remember where things go.

> There are good reasons, from my perspective, to choose ImageJ over FIJI.

I am really glad that you give me the opportunity to address your
concerns. Please bear with me, I think that you will understand at the end
of this mail that Fiji caters to users just like you.

> 1)  I've already got an installed base of half a dozen non-programmer
> users using ImageJ, with a bunch of plug-ins installed, many of which I
> wrote, and many of which I didn't.  Switching would involve the hassle
> of converting all their machines (personally--they aren't savvy enough
> to do it themselves), and then reinstalling all the plug-ins under FIJI
> as well, although some might already be there.

You can turn an existing ImageJ installation into a Fiji installation with
one drag 'n drop followed by pressing Ctrl+J:

http://fiji.sc/Frequently_Asked_Questions#How_do_I_turn_my_ImageJ_installation_into_a_Fiji_one.3F

(Note: I just added this FAQ entry, triggered by your email, even if the
functionality existed for some time now.)

> 2)  I'm not a real programmer--I just play one at work.  All the fancy
> tools real programmers use are a barrier to entry for me.  Don't get me
> wrong--Eclipse, Github, Netbeans etc. are all great tools for those who
> code for a living.  But I spend maybe 15% of my time programming at
> work.  I'll go months without writing a line of code, until a problem
> comes along that needs it.  Then it's critically important!  The rest of
> the time I'm in the lab, at meetings, juggling budgets, etc.  Even if
> all those tools cut down my programming time by half, it would take
> years to recover the time invested in learning them because I don't code
> enough to make it worthwhile. I have other areas of expertise that are
> more critical to my job that I invest my training time in.

I would call you a real programmer by that description (including the
lack of time ;-)), but of course not a computer scientist.

And that is perfectly okay: I put a lot of time and effort into making
Fiji easy to use for *both* programming experts as well as self-taught
programmers. As well as users who do not want to write a single line of
code.

Sure, it is nice that you can use Eclipse, GitHub and Maven if you are an
expert in those technologies. It really helps getting started developing
with Fiji in that case.

But Fiji was started with the wet lab in mind. Biologists, physicists,
technical assistants who just need to get the job done. In some cases --
probably very similar to yours, I guess! -- those users started using the
macro language *because* it helped getting things done, faster. Some of
these power users needed more, still, and learnt Java. Or one of the
scripting languages Fiji supports (and these power users are the reason
Fiji supports scripting languages -- why learn Java if you know, say,
Python already?).

And just like you, those power users did not want to learn new tools.
*Unless* they were easy to use and got the job done quicker. If the time
spent on learning the tool and using the tool was shorter than doing
things without the tool, it was worth their time.

> 3)  So I have to stick to simple to learn.  Formal training is out of
> the question.  Every language I currently use (Java, macro, Visual
> Basic, a smattering of JavaScript) is self-taught.  Notepad++ to edit.
> "Compile and run" in ImageJ, and hope any error messages aren't too
> mysterious.  Hand coded build files to make .jars for the more complex
> stuff.  My "code repository" is a folder full of .java files (backed up
> offsite, naturally). Need a plugin?  Pull it off the ImageJ site and
> dump it in the plugins folder.  The code is at the same place, or often
> right in the .jar! Marvelously simple.  But my projects are small enough
> that I can get away with that.  ImageJ is a perfect match for this
> style.  Yes, FIJI can be used the same way.

I challenge you to download & unpack Fiji, start it and hit the '[' key.
It will open the Script Editor. Just open a macro of yours. See the syntax
highlighting? Makes things simpler, does it not? We included that only
because it gets things done, faster.

Or even better: open a .java file of yours. Hit Ctrl+R and see it compiled
and run. Then change something in the file. Hit Ctrl+R and see the new
version compiled and run. I bet this is much faster than what you did
earlier: edit things in Notepad++, switch focus to ImageJ, then click
Plugins>Compile and Run..., double-click the .java file in the file
chooser.

As to bundling plugins in a .jar file? Easy: in the Script Editor, select
File>Export as .jar.

Bundling plugins in a .jar file together with their .java source? In the
Script Editor, select File>Export as .jar (with source).

> But the spirit of it seems to be more oriented towards using real
> programming tools, and making sure everything fits correctly, etc.

I hope that I convinced you by now that you do not need to change anything
in the development style you developed over the years. You simply have a
new swiss army knife available. That is all.

Nobody forces you to use advanced development tools. Or have additional
correctness checks or something.

> Great for efficiency but again that barrier thing.

The barrier is maybe lower than you think ;-)

> So the short answer to the question "Why ImageJ instead of FIJI?" is, in
> my case, ImageJ has everything I need and less that I don't.

Well, you said that you downloaded and wrote plugins. So ImageJ does not
have everything you need. It is, however, extensible. And that is exactly
what Fiji provides: extensions.

> FIJI seems to add a lot of stuff I don't need without adding anything I
> do (well, except maybe Trainable Segmentation...).

Certainly, Fiji bundles so many things that it is almost guaranteed that
you do not need all of them.

It was never the point of having a distribution that fits one particular
set of scientists perfectly, and just that. It always intended to have the
things you need, and the things somebody else needs, and all it costs to
use it is to download and unpack an archive, and then double-click an
icon, that's all.

> I guess the purpose of this lengthy response is a gentle reminder to the
> experts that not everybody else can be.  Where possible, suggest
> solutions that require little or no specialized knowledge.  Sometimes
> quick and dirty really is better than elegant and bullet proof, if it's
> a lot simpler.  I can't be an expert in everything.  My plumber,
> accountant, and karate instructor all tell me I could be so much better
> at what they do if I just devoted the effort to it that they do...but
> none of them have a degree in my field, either.  So most of the people
> asking questions on the list are not only less of a programming expert
> than the FIJI team, they also are less likely to be able to invest the
> time and energy to become one.

Of course, I know that designing and maintaining Fiji is something that
requires a certain skill set that not every biologist has.

As I mentioned earlier, though: the point of Fiji is not to be
complicated. Certain parts are, but it is *my* job to take care of them.
*Your* job is to benefit from the hard work that was put into Fiji, and to
make sure that I am reminded of things that are still not as simple as
they could be.

> For the case at hand, I'll download FIJI just to try out the Trainable
> Segmentation.  If it handles my problem, great!  Then I'll need to
> decide if it's easier to switch everybody to FIJI or come up the
> learning curve (it might not be very big...I haven't looked) on using a
> real code repository so I can pull what I need out of it and drop it
> into ImageJ.

I am sure that you will find that Fiji looks pretty similar to ImageJ.
That is not a coincidence, it is intentional. Fiji is just ImageJ. It was
never intended to be something else than a distribution of ImageJ with
some plugins that make life easier.

The learning curve associated with switching from ImageJ to Fiji, hence,
is expected to be virtually zero.

Of course, you can make your own life harder by trying to rip out a couple
of things from Fiji and put them into a bare-bones ImageJ installation.
But why? What would be the point, other than spending time that would be
better spent in one of the meetings you mentioned earlier, or juggling
budgets, just to get exactly the same you have already, with Fiji?

> Is the stuff in the repository in .jar files and ready to install, or
> would I also need to rebuild it?  I'll figure it out if I need to.

As Fiji tries to make things easier, not more difficult, for the users,
everything is ready to run. (Not in the source code repository, though,
that is the playground for the developers.)

> Thanks for letting me ramble.  And thank you (both the ImageJ and FIJI
> teams), not only for your help, but for all the time and energy you
> spend on making an incredibly useful tool for the rest of us to
> use--even if we can't master the intricacies it takes to build it.

If you want to build it from scratch, it's very easy, too ('sh Build.sh'
after checking out the source from git://github.com/fiji/fiji), but I
believe that you will be satisfied with the downloadable .zip file.

And I kept one goodie for the end of this mail. You mentioned that you
have multiple installations of ImageJ which you have to update with your
custom plugins yourself, manually, because your users are not savvy enough
to do it themselves.

This is where the updater comes in.

Now, I hear you say: "But I do not have an update site!". And my response:
you can have an update site in less than half an hour. And it will save
you dozens of hours in the future because you can just upload new versions
of the plugins to the update site, and the users will get those updates
automatically.

Have a Dropbox account [*1*]? Then you have all you need for your very own
update site.

(Even if you lack a Dropbox account, it is dead simple to get one, and for
the purposes of an update site, a free account will do just fine.)

Simply read through

http://fiji.sc/How_to_set_up_and_populate_an_update_site

and pay special attention to the Dropbox section. (This should not take
more than 2 minutes of your time, and to set up the update site and to
upload your custom plugins should not take more than 15 minutes in
addition.)

Then tell your users to follow http://fiji.sc/Update_Sites with your
update site's URL, and you're set [*2*]!

Summary: Fiji is intended to make life easy and simple, even for
scientists who did not study computer science.

Ciao,
Johannes

Footnote *1*: Kudos to Curtis for thinking of using Dropbox as an update
site. It is a brilliant idea!

Footnote *2*: At the moment, the updater will not suggest automatically to
update when a Dropbox update site you follow has new updates. As a user,
you do not have to understand the technical details unless you want to,
suffice to say that one of the next updates will bring you a fix for that!

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html 

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

dscho
1631 posts
Hi Bob,

On Wed, 13 Mar 2013, Bob wrote:

> I don't know if [Notepad++]'s available cross platform, I've only used
> it in Windows.

No, Notepad++ is a Windows-only program. A similar, cross-platform program
is jEdit (http://jedit.org/).

But the major point of the Fiji Script Editor is not to be a full-fledged
editor as Notepad++ aims to be (although it also supports multiple tabs,
syntax highlighting, convenient indenting, etc). The major point is that
it is integrated into ImageJ, so you do not have to switch between
applications.

Ciao,
Johannes

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

chin
40 posts
In reply to this post by Bob Loushin
Hi Bob,

I recently tried  the Advanced Weka Segmentation (like the Trainable Segmentation) plugin on IHC stained images. It really an intuitive tool and easily let me get up to speed on it. The only thing  perplexed my colleagues and me is we all ImageJ users. So, both ImageJ and Fiji are installed on my PCs. Many of us biologists are not programers  and don't even know java language, not to mention the ability to put all the dependencies from the Fiji repository into ImageJ. Yeah, Fiji is just ImageJ. It's strange that  plugins for ImageJ could also be used on Fiji while some plugins created for Fiji which do not work on ImageJ. We are very thankful for both useful tools ImageJ and Fiji. As far as we are concerned, why does tailor-made plugins for Fiji could not be moved into ImageJ. Thanks to a standalone Stitching plugin for ImageJ made by Dr. Stephan Preibisch. It let us could do image stitching on ImageJ
platform.

Thanks the " Advanced Weka Segmentation" plugin.

chin  
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

dscho
1631 posts
Hi,

On Thu, 28 Mar 2013, chin wrote:

> I recently tried  the Advanced Weka Segmentation (like the Trainable
> Segmentation) plugin on IHC stained images. It really an intuitive tool
> and easily let me get up to speed on it. The only thing  perplexed my
> colleagues and me is we all ImageJ users. So, both ImageJ and Fiji are
> installed on my PCs. Many of us biologists are not programers  and don't
> even know java language, not to mention the ability to put all the
> dependencies from the Fiji repository into ImageJ. Yeah, Fiji is just
> ImageJ. It's strange that plugins for ImageJ could also be used on Fiji
> while some plugins created for Fiji which do not work on ImageJ. We are
> very thankful for both useful tools ImageJ and Fiji. As far as we are
> concerned, why does tailor-made plugins for Fiji could not be moved into
> ImageJ. Thanks to a standalone Stitching plugin for ImageJ made by Dr.
> Stephan Preibisch. It let us could do image stitching on ImageJ
> platform.

You make it sound like Fiji is something different from ImageJ. It is not.
It's just that Fiji is a distribution of ImageJ that comes with a lot of
plugins preinstalled, kind of a "no hassles" ImageJ.

If you are knowledgable about the details of ImageJ, such as: where do I
install which .jar files (and how do I find out which ones I need?), you
can easily copy the relevant files from
http://jenkins.imagej.net/job/Stable-Fiji/. If not: use Fiji.

Ciao,
Johannes

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Trainable Segmentation

dscho
1631 posts
Hi chin,

I have to admit I almost missed your mail. One way to make it more likely
for me to read your mail is to Cc: me.

On Mon, 1 Apr 2013, chin wrote:

> By the way, the Fiji website seems to have some problems. The content
> which doesn't be expressed in English. Could you please have a look at
> it?

Oh no! We had the same problem last year, and the year before.

I finally sat down and looked at the log files. It looks as if some aliens
managed to hack our system (the IP locator says the attach originates with
a high likelihood from the 4th planet of our solar system), and while they
were unable to do anything about the amount of content, they were able to
permute all of the letters. I managed to install a self-organizing plugin
to the Wiki which should be able to invert the permutations, but it will
run for another approximately five hours and fourty minutes (but the exact
time depends on your time zone). I also installed an anti-alien skin that
should protect us for another year.

Thanks for bringing this to my attention,
Johannes

P.S.: Happy Fools' Day!

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html