.packageName <- "AStream"
#line 1 "C:/DOCUME~1/GRR/CONFIG~1/Temp/Rbuild63262927/AStream/R/adduct.search.R"
`adduct.search` <-
function(ftlist, mz.tol = 3e-3, adducts = 0, onlyIsotopes = TRUE, fplot = TRUE){

if (is.data.frame(adducts)){
    info_ad <- list(masses = as.numeric(as.vector(adducts[,1])), labels = as.vector(adducts[,2]))
} else {
    A <-  c(1.007276, 18.033823,22.989218,23.99649,38.963158,39.97043,67.98744,68.99472)
    L <- -c(27.9949,18.0153,17.02655)
    masses  <-  c(L, A)
    labels  <- c("[M-CO]","[M-H2O]","[M-NH3]", 
                "[M+H]","[M+NH4]","[M+Na]","[M+H+Na]","[M+K]","[M+H+K]","[M+NaCOOH]","[M+NaHCOOH]")
    info_ad <- list(masses=masses, labels=labels)
}

if (length(info_ad$labels)!=length(info_ad$masses)){
    cat("ERROR: Labels and masses lengths are not equal...",sep="")
    return()
}

Nfeat <- dim(ftlist$isotopes)[1]
rmv   <- union(ftlist$isotopes[,2],ftlist$isotopes[,3])
rmv   <- sort(rmv)
rmv<-rmv[2:length(rmv)]

index <- which(ftlist$isotopes[,3]!=0)
for (i in 1:length(index)){
    a <- which(ftlist$isotopes[index[i],1]==ftlist$isotopes[,1])
    if (length(a)>1){
        ftlist$isotopes[index[i],1] <- 0
        ftlist$isotopes[a[1],c(3,6)]<- ftlist$isotopes[a[2],c(3,6)]
    }
} 
ftlist$isotopes <- ftlist$isotopes[which(ftlist$isotopes[,1]!=0),]

corr <- ftlist$feature.set
for (i in 1:length(ftlist$feature.set[,1])){
    if (any(ftlist$feature.set[i,1]==rmv) | any(ftlist$feature.set[i,2]==rmv)) corr[i,1] <- 0
} 
corr <- corr[which(ftlist$feature.set[,1]!=0),]

if (onlyIsotopes) g1 <- sort(unique(ftlist$isotopes[,1]))
else g1 <- sort(unique(union(ftlist$feature.set[,1],ftlist$feature.set[,2])))

ftlist$labels <- info_ad$labels
ftlist$masses <- info_ad$masses
mand <- which(ftlist$labels=="[M+H]")
ftlist$masses <- ftlist$masses[setdiff(1:length(ftlist$masses),mand)]-ftlist$masses[mand]
ftlist$labels <- ftlist$labels[setdiff(1:length(ftlist$labels),mand)]

adducts <- matrix(0,length(g1),1+length(ftlist$masses))
k       <- 1
for (i in 1:length(g1)){
    where <- which(corr[,1]==g1[i] | corr[,2]==g1[i])
    if (length(where)>0){
    if (length(where)==1) data <- matrix(corr[where,c(1,2,6)],1,3)
    else data  <- corr[where,c(1,2,6)]
    z     <- which(data[,1]!=g1[i])
    data[z,3] <- -data[z,3]
    data[z,c(1,2)] <- data[z,c(2,1)]
    ms    <- kronecker( matrix(1,length(data[,1]),1) , matrix(ftlist$masses,1,length(ftlist$masses)))
    ds    <- kronecker( matrix(1,1,length(ftlist$masses)) , matrix(data[,3],length(data[,3]),1))
    ds    <- abs(ds-ms) < mz.tol
    adduct<- which(apply(ds,2,sum)==1)
    if (length(adduct)>0){
        adducts[k,1] <- data[1,1]
        for (j in 1:length(adduct)){
            adducts[k,1+adduct[j]]  <- data[which(ds[,adduct[j]]==1),2]
        } 
        k <- k+1
    }}
} 
adducts <- adducts[1:k-1,]
if (length(adducts[1,])>2){
    counts <- apply(adducts[,seq(2,length(adducts[1,]))]!=0,2,sum) 
} else{
    counts <- sum(adducts[,seq(2,length(adducts[1,]))]!=0) 
}
par(las=2)     
if (fplot) barplot(counts, names.arg=ftlist$labels,main="Ion groupping", ylab="#Pairs", cex.names=.7)
par(las=0)
cat("ADDUCT ANALYSIS:\n", sep = "")
cat("\t- M/Z tolerance:\t+/-",mz.tol,"u\n",sep="")
for (i in 1:length(ftlist$labels)) cat("\t- ",counts[i]," ",ftlist$labels[i],"adducts.\n", sep = "")
ftlist$adducts <- adducts

indexes <- sort(ftlist$isotopes[,1])
final   <- matrix(0,length(indexes),5+length(ftlist$labels))
for (i in 1:length(indexes)){
    final[i,1] <- indexes[i]
    a <- which(ftlist$isotopes[,1]==indexes[i])
    if (length(a)>0) final[i,c(2,3,4,5)]<-c(ftlist$isotopes[a,2],ftlist$isotopes[a,5]/ftlist$isotopes[a,4],ftlist$isotopes[a,3],ftlist$isotopes[a,6]/ftlist$isotopes[a,4])
    a <- which(ftlist$adducts[,1]==indexes[i])
    if (length(a)>0) final[i,seq(6,dim(final)[2])]<-ftlist$adducts[a,seq(2,dim(ftlist$adducts)[2])]
}
colnames(final) <- c("C12isotope","C13#1 isotope","C13#1 ratio","C13#2 isotope","C13#2ratio",ftlist$labels)
return(final)
}
#line 1 "C:/DOCUME~1/GRR/CONFIG~1/Temp/Rbuild63262927/AStream/R/compute.count.stats.R"
`compute.count.stats` <-
function(features){

i       <- setdiff(1:length(features$class$class),features$outliers)
class   <- features$class$class[i]
classes <- levels(class)
if (length(classes)!=2) return(0)
counts  <- features$data

group1  <- which(class==classes[1]) 
group2  <- which(class==classes[2])
m1      <- apply(counts[,group1],1,mean)
m2      <- apply(counts[,group2],1,mean)
tf      <- m2 / m1
tv      <- counts[,c(group1,group2)]
tl      <- c(rep(0,length(group1)),rep(1,length(group2)))
ts      <- mt.teststat(tv,tl)
pvalues <- pvalcc(tv,tl,ts)
return(pvalues)
}

pvalcc <- function(X, classlabel, teststat) {

    n1 <- rowSums(!is.na(X[,classlabel == 0]))
    n2 <- rowSums(!is.na(X[,classlabel == 1]))
    A <- sd(t(X[,classlabel == 0]), na.rm = TRUE)^2/n1
    B <- sd(t(X[,classlabel == 1]), na.rm = TRUE)^2/n2
    df <- (A+B)^2/(A^2/(n1-1)+B^2/(n2-1))

    pvalue <- 2 * (1 - pt(abs(teststat), df))
    invisible(pvalue)
}
#line 1 "C:/DOCUME~1/GRR/CONFIG~1/Temp/Rbuild63262927/AStream/R/data.norm.R"
`data.norm` <-
function(datalist, std.outliers = 3, zero.missing = TRUE, min.corr = .75, max.rt = 3, fplot = TRUE){

##########
## INIT ##
##########
datalist$names <- colnames(datalist$data[3:dim(datalist$data)[2]])
mz        <- as.numeric(as.matrix(datalist$data[,1]))
rt        <- as.numeric(as.matrix(datalist$data[,2]))
Nfeature  <- length(rt)
Nsamples  <- ncol(datalist$data)-2
data      <- as.numeric(as.matrix(datalist$data[,3:ncol(datalist$data)]))
nans      <- which(is.nan(data))
data[nans]<- 0
data      <- matrix(data,Nfeature,Nsamples)
for(i in 1:Nfeature) {
   for(j in 1:Nsamples) data[i,j] <- as.numeric(data[i,j])
}
index     <- order(mz)
mz        <- mz[index]
rt        <- rt[index]
data      <- data[index,]
cat("DATASET:\n", sep = "")
cat("","- #Features: ",Nfeature,"\n", sep = "\t")
cat("","- #Samples:  ",Nsamples,"\n", sep = "\t")
cat("","- RT limits: ",paste("[",round(min(rt),2),",",round(max(rt),2),"]"),"\n", sep = "\t")
cat("","- M/Z limits:",paste("[",round(min(mz),2),",",round(max(mz),2),"]"),"\n", sep = "\t")
##############################################
## COUNTS NORMALIZATION & OUTLIER DETECTION ##
##############################################
out    <- norm.counts(datalist$names, data, mz, rt, std.outliers, zero.missing, min.corr, max.rt, fplot)
data   <- data[,out$inp]
colnames(out$corrM) <- c("Index feature 1","Index feature 2","Correlation","%samples","RTdiff","M/Zdiff")
colnames(data)      <- datalist$names[out$inp]
cat("FEATURE PAIRS SELECTION RESULTS:\n", sep = "")
cat("","- MAX RT DIFFERENCE ALLOWED:",max.rt,"\n", sep = "\t")
cat("","- MIN CORRELATION ALLOWED:",min.corr,"\n", sep = "\t")
cat("","- FEATURE PAIRS SELECTED:",dim(out$corrM)[1],"\n", sep = "\t")

return(list(data=data ,class=datalist$class, mz=mz, rt=rt, feature.set=out$corrM, outliers=out$out, scores=out$scores))
}
#line 1 "C:/DOCUME~1/GRR/CONFIG~1/Temp/Rbuild63262927/AStream/R/isotope.search.R"
`isotope.search` <-
function(ftlist, mz.tol = 3e-3, fplot = TRUE){

cat("ISOTOPE ANALYSIS:\n", sep = "")
cat("\t- M/Z tolerance:\t",mz.tol,"u\n", sep = "")
Iso <- c(13.00335 - 12, 2*(13.00335 - 12))
Lab <- c("13C#1/12C-isotope","13C#2/12C-isotope")
pl  <- c("(a) ","(b) ")
cat("\t- C12-isotope m/z:\t",12,"u\n", sep = "")
cat("\t- C13#1-isotope m/z:\t",12+Iso[1],"u\n", sep = "")
cat("\t- C13#2-isotope m/z:\t",12+Iso[2],"u\n", sep = "")

isotopes <- matrix(0,dim(ftlist$feature.set)[1],2*(length(Iso)+1))

for (n in 1:length(Iso)){
    index  <- which( abs(ftlist$feature.set[,6]-Iso[n]) < mz.tol )
    C13C12 <- apply(ftlist$data[ftlist$feature.set[index,2],],1,mean)/apply(ftlist$data[ftlist$feature.set[index,1],],1,mean)
    excl   <- which(C13C12>=1)
    incl   <- which(C13C12<1)
    isotopes[index[incl],1]   <- ftlist$feature.set[index[incl],1]
    isotopes[index[incl],n+1] <- ftlist$feature.set[index[incl],2]
    isotopes[index[incl],2+length(Iso)]   <- apply(ftlist$data[ftlist$feature.set[index[incl],1],],1,mean)
    isotopes[index[incl],n+2+length(Iso)] <- apply(ftlist$data[ftlist$feature.set[index[incl],2],],1,mean)
    mz1    <- ftlist$mz[ftlist$feature.set[index[incl],1]]
    mz2    <- ftlist$mz[ftlist$feature.set[index[excl],1]]
    if (length(mz1)>1){
        model <- lm( as.vector(C13C12[incl]) ~ as.vector(mz1))
        cat("\t- ",Lab[n],":\t",length(incl)," feature pairs\n",sep="")
    } else cat("\t- ",Lab[n],":\t",length(incl)," feature pairs\n",sep="")
    if (fplot){
        if (n==1) ge <- split.screen(c(2,1))
        screen(n)
        plot(ftlist$mz[ftlist$feature.set[index,1]],C13C12,cex=1,col="red",xlab="M/Z",ylab="Intensity Ratio",main=paste(pl[n],Lab[n]," ratios (N=",length(incl)," included)",sep=""))
        points(mz1,C13C12[incl],cex=1,col="blue")
        if (length(mz1)>1){
            x  <- seq(min(mz1),max(mz1),length=100)        
            lines(x,model$coefficients[2]*x+model$coefficients[1],col="black",lwd=2)    
            legend("topright",legend=c("EXCLUDED","INCLUDED","L.R."),col = c(2,4,1),lty = c(0,0,1), cex = .8, pch = c(1,1,-1))
        } else legend("topright",legend=c("EXCLUDED","INCLUDED"),col = c(2,4),lty = c(0,0), cex = .8, pch = c(1,1))
        grid()
        if (n==length(Iso)) close.screen(all.screens=TRUE)
    }
}
ftlist$isotopes <- isotopes[which(isotopes[,1]>0),]
colnames(ftlist$isotopes)<-c("Index-12C","Index-13C1","Index-13C2","Intensity-12C","Intensity-13C1","Intensity-13C2")
cat("\t- Total number:\t",dim(ftlist$isotopes)[1]," isotope patterns\n",sep="")

return(ftlist)
}
#line 1 "C:/DOCUME~1/GRR/CONFIG~1/Temp/Rbuild63262927/AStream/R/norm.counts.R"
`norm.counts` <- 
function(names, data, mz, rt, std.outliers, zero.missing, min.corr, max.rt, fplot){

###################
## NORMALIZATION ##
###################
cat("NORMALIZATION BY FEATURE MEDIAN...\n",sep="")
data_N     <- data;
j          <- which(apply(data,1,median)!=0)
data_N[j,] <- data_N[j,]/t(kronecker(matrix(1,ncol(data),1), matrix(apply(data_N[j,],1,median),1,length(j)))) 
j          <- which(apply(data,1,median)==0)
if (length(j)>0){
    for (i in 1:length(j)){
        data_N[j[i],] <- data[j[i],] /median(data[j[i],which(data[j[i],]!=0)])
    }
}
####################
## OUTLIER SCORES ##
####################
cat("OUTLIER DETECTION...\n")
breaks     <- c(seq(0,10,by=0.025),max(max(data_N)))
a          <- matrix(0,dim(data)[2],length(breaks)-1)
for (i in 1:dim(data)[2]) a[i,] <- hist(data_N[,i],breaks=breaks,plot=FALSE)$counts
b          <- as.matrix(hist(data_N[,1],breaks=breaks,plot=FALSE)$mids)
minhist    <- min(which(b > 0.5))
maxhist    <- max(which(b <= 2))
int_0      <- (a[,1]-median(a[,1]))/sqrt(var(a[,1]))
quants     <- matrix(0,5,dim(a)[1])
for (i in 1:dim(a)[1]) quants[,i] <- quantile(data_N[,i],c(.1,.2,.3,.4,.5))
for (i in 1:5) quants[i,] <- (quants[i,]-mean(quants[i,]))/sqrt(var(quants[i,]))
int_1      <- apply(quants,2,max)
int_2      <- apply(quants,2,min)
jj         <- which(abs(int_2)>abs(int_1))
int_1[jj]  <- int_2[jj]
int_1      <- (int_1-median(int_1))/sqrt(var(int_1))
if (std.outliers <= 0){
   cat("\t- DEACTIVATED...\n")
   inp <- 1:length(int_0)
   out <- c()
} else {
    out        <- which( (abs(int_0) > std.outliers) | (abs(int_1) > std.outliers))
    inp        <- which( (abs(int_0) <= std.outliers) & (abs(int_1) <= std.outliers))
    if (length(out) > 0){
       data_N     <- data[,inp];
       j          <- which(apply(data[,inp],1,median)!=0)
       data_N[j,] <- data_N[j,]/t(kronecker(matrix(1,ncol(data[,inp]),1), matrix(apply(data_N[j,],1,median),1,length(j)))) 
       cat("\t- Max Dev allowed=",std.outliers,"\n",sep="")
       for (i in 1:length(out)){
          cat("\t- SAMPLE #",out[i]," (",names[out[i]],") excluded: [",int_0[out[i]],",",int_1[out[i]],"]\n",sep="")
       }
    }else {
       cat("\t- Max Dev allowed=",std.outliers,"\n",sep="")
       cat("\t- NO OUTLIERS\n")
    }
}

#################
## CORRELATION ##
#################
cat("COMPUTING CORRELATION MATRIX...\n\t")
tot   <- round((dim(data_N)[1]-1)*dim(data_N)[1]/20)
corrM <- matrix(0,tot,6)
L     <- length(inp)
if (!zero.missing){
    cat("- Zeros=NotMissing\n\t")
    k   <- 0
    ind <- 1
    for(i in 1:(dim(data_N)[1]-1)) {
       for(j in (i+1):dim(data_N)[1]) {
             cc3 <- cor(data_N[i,],data_N[j,])
             cc5 <- abs(rt[i]-rt[j])
             if ( cc3>min.corr && cc5<max.rt ){
                 corrM[ind,] <- c(i,j,cc3,0,cc5,abs(mz[i]-mz[j]))
                 ind      <- ind + 1
             }
             if (k %% tot == 0) cat(10*k/tot,"% ",sep="")
             k = k+1
       }
    }
    cat("\n",sep="")
} else {
    cat("- Zeros = Missing\n\t")
    data_N[which(data_N==0)] <- NA
    k   <- 0
    ind <- 1
    for(i in 1:(dim(data_N)[1]-1)) {
       for(j in (i+1):dim(data_N)[1]) {
             cc4 <- length(which(is.na(data_N[i,])|is.na(data_N[j,])))
             if (cc4 < L-1){
                 cc5 <- abs(rt[i]-rt[j])
                 if (cc5<max.rt){
                     cc3 <- cor(data_N[i,],data_N[j,],use="pairwise.complete.obs")
                     if (cc3>min.corr){
                         corrM[ind,] <- c(i,j,cc3,100*(L-cc4)/L,cc5,abs(mz[i]-mz[j]))
                         ind         <- ind + 1
                     }
                 }
             }
             if (k %% tot == 0) cat(10*k/tot,"% ",sep="")
             k = k+1
       }
    }
    cat("100%\n",sep="")
}
corrM <- corrM[1:(ind-1),]

##############
## FIGURES  ##
##############
if (fplot){
   ge<-split.screen(c(2,3))
   screen(ge[3])
   cols <- c("black","red","blue","yellow","azure","brown","blueviolet","cyan","magenta","orange","purple")
   plot(b, a[1,],col="black", type="l", cex = 1.2, main = "(c) Intensity histograms", ylim=c(0,max(max(a))),  xlab = "Intensity", ylab = "Counts", xlim = c(0,1.5),font=2)
   for (i in 2:dim(a)[1]){
       lines(b, a[i,],col=cols[i%%11+1])
   }
   grid()
   screen(ge[1])
   plot(int_0[1],int_1[1],pch=20, xlim=c(min(int_0),max(int_0)),ylim=c(min(int_1),max(int_1)),col="black",type="p",cex=1.2,main="(a) Outlier scores",xlab="Zero-intensity",ylab="Quantiles")
   for (i in 2:length(int_0)){
       points(int_0[i], int_1[i], col=cols[i%%11+1], pch=20)
   }
   abline(h=std.outliers)
   abline(v=std.outliers)
   abline(h=-std.outliers)
   abline(v=-std.outliers)
   grid()
   screen(ge[2])
   plot(c(.1,.2,.3,.4,.5),quants[,1],type="p",col="black",cex=1.2,main="(b) Quantiles",ylab="Standardized quantiles",xlab="Probs",ylim=c(-7,7))
   lines(c(.1,.2,.3,.4,.5), quants[,1],col="black")
   for (i in 2:dim(quants)[2]){
       lines(c(.1,.2,.3,.4,.5), quants[,i],col=cols[i%%11+1])
       points(c(.1,.2,.3,.4,.5), quants[,i],col=cols[i%%11+1])
   }
   screen(ge[4])
   hist(corrM[,3], col=heat.colors(40)[seq(40,1,-1)], breaks=30,main="(d) Correlation Histogram",xlab="Correlation",ylab="#Feature pairs")
   screen(ge[5])
   v   <- c()
   mzs <- seq(0.5,80,0.1)
   for (i in mzs) v<-c(v,length(which(abs(corrM[,6]-i)<0.05)))
   i <- which(v>10)
   par(cex.lab=.1)
   polar.plot(log10(1+v[i]),mzs[i]*360/80,labels=seq(0,77.5,2.5),label.pos=seq(0,77.5,2.5)*360/80,main="(e) M/Z differences",lwd=2,line.col=4)
   par(cex.lab=1)
   screen(ge[6])
   hist(corrM[,5], col=heat.colors(40), breaks=30,main="(f) RT differences histogram",xlab="RT diff (s)",ylab="#feature pairs")
   close.screen(all = TRUE)
}
scores <- list(int_0 = int_0,int_1 = int_1)
return(list(corrM = corrM, out = out, inp = inp, scores = scores))
}
#line 1 "C:/DOCUME~1/GRR/CONFIG~1/Temp/Rbuild63262927/AStream/R/plotcompound.R"
`plotcompound` <-
function(num, ftlist, results){

index  <- results[,c(1,2,4,6:dim(results)[2])]
label  <- colnames(index)
index  <- index[num,]
label  <- label[which(index>0)]
index  <- index[which(index>0)]
cols <- c("black","red","blue","yellow","azure","brown","blueviolet","cyan","magenta","orange","purple")

ge<-split.screen(c(ceiling(length(label)/2),2))
for (i in 1:length(label)){
    screen(ge[i])
    par(oma=c(.1,.0,.0,.0))
    par(mar=c(4, 4, 2, 0))
    par(lab=c(4,4,5))
    barplot(ftlist$data[index[i],], names.arg=seq(1,length(ftlist$data[index[i],]),1), xlab="sample index", ylab = "LC/MS intensity", main=paste(label[i],":rt=",round(ftlist$rt[index[i]],1),":m/z=",round(ftlist$mz[index[i]],3),sep=""), col=cols[i],cex.names=.7, cex.axis = .7, cex.main = 1.4)
    grid()
    par(oma=c(3,3,3,3))
    par(lab=c(5,5,7))
    par(mar=c(5,4,4,2)+0.1)
}
close.screen(all = TRUE)

}
   
#line 1 "C:/DOCUME~1/GRR/CONFIG~1/Temp/Rbuild63262927/AStream/R/printresults.R"
`printresults` <-
function(filename, ftlist, results, range = 1e-2, mzsort = FALSE){

con <- file(filename, "a")
if (!is.factor(ftlist$class$class)) ftlist$class$class <- factor(ftlist$class$class)
pvals <- compute.count.stats(ftlist)

if (length(pvals)==dim(ftlist$data)[1]) {
    pvals <- pvals[results[,1]]
    order <- sort(pvals,index.return = TRUE)$ix
} else {
    order <- 1:length(results[,1])
    pvals <- rep(1,length(results[,1]))    
}

if (mzsort) order <- 1:length(results[,1])
cat("IndexFeature\tMassSubmitted\tM/Z\tRT\tP-value\tFoldChange\tN1\tN2\tMetlin\t13C#1-isotope\t13C#2-isotope\tAdducts\tNFG\n", file = con, sep = "")

ij  <- setdiff(1:length(ftlist$class$class),ftlist$outliers)
a1 <- which(ftlist$class$class[ij] == levels(ftlist$class$class)[1])
a2 <- which(ftlist$class$class[ij] == levels(ftlist$class$class)[2])
ftlist$labels <- colnames(results)[6:length(colnames(results))]
for (i in order){
        nfg <- 1
        k <- results[i,1]
        Metlin <- paste("http://metlin.scripps.edu/metabo_list.php?mass_min=",
	                       round(ftlist$mz[k] - range - 1.0076, 4), "&mass_max=",
	                       round(ftlist$mz[k] + range - 1.0076, 4), sep="")
        if (results[i,2]==0) C13 <- "NA"
        else {
            j   <- which((ftlist$feature.set[,1]==k) & (ftlist$feature.set[,2]==results[i,2]))
            C13 <- paste(results[i,2],round(results[i,3],3),round(ftlist$feature.set[j[1],3],3),round(ftlist$feature.set[j[1],5],3))
            nfg <- nfg + 1
        }
        if (results[i,4]==0) C14 <- "NA"
        else {
            j   <- which((ftlist$feature.set[,1]==k) & (ftlist$feature.set[,2]==results[i,4]))
            C14 <- paste(results[i,4],round(results[i,5],3),round(ftlist$feature.set[j[1],3],3),round(ftlist$feature.set[j[1],5],3))
            nfg <- nfg + 1
        }
        add <- results[i,6:dim(results)[2]]
        z   <- which(add>0)
        nfg <- nfg + length(z)
        Adducts <- ""
        for (j in 1:length(z)){
            Adducts <- paste(Adducts,paste(ftlist$labels[z[j]],add[z[j]],sep=":"))
        }
        cat(k, round(ftlist$mz[k]-1.0076,5), ftlist$mz[k], round(ftlist$rt[k],2), pvals[i], round(mean(ftlist$data[k,a1])/mean(ftlist$data[k,a2]),2), 
            length(which(ftlist$data[k,a1]!=0)), length(which(ftlist$data[k,a2]!=0)), Metlin, C13, C14, Adducts, nfg,"\n", file = con, sep = "\t")

}
close(con)
}
#line 1 "C:/DOCUME~1/GRR/CONFIG~1/Temp/Rbuild63262927/AStream/R/xcms.import.R"
`xcms.import` <-
function(object){
class    <- object@phenoData
names    <- labels(object@phenoData)[[1]]
values   <- groupval(object,"medret","into")
groupmat <- groups(object)
data     <- cbind(name = groupnames(object), groupmat, values)
data     <- data[,c(2,5,(1+ncol(data)-length(names)):ncol(data))]
data     <-data.frame(data,row.names=1:dim(data)[1])
return(list(data = data, class = class))
}
