Supplementary Material
Optimal Design for U-bent Fiber-Optic LSPR Sensor Probes
Jitendra Satija1, Nirmal Suresh Punjabi1, V. V. R. Sai2, Soumyo Mukherji1,3,4,*
1 WRCBB, Department of Biosciences and Bioengineering, IIT Bombay, Mumbai 400 076, India.
2 Department of Applied Mechanics, IIT Madras, Chennai 600 036, India.
3 Centre of Excellence for Nanoelectronics, IIT Bombay, Mumbai 400 076, India.
4 Centre for Research in Nanotechnology and Science, IIT Bombay, Mumbai 400 076, India
* Corresponding author: ; Tel: +91 22 2576 7767; Fax: +91 22 2572 3480
S1. Gold Nanoparticles Synthesis
All the glassware were cleaned with freshly prepared aqua regia (HCl/HNO3, 3:1) and rinsed thoroughly with DI water. A 5 μL of gold chloride solution (HAuCl4) was added to 48.6mL of DI water and heated until it began to boil. Further, 1.38 mL of aqueous solution of trisodium citrate dihydrate (concentration 4 mg/mL) was added as soon as boiling commenced. Heating was continued until the solution turned deep red in color. Then the solution was removed from the hot plate and allowed to cool to room temperature. GNPs were characterized by UV-Visible spectroscopy and transmission electron microscopy (TEM).
Fig. S1 UV absorbance spectra of gold nanoparticles synthesized by using Turkevich’s method.
Fig. S2 TEM image (a) and histogram (b) of gold nanoparticles synthesized by using Turkevich’s method.
Fig. S3 Real-time response observed at 535 nm due to binding of GNP to the fiber-optic probe of bend diameter of 1.5 mm. GNP were introduced in flow cell at time t1 while the GNP binding was stopped by flushing GNP with DI water in flow cell at time t2.
S2: Interparticle Distance Measurement in SEM Image
S2.1 Matlab Code used for SEM Image Modification
This code was used to convert the SEM image into binary image (black and white) before particle counting and interarticle distance measurement. The particles are represented by white color and the rest in black. This modification of the image helps in the counting process of the particles and finding their centorid. Also the bottom region having details of parameters (e.g. scale bar, working distance, mode of SEM, etc.) was removed using this code.
First, for the given image, histogram is plotted. In the histogram, two lobes are formed. The left lobe distribution corresponds to the black side and the right lobe to the white. The point of intersection of these lobes is considered as the threshold for converting the image to black and white. Once the image is converted to black and white, the unwanted sections of the image are cropped appropriately.
clc;
close all;
clear all;
A=imread('G:\Others\Jitendra\Work 2\Images\New FolderSelected images for SEM analysis\9_2.0.jpg');
figure;
imshow(A);
figure;
imhist(A); % plotting the histogram
[M,N]=size(A);
for i=1:M
for j=1:N
if (A(i,j)>=80) % deciding the threshold from the histogram
A(i,j)=255;
else
A(i,j)=0;
end
end
end
B=A(1:955,1:1280);
figure;
imshow(A);
title('Raw');
figure;
imshow(B);
title('Cropped');
% Saving the modified and cropped image as a new bit map file.
imwrite(B, 'G:\Others\Jitendra\Work 2\Images\New FolderSelected images for SEM analysis\9_2.0_modified.bmp');
S2.2 Counting of nanoparticles in SEM image
This code was used to calculate total number of nanoparticles and centre to centre distance among all the nanoparticles in the modified SEM image after processing as explained in section S2.1 (Fig. S4). The aim is to reduce every particle in the image to a single pixel. In order to do so, erosion of the image is done using a circular element that is around (but less) than the size of particles in the image. After erosion, the particles are reduced to a bunch of pixels. By finding the centroid of the bunch of pixels corresponding to a particle, the particle is reduced to a pixel. To find the centroid, a line is computed that cuts the bunch of pixels almost half horizontally and vertically. The point of intersection of the two lines is considered as the centroid. Hence, the centroid becomes the center of the particle under consideration. A raster scan is performed across the image to count the number of centroids. As mentioned before, each centroid accounts for a particle in the image (Fig. S5).
Fig. S4: Algorithm used for nanoparticle counting and centre to centre distance measurement among the immobilized particles in SEM image of GNP coated optical fiber probe.
Fig. S5 SEM image of GNP immobilized optical fiber probe a) before any modification and b) after modification using MATLAB program. Red dots in image b represent the particles counted by MATLAB program.
clc;
close all;
clear all;
sqr=3; % Variable that decides the number of neighbouring pixels taken
% into account. Here, it is 3 by 3 matrix, taking into account
% all the pixels surrounding the pixel of reference.
A=imread('G:\Others\Jitendra\Work 2\Images\New FolderSelected images for SEM analysis\9_2.0_modified.bmp');
A=logical(A);
A=double(A);
[M,N]=size(A); % M and N stand for the number of rows and coloumns of the image
ele = strel('disk',5); % This command generates a 9 by 9 matrix that resembles a circle that is about the size but smaller than the size of a particle in the image. The size of the matrix requires to be changed with the size of the particles.
C=imerode(A,ele); % This command erodes the given image
A=[zeros(sqr,N);A;zeros(sqr,N)];
A=[zeros(M+2*sqr,sqr) A zeros(M+2*sqr,sqr)];
C=[zeros(sqr,N);C;zeros(sqr,N)];
C=[zeros(M+2*sqr,sqr) C zeros(M+2*sqr,sqr)];
C=C.*0.5; % The presence of a particle is represented as a value equal to 0.5 in the image. This has been done in order to make the counting of particles easier.
figure(1);
imshow(C);
hold on;
[M,N]=size(C);
CountVal=0;
for i=sqr+1:M-sqr % this loop numbers distinguishes the bunch of pixels
for j=sqr+1:N-sqr % corresponding to every particle and numbers them.
if (C(i,j)>0)
k(:,:)=C(i-sqr:i+sqr,j-sqr:j+sqr);
[k,CountVal,count]=CellCount(k,CountVal,sqr);
C(i-sqr:i+sqr,j-sqr:j+sqr)=k;
end
end
end
%------finding the centroid ------
figure(2);
imshow(A);
hold on;
for ct=1:CountVal % This loop find the horizontal and vertical middle
clear ii; % lines for every bunch of pixels and finds the
clear jj; % point of intersection. This point of intersection
n=1; % is considered as the centroid.
for i=1:M
for j=1:N
if (C(i,j)==ct)
ii(n)=i;
jj(n)=j;
n=n+1;
end
end
end
i1=min(ii);
i2=max(ii);
j1=min(jj);
j2=max(jj);
ci(ct)=ceil((i1+i2)/2);
cj(ct)=ceil((j1+j2)/2);
plot(cj(ct),ci(ct),'r.');
end
%------finding the interparticle distance ------
D=zeros(CountVal,CountVal);
for m=1:CountVal % This loop finds the interparticle distance and forms
for n=1:CountVal % array
if (m==n)
D(m,n)=0;
else
D(m,n)=sqrt(((ci(m)-ci(n))^2)+((cj(m)-cj(n))^2));
end
end
end
%------writing the interparticle distance ------
filename='G:\Others\Jitendra\Work 2\Images\New FolderSelected images for SEM analysis\TextFiles\9_2.0.txt';
fid=fopen(filename,'w');
fprintf(fid,'Number of Particles : %d\t\n\n',CountVal);
for i=1:CountVal
fprintf(fid,'%f\t',D(i,:));
fprintf(fid,'\n');
end
fclose('all');
%----- writing the interparticle distance (sorted)------
[M,N]=size(D);
CountVal=M;
for i=1:CountVal
Arr=D(i,:);
Dsort(i,:)=sort(Arr);
end
filename='G:\Others\Jitendra\Work 2\Images\New FolderSelected images for SEM analysis\TextFiles\9_2.0_sorted.txt';
fid=fopen(filename,'w');
fprintf(fid,'Number of Particles : %d\t\n\n',CountVal);
for i=1:CountVal
fprintf(fid,'%f\t',Dsort(i,:));
fprintf(fid,'\n');
end
fclose('all');
%------
function [k,Ncount,count]=CellCount(k,Ncount,sqr)
flag=0; % This variable marks whether a particle has already been
for i=1:2*sqr+1 % counted or not
for j=1:2*sqr+1
if ((k(i,j)~=0.5)&(k(i,j)~=0)) % When count is not new
count=k(i,j);
flag=1;
break;
end
end
if (flag==1)
break;
end
end
if (flag==0)
count=Ncount+1;
Ncount=count;
end
for i=1:2*sqr+1
for j=1:2*sqr+1
if (k(i,j)>0)
k(i,j)=count;
end
end
end
------Program end ------
Fig. S6 Dependence of RI sensitivity (ΔA535nm/RIU) of GNP immobilized U-bent fiber-optic probes of a) 400 µm and b) 600 µm core.