Skip to content

Instantly share code, notes, and snippets.

@Yu-AnChen
Last active August 10, 2018 18:15
Show Gist options
  • Save Yu-AnChen/c51c44d50033e55ddddc66c870072be1 to your computer and use it in GitHub Desktop.
Save Yu-AnChen/c51c44d50033e55ddddc66c870072be1 to your computer and use it in GitHub Desktop.
Read .rcpnl and output 4 channel tif with subsetting capibility
// Save color hyperstack into individual tiff(4ch) & Montage with Flat-field
// 20161210 Jerry Lin
myDIR2 = getDirectory("Please enter directory");
myname = getString("Please enter image name","Tonsil1");
cs = getNumber("Enter start cycle:",0);
ce = getNumber("Enter end cycle:",12);
//myDIR2 = myDIR2+"\\";
//mycycle = getString("Please enter the Cycle","4");
//mycycle = "Cycle"+mycycle;
//myDIR = "F:\\"+myname+"\\"+mycycle+"\\";
//myDIR2 = "F:\\"+myname+"\\";
cols= getNumber("Please enter cols:", 32);
rows = getNumber("Please enter rows:",10);
ch = getNumber("Please enter channels:",4);
startT = getTime;
setBatchMode(true);
for(cyc = cs;cyc<=ce;cyc++){
print("Now processing Cycle "+cyc+"....");
mycycle = "Cycle"+cyc;
myDIR = myDIR2+"\\";
run("Bio-Formats", "open="+myDIR2+mycycle+".rcpnl color_mode=Composite concatenate_series open_all_series view=Hyperstack stack_order=XYCZT");
//rname & making folder
rename(myname);
File.makeDirectory(myDIR);
// Background substraction & splitting channels
// run("Subtract Background...", "rolling=50 sliding disable");
run("Flip Vertically");
name=getTitle;
print ("open file:"+myname+"Cycle"+cyc+" time ="+(getTime-startT)/100);
// Making montage & save image
// run("Make Montage...", "columns="+cols+" rows="+rows+" scale=0.20 increment=1 border=0 font=12");
// rename("Montage-"+myname+"-"+mycycle);
// run("Save", "save="+myDIR2+"Montage-"+myname+"-"+mycycle+".tif");
// close();
//---------------------------------START SAVING TIF FILES-----------------------
selectWindow(myname);
name = getTitle;
n = nSlices;
imagesPerRow = cols*4;
//ch =4;
j=0;
numOfCol = 10;
for (k=0; k<numOfCol; k++) {
currentRow = k;
currentRowStartingSlideNum = k*imagesPerRow;
print("current row = " + k);
// +40 to move to a more interesting region
// +4 to generate the even tile
// +0 to generate the odd tile
for (i=1+40+0; i<ch*2*numOfCol-1+40+0; i=i+ch*2) {
selectWindow(name);
currentSliceNumber = i + currentRowStartingSlideNum;
setSlice(currentSliceNumber);
print("current Cycle "+cyc+" slice ="+currentSliceNumber);
run("Duplicate...", "title="+name+"-"+j);
outputFName = name+"-"+"row"+IJ.pad(k+1, 3)+"_col"+IJ.pad(j%numOfCol+1, 3)+".tif";
print(outputFName);
run("Save", "save=" + myDIR + outputFName);
selectWindow(outputFName);
run("Close");
j++;
} //end i;
} //end k;
close();
print ("Saving image files:"+myname+"Cycle"+cyc+" time ="+(getTime-startT)/1000);
} //end cyc;
setBatchMode(false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment