function PcaPlsPlotPOSandNEG(X,label) % if nargin<1 % load posSerumData2; % pos % load posSerumData205;% pos205 % load negSerumData2; % neg load posSerumData205;X2=X;mz2=mz;load negSerumData2;X=[X,X2]; mz=[-mz;mz2];% pos+neg end clsnamePlot=cell(size(X,1)); %sname % sname=cell(length(label),1); % for i=1:length(label) % sname{i}=num2str(i); % end % % snamePlot=sname; % for i=1:size(X,1) % snamePlot{i}=[' ',sname{i}]; % end % ion_label=cell(length(mz),1); % ion_label2=cell(length(rt),1); for i=1:size(X,2) ion_label{i}=[' ',num2str(round(mz(i)*100)/100)]; % ion_label2{i}=num2str(round(rt(i)*10)/10); end % clsname={'B','A'}; % ------ 删除离群样本 -------- sname_del={''}; % % if length(sname_del)>=1 % isam_del=cellstrfind(sname,sname_del); % sname(isam_del) = []; % X(isam_del,:) = []; % label(isam_del) = []; % end % % ---- 删除变量:在大部分样本中值等于零的变量 --- % xo=2;% 值小于xo的,被认为是零 % ratio_min=0.2;%被入选变量在一类中非零比例的最小限 % 0.17 % [inx_freq X] = freqfilter(X,labelNew,xo,ratio_min);% 只要其中某一类的非o比例大于r,这个变量就被选入 probMIN=0.05; % 此变量是随机变量的概率,概率越小越有意义 %0.6 [vratio,prob] = groupvar(X,label); inx_use = find(prob < probMIN);% 值越大,剩下的变量越多 X= X(:,inx_use); % ---- 预处理 ----- method1='row2ncol'; % method2 = 'logmean';% method2='colnorm';% % method2='colpareto'; X1 = standardize(X,method1,1);Xnew=X1; %size(Xnew) % Xnew = standardize(X1,method2,1); % ---- PCA,PLS ---- models='PCA'; if strcmp(models,'PCA') [Scores,Loads,Eigv,Explained] = linpca(Xnew);Scores=-Scores; % Scores(:,1)=-Scores(:,1); elseif strcmp(models,'PLS') [Scores,Loads,Eigv,Explained] = plsda(Xnew,label,3); end % ----- 画图 ------- MarkerColor = {'m','g','c','r','b','c','k','m','r','b','r','c','y','k'}; MarkerShape = {'^','s','o','d','v','h','^','p','v','.','^','s','v','d'}; snamePlot=cell(size(X,1)); %sname % snamePlot=sname; precision = {'%0.1f','%0.2f'}; SignificantLevel=50; clsnamePlot={'04','10','18','24','24ef'}; npc = [1 2];% [1 2 3] figure(1); scoreplot(Scores(:,npc),label,... 'ClassName',clsnamePlot,...% 'SampleName',snamePlot,...% 'MarkerShape',MarkerShape,...% 'MarkerColor',MarkerColor,... 'NumberPC',npc,... 'Explained',Explained,... 'MarkerSize',6,... 'TextFontSize',12,... 'GcaFontSize',14,... 'LabelFontSize',14,... 'LegendFontSize',14); figure(2); LoadingPlotNew(Loads(:,1:2)); TextFontSize=12; display='off';% off,offText,on significant=0.8;% 0.4 [InxLoad,InxLoadALL] = mspc4(Loads(:,1:2),significant,ion_label,TextFontSize,display); %-------------------------------------------------------------------------- % % clsWrite={'F','M'}; % LabelWrite=label; % InxLoad % X1=X1(:,InxLoad); % rt=rt(InxLoad)'; % [meanX,absdevX,statX,statX1] = statmarker(X1,LabelWrite); % X1=X1'; % [num2str(rt),repmat(' ',size(rt)),statX]