FIJI (software)
Encyclopedia
Fiji is an Open Source image processing package based on ImageJ
ImageJ
ImageJ is a public domain, Java-based image processing program developed at the National Institutes of Health. ImageJ was designed with an open architecture that provides extensibility via Java plugins and recordable macros. Custom acquisition, analysis and processing plugins can be developed using...

.

Fiji's main purpose is to provide a distribution of ImageJ with many bundled plugins. As with Ubuntu, Fiji has an integrated updating system. A further goal of Fiji is to provide users with a coherent menu structure, extensive documentation in the form of detailed algorithm descriptions and tutorials, and the ability to avoid the need to install multiple components from different sources.

Fiji is also targeted at developers, through the use of a version control system
Git (software)
Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...

, an issue tracker, dedicated development channels and a rapid-prototyping infrastructure in the form of a script editor which supports BeanShell
BeanShell
BeanShell is a Java scripting language, invented by Patrick Niemeyer. It runs in the Java Runtime Environment and uses Java syntax, in addition to scripting commands and syntax.- Features :...

, Jython
Jython
Jython, successor of JPython, is an implementation of the Python programming language written in Java.-Overview:Jython programs can seamlessly import and use any Java class. Except for some standard modules, Jython programs use Java classes instead of Python modules...

, JRuby
JRuby
JRuby is a Java implementation of the Ruby programming language, being developed by the JRuby team. It is free software released under a three-way CPL/GPL/LGPL license...

 and other scripting languages, as well as Just-In-Time
Just-in-time compilation
In computing, just-in-time compilation , also known as dynamic translation, is a method to improve the runtime performance of computer programs. Historically, computer programs had two modes of runtime operation, either interpreted or static compilation...

 Java development.

Plugins

Many plugins exist for ImageJ, with a wide range of applications, but also a wide range of quality.

Further, some plugins require specific versions of ImageJ, specific versions of third-party libraries, or additional Java components such as the Java compiler or Java3D.

One of Fiji's principal aims is to make the installation of ImageJ, Java, Java 3D
Java 3D
Java 3D is a scene graph-based 3D application programming interface for the Java platform. It runs atop either OpenGL or Direct3D. Since version 1.2, Java 3D has been developed under the Java Community Process....

, the plugins, and further convenient components, as easy as possible. As a consequence, Fiji enjoys more and more active users.

Audience

While Fiji was originally intended for neuro-scientists (and continues to do so), it accumulated enough functionality to attract scientists from a variety of fields, such as cell biology, parasitology, genetics, life sciences in general, material science, etc.

Fiji is most popular in the Life sciences
Life sciences
The life sciences comprise the fields of science that involve the scientific study of living organisms, like plants, animals, and human beings. While biology remains the centerpiece of the life sciences, technological advances in molecular biology and biotechnology have led to a burgeoning of...

 community, where the 3D Viewer helps visualizing data obtained through light microscopy, and for which Fiji provides registration
Image registration
Image registration is the process of transforming different sets of data into one coordinate system. Data may be multiple photographs, data from different sensors, from different times, or from different viewpoints. It is used in computer vision, medical imaging, military automatic target...

, segmentation
Segmentation (image processing)
In computer vision, segmentation refers to the process of partitioning a digital image into multiple segments . The goal of segmentation is to simplify and/or change the representation of an image into something that is more meaningful and easier to analyze...

 and other advanced image processing algorithms.

The Fiji component TrakEM2 was successfully used and enhanced to analyze neuronal lineages
Neuron
A neuron is an electrically excitable cell that processes and transmits information by electrical and chemical signaling. Chemical signaling occurs via synapses, specialized connections with other cells. Neurons connect to each other to form networks. Neurons are the core components of the nervous...

 in larval Drosophila
Drosophila melanogaster
Drosophila melanogaster is a species of Diptera, or the order of flies, in the family Drosophilidae. The species is known generally as the common fruit fly or vinegar fly. Starting from Charles W...

 brains.

Fiji was prominently featured in Nature Methods review supplement on visualization

Development

Fiji is fully Open Source; its sources live in a Git
Git (software)
Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...

 repository (see the homepage for details).

Fiji was accepted as organization into the Google Summer of Code
Google Summer of Code
The Google Summer of Code is an annual program, first held from May to August 2005, in which Google awards stipends to hundreds of students who successfully complete a requested free or open-source software coding project during the summer...

 2009, and completed two projects.

The scripting framework, which supports Javascript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

, Jython
Jython
Jython, successor of JPython, is an implementation of the Python programming language written in Java.-Overview:Jython programs can seamlessly import and use any Java class. Except for some standard modules, Jython programs use Java classes instead of Python modules...

, JRuby
JRuby
JRuby is a Java implementation of the Ruby programming language, being developed by the JRuby team. It is free software released under a three-way CPL/GPL/LGPL license...

, Clojure
Clojure
Clojure |closure]]") is a recent dialect of the Lisp programming language created by Rich Hickey. It is a general-purpose language supporting interactive development that encourages a functional programming style, and simplifies multithreaded programming....

, BeanShell
BeanShell
BeanShell is a Java scripting language, invented by Patrick Niemeyer. It runs in the Java Runtime Environment and uses Java syntax, in addition to scripting commands and syntax.- Features :...

 and other languages, is an integral part of the development of Fiji; many developers prototype their plugins in one of the mentioned scripting languages, and gradually turn the prototypes into proper Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 code. To this end, as one of the aforementioned Google Summer of Code projects, a script editor was added with syntax highlighting and in-place code execution.

The scripting framework is included in the Fiji releases, so that advanced users can use such scripts in their common workflow.

The development benefits from occasional hackathon
Hackathon
A hackathon, a hacker neologism, is an event when programmers meet to do collaborative computer programming. The spirit of a hackathon is to collaboratively build programs and applications. Hackathons are typically between several days and a week in length...

s, where life scientists with computational background meet and improve their respective plugins of interest.

Script Editor

The script editor in Fiji supports rapid prototyping of scripts and ImageJ plugins, making Fiji a powerful tool to develop new image processing algorithms and explore new image processing techniques with ImageJ.

Supported platforms

Fiji runs on Windows, Linux and MacOSX, Intel 32-bit or 64-bit (not yet Itanium), with limited support for MacOSX/PPC.

External links

  • Official Fiji homepage
  • ImageJ2, a closely related project that will provide the new central piece (fully backwards-compatible to ImageJ
    ImageJ
    ImageJ is a public domain, Java-based image processing program developed at the National Institutes of Health. ImageJ was designed with an open architecture that provides extensibility via Java plugins and recordable macros. Custom acquisition, analysis and processing plugins can be developed using...

    ) of Fiji in the near future
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK