### Sidebar

Reference

analysis:course-w16:week3long

## Module 3: Visualizing neural data in MATLAB

Goals:

• Master the basics of plotting data in MATLAB using the versatile plot() function
• Understand how to use handles to fine-tune formatting
• Meet some existing visualization tools: MultiRaster(), PlotTSDfromIV() and ft_databrowser()
• Use interactive figure properties with callback functions for dynamic data viewing
• Learn to use functions with variable numbers of input arguments (using varargin and cfg inputs) effectively
• Understand which file format to export figures to
• Advanced bonus section: GUIs, movies, and sonification of spiking data

Resources:

## Introductory remarks

Visualization is an essential component of any data analysis workflow. You would never perform brain surgery or another intricate experimental procedure without a good view of what you are doing – if conditions are met for a next step, whether a manipulation has the desired outcome – and likewise, you should not do data analysis blind. This means that after every step you want to be able to see what changed.

Also, for many analyses, a visualization is part of the final outcome. Most neuroscience papers have complex multipanel figures, such as this one from Dragoi and Tonegawa (Nature, 2011):

Notice that panel Aa, a highly selective and organized view of raw data, already contains LFP data (top) and spike data from 18 cells!

This sort of figure is constructed by first producing the individual panels in MATLAB, and then perhaps combining them in a graphic design package such as Adobe Illustrator/InDesign. We will do the MATLAB part here and aim to produce something similar to panel Aa, while introducing the fundamentals of plotting in MATLAB. Other types of plots, such as bar plots, errorbars, color bitmaps, filled shapes, and shading will be introduced as they are needed in later modules.

An important principle in graphical design for scientific communication is to only include those elements which contribute to the messages(s) you want to communicate. Remove and simplify as much as possible: this will make your figures more readable. The Tufte book linked to above is a beautiful statement of this (and other) guiding principles of graphic design.

Even if you do not go as far as reading it, do at least make the labels in your figures big enough to be readable!

If you haven't done so already, this would be a good time for a git pull to make sure you have the latest version of the course codebase!

Now, make sure you have the folder R042-2013-08-18 from the data share, and that this is placed in a sensible location (NOT in a GitHub or project folder!).

This data set was collected from the dorsal CA1 region of the hippocampus of a rat performing a T-maze task, using a drive with 16 independently movable tetrodes (by Alyssa Carey for her Master's thesis work). Spike and LFP data was recorded from each tetrode; possible spike events were detected online and stored for offline spike-sorting, and LFPs were sampled at 2kHz and bandpass filtered between 1-475Hz. (A quirk of this particular data set is that certain time intervals are cut out of the spike data, but not the LFP. So you may notice some odd looking gaps in the rasterplot later.)

As in previous modules, use the shortcut button created in the previous module to set your path. In your project folder, create a folder with today's date and cd to it. This will be your working directory with stuff that you don't necessarily intend to push to GitHub.

Create a sandbox.m file in your daily folder. In this file, use cell mode to load some spike trains, a LFP, and position data as follows (recall you can use Ctrl+Enter to execute the code in a cell):

%% cd to data folder -- replace this with yours
fd = 'D:\data\DataAnalysisTutorial\R042-2013-08-18';
cd(fd);

%% load the data (note, may need to unzip position data first)
cfg = [];
S = LoadSpikes(cfg)

This should give a data structure containing spike train data:

LoadSpikes: Loading 67 files...

S =

type: 'ts'
t: {1x67 cell}
label: {1x67 cell}
cfg: [1x1 struct]
usr: [1x1 struct]

The details of this ts structure are discussed in Module 2. In brief, each cell of S.t contains the spike times from a putative neuron. The qualifier “putative” is used because this is extracellular data and spike-sorting is not perfect, so it's likely there will be some spikes missing and some spikes included that are not from this neuron. Always remember this even if I will omit the “putative” from now on for short. You can see we have loaded 67 neurons for now.

The LoadSpikes() function has some features not discussed here, such as the contents of the usr field; you can type help LoadSpikes() to learn more.

Let's also load a LFP:

cfg = [];
cfg.fc = {'R042-2013-08-18-CSC03a.ncs'};
csc = LoadCSC(cfg)

This gives:

LoadCSC: Loading 1 file(s)...
LoadCSC: R042-2013-08-18-CSC03a.ncs 0/17193 bad blocks found (0.00%).

csc =

type: 'tsd'
tvec: [8802816x1 double]
data: [1x8802816 double]
label: {'R042-2013-08-18-CSC03a.ncs'}
cfg: [1x1 struct]

csc is the common Neuralynx designation for “continuously sampled channel” and typically is an EEG or LFP type signal sampled and filtered so that high-frequency components such as spikes are not accessible. It is possible to have wide-band, 32kHz CSCs suitable for spike extraction, but these are not included in the current dataset. As discussed more extensively in Module 2 a LFP is defined by matching sets of sample timestamps (csc.tvec) and sampled data (csc.data).

Before we proceed, let's restrict the data we have loaded (about 90 minutes' worth) to a more manageable size.

A useful function that works on ts, tsd and iv objects is restrict().

☛ Use MATLAB's help function to look up the usage information for restrict(). In a new editor cell, use this function to create S_r and csc_r variables, containing the spike and LFP data respectively, restricted between 5900 and 6000 seconds.

Hint: make a habit of using variables instead of hard-coding specific values. Applying this good programming practice to the above means that you first define the interval of interest, and then use the same resulting variable to two calls to restrict(). That way, if you ever want to change this interval, you can do so in a single, clearly visible location at the beginning of your code. This is much more robust than having to scan through the whole script to find and modify each instance of some hard-coded numbers!

☛ Verify that the restriction worked by inspecting the csc_r variable – you should notice that the length of the tvec and data fields has been suitably reduced.

## Do-it-yourself plotting

If you are already familiar with MATLAB's basic plotting functions and how to use object handles to set properties of drawing objects, you can skip this section.

### Basic plot commands

Let's look at the spike times of the 17th cell in our data set (note the use of the curly brackets {}, if this is confusing, review the MATLAB help on cell arrays):

%%
iC= 17;
this_spk = S_r.t{iC}

this_spk =

1.0e+03 *

5.9046
5.9046
5.9046
5.9046

That's not a very helpful format, it looks like all four spikes have the same spike time, but note the 1.0e+03 (meaning 10^3, or 1000)!

☛ Type format bank and try again.

You should now see somewhat more clearly the spike times of the five spikes this neuron emitted (in our restriction interval).

An alternative to format is to use the ubiquitous fprintf() command:

>> fprintf('%4.3f\n',this_spk)
5904.630
5904.635
5904.638
5904.643

This way, you have precise control over the formatting of command line output – the cryptic %4.3f tag specifies that the contents of this_spk should be formatted as a floating-point number with 4 digits before, and 3 digits following, the decimal point; \n specifies a newline. (For reference: fprintf() has many other formatting options).

Now that we know what we are dealing with, let's meet the plot() command:

plot(this_spk)

You should get:

This may not be what you were expecting! If you give plot() only one input argument (this_spk in this case) it will, by default, plot the index of each element against its value.

Let's unpack that statement so it is really clear: we have an array with five values here: the spike times of five spikes of neuron 11. plot() plots the value of the first element (this_spk(1)) at x-coordinate 1 (its index, i.e. position in the array), and so forth for the whole length of the array. It also connects the data points with a blue line.

Let's plot the same data differently:

plot(this_spk,0,'.k');

This gives:

A pretty different result! Because we have given plot() multiple input arguments, it interprets the first (this_spk) as the x-coordinate, and the second (0) as the y-coordinate. Indeed you can see in the plot that the spike times now show up on the x-axis, in contrast to the first plot we made, and the y-coordinate is 0 for all spikes.

The final argument ('.k') specifies we want the data plotted as dots (.) and in black ('k').

Plotting spikes as dots is okay, but tickmarks (vertical lines, as in the example figure at the top) are better. Here is how to do it:

h = plot([this_spk this_spk],[0.5 1.5],'k');
axis([xlim 0 5])

To understand what happened here, recall that plot() uses the first argument as x-coordinates, and the second as y-coordinates. So the above plot command used our spike times (this_spk) as the x-coordinates, drawing a black line at each spike time between the specified y-coordinates [0.5 1.5].

The axis command sets the axis limit according to the 4-dimensional array [xmin xmax ymin ymax]; xlim returns the current xmin and xmax. What the h output argument is for will be explained in the next section.

☛ (Test your MATLAB skills) Extend the example code above to make a rasterplot containing the spikes for all cells in S_r. Each cell should have its spikes appear on the corresponding row, as in the example plot at the top. To facilitate re-use later, wrap your code in a function, PlotSpikeRaster, that plots the raster for any ts input. Thus, it should also work for task events, for instance, by virtue of following the common ts datatype specification. Hint: how will you handle the case where some cell doesn't have any spikes?

### Using handles to fine-tune plotting

At the end of the previous section, I specified an output argument h with the plot() command. This output is a handle, a MATLAB data type that contains various properties associated with an object. In this case, h is a handle for the spikes we just plotted, and we can use it to change their appearance.

☛ Below are a few examples of how to use a plot handle. Try them – one at a time – and see what happens!

set(h,'Color',[0 1 0]); % "set Color property of handle h to value [0 1 0] i.e. green in [red green blue] format
set(h,'LineWidth',2);
set(h,'Marker','.','MarkerSize',20); % note you can specify multiple properties in one set() function call

A list of all the properties of a handle can be obtained by typing get(h).

MATLAB has a number of built-in handles, such as gca (“get current axes”):

set(gca,'LineWidth',2);
set(gca,'XTick',5904.62:0.01:5904.68,'YTickLabel',{});
set(gca,'FontSize',24);

☛ Look up what properties the gca handle has to find out how to change the color of the axes and labels, and change it to red.

Note that if you are making figures with multiple axes (perhaps by using subplot() or plotyy()) each axes gets its own handle. One axes is active at any given time, which it can be by clicking on it, or by explicitly doing something like axis(h).

There is also a handle for the whole figure, gcf:

set(gcf,'Color',[0 0 0]);

Finally, MATLAB has a special handle, '0', for some defaults. For instance, a very useful default to change is the font size, set(0,'DefaultAxesFontSize',18) because the default is usually too small to be readable once exported (see the next section on this). A good place for such a default change is in a shortcut that also contains your path, or perhaps even in MATLAB's startup.m.

### Exporting figures

Now that our figure looks nice, let's save it as an image file:

print(gcf,'-dpng','-r300','R042-2013-08-18-spikes.png');

Notice that the first argument of print is the current figure's handle. The other arguments specify that we want a PNG file, with 300dpi resolution, and the filename to write to. PNG format is a good choice for saving figures because it uses lossless compression, in contrast to JPEG images which use lossy compression and can have ugly artifacts as a result. Other useful save formats include -dill which saves .ai Illustrator files, and -deps which saves encapsulated PostScript; both of these are vector graphics formats.

☛ Look at the image file. Assuming you changed some of the figure and axis colors, you should find the colors in your image don't match those in MATLAB. Solve this problem by turning off the InvertHardCopy property of the figure, and save again. (MATLAB does this by default to facilitate printing images on white paper.)

You should get something like:

Obviously, I do not recommend formatting your rasterplots with this particular color scheme for publication!

### Putting it all together

Let's add some fancy plot features together:

%% restrict the data to interval of interest
this_iv = iv([5900 6000]);
S_r = restrict(S,this_iv);
csc_r = restrict(csc,this_iv);

%% plot spikes
SET_spkY = 0.4; % parameter to set spike height

figure; hold on;
for iC = 1:length(S_r.t)
if ~isempty(S_r.t{iC})
plot([S_r.t{iC} S_r.t{iC}],[iC-SET_spkY iC+SET_spkY],'k');
end
end % of cells
ylabel('neuron #');

%% add a LFP
SET_cscY = [-5 0];
plot(csc_r.tvec,rescale(csc_r.data,SET_cscY(1),SET_cscY(2)),'r');
set(gca,'YTickLabel',{});

%% add multi-unit activity in separate axes
ax1 = gca; ax1_pos = get(ax1,'Position');
ax2 = axes('Position',ax1_pos); % new axes with same position as first

cfg = []; cfg.tvec = csc.tvec; cfg.sigma = 0.1;
mua = getMUA(cfg,S); % obtain multi-unit activity

xr = get(ax1,'XLim');
mua_r = restrict(mua,xr(1),xr(2)); % only keep the data we need

axes(ax2); % set current axes to the second set, so what follows happens there
mua_hdl = plot(mua_r.tvec,mua_r.data,'Color',[0.7 0.7 0.7]);

set(gca,'YAxisLocation','right','Box','off','XTick',[],'Color','none','YColor',[0.5 0.5 0.5])
ylabel('multi-unit activity (spk/s)');
linkaxes([ax1 ax2],'x'); 

A few things to note here:

• Using the Position property of the current axes (ax1, containing the rasterplot) we created a new set of axes (ax2).
• In these new axes, we plotted the multi-unit activity, obtaining an output argument. Like gca and gcf this is a handle to graphics object; in this case, a handle to the multi-unit activity signal we just drew.
• We set the properties of the new multi-unit axes to have the y-axis on the right (plus a few other properties).
• linkaxes() was used to link the x-axis of both axes so that both update when zooming in.

☛ Use the 'XLim' axes property to zoom in to 5965 to 5969 s.

You should now be looking at the synchronous activation of a substantial number of neurons, reflected in the MUA peak, and associated with a high-frequency oscillation (~150-250Hz) in the LFP. These are the neurophysiological signatures of a “sharp wave-ripple complex” (SWR for short), events which are thought to contribute to the consolidation and retrieval of episodic memories.

It would be nice to be able to update what time window of the data we are looking at, without having to type these XLim commands. To do this we need to use a special Figure property, introduced in the next section.

The topics that follow in this section are optional, in the sense that later modules do not assume you know how to do these things. Feel free to use this section as you see fit, but do make sure you go through the next section (“Using existing visualization tools”)!

### Interactive figures and callback functions

Figure windows in MATLAB have many properties (here is the complete list). A particularly useful one is the KeyPressFcn property, which specifies a function to be called when a key is pressed while the figure is active.

For example, we can write a simple function that enables us to scroll left and right using the arrow keys, as follows:

function figscroll(src,event)

ax = get(src, 'CurrentAxes');
x_orig = get(ax, 'XLim');
x_step = (x_orig(1)-x_orig(2))/2;

switch event.Key
case 'leftarrow'
x_new = x_orig + x_step;
case 'rightarrow'
x_new = x_orig - x_step;
end

set(ax,'XLim',x_new);

You should be able to interpret what this function is doing, with the only potentially mysterious part the identity of the input arguments src and event. These input arguments are common to all of MATLAB's callback functions, i.e. functions that are called in response to some user action like a key press:

• The src (“source”) argument contains details about where the callback came from; in this case this will be a figure, and as a result we can use this argument to find the handle to the figure's current axes, and make changes.
• The evt (“event”) argument tells us about the event that triggered the callback. As you can see, we use it here to find out which key was pressed, and react accordingly.

This figscroll function as shown above isn't going to do much by itself. We need to tie it to a figure.

☛ Create a rasterplot such as the one in the previous section. Then, set the KeyPressFcn property of the figure to this new function, like this: set(gcf,'KeyPressFcn',@figscroll) (the @ indicates what follows is a function handle).

Now you should be able to use the left and right arrow keys to scroll through the rasterplot. If nothing happens, make sure you saved the figscroll function in a place where MATLAB can find it (i.e. in the path, or MATLAB's current working directory).

If you haven't encountered function handles before, here is another example of a function handle (to an anonymous function, i.e. a function that doesn't have a .m file):

sqr_fn = @(x) x.^2;
sqr_fn(2)

The above example basically says “sqr_fn is a function of x, and should return x squared.” (if you don't understand the . notation, it is important to look this up!)

### Exporting to movies

As an alternative to scrolling manually through the data, we can use a loop:

%% movie version
t = [5900 6000]; % start and end times (experiment time)
FPS = 30; % frame rate (per s)
twin = [-1 1]; % width of time window (in s)

tvec = t(1):1/FPS:t(2);
for iT = 1:length(tvec)

set(gca,'XLim',twin+tvec(iT));
drawnow; pause(1/FPS);

end

You may notice some annoying auto-scaling behavior for the MUA y-axis, you can fix this using the axis 'YLim' property.

By making this MATLAB animation into a movie file, it is often easier to explore the results. To do this, we can run the animation code above, with a few small modifications. First, before entering the main plotting loop, set the figure to be used to a specific size:

h = figure; set(h,'Position',[100 100 640 480]);

This is important first, to keep the size of the resulting movie file manageable (the above sets a 640×480 pixel figure size), and second, because many movie encoders (such as the excellent and free XVid) will only work with certain sizes.

Next, we need to store each frame into a variable that we can later write to file. Modify the last two lines inside the loop to:

f(iT) = getframe(gcf); % store current frame
drawnow;

If you now run the code again, each frame gets stored in the f variable as the loop runs. Then, we can write the result to a file:

fname = 'test.avi';
movie2avi(f,fname,'COMPRESSION','XVid','FPS',FPS);

The above will only work if you have the XVid codec installed: I highly recommend this because it creates movie files that are an order of magnitude smaller than uncompressed files. If you have trouble with XVid, you can of course still save an uncompressed file for now. For longer movies, it is often required to save a file, say, every 500 frames, to prevent the f variable getting too large. These segments can then be merged with a video editing program such as VirtualDub (Windows only AFAIK; please suggest OSX/Linux alternatives if you know any that work well!).

All the figure and axis properties we explored earlier can be used here, too – so if you don't like the gray figure background, it's easily changed to e.g. black.

### GUIs

An alternative to interactive keyboard input using Figure properties is to create a graphical user interface (GUI). MATLAB has a nice tool, guide, which allows you to place various UI controls (such as buttons, text boxes, drop down menus, etc.) and display items (axes, text labels, etc.) using a graphical interface. The display items all have handles (whose names you can set in the guide tool), and the UI controls all have callback functions so that you can have UI control actions change what is displayed.

The GUIDE documentation has a nice tutorial, with this example as a good place to start.

### Sonification

I'm a fan of silent movies such as Metropolis, but if you plan to use movies of your data in any talks, you might want to add some sound. One way I've done this is to use Ken Schutte's matlab2midi toolbox to convert ensemble spiking data into a MIDI file, and then to synthesize the MIDI file into sound using something like Ableton Live.

To see how this works, first clone the matlab2midi repository and add the files to your MATLAB path.

A simple example is given by Ken:

% initialize matrix:
N = 13;  % num notes
M = zeros(N,6);

M(:,1) = 1;         % all in track 1
M(:,2) = 1;         % all in channel 1
M(:,3) = (60:72)';      % note numbers: one octave starting at middle C (60)
M(:,4) = round(linspace(80,120,N))';  % lets have volume ramp up 80->120
M(:,5) = (.5:.5:6.5)';  % note on:  notes start every .5 seconds
M(:,6) = M(:,5) + .5;   % note off: each note has duration .5 seconds

midi_new = matrix2midi(M);
writemidi(midi_new, 'testout.mid');

From reading the comments, you can get an idea of how the MIDI file specification works – it describes a piece of music using a number of different variables, here corresponding to the different rows of the M matrix. For our purposes, the most important are the “note on” and “note off” rows (5 and 6) and the pitch row (3). In converting spikes to sound, the spike times will determine what we put in rows 5 and 6, and we use the pitch row to assign a unique sound to each different cell.

So, we first need to create an array containing all spike times, with a corresponding array for each spike's cell number:

t = [5900 6000]; % time window

all_spikes = []; all_ids = [];
for iC = 1:length(S_r.t)
all_spikes = cat(1,all_spikes,S_r.t{iC});
all_ids = cat(1,all_ids,repmat(iC,length(S_r.t{iC}),1)); % cell ID
end
[all_spikes,srt] = sort(all_spikes,'ascend');
all_ids = all_ids(srt); clear srt;

all_spikes = [all_spikes; t(end)]; % add spike at end time
all_ids = [all_ids; 0];

all_spikes = all_spikes - t(1); % start at time 0

Then, we can write the result:

note_time = 0.05;
base = 20; % base pitch

nSpikes = length(all_spikes);
M = zeros(nSpikes,6); % output matrix

M(:,1) = 1; M(:,2) = 1; M(:,4) = 100;
M(:,3) = base+1.5*all_ids;
M(:,5) = all_spikes;
M(:,6) = all_spikes + note_time;

midi_new = matrix2midi(M);
writemidi(midi_new, 'r042.mid');

If you can't get this to work, the resulting file can be made to sound like this (with Ableton Live); Windows Media Player synthesizes it with a plain piano instrument, which sounds a bit different but is also effective at communicating the sudden, violently synchronous activity during SWRs!

## Using existing visualization tools

### MultiRaster

Youki and Alyssa in my lab wrote a fully-featured plotting function called MultiRaster(). As an example of what it can do, try this:

%% load data

%
cfg_plot = [];
cfg_plot.lfp = csc;
cfg_plot.spkColor = 'jet';
cfg_plot.evt = metadata.taskvars.trial_iv_L; % "left" trials on the T-maze

h = MultiRaster(cfg_plot,S);

You should get:

Now, press the 'h' key to bring up a window explaining the various keyboard shortcuts available. These work through the KeyPressFcn method introduced above; you can examine MultiRaster's KeyPressFcn by typing edit navigate (it's called navigate.m).

MultiRaster also uses a trick to speed up the plotting of spikes; it's many times faster than the method we used in this module so far, but it is more difficult to read the code – take a look if you are interested in finding out how it works!

Notice the output argument h, this is actually a struct with handles to the various plot objects. MultiRaster's help explains what they are.

Plotting time series data, such as the LFP used here, results in large numbers of data points which slow down MATLAB. A good way of further speeding up plotting is to decimate (i.e. downsample) time series data. So here, instead of plotting the full 2kHz signal, plotting it at 500Hz would be just as good and result in significant speedup, especially when scrolling/zooming a lot.

#### Diversion: handling variable numbers of function inputs

A standard function definition specifies the exact number of input and output arguments the function expects: function y = sqrt(x) has one input and one output argument. However, it is often useful to have a variable number of input arguments, so that you can override defaults or specify additional options as needed without complicating simple function calls. This section shows you two ways of doing that.

##### Method 1: cfg input

As you can see in the above example, and in MultiRaster's help, using a cfg struct as an input is one way to handle variable numbers of inputs to a function. Inside the function, you can do things like, “if cfg has a field called lfp, then plot it”. It is also a good way to deal with defaults which may be optionally overwritten. For instance, MultiRaster by default plots all spikes in black, but this can be overridden, as we did in the above example. Here is how that works (taken from inside MultiRaster, do not run this):

cfg_def.spkColor = 'k';

cfg = ProcessConfig(cfg_def,cfg_in);

What happens is that inside MultiRaster, a default config struct (cfg_def) is defined. The function ProcessConfig() compares the default to the incoming config (cfg_in); if anything in cfg_in is different, then the default is overridden. That way, the function can be called simply without specifying each option, because it will just use the defaults. But, if you want, you can specify something else in the input config.

##### Method 2: varargin

An alternative approach is to use the special input argument varargin. Here is the idea:

function test_fun(a,varargin)

b = 2; % set defaults for b and c
c = 3;

extract_varargin; % override b and c if specified

fprintf('a is %d, b is %d, c is %d\n',a,b,c);

Test it:

>> test_fun(1)
a is 1, b is 2, c is 3
>> test_fun(1,'b',1)
a is 1, b is 1, c is 3
>> 

Note how specifying a “key-value” pair ('b',1) overwrote the default for b. extract_varargin basically goes through the varargins and assigns each value to the corresponding key, similar to ProcessConfig().

☛ Verify your understanding by calling test_fun such that b and c are both set to 0. Also note what happens when you do test_fun(1,'B',1)!

### PlotTSDFromIV

PlotTSDFromIV() is a simple, lightweight function designed to show time series data (TSD) for specific intervals (IV, hence the name). It has two different display modes, the first one ('iv') looks like this:

cfg = [];
cfg.display = 'iv';
cfg.width = 0.1;
PlotTSDfromIV(cfg,metadata.SWRtimes,csc); % need to LoadMetadata to make this work!

(The intervals highlighted in red are manually selected, putative SWR events.)

☛ Try the other display mode, 'tsd'.

### FieldTrip's databrowser

As implied by the name, MultiRaster() is primarily intended for plotting spike data, although it can accept multiple tsd's for plotting as well.

The FieldTrip toolbox, which will be covered in more detail in later modules, has a number of data visualization tools that are better suited for plotting time series data such as LFPs, EEG/MEG and single-trial fMRI data.

To get our current data into the FieldTrip format, we first have to do a few steps:

% convert to ft format
cfg = []; cfg.mode = 'resample';
csc_ft = TSDtoFT(cfg,csc);
t0 = csc_ft.time{1}(1); csc_ft.time{1} = csc_ft.time{1}-t0;

% create ft trials from iv
trl_cfg = [];
trl_cfg.mode = 'neuralynx';
trl_cfg.hdr = csc_ft.hdr;
trl_cfg.twin = [-1 1];

trl = ft_maketrl(trl_cfg);

% use trials to create trialified data structure
temp_cfg = []; temp_cfg.trl = trl;

ft_in = ft_redefinetrial(temp_cfg,csc_ft);

Now we can run the data browser by typing ft_databrowser([],ft_in);, to get

Notice the various control buttons for moving between trials, channels (here we have only one loaded), and other functions, documented here. FieldTrip is able to load many types of data files, see here for the list and how to use its data loaders.

## Challenges

★ Modify MultiRaster(), or write your own, to create a data visualization function useful for your data.

★ Create a movie, with sound, of an aspect of your own data that you can see being useful in a talk you might give on your work. For inspiration, here is an example using hippocampal place cells from Matt Wilson's lab, and here is something using EEG data.

## Discussion

, 2021/06/03 14:53

, 2021/06/03 16:11

, 2021/06/03 19:57

, 2021/06/04 09:08

, 2021/06/06 14:57

, 2021/11/19 16:37

rcweb.dartmouth.edu I'm happy that you totally shared this gainful info with us. https://clients1.google.de/url?q=https://vikingservice-ny.com

, 2022/05/01 20:06

goodrx sildenafil <a href=“https://viagrahom.com/”>over the counter female viagra</a> viagra 100 mg

, 2022/05/08 09:29

hidroxicloroquina 400mg <a href=“https://keys-chloroquineclinique.com/#”>hydroxychloroquine covid</a>

, 2022/05/13 04:20

buy viagra online <a href=“https://viagramonk.com/”>sildenafil citrate 100mg</a> buy sildenafil online usa

, 2022/06/02 07:12

hydroxychloroquine sarcoidosis <a href=“https://shopplaquenil.net/”>hydroxychloroquine rheumatoid arthritis</a> plaquenil patient assistance program

, 2022/06/08 04:14

dog bite augmentin <a href=“https://augmentinlife.net/”>antibiotic augmentin</a> augmentin to buy

, 2022/06/08 13:40

It's actually a cool and useful piece of information. I am happy that you simply shared this helpful info with us. Please stay us up to date like this. Thank you for sharing. donate for ukraine

, 2022/06/08 13:40

It's actually a cool and useful piece of information. I am happy that you simply shared this helpful info with us. Please stay us up to date like this. Thank you for sharing. donate for ukraine

, 2022/06/08 14:03

Good way of explaining, and good article to get information concerning my presentation topic, which i am going to convey in school. aid for ukraine

, 2022/06/08 14:03

Good way of explaining, and good article to get information concerning my presentation topic, which i am going to convey in school. aid for ukraine

, 2022/06/09 06:11

buy orlistat cheap online <a href=“https://mxorlistat.com/”>vasdecom orlistat 120 mg</a> orlistat tablets price

, 2022/06/11 01:07

Greetings! Very useful advice in this particular post!

It is the little changes that make the largest changes. Thanks a lot for sharing! aid for ukraine

, 2022/06/11 01:07

Greetings! Very useful advice in this particular post! It is the little changes that make the largest changes. Thanks a lot for sharing! aid for ukraine

, 2022/06/16 16:03

<a href=“https://www.saldianyone.com/miss-sab-pump-louboutine”>miss sab pump</a> <a href=“https://www.webasbl.net/stockx-air-max-97-halloween-shippingau”>stockx air max 97 halloween</a> <a href=“https://www.almaretravel.com/plain-white-long-sleeve-top-poloit”>plain white long sleeve top</a> <a href=“http://www.carasello.com/nike-kyrie-1-hvit-oransje-schuheno”>nike kyrie 1 hvit oransje</a> <a href=“https://www.dessanchar.com/fro-systems-body-warmer-polow”>fro systems body warmer</a> <a href=“https://www.lvalverde.net/radar-ev-path-snow-sunglassfr”>radar ev path snow</a> [url=http://www.celexacit.com/]celexacit[/url]

, 2022/06/16 21:53

<a href=“https://www.favagok.com/coach-monogram-handbag-bage”>coach monogram handbag</a> <a href=“https://www.hdcamcrew.com/vera-wang-bespoke-wedding-dress-satydk”>vera wang bespoke wedding dress</a> <a href=“https://www.frozenmojo.com/types-of-tight-dresses-satyf”>types of tight dresses</a> <a href=“https://www.lebfun.com/female-moncler-coats-monclerdk”>female moncler coats</a> <a href=“https://www.dostindian.com/mini-michael-kors-bookbag-bage”>mini michael kors bookbag</a> <a href=“https://www.projoust.com/zomer-polos-poloit”>zomer polos</a> reidmanor http://www.reidmanor.com/

, 2022/06/17 19:16

I do agree with all the ideas you have offered in your post. They're very convincing and will definitely work. Still, the posts are too short for newbies. Could you please extend them a bit from subsequent time? Thank you for the post. help refuges

, 2022/06/17 19:16

I do agree with all the ideas you have offered in your post. They're very convincing and will definitely work. Still, the posts are too short for newbies. Could you please extend them a bit from subsequent time? Thank you for the post. help refuges

, 2022/06/18 05:49

<a href=“https://www.talkuo.com/arsenal-soccer-pants-jerseyit”>arsenal soccer pants</a> <a href=“https://www.mj-des.com/love-tiffany-bracelet-pandoraes”>love tiffany bracelet</a> <a href=“https://www.classfaqs.com/light-pink-evening-gown-satyit”>light pink evening gown</a> <a href=“https://www.shoop-parfum.com/best-slim-iphone-11-pro-case-casedk”>best slim iphone 11 pro case</a> <a href=“https://www.boldesibol.com/mizuno-energy-wave-sky-4-runen”>mizuno energy wave sky 4</a> <a href=“https://www.biosavons.com/lids-army-hat-handno”>lids army hat</a> koteiko http://www.koteiko.com/

, 2022/06/18 05:49

<a href=“https://www.hdcamcrew.com/ray-ban-clubround-replacement-lenses-sunglassit”>ray ban clubround replacement lenses</a> <a href=“https://www.lebfun.com/moncler-fragment-mayconne-monclerno”>moncler fragment mayconne</a> <a href=“https://www.projoust.com/santos-fc-kit-nhlfr”>santos fc kit</a> <a href=“https://www.lpiinews.com/romo-color-rush-jersey-jerseyfr”>romo color rush jersey</a> <a href=“https://www.afidmex.com/milwaukee-bucks-blue-jersey-jerseyes”>milwaukee bucks blue jersey</a> frausieben http://www.frausieben.net/

, 2022/06/19 17:11

<a href=“https://www.howtoans.com/wayfarer-2-sunglassno”>wayfarer 2</a> <a href=“https://www.lemmacres.com/gallinule-moncler-monclerr”>gallinule moncler</a> <a href=“http://www.mgpheathrow.com/wholesale-mens-nike-snapback-hats”>wholesale mens nike snapback</a> <a href=“https://www.quecarajoes.com/new-york-yankees-mlb-47-franchise-cap-year-hatw”>new york yankees mlb 47 franchise cap year</a> <a href=“http://www.shoestarr.com/nike-zoom-pegasus-31-noir-femmes-runningc”>nike zoom pegasus 31 noir femmes</a> <a href=“http://www.thpcstore.com/jordan-1-sort-red-strap-shoese”>jordan 1 sort red strap</a> therawplate http://www.therawplate.com/

, 2022/06/19 17:11

<a href=“http://www.badazzshoes.com/moncler-friesian-moncler0”>moncler friesian</a> <a href=“http://www.comunidadmh.com/messi-soccer-gear-jerseyo”>messi soccer gear</a> <a href=“https://www.federalspare.com/white-organic-cotton-dress-satyt”>white organic cotton dress</a> <a href=“https://www.lebsocial.com/air-jordan-7-bianca-blu-shoesy”>air jordan 7 bianca blu</a> <a href=“http://www.lktvchannel.com/raptors-ovo-hat-champion-for-eu-handj”>raptors ovo hat champion for eu</a> <a href=“https://www.namasedu.net/rb3025-polarized-replacement-lenses-sunglassno”>rb3025 polarized replacement lenses</a> toptorah http://www.toptorah.com/

, 2022/06/19 17:11

<a href=“https://www.celexacit.com/moncler-arves-down-jacket-monclere”>moncler arves down jacket</a> <a href=“http://www.hellobinh.com/los-angeles-dodgers-custom-hats-for-sale-hate”>los angeles dodgers custom hats for sale</a> <a href=“https://www.lauramaze.com/moncler-vltn-jacket-monclere”>moncler vltn jacket</a> <a href=“http://www.monctondjs.com/petite-dresses-for-summer-wedding-dress0”>petite dresses for summer wedding</a> <a href=“https://www.reidmanor.com/womens-dunk-low-next-nature-sail-sneakernz”>womens dunk low next nature sail</a> <a href=“http://www.stephensng.com/air-jordan-13-retro-rouge-noir-runninge”>air jordan 13 retro rouge noir</a> vikingak http://www.vikingak.com/

, 2022/06/19 20:12

<a href=“http://www.designinator.com/all-black-toronto-blue-jays-hat-news-capb”>all black toronto blue jays hat news</a> <a href=“https://www.lsdmuzic.com/aidan-mattox-gold-sequin-dress-satyq”>aidan mattox gold sequin dress</a> <a href=“https://www.lucianoluz.com/asicstiger-nonnative-shoesf”>asicstiger nonnative</a> <a href=“https://www.nembutalfso.com/nhl-new-third-jerseys-jerseydk”>nhl new third jerseys</a> <a href=“https://www.saglikara.net/14k-gold-pandora-bangle-pandorafr”>14k gold pandora bangle</a> <a href=“https://www.sdlcexpert.com/authentic-jim-brown-mens-throwback-jersey-cleveland-browns-32-road-white-mitchell-and-ness-nfl-jerseyt”>authentic jim brown mens throwback jersey cleveland browns 32 road white mitchell and ness nfl</a> homembt http://www.homembt.com/

, 2022/06/19 20:12

<a href=“http://www.riscad.com/engagement-suits-for-ladies-ldres”>engagement suits for ladies</a> <a href=“https://www.sinkaltim.com/tan-louboutin-heels-louboutinfr”>tan louboutin heels</a> <a href=“https://www.sozhane.com/corinthians-away-shirt-for-cheap-nflr”>corinthians away shirt for cheap</a> <a href=“https://www.vicksfabs.com/medium-michael-kors-wallet-bagq”>medium michael kors wallet</a> <a href=“https://www.biosavons.com/nike-lakers-lebron-shirt-nfldk”>nike lakers lebron shirt</a> <a href=“http://www.blogduwem.com/jordan-retro-13-hvit-svart-red-schoenenuk”>jordan retro 13 hvit svart red</a> lawnpink http://www.lawnpink.com/

, 2022/06/20 04:15

<a href=“https://www.howtoans.com/north-face-fleece-jacket-with-hood-northfaceno”>north face fleece jacket with hood</a> <a href=“https://www.smefaculty.com/pink-dolphin-boo-bucket-hat-download-capq”>pink dolphin boo bucket hat download</a> <a href=“https://www.bez-diploma.com/oakley-cargo-sunglassit”>oakley cargo</a> <a href=“https://www.macosaug.com/elite-mark-ingram-womens-jersey-new-orleans-saints-22-new-be-luvd-pink-nfl-nhly”>elite mark ingram womens jersey new orleans saints 22 new be luvd pink nfl</a> <a href=“https://www.eseaship.com/nhl-power-31-jersey-jerseyen”>nhl power 31 jersey</a> <a href=“https://www.rotimpex.com/h-m-white-satin-dress-satyf”>h m white satin dress</a> demuslimah http://www.demuslimah.com/

, 2022/06/21 18:35

<a href=“https://www.belljen.net/adidas-ultra-boost-4.0-dna-mens-shippingde”>adidas ultra boost 4.0 dna mens</a> <a href=“http://www.casahirta.com/yeezy-slides-13-bootw”>yeezy slides 13</a> <a href=“https://www.latestime.com/pandora-taurus-pandroaw”>pandora taurus</a> <a href=“http://www.lisupplyco.com/nike-free-5.0-black-junior-shoesg”>nike free 5.0 black junior</a> <a href=“https://www.mygohotels.com/houston-rockets-mitchell--ness-xl-reflective-cropped-snapback-cap-haty”>houston rockets mitchell ness xl reflective cropped snapback cap</a> <a href=“http://www.zivougim.com/body-warmer-womens-black-polor”>body warmer womens black</a> tagsires http://www.tagsires.com/

, 2022/06/21 18:35

<a href=“http://www.czaterianie.com/mens-nike-flex-experience-rn-7-zapatose”>mens nike flex experience rn 7</a> <a href=“https://www.flowimg.com/philadelphia-phillies-fitted-hats-kit-hando”>philadelphia phillies fitted hats kit</a> <a href=“https://www.listerful.com/nike-kobe-10-nero-persian-violet-shoesp”>nike kobe 10 nero persian violet</a> <a href=“https://www.nnz-home.net/2t-baker-mayfield-jersey-nflit”>2t baker mayfield jersey</a> <a href=“http://www.partsatmap.com/jordan-pom-camo-knit-hat-for-sale-hatr”>jordan pom camo knit hat for sale</a> <a href=“http://www.puenthai.com/new-york-mets-trucker-hat-for-sale-handi”>new york mets trucker hat for sale</a> nolteknows http://www.nolteknows.com/

, 2022/06/22 06:44

<a href=“https://www.talkuo.com/4x-football-pants-jerseyfr”>4x football pants</a> <a href=“https://www.mj-des.com/nike-720-mens-sale-shippingde”>nike 720 mens sale</a> <a href=“https://www.classfaqs.com/womens-newsboy-winter-hat-capit”>womens newsboy winter hat</a> <a href=“https://www.shoop-parfum.com/787894npomx-pandorano”>787894npomx</a> <a href=“https://www.boldesibol.com/adidas-beckenbauer-10.5-shippingau”>adidas beckenbauer 10.5</a> <a href=“https://www.biosavons.com/off-skirt-dress-robede”>off skirt dress</a> exledau http://www.exledau.com/

, 2022/06/23 16:20

<a href=“https://www.ericonidi.com/plus-size-print-maxi-dress-dressno”>plus size print maxi dress</a> <a href=“http://www.gotstuffsales.com/new-balance-v6-blanc-schuhees”>new balance v6 blanc</a> <a href=“https://www.mersiniz.com/galia-lahav-designer-dresst”>galia lahav designer</a> <a href=“https://www.novynha.com/gray-gold-nike-air-huarache-australia-shoes-shoeu”>gray gold nike air huarache australia shoes</a> <a href=“https://www.webbirga.net/the-new-warriors-jersey-nhlde”>the new warriors jersey</a> <a href=“https://www.baffineri.com/ray-ban-prescription-sunglasses-vsp-sunglassit”>ray ban prescription sunglasses vsp</a> nexussforum http://www.nexussforum.net/

, 2022/06/23 16:21

<a href=“https://www.twardak.com/chicago-bears-majestic-big-and-tall-heart-soul-iii-t-shirt-jerseydk”>chicago bears majestic big and tall heart soul iii t shirt</a> <a href=“https://www.vamadisz.com/pandora-ring-with-wings-pandorano”>pandora ring with wings</a> <a href=“https://www.webdooni.com/pandora-bride-charm-pandroae”>pandora bride charm</a> <a href=“https://www.boominets.com/oversized-jean-dress-dresse”>oversized jean dress</a> <a href=“https://www.fiverrsnooper.com/orange-satin-gown-robet”>orange satin gown</a> <a href=“https://www.monikakrol.com/red-colts-hat-handde”>red colts hat</a> sifaligidalar http://www.sifaligidalar.com/

, 2022/06/28 13:43

<a href=“https://www.lucomania.com/liverpool-red-jersey-jerseyit”>liverpool red jersey</a> <a href=“https://www.catfishmoe.com/pink-pave-butterfly-charm-pandora-pandoraes”>pink pave butterfly charm pandora</a> <a href=“https://www.storams.com/fishnet-halter-dress-satyit”>fishnet halter dress</a> <a href=“https://www.lesnaudines.com/thin-wallet-phone-case-casede”>thin wallet phone case</a> <a href=“https://www.mizukachan.com/hoka-one-one-ora-recovery-womens-sandals-runen”>hoka one one ora recovery womens sandals</a> <a href=“https://www.hyo-kin.com/rangers-powder-blue-cap-handno”>rangers powder blue cap</a> smileytips http://www.smileytips.com/

, 2022/06/29 18:33

<a href=“https://www.wpmashin.com/redmi-note-8-pro-rubber-back-cover-casenz”>redmi note 8 pro rubber back cover</a> <a href=“https://www.cikgudollah.com/nike-swingman-baseball-cleats-for-cheap-jerseys”>nike swingman baseball cleats for cheap</a> <a href=“https://www.costruth.com/miami-dolphins-running-hat-sweatband-nz-handu”>miami dolphins running hat sweatband nz</a> <a href=“https://www.daileen.net/james-harden-in-a-nets-jersey-nfles”>james harden in a nets jersey</a> <a href=“https://www.filecodi.net/one-year-baby-girl-party-wear-dress-satyfr”>one year baby girl party wear dress</a> <a href=“https://www.saponions.com/ralph-lauren-big-polo-poloit”>ralph lauren big polo</a> snywlt http://www.snywlt.com/

, 2022/07/01 10:09

<a href=“https://www.benistabili.net/heren-polo-gant-poloes”>heren polo gant</a> <a href=“http://www.beursact.com/all-white-aj1-mid-blanc-trainersuk”>all white aj1 mid blanc</a> <a href=“https://www.liorrey.com/chicago-white-sox-baby-hat-zions-hatsr”>chicago white sox baby hat zions</a> <a href=“https://www.lumeraserum.com/nike-flyknit-racer-red-sort-hvid-shippingau”>nike flyknit racer red sort hvid</a> <a href=“https://www.mj-des.com/undertaker-hat-and-coat-in-ring-capno”>undertaker hat and coat in ring</a> <a href=“https://www.roadeks.com/pandora-baking-charm-pandroay”>pandora baking charm</a> makrisberns http://www.makrisberns.com/

, 2022/07/01 10:10

<a href=“https://www.sadlifebox.com/flower-print-dress-design-satye”>flower print dress design</a> <a href=“https://www.bitencore.com/the-north-face-gotham-ii-parka-northfaceno”>the north face gotham ii parka</a> <a href=“https://www.bizopcntr.com/nike-free-metcon-men-blanc-sneakerq”>nike free metcon men blanc</a> <a href=“https://www.cursodeunas.com/nba-swingman-city-edition-for-cheap-nhly”>nba swingman city edition for cheap</a> <a href=“http://www.nanopose.com/washington-nationals-bling-hat-university-cape”>washington nationals bling hat university</a> <a href=“https://www.nardulan.com/why-does-my-pandora-bracelet-keep-tarnishing-pandorano”>why does my pandora bracelet keep tarnishing</a> nardulan http://www.nardulan.com/

, 2022/07/02 04:14

<a href=“https://www.cwvanlines.com/new-latest-style-dress-satyi”>new latest style dress</a> <a href=“http://www.drfazlani.com/black-and-white-air-max-2016-shoes-spain-scarpeu”>black and white air max 2016 shoes spain</a> <a href=“http://www.freedomqdro.com/cam-neely-shirt-nhlo”>cam neely shirt</a> <a href=“https://www.mgothar.net/oakley-slippers-sunglassno”>oakley slippers</a> <a href=“http://www.nootsmail.com/alabama-new-era-fitted-hats-embroidered-hatg”>alabama new era fitted hats embroidered</a> <a href=“https://www.wearehobo.com/light-blue-lace-prom-dress-dressy”>light blue lace prom dress</a> billsodds http://www.billsodds.com/

, 2022/07/03 09:08

<a href=“https://www.cuakpsi.com/sherlock-hat-for-dogs-capfr”>sherlock hat for dogs</a> <a href=“https://www.trientry.com/fastrack-wayfarer-sunglasses-for-men-sunglassno”>fastrack wayfarer sunglasses for men</a> <a href=“https://www.fayamatt.com/nfl-coaches-attire-jerseyen”>nfl coaches attire</a> <a href=“https://www.howtoans.com/seattle-seahawks-24-jersey-jerseyfr”>seattle seahawks 24 jersey</a> <a href=“https://www.bez-diploma.com/doc-martens-kolbert-wintergrip-shippingde”>doc martens kolbert wintergrip</a> <a href=“https://www.eseaship.com/polo-ralph-lauren-blue-cap-capno”>polo ralph lauren blue cap</a> milumba http://www.milumba.com/

, 2022/07/06 16:46

<a href=“https://www.cuakpsi.com/converse-high-hike-black-runno”>converse high hike black</a> <a href=“https://www.trientry.com/new-dior-b22-shippingen”>new dior b22</a> <a href=“https://www.fayamatt.com/white-cropped-long-sleeve-shirt-polofr”>white cropped long sleeve shirt</a> <a href=“https://www.howtoans.com/signed-michael-irvin-jersey-nfldk”>signed michael irvin jersey</a> <a href=“https://www.bez-diploma.com/franklin-sports-nfl-deluxe-youth-uniform-set-nhlno”>franklin sports nfl deluxe youth uniform set</a> <a href=“https://www.eseaship.com/aj-1-mid-black-gold-sneakerit”>aj 1 mid black gold</a> tekstrens http://www.tekstrens.com/

, 2022/07/08 21:33

analysis:course-w16:week3long [] ocewzfpvyd http://www.gwdkp7q0mag533z613a5l378d7trx982s.org/ [url=http://www.gwdkp7q0mag533z613a5l378d7trx982s.org/]uocewzfpvyd[/url] <a href=“http://www.gwdkp7q0mag533z613a5l378d7trx982s.org/”>aocewzfpvyd</a>

, 2022/07/09 23:18

Clear Round Wire Power Cable https://www.kndcable.com/products/Clear-Round-Wire-Power-Cable.html 20mm Insulated Pipe https://www.pipefittingtech.com/20mm-insulated-pipe/

, 2022/07/10 01:54

Hello, I enjoy reading through your article post. I wanted to write a little comment to support you. aid for ukraine

, 2022/07/10 01:54

Hello, I enjoy reading through your article post. I wanted to write a little comment to support you. aid for ukraine

, 2022/07/10 04:31

18AWG Clear Power Cable https://www.kndcable.com/products/18AWG-Clear-Power-Cable.html Cold Storage Door Locks https://www.linblegroup.com/cold-storage-door-locks/

, 2022/07/10 07:56

Hi there! Do you use Twitter? I'd like to follow you if that would be ok. I'm definitely enjoying your blog and look forward to new updates. save refuges

, 2022/07/10 07:56

Hi there! Do you use Twitter? I'd like to follow you if that would be ok.

I'm definitely enjoying your blog and look forward to new updates. save refuges

, 2022/07/11 03:24

18AWG Louspeaker Cable https://www.kndcable.com/products/18AWG-Louspeaker-Cable.html Best Glucosamine Sulfate For Arthritis https://www.beyond-collagen.com/best-glucosamine-sulfate-for-arthritis/

, 2022/07/11 06:00

China 4.5Diamond Grinding Wheel For Sharpening Tungsten https://www.jyxwheel.com/china-4-5diamond-grinding-wheel-for-sharpening-tungsten/ Single Door Base Flat Pack Kitchen https://www.jsshome.com/single-door-base-flat-pack-kitchen.html

, 2022/07/13 07:39

Brass Pole Lamp https://www.classicledlights.com/brass-pole-lamp/ Freestanding Neoperl Aerator Nordic Style Bathtub Faucet https://www.orans-sanitary.com/freestanding-neoperl-aerator-nordic-style-bathtub-faucet.html

, 2022/07/13 19:31

Belt Bag For Men https://www.colorsbags.com/belt-bag-for-men/ MDF PU matt Lacquering Cabinet with DTC slider Drawers https://www.orans-sanitary.com/mdf-pu-matt-lacquering-cabinet-with-dtc-slider-drawers.html

, 2022/07/14 21:43

Contact Lens Cleaning https://www.vvmedicalgroup.com/contact-lens-cleaning/ BV Round Wire Power Cable https://www.kndcable.com/products/BV-Round-Wire-Power-Cable.html

, 2022/07/15 09:46

<a href=“https://www.bushkim.net/black-and-orange-nike-vapormax-plus-shippingit”>black and orange nike vapormax plus</a> <a href=“https://www.pa-clan.net/moncler-softshell-monclerdk”>moncler softshell</a> <a href=“https://www.nnz-home.net/kate-spade-scallop-bag-bagbo”>kate spade scallop bag</a> <a href=“https://www.bcporter.net/unisex-long-sleeve-polono”>unisex long sleeve</a> <a href=“https://www.dietibg.net/north-face-mini-trucker-hat-handit”>north face mini trucker hat</a> <a href=“https://www.webbirga.net/pandora-jewelry-birthstone-charms-pandorano”>pandora jewelry birthstone charms</a> osamusushi http://www.osamusushi.com/

, 2022/07/16 09:33

Conveyor Lift https://www.ascendfuji.com/conveyor-lift/ 1.5Meter PS2 To PC Adapter Cable Audio Cables https://www.kndcable.com/products/1-5Meter-PS2-To-PC-Adapter-Cable-Audio-Cables.html

, 2022/07/17 03:53

Nylon Insert Nut https://www.hynut.com/nylon-insert-nut Golf Hitting Target Cloth https://www.sunnylandsports.com/golf-hitting-target-cloth/

, 2022/07/17 20:44

<a href=“https://www.pinmein.com/michael-kors-delancy-wallet-bage”>michael kors delancy wallet</a> <a href=“https://www.ukomik.com/petite-mother-of-the-bride-outfits-satyno”>petite mother of the bride outfits</a> <a href=“http://www.valleditures.com/nike-air-max-90-breathe-green-scarpeuk”>nike air max 90 breathe green</a> <a href=“https://www.wanhedra.com/moncler-gelt-monclere”>moncler gelt</a> <a href=“https://www.crimsoku.com/jimmy-choo-black-heels-red-sole-louboutindk”>jimmy choo black heels red sole</a> <a href=“https://www.ddukmani.com/baddie-oversized-shirts-poloy”>baddie oversized shirts</a> stanthonyshyd http://www.stanthonyshyd.com/

, 2022/07/18 23:09

Dna Sequencing Cost https://www.bmkgene.com/tag/dna-sequencing-cost/ Pyridine sulfur trioxide CAS 26412-87-3 https://www.believechemical.com/pyridine-sulfur-trioxide-cas-26412-87-3.html

, 2022/07/19 13:14

30w Solar Led Street Light https://www.classicledlights.com/30w-solar-led-street-light/ 4-Hydroxybenzophenone CAS 1137-42-4 https://www.believechemical.com/4-hydroxybenzophenone-cas-1137-42-4.html

, 2022/07/19 21:47

[Copy] DL Series flanged concentric butterfly valve https://www.tws-valve.com/copy-dl-series-flanged-concentric-butterfly-valve-product/ 5-Bromo-2-methoxypyridine CAS 13472-85-0 https://www.believechemical.com/5-bromo-2-methoxypyridine-cas-13472-85-0.html

, 2022/07/20 05:45

Bunching/Stranding Machine for Wire and Cable https://www.orientps.com/bunchingstranding-machine-for-wire-and-cable/ Sauna Room https://www.orans-sanitary.com/sauna-room

, 2022/07/20 09:30

Industrial Scrubbers And Electrostatic Precipitators https://www.bestdustcollector.com/industrial-scrubbers-and-electrostatic-precipitators/ Black Color and White Color Available for the Cabin https://www.orans-sanitary.com/black-color-and-white-color-available-for-the-cabin.html

, 2022/07/21 03:40

Circular Saw Grinding Wheel Manufacturers https://www.jyxwheel.com/circular-saw-grinding-wheel-manufacturers/ Silicone Oil 580 https://www.pumaterial.com/silicone-oil-580.html

, 2022/07/22 01:21

Black Kitchen Cabinets https://www.jsshome.com/products/Black-Kitchen-Cabinets.html Bathroom Niche https://www.tuogurong.com/bathroom-niche/

, 2022/07/22 17:20

Products https://www.hbzebo.com/products/ Best Bathroom Vanities https://www.jsshome.com/products/Best-Bathroom-Vanities.html

, 2022/07/22 23:56

p-Nitrobenzoic acid CAS 62-23-7 https://www.believechemical.com/p-nitrobenzoic-acid-cas-62-23-7.html Smart Band For Men https://www.colmi.com/smart-band-for-men/

, 2022/07/23 03:29

Birthday Cake Scented Candles https://www.zhongyacandle.com/birthday-cake-scented-candles/ 3-Methyl-4-nitrophenol CAS 2581-34-2 https://www.believechemical.com/3-methyl-4-nitrophenol-cas-2581-34-2.html

, 2022/07/23 11:33

E-Cigs Disposable Vape Pens And Vaping Kits Blu https://www.ternovape.com/e-cigs-disposable-vape-pens-and-vaping-kits-blu.html Wood Star https://www.enpuwood.com/wood-star/

, 2022/07/23 21:26

Low Pressure Sensor https://www.senexsensor.com/low-pressure-sensor/ Large Diameter Flanged Hose Rubber Tube https://www.fushuorubber.com/large-diameter-flanged-hose-rubber-tube.html

, 2022/07/24 01:14

Bearded Dragon Egg Incubator https://www.incubatoregg.com/bearded-dragon-egg-incubator/ Water Hose Rubber Tube https://www.fushuorubber.com/water-hose-rubber-tube.html

, 2022/07/24 09:09

Aisi 304l Stainless Steel Plate https://www.charmingmetal.com/tag/aisi-304l-stainless-steel-plate/ Best Online Vape Stores 2022 The Top 10 Online Vape Shops Ship To Russian https://www.ternovape.com/best-online-vape-stores-2022-the-top-10-online-vape-shops-ship-to-russian.html

, 2022/07/24 13:39

Blumcraft Glass Railing https://www.allglassrailing.com/blumcraft-glass-railing/ Kitchen Cabinet Doors PETG https://www.jsshome.com/products/Kitchen-Cabinet-Doors-PETG.html

, 2022/07/24 21:44

Backpacking Carbon Trekking Poles https://www.chanhone.com/backpacking-carbon-trekking-poles.html Personalized Poker Chips https://www.jypokerchip.com/personalized-poker-chips/

, 2022/07/25 13:57

Mini Air Regulator https://www.liyadu.com/mini-air-regulator/ 2,4-Difluoronitrobenzene CAS 446-35-5 https://www.believechemical.com/2-4-difluoronitrobenzene-cas-446-35-5.html

, 2022/07/25 23:09

, 2022/07/26 09:18

2-piece Rimless Soft-closing Strong Seat Cover Ceramic Toilet https://www.orans-sanitary.com/2-piece-rimless-soft-closing-strong-seat-cover-ceramic-toilet.html 304 Cold Rolled Stainless Steel Coil https://www.charmingmetal.com/tag/304-cold-rolled-stainless-steel-coil/

, 2022/07/26 15:02

Affordable Dog Beds https://www.kuangsglobal.com/affordable-dog-beds/ 14AWG Primary Wire https://www.kndcable.com/products/14AWG-Primary-Wire.html

, 2022/07/26 23:28

Li Ion Button Cell 3.7v Button 40mah https://www.encorecn.com/li-ion-button-cell-3-7v-button-40mah.html Car Magnet Holder https://www.su-magnet.com/car-magnet-holder/

, 2022/07/28 01:17

AFS Bolt Type Fuse Holder https://www.kndcable.com/products/AFS-Bolt-Type-Fuse-Holder.html Inflammation And Cancer https://www.nnbnutrition.com/inflammation-and-cancer-tag/

, 2022/07/28 03:49

Cas 288573 56 8 https://www.gskhf-china.com/cas-288573-56-8/ PET Thermal Lamination Film https://www.newstar-machinery.com/pet-thermal-lamination-film

, 2022/07/29 03:21

Needle Roller Bearing HK Series HK162109 HK1210 HK1212 https://www.umz-bearing.com/222-needle-roller-bearing-hk-series-hk162109-hk1210-hk1212.html Brown Shimeji https://www.fincmushroom.com/brown-shimeji/

, 2022/07/29 23:43

Top Tooth Brushes https://www.lovsmilesc.com/top-tooth-brushes/ French Fries Cup https://www.xkzspack.com/french-fries-cup

, 2022/07/30 21:42

UV Coating Machine https://www.newstar-machinery.com/ Lotion Bottle Filling Machine https://www.yodeemachinery.com/lotion-bottle-filling-machine/

, 2022/07/31 21:34

1,3-Dibromopropane CAS 109-64-8 https://www.believechemical.com/1-3-dibromopropane-cas-109-64-8.html Brass Laundry Taps https://www.dqfloordrain.com/brass-laundry-taps/

, 2022/08/02 01:35

Bagasse Bowls https://www.ecohongsheng.com/bagasse-bowls/ Self Tapping Screw https://www.aokemetal.com/self-tapping-screw

, 2022/08/02 05:06

A2-70 Hexagon Head Bolt https://www.aokemetal.com/a2-70-hexagon-head-bolt.html Always Tired And Sleepy https://www.nnbnutrition.com/always-tired-and-sleepy-tag/

, 2022/08/02 09:17

Signal Relay https://www.forward-relays.com/signal-relay Rasoir à six lames https://www.huayoucom.fr/rasoir-a-six-lames/

, 2022/08/02 17:22

Subminiature PCB Relay https://www.forward-relays.com/subminiature-pcb-relay.html Cloth Knitting Machine https://www.leadsfon.com/cloth-knitting-machine/

, 2022/08/03 07:45

Bathroom Hardware https://www.orans-sanitary.com/bathroom-hardware Bako Kuri Sushi https://www.eeljxhuchen.com/bako-kuri-sushi/

, 2022/08/03 21:34

Coiled Finned Tube https://www.datangfintubes.com/coiled-finned-tube/ Round Wire TV Cable https://www.kndcable.com/products/Round-Wire-TV-Cable.html

, 2022/08/06 03:15

Digital Liquid Filling Machine https://www.gunaiyou.com/digital-liquid-filling-machine/ One Person Red Cedar Carbon Fiber Heater Infrared Sauna https://www.langtecn.com/one-person-red-cedar-carbon-fiber-heater-infrared-sauna.html

, 2022/08/07 01:24

High Quality Android 10 Mobile Computer Barcode Scanner - Android Mobile Computer C6000 - Handheld-Wireless https://www.uhfpda.com/high-quality-android-10-mobile-computer-barcode-scanner-android-mobile-computer-c6000-handheld-wireless-6-product/ 2-piece Rimless Easy-clean and Mute Water Fittings Round Ceramic Toilet https://www.orans-sanitary.com/2-piece-rimless-easy-clean-and-mute-water-fittings-round-ceramic-toilet.html

, 2022/08/07 19:52

Distribution Block https://www.kndcable.com/products/Distribution-Block.html 96 Well Sterile Pcr Plate https://www.biobbsp.com/96-well-sterile-pcr-plate/

, 2022/08/08 01:53

Loudspeaker Wire https://www.kndcable.com/loudspeaker-wire.html Ceramic Tile Garage Floor https://www.donocreation.com/ceramic-tile-garage-floor/

, 2022/08/08 05:21

Catalyst A1 https://www.pumaterial.com/catalyst-a1.html Perfume Production Line https://www.yodeemachinery.com/perfume-production-line/

, 2022/08/08 21:16

Turmeric And Milk https://www.nnbnutrition.com/turmeric-and-milk-tag/ A2-70 DIN 934 Hex Nut https://www.aokemetal.com/a2-70-din-934-hex-nut.html

, 2022/08/08 23:46

Home Bathroom Vanities https://www.jsshome.com/products/Home-Bathroom-Vanities.html Bar Cabinet With Wine Storage https://www.kellynohe.com/bar-cabinet-with-wine-storage/

, 2022/08/09 09:41

Mica Powder For Rubber Filling https://www.jxkc.com/mica-powder-for-rubber-filling/ 3.7v 1000mah Li Polymer Battery https://www.encorecn.com/3-7v-1000mah-li-polymer-battery.html

, 2022/08/09 23:29

Mamy Poko Diapers https://www.hiya-care.com/mamy-poko-diapers.html Pasador de enganche de remolque con bloqueo https://www.lydih.es/pasador-de-enganche-de-remolque-con-bloqueo/

, 2022/08/10 07:44

4xl Incontinence Briefs https://www.hiya-care.com/4xl-incontinence-briefs.html Ground Protection Mats For Unstable Substrate https://www.plasticroadway.com/ground-protection-mats-for-unstable-substrate/

, 2022/08/10 17:51

Baby Training Pants Diapers For Toddlers https://www.hiya-care.com/baby-training-pants-diapers-for-toddlers.html Puerta de borde de pluma http://es.znmetalproducts.com/feather-edge-gate/

, 2022/08/10 21:42

Крепления двигателя Ls1 http://ru.oupinautoparts.com/ls1-engine-mounts/ Wingless Shape Maternity Sanitary Pads https://www.hiya-care.com/wingless-shape-maternity-sanitary-pads.html

, 2022/08/11 19:52

Pure Cotton Maternity Pad https://www.hiya-care.com/pure-cotton-maternity-pad.html Essential Oils For Mosquito Bites https://www.jxbaicao.com/essential-oils-for-mosquito-bites/

, 2022/08/11 23:21

Wall Mounted Folding Stainless Steel Wash Basin https://www.crvaa.com/wall-mounted-folding-stainless-steel-wash-basin.html 18 Years Factory China Price Hose Clamp - German Type Hose Clamp With Handle - TheOne https://www.theonehoseclamp.com/18-years-factory-china-price-hose-clamp-german-type-hose-clamp-with-handle-theone-product/

, 2022/08/12 17:35

Night Time Use Maternity Pad https://www.hiya-care.com/night-time-use-maternity-pad.html Connector Coupling For Construction https://www.hebeiyida.com/tag/connector-coupling-for-construction/

, 2022/08/13 01:32

1“ Two Piece Stainless Steel Rigid Strut Clamp With Hardware https://www.theonehoseclamp.com/1-two-piece-stainless-steel-rigid-strut-clamp-with-hardware-product/ Breathable Unisex Adult Diaper https://www.hiya-care.com/breathable-unisex-adult-diaper.html

, 2022/08/13 21:04

Best Solar Power Bank For Camping https://www.universalthrough.com/best-solar-power-bank-for-camping/ Extra Care Maternity Pad https://www.hiya-care.com/extra-care-maternity-pad.html

, 2022/08/14 05:57

Daily Use 245mm Sanitary Napkins https://www.hiya-care.com/daily-use-245mm-sanitary-napkins.html Bubble Tent Purchase https://www.luci-domes.com/bubble-tent-purchase/

, 2022/08/14 13:46

STM32F301C8T6TR STMicroelectronics https://www.shenzhen-ic.com/stm32f301c8t6tr-stmicroelectronics.html Bouquet Of Barbed Wire https://www.htmeshmachines.com/bouquet-of-barbed-wire/

Enter your comment. Wiki syntax is allowed:

analysis/course-w16/week3long.txt · Last modified: 2018/07/07 10:19 (external edit)