1- % This function provides some preliminary information about the cluster analysis paramters and the dataset
2- function [AxisLimits ,pDeBaCl ]=BeforeStartingAnalyses(DatasetName ,MinClusterSizeHDBSCAN ,MinSamplesHDBSCAN ,hdbscanPersistencyThreshold ,...
3- hdbscanProbabilityThreshold ,kDeBaCl ,gammaDeBaCl ,MassLengthDeBaClThreshold ,...
4- NNNforKNN ,PrefactorDeBaClDensityThreshold ,hdbscanAnalysisTwoTimes ,PrefactForPersistancy ,IgnorePersisInDeBaClanalysis ,...
5- IgnorehdbscanProbabilityThresholdAfterKNNrelabeling )
6-
7- X= importdata(DatasetName );
8- g= figure(1 );
9- if size(X ,2 )==2
10- plot(X(: ,1 ),X(: ,2 ),' k.' ,' MarkerSize' ,2 );
11- pDeBaCl= 2 ;% Dataset is 2D
12- else
13- plot3(X(: ,1 ),X(: ,2 ),X(: ,3 ),' k.' ,' MarkerSize' ,2 );
14- pDeBaCl= 3 ;% Dataset is 3D
15- end
16- xlabel(' X (nm)' )
17- ylabel(' Y (nm)' )
18- zlabel(' Z (nm)' )
19- AxisLimits= [min(X(: ,1 )) max(X(: ,1 ));...
20- min(X(: ,2 )) max(X(: ,2 ));...
21- min(X(: ,3 )) max(X(: ,3 ))];
22- xlim([AxisLimits(1 ,1 ) AxisLimits(1 ,2 )])
23- ylim([AxisLimits(2 ,1 ) AxisLimits(2 ,2 )])
24- zlim([AxisLimits(3 ,1 ) AxisLimits(3 ,2 )])
25- Title= ({' Original Dataset' ;[' Number of atoms in the dataset is ' num2str(size(X ,1 ))]});
26- title(Title )
27- set(gcf ,' Units' ,' Normalized' ,' OuterPosition' ,[0.25 , 0.07 , .65 , .92 ])
28- saveas(g ,' 1_OriginalDatat.tiff' )
29- % saveas(g,'1_OriginalDatat.fig')
30- % close(g)
31-
32- fid1 = fopen(' 0_ParamtersUsedForClusterAnalyses.txt' ,' wt' );
33-
34- fprintf(fid1 , ' %s\t ' , ' DatasetName:' );
35- fprintf(fid1 , ' %s\n ' , DatasetName );
36-
37- fprintf(fid1 , ' %s ' , ' MinClusterSizeHDBSCAN=' );
38- fprintf(fid1 , ' %i\n ' , MinClusterSizeHDBSCAN );
39-
40- fprintf(fid1 , ' %s ' , ' MinSamplesHDBSCAN=' );
41- fprintf(fid1 , ' %i\n ' , MinSamplesHDBSCAN );
42-
43- fprintf(fid1 , ' %s ' , ' hdbscanAnalysisTwoTimes=' );
44- if hdbscanAnalysisTwoTimes
45- fprintf(fid1 , ' %s\n ' , ' true' );
46- else
47- fprintf(fid1 , ' %s\n ' , ' false' );
48- end
49-
50- fprintf(fid1 , ' %s ' , ' PrefactForPersistancy=' );
51- fprintf(fid1 , ' %i\n ' , PrefactForPersistancy );
52-
53- fprintf(fid1 , ' %s ' , ' hdbscanPersistencyThreshold=' );
54- fprintf(fid1 , ' %f\n ' , hdbscanPersistencyThreshold );
55-
56- fprintf(fid1 , ' %s ' , ' hdbscanProbabilityThreshold=' );
57- fprintf(fid1 , ' %f\n ' , hdbscanProbabilityThreshold );
58-
59- % fprintf(fid1, '%s', ' pDeBaCl=');
60- % fprintf(fid1, '%i\n', pDeBaCl);
61-
62- fprintf(fid1 , ' %s ' , ' kDeBaCl=' );
63- fprintf(fid1 , ' %i\n ' , kDeBaCl );
64-
65- fprintf(fid1 , ' %s ' , ' gammaDeBaCl=' );
66- fprintf(fid1 , ' %i\n ' , gammaDeBaCl );
67-
68- fprintf(fid1 , ' %s ' , ' IgnorePersisInDeBaClanalysis=' );
69- if IgnorePersisInDeBaClanalysis
70- fprintf(fid1 , ' %s\n ' , ' true' );
71- else
72- fprintf(fid1 , ' %s\n ' , ' false' );
73- end
74-
75- fprintf(fid1 , ' %s ' , ' MassLengthDeBaClThreshold=' );
76- fprintf(fid1 , ' %f\n ' , MassLengthDeBaClThreshold );
77-
78- fprintf(fid1 , ' %s ' , ' NNNforKNN=' );
79- fprintf(fid1 , ' %i\n ' , NNNforKNN );
80-
81- fprintf(fid1 , ' %s ' , ' PrefactorDeBaClDensityThreshold=' );
82- fprintf(fid1 , ' %f ' , PrefactorDeBaClDensityThreshold );
83-
84- if IgnorehdbscanProbabilityThresholdAfterKNNrelabeling
85- fprintf(fid1 , ' %s ' ,' IgnorehdbscanProbabilityThresholdAfterKNNrelabeling=true' );
86- else
87- fprintf(fid1 , ' %s ' ,' IgnorehdbscanProbabilityThresholdAfterKNNrelabeling=false' );
88- end
89- fclose(fid1 );
90-
1+
2+ % This function provides some preliminary information about the cluster analysis paramters and the dataset
3+ function [AxisLimits ,pDeBaCl ]=BeforeStartingAnalyses(DatasetName ,MinClusterSizeHDBSCAN ,MinSamplesHDBSCAN ,hdbscanPersistencyThreshold ,...
4+ hdbscanProbabilityThreshold ,kDeBaCl ,gammaDeBaCl ,MassLengthDeBaClThreshold ,...
5+ NNNforKNN ,PrefactorDeBaClDensityThreshold ,hdbscanAnalysisTwoTimes ,PrefactForPersistancy ,IgnorePersisInDeBaClanalysis ,...
6+ IgnorehdbscanProbabilityThresholdAfterKNNrelabeling )
7+
8+ X= importdata(DatasetName );
9+ g= figure(1 );
10+ if size(X ,2 )==2
11+ plot(X(: ,1 ),X(: ,2 ),' k.' ,' MarkerSize' ,2 );
12+ pDeBaCl= 2 ;% Dataset is 2D
13+ else
14+ plot3(X(: ,1 ),X(: ,2 ),X(: ,3 ),' k.' ,' MarkerSize' ,2 );
15+ pDeBaCl= 3 ;% Dataset is 3D
16+ end
17+ xlabel(' X (nm)' )
18+ ylabel(' Y (nm)' )
19+ zlabel(' Z (nm)' )
20+ AxisLimits= [min(X(: ,1 )) max(X(: ,1 ));...
21+ min(X(: ,2 )) max(X(: ,2 ));...
22+ min(X(: ,3 )) max(X(: ,3 ))];
23+ xlim([AxisLimits(1 ,1 ) AxisLimits(1 ,2 )])
24+ ylim([AxisLimits(2 ,1 ) AxisLimits(2 ,2 )])
25+ zlim([AxisLimits(3 ,1 ) AxisLimits(3 ,2 )])
26+ Title= ({' Original Dataset' ;[' Number of atoms in the dataset is ' num2str(size(X ,1 ))]});
27+ title(Title )
28+ set(gcf ,' Units' ,' Normalized' ,' OuterPosition' ,[0.25 , 0.07 , .65 , .92 ])
29+ saveas(g ,' 1_OriginalDatat.tiff' )
30+ % saveas(g,'1_OriginalDatat.fig')
31+ % close(g)
32+
33+ fid1 = fopen(' 0_ParamtersUsedForClusterAnalyses.txt' ,' wt' );
34+
35+ fprintf(fid1 , ' %s\t ' , ' DatasetName:' );
36+ fprintf(fid1 , ' %s\n ' , DatasetName );
37+
38+ fprintf(fid1 , ' %s ' , ' MinClusterSizeHDBSCAN=' );
39+ fprintf(fid1 , ' %i\n ' , MinClusterSizeHDBSCAN );
40+
41+ fprintf(fid1 , ' %s ' , ' MinSamplesHDBSCAN=' );
42+ fprintf(fid1 , ' %i\n ' , MinSamplesHDBSCAN );
43+
44+ fprintf(fid1 , ' %s ' , ' hdbscanAnalysisTwoTimes=' );
45+ if hdbscanAnalysisTwoTimes
46+ fprintf(fid1 , ' %s\n ' , ' true' );
47+ else
48+ fprintf(fid1 , ' %s\n ' , ' false' );
49+ end
50+
51+ fprintf(fid1 , ' %s ' , ' PrefactForPersistancy=' );
52+ fprintf(fid1 , ' %i\n ' , PrefactForPersistancy );
53+
54+ fprintf(fid1 , ' %s ' , ' hdbscanPersistencyThreshold=' );
55+ fprintf(fid1 , ' %f\n ' , hdbscanPersistencyThreshold );
56+
57+ fprintf(fid1 , ' %s ' , ' hdbscanProbabilityThreshold=' );
58+ fprintf(fid1 , ' %f\n ' , hdbscanProbabilityThreshold );
59+
60+ % fprintf(fid1, '%s', ' pDeBaCl=');
61+ % fprintf(fid1, '%i\n', pDeBaCl);
62+
63+ fprintf(fid1 , ' %s ' , ' kDeBaCl=' );
64+ fprintf(fid1 , ' %i\n ' , kDeBaCl );
65+
66+ fprintf(fid1 , ' %s ' , ' gammaDeBaCl=' );
67+ fprintf(fid1 , ' %i\n ' , gammaDeBaCl );
68+
69+ fprintf(fid1 , ' %s ' , ' IgnorePersisInDeBaClanalysis=' );
70+ if IgnorePersisInDeBaClanalysis
71+ fprintf(fid1 , ' %s\n ' , ' true' );
72+ else
73+ fprintf(fid1 , ' %s\n ' , ' false' );
74+ end
75+
76+ fprintf(fid1 , ' %s ' , ' MassLengthDeBaClThreshold=' );
77+ fprintf(fid1 , ' %f\n ' , MassLengthDeBaClThreshold );
78+
79+ fprintf(fid1 , ' %s ' , ' NNNforKNN=' );
80+ fprintf(fid1 , ' %i\n ' , NNNforKNN );
81+
82+ fprintf(fid1 , ' %s ' , ' PrefactorDeBaClDensityThreshold=' );
83+ fprintf(fid1 , ' %f ' , PrefactorDeBaClDensityThreshold );
84+
85+ if IgnorehdbscanProbabilityThresholdAfterKNNrelabeling
86+ fprintf(fid1 , ' %s ' ,' IgnorehdbscanProbabilityThresholdAfterKNNrelabeling=true' );
87+ else
88+ fprintf(fid1 , ' %s ' ,' IgnorehdbscanProbabilityThresholdAfterKNNrelabeling=false' );
89+ end
90+ fclose(fid1 );
91+
9192end
0 commit comments