-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSplit Files Batch.ijm
81 lines (65 loc) · 2.06 KB
/
Split Files Batch.ijm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
dir = getDirectory("Choose Directory");
dirList = getFileList(dir);
setBatchMode(false);
for (i=0; i<dirList.length; i++) {
currentDir = dirList[i];
fileList = getFileList(dir+dirList[i]);
showProgress(i+1, dirList.length);
Dialog.create("Parameters");
Dialog.addString("Imaging interval","3s");
Dialog.addNumber("# of Channels:",2);
Dialog.addNumber("Split at frame:",200);
Dialog.show();
interval = Dialog.getString();
ch=Dialog.getNumber();
splitAt=Dialog.getNumber();
splitAt=splitAt*ch;
for (j=0; j<fileList.length; j++) {
if (endsWith(fileList[j],"/")) {
continue;
} else {
log(""+dirList[i]+fileList[j]);
open(""+dirList[i]+fileList[j]);
imageName=getInfo("image.filename");
imageDir=getInfo("image.directory");
cellnum=j+1;
totSlices=nSlices;
run("Duplicate...","title=baseline , duplicate range=1-"+splitAt);
selectWindow(imageName);
splitAt=splitAt+1;
run("Duplicate...", "title=treatment , duplicate range="+splitAt+"-"+totSlices);
selectWindow(imageName);
close();
outputDirBaseline=imageDir+"Baseline/";
outputDirTreatment=imageDir+"Treatment/";
File.makeDirectory(outputDirBaseline);
File.makeDirectory(outputDirTreatment);
selectWindow("baseline");
splitStack("baseline",outputDirBaseline+"Cell"+cellNum+"_"+interval+"/",ch);
selectWindow("treatment");
splitStack("treatment",outputDirTreatment+"Cell"+cellNum+"_"+interval+"/",ch);
}
}
setBatchMode(false);
showMessage("Fin!")
function splitStack(stackName,targetDir,ch) {
run("Stack to Hyperstack...", "order=xyczt(default) channels=" + ch + " slices=1 frames=" + (nSlices/ch) + " display=Grayscale");
run("Split Channels");
File.makeDirectory(targetDir);
for (i=1; i<=ch; i++) {
selectWindow("C" + i + "-" + stackName);
sl=nSlices;
channelDir=targetDir+"/Ch"+i+"/";
File.makeDirectory(channelDir);
for (j=1; j<=sl; j++) {
showProgress((j/sl)+(i/ch));
selectWindow("C" + i + "-" + stackName);
setSlice(j);
run("Duplicate...","title="+j);
saveAs("Tiff",channelDir+j+".tiff");
close();
}
selectWindow("C" + i + "-" + stackName);
close();
}
}