library(reticulate) library(tidyverse) library(reshape2) path_to_model<-"python/Model_Bidirectional_NoShape_3state_Tr10000" rm(py) #py$MLfolder <- 'D:/Imaging_data/ML_test/' cat("Loading Python functions and ML model") source_python(file.path(getwd(),"python/MLE_functions.py")) py$path_to_model <- path_to_model source_python(file.path(getwd(),"python/Load_model.py")) ML_segment_tracks <- function(tracks,directory=NULL){ #source_python("python/Load_data.py") x <- dlply(tracks,.variables = c("cellID","track"), function(x){ return(x$X) }) names(x) <- NULL py$x <- x y <- dlply(tracks,.variables = c("cellID","track"), function(x){ return(x$Y) }) names(y) <- NULL py$y <- y indices <- cumsum(daply(tracks,.variables = "cellID", function(x){ return(length(unique(x$track))) })) indices <- c(0,indices-1) cat("import R data") source_python("python/Load_Rdata.py") cat("Get ML predictions") source_python("python/Get_predictions.py") cat("Return data") #source_python('python/make_table.py') if(!is.null(directory)){ py_save_object(object = x,filename = file.path(directory,tracks$condition[1],"x.pydata")) py_save_object(object = y,filename = file.path(directory,tracks$condition[1],"y.pydata")) py_save_object(object = allStates,filename = file.path(directory,tracks$condition[1],"allStates.pydata")) } out <- py$getTrackPiecesForInfo(x, y, allStates) x0 <- out[[1]] y0 <- out[[2]] x1 <- out[[3]] y1 <- out[[4]] x2 <- out[[5]] y2 <- out[[6]] trnums0 <- out[[7]] trnums1 <- out[[8]] trnums2 <- out[[9]] names(x0) <- trnums0 names(x1) <- trnums1 names(x2) <- trnums2 names(y0) <- trnums0 names(y1) <- trnums1 names(y2) <- trnums2 x0 <- melt(x0) y0 <- melt(y0) x0$y <- y0$value x0$state <- 0 x1 <- melt(x1) y1 <- melt(y1) x1$y <- y1$value x1$state <- 1 x2 <- melt(x2) y2 <- melt(y2) x2$y <- y2$value x2$state <- 2 all <- rbind(x0,x1,x2) all$L1 <- as.numeric(all$L1) all <- plyr::arrange(df = all, L1) tracks$state <- all$state return(tracks) } #plotting #source_python('python/mss.py') source_python('python/SMMsplot.py')