get_data.R 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. get_data <- function(csv_file_name) {
  2. # Reads data from csv file into a tibble, and creates IDs for mice, series, experiments, and neurons
  3. tib = read_csv(csv_file_name)
  4. if (has_name(tib, 'mseu')) {
  5. # add mouse ID - this is based on m(ouse) only
  6. tib <- tib %>% mutate(mid = as.numeric(as.factor(str_split_fixed(tib$mseu, '_s', 2)[,1])))
  7. # add series ID - this is based on m and s(eries)
  8. tib <- tib %>% mutate(sid = as.numeric(as.factor(str_split_fixed(tib$mseu, '_e', 2)[,1])))
  9. # add exp ID - this is based on m, s, and e(xperiment)
  10. tib <- tib %>% mutate(eid = as.numeric(as.factor(str_split_fixed(tib$mseu, '_u', 2)[,1])))
  11. # add unit ID - this is based on m, s, and u(nit), ignoring e
  12. tib <- tib %>% mutate(uid = as.numeric(as.factor(paste(str_split_fixed(tib$mseu, '_e', 2)[,1], '_u' , str_split_fixed(tib$mseu, '_u', 2)[,2], sep=""))))
  13. # put iDs up front
  14. tib <- tib %>% select(mid, sid, eid, uid, everything())
  15. # If we don't have 'experiments', we need to do a slightly different parsing
  16. } else if (has_name(tib, 'msu')) {
  17. # add mouse ID - this is based on m only
  18. tib <- tib %>% mutate(mid = as.numeric(as.factor(str_split_fixed(tib$msu, '_s', 2)[,1])))
  19. # add series ID - this is based on m and s
  20. tib <- tib %>% mutate(sid = as.numeric(as.factor(str_split_fixed(tib$msu, '_u', 2)[,1])))
  21. # add unit ID - this is based on m, s, and u
  22. tib <- tib %>% mutate(uid = as.numeric(as.factor(tib$msu)))
  23. # put IDs up front
  24. tib <- tib %>% select(mid, sid, uid, everything()) # put id up front
  25. # We don't have units - this requires a slightly differnt parsing
  26. } else if (has_name(tib, 'mse')) {
  27. # add mouse ID
  28. tib <- tib %>% mutate(mid = as.numeric(as.factor(str_split_fixed(tib$mse, '_s', 2)[,1])))
  29. # add series ID
  30. tib <- tib %>% mutate(sid = as.numeric(as.factor(str_split_fixed(tib$mse, '_e', 2)[,1])))
  31. # add experiment ID
  32. tib <- tib %>% mutate(eid = as.numeric(as.factor(tib$mse)))
  33. # put IDs up front
  34. tib <- tib %>% select(mid, sid, eid, everything())
  35. }
  36. return(tib)
  37. }