get_peak_blocks_cor <-
function(dataA, max.rt.diff=10, alignment.tool="apLCMS", clust.method="correlation",cor.method="pearson",corthresh=0.7,corpvaluethresh=0.05,time_step=3,mult.test.cor=FALSE)
{
diff_mz_num=1
unique_mz={}
ppm_v={}
rt_v={}
cnames=colnames(dataA)
dataA<-as.data.frame(dataA)
#dataA<-as.data.frame(dataA,2,as.numeric)
if(alignment.tool=="apLCMS")
{
sample.col.start=2
}
else
{
if(alignment.tool=="XCMS")
{
sample.col.start=2
cnames[1]="mz"
cnames[2]="time"
colnames(dataA)=cnames
}
else
{
sample.col.start=3
cnames[1]="mz"
cnames[2]="time"
colnames(dataA)=cnames
#stop(paste("Invalid value for alignment.tool. Please use either \"apLCMS\" or \"XCMS\"", sep=""))
}
}
if(clust.method=="correlation"){
cl<-makeCluster(10)
#clusterExport(cl, "getCorchild")
#goodfeats[mnum,-c(1:2)]),data_mt
#system.time(pearson_res<-parRapply(cl,dataA[,-c(1:sample.col.start)],getCorchild,t(dataA[,-c(1:sample.col.start)]),cor.method))
#stopCluster(cl)
pearson_resmat<-{}
#return(list(cormat=cormat,complete_pearsonpvalue_mat=complete_pearsonpvalue_mat,complete_pearsonqvalue_mat=complete_pearsonqvalue_mat))
pearson_Res_all<-{}
cormat<-WGCNA::cor(t(dataA[,-c(1:sample.col.start)]), use = 'p')
cormat<-as.data.frame(cormat)
cormat<-as.matrix(cormat)
cor_list<-{}
cormat<-cor2pcor(cormat)
cor_groups<-new("list")
#for(cm in 1:dim(cormat)[1]){
cor_groups<-lapply(1:dim(cormat)[1],function(cm){
corind_list=new("list")
cor_ind<-which(cormat[,cm]>=corthresh)
corind_list[[diff_mz_num]]=cor_ind #dataA[getbind_same,]
diff_mz_num=diff_mz_num+1
return(corind_list)
})
cor_group_list<-{}
#
for(m in 1:length(cor_groups)){
if((m%in%cor_group_list)==FALSE){
for(n in (m+1):length(cor_groups)){
if(n>length(cor_groups)){
break;
}
com1<-intersect(cor_groups[[m]][[1]],cor_groups[[n]][[1]])
if(length(com1)>0){
cor_groups[[m]][[1]]<-c(cor_groups[[m]][[1]],cor_groups[[n]][[1]])
cor_groups[[m]][[1]]<-unique(cor_groups[[m]][[1]])
cor_group_list<-c(cor_group_list,n)
cor_groups[[n]][[1]]<-c(0)
}
}
cor_groups[[m]][[1]]<-unique(cor_groups[[m]][[1]])
}
}
if(length(cor_group_list)>0){
cor_groups<-cor_groups[-cor_group_list]
}
diffmat<-{}
cor_groups<-unique(cor_groups)
levelAnum<-1
for(m in 1:length(cor_groups)){
if((m%in%cor_group_list)==FALSE){
cur_group_ind<-unique(cor_groups[[m]][[1]])
cur_group<-dataA[cur_group_ind,]
cur_group<-cbind(levelAnum,cur_group)
diffmat<-rbind(diffmat,cur_group)
levelAnum<-levelAnum+1
}
}
#cor.test(as.numeric(cur_group[1,-c(1:10)]),as.numeric(cur_group[10,-c(1:10)]))
}else{
if(clust.method=="wgcna"){
levelAnum<-mlabels$colors
diffmat<-cbind(levelAnum,dataA)
diffmat<-diffmat[order(diffmat$levelAnum),]
for(m1 in mlabels){
subdata<-diffmat[which(mlabels==m1),]
}
}
}
#b1<-hist(diffmat$time,breaks=seq(0,max(diffmat$time),max.rt.diff))
diffmat<-as.data.frame(diffmat)
mod_list<-diffmat$levelAnum
t1<-table(mod_list)
mod_names<-names(t1)
mod_names<-as.numeric(mod_names)
time_mult_fact<-1
diffmatC<-{}
#t1<-seq(from=1,to=max(dataA$time),by=time_step/2)
#t1<-hist(subdata$time,breaks=seq(from=1,to=max(subdata$time),by=10/2))
# sigma<-min(sd(subdata$time),(quantile(subdata$time)[4]-quantile(subdata$time)[2])/1.34)
#s1<-min(sqrt(var(x)), h)
#bw1<-1.06 * sigma * length(subdata$time)^(-1/5)
d1<-density(dataA$time,bw="nrd",from=min(dataA$time),to=(10+max(dataA$time)))
time_step<-abs(d1$x[1]-d1$x[time_step+1])
t1<-d1$x
time_step<-1*time_step
diffmatB<-{}
for(i in 1:length(mod_names)){
#groupB_res<-sapply(1:length(mod_names),function(i){
groupA_num<-mod_names[i]
subdata<-dataA[which(m2$colors==groupA_num),]
subdata<-subdata[order(subdata$time),]
groupB<-group_by_rt(subdata,time_step,max.rt.diff=max.rt.diff,groupnum=groupA_num)
diffmatB<-rbind(diffmatB,groupB)
}
return(diffmatB)
#return(diffmat)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.