2020-06-08 15:41:52 +02:00
|
|
|
|
#' @title Tests GenePop data
|
2020-06-24 11:48:23 +02:00
|
|
|
|
#' @param tiedostonNimi Filename
|
2020-06-08 15:41:52 +02:00
|
|
|
|
testaaGenePopData <- function(tiedostonNimi) {
|
|
|
|
|
|
# kunnossa == 0, jos data ei ole kelvollinen genePop data.
|
|
|
|
|
|
# Muussa tapauksessa kunnossa == 1.
|
|
|
|
|
|
|
|
|
|
|
|
kunnossa <- 0
|
|
|
|
|
|
if (file.exists(paste0(tiedostonNimi, ".rda"))) {
|
|
|
|
|
|
fid <- load(tiedostonNimi)
|
|
|
|
|
|
line1 <- readLines(fid)[1] # ensimmäinen rivi
|
|
|
|
|
|
line2 <- readLines(fid)[2] # toinen rivi
|
|
|
|
|
|
line3 <- readLines(fid)[3] # kolmas
|
|
|
|
|
|
} else {
|
|
|
|
|
|
fid <- line1 <- line2 <- line3 <- -1
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (line1 == -1 | line2 == -1 | line3 == -1) {
|
|
|
|
|
|
stop('Incorrect file format 1168')
|
|
|
|
|
|
}
|
2020-06-24 11:49:29 +02:00
|
|
|
|
if (testaaPop(line1) == 1 | testaaPop(line2) == 1) {
|
2020-06-08 15:41:52 +02:00
|
|
|
|
stop('Incorrect file format 1172')
|
|
|
|
|
|
}
|
|
|
|
|
|
if (testaaPop(line3) == 1) {
|
|
|
|
|
|
# 2 rivi t<>ll<6C>in lokusrivi
|
|
|
|
|
|
nloci <- rivinSisaltamienMjonojenLkm(line2) # TODO: translate function
|
|
|
|
|
|
line4 <- readLines(fid)[4]
|
|
|
|
|
|
if (line4 == -1) stop('Incorrect file format 1180')
|
|
|
|
|
|
if (!grepl(',', line4)) {
|
|
|
|
|
|
# Rivin nelj?t<>ytyy sis<69>lt<6C><74> pilkku.
|
|
|
|
|
|
stop('Incorrect file format 1185')
|
|
|
|
|
|
}
|
|
|
|
|
|
pointer <- 1
|
|
|
|
|
|
while (line4[pointer] != ',') { # Tiedet<65><74>n, ett?pys<79>htyy
|
|
|
|
|
|
pointer <- pointer + 1
|
|
|
|
|
|
}
|
|
|
|
|
|
line4 <- line4[(pointer + 1):nchar(line4)] # pilkun j<>lkeinen osa
|
|
|
|
|
|
nloci2 <- rivinSisaltamienMjonojenLkm(line4)
|
|
|
|
|
|
if (nloci2 != nloci) stop('Incorrect file format 1195')
|
|
|
|
|
|
} else {
|
|
|
|
|
|
line <- readLines(fid)[4]
|
|
|
|
|
|
lineNumb <- 4
|
|
|
|
|
|
while (testaaPop(line) != 1 & line != -1) {
|
|
|
|
|
|
line <- readLines(fid)[lineNumb]
|
|
|
|
|
|
lineNumb <- lineNumb + 1
|
|
|
|
|
|
}
|
|
|
|
|
|
if (line == -1) stop('Incorrect file format 1206')
|
|
|
|
|
|
nloci <- lineNumb - 2
|
|
|
|
|
|
line4 <- readLines(fid)[4] # Eka rivi pop sanan j<>lkeen
|
|
|
|
|
|
if (line4 == -1) stop('Incorrect file format 1212')
|
|
|
|
|
|
if (!grepl(',', line4)) {
|
|
|
|
|
|
# Rivin t<>ytyy sis<69>lt<6C><74> pilkku.
|
|
|
|
|
|
stop('Incorrect file format 1217')
|
|
|
|
|
|
}
|
|
|
|
|
|
pointer <- 1
|
|
|
|
|
|
while (line4[pointer] != ',') { # Tiedet<65><74>n, ett?pys<79>htyy
|
|
|
|
|
|
pointer <- pointer + 1
|
|
|
|
|
|
}
|
|
|
|
|
|
line4 <- line4[(pointer + 1):nchar(line4)] # pilkun j<>lkeinen osa
|
|
|
|
|
|
nloci2 <- rivinSisaltamienMjonojenLkm(line4)
|
|
|
|
|
|
if (nloci2 != nloci) stop('Incorrect file format 1228')
|
|
|
|
|
|
}
|
|
|
|
|
|
kunnossa <- 1
|
|
|
|
|
|
return(kunnossa)
|
|
|
|
|
|
}
|