<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>xcorr: computational neuroscience</title>
	<atom:link href="http://xcorr.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://xcorr.net</link>
	<description>computational neuroscience, vision research, matlab, and whatnot</description>
	<lastBuildDate>Fri, 27 Jan 2012 19:15:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='xcorr.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/94d0e6fa20d31eece133a3a9be4da735?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>xcorr: computational neuroscience</title>
		<link>http://xcorr.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://xcorr.net/osd.xml" title="xcorr: computational neuroscience" />
	<atom:link rel='hub' href='http://xcorr.net/?pushpress=hub'/>
		<item>
		<title>Setting up a cluster for the analysis of neural array data</title>
		<link>http://xcorr.net/2012/01/17/setting-up-a-cluster-for-the-analysis-of-neural-array-data/</link>
		<comments>http://xcorr.net/2012/01/17/setting-up-a-cluster-for-the-analysis-of-neural-array-data/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 23:25:04 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Neural signal processing]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=985</guid>
		<description><![CDATA[As I&#8217;ve mentioned before, we&#8217;ve been recording from a Utah array for more than a year now. We use a custom Plexon MAP system that allows for the recording of wideband data at 10 kHz over 96 channels. This custom configuration was requested so that we can get spike-free LFPs by preprocessing wideband data with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=985&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;ve mentioned before, we&#8217;ve been recording from a Utah array for more than a year now. We use a custom <a href="http://www.plexon.com/product/Multichannel_Acquisition_Processor__MAP__.html">Plexon MAP system</a> that allows for the recording of wideband data at 10 kHz over 96 channels. This custom configuration was requested so that we can get spike-free LFPs by preprocessing wideband data with the spike-removal algorithm derived in <a href="http://packlab.mcgill.ca/zanosmineaultpack11.pdf">Zanos, Mineault &amp; Pack</a> (2011). Such an arrangement generates an immense amount of data that needs to be moved around, backed up, filtered, and sorted.</p>
<p>Early on, we decided to set up a cluster of computers that could be used by anybody working on the Utah array data. Each computer in this cluster would be indistinguishable from the next; it would be accessed almost exclusively remotely; it would have local access to all the array data; and would have a decent CPU and a bucket of RAM. Getting all the pieces working well together was a challenge, and I hope that you can learn a thing or two from my experiences.</p>
<h3>Hardware and OS setup</h3>
<p>Here&#8217;s a picture of the array:</p>
<p><a href="http://xcorr.files.wordpress.com/2012/01/photo-3.jpg"><img title="photo 3" src="http://xcorr.files.wordpress.com/2012/01/photo-3.jpg?w=540&#038;h=424" alt="" width="540" height="424" /></a></p>
<p>At the bottom, you can see the 4 identical computers. Each has an <a href="http://en.wikipedia.org/wiki/Intel_Core#Core_i7">i7 920</a> Intel CPU, 12 GB of RAM (6&#215;2 GB, upgradeable to 24 GB), a very small internal hard drive, an on-board video card, and that&#8217;s pretty much it. Drone 1 (on the left) is connected to an external housing that can contain up to 4 hard drives (the small case on top of the computer with the blue lights); currently it&#8217;s housing 3x 2TB drives for a total of 6 TB. This external stack is connected to drone 1 through <a href="http://en.wikipedia.org/wiki/Serial_ATA#eSATA">eSATA</a>, which is a type of connection that allows essentially the same access speed as if the hard drives were connected internally (up to 3GB/s bandwidth I think).</p>
<p>To give the other computers access to the data in the housing, it was essential to get them all on the same fast network. The MNI&#8217;s internal network is capped at 100 Mbits/s (~12MBytes/s), so I decided to connect them through their own fast internal network. This was done through the Gigabit (1 Gbit/s, or ~120 MBytes/s) router sitting on top of the third computer. Due to some internal policies from the computer service at McGill, it was also necessary to connect each of these computers individually to the McGill network. Hence an extra Gigabit Ethernet card was installed in each computer.</p>
<p>I installed <a href="http://www.ubuntu.com/">Ubuntu</a> on drone 1, as well as the relevant scientific software: Matlab, R, <a href="http://rkward.sourceforge.net/">RKWard</a>, etc. I also installed <a href="http://www.nomachine.com/">NX</a>, which is a wonderful remote desktop server that allows ones to access these Linux computers externally from your platform of choice, whether Windows, Mac, or Linux. It compresses X11 traffic and is remarkably efficient; one can quite comfortably work from home on these computers despite small bandwidth. I used <a href="http://www.no-ip.com/">no-ip.com</a> to provide a simple internet address for the drones as opposed to a hard-to-remember IP.</p>
<p>Once everything was installed on drone 1, I cloned the drive three times to derive the 3 other computers, saving much time.</p>
<p>To give access to the data from the other computers, I used <a href="https://help.ubuntu.com/community/SSHFS">sshfs</a>, which allows one to automatically mount a remote hard drive through ssh in a 100% automagic manner. Using symlinks, I  arranged it so that every computer could access the data from the same (~/ArrayData) location. Thus, from the perspective of a remote user, all drones have the same software and access the same data. A similar system was used for documents (ie. m files).</p>
<h3>Automated fetching and backup pipeline</h3>
<p>Next, I sought to automate the process of getting the data from the recording computers. Two computers are used to record the data: a Mac which does the presentation through homebrew <a href="http://psychtoolbox.org/HomePage">Psychtoolbox</a>-based software, and a PC which records .PLX files from the Plexon MAP box. We agreed to use a consistent naming scheme for experiments: a letter (representing which physical hard drive the data will eventually be put in), three digits (for the recording day), and another letter (or letters) for each experiment on this recording day.</p>
<p><a href="http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol">SFTP</a> servers were installed on both the Mac and PC to allow external access to the data from the drones. I then wrote a Python script which fetches the data from a particular experiment (say, c012b) from both the PC and Mac and reads metadata in .mat files from the Mac and the .plx file from the PC and spits out usable files. <a href="http://xcorr.net/2011/09/12/reading-plx-files-in-maclinux-a-python-script/">I used the PLX reader modified from OpenElectrophy that I discussed earlier</a>, as well as the MatIO library from reading .mat files in Python that is part of <a href="http://www.scipy.org/">SciPy</a>.</p>
<p>Using this script is pretty simple; one simply needs to type in the command <code>sudo python fetchAndConvert.py -e c012a</code> to fetch and convert experiment c012a. It&#8217;s also possible to fetch and convert an entire day with the same software.</p>
<p>The software first creates a fixed directory structure; for experiment c012a it first creates the root folder ~/c/c012/c012a. Under this folder it creates several sub folders, include /plx, which contains the original plx file, /mat, which contains plx data after it&#8217;s been processed in a format that matlab can read, and /ml, which contains the data from Mac.</p>
<p><a href="http://xcorr.files.wordpress.com/2012/01/screenshot.png"><img class="aligncenter size-full wp-image-992" title="Screenshot" src="http://xcorr.files.wordpress.com/2012/01/screenshot.png?w=540&#038;h=374" alt="" width="540" height="374" /></a></p>
<p>Each of the mat/expName_chxxx files are sequences of 16-bit integers describing the 10kHz wideband <a href="http://xcorr.net/2011/05/25/baudline-software-for-viewing-long-neural-recordings-on-linux/">which can be read directly in Baudline</a>, as previously discussed, and in Matlab using fread.</p>
<p><a href="http://xcorr.files.wordpress.com/2012/01/screenshot-2.png"><img class="aligncenter size-full wp-image-991" title="Screenshot-2" src="http://xcorr.files.wordpress.com/2012/01/screenshot-2.png?w=540&#038;h=355" alt="" width="540" height="355" /></a></p>
<p>The python file also creates some notes.txt files which are derived from the metadata from the Mac, and describe the experimental parameters. These notes can be visualized in a plain text editor, or in the Experiment Notes app. This is a very simple app made through <a href="http://www.riverbankcomputing.co.uk/software/pyqt/intro">PyQT</a> that shows notes, allows one to view sorted spikes (more on this later) and so forth.The data is directly loaded from the directory structure and notes.txt files, rather than from a database. Looking back at this, this wasn&#8217;t the smartest idea; it takes a while for the app to traverse the directory structure, and it would be easier and more flexible to use a database (MySQL or SQLite for example) to store the information rather than flat files.</p>
<p>Using a fixed directory structure makes it straightforward to automate backing up tasks. I have a <a href="http://en.wikipedia.org/wiki/Cron">cron job</a> set up on drone 1 that starts the <a href="http://www.cis.upenn.edu/~bcpierce/unison/">Unison</a> synching app twice a week. The data and analysis files are backed up to a remote <a href="http://www.buffalotech.com/products/network-storage/terastation/">Terastation</a>.</p>
<h3>Automated spike sorting</h3>
<p>Once the data is fetched and reformatted in a way that Matlab can understand it, the raw wideband data is filtered and spikes are detected and sorted with the help of Wave_clus. <a href="http://bytesandspikes.tumblr.com/">Kyler Brown</a> heavily modifed the <a href="http://vis.caltech.edu/~rodri/Wave_clus/Wave_clus_home.htm">Wave_clus</a> codebase and created a secondary GUI to enable this. The user first opens the GUI and selects a .mat file in the mat directory of the experiment to be sorted:</p>
<p><a href="http://xcorr.files.wordpress.com/2012/01/screenshot-3.png"><img class="aligncenter size-full wp-image-990" title="Screenshot-3" src="http://xcorr.files.wordpress.com/2012/01/screenshot-3.png?w=540&#038;h=298" alt="" width="540" height="298" /></a></p>
<p>Pressing the sort button starts the sorting process. This can take a long time, hence an option was added that sends an email to the relevant people whenever this first (automated) sorting phase is finished. Obviously, it would be feasible to notify the user through other means, like text messaging, if desired.</p>
<p><a href="http://xcorr.files.wordpress.com/2012/01/screenshot-6.png"><img class="aligncenter size-full wp-image-987" title="Screenshot-6" src="http://xcorr.files.wordpress.com/2012/01/screenshot-6.png?w=540&#038;h=355" alt="" width="540" height="355" /></a></p>
<p>Once the file is automatically sorted, by selecting the review option the user can tweak sorting through an interface ripped from wave_clus. The interface takes screenshots whenever the user views a channel and places them in the mat folder; these can then be accessed through the Experiment Notes app.</p>
<p>Once the sorting has been reviewed, the user returns to the original GUI and selects another option to use the currently selected experiment as a template for sorting other experiments on the same day.</p>
<p><a href="http://xcorr.files.wordpress.com/2012/01/screenshot-5.png"><img class="aligncenter size-full wp-image-988" title="Screenshot-5" src="http://xcorr.files.wordpress.com/2012/01/screenshot-5.png?w=540&#038;h=296" alt="" width="540" height="296" /></a></p>
<p>LFPs are also derived automatically in a separate step after spike sorting using the software I wrote for Zanos, Mineault and Pack (2011).</p>
<h3>Conclusion</h3>
<p>Dealing with large amounts of neurophysiological data is a challenge. I&#8217;ve shared with you how we dealt with this by building a cluster. I&#8217;m pretty happy with the chosen solution, although alternative setups would be workable. One possibility is that instead of setting up a cluster, a single computer dedicated to fetching, storing data is created. This is a workable arrangement if a fast enough link is available between the analysis computers and the storage computer. Once the data is sorted (for spikes) or downsampled (for LFPs), the amount of data that needs to be transferred between computers is sufficiently small that it can be comfortable to work with over a standard 100 Mbit/s network. I do think however that it&#8217;s not a good idea to use an entirely decentralized system where sorting is done on the analysis computers; too much data needs to be moved around and sharing the data between analyzers is a pain.</p>
<p>Creating scripts to automate fetching and preprocessing I think was a very good idea; it guarantees that the data structure is the same for every experiment. This makes it easier to automate other aspects of the preprocessing like spike sorting.</p>
<p>People use different methods to keep track of the experiments they perform; this can span from experimental notebooks to Excel worksheets to more sophisticated solutions like that enabled by OpenElectrophy. The Experiment Notes app allows central tracking of the experiments performed. <a href="http://neuralensemble.org/trac/OpenElectrophy">OpenElectrophy</a> has a similar functionality, and it would probably have been less trouble to simply use this ready made solution than rolling out our own.</p>
<p>As far as spike sorting goes, it should be possible to use to use proprietary software like <a href="http://www.plexon.com/product/Offline_Sorter.html">Plexon&#8217;s spike sorter</a> rather than a homebrew solution. There are several issues with this: it requires the use of Windows; it costs a lot of money; everything is GUI-driven and it seems like it would be a pain to automate; I don&#8217;t have the type of fine-grained control over filters and processing that I have with a homebrew solution. I like the algorithm implemented in wave_clus; it&#8217;s semi-supervised and manual adjustments are rarely necessary.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/985/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=985&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2012/01/17/setting-up-a-cluster-for-the-analysis-of-neural-array-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2012/01/photo-3.jpg" medium="image">
			<media:title type="html">photo 3</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2012/01/screenshot.png" medium="image">
			<media:title type="html">Screenshot</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2012/01/screenshot-2.png" medium="image">
			<media:title type="html">Screenshot-2</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2012/01/screenshot-3.png" medium="image">
			<media:title type="html">Screenshot-3</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2012/01/screenshot-6.png" medium="image">
			<media:title type="html">Screenshot-6</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2012/01/screenshot-5.png" medium="image">
			<media:title type="html">Screenshot-5</media:title>
		</media:content>
	</item>
		<item>
		<title>Non-negative sparse priors</title>
		<link>http://xcorr.net/2012/01/05/non-negative-sparse-priors/</link>
		<comments>http://xcorr.net/2012/01/05/non-negative-sparse-priors/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 21:59:52 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[GLMs]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[Matlab]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=978</guid>
		<description><![CDATA[Sparseness priors, which impose that most of the weights are small or zero, are very effective in constraining regression problems. The prototypical sparseness prior is the Laplacian prior (aka L1-prior), which imposes a penalty on the absolute value of individual weights. Regression problems (and GLMs) with Laplacian priors can be easily solved by Maximum a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=978&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sparseness priors, which impose that most of the weights are small or zero, are very effective in constraining regression problems. The prototypical sparseness prior is the Laplacian prior (aka L1-prior), which imposes a penalty on the absolute value of individual weights. Regression problems (and GLMs) with Laplacian priors can be easily solved by Maximum a Posteriori methods; the negative log-posterior is convex in the model parameters.</p>
<p>It&#8217;s also possible to assume that model weights are non-negative, in addition to being sparse. Such non-negative sparse priors are less frequently used that straight sparseness priors, but they can be useful from time to time. You might have a model where model parameters cannot logically be negative, on physical grounds. Or you might want to express a database of images as a sum of features.</p>
<p>Perhaps surprisingly, it&#8217;s pretty easy to solve for such problems. Patrik Hoyer shows in his non-negative sparse coding paper how to solve for model weights using a <a href="http://www.cs.helsinki.fi/u/phoyer/papers/ps/nnsc.ps">simple iterative method here</a>. <a href="http://www.cs.helsinki.fi/u/phoyer/software.html">He has software available</a> which implements non-negative sparse coding, non-negative matrix factorization, and associated algorithms.</p>
<p>YALL1 (Your ALgorithms for L1) <a href="http://yall1.blogs.rice.edu/">is a Matlab package which can solve many problems related to L1</a>. This includes what it calls the <a href="http://yall1.blogs.rice.edu/">L1/L2+ problem</a>, <img src='http://s0.wp.com/latex.php?latex=%5Carg+%5Cmin+%7C%7Cx%7C%7C_1+%2B+%281%2F2%5Crho%29%7C%7CAx+-+b%7C%7C_2%5E2&amp;bg=ffffff&amp;fg=444444&amp;s=0' alt='&#92;arg &#92;min ||x||_1 + (1/2&#92;rho)||Ax - b||_2^2' title='&#92;arg &#92;min ||x||_1 + (1/2&#92;rho)||Ax - b||_2^2' class='latex' /> such that <img src='http://s0.wp.com/latex.php?latex=x+%5Cge+0&amp;bg=ffffff&amp;fg=444444&amp;s=0' alt='x &#92;ge 0' title='x &#92;ge 0' class='latex' />.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/978/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/978/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/978/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/978/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/978/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/978/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/978/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/978/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/978/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/978/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/978/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/978/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/978/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/978/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=978&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2012/01/05/non-negative-sparse-priors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>
	</item>
		<item>
		<title>Bounds on accountable deviance in Generalized Linear Models</title>
		<link>http://xcorr.net/2011/12/20/bounds-on-accountable-deviance-in-generalized-linear-models/</link>
		<comments>http://xcorr.net/2011/12/20/bounds-on-accountable-deviance-in-generalized-linear-models/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 21:53:14 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[Psychophysics]]></category>
		<category><![CDATA[Receptive field estimation]]></category>
		<category><![CDATA[Unpublished results]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=975</guid>
		<description><![CDATA[The quality of fit in Generalized Linear Models (GLMs) is usually quantified by the deviance, or twice the negative log-likelihood. When there&#8217;s a high level of noise in the data, it&#8217;s difficult to interpret the deviance directly; the lower bound for the deviance doesn&#8217;t take into account noise, and is much too low. I had [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=975&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The quality of fit in Generalized Linear Models (GLMs) is usually quantified by the deviance, or twice the negative log-likelihood. When there&#8217;s a high level of noise in the data, it&#8217;s difficult to interpret the deviance directly; the lower bound for the deviance doesn&#8217;t take into account noise, and is much too low. I had come up with a way of estimating a bound on the accountable deviance, in the same vein as <a href="http://books.nips.cc/papers/files/nips15/NS02.pdf">Sahani &amp; Linden (2003)</a>, for the case of a logistic regression GLM for <a href="http://www.journalofvision.org/content/9/10/17.full">our classification image paper</a>. It didn&#8217;t make the cut, but I still think it&#8217;s interesting and with some beefing up it could be useful in both classification image and reverse correlation experiments.</p>
<p>The idea is to find out the expected deviance of an oracle (EDO), which knows the internal decision process of the observer with perfect accuracy, minus the value of the internal noise. As it turns out, the only thing that matters for the EDO is the distribution of the internal variable (in the case logistic regression, 1/(1+exp(-eta))) across trials. This distribution can be estimated from observer-observer consistency data (repeated trials). I considered three cases: the internal variable has a beta distribution or one of two discrete distribution which I conjecture give lower and higher bounds for the EDO. I could never prove that these conjectured bounds are real bounds but it&#8217;s supported by some simulations.</p>
<p>Here&#8217;s the <a href="http://xcorr.files.wordpress.com/2011/12/ci_consistency_appendix.pdf">appendix</a> (the references are broken, and it will make more sense in the context of our <a href="http://www.journalofvision.org/content/9/10/17.full">classification image paper</a>).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/975/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/975/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/975/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/975/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/975/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/975/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/975/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/975/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/975/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/975/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/975/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/975/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/975/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/975/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=975&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2011/12/20/bounds-on-accountable-deviance-in-generalized-linear-models/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>
	</item>
		<item>
		<title>Denoising and spike detection in a Utah array</title>
		<link>http://xcorr.net/2011/12/16/denoising-and-spike-detection-in-a-utah-array/</link>
		<comments>http://xcorr.net/2011/12/16/denoising-and-spike-detection-in-a-utah-array/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 01:03:18 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[Neural signal processing]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=964</guid>
		<description><![CDATA[Our V4 Utah array died last week&#8230; and then it worked again this week. It&#8217;s pretty amazing that it&#8217;s still up and running after about 18 months. It&#8217;s gettting noisier, however, and increasingly what&#8217;s being recorded is mostly multi-unit activity (MUA). To have any chance of detecting single units, it&#8217;s therefore quite important to denoise [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=964&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Our V4 Utah array died last week&#8230; and then it worked again this week. It&#8217;s pretty amazing that it&#8217;s still up and running after about 18 months. It&#8217;s gettting noisier, however, and increasingly what&#8217;s being recorded is mostly multi-unit activity (MUA).</p>
<p>To have any chance of detecting single units, it&#8217;s therefore quite important to denoise and optimally preprocess the signal. Here&#8217;s a rundown of how I do it. It took a lot of tinkering to get everything right, but I&#8217;m pretty satisfied with the results.<a href="http://xcorr.files.wordpress.com/2011/12/screenshot.png"><img class="aligncenter size-full wp-image-966" title="Screenshot" src="http://xcorr.files.wordpress.com/2011/12/screenshot.png?w=540&#038;h=560" alt="" width="540" height="560" /></a></p>
<p>Of course, it&#8217;s important to avoid electrical interference, minimize line noise, use a Faraday cage, patch up some foil around leaky connections, etc. If you have the raw signals available, as opposed to only the waveform snippets, then you can do some more denoising offline. We sample every channel at 10 kHz. Here&#8217;s an example of one such channel, with a single good-sized spike on the right-hand side, as well as its time-changing power spectrum below.</p>
<p>As you can see, there&#8217;s only a little bit of line noise around 60Hz. More importantly, there&#8217;s no visible line noise harmonics around 180 Hz, 300 Hz, etc. The 60 Hz noise you can get rid of pretty easily by high-pass filtering, but the harmonics overlap the power spectrum of the spikes, so ideally you want to keep them to a minimum.</p>
<p>To detect spikes efficiently, it&#8217;s best to start by re-referencing the wideband channels. This will get rid of a lot of common noise, reward artifacts, etc. Take a look at the raw cross-correlations of the 96 channels:</p>
<p><a href="http://xcorr.files.wordpress.com/2011/12/crosscorr.png"><img class="aligncenter size-full wp-image-967" title="crosscorr" src="http://xcorr.files.wordpress.com/2011/12/crosscorr.png?w=540" alt=""   /></a></p>
<p>Clearly most channels are highly correlated; that&#8217;s normal, since the electrodes only cover about 4 mm of cortex, and low frequency are strongly spatially correlated. Now let&#8217;s look at the cross-correlations after high-pass filtering the wideband data (using diff in Matlab):</p>
<p><a href="http://xcorr.files.wordpress.com/2011/12/crosscorrhipass.png"><img class="aligncenter size-full wp-image-968" title="crosscorrhipass" src="http://xcorr.files.wordpress.com/2011/12/crosscorrhipass.png?w=540" alt=""   /></a></p>
<p>Now we see a much different pattern. High-frequency information tends to be correlated in groups of 16 electrodes. The way the array is wired up, electrodes 1-16 are not necessarily close together on the array. However, they get sent together from the array to the amplifier on the same wire. That means that the correlation pattern that we&#8217;re seeing is probably common electrical noise.</p>
<p>Thus, I reference each electrode against the truncated mean of the group of 16 electrodes that it belongs to. I use the truncated mean (taking the mean of samples minus the largest and smallest 2) rather than the mean so that non-common high frequency information (ie spikes) don&#8217;t bleed across electrodes.</p>
<p>Next, I upsample the wideband data to 40kHz with cubic splines (csapi). I band pass filter with this snippet of code:</p>
<p><pre class="brush: matlabkey;">
Wn = [500,6000]/40000*2;
[ha,hb] = ellip(2,.1,40,Wn);
upSampData = filtfilt(ha,hb,upSampData);
</pre></p>
<p>It&#8217;s pretty important, I&#8217;ve found, to use a filter which has a slow rolloff on either side of a passband, otherwise you get artifacts. After that, it&#8217;s pretty straightforward to detect spikes by thresholding. I use the median absolute deviation (mad) estimator for the noise power, and set the threshold to 4.4 times the standard deviation.</p>
<p>This gives me a bank of spikes which are aligned at their peak. Initially, I ran <a href="http://vis.caltech.edu/~rodri/Wave_clus/Wave_clus_home.htm">WaveClus</a> directly on these snippets. However, it can be helpful to redo <a href="http://www.tsolab.org/jclub/20090429/lewicki.pdf">detection based on optimal filter</a> based on the bank of spikes detected in the first round.</p>
<p>In theory optimal detection is straightforward. Assuming the noise of the signal is white, it simply involves convolving the signal with the template one wants to find. However it&#8217;s a bad idea to whiten the signal after upsampling.</p>
<p>So what I do instead is this. I take the mean spike from the first round, and filter it twice with a pseudo-noise-whitening matrix. I say pseudo, because if you take noise snippets and compute the covariance of the noise, you&#8217;ll find that it&#8217;s very poorly conditioned. If E is the noise covariance matrix, I add 5*eye(128)+.2*diag(((1:128)-56).^2) before taking the eigendecomposition to form a whitening matrix. 56 is the time sample where the peak of the waveform is located. Adding a quadratic term to the diagonal of the covariance matrix ensures that the whitening filter only acts on the area of the spike that contains the peak. Here&#8217;s the spike on the left, the (pseudo) whitening matrix in the middle, and the spike after double-whitening. You can see that unlike with a true whitening filter, the double-whitened spike acts locally.</p>
<p><a href="http://xcorr.files.wordpress.com/2011/12/whitenedspike.png"><img class="aligncenter size-full wp-image-969" title="whitenedspike" src="http://xcorr.files.wordpress.com/2011/12/whitenedspike.png?w=540&#038;h=166" alt="" width="540" height="166" /></a></p>
<p>Redetection can be quite helpful for spikes which who are just on the edge of the threshold. Here&#8217;s the distribution of the (negative of) the band-pass signal for one electrode. You can see that there&#8217;s a pedestal like feature on the right which indicates that there&#8217;s some spikes there. If you look only at the local maxima of the signal (right plot), however, you&#8217;ll notice that a threshold (shown in blue) can&#8217;t separate this activity from the noise very well.</p>
<p><a href="http://xcorr.files.wordpress.com/2011/12/distrobefore.png"><img class="aligncenter size-full wp-image-970" title="distrobefore" src="http://xcorr.files.wordpress.com/2011/12/distrobefore.png?w=540&#038;h=172" alt="" width="540" height="172" /></a></p>
<p>Once you optimally filter, however, you get the distributions below. Notice that the optimal filter moves the spikes out of the background noise distribution, so that it can quite clearly be separated using a simple threshold. After this, all that is left to do is sort the spike snippets in WaveClus.</p>
<p><a href="http://xcorr.files.wordpress.com/2011/12/distroafter.png"><img class="aligncenter size-full wp-image-971" title="distroafter" src="http://xcorr.files.wordpress.com/2011/12/distroafter.png?w=540&#038;h=175" alt="" width="540" height="175" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/964/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=964&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2011/12/16/denoising-and-spike-detection-in-a-utah-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/12/screenshot.png" medium="image">
			<media:title type="html">Screenshot</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/12/crosscorr.png" medium="image">
			<media:title type="html">crosscorr</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/12/crosscorrhipass.png" medium="image">
			<media:title type="html">crosscorrhipass</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/12/whitenedspike.png" medium="image">
			<media:title type="html">whitenedspike</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/12/distrobefore.png" medium="image">
			<media:title type="html">distrobefore</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/12/distroafter.png" medium="image">
			<media:title type="html">distroafter</media:title>
		</media:content>
	</item>
		<item>
		<title>Optimizing GLM hyperparameters through the evidence</title>
		<link>http://xcorr.net/2011/12/07/optimizing-glm-hyperparameters-through-the-evidence/</link>
		<comments>http://xcorr.net/2011/12/07/optimizing-glm-hyperparameters-through-the-evidence/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 04:01:50 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=954</guid>
		<description><![CDATA[I wrote earlier about a recent paper by the Pillow lab which uses priors optimized through the evidence (aka marginal likelihood) to estimate spatially and frequency-localized receptive fields. It seems that evidence optimization might be seeing something of a revival as a technique for estimating model hyperparameters. I just posted an update on my GLM [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=954&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://xcorr.net/2011/10/29/localized-priors-for-receptive-field-estimation/">I wrote earlier</a> about a recent paper by the Pillow lab which uses priors optimized through the evidence (aka marginal likelihood) to estimate spatially and frequency-localized receptive fields. It seems that evidence optimization might be seeing something of a revival as a technique for estimating model hyperparameters. I just posted an update on my <a href="http://xcorr.net/2011/06/06/generalized-linear-models-with-gaussian-priors-quadratic-penalties-matlab-code/">GLM with quadratic penalties package</a> to use this technique.</p>
<p>Specifically, we can assume that the prior in a GLM is given by <img src='http://s0.wp.com/latex.php?latex=N%280%2CQ%5E%7B-1%7D%29&amp;bg=ffffff&amp;fg=444444&amp;s=0' alt='N(0,Q^{-1})' title='N(0,Q^{-1})' class='latex' />, where the precision Q is given by:</p>
<p><img src='http://s0.wp.com/latex.php?latex=Q+%3D+Q_0+%2B+%5Csum_i+%5Clambda_i+Q_i&amp;bg=ffffff&amp;fg=444444&amp;s=0' alt='Q = Q_0 + &#92;sum_i &#92;lambda_i Q_i' title='Q = Q_0 + &#92;sum_i &#92;lambda_i Q_i' class='latex' /></p>
<p>Then the hyperparameters <img src='http://s0.wp.com/latex.php?latex=%5Clambda_i&amp;bg=ffffff&amp;fg=444444&amp;s=0' alt='&#92;lambda_i' title='&#92;lambda_i' class='latex' /> are selected by optimizing the evidence of the model via trust-region Newton, following a Laplace approximation of the posterior (Bishop, Chapters 3-5). One application of this is in models where the parameters are organized into two or more dimensions (say, x and y or space and time). Then, it&#8217;s natural to add a penalty for the smoothness of the parameters along one dimension and a second for the other dimension. What you get is a form of <a href="http://books.nips.cc/papers/files/nips15/NS26.pdf">Automatic Smoothness Determination</a> (ASD). Here&#8217;s an example of applying this in a logistic regression model where the filter is a 2D Gabor:</p>
<p><a href="http://xcorr.files.wordpress.com/2011/12/example.png"><img class="aligncenter size-full wp-image-955" title="example" src="http://xcorr.files.wordpress.com/2011/12/example.png?w=540&#038;h=165" alt="" width="540" height="165" /></a></p>
<p>The precision is sufficiently flexible to accommodate interesting model structure. For example, <a href="http://www.abstractsonline.com/Plan/ViewAbstract.aspx?sKey=ab7645e7-ad4d-46a7-87a6-d5586232b58d&amp;cKey=3f700652-5ed1-4fa3-8bcf-12aecaed6aa6&amp;mKey={8334BE29-8911-4991-8C31-32B32DD5E6C8}">in the poster that Theo and I presented</a> at SFN, I used it to track functional connectivity as a function of time. Functional connectivity can be estimated by using the firing patterns of other neurons as inputs to a GLM whose output is the target neuron. Each functional connection is defined by 3 parameters, corresponding to Laguerre basis functions. Only a handful of possible connections will turn out to be significant; therefore, it&#8217;s natural to impose a penalty on the magnitude of each group of 3 parameters. Now if in addition we let these parameters change over time, it&#8217;s also possible to add one smoothness penalty per group of 3 parameters. In total, we had 28 cells, hence 27 inputs for a given cell; thus, <img src='http://s0.wp.com/latex.php?latex=Q_1&amp;bg=ffffff&amp;fg=444444&amp;s=0' alt='Q_1' title='Q_1' class='latex' /> through <img src='http://s0.wp.com/latex.php?latex=Q_%7B27%7D&amp;bg=ffffff&amp;fg=444444&amp;s=0' alt='Q_{27}' title='Q_{27}' class='latex' /> were used to impose group sparseness, and <img src='http://s0.wp.com/latex.php?latex=Q_%7B28%7D&amp;bg=ffffff&amp;fg=444444&amp;s=0' alt='Q_{28}' title='Q_{28}' class='latex' /> through <img src='http://s0.wp.com/latex.php?latex=Q_%7B54%7D&amp;bg=ffffff&amp;fg=444444&amp;s=0' alt='Q_{54}' title='Q_{54}' class='latex' /> were used for temporal smoothness.</p>
<p><a href="http://www.mathworks.com/matlabcentral/fileexchange/31661">You can download the software here.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/954/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=954&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2011/12/07/optimizing-glm-hyperparameters-through-the-evidence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/12/example.png" medium="image">
			<media:title type="html">example</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrate-and-fire neurons within the GLM framework</title>
		<link>http://xcorr.net/2011/11/28/integrate-and-fire-neurons-within-the-glm-framework/</link>
		<comments>http://xcorr.net/2011/11/28/integrate-and-fire-neurons-within-the-glm-framework/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 01:51:46 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[GLMs]]></category>
		<category><![CDATA[Spiking neuron models]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=751</guid>
		<description><![CDATA[Generalized linear models are very useful in modeling neural responses to dynamic stimuli. The Poisson-exponential GLM is the basis of many recent descriptions of responses in the retina, LGN and visual cortex. The Poisson-exponential GLM accounts for some aspects of neuronal data not well accounted for by earlier methods like reverse correlation; in particular, the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=751&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Generalized_linear_model">Generalized linear models</a> are very useful in modeling neural responses to dynamic stimuli. The Poisson-exponential GLM is the basis of many recent descriptions of responses in the retina, LGN and visual cortex. The Poisson-exponential GLM accounts for some aspects of neuronal data not well accounted for by earlier methods like reverse correlation; in particular, the fact that neuronal responses are necessarily positive and that variance scales with the mean of the response.</p>
<p>Of course, the description of neurons using Poisson GLMs abstracts away most biophysical facts about neuronal integration. Somewhere between the Poisson GLM and highly detailed compartmental models of neurons lies the <a href="http://lcn.epfl.ch/~gerstner/SPNM/node26.html">integrate-and-fire (IF) neuron model</a>. IF models assume that the neuron integrates neuronal input until is reaches a threshold, after which it is reset. This can account for certain aspects of neuronal data not accounted for by Poisson GLMs. Among them, there is the fact that neurons frequently show nonlinear phase shifts as their drive is increased. Typically, with a stronger stimulus the neuronal response will not only be stronger but also of shorter latency. This is explained in IF models by the fact that neurons will take less time to reach threshold with stronger inputs.</p>
<p><a href="http://www.cns.nyu.edu/ftp/eero/paninski04-preprint.pdf">IF models are a bitch to fit, however</a>. It would be really nice if you could get IF-like effects within a much-easier-to-fit GLM. Paninski (2004) has some hints that this is possible. The idea is to leverage the fact that it possible to integrate spike history effects in a GLM. The traditional way of doing this is to add regressors to the design matrix containing the time-lagged spikes. This allows one to model both the absolute and relative refractory period of neurons, among other things. The result is similar to an autoregressive model with exogenous inputs.</p>
<p>It&#8217;s possible to extend this spike-history GLM so that it not only modifies the gain of the neuron after firing but also its temporal filter. In the IF model, right after a spike, the neuron is emptied of its input. This is equivalent to saying that following a spike, its time filter is truncated so that it only integrates over time periods following the latest spike. It&#8217;s easy to modify the design matrix of a GLM so that following a spike, inputs before this critical time are set to 0.</p>
<p>Now there are some problems in applying this idea directly. In the traditional IF model, the temporal filter is an exponential. In a typical GLM, the shape of the temporal filter is determined by the data; it will peak after some latency, and it might be bimodal. With a naive application of the IF-GLM, the entire input would be wiped out after a spike, and the cell would only reach full gain after an amount of time equal to its latency. Thus, at the very least, an IF-GLM should account for the latency of the neuron.</p>
<p>Furthermore, since there are many stages of temporal integration between the sensory input and the neuron, the nonlinear integration effects of IF neurons will be smeared out. It might be better if instead of assuming that the temporal filter is emptied after a spike, it is simply changed, and let the data decide what exactly those changes are. Such a GLM with a spike-history-dependent temporal filter is very similar to the <a href="http://lcn.epfl.ch/~gerstner/SPNM/node27.html#SECTION02321000000000000000">Spike Response Model (SRM) of Gerstner</a>. <a href="http://lcn.epfl.ch/~naud/pubs/GLM_nips2011_footnote.pdf">Here&#8217;s a very recent NIPS paper examining the link between an integrate-and-fire model and a GLM</a>.</p>
<p>While I haven&#8217;t seen any applications of IF-GLMs and SRM-GLMs in the literature as of yet, it will be interesting to see if models which better account for nonlinear temporal integration can explain some of the variance discrepancy in visual cortex.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/751/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=751&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2011/11/28/integrate-and-fire-neurons-within-the-glm-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>
	</item>
		<item>
		<title>Comp Neuro News: a news aggregrator</title>
		<link>http://xcorr.net/2011/11/23/comp-neuro-news-a-news-aggregrator/</link>
		<comments>http://xcorr.net/2011/11/23/comp-neuro-news-a-news-aggregrator/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 16:34:15 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=948</guid>
		<description><![CDATA[Comp Neuro News is a social news website about computational neuroscience recently created by Ian Stevenson and Jeff Teeters from UC Berkeley. It&#8217;s the same idea as Reddit or Digg: users submit links which are then upvoted by interested members, yielding a constantly refreshing list of interesting articles. Not much activity currently, but I&#8217;m sure [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=948&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://compneuronews.org/news">Comp Neuro News is a social news website</a> about computational neuroscience recently created by Ian Stevenson and Jeff Teeters from UC Berkeley. It&#8217;s the same idea as Reddit or Digg: users submit links which are then upvoted by interested members, yielding a constantly refreshing list of interesting articles. Not much activity currently, but I&#8217;m sure xcorr readers can help!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/948/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/948/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/948/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/948/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/948/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/948/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/948/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/948/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/948/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/948/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/948/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/948/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/948/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/948/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=948&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2011/11/23/comp-neuro-news-a-news-aggregrator/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>
	</item>
		<item>
		<title>What&#8217;s the maximal frame rate humans can perceive?</title>
		<link>http://xcorr.net/2011/11/20/whats-the-maximal-frame-rate-humans-can-perceive/</link>
		<comments>http://xcorr.net/2011/11/20/whats-the-maximal-frame-rate-humans-can-perceive/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 20:37:22 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[Journal club]]></category>
		<category><![CDATA[Psychophysics]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=919</guid>
		<description><![CDATA[Danny Kopping asked on my Twitter account what&#8217;s the maximal frame rate that humans can perceive. It&#8217;s a tricky question, mostly because it can be interpreted in different ways. Let&#8217;s break it down into these two scenarios: 1. At what frequency should a display (say a CRT) refresh so that it doesn&#8217;t appear to flicker [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=919&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/#!/dannykopping">Danny Kopping</a> asked on <a href="http://twitter.com/#!/patrickmineault">my Twitter account</a> what&#8217;s the maximal frame rate that humans can perceive. It&#8217;s a tricky question, mostly because it can be interpreted in different ways. Let&#8217;s break it down into these two scenarios:</p>
<p>1. At what frequency should a display (say a CRT) refresh so that it doesn&#8217;t appear to flicker (fusion)?<br />
2. At what frequency should a movie or video game be displayed so that it doesn&#8217;t appear choppy (smoothness) ?</p>
<p>These are two very different questions. Let&#8217;s look at them in turn.</p>
<h3>Fusion</h3>
<p>The first question is straightforward. It&#8217;s been <a href="http://www.scholarpedia.org/article/Flicker_fusion">known for more than a hundred years that light flickering at high frequency appears stable</a>. It&#8217;s an important phenomenon in everyday life, as many display and lighting technologies work by displaying very brief flashes of light several times a second. This includes the incadescent light bulb, fluorescent lights and cathode ray tubes (CRTs, the bulky glass tubes in old TVs).</p>
<p>It&#8217;s easy enough to measure the critical flicker fusion frequency in human observers by asking them to report their sensations when viewing a stimulus flickering on a CRT display with fast phosphors.</p>
<div class="wp-caption aligncenter" style="width: 401px"><a href="http://www.scholarpedia.org/article/Flicker_fusion"><img title="Flicker fusion graph" src="http://www.scholarpedia.org/w/images/1/1a/Flicker_fusion_fig3.jpg" alt="Flicker fusion as a function of illumination and stimulus size, from Hecht and Smith (1936)" width="391" height="260" /></a><p class="wp-caption-text">Image via Scholarpedia</p></div>
<p>The critical fusion frequency depends on the luminance of the stimulus and its size, as shown in the graph above (Hecht and Smith, 1936). For a large high luminance stimulus covering the fovea, like a full screen white field on a CRT, flicker fusion occurs at about 60 Hz.</p>
<p>It&#8217;s interesting to note that there are cells in the <a href="http://en.wikipedia.org/wiki/Lateral_geniculate_nucleus">LGN of primates</a> (lateral geniculate nucleus, a relay between the eye and the brain through which the visual signal is forwarded) which respond to higher temporal frequencies than 60 Hz and are more sensitive than human observers to flicker (Spekreijse et al. 1971). That means that the signal is available but somehow it isn&#8217;t available to consciousness. Cells in the visual cortex appear to discard the high-frequency information. It is possible, however, that such signals reach the brain through various other means (blindsight or miscellaneous projections to non-visual areas). Indeed, the 120 Hz flicker of older fluorescent lights has been found to cause cognitive deficits and headaches (Veitch and McColl 1995).</p>
<p>It&#8217;s also interesting to note that many insects have much faster visual systems than us. They have poor visual acuity, however, because they have so few photoreceptors &#8212; hence their vision is much more focused on the analysis of motion than us. Ruck (1961) finds a critical fusion frequency of more than 200 Hz in the housefly, and cites a figure of 300 Hz for the honeybee. Indeed, you need special hardware to do visual stimulation for insect vision research (oscilloscopes were used in the old days, although this might have changed).</p>
<h3>Smoothness</h3>
<p>Flicker fusion is not very relevant when you see a movie or play a video game. A typical movie is shot at 24 Hz, yet that doesn&#8217;t mean that it will feel flickery when played back. Flicker fusion would result if you flashed each image with a fast display like a CRT. You can get around flicker fusion in a movie by presenting it at a higher frame rate, repeating each frame several times, or simply presenting it on a display with built-in persistence like an LCD screen.</p>
<p>Each frame in a movie is only slightly different than the last &#8212; this is what enables <a href="http://en.wikipedia.org/wiki/Lossy_compression#Video">compression algorithms</a> like MPEG4. This is a very different different situation than in the flicker fusion setup, where each frame is black, then white, then black, etc. The modulations in luminance are much smaller in a movie. Hence fusion occurs at much lower framerates than in the flicker fusion scenario, as is visible in the graph of flicker fusion frequency versus illuminance above.</p>
<div class="wp-caption aligncenter" style="width: 385px"><a href="http://en.wikipedia.org/wiki/Digital_Light_Processing"><img title="DLP rainbow" src="http://upload.wikimedia.org/wikipedia/commons/c/ca/DLP_rainbow_effect.JPG" alt="" width="375" height="262" /></a><p class="wp-caption-text">Image via Wikipedia</p></div>
<p>Importantly, however, flicker can occur from a different source. If you look at the image of a DLP projector, and move your gaze outside the screen, <a href="http://en.wikipedia.org/wiki/Digital_Light_Processing">you will notice fringes of color</a>. This also occurs if you wave your hand in front of the projector, as shown above. In a single-chip DLP projectors, the DLP chip produces black and white images, and the colors red, green and blue are created by a spinning color wheel. Wikipedia states that the wheel of common projectors can rotate at 4 or 5x the frame rate of the signal, so 240 or 300 Hz. This is a very high rate, yet clearly you are able to discriminate such large temporal frequencies.</p>
<p>Between each flash of the projector&#8217;s image, your eyes can move up to a third of a degree of visual angle (assuming a peak saccadic velocity of 300 degrees per second, 300 Hz framerate, and 3 colors). Hence, slightly offset images in red, green and blue are captured on the retina, which you perceive as fringes of color.</p>
<p>What&#8217;s happening is that temporal frequencies are translated to spatial frequencies through motion. So even if you can&#8217;t discriminate flicker through its temporal aspect, adding motion will allow it to be discovered through its spatial signature. In fact, the visual system appears to exploit this effect to enhance its sensitivity to high spatial frequencies &#8212; fixational eye movements shift the spatio-temporal frequency spectrum of natural scenes towards frequencies neurons are more sensitive to (Rucci et al., SFN 2011)</p>
<p>Temporal aliasing is the main reason why videogames can look choppy at frame rates of 24 or 30 Hz. Let&#8217;s say a line moves from the left of the screen to the right. Its path can be represented as a two-dimensional image where one dimension represents its x position and the other represents time. In the graph shown below at the left, the line moves slowly, and its retinal image, which integrates over several frames, appear smooth with a bit of motion blur.</p>
<p><a href="http://xcorr.files.wordpress.com/2011/11/screenshot-1.png"><img class="aligncenter size-full wp-image-937" title="Temporal aliasing with fast motion" src="http://xcorr.files.wordpress.com/2011/11/screenshot-1.png?w=540" alt=""   /></a></p>
<p>On the right, the same line is now moving faster. Now the retinal image shows a faded trail of the path of the line; this will be interpreted as choppy when viewed by a human observer. The problem is that a video game video rendering pipeline generates instantaneous snapshots of the video game world at a set sampling frequency (say 30Hz). But <a href="http://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem">the Nyquist-Shannon sampling theorem</a> implies that if stuff happens in the virtual world at higher temporal frequencies than half of the sampling rate (the Nyquist frequency), the result will be temporal aliasing, the creation of  artifacts caused by high temporal frequencies interactions with a slow sampler.</p>
<div class="wp-caption aligncenter" style="width: 215px"><a href="http://commons.wikipedia.org/wiki/File:Moire_pattern_of_bricks_small.jpg"><img class="zemanta-img-inserted zemanta-img-configured " title="Spatial aliasing in the form of a Moiré pattern." src="http://upload.wikimedia.org/wikipedia/commons/f/fb/Moire_pattern_of_bricks_small.jpg" alt="Spatial aliasing in the form of a Moiré pattern." width="205" height="250" /></a><p class="wp-caption-text">Image via Wikipedia</p></div>
<p>Note that aliasing has little to do with the visual system; it&#8217;s a signal processing effect, and it occurs in many modalities other than time. In the spatial domain, aliasing can causes artifacts like Moire patterns. The image above shows the corresponding effect when a brick wall with spatial frequencies above the sampling frequency is sampled without first eliminating high frequencies through an analog filter &#8212; note the interference pattern at the bottom right.</p>
<p>The solution is to sample the video game world at a higher temporal frequency, then downsample before display. In the image domain, the corresponding trick is to render the image at, say 4x the target display rate, then pool the image in regions of 4&#215;4 before display. This is known as anti-aliasing.</p>
<p>Cinema cameras apply their own analog anti-aliasing by integrating photons over the entire period the camera shutter is open (usually 1/24th of a second). This means that frames per second in video games and video cameras are not comparable.</p>
<p>It&#8217;s possible to fake spatio-temporal anti-aliasing by combining the current image with a spatially blurred version of previous frames. This was frequently done in the old days of Flash, when fast objects were replaced with spatially blurred versions of these objects to simulate smooth motion with low frame rates. From a signal processing standpoint, what is done is using filters to match the spatio-temporal frequency content of the aliased image sequence and an ideally sampled version of this same sequence.</p>
<div class="wp-caption aligncenter" style="width: 431px"><a href="http://xcorr.files.wordpress.com/2011/11/screenshot.png"><img class="size-full wp-image-938" title="Performance in an FPS as a function of frames per second" src="http://xcorr.files.wordpress.com/2011/11/screenshot.png?w=540" alt=""   /></a><p class="wp-caption-text">From Claypool, Claypool and Damaa (2006)</p></div>
<p>So then what&#8217;s the minimum frame rate at which a video game should be rendered to ensure that it doesn&#8217;t suffer from jitter or choppiness? There&#8217;s no maximal rendering framerate above which aliasing effects are guaranteed to be eliminated. Once again, it has little to do with the human visual system and everything to do with the Nyquist-Shannon sampling theorem. You can always cook up a hypothetical situation which demands arbitrarily large numbers of frames per second to be viewed without artifacts. And the relevant question is really whether the choppiness bothers you or not, rather than whether it&#8217;s visible. Claypool, Claypool and Damaa (2006) report that performance saturates in a first-person shooter game at about 30 fps (above; notice that confidence intervals overlap between 30 and 60 fps). So, say it loud, say it proud: 30 fps is good enough for me!</p>
<p><span style="float:left;padding:5px;"><a href="http://researchblogging.org/news/?p=3072"><img style="border:0;" src="http://www.researchblogging.org/public/citation_icons/rb_editors-selection.png" alt="This post was chosen as an Editor's Selection for ResearchBlogging.org" /></a></span></p>
<p><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=The+Journal+of+general+physiology&amp;rft_id=info%3Apmid%2F19872977&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=Intermittent+stimulation+by+light+%3A+VI.+area+and+the+relation+between+critical+frequency+and+intensity.&amp;rft.issn=0022-1295&amp;rft.date=1936&amp;rft.volume=19&amp;rft.issue=6&amp;rft.spage=979&amp;rft.epage=89&amp;rft.artnum=&amp;rft.au=Hecht+S&amp;rft.au=Smith+EL&amp;rfe_dat=bpr3.included=1;bpr3.tags=Neuroscience%2CComputational+Neuroscience">Hecht S, &amp; Smith EL (1936). Intermittent stimulation by light : VI. area and the relation between critical frequency and intensity. <span style="font-style:italic;">The Journal of general physiology, 19</span> (6), 979-89 PMID: <a href="http://www.ncbi.nlm.nih.gov/pubmed/19872977" rev="review">19872977</a></span><br />
<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=Proceedings+of+the+National+Academy+of+Sciences+of+the+United+States+of+America&amp;rft_id=info%3Apmid%2F5001396&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=Flicker+responses+in+monkey+lateral+geniculate+nucleus+and+human+perception+of+flicker.&amp;rft.issn=0027-8424&amp;rft.date=1971&amp;rft.volume=68&amp;rft.issue=11&amp;rft.spage=2802&amp;rft.epage=5&amp;rft.artnum=&amp;rft.au=Spekreijse+H&amp;rft.au=van+Norren+D&amp;rft.au=van+den+Berg+TJ&amp;rfe_dat=bpr3.included=1;bpr3.tags=Neuroscience%2CComputational+Neuroscience">Spekreijse H, van Norren D, &amp; van den Berg TJ (1971). Flicker responses in monkey lateral geniculate nucleus and human perception of flicker. <span style="font-style:italic;">Proceedings of the National Academy of Sciences of the United States of America, 68</span> (11), 2802-5 PMID: <a href="http://www.ncbi.nlm.nih.gov/pubmed/5001396" rev="review">5001396</a></span><br />
<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=Lighting+Research+and+Technology&amp;rft_id=info%3Adoi%2F10.1177%2F14771535950270040301&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=Modulation+of+fluorescent+light%3A+Flicker+rate+and+light+source+effects+on+visual+performance+and+visual+comfort&amp;rft.issn=1477-1535&amp;rft.date=1995&amp;rft.volume=27&amp;rft.issue=4&amp;rft.spage=243&amp;rft.epage=256&amp;rft.artnum=http%3A%2F%2Flrt.sagepub.com%2Fcgi%2Fdoi%2F10.1177%2F14771535950270040301&amp;rft.au=Veitch%2C+J.&amp;rft.au=McColl%2C+S.&amp;rfe_dat=bpr3.included=1;bpr3.tags=Neuroscience%2CComputational+Neuroscience">Veitch, J., &amp; McColl, S. (1995). Modulation of fluorescent light: Flicker rate and light source effects on visual performance and visual comfort. <span style="font-style:italic;">Lighting Research and Technology, 27</span> (4), 243-256 DOI: <a href="http://dx.doi.org/10.1177/14771535950270040301" rev="review">10.1177/14771535950270040301</a></span><br />
<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=Biological+Bulletin&amp;rft_id=info%3Adoi%2F10.2307%2F1539540&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=Photoreceptor+Cell+Response+and+Flicker+Fusion+Frequency+in+the+Compound+Eye+of+the+Fly%2C+Lucilia+sericata+%28Meigen%29&amp;rft.issn=00063185&amp;rft.date=1961&amp;rft.volume=120&amp;rft.issue=3&amp;rft.spage=375&amp;rft.epage=&amp;rft.artnum=http%3A%2F%2Fwww.jstor.org%2Fstable%2F1539540%3Forigin%3Dcrossref&amp;rft.au=Ruck%2C+P.&amp;rfe_dat=bpr3.included=1;bpr3.tags=Neuroscience%2CComputational+Neuroscience">Ruck, P. (1961). Photoreceptor Cell Response and Flicker Fusion Frequency in the Compound Eye of the Fly, Lucilia sericata (Meigen). <span style="font-style:italic;">Biological Bulletin, 120</span> (3) DOI: <a href="http://dx.doi.org/10.2307/1539540" rev="review">10.2307/1539540</a></span><br />
<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=SFN+2011&amp;rft_id=info%3A%2F&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=Fixational+eye+movements+enhance+sensitivity+to+high+spatial+frequencies+in+the+retina+and+LGN&amp;rft.issn=&amp;rft.date=2011&amp;rft.volume=&amp;rft.issue=&amp;rft.spage=&amp;rft.epage=&amp;rft.artnum=http%3A%2F%2Fwww.abstractsonline.com%2FPlan%2FViewAbstract.aspx%3FmID%3D2773%26sKey%3Db65ff7b9-217c-4f0f-80b0-89388dc3d95f%26cKey%3D748f1731-aa9d-4abc-93bd-0c2267eb334f%26mKey%3D%7B8334BE29-8911-4991-8C31-32B32DD5E6C8%7D&amp;rft.au=M.+RUCCI%2C+J.+D.+VICTOR%2C+A.+CASILE%2C+X.+KUANG&amp;rfe_dat=bpr3.included=1;bpr3.tags=Neuroscience%2CComputational+Neuroscience">M. Rucci, J. D. Victor, A. Casile, X. Kuang (2011). Fixational eye movements enhance sensitivity to high spatial frequencies in the retina and LGN. <span style="font-style:italic;">SFN 2011</span></span><br />
<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=Proceedings+of+SPIE&amp;rft_id=info%3A%2F&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=The+Effects+of+Frame+Rate+and+Resolution+on+Users+Playing%0D%0AFirst+Person+Shooter+Games%0D%0A&amp;rft.issn=&amp;rft.date=2006&amp;rft.volume=&amp;rft.issue=&amp;rft.spage=&amp;rft.epage=&amp;rft.artnum=http%3A%2F%2Fweb.cs.wpi.edu%2F%7Eclaypool%2Fpapers%2Ffr-rez%2Fpaper.pdf&amp;rft.au=Mark+Claypool&amp;rft.au=Kajal+Claypool&amp;rft.au=Feissal+Damaab&amp;rfe_dat=bpr3.included=1;bpr3.tags=Neuroscience%2CComputational+Neuroscience">Mark Claypool, Kajal Claypool, &amp; Feissal Damaab (2006). The Effects of Frame Rate and Resolution on Users Playing First Person Shooter Games. <span style="font-style:italic;">Proceedings of SPIE</span></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/919/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=919&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2011/11/20/whats-the-maximal-frame-rate-humans-can-perceive/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>

		<media:content url="http://www.scholarpedia.org/w/images/1/1a/Flicker_fusion_fig3.jpg" medium="image">
			<media:title type="html">Flicker fusion graph</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/c/ca/DLP_rainbow_effect.JPG" medium="image">
			<media:title type="html">DLP rainbow</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/11/screenshot-1.png" medium="image">
			<media:title type="html">Temporal aliasing with fast motion</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/f/fb/Moire_pattern_of_bricks_small.jpg" medium="image">
			<media:title type="html">Spatial aliasing in the form of a Moiré pattern.</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/11/screenshot.png" medium="image">
			<media:title type="html">Performance in an FPS as a function of frames per second</media:title>
		</media:content>

		<media:content url="http://www.researchblogging.org/public/citation_icons/rb_editors-selection.png" medium="image">
			<media:title type="html">This post was chosen as an Editor&#039;s Selection for ResearchBlogging.org</media:title>
		</media:content>
	</item>
		<item>
		<title>SFN 2011 Sunday highlight: Movshon on V2</title>
		<link>http://xcorr.net/2011/11/15/sfn-2011-sunday-highlight-movshon-on-v2/</link>
		<comments>http://xcorr.net/2011/11/15/sfn-2011-sunday-highlight-movshon-on-v2/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 09:49:40 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[Academia]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=922</guid>
		<description><![CDATA[Sorry about the late update but I got wrapped up in poster work. I lost the program on which I had written notes for Sunday, so I&#8217;ll be writing this off the top of my head. There was a series of posters from the Movshon lab showing some efforts towards undertanding V2. One was a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=922&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sorry about the late update but I got wrapped up in poster work. I lost the program on which I had written notes for Sunday, so I&#8217;ll be writing this off the top of my head. There was a series of posters from the Movshon lab showing some efforts towards undertanding V2.</p>
<p>One was a continuation of the work on receptive field models of V2. Last year the same subject was tackled and Tony confided that he was disappointed to see little difference between V2 and V1 receptive fields. This year was more conclusive, showing the presence of discrete nonlinear subunits in V2 cells not visible in V1. From a modeling persective, the most interesting aspect I thought was the use of a convolutional neural-net-type to look at tiled subunit structures. My current best try at the Neural Prediction Challenge in V1 is based on this very principle, and of course state-of-the-art V4 modeling is based on this as well. As a student from the Gallant lab told me (sorry, can&#8217;t remember the name), well nobody has any better ideas anyways!</p>
<p>The other two show kind of an interesting turnabout in Tony&#8217;s world philosophy. The man that hated natural images has started using natural textures to look at population coding in V2. Two results stood out:</p>
<ol>
<li><a href="http://jeremyfreeman.net/publications/27/textures-sfn-2011">V2 is much more sensitive than V1 to natural textures</a></li>
<li><a href="http://jeremyfreeman.net/publications/26/metamers-sfn-2011">V2 encodes natural textures along perceptual lines</a></li>
</ol>
<p>Posters are available from the above links.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/922/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=922&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2011/11/15/sfn-2011-sunday-highlight-movshon-on-v2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>
	</item>
		<item>
		<title>SFN 2011 poster &#8211; RF plasticity in V4</title>
		<link>http://xcorr.net/2011/11/14/sfn-2011-poster-rf-plasticity-in-v4/</link>
		<comments>http://xcorr.net/2011/11/14/sfn-2011-poster-rf-plasticity-in-v4/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 16:23:48 +0000</pubDate>
		<dc:creator>xcorr</dc:creator>
				<category><![CDATA[Academia]]></category>

		<guid isPermaLink="false">http://xcorr.net/?p=924</guid>
		<description><![CDATA[I&#8217;m showing an SFN poster today on RF plasticity in V4, here is the reprint, and the abstract. Gilbert had some interesting ideas in the early 90&#8242;s about reorganization of receptive fields following removal of input. The idea is that if you have a scotoma on the retina, or any other type of permanent deinnervation, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=924&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m showing an SFN poster today on RF plasticity in V4, <a href="http://xcorr.files.wordpress.com/2011/11/sfnposter1_draft-copy.pdf">here is the reprint</a>, <a href="http://www.abstractsonline.com/Plan/ViewAbstract.aspx?sKey=ab7645e7-ad4d-46a7-87a6-d5586232b58d&amp;cKey=842275bd-d2cf-40dd-a48e-cd986511645d&amp;mKey={8334BE29-8911-4991-8C31-32B32DD5E6C8}">and the abstract</a>.</p>
<p><a href="http://www.nature.com/nature/journal/v356/n6365/abs/356150a0.html">Gilbert had some interesting ideas in the early 90&#8242;s about reorganization of receptive fields following removal of input</a>. The idea is that if you have a scotoma on the retina, or any other type of permanent deinnervation, within minutes or hours receptive fields reorganize towards the location. This increases the amount of information transmitted in this new situation.</p>
<p><a href="http://www.pnas.org/content/89/17/8366.short">He extended this idea to artificial scotoma</a>, which occur when an area of the visual field has zero contrast whereas other areas have high contrast. Say a square of gray against a grating background. The idea was that this virtual lesion would trigger rapid reorganization of RFs in V1, much like a real lesion would.</p>
<p><a href="http://www.pnas.org/content/92/21/9682.short">DeAngelis then did some further experiments on the subject</a> and showed that the claimed reorganization could be explained by a simple change in gain which masquaraded as an increase in the size of V1 RFs towards the non-lesioned area.</p>
<p>Our idea was to extend this research in area V4. The idea goes, even if the only changes in neurons in V1 are gain-related, that might translate into effective RF shape downstream.</p>
<p><a href="http://xcorr.files.wordpress.com/2011/11/v4rf.png"><img class="aligncenter size-full wp-image-929" title="v4rf" src="http://xcorr.files.wordpress.com/2011/11/v4rf.png?w=540" alt=""   /></a></p>
<p>Here&#8217;s a little cartoon of the idea. Sorry I only have access to Paint from the hotel computer. As an adapting stimulus causes spatially coherent changes in the gain of V1 cells, a neuron downstream which integrates over large area of space sees its receptive field shift. I think there&#8217;s some interesting consequences for neural coding: gain changes in downstream areas can bubble up and cause much less trivial changes upstream in a hierarchical scheme.</p>
<p>Unfortunately this idea didn&#8217;t really pan out for spikes. We did find changes in receptive field gain but not in RF position. I had big plans to roll out MCMC-based RF tracking methodology but since I didn&#8217;t see any changes at all with slightly cruder methods (maximum likelihood in highly parametrized generalized linear models), I kind of gave up on the idea, and so focused on LFPs instead (more later).</p>
<p>Talking to Curtis Baker and Greg DeAngelis and others, though, I think I figured out the problem. I got so worked up on the methodology (I&#8217;m a computational guy, remember, that&#8217;s what I like) that I didn&#8217;t tweak the experimental paradigm enough to get good results. Initially we had natural images as the adaptation stimulus, and that showed promising results. Then we tried better controlled sparse orientation adaptation stimuli, because I wanted to be able to correlate the content of the images with the changes in the RFs, and I think it just didn&#8217;t drive the cells. Plus the adaptation period was probably way too short.</p>
<p>Another problem I ran into is that the Utah array recordings we used weren&#8217;t as stable as they needed to be. Even losing 10% of spikes towards the end of the recording can easily mess up the analysis of such a dataset. So I had to reject most cells from analysis and that only left about 10 cells per recording day which didn&#8217;t really give the inference power I was looking for. If anybody has any insights on stabilizing Utah arrays somehow I&#8217;d be very interested.</p>
<p>So instead I mostly analyzed LFP receptive fields. You will notice that there are 2 different components to the LFP receptive fields estimated through reverse correlation. There&#8217;s an initial component which is very broadly tuned for space and a later component, either of the same or different polarity, that is much more tightly tuned in space. Both of these components have smoothyl changing retinotopy on the array.</p>
<p>As it turned out the broad component would see some similar changes in peak RF position and size across the entire array, while the tightly tuned component would see much more local changes. What I think is happening is that the tightly spatially tuned component is integrating over a small chunk of cortex, say 250 microns, while the other component is integrating over a larger area. That brings a little twist to the Ringach/Shapley LFP cortical integration story that I&#8217;d like to follow through.</p>
<p>The next steps are pretty obvious:</p>
<ul>
<li>change the content of the adapting image to trigger change as strongly and rapidly as possible</li>
<li>increase the adaptation period</li>
<li>modify the mapping stimulus to map receptive fields as efficiently as possible, <a href="http://www.stat.columbia.edu/~liam/research/abstracts/lewi-batch09-abs.html">possibly using online infomax methods</a> or cruder trial and error</li>
<li><a href="http://xcorr.net/2011/11/01/spike-identification-through-gibbs-sampling-2/">continue work on estimating a well-defined MUA to increase the number of effective electrodes I can work with</a></li>
<li>change spike detection and <a href="http://www.stat.columbia.edu/~liam/research/pubs/ana-spk-sort.pdf">tracking algorithms</a> to account for nonstationary recordings</li>
</ul>
<p>Thanks to everyone who went to see the poster, your feedback was invaluable.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xcorr.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xcorr.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xcorr.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xcorr.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xcorr.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xcorr.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xcorr.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xcorr.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xcorr.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xcorr.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xcorr.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xcorr.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xcorr.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xcorr.wordpress.com/924/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xcorr.net&amp;blog=3084329&amp;post=924&amp;subd=xcorr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xcorr.net/2011/11/14/sfn-2011-poster-rf-plasticity-in-v4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8def40ab2d48a7561a0ef948486334a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xcorr</media:title>
		</media:content>

		<media:content url="http://xcorr.files.wordpress.com/2011/11/v4rf.png" medium="image">
			<media:title type="html">v4rf</media:title>
		</media:content>
	</item>
	</channel>
</rss>
