getSumreplicates <-
function(curdata,alignment.tool,numreplicates,numcluster,rep.max.missing.thresh,summary.method="mean",summary.na.replacement="zeros",missing.val=0)
{
mean_replicate_difference<-{}
sd_range_duplicate_pairs<-{}
#print(alignment.tool)
if(alignment.tool=="apLCMS")
{
col_end=2
}
else
{
if(alignment.tool=="XCMS")
{
col_end=2
}
else
{
stop(paste("Invalid value for alignment.tool. Please use either \"apLCMS\" or \"XCMS\"", sep=""))
}
}
curdata_mz_rt_info=curdata[,c(1:col_end)]
curdata=curdata[,-c(1:col_end)]
cl<-makeCluster(numcluster)
numfeats=dim(curdata)[1]
numsamp=dim(curdata)[2]
clusterEvalQ(cl, "getSumreplicateschild")
sub_samp_list<-list()
sampcount=1
for(samp in seq(1,(numsamp),numreplicates))
{
i=samp
j=i+numreplicates-1
if(dim(curdata[,c(i:j)])[1]>0){
sub_samp_list[[sampcount]]=curdata[,c(i:j)]
}
sampcount=sampcount+1
}
avg.res<-parSapply(cl,sub_samp_list,getSumreplicateschild,alignment.tool=alignment.tool,numreplicates=numreplicates,rep.max.missing.thresh=rep.max.missing.thresh,method=summary.method,missing.val=missing.val)
#avg.res<-getAvgreplicateschild(sub_samp_list[[1]],alignment.tool,numreplicates)
#print("done")
stopCluster(cl)
final_set<-as.data.frame(avg.res)
colnames_data<-colnames(curdata)
colnames_data<-colnames_data[seq(1,(numsamp),numreplicates)]
colnames(final_set)<-colnames_data
rownames(final_set)=NULL
#final_set<-cbind(curdata_mz_rt_info,final_set)
final_set<-apply(final_set,2,as.numeric)
if(summary.na.replacement=="zeros"){
final_set<-replace(final_set,which(is.na(final_set)==TRUE),0)
}else{
if(summary.na.replacement=="halfsamplemin"){
final_set<-apply(final_set,2,function(x){naind<-which(is.na(x)==TRUE); if(length(naind)>0){x[naind]<-min(x,na.rm=TRUE)/2}; return(x)})
}else{
if(summary.na.replacement=="halfdatamin"){
min_val<-min(final_set,na.rm=TRUE)*0.5
final_set<-replace(final_set,which(is.na(final_set)==TRUE),min_val)
#data_m<-apply(data_m,1,function(x){naind<-which(is.na(x)==TRUE); if(length(naind)>0){x[naind]<-min(x,na.rm=TRUE)/2}; return(x)})
}else{
if(summary.na.replacement=="halffeaturemin"){
final_set<-apply(final_set,1,function(x){naind<-which(is.na(x)==TRUE); if(length(naind)>0){x[naind]<-min(x,na.rm=TRUE)/2}; return(x)})
final_set<-t(final_set)
}
}
}
}
return(final_set)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.