Python alternative to ImageJ

2,404 views
Skip to first unread message

nathan lachenmyer

unread,
Apr 16, 2012, 5:19:52 PM4/16/12
to diy...@googlegroups.com
Hey all,

is anyone familiar with a python-based alternative to ImageJ? ImageJ is
great and all, but seems somewhat limited and a pain to extend. These
days it seems like python is the best choice of programming language for
anything you want to be universally used -- so does there exist anything
like ImageJ for python?

I'm aware of the PIL (python imaging library) and OpenCV -- both of these
provide fantastic tools, but it doesn't seem like anyone has put anything
together that can perform tasks for you. At the moment it seems like if
you want to do anything in Python you've got to do script it yourself...

I've started writing my own python image analysis framework, but I was
hoping to avoid reinventing the wheel if at all possible. I'd also
greatly appreciate any references to usign PIL/OpenCV for
microscopy/biology in general :D

thanks!

nathan lachenmyer

Nathan McCorkle

unread,
Apr 16, 2012, 5:34:03 PM4/16/12
to diy...@googlegroups.com
depends what you want to do... there are some folks on here that have
talked about at least coding up an automatic cell counter (blob
detection with color detection too, for live/dead counts)

> --
> You received this message because you are subscribed to the Google Groups
> "DIYbio" group.
> To post to this group, send email to diy...@googlegroups.com.
> To unsubscribe from this group, send email to
> diybio+un...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/diybio?hl=en.
>

--
Nathan McCorkle
Rochester Institute of Technology
College of Science, Biotechnology/Bioinformatics

John Griessen

unread,
Apr 16, 2012, 7:04:19 PM4/16/12
to diy...@googlegroups.com
On 04/16/2012 04:34 PM, Nathan McCorkle wrote:
> depends what you want to do...

Yes, your asking is no harm, but I don't expect it's all push-button done yet.

There's a potential team her though...

Python is my most rereadable language for scripts. For another project, I'm going to learn C++ also.

I've been surprised no one on this list has wanted to collaborate on pymite
programs that run on platforms like the STM32-stamp ARM chip that costs $27 as an eval board
you can flash program with JTAG or via the USB and some software.

John

kingjacob

unread,
Apr 16, 2012, 7:53:37 PM4/16/12
to diy...@googlegroups.com
SimpleCV is a pretty cool tool. I've seen it do some pretty impressive beard detection and measurement in under 20 lines no less. 



nathan lachenmyer

--
You received this message because you are subscribed to the Google Groups "DIYbio" group.
To post to this group, send email to diy...@googlegroups.com.
To unsubscribe from this group, send email to diybio+unsubscribe@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/diybio?hl=en.




--
Cheers,
Jacob Shiach
editor-in-chief: Citizen Science Quarterly
twitter: @jacobshiach

Jonathan Cline

unread,
Apr 17, 2012, 2:50:30 AM4/17/12
to diy...@googlegroups.com, jcline


On Monday, April 16, 2012 4:04:19 PM UTC-7, John Griessen wrote:

I've been surprised no one on this list has wanted to collaborate on pymite
programs that run on platforms like the STM32-stamp ARM chip that costs $27 as an eval board
you can flash program with JTAG or via the USB and some software.

John


Sounds neat.  I'm going to check this out, I'll try it on my STM32F.  Thanks for mentioning it.  Is there something similar for Parrot or is the Perl VM lagging python in this regard?
It would be great on a PIC32.  I've booted up BSD on the PIC32 (retrobsd), it's multi-user unix on a UBW32 stick.  Combining this with retrobsd would be a very solid environment for biorobot control.


## Jonathan Cline
## jcl...@ieee.org
## Mobile: +1-805-617-0223
########################

Message has been deleted

Nicholas Luzzietti

unread,
Apr 18, 2012, 6:54:44 PM4/18/12
to diy...@googlegroups.com
Hi, have you tried FIJI?

Mac Cowell

unread,
Apr 18, 2012, 9:05:55 PM4/18/12
to diy...@googlegroups.com, diy...@googlegroups.com
Wow cool!

231.313.9062 // @100ideas // sent from my rotary phone

On Apr 18, 2012, at 3:54 PM, Nicholas Luzzietti <nicholas....@googlemail.com> wrote:

Hi, have you tried FIJI?

--
You received this message because you are subscribed to the Google Groups "DIYbio" group.
To view this discussion on the web visit https://groups.google.com/d/msg/diybio/-/0iDZG2lIfyMJ.

To post to this group, send email to diy...@googlegroups.com.
To unsubscribe from this group, send email to diybio+un...@googlegroups.com.

Jordan Miller

unread,
Apr 19, 2012, 12:57:31 AM4/19/12
to diy...@googlegroups.com
dont reinvent the wheel. fiji is enormously widely used and useful. it will take you long enough to learn all its capabilities!

jordan

> --
> You received this message because you are subscribed to the Google Groups "DIYbio" group.

Nathan McCorkle

unread,
Apr 18, 2013, 4:11:46 PM4/18/13
to diybio
openCV has bindings for python, and source for c/c++


On Thu, Apr 18, 2013 at 6:52 AM, Mathew Schwartz <umc...@gmail.com> wrote:
This post is a bit old, but i am looking for the same thing, or similar.  Java is way too slow for large processing and was wondering if there are any, either python alternatives using the boost libraries or straight c++ implementations

anyone know if this exists?  

Thanks!

--
-- You received this message because you are subscribed to the Google Groups DIYbio group. To post to this group, send email to diy...@googlegroups.com. To unsubscribe from this group, send email to diybio+un...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/diybio?hl=en
Learn more at www.diybio.org
---
You received this message because you are subscribed to the Google Groups "DIYbio" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diybio+un...@googlegroups.com.

To post to this group, send email to diy...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/diybio/-/IXyfFqaRL0gJ.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
-Nathan

Dakota Hamill

unread,
Apr 18, 2013, 4:44:56 PM4/18/13
to diy...@googlegroups.com
If you had to recommend one computer language to learn for someone in
the life sciences, what would it be and why?

There was an example I saw of someone from an iGEM team who wrote a
program in Python (I think it was Python) to predict the best oligos
to get synthesized for Gibson assembly. So, that sort of biased me to
try to learn that language, which I never did. I want to learn a
programming language, but they confuse the hell out of me and it's
just something that does not come naturally to me. I don't understand
why so many different languages have so many different commands, or
rather, why couldn't many languages share the same commands, and have
variable commands when needed for a particular reason. As some people
have told me before, certain languages are "better" at certain things.
But, they never list good examples so I never understand how one
language is better at something than another.

Couldn't there be one language to rule them all?

Thanks!

Cathal Garvey

unread,
Apr 18, 2013, 5:51:00 PM4/18/13
to diy...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

> Couldn't there be one language to rule them all?

You might say the same about Natural languages.

The format of a language defines its specialities, and a "one language
to rule them all" would, like any language, be good at some things and
bad at others. That would mean that any job under the category of
"others" would suffer, and someone would write a minilanguage of the
One-True-Language to compensate, or write a whole new language that
would be better at those tasks, and now you have Two langauges again.

There's also evolution to consider: Languages have been written to
supercede or merge good concepts from old languages, but the old
languages remain and evolve/merge into other offspring languages, and
so on.

So, just as there isn't just "One Organism to Rule Them All", there
isn't "One Language to Rule Them All", either; there's a rich
ecosystem of languages with a complex, non-mendelian pattern of
inheritance and inspiration.

As to which one to learn, I'd still recommend Python (3!) to newcomers
to programming. It's got a forgiving syntax, a really good interactive
mode (which is surprisingly rare among languages, I've discovered),
it's very popular (which means there's loads of established,
well-documented programs out there to learn from), and when you get
into it you can smoothly learn how to write fast, effective code. That
the chief argument against Python is its slower speed vs. compiled
languages (which is true of all interpreted languages, so isn't much
of a point), is telling. You can say nasty things about most
languages, the worst I've heard said of Python is "it's not as fast as
C++".

To learn Python, I recommend "Dive into Python 3":
http://www.diveintopython3.net

Also, no matter what language you're learning, you'll probably like
programming more if you do it on (in order of comfort) Linux, Mac or
even Android. There are plenty of reasons for me saying so
(command-line quality, absence of native code compilers for building
extensions, all the guides are written for Linux..); just take it on
faith here that Windows isn't a very comfortable programming environment.
- --
Please note my new email: cathal...@cathalgarvey.me
PGP Key: 988B9099
Bitmessage: BM-opSmZfNZHSzGDwdD5KzTnuKbzevSEDNXL
Twitter: @onetruecathal
Code: https://gitorious.org/~cathalgarvey
Blog: http://www.indiebiotech.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJRcGrCAAoJEL0iNgSYi5CZxUgQANB2AX/76t3As1+rfovopkUS
fDKfuxiLLMaDlyluK9Iu9nMFOfOqMoS1ng9g8brQjq+UT+/qsr387JwKUHrhfII/
AuVlVJGByP7CSpSGVjsa9gnOx5yB2RE3rprr69++uy39S592XFeZizMqsxcHVfGI
OD+tR4z8nYbRViRet2PawhHcPZP2cVTQKAMSR2YHSAETUE/W1K7cVKpG0MHO60vv
T8LdMhAr0m9ccy52Wt5GfGGSE2Wi/jWzjFYy7XeDh9Ux/Gly85H8xLVGckuP4IfZ
zjzQ5zpIt5tDnLBPn7KF7lHedBWA00cBtFW0cXStj23XefM+E2j2JFFg/bMLP65h
Mq7yoL/bzi/452p8dyYeTUtzPUjMSECjWM0MiU7OhWgZ3C8nvM1Pc9LU5Hl1LAFE
NoU9mJ3h/HK6F+Ztyr5RZOvXjrHJEkQGdUhuw2lCDF4U5eIaHD+mzv0YGzbFCm7W
F5OfvVM+VIAMqw+Lp97+NH1evadWhOR/CIU8qbicVGyoDCywx9ipyOJAjUuL7+W0
h/NW4dnvU29dIro8VEiJJ+O/JuAjJrl9zGqNhnDBst5tPopWnKz+hlTsZ2qR82T1
7aPtx9jxmXX/k1hW5Z4hj4HY+lIN6FkGnhNyo7u24SP9biJG6aAfu0F02P4Ngfpc
e5wcqypy3o2Qgnil4mAg
=cIlD
-----END PGP SIGNATURE-----

Dakota Hamill

unread,
Apr 18, 2013, 6:30:07 PM4/18/13
to diy...@googlegroups.com
Thanks Cathal for the well thought out answer. I will make use of that link.

Eric Ma

unread,
Apr 18, 2013, 7:08:42 PM4/18/13
to diy...@googlegroups.com
I'll second Cathal. Python is my 2nd main language I've learned after Java, and it's easy to learn, flexible, and as I've learned over time, has got many useful tools and packages (itertools, numpy, scipy, BioPython...) and a great community of people who can help on Stack Overflow. Syntax is easy to get used to too.

Cheers,
Eric
-----------------------------------------------------------------------
Please consider the environment before printing this e-mail. Do you really need to print it?



--
-- You received this message because you are subscribed to the Google Groups DIYbio group. To post to this group, send email to diy...@googlegroups.com. To unsubscribe from this group, send email to diybio+un...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/diybio?hl=en
Learn more at www.diybio.org
---
You received this message because you are subscribed to the Google Groups "DIYbio" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diybio+un...@googlegroups.com.
To post to this group, send email to diy...@googlegroups.com.
Visit this group at http://groups.google.com/group/diybio?hl=en.

William Heath

unread,
Apr 18, 2013, 7:32:26 PM4/18/13
to diy...@googlegroups.com
As a Computer Scientist and full time software engineer I would recommend python if your new to programming and perl if your an advanced programmer.

-Tim
Reply all
Reply to author
Forward
0 new messages