Frechter S, Bates AS, Tootoonian S, Dolan M, Manton JD, Jamasb AR, Kohl J, Bock D, Jefferis GS (2019).
+“Functional and anatomical specificity in a higher olfactory centre.”
+eLife, 8.
+doi: 10.7554/elife.44590.
+
+
@Article{,
+ doi = {10.7554/elife.44590},
+ year = {2019},
+ month = {may},
+ publisher = {{eLife} Sciences Publications, Ltd},
+ volume = {8},
+ author = {Shahar Frechter and Alexander Shakeel Bates and Sina Tootoonian and Michael-John Dolan and James D Manton and Arian Rokkum Jamasb and Johannes Kohl and Davi Bock and Gregory SXE Jefferis},
+ title = {Functional and anatomical specificity in a higher olfactory centre},
+ journal = {{eLife}},
+}
Currently there isn’t a released version on CRAN.You can use the devtools package to install either the latest release or development version:
# install devtools if required
-install.packages("devtools")
+install.packages("devtools")
-library(devtools)
+library(devtools)
# latest release (recommended)
-install_github("jefferis/gphys")
+install_github("jefferis/gphys")
# develop branch may occasionally have changes that have not been merged to master
-install_github("jefferis/gphys@develop")
Allow subset.spiketimes to remove duplicate odours (#18)
+
give PlotRasterFromSweeps a DividerLwd argument, making the dividers between odours narrower than in the past (Glenn Turner complained about these).
+
+
+
+
+gphys 0.11
+
+
fix bug in handling shuffled odour blocks in divide.spiketimes (#13)
+
record file number when reading in spike times (#14). This will be useful for dealing with shuffled odour presentations where we would like superimpose voltage information.
+
add MakeAverageWaves function to make average (analogue) waves that match a spiketimes object
+
minor doc improvements (#15)
+
+
+
+
+gphys 0.10.0
+
+
fix bugs in handling of NAs in lifetime_sparseness
+
minor doc fixes
+
make test installation optional
+
dev: update roxygen2
+
+
+
+
+gphys 0.9
+
+
deprecate split.spiketimes in favour of divide.spiketimes
+
prepare for CRAN release by fixing all R CMD CHECK warnings/notes
+
fix bug in example on case-sensitive filesystems
+
add zenodo shield
+
dev: add travis integration
+
+
+
+
+gphys 0.8-2
+
+
Add lifetime_sparseness function
+
give PlotRasterFromSweeps a DividerCol argument
+
+
+
+
+gphys 0.8.1
+
+
Allow smpsth to pass on additional arguments to STAR::psth (such as plotting arguemnts)
+
dev: switch to roxygen2 v4
+
+
+
+
+gphys 0.8
+
+
Major version bump due to possible backwards incompatibility in scale.ts
+
scale.ts definition now matches base::scale generic function at the expense of losing the convenient yrange argument. There are no known examples of use of scale.ts outside gphys.
+
PlotOdourResponseFromSpikes argument chanages: baselineWindow now optional and PlotFrequency renamed to freq.
+
dev: switch to roxygen2 v3.1
+
+
+
+
+gphys 0.7-3
+
+
merged spiketimes objects (generated by merge.spiketimes) now contain a mergedwaveinfo attribute indicating the exact wave.sweep of origin for each sweep in the merged wave.
+
Rename as.spiketimes to spiketimes following convention for S3 constructor and use this to document the spiketimes class.
+
include all examples within package (with an eye on a CRAN release).
+
+
+
+
+gphys 0.7-2
+
+
Allow subset.spiketimes to use even duplicated channels but warn that only the first sweep will be used in this case.
+
+
+
+
+gphys 0.7-1
+
+
Allow subset.spiketimes to use channels even when some (other) channels are duplicated in odd config.
+
+
+
+
+gphys 0.7
+
+
Fix bug in OdourResponseFromSpikes() when counting spikes from a merged spiketimes object in which the block fewer trials was merged with a block with more trials. Resulted in sweeps for the two blocks being mismatched / misordered.
+
+
+
+
+gphys 0.6-7
+
+
Make baselineWindow=NULL the default in OdourResponseFromSpikes() so that it is easier for wrapper functions to switch between specifying a baseline window or not having one.
+
+
+
+
+gphys 0.6-6
+
+
Give smooth_decimate an extend option (that is passed on to stats::filter) to allow padding of data to end.
+
Give smooth_decimate frequency and deltat options that can be used instead of downsamplefactor. Again passed to stats::filter.
+
+
+
+
+gphys 0.6-5
+
+
Give smooth_decimate a sides option (that is passed on to stats::filter)
+
Return call in smooth_decimate result
+
Better example for smooth_decimate (that is actually run)
+
+
+
+
+gphys 0.6-4
+
+
Allow multiple stimulus bars on raster plots Specified as c(start1,stop1,start2,stop2)
+
Fix bug in plotting stimulus bar (extended outside y axis; usually invisible but obvious in svg format)
+
+
+
+
+gphys 0.6-3
+
+
AddLinesToRasterPlot can now cope with multiple colours
+
PlotRastersFromSweeps can be told not to plot spikes or dividing lines so that it can be used to set up an empty plot to which AddLinesToRasterPlot can then add lines. See ?AddLinesToRasterPlot for examples.
+
new plot.spiketimes function allows plot() to be called directly on a spiketimes object.
+
+
+
+
+gphys 0.6-2
+
+
split.spiketimes now gives each new block a name of form . So if experiment 008 contains 4 repeats we will get: c(“008.000”,“008.001”,“008.002”,“008.003”)
+
+
merge.spiketimes now gives each merged block a name of form , So if we merge experiments 001,002,003 with experiments 004,005 we’ll get c(“001,004”,“002,005”,“003,”)
+
+
OdourResponseFromSpikes can now cope with spiketimes lists that do not have names (this is defensive since splitting and merging produce sensible names).
+
+
+
+
+gphys 0.6-1
+
+
merge.spiketimes can merge lists with different numbers of repeats
+
OdourResponseFromSpikes can cope with missing sweeps (they come back as NA) and it will always convert sweeps that have no spikes to count 0.
+
+
+
+
+gphys 0.6
+
+
add smpsth function to generate smooth peristimulus time histogram using STAR psth function from gphys spiketimes objects. Note that these will fail when any sweep has no spikes.
+
add mpsth class to handle lists of multiple STAR psth objects (e.g. for different odours or for different neurons)
+
+
+
+
+gphys 0.5-4
+
+
Several small changes to PlotRasterFromSweeps
+
with pch=‘rect’ (ie spikes as rectangles rather than dots) then spikeheight option sets the relative spike height and defaults to much prettier looking value of 0.8 than its previous implicit value of 1.
+
new frame.plot option in PlotRasterFromSweeps to control whether a box surrounds the plot
+
xaxs and yaxs options to control whether the x and y axes are expanded. the default is now to use exactly the specified xlim and ylim (which is not R’s default behaviour)
+
teach subset.spiketimes to cope with ODD configs that have repeated odour names (but note that you still can’t subset any of these repeated odours by name, only by channel number)
+
Option to convert NAs to 0 in OdourResponseFromSpikes (default TRUE)
+
export is.spiketimes function
+
+
+
+
+gphys 0.5-3
+
+
fix bug in visibility of “[.spiketimes” which was causing problems for Aaron’s mergeSpiketrain function (because subsetting a spiketrains object produced a plain list rather than a new spiketimes object).
+
Option to plot spikes with rectangles of specified width in PlotRasterFromSweeps
+
+
+
+
+gphys 0.5-2
+
+
some documentation improvements (PlotOdourResponseFromSpikes,[.spiketimes,finder_colour)
+
+
+
+
+gphys 0.5-1
+
+
merge.spiketimes function for spiketimes objects with different odd configs (limited to case where there are the same number of trials for each odour).
+
implemented proper subsetting of spiketimes object ie spiketimesobj[1:3] now behaves properly
+
+.spiketimes checks compatibility between spiketimes objects more carefully
+
finder_colour_fast is much faster for long lists of files [ao]
+
documentation fixes
+
+
+
+
+gphys 0.5
+
+
Add functions for handling timeseries data (ie voltages rather than spikes) including: scale.ts, mean.mts, smooth_decimate, tsp.nclamppxp and a new plot function AddLinesToRasterPlot.
+
IgorR package (on CRAN) is now a dependency (instead of a suggestion).
+
+
+
+
+gphys 0.4-1
+
+
Option not to plot x and y axes in PlotRasterFromSweeps
+
+
+
+
+gphys 0.4
+
+
CollectSpikesFromSweeps/PlotRasterFromSweeps can now read/plot subsets of spkes defined by odour name or channel number.
+
This depends on a new function subset.spiketimes.
+
STAR package is now a dependency (which must be installed from CRAN).
+
New as.repeatedTrain function will convert gphys spiketimes objects to STAR repeatedTrain objects, allowing STAR’s psth function to be used.
+
New fix.odd function to handle situation where ODD has been miswired
You can now set options(gphys.datadir=‘/path/to/my/data’) so that you can specify relative paths in CollectSpikesFromSweeps/PlotRasterFromSweeps, ideally just the Igor cell name.
+
+
+
+
+gphys 0.3-1
+
+
New OdourResponseFromSpikes function that can be used to extract the number or frequency of spikes in a window (optionally subtracting a baseline).
+
PlotRasterFromSweeps plots left hand edge of box when the axis starts at time>0
+
+
+
+
+gphys 0.3
+
+
Teach CollectSpikesFromSweeps/PlotRasterFromSweeps to use Jonny’s spike subdirs
+
Make sure that CollectSpikesFromSweeps/PlotRasterFromSweeps only reads ODD files that match the sweeps that have been selected.
+
?gphys shows package help
+
utility functions to set and query Finder colour labels
+
+
+
+
+gphys 0.2-1
+
+
plot odour stimulus as an opaque rectangle behind spike rasters rather than a semi-transparent one in front.
+
+
+
+
+gphys 0.2
+
+
handle experiments with repeated identical blocks (using split.spiketimes)
+
can now specify stimRange when collecting sweeps
+
can now specify xlim when collecting sweeps
+
and PlotRasterFromSweeps will use this info for plotting
+
+.spiketimes allows multiple consistent spiketimes objects to be gathered together
if in dropdown
- var menu_anchor = $(value);
+ // Add class to parent
, and enclosing
if in dropdown
+ if (pos >= 0) {
+ var menu_anchor = $(links[pos]);
menu_anchor.parent().addClass("active");
menu_anchor.closest("li.dropdown").addClass("active");
}
});
-});
-function paths(pathname) {
- var pieces = pathname.split("/");
- pieces.shift(); // always starts with /
+ function paths(pathname) {
+ var pieces = pathname.split("/");
+ pieces.shift(); // always starts with /
+
+ var end = pieces[pieces.length - 1];
+ if (end === "index.html" || end === "")
+ pieces.pop();
+ return(pieces);
+ }
- var end = pieces[pieces.length - 1];
- if (end === "index.html" || end === "")
- pieces.pop();
- return(pieces);
-}
+ // Returns -1 if not found
+ function prefix_length(needle, haystack) {
+ if (needle.length > haystack.length)
+ return(-1);
-function is_prefix(needle, haystack) {
- if (needle.length > haystack.lengh)
- return(false);
+ // Special case for length-0 haystack, since for loop won't run
+ if (haystack.length === 0) {
+ return(needle.length === 0 ? 0 : -1);
+ }
- for (var i = 0; i < haystack.length; i++) {
- if (needle[i] != haystack[i])
- return(false);
- }
+ for (var i = 0; i < haystack.length; i++) {
+ if (needle[i] != haystack[i])
+ return(i);
+ }
- return(true);
-}
+ return(haystack.length);
+ }
-/* Clipboard --------------------------*/
+ /* Clipboard --------------------------*/
-function changeTooltipMessage(element, msg) {
- var tooltipOriginalTitle=element.getAttribute('data-original-title');
- element.setAttribute('data-original-title', msg);
- $(element).tooltip('show');
- element.setAttribute('data-original-title', tooltipOriginalTitle);
-}
+ function changeTooltipMessage(element, msg) {
+ var tooltipOriginalTitle=element.getAttribute('data-original-title');
+ element.setAttribute('data-original-title', msg);
+ $(element).tooltip('show');
+ element.setAttribute('data-original-title', tooltipOriginalTitle);
+ }
-if(Clipboard.isSupported()) {
- $(document).ready(function() {
- var copyButton = "";
+ if(ClipboardJS.isSupported()) {
+ $(document).ready(function() {
+ var copyButton = "";
- $(".examples").addClass("hasCopyButton");
+ $(".examples, div.sourceCode").addClass("hasCopyButton");
- // Insert copy buttons:
- $(copyButton).prependTo(".hasCopyButton");
+ // Insert copy buttons:
+ $(copyButton).prependTo(".hasCopyButton");
- // Initialize tooltips:
- $('.btn-copy-ex').tooltip({container: 'body'});
+ // Initialize tooltips:
+ $('.btn-copy-ex').tooltip({container: 'body'});
- // Initialize clipboard:
- var clipboardBtnCopies = new Clipboard('[data-clipboard-copy]', {
- text: function(trigger) {
- return trigger.parentNode.textContent;
- }
- });
+ // Initialize clipboard:
+ var clipboardBtnCopies = new ClipboardJS('[data-clipboard-copy]', {
+ text: function(trigger) {
+ return trigger.parentNode.textContent;
+ }
+ });
- clipboardBtnCopies.on('success', function(e) {
- changeTooltipMessage(e.trigger, 'Copied!');
- e.clearSelection();
- });
+ clipboardBtnCopies.on('success', function(e) {
+ changeTooltipMessage(e.trigger, 'Copied!');
+ e.clearSelection();
+ });
- clipboardBtnCopies.on('error', function() {
- changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy');
+ clipboardBtnCopies.on('error', function() {
+ changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy');
+ });
});
- });
-}
-
+ }
+})(window.jQuery || window.$)
diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml
index ea4156a..4a4f52a 100644
--- a/docs/pkgdown.yml
+++ b/docs/pkgdown.yml
@@ -1,5 +1,5 @@
pandoc: 1.19.2.1
-pkgdown: 0.1.0.9000
-pkgdown_sha: 17f683717d0a1547f13a08a259b34c58927452d6
+pkgdown: 1.3.0
+pkgdown_sha: ~
articles: []
diff --git a/docs/reference/AddLinesToRasterPlot.html b/docs/reference/AddLinesToRasterPlot.html
index f3b41c4..4468c41 100644
--- a/docs/reference/AddLinesToRasterPlot.html
+++ b/docs/reference/AddLinesToRasterPlot.html
@@ -1,6 +1,6 @@
-
+
@@ -9,32 +9,39 @@
Add eg voltage traces to existing spike raster plot — AddLinesToRasterPlot • gphys
-
+
-
-
+
+
-
+
-
+
+
+
+
-
-
-
+
+
+
+
+
+
-
+
+
@@ -80,21 +96,25 @@
-
+
Add eg voltage traces to existing spike raster plot
+
+
AddLinesToRasterPlot.Rd
+
First thing this does is scale waves to 0-1 range using scale.ts
Assumes that number of waves and number of boxes (odours)
on spike raster plot actually match. It doesn't check!
# NOT RUN {# First plot the rastersspikes8=CollectSpikesFromSweeps('/Volumes/JData/JPeople/Shahar/Data/120308/nm20120308c0',8)
-spike8_split=split(spikes8)
+spike8_split=split(spikes8)
PlotRasterFromSweeps (spike8_split)
# Now plot the voltages
-avgwaves=read.table(
+avgwaves=read.table(
'/Volumes/JData/JPeople/Shahar/Data/120308/nm20120308c0/008_Avg_RG0_A0++.txt',
header=T)
-avgwavests=ts(avgwaves,start=0,freq=10)
+avgwavests=ts(avgwaves,start=0,freq=10)
AddLinesToRasterPlot(avgwavests,col='red')
# same but with rainbow colouringPlotRasterFromSweeps (spike8_split)
@@ -167,12 +187,13 @@
-
+
+
diff --git a/docs/reference/CollectSpikesFromSweeps-1.png b/docs/reference/CollectSpikesFromSweeps-1.png
index 174b412..84371a3 100644
Binary files a/docs/reference/CollectSpikesFromSweeps-1.png and b/docs/reference/CollectSpikesFromSweeps-1.png differ
diff --git a/docs/reference/CollectSpikesFromSweeps.html b/docs/reference/CollectSpikesFromSweeps.html
index df12eca..9ed851b 100644
--- a/docs/reference/CollectSpikesFromSweeps.html
+++ b/docs/reference/CollectSpikesFromSweeps.html
@@ -1,6 +1,6 @@
-
+
@@ -9,24 +9,27 @@
Read in Igor Pro exported text file of Nclamp spike times — CollectSpikesFromSweeps • gphys
-
+
-
-
+
+
-
+
-
+
+
+
+
-
-
-
+
+
+
+
+
+
-
+
+
@@ -86,12 +102,15 @@
-
+
Read in Igor Pro exported text file of Nclamp spike times
+
+
CollectSpikesFromSweeps.Rd
+
The list of spiketimes has two columns, Time and Wave, where wave is the
number of the wave within each sweepfile containing the spike. xlim and
@@ -103,11 +122,12 @@
Read in Igor Pro exported text file of Nclamp spike times
is expected that the corresponding pxp and odd config files remain in the top
level directory for the cell.
+
# If you have your data in a single folder hierarchy, you can that as the# data directory.# Here we set the data directory to folder containing gphys example data
-options(gphys.datadir=system.file('igor','spikes',package='gphys'))
+options(gphys.datadir=system.file('igor','spikes',package='gphys'))
spikes=CollectSpikesFromSweeps('nm20120514c2',subdir='BLOCKB')
# Finally an example specifying the exact sweeps to load
-spikes=CollectSpikesFromSweeps("nm20110811c0",c(0,1,3))
+spikes=CollectSpikesFromSweeps("nm20110811c0",c(0,1,3))
# and plotting them
-plot(spikes,xlim=c(2000,4000),odourRange=c(2000,3000))
Produce table of spiking responses (optionally subtracting baseline)
+
+
OdourResponseFromSpikes.Rd
+
Details: If baseline window is of different duration to response window
the baseline count is normalised to estimate the number of spikes that would have
@@ -95,11 +114,12 @@
Produce table of spiking responses (optionally subtracting baseline)
5s baseline window and you get 10 spikes in the response period and 5 spikes in
the baseline period, the response will be returned as 10-5/5 = 9 spikes.
+
#> ctr fly 4ol cVA
#> Min. :-1.50 Min. :-1.25 Min. :-1.50 Min. :-1.75
#> 1st Qu.:-0.75 1st Qu.:-0.75 1st Qu.:-1.00 1st Qu.:-1.00
#> Median :-0.25 Median :-0.75 Median :-0.50 Median :-0.50
@@ -147,12 +167,12 @@
Examp
#> Median :-0.25 Median :20.5
#> Mean : 0.10 Mean :21.1
#> 3rd Qu.: 0.25 3rd Qu.:23.0
-#> Max. : 2.00 Max. :24.0
#> ctr fly 4ol cVA IAA
#> Min. :0.0 Min. :0.5 Min. :0.5 Min. :0.0 Min. :0.5
#> 1st Qu.:0.5 1st Qu.:0.5 1st Qu.:1.0 1st Qu.:0.0 1st Qu.:0.5
#> Median :0.5 Median :1.5 Median :1.0 Median :1.0 Median :1.5
@@ -180,9 +200,7 @@
## Plot time range 2-4s with odour pulse 2-3s for sweeps 0,1,3PlotRasterFromSweeps(
- system.file('igor','spikes','nm20110811c0',package='gphys'),
- c(0,1,3),xlim=c(2000,4000),odourRange=c(2000,3000))
# Use rectangles for spikes instead
+ system.file('igor','spikes','nm20110811c0',package='gphys'),
+ c(0,1,3),xlim=c(2000,4000),odourRange=c(2000,3000))
# Use rectangles for spikes insteadPlotRasterFromSweeps(
- system.file('igor','spikes','nm20110811c0',package='gphys'),
- c(0,1,3),xlim=c(0,4000),odourRange=c(2000,3000),dotwidth=20,pch='rect')
## Fix a bad label, first define a function
+ system.file('igor','spikes','nm20110811c0',package='gphys'),
+ c(0,1,3),xlim=c(0,4000),odourRange=c(2000,3000),dotwidth=20,pch='rect')
## Fix a bad label, first define a function relabel=function(labels) {labels[labels=="fly"]="empty";labels}
## and then use itPlotRasterFromSweeps(
- system.file('igor','spikes','nm20110811c0',package='gphys'),
- c(0,1,3),relabelfun=relabel)
## Example with block based organisation
+ system.file('igor','spikes','nm20110811c0',package='gphys'),
+ c(0,1,3),relabelfun=relabel)
## Example with block based organisation ## i.e. spike files sorted into different subdirs for each stimulus protocolPlotRasterFromSweeps(
- system.file('igor','spikes','nm20120514c2',package='gphys'),
- subdir='BLOCKA',odourRange=c(2000,2500),xlim=c(0,5000))
## Example of fixing one of Jonny's traces when channels were mixed up
-fixVec=c(empty=31,IAA=30,cVA=29,PAA=27,`4ol`=26,ctr=25)
+ system.file('igor','spikes','nm20120514c2',package='gphys'),
+ subdir='BLOCKA',odourRange=c(2000,2500),xlim=c(0,5000))
## Example of fixing one of Jonny's traces when channels were mixed up
+fixVec=c(empty=31,IAA=30,cVA=29,PAA=27,`4ol`=26,ctr=25)
PlotRasterFromSweeps(
- system.file('igor','spikes','nm20110907c3',package='gphys'),
- subdir='BLOCKI',odourRange=c(2000,2500),xlim=c(0,5000),fixChannels=fixVec)
## Imagine a double odour stimulation
+ system.file('igor','spikes','nm20110907c3',package='gphys'),
+ subdir='BLOCKI',odourRange=c(2000,2500),xlim=c(0,5000),fixChannels=fixVec)
-
+
+
diff --git a/docs/reference/finder_colour.html b/docs/reference/finder_colour.html
index da14f12..01a08a8 100644
--- a/docs/reference/finder_colour.html
+++ b/docs/reference/finder_colour.html
@@ -1,6 +1,6 @@
-
+
@@ -9,31 +9,38 @@
Query the colour label of a file in the MacOS X Finder — finder_colour • gphys
-
+
-
-
+
+
-
+
-
+
+
+
+
-
-
-
+
+
+
+
+
+
-
+
+
@@ -79,20 +95,24 @@
-
+
Query the colour label of a file in the MacOS X Finder
+
+
finder_colour.Rd
+
Note the colours are mapped according to my 10.6.8 system but see:
http://stackoverflow.com/questions/2435580/tagging-files-with-colors-in-os-x-finder-from-shell-scripts
-
+
+
diff --git a/docs/reference/finder_colour_fast.html b/docs/reference/finder_colour_fast.html
index b355afc..f0fc3b6 100644
--- a/docs/reference/finder_colour_fast.html
+++ b/docs/reference/finder_colour_fast.html
@@ -1,6 +1,6 @@
-
+
@@ -9,24 +9,27 @@
Query the colour label of a file in the MacOS X Finder — finder_colour_fast • gphys
-
+
-
-
+
+
-
+
-
+
+
+
+
-
-
-
+
+
+
+
+
+
-
+
+
@@ -82,12 +98,15 @@
-
+
Query the colour label of a file in the MacOS X Finder
+
+
finder_colour_fast.Rd
+
Note this queries all the files in a single call to mdls, which can fail
for very long file lists (about 260k characters).
@@ -95,10 +114,11 @@
Query the colour label of a file in the MacOS X Finder
http://stackoverflow.com/questions/2435580/tagging-files-with-colors-in-os-x-finder-from-shell-scripts
Drops the file and gives a message if a file does not exist
+
Spike times read in from Igor Pro text files by CollectSpikesFromSweeps
are stored in R a modified list of S3 class spiketimes.
You can add, subset and split these lists - see spiketimes
@@ -109,9 +129,9 @@
Details
argument of PlotRasterFromSweeps - see function documentation for
examples.
Note that you may find it useful to set e.g.
-options(gphys.datadir='/Volumes/JData/JPeople/Jonny/physiology/data')
+options(gphys.datadir='/Volumes/JData/JPeople/Jonny/physiology/data')
appropriately at the start of a session or in your
-.Rprofile file. You can then use relative paths to
+.Rprofile file. You can then use relative paths to
your Igor data folders in the plot functions.
Finally as.repeatedTrain provides a bridge to the STAR
package which includes many spike analysis functions including (smoothed)
@@ -119,9 +139,9 @@
Set the colour label of a file in the MacOS X Finder
See http://stackoverflow.com/questions/2435580/tagging-files-with-colors-in-os-x-finder-from-shell-scripts
+ system.file('igor','spikes','nm20120514c2',package='gphys'),
+ subdir='BLOCKA')
+od=OdourResponseFromSpikes(spikes,response=c(2200,2700),baseline=c(0,2000))
+# NB we take mean response per odour since we must end up with one number
+# per odour per cell
+S=lifetime_sparseness(colMeans(od))
Combine multiple compatible spiketimes series (to plot as single raster)
+
+
plus-spiketimes.Rd
+
Details: this is designed for the case where you have loaded in multiple
pxp files into separate spiketimes lists, BUT the pxp files were all acquired
@@ -103,11 +122,12 @@
Combine multiple compatible spiketimes series (to plot as single raster)
Set the colour label of a file in the MacOS X Finder
See http://stackoverflow.com/questions/2435580/tagging-files-with-colors-in-os-x-finder-from-shell-scripts
+
+
set_finder_colour.Rd
+
Set the colour label of a file in the MacOS X Finder
See http://stackoverflow.com/questions/2435580/tagging-files-with-colors-in-os-x-finder-from-shell-scripts
See filter for details about sides argument.
sides=1 (ie backwards) makes sense if you want to measure the start of a
peak (latency). sides=2 (centred, the default) makes sense if you want to
measure the mid-timepoint of the peak itself.
Make spiketimes object (spike times + stimulus info) from list of dataframes
+
+
spiketimes.Rd
+
spiketimes objects consist of a list of dataframes reporting the time of
spikes. the data frames have two core columns Time and Wave. Time is the time
@@ -97,10 +116,11 @@
Make spiketimes object (spike times + stimulus info) from list of dataframes
Wave must have an entry, so if there are no spikes in e.g. Wave 2, an entry
of (Time=NA,Wave=2) will be required.
+
spiketimes(x, xlim, stimRange)
-
Arguments
+
Arguments
@@ -127,19 +147,19 @@
Details
block of waves that is repeated within a single pxp file or compatible blocks
from multiple pxp files. Use split.spiketimes to split a
spiketimes object loaded from a pxp file with repeated blocks and
-+.spiketimes to combine compatible blocks.
- CollectSpikesFromSweeps will generate a spiketimes object for
++.spiketimes to combine compatible blocks.
+
CollectSpikesFromSweeps will generate a spiketimes object for
you, so this function will only needed if you are constructing
spiketimes objects from scratch.
-
+
+
diff --git a/docs/reference/subset.spiketimes.html b/docs/reference/subset.spiketimes.html
index d7b31a5..26fab74 100644
--- a/docs/reference/subset.spiketimes.html
+++ b/docs/reference/subset.spiketimes.html
@@ -1,43 +1,47 @@
-
+
-Make a new spiketimes object containing only sweeps for an odour subset — subset.spiketimes • gphys
+Subset spiketimes object to contain only sweeps for an odour subset — subset.spiketimes • gphys
-
+
-
-
+
+
-
+
-
+
+
+
+
-
-
-
-
+
+
+
+
+second parameter is specified it will be interpreted as vector of odours if
+it is a character or channel ids if it is numeric." />
+
+
+
-
+
+
@@ -83,30 +96,31 @@
-
+
-
Make a new spiketimes object containing only sweeps for an odour subset
+
Subset spiketimes object to contain only sweeps for an odour subset
+
+
subset.spiketimes.Rd
+
NB the sweeps will be in the specified odour/channel order. If an unnamed
-second parameter is specified it will be interpreted as vector of odours
-if character or channel ids if numeric.
-NB If an odour name is duplicated in the oddconfig (e.g. ctr or oil, often)
-then it is not possible to use them in a subset expression and the channel
-number must be used instead.
+second parameter is specified it will be interpreted as vector of odours if
+it is a character or channel ids if it is numeric.
+
# S3 method for spiketimessubset(x, odours=NULL, channels=NULL, ...)
-
Arguments
+
Arguments
x
-
The old spiketimes object
+
The original spiketimes object
odours
@@ -118,7 +132,8 @@
Ar
...
-
further arguments to be passed to or from other methods.
+
further arguments to be passed to or from other methods (currently
+ignored)
@@ -126,13 +141,18 @@
Value
spiketimes object restricted to specified odours or channels
+
Details
+
+
If an odour name is duplicated in the oddconfig (e.g. ctr or oil, often) then
+a warning will be given and the first matching sweep(s) will be used.