Skip to content

Commit

Permalink
Merge pull request #9 from IsabelMarleen/dev
Browse files Browse the repository at this point in the history
Correctly parse all valid test cases
  • Loading branch information
IsabelMarleen authored Mar 9, 2023
2 parents f484f43 + cca359b commit fb7be0f
Show file tree
Hide file tree
Showing 9 changed files with 483 additions and 125 deletions.
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
[submodule "demes-spec"]
path = tools/demes-spec
url = https://github.com/popsim-consortium/demes-spec.git
48 changes: 34 additions & 14 deletions R/helper.R
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,23 @@ order_demes <- function(deme) {

ordered_deme$demes[[i]]$name <- deme$demes[[i]]$name
ordered_deme$demes[[i]]$description <- deme$demes[[i]]$description
ordered_deme$demes[[i]]$ancestors <- deme$demes[[i]]$ancestors
ordered_deme$demes[[i]]$proportions <- deme$demes[[i]]$proportions
ordered_deme$demes[[i]]$start_time <- deme$demes[[i]]$start_time

ordered_deme$demes[[i]]$epochs <- list()
for (j in 1:length(deme$demes[[i]]$epochs)){
ordered_deme$demes[[i]]$epochs[j][[1]] <- list()

ordered_deme$demes[[i]]$epochs[[j]]$end_time <- deme$demes[[i]]$epochs[[j]]$end_time
ordered_deme$demes[[i]]$epochs[[j]]$start_size <- deme$demes[[i]]$epochs[[j]]$start_size
ordered_deme$demes[[i]]$epochs[[j]]$end_size <- deme$demes[[i]]$epochs[[j]]$end_size
ordered_deme$demes[[i]]$epochs[[j]]$size_function <- deme$demes[[i]]$epochs[[j]]$size_function
ordered_deme$demes[[i]]$epochs[[j]]$selfing_rate <- deme$demes[[i]]$epochs[[j]]$selfing_rate
ordered_deme$demes[[i]]$epochs[[j]]$cloning_rate <- deme$demes[[i]]$epochs[[j]]$cloning_rate
if (length(deme$demes[[i]]$epochs) > 0){
for (j in 1:length(deme$demes[[i]]$epochs)){
ordered_deme$demes[[i]]$epochs[j][[1]] <- list()

ordered_deme$demes[[i]]$epochs[[j]]$end_time <- deme$demes[[i]]$epochs[[j]]$end_time
ordered_deme$demes[[i]]$epochs[[j]]$start_size <- deme$demes[[i]]$epochs[[j]]$start_size
ordered_deme$demes[[i]]$epochs[[j]]$end_size <- deme$demes[[i]]$epochs[[j]]$end_size
ordered_deme$demes[[i]]$epochs[[j]]$size_function <- deme$demes[[i]]$epochs[[j]]$size_function
ordered_deme$demes[[i]]$epochs[[j]]$selfing_rate <- deme$demes[[i]]$epochs[[j]]$selfing_rate
ordered_deme$demes[[i]]$epochs[[j]]$cloning_rate <- deme$demes[[i]]$epochs[[j]]$cloning_rate
}
}
ordered_deme$demes[[i]]$proportions <- deme$demes[[i]]$proportions
ordered_deme$demes[[i]]$ancestors <- deme$demes[[i]]$ancestors
}

ordered_deme$migrations <- list()
Expand Down Expand Up @@ -58,22 +60,40 @@ order_demes <- function(deme) {
return(ordered_deme)
}

conv_prop_vec <- function(demes){
conv_prop_anc_vec <- function(demes){
for (i in 1:length(demes$demes)){
if (length(demes$demes[[i]]$proportions) > 0){
demes$demes[[i]]$proportions <- as.double(unlist(demes$demes[[i]]$proportions))
demes$demes[[i]]$proportions <- as.double(demes$demes[[i]]$proportions)
} else{
demes$demes[[i]]$proportions <- vector(mode="double")
}

if (length(demes$demes[[i]]$ancestors) > 0){
demes$demes[[i]]$ancestors <- unlist(demes$demes[[i]]$ancestors)
} else{
demes$demes[[i]]$ancestors <- vector(mode="character")
}
}

return(demes)
}

conv_migr <- function(demes){
if (length(demes$migrations) > 0){
for (j in 1:length(demes$migrations)){
if (length(demes$migrations[[j]]) > 0){
demes$migrations[[j]]$rate <- as.double(demes$migrations[[j]]$rate)
}
}
}
return(demes)
}

post_process_expected <- function(exp){
exp <- order_demes(exp)
exp <- convert_infinity(exp)
exp <- conv_prop_vec(exp)
exp <- conv_prop_anc_vec(exp)
exp <- conv_migr(exp)

return(exp)
}
Expand Down
2 changes: 1 addition & 1 deletion R/name_demes.R
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
name_demes <- function(demes){
deme_names <- c()
for (i in 1:length(demes$demes)){
deme_names[i] <- demes$demes[[1]]$name
deme_names[i] <- demes$demes[[i]]$name
}
names(demes$demes) <- deme_names
return(demes)
Expand Down
Loading

0 comments on commit fb7be0f

Please sign in to comment.