Коррекция базовой линии с помощью R, G C -FID - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу скорректировать базовый уровень моих хроматограмм, полученных газовой хроматографией-пламенно-ионизационным детектором (G C -FID) (где x = время, y = интенсивность). Особенно в их конце, есть увеличение интенсивности (значение y), которое я не должен принимать во внимание, когда интегрирую пики. Я попытался реализовать пакет «базовой» коррекции спектров, разработанный доктором Кристианом Ховде Лиландом.

Я экспортировал свою хроматограмму в формате .csv, и она состоит из 400 000 строк, которые я перенес в столбцы в соответствии с кодом разработчика.

Вот пример от разработчика, который работает также на моем R:

bc.irls <- baseline(milk$spectra[1,, drop=FALSE])
m <- t(milk$spectra[1,])
bc.irls <- baseline(m)
plot(bc.irls)```




2) here my code





```filenames <-list.files(path="../Dati/csv_file_baselinecorrected/crude_pine_DOE")
N <- length(filenames)`

`dati_integrate <- data.frame("name"=character(N), "LMW"=numeric(N), "FA"=numeric(N), "RA"=numeric(N), "ST"=numeric(N), "Lignans"=numeric(N), "DG"=numeric(N), "SE"=numeric(N), "TG"=numeric(N), "Heptadecanoic_acid"=numeric(N), "cholesterol"=numeric(N), "cholesteryl_palmitate"=numeric(N), "TGC17x3"=numeric(N),stringsAsFactors=FALSE)```

```for(i in 1:length(filenames)){
  file_path <- paste0("../Dati/csv_file_baselinecorrected/crude_pine_DOE/", filenames[i])
  name <- filenames[i]
  print(name)
dati <- read.csv(file=file_path, sep=",",header=F,na.strings = c("NA"), dec="." ,comment.char="", skip = 2, stringsAsFactors=F, check.names=F)
  colnames(dati)<-c("retention_time", "intensity")
  dati <- merge(dati,dati_bianco, by="retention_time")
  colnames(dati)<-c("retention_time", "intensity_1", "intensity_bianco")
  matrice <- t(dati$intensity_1)
  colnames(matrice) <- dati$retention_time
  bc_irls_dati_FID <- baseline(matrice, method = 'irls')```





Unfortunately when I arrive to run the last command:





```bc_irls_dati_FID <- baseline(matrice, method = 'irls')```






it gives me an error:





```Error in if (length(x) == nrow * ncol) x <- matrix(x, nrow, ncol) else { : 
missing value where TRUE/FALSE needed
In addition: Warning message:
In nrow * ncol : NAs produced by integer overflow```






Do you know how to solve this problem?

Thank you in advance, 
I am approaching R for my first-time enter code here
...