PatchR: R environment for electrophysiology data


Installation


if (!requireNamespace("remotes", quietly = TRUE)){
  install.packages("remotes")
}
remotes::install_github("moritzlindner/PatchMasteR")
Description
Core component of PatchR is the PRecording class, wich stores a series imported from a Patchmaster *.dat file. Several integrety checks are implemented into the PRecording class to assure data integrity is maintained. Multiple recordings (PRecording) objects can be stored and processed within the PCollection class using mostly identical commands and synthax.

Import procedures are currently implemented for HEKA’s PachtMaster file format.

Examples


Example 1: Improting and inspecting data
Import a PatchMaster *.dat file, inspect visually and make an average over all sweeps

library(PatchR)

# import a PatchMaster file
tmp<-ImportPRecording("test.dat",series = 1,traces = c(1,2))

#alternatively, use the sample data included in the package
data(PRecording)
tmp<-SampleData

# build a Plot superimposing all sweeps and inspect interactivley
tmp<-BuildRecordingPlot(tmp)
Inspect(tmp, what = "I-mon")

# apply any function to the PRecording object. In this case, make mean over all sweeps
tmp<-apply(tmp, "Sweep", mean, ReturnPObject = T)

# and return as data.frame
as.data.frame(tmp)


Example 2: Flexible data analysis


Create a PCollection, perform a classical time series data extraction (in this case: from each stored PRecording, take current trace “I-mon”, extract values between 0.8s and 1s from sweep 15 and average these), and add thesse as metadata.

exp<-newPCollection(list(SampleData,SampleData),Names=c("A","B"),Group=c("Generic1","Generic2"))

#flexible approach
exp<-AddMetaData(exp, #add as metadata to PCollection
            lapply(exp, # for each PRecording stored in PCollection
                   function(x){
                     apply( # average over time
                       GetData(x, # extract values from I-mon trace, Sweep 15, between 1 and 1.19 s only 
                                  Traces="I-mon",
                                  Time =c(1,1.19),
                                  Sweeps=GetSweepNames(x)[c(3)]),
                       "Time",
                       mean)
                     }
                   )
            )

GetMetaData(exp)
The import functions have been adopted from the ephys2 package from Timm Danker

Developed by Moritz Lindner