CMCI weblog
ImageJ Macro Fragments
Some notes on ImageJ macro
Getting the number of Cores
th = eval("script","Runtime.getRuntime().availableProcessors();"); print(th);
Loading ROIs from a file in Internet
shell command “curl” should be available in your local machine. See here for installation.
run("Blobs (25K)"); path = getDirectory('imagej')+"RoiSet.zip"; print(path) exec("curl", "-LJO", "https://github.com/mutterer/weird/raw/master/RoiSet.zip", "--output", path); roiManager("Open",path); roiManager("Show All"); File.delete(path);
Getting Pixel Coordinates within a Polygon ROI
Roi.getContainedPoints(xps, yps); for(i=0; i<xps.length; i++) { xpos = xps[i]; ypos = yps[i]; pixval = getPixel(xpos, ypos); print("("+ xpos + ", " + ypos + ") ", pixval); }
Ways of getting the file basename
filepath = "/my/path/to/great_image.tif"; //Method 1, string indexing basename = substring(filepath, lastIndexOf(filepath, "/")+1, lastIndexOf(filepath, ".")); print("Method 1: ", basename); //Method 2, regular expression basename = replace(filepath, "(.*\\/)(.*)\\..{3,5}$", "$2"); print("Method 2: ", basename); //... in this case, it's also possible to get the parent directry just with a small modification parent = replace(filepath, "(.*\\/)(.*)\\..{3,5}$", "$1"); print(".... parent: ", parent); //Method 3, use a specific command //from ver. 1.52r basename = File.getNameWithoutExtension(filepath); print("Method 3: ", basename); //... it's also possible to get the parent directory with a command. parent = File.getDirectory(filepath); print(".... parent: ", parent);
Convert black pixels to white in RGB image
for (j =0; j<getHeight();j++){ for (i=0; i<getWidth();i++){ pix = getPixel(i, j); sum = sumRGB(pix); if (sum == 0){ setPixel(i, j, 0xffffff); } } } function sumRGB(RGBpixval){ sum = getR(pix) + getG(pix) + getB(pix); return sum; } function getR(RGBpixval){ rf = (RGBpixval & 0xff0000)>>16; return rf; } function getG(RGBpixval){ gf = (RGBpixval & 0x00ff00)>>8; return gf; } function getB(RGBpixval){ bf = (RGBpixval & 0x0000ff); return bf; }
Server moved
The web server hosting this wiki has moved from EMBL to InMotion. The move was rather straight forward, but as biii.info is in the subdomain, htaccess file was tweaked around to enable biii.info to stay as it is while moving only the wiki to be redirected from cmci.embl.de to cmci.info.
Anycase, InMotion seems to be fast enough for rendering (even though it's in US).
Nature Physics Sept. 2013 Cover Page
The ImageJ plugin "Temporal-Color Code" was used for the analysis of the contraction of actomyosin gel and now in the cover page of Nature Physics, September 2013 issue. D. L. Taylor's “Solation-Contraction Coupling” hypothesis now on the move.
http://www.nature.com/nphys/journal/v9/n9/full/nphys2715.html
Thanks to José Alvarado for his kind acknowledgement and a big applause for his successful publication!
To be in R programming course
I do write some scripts in R but not really serious programming. As I am interested in advanced use of R, I will be in the following course organized by Wolfgang Huber.
http://www-huber.embl.de/courses/2013-advR/
The course seems to match with my stage, as it explains
This course is designed for users who have experience with writing R scripts, and who now want to advance one step further, into producing more durable and robust software projects and code that is usable by others.
As I always have had a plan to migrate FRAPcalc program from IgorPro to R and also add some more functionalities, this course should be the one I should attend… I thank Wolfgang for his initiative in making this course available. Besides, I am happy to see another EMBL centre being active!
BIAS 2013 wiki page
There will be “EMBL Master course on BioImage Data Analysis” in May, and I am preparing for this course with Christoph Moehl (Bonn) and Sebastien Tosi (Barcelona). For the course we want to be interactive so we now have a wiki for the course:
http://cmci.embl.de/shared/bias2013
We abbreviate the course title “BIAS 2013”. Registration deadline is in February, and we will be waiting for many applications!