From 3f5e332dd5ba7eadbf84618fec56d03fdab00522 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Todor=20Kondi=C4=87?= <todor.kondic@uni.lu>
Date: Mon, 11 May 2020 08:07:12 +0200
Subject: [PATCH] extraction: Add centroided1, centroided

* R/extraction.R(centroided1,centroided): New functions.
---
 DESCRIPTION    |  1 +
 R/extraction.R | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/DESCRIPTION b/DESCRIPTION
index f63fdc9..5172b2b 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -63,6 +63,7 @@ Imports:
     tools,
     scales,
     parallel,
+    future,
     yaml,
     mzR,
     MSnbase,
diff --git a/R/extraction.R b/R/extraction.R
index 3f49abb..0fcd989 100644
--- a/R/extraction.R
+++ b/R/extraction.R
@@ -19,6 +19,30 @@ load_raw_data<-function(fn,mode="inMemory") {
 }
 
 
+centroided1 <- function(ms) {
+    if (all(MSnbase::centroided(ms)) == T)
+        return(T) else {
+                      state <- MSnbase::isCentroided(ms)
+                      N <- length(state)
+                      fls <-length(which(state == F))
+                      if (fls/(1.*N) < 0.01) T else F
+                  }
+                                                         
+}
+
+centroided <- function(msvec) {
+    if (is.vector(msvec)) {
+        f <- list()
+        for (i in 1:length(msvec)) {
+            f[[i]] <- future::future(centroided1(msvec[[i]]))
+        }
+        lapply(f, FUN = future::value)
+    } else {
+        centroided1(msvec)
+    }
+    
+}
+
 acq_mz<-function(tabFn) {
     df<-read.csv(tabFn,
                  stringsAsFactors=F,
-- 
GitLab