setRepositories(ind=c(1,2))
install.packages("nucim")
library(bioimagetools)
library(nucim)
choose RGB file
img = readTIF(file.choose())
number of slices
slices = dim(img)[4]
we need the dimensions of the image in microns
x = attributes(img)$x.resolution
y = attributes(img)$y.resolution
z = as.numeric(attributes(img)$spacing) * slices
and the dimensions of each voxel
X = x/dim(img)[1]
Y = y/dim(img)[2]
Z = as.numeric(attributes(img)$spacing)
zscale=mean(c(X,Y))/Z
we assume that the third channel is blue, ie, DAPI
blue = img[,,3,]
we mask the kernel
mask = dapimask(blue, c(x,y,z), thresh="auto")
classify the DAPI channel
classes = classify(blue, mask, 7, z=zscale)
count voxel per class
counts <- table.n(classes, 7)
percentages
perc <- print(counts/sum(counts)*100, 1)
barplot(perc, names.arg=1:7, xlab="DAPI intensity class", ylab="percentage")
library(bioimagetools)
library(nucim)
choose one of the files in a folder of RGB files
folder = file.choose()
f = unlist(gregexpr("/",folder))
folder = substr(folder,1,f[length(f)])
scripts can use parallel computing, if available (not under Windows)
nr.cores=ifelse(.Platform$OS.type=="windows", 1, 4)
split channels
splitchannels.folder(folder, rgb.folder="./", cores=nr.cores)
masks
dapimask.folder(folder, cores=nr.cores)
classification
classify.folder(folder, 7, cores=nr.cores)
results will be in folders “class7” and “class7-n”