User Tools

Site Tools


documents:101105ij_r_jython

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
documents:101105ij_r_jython [2010/11/04 13:46] – created kotadocuments:101105ij_r_jython [2020/11/26 09:11] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Python <- (ImageJ, R======+======+ ImageJ =======
  
-Analysis using several tools is a powerful way to deal with complex Image data. We often do this, and here is one small example of taking advantages of ImageJ and R at the same time. +Analysis using several tools is a powerful way to deal with complex Image data. We often do this, and here is one small example of taking advantages of ImageJ and R at the same time. There are three ways: 
 + 
 +  - Use R from ImageJ (Rserve) 
 +  - Use ImageJ from R (no description yet) 
 +  - Use ImageJ and R from Jython REPL 
 + 
 +====== 1. Using R from ImageJ via Rserve ====== 
 + 
 +In this example, R functions are used from ImageJ via Rserve using Jython scripting.  
 + 
 +[[http://www.rforge.net/Rserve/doc.html|Rserve]] is a package that you could install from within R. In addition, you need two jar files in the plugin folder of ImageJ/Fiji.  
 + 
 +  * [[http://www.rforge.net/Rserve/files/|Rserve downloads]] 
 + 
 +After the installation, Rserve is an independent program so you could directly start it from the commandline (Rserve is a server that waits for commands, exectutes them and return the output) by: 
 +<code> 
 +R CMD Rserve 
 +</code> 
 + 
 +Then in the Fiji script editor, try the following code: 
 + 
 +<sxh python> 
 +from org.rosuda.REngine.Rserve import RConnection 
 +  
 +c = RConnection() 
 +x = c.eval("R.version.string"
 +print x.asString() 
 +c.close() 
 +</sxh> 
 + 
 +If you see the version number of R printed in the output field, then you are successfully communicating with R from ImageJ. 
 + 
 +[[http://rforge.net/org/doc/|Here is the Javadoc of Rserve]].   
 + 
 +[[http://cmci.embl.de/documents/120206pyip_cooking/python_imagej_cookbook#rmulti-peak_fitting_using_r|Here is an example]] of using multi-peak fitting and shoing the peak positions within the current image.  
 + 
 +====== 2. Using ImageJ from R ====== 
 + 
 +One easy way is to execute a shell command to run ImageJ macro / scripts in R. Such example is well documented in the link below.  
 + 
 +http://stackoverflow.com/questions/18989725/how-can-i-call-execute-an-imagej-macro-with-r 
 + 
 +I have not made any attempt to directly access ImageJ classes from R but here is my advice for an inquiry. There is an R-package "RImageJ" that allows you to use ImageJ commands. Problem is that this package has not been updated since 2010.  
 + 
 +<blockquote> 
 + RImageJ: 
 + 
 +http://romainfrancois.blog.free.fr/index.php?category/R-package/RImageJ 
 + 
 +This basically allows use of methods available in one of the classes in ImageJ called ij.IJ 
 + 
 +http://rsbweb.nih.gov/ij/developer/api/ij/IJ.html 
 + 
 +This class IJ is a kind of utility class with many static methods that allows user to operate on images like ImageJ macro (especially the **run()** method does sort of such).  
 + 
 +Access is limited, but depending on what you want to do, I could maybe advice more.  
 + 
 +Another option is to access at much lower level using rJava: 
 + 
 +http://www.rforge.net/rJava/index.html 
 + 
 +By adding ImageJ to your Java path, it's probably possible to write script in R like Rhino javascript or Jython.  
 + 
 +</blockquote> 
 + 
 +====== 3. Using ImageJ and R from Jython Interactive Interpreter ======
  
 ImageJ classes could be accessed by Jython, a python based java interface. R has rJava (JRI, Java - R Interface). For this reason, one way of using ImageJ functions and R functions in an integrated environment is to use these resources from Jython.  ImageJ classes could be accessed by Jython, a python based java interface. R has rJava (JRI, Java - R Interface). For this reason, one way of using ImageJ functions and R functions in an integrated environment is to use these resources from Jython. 
  
-Do everything from Java is one way, but python-scripting environment is light enough to test many things. After these testings are done, then a serious Java code could be written. +Python-scripting environment is light enough to test many things. After these testings are done, then a serious Java code could be written. 
  
 Here is a trial in win32. All commands will be done from command line. It should basically be similar in other environment.   Here is a trial in win32. All commands will be done from command line. It should basically be similar in other environment.  
Line 66: Line 131:
  
 </sxh> </sxh>
- 
- 
  
documents/101105ij_r_jython.1288878369.txt.gz · Last modified: 2016/05/24 12:46 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki