accounts added address america armada build candidate career champions clerkcommunity connect crete crysis descriptions district during entrance explore facebook friendly girls gotta highlights homework hotline hours illinoisinformation junior leave lislelisle202 mcunningham@lisle202 minutes monday monster nanosuit nearby notebook office originally outpost packet parent payable pilot place positionposted program project public qualifications rains registration reminder right salaries sandy school sharks soccer special staff state states steel summer superintendent technical technology thursday today united updating vendor welcome
Lisle School District IL, Lisle School District 200, Lisle Public School District, Lisle District, Lisle Community, Lisle Sd 202, Lisle202,Web Traffic Web Results
POSITION: SCHOOL DISTRICT: QUALIFICATIONS: HIGHLIGHTS
LISLE COMMUNITY UNIT SCHOOL DISTRICT 202 POSITION: Superintendent SCHOOL DISTRICT: Lisle Community Unit School District 202 QUALIFICATIONS:
Lisle Community School District 202 - Junior High School Homework.
HOMEWORK HOTLINE. Did you leave your notebook at school? Were you absent today? Do you need a reminder about a special project? The homework hotline is here to help!
Sharks - Crysis Wiki
by Lisle202 5 minutes ago Posted in Outpost; by Lisle202 10 minutes ago Posted in Armada; by Lisle202 17 minutes ago Posted in Steel Mill; by Lisle202 17 hours ago Posted in.
Lisle Community Unit School District 202 - Public School - Lisle.
To connect with Lisle Community Unit School District 202, sign up for Facebook. http://www.lisle202.org
Welcome to the Lisle High School Soccer Site Home of the 2010 Boys State Champions And the 2010 Girls 4th Place State Team Boys Team Girls Team
When you find a vendor with a staff that is community, parent, technical AND user friendly--you gotta love it! -- Sandy Rains, Technology, Crete School District, NE
Find Illinois Accounts Payable Clerk Jobs | Monster.com
Explore +1,000 Accounts Payable Clerk jobs in Illinois and nearby. See job descriptions and salaries. Find the right position for you and build your career.
Welcome to St. Joan of Arc School
St. Joan of Arc School, Lisle IL. School Office Summer Hours. The office will be open from 7:00-12:00 Monday thru Thursday during June & July.
United States of America - Crysis Wiki
Added by Lisle202. O'Neil was a USAF pilot that was originally a candidate for the Nanosuit program.
Lisle Community School District 202 - E-mail
Updating data information in registration packet. 2. Call information to 630-493-8304 or. 3. Send information to E-mail address email@example.com
All trademarks are the property of their respective owners. The facts, figures, reviews, records, stats, and other data presented on this page is for suggestion and information purposes only. PageGlance.com is not responsible for any incorrect or incomplete information. PageGlance.com does not take responsibility for any user-reviews of websites inside its resource and reserves the right to keep or remove those. It is highly recommended that you review all the data for accuracy.
Copyright © 2009 - 2016 PageGlance.com. All Rights Reserved.
Set of six tools which disconnect the spring lock couplings on Ford and Chrysler air conditioning line. Also works on fuel line quick connect couplings found on GM, Ford, and Chrysler. The 5/16" size fits on push lock connectors found on Ford radiators and transmission lines. Easy to use in confined spaces. Set includes six sizes: 5/16", 3/8", 1/2", 5/8", 3/4" and 7/8".
The INNOVATOR in Specialty Tools Since 1903. Lisle specialty tools, mechanic's creepers, and lubrication & tire products are the preferred line among automotive warehouse distributors and jobbers because Lisle manufactures quality products that are priced right.
Detailed Warranty Information
OReilly Auto Parts
Limited Lifetime Warranty
What Does This Warranty Cover?
Customer satisfaction is our top priority. This warranty covers any product that is purchased from us (Product) which fails due to a defect in materials or workmanship as long as the product is used normally and serviced and installed properly on your vehicle. This warranty is subject to the terms, conditions and exclusions provided below. This warranty is valid only if you are the original purchaser of the Product and may not be transferred.
How Long Does The Coverage Last?
This warranty begins when you purchase a Product and provides a Limited Lifetime Warranty for a product, the warranty period will be as long as you, the original purchaser of the product, own the vehicle for which the product was originally purchased and installed. To determine how long your warranty lasts and because warranty periods may vary from Product to Product, please refer to your sales receipt or the Product on our website at www.oreillyauto.com. Coverage terminates, including any and all implied warranties such as the implied warranty of merchantability or fitness for a particular purpose, at the end of the applicable warranty period or earlier if you sell or otherwise transfer ownership of your vehicle using the Product. Some states do not allow limitations on how long an implied warranty lasts, so the above limitation may not apply to you. If a Product is replaced under this warranty (Defective Product), a replacement Product will be covered until you sell or otherwise transfer ownership of your vehicle that had the Defective Product, if you install or use the replacement Product on another vehicle, or if you use the part in a manner other than in the way the manufacturer had intended.
Commercial Vehicles - Any Product which is used or installed on a commercial vehicle shall have a warranty period of ninety (90) days after the date of its purchase only.
What Will OReilly Auto Parts Do?
At our option, we will either replace any defective or malfunctioning Product at no charge or provide a refund instead of replacing such Product. If Product is replaced under this warranty, we will warranty the replacement product as well, subject to the terms, conditions and exclusions contained in this warranty.
What Does This Warranty Not Cover?
THIS WARRANTY DOES NOT EXTEND TO PRODUCT THAT FAILS DUE TO (i) ACCIDENT OR COLLISION; (ii) IMPROPER USE, INSTALLATION, MAINTENANCE OR SERVICE; (iii) COMBINATION OF THE PRODUCT WITH OTHER THIRD-PARTY PRODUCT(S) WHICH FAIL; (iv) ABUSE, MISUSE, MODIFICATION, OR NEGLECT; (v) FAILURE TO FOLLOW DIRECTIONS; (vi) AN ACT OF GOD (SUCH AS A FLOOD, CHEMICAL FALLOUT, SALT, HAIL OR OTHER ENVIRONMENTAL CONDITIONS INCLUDING NATURAL DISASTERS(vii) INSTALLATION OR USE ON VEHICLES USED FOR POWERSPORTS, OFF-ROAD, OR RACING PURPOSES WHERE SUCH PRODUCT IS NOT INTENDED FOR POWERSPORTS, OFF-ROAD, OR RACING PURPOSES; OR (viii) INSTALLATION OR USE ON VEHICLES USED FOR MARINE PURPOSES WHERE SUCH PRODUCT IS NOT INTENDED FOR MARINE USE.
THIS WARRANTY DOES NOT COVER LABOR, TOWING, OR RENTAL CAR CHARGES, WHICH ARE YOUR SOLE RESPONSIBILITY.
THIS WARRANTY DOES NOT COVER INCIDENTAL, CONSEQUENTIAL, INDIRECT, OR SPECIAL DAMAGES. THIS LIMITED WARRANTY REPRESENTS THE TOTAL LIABILITY OF OREILLY FOR ANY PRODUCT. OREILLY MAKES NO OTHER WARRANTIES OR REPRESENTATIONS OF ANY KIND WHATSOEVER, EXPRESS OR IMPLIED, AND ALL IMPLIED WARRANTIES INCLUDING ANY WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE HEREBY DISCLAIMED. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES OR THE DISCLAIMER OF IMPLIED WARRANTIES, SO THE ABOVE LIMITATIONS MAY NOT APPLY TO YOU.
How Do You Get Service?
In order to be eligible for service under this warranty you MUST return the Product along with the original sales receipt to any OReilly Auto Parts store, and at our option, we will either replace the Product or provide a refund. If purchased on-line you may go to www.oreillyauto.com ; click the My Account link, and follow the on-line instructions for warranty returns.
How Does State Law Apply?
This warranty gives you specific legal rights, and you may also have other rights which vary from state to state.Availability nearby
Jonathan has been collecting house music since 1989 when as a 15yr old he was blown away by A Guy Called Gerald's 'Voodoo Ray'. Having collected hip hop since 1986, this record opened Jonathan to a sound that would become his lifetime�s passion. This devotion to vinyl continued and finally after 6 years of going to clubs like Hacienda, Soak, Havana, Renaissance and mixing tapes and phasing records on 2 hi fis, he was at last able to afford his own decks.
One of the few to make the Transition from bedroom to main room, Jonathan now plays regularly for Bedrock and has played all over the world for clubs such as Spundae and Liqufied. Furthering his passion he now also works for Bedrock Breaks in an A&R capacity.
'Discovered' by John Digweed in 2001, who was so impressed with his unique sound and his live sets, he invited him to do a guest mix on his Kiss FM show in May and play at Bedrock. The mix was so good it gained Jonathan instant recognition throughout the industry, prompting unheard of comparisons with what many regard as the greatest dance mix of all time, John and Sasha's Northern Exposure 2 cd.
Jonathan followed that by playing, in the opinion of many of those who were there, the set of the night at Bedrock's 3rd Birthday. After the crowds reaction to Jonathan�s set, John was so impressed, he asked him to warm-up for him and DJ Three at the Bedrock Xmas party in Brighton, a different set but, again, the same result.
Word of his unique style soon spread globally. He was voted Worlds Best Breaks DJ in the 2002 Breakspoll, #81 in the 2003 DJ Mag Top 100 poll. Playing for Bedrock, Jonathan has warmed up for Sasha & Digweed, played at festivals from Dance Valley to Global Gathering. Internationally Jonathan has been headlining in Mexico, LA, New Orleans, Argentina, New York, Holland, Moscow, Tokyo and Ireland as well as playing with some of the very best Dj�s in the world; Hernan Cattaneo, Three, Steve Lawler in Atlanta, Cass in New York, Hyper and Danny Howells at the legendary Gemini party at Simons in Gainesville, Florida.
At the end of 2002, Jonathan finished his 3rd US tour at Spundae, Chicago, having been asked back after his stunning headline set at Spundae, LA (nominated for Worlds Best Club Dancestar Awards 2002) blew up the main room at Circus. Justifying the recommendation made to Spundae by Adam Freeland.
Thanks to Jonathan�s rapidly rising reputation, built on the dual foundations of inspired live sets and highly innovative 3 and 4 deck mix cd�s he has also had guest radio mixes on Annie Nightingale�s Radio 1 show, on Phil K's award winning Kiss FM (Australia) radio show, John Digweed�s Kiss 100 UK show and across the US (including a live radio mix in New York). Culminating in broadcasting his own one off special show for Protonradio.com of his all time top 20 records.
2004 saw more international gigs for Jonathan in over 17 countries. Now sponsored by Denon. Shure and Allen & Heath (on OS2) Jonathan will be pushing the technical boundaries of mixing using 3 Denon DNS 5000�s, efx and keyboards in 2005. Currently finishing his first commercial mix CD for Bedrock�s new Original Series, [O:S_2 Jonathan Lisle], set for release in Feb 2005 with a 35 date world tour to accompany it next year looks even better.
Popularity Score: 971 (#946)
Average Popularity: 7 (#1080)
⇒ #-s are among other djs ⇒ 300+ Popularity Score needed for Average
Please, rate this DJ
⇒ You have Never rated this DJ before! Please, rate!!no comments yet, be the first to comment!!
New Easy Way to add/edit DJs: STEP 1 Select Type, Enter Name/Title, Select Country (if any), Add info/bio, Add Links (new box), SUBMIT.
STEP 2 (on the next page) Now Drag & Drop TWO Pics - Small & Large - into the Special Box on the New DJ List Page! So easy. =) You can drag & drop 2 pics at once. Or 1. And then another 1. In last case, the First pic you drag & drop will be set as Small Pic, and second - as Large.
list of our latest awesome discussions:
Dirk, Following Light, Booya - Time Differences 213 on TM Radio - 05-Jun-2016
Saeed Younan, Roger Sanchez - live at The BPM Presents, Martina Beach (The BPM 2016, Mexico) - 10-Jan-2016
Dirk, Dimuth K, Christian Monique - Time Differences 217 on TM Radio - 03-Jul-2016
This tutorial shows how to process EEG that was recorded together with transcranial magnetic stimulation (TMS) that was applied to the primary motor cortex (M1), while subjects either contracted, or relaxed their contra-lateral hand. The application of TMS pulses during the EEG acquisition poses some specific challenges that will be addressed.
Dealing with the TMS-artifacts is best done as a preprocessing step prior to starting the scientifically interesting parts of the analysis. Once the TMS artifacts have been removed, you can proceed with the EEG analysis pipeline as usual. This tutorial shows some analysis results, but does not elaborate on the EEG analysis methods in general.
The research question that we will address in this tutorial is whether pre-contraction of the hand affects the TMS-evoked potential (TEP) in the EEG. To answer this question we will look at:
Frequency content of spontaneous oscillations
global mean field power
A successful analysis of EEG signals requires clean data. That is non-trivial for EEG in general, but the TMS induced artifacts make it a bigger challenge. As with all other artifacts, prevention is better than cure. In combined TMS-EEG experiments it is however unavoidable that some TMS artifacts appear in your data. The use of proper equipment (amplifiers, electrodes, etc) and fine-tuning of acquisition settings can help reduce the artifacts and facilitate the analysis. However, optimizing the acquisition is not the topic of this tutorial; please see the 'suggested reading' section at the end for more information on this.
Measurement: The data were recorded using two 32-channel TMS-compatible BrainAmp DC Amplifiers (BrainProducts) connected to a 61 channel TMS-compatible EEG cap (EasyCap). Sampling was done at 5kHz with a 1kHz cut-off frequency and with 0.1 microvolt/bit resolution. Please click on the image below for an enlarged image of the equidistant 61-channel arrangement.
TMS: Single pulses were applied at 60% maximum stimulator output using a C-B60 butterfly coil connected to a MagPro X100 (Magventure) stimulator. In total 300 pulses were applied with an inter-pulse-interval of 3 seconds (20% jitter).
The coil position was determined by finding the motor hotspot. The stimulation location was kept constant using MRI-guided neuronavigation (Localite). For the purpose of this tutorial the orientation and tilt of the coil were adjusted to induce strong artifacts.
Event markers: An event was placed at the onset of each TMS-pulse indicating the condition. 'S 1' represents the 'Relax' condition and 'S 3' represents the 'Contract' condition.
In TMS-EEG research we are often dealing with large datasets due to high sampling rates and lengthy recording sessions. It is therefore quite common that data structures loaded into MATLAB's memory are multiple gigabytes in size.
The maximum size a MATLAB array can be depends on the operating system, the MATLAB version and the amount of RAM. If you are running a 32-bit version of Windows, your arrays cannot be larger than 2 gigabytes. If you are running a 32-bit version of MATLAB on a 64-bit version of Windows your arrays cannot be larger than 4 gigabytes. Only when you are running both a 64-bit version of MATLAB and of Windows can you use the full extent of your RAM and are theoretically able to store arrays as large as 8 terabytes.
We therefore advise you to run this tutorial on a 64-bit (Windows) operating system, running a 64-bit version of MATLAB and with at least 8GB RAM.
Before starting your analysis, it helps to consider your experiment relative to two dimensions: 1) the TMS protocol and 2) the experimental manipulation of the brain state (i.e. the task for the subject, or the absence thereof).
In many cases you will want to analyze your data with respect to some interesting event, e.g. a visual stimulus onset, the subjects response to a stimulus, or in this case the onset of a TMS pulse. It is, however, also possible to analyze your data in a continuous way. For example, you might be interested in resting-state EEG changes over time after participants have received theta-burst stimulation. In those cases you are not going to divide your data into experimentally defined trials but rather analyze the data in a continuous fashion.
This tutorial is written with a trial-based analysis in mind and as such may not be directly applicable to continuous data.
It is also important to realize that between datasets the amount and spacing of the pulses will vary. In principle we can distinguish between one pulse per trial, two-pulses per trial, or repetitive stimulation. Although this tutorial was written for single-pulse studies, most of it also applies to multiple-pulse data.
The figure below shows the EEG on channel 17 (see the layout of electrodes above) during the application of the TMS.
We will now shortly describe and display the TMS-related artifacts you can come across in your data. It is important is to understand that there is not just a single type of artifact, different artifacts may occur simultaneously. Depending on the characteristics of EEG and TMS equipment and experimental design, not all types of artifacts may be observed in your data.
The data during the pulse can be considered to be lost.
Depending on the range of your amplifier the signal may initially go out of range causing a clipping of the signal as can be seen by a flat line in your signal. Once the potential falls within range of the amplifier a prominent filter 'ringing' can be observed lasting up to around 7ms depending on your setup caused by a step-response due to the high gradient of the TMS-pulse. Many consider this period lost. In the figure below the signal in red reflects a combination of the pulse and the ringing/step response.
The TMS pulse may cause cranial (scalp) muscle twitches. These twitches are not to be confused with responses due to stimulation of the motor cortex but are purely twitches due to stimulation of scalp muscles. Usually they last around 10ms and are orders of magnitude larger than brain signals. Using close visual inspection of the EEG electrodes underneath the TMS coil during the actual experiment, you may observe these twitches as small movements of the electrodes.
Depending on your TMS machine you may observe a spike in your data reflecting the recharging of your machine's capacitors. Some stimulators allow you to specify the exact time the machine recharges its capacitors. In the case of this dataset we used a MagPro X100 (Magventure) stimulator with the recharge delay set to 500ms after stimulation onset.
It is likely that you will encounter an artifact that resembles an exponential decay in some channels. The nature of this artifact is not well understood and its presence is rather unpredictable. We believe that it arises due to an interaction between magneto-electric induction of TMS-induced currents in the electrode leads, electrode-electrolyte-skin interface polarization, movement of the electrodes and head/neck/face muscle twitches. In worst cases, this artifact can last up to 1 second, but more commonly it lasts between 50-150 ms.
It is important that you clean your data from TMS artifacts prior to any other preprocessing steps (e.g. filtering, detrending, downsampling) other than reading the data into memory. Especially filtering can produce long-lasting additional artifacts far outlasting the duration of the artifacts in the raw data, making subsequent analysis of the data troublesome.
The procedures explained in this tutorial have been applied and described in the following paper:
Herring, J. D. Thut, G. Jensen, O. & Bergmann, T. O. (2015). Attention Modulates TMS-Locked Alpha Oscillations in the Visual Cortex. The Journal of Neuroscience, 35(43), 14435-14447.
We will use the following procedure to deal with TMS-EEG data:
Exclude ringing/step response and recharge artifacts from the trial-structure using ft_rejectartifact and ft_artifact_tms
Read-in segments excluding previously rejected artifacts using ft_preprocessing .
Perform Independent Component Analysis to attempt to remove exponential decay and cranial muscle artifacts using ft_componentanalysis and ft_rejectcomponent . At this stage independent components related to other artifacts (e.g. line noise, eye blinks/saccades) can be removed as well.
Recreate the intended trial structure using ft_redefinetrial
Interpolate gaps previously occupied by ringing/step response and recharge artifacts using ft_interpolatenan
Apply further processing such as baseline correction, detrending, and filtering using ft_preprocessing .
After having cleaned the data, we will perform the following analyses:
Calculate the global mean field power
We start with the original dataset which is available from ftp://ftp.fieldtriptoolbox.org/pub/fieldtrip/tutorial/tms/sp/sp_motor.zip. Please be aware that the file is rather large (472 MB ) due to the EEG being sampled at 5kHz.
We are interested in what happens in response to the TMS pulse. The TMS pulses are therefore our events of interest and our trials are defined by the pulses. As stated in the background information, event markers are present at the onset of each pulse. We will first have a look at our trials using ft_databrowser . a convenient tool to browse data directly from disk or in memory (also see this frequently asked question ).
The complete dataset is rather memory demanding, hence we will only read the segments of interest (i.e. the trials) from disk using ft_preprocessing . For this purpose we first need to create a trial matrix, which specifies which parts of the data on disk are to be represented as trials. This matrix has three (or more) columns and as many rows as there are trials. The first two columns indicate the sample number in the data file on disk corresponding to the first and last sample of each trial. The third column reflects the so-called offset, i.e. which sample corresponds to time point zero in each trial. The matrix can have additional columns containing information, such as the experimental condition for each trial, the reaction time, etc. The trial matrix is created using ft_definetrial (also see Trigger-based trial selection ).
The output cfg variable contains the trial structure in cfg.trl. As we will also need this trial structure later in this tutorial, we will copy it into another MATLAB variable.
The cfg structure we obtained from ft_definetrial contains enough information for ft_preprocessing to read our data from disk into trials. We will, however, also specify that the data should be re-referenced. As it can take quite a while (5-10 minutes) to read-in the data, the processed data can be found here. If you have downloaded this file, you can load the data with:
Here you have to make sure that the *.mat file is located in the present working directory of MATLAB. You can skip the following block of code if you have downloaded data_tms_raw in the previous step.
To read the trials from the original data file on disk, use the following:
The reference electrode used during the acquisition is not present in the data file, however, we know that the potential (per definition) at that electrode is zero Volt. We add this “implicit” reference channel (implicit, as it is not specified in the data file) to the analysis by specifying its name.
If you have decided to read the trials from the data file on disk, use the following code to save the processed data structure for future use.
We will now visually inspect the data using ft_databrowser . For plotting purposes we will apply a baseline correction using the pre-stimulation period.
It is important to get a feeling for the quality of your recording prior to your analysis. You will have to adjust the scaling, as the amplitude of the TMS pulse is enormous compared to the actual EEG signal. Using the + and - next to the 'vertical' and 'horizontal' button (marked in blue) you can adjust the scaling on both axes. Take a moment to browse through the trials with the arrow buttons next to the trial button.
Note that if you adjust the horizontal scaling, the trial button changes to a segment button, indicating that you are browsing segments within one trial. If you want, you can make a selection of the channels you wish to plot by clicking on the 'channel' button (marked in red). If you want to know which channel represents which line in the plot, click on the 'identify' button and click on a line in the plot. The corresponding channel will be displayed above the line. Browsing through the trials you will notice a lot of noise. Furthermore, it appears that around 500 ms into the trial saccade signals appear. We can also see eye-blinks throughout the trials. At this point it is possible to mark data segments for rejection by clicking and dragging any area within the trial and clicking on the selection. You can later reject the specific segment, remove the entire trial, or replace it with nans. For now this step will be skipped as we will try to remove the physiological artifacts with Independent Component Analysis (ICA).
To inspect the TMS-related artifacts we will create a time-locked average of our data. When TMS-EEG artifacts occur, they will occur in every trial at the same time, which makes it easier to spot them in the time-locked averages.
To save system memory we will clear the data_tms_raw structure.
Although we do not have any trials anymore, we can still use ft_databrowser in the same way as before to browse through all the channels. As we are interested in the occurrence, onset, and offset of TMS artifacts it as convenient to use MATLAB's built-in plotting functions.
The averaged data we want to plot is represented in the data_tms_avg structure. Lets have a look at this structure:
Time is represented in the .time field, the amplitudes are stored in .avg. When inspecting this .avg field we can see that it has a dimension of 61×10000. In this case you may have guessed that the rows represent the channels and the columns the time-points within each channel. If you are uncertain about the order of the dimensions you can always look at the .dimord field. The .dimord field tells you what the dimensions in the data field represent. Here we see that the dimord is chan_time. Therefore, our data field (.avg) is represented by channels X time. Channel labels can be found as strings located in the .label field.
In our case the electrode labels are equal to the channel numbers. Please be aware that this does not necessarily correspond to the row-numbers in the data matrices. For example, our reference electrode used in the recording is number 5 on the cap. This channel, however, is now represented in the last row (61) of the data matrix. Always check the .label field of your data structure which row of the data corresponds to which channel and electrode.
We will now plot the data for all channels in separate windows. You can use the following code to close all previous figure windows:
Take a moment to have a look at all channels. See if you can determine the artifacts that are present.
We will have a closer look at channel nr. 17, which is close to the site of stimulation.
If we adjust the plotting limits a bit, we can easily distinguish the ringing/step response (
0-0.0045) from the cranial muscle (
0.0045 - 0.015). You can also do this manually using the zoom button or with
In this channel we can find ringing/step response, cranial muscle, exponential decay, and recharging artifacts. The following code highlights these artifacts in this channel.
In this part of the tutorial we are going to exclude artifactual data segments that cannot be attenuated by other methods. We will exclude the segments that contain the ringing/step response artifact and the recharging artifact. We will adjust the trial structure of our data, containing the information which samples correspond to which trials, so that it does not include these artifacts and we will then read-in the data without these artifactual parts. Later on we will interpolate gaps which are produced by excluding these segments. The interpolation of the missing data segments is postponed until after applying independent component analysis in the next part of the tutorial.
The function ft_rejectartifact can adjust the trial structure to exclude segments containing artifacts. We first have to tell it which segments to exclude. For this purpose we will use ft_artifact_tms . This function can be used to either detect TMS pulses in your data or to to specify the onset of TMS pulses by use of marker information.
In ft_artifact_tms we use cfg.prestim and cfg.poststim to indicate the time range around the TMS pulse that should be removed. There is no restriction, however, that prevents both time points from being located after the pulse (in case of a recharging artefact, for example). It is therefore also possible to mark artifacts that have on- and offsets both after onset of the TMS pulse.
In case you wish to specify an artifact onset that occurs after the TMS pulse (e.g. in case of a recharging artifact), cfg.prestim must be negative (e.g. -0.500 for 500 ms after pulse onset) as cfg.prestim refers to time before stimulus onset.
We now have a configuration structure for both the ringing/step response artifact as well as the recharging artifact. The ft_artifact_tms function creates an Nx2 matrix (representing N artifacts) in cfg_ringing.artfctdef.tms.artifact or cfg_recharge.artfctdef.tms.artifact that contains the on- and offset of each marked/detected segment. Since we created two structures, we will combine both artifacts into one structure to do the rejection in one step. To achieve this we will create a new structure, cfg_artifact, that will contain artifact definitions for both the ringing/step response and the ringing artifact, each in separate subfields.
The function ft_rejectartifact allows us to manipulate trials containing artifacts in several ways: First we can choose to reject the whole trial, but that is not appropriate here, since every trial contains TMS artifacts. Second, we can choose to replace the artifactual data with nans, something that may lead to problems using other functions that expect real numbers. Third - the approach we will take in this tutorial -, we can remove the artifacts by segmenting the trials into smaller pieces. We will exclude the parts of the data that contain the artifact and keep the other parts. We can later reconstruct the trial using the trial matrix (trl) we defined and saved earlier.
We have already read-in the data segments without the artifacts for you. You can download the data here. If you have downloaded the dataset, you can load it with:
You can skip the following block of code if you have downloaded data_tms_segmented in the previous step. Else, you can read the artifact-free segments using:
We've now split-up our trials into segments free of ringing/step response, and recharging artifacts. You can see that this has increased the number of trials.
Using ft_databrowser we can browse through both the segmented as well as the raw data. If we use the artifact definition we previously created we can easily browse to the segments we've marked as artifacts.
Using the arrow-buttons beneath the 'ringing' and 'recharge' buttons we can browse to the marked artifacts.
We now have our data segmented, removed ringing/step response and recharge artifacts. Our data still contains the exponential decay and the cranial muscle artifacts. We will attempt to attenuate these artifacts following an approach based on work by Korhonen et al. Removal of large muscle artifacts from transcranial magnetic stimulation-evoked EEG by independent component analysis. We will use a slightly adapted version of their manual artifact rejection approach. To this end we will decompose our data into independent components and reject components that capture artifacts we wish to attenuate, while taking care we do not remove non-artifactual data.
Running an ICA can take quite some time depending on the size of the data. Depending on your system processing this dataset will take about 15-30 minutes. Furthermore, running an ICA requires quite a lot of memory. In this case it requires an estimated 4GB of additional system memory. We therefore advise you to download the output here: comp_tms.mat. You can then skip the following segment of code.
As ICA is in fact a spatial filter, it relies on the artifacts having a stable topography in the data. If the topography changes during the experiment, your artifact may be captured in more than one, or two components and potentially cannot be captured in sufficient components at all. If you therefore know beforehand that the topography of your artifacts are different for parts of your data, you may have to apply the ICA separately for these parts. For example, if you are running an experiment where different locations are stimulated in different conditions, you could run the ICA separately for each location.
A stable TMS coil position increases the spatial stability of the artifacts, which is beneficial for estimating the artifact as independent component.
If you have downloaded comp_tms.mat, you can load the data with the following code:
You can skip the following block of code if you have loaded comp_tms in the previous step.
If you are having memory issues running the ICA you can downsample your data beforehand. Please be aware that prior to down sampling your data is filtered using a low pass FIR filter at roughly half the target sampling frequency (for example, if you downsample to 1000Hz, your data will be lowpass filtered at 500Hz). Use the following code to downsample your data:
Now you can run the ICA. After you have run the ICA on the downsampled data, reload the original data and apply the spatial unmixing matrix on the original data. The reason for this is that the data is demeaned prior to resampling to avoid artifacts at the edge of the trials. Since our trials are divided into segments, your trials may end up with strange baseline shifts because each segment is demeaned separately.
After having run the ICA we are left with a structure similar to our data_tms_segmented structure with a few fields added and some changed.
Instead of channels by time matrices, our data is now represented in component by time matrices, one for each trial (or segment in our case). The added fields .topo. unmixing, and .topolabel contain the information necessary to back-project the components to the channel level.
We are now going to have a look at the timecourse of the components to identify the ones to be rejected. We will also look at a topographical representation of the components to see if they reflect spatial distributions indicating them to be an artifact (dipole, close to the site of stimulation). As we know that all our TMS-EEG artifacts are time-locked to the onset of the TMS-pulse, we can simplify the visual inspection by looking at the time-locked average representation of the components.
We can now browse the averaged data in the same way we browsed our channel data. The segments that we have excluded will be plotted as gaps. As with our channel data, you can either browse through the channels with ft_databrowser but also with MATLAB's built-in plotting functions. Please be aware that if we are using ft_databrowser do browse averaged data (i.e. output from ft_timelockanalysis ) we can only browse through channels as there are no trials.
Try to plot the components using MATLAB's built-in plot function. Which do you prefer to browse the components?
As ICA is in principle a spatial filter, we can inspect how each component loads spatially onto our original channel data. For this purpose we will use ft_topoplotIC .
Using ft_databrowser . or MATLAB's plotting function, together with the output from ft_topoplotic should be able to find one or two components that capture the decay artifact and/or the cranial muscle if the ICA was successful.
Try to find components reflecting the decay and/or muscle artifact. Which ones would you remove?
Due to various factors it is likely that you will not be able to fully capture both artifacts into one or two components. In this case, the decay artifact is captured pretty well by component numbers 41 and 56. The topographies of these components overlaps with the location of stimulation. These components also capture a large part of the cranial muscle artifact, but you can also see that almost every other component contains parts of cranial muscle artifacts. We can therefore conclude that the cranial muscle artifact cannot be fully removed by ICA in this dataset.
At this stage you can also use your ICA data to remove other types of artifacts/noise. ICA is particularly well-suited to deal with eye-blinks and saccades, and can potentially remove other types of noise as well (also see the examples on EOG artifacts and ECG artifacts ).
As these types of noise are not time-locked to onset of the TMS-pulse you can use ft_databrowser to browse through the trials in a component view. Be aware that in this case you are browsing the segments of the original trials.
Which components would you further suggest to remove?
We now have a list of component we would wish to remove:
Decay & Muscle. 41, 56
Maintenance recharging/Muscle. 1, 25, 52, 37, 49, 50
We can now remove these components from the data. Using ft_rejectcomponent you can remove components and transform the data back to a channel representation. First, however, we will need to revert a step we took before performing the ICA.
Keep in mind that our data is divided into segments of our original trials. Before performing ICA, the mean of each trial is subtracted from our data. This so-called demeaning is done to simplify the ICA algorithm. If we were to immediately back-transform our component data to a channel-representation and then restructure the segments into our original trials, we may have offsets in our trials because a different mean was subtracted for each segment. Especially the segment containing the decay artifact may be shifted a lot due to the large values in the period containing the decay.
Running an ICA results in a matrix that can be used to transform our original data into component data. We can now use this 'unmixing matrix' on our data without removing the mean as this was only necessary to produce the unmixing matrix. We will therefore apply this on our data without demeaning.
Now we can remove the components.
The components have now been removed and the data is back into its original channel representation
We can now have a look at the current status of our data.
At the beginning we determined we had to deal with ringing/step response, cranial muscle, recharging and exponential decay artifacts. Have a look at the data, how successful were we in removing all of them? What is left and how could we deal with this?
At this point we've removed the ringing/step response and discharge artifact by excluding it from our data. We've attenuated the exponential decay artifact using ICA. We've attenuated the muscle artifact a bit but have not succeeded as can be seen on the above plot of channel 17. Be aware that the ringing/step response artifact has been completely removed. The spiky part of the signal around 10ms, right after the gap, is purely a cranial muscle artifact. To prevent this artifact from interfering with our further processing steps we will also cut and interpolate the remainder of the muscle artifact.
Remember that our data is divided into segments of trials excluding the ringing/step response artifact and the recharging artifact. We are first going to recreate the original trial structure by combining the trial segments. The gaps that we've created by excluding certain segments will first be filled with nans. Afterwards all the segments containing nans will be interpolated. The period containing the muscle artifact will also be replaced by nans so that it can be interpolated as well.
We will first recreate our original trial structure. For this purpose we require the original trl matrix created at the beginning of the tutorial here.
We've now recreated the original trial structure and put all pieces of data back into their original position. The gaps in the data due to the ringing and recharge artefacts have been willed with NaN, i.e. not-a-number values.
As you can see from the .trial field from both data structures we again have 300 trials. The cleaned dataset still contains the muscle artifact, we will therefore fill that segments with nans. The data (channel x time) for each trial is located in cells within the trial field in our data structure. We are now going to loop through each trial and replace the segment that contain the muscle artifact with nans. Browsing through the data it seems sufficient to replace up to 15ms after stimulation onset with nans.
When we want to know which data point corresponds to any given time point we often use the function nearest . This function finds the index number of a data point in a range of values that is closest to the point you request. For example, consider the vector [0 0.3 0.6 0.9 1.2]. If you would want to know the value closest to 0.5 the output nearest gives is 3, which stands for the third value in the vector: 0.6. This has advantages over MATLAB's standard way of finding values within vectors (e.g. a==0.5) because we often do not exactly know the exact value we are interested in.
Now that everything we would like to interpolate has been replaced by nans we can start the interpolation. The function ft_interpolatenan loops through trials and channels and interpolates segments containing nans using MATLAB's built-in interp1 function. You can therefore use all the methods supported by this function in your interpolation. We will use cubic interpolation as it avoids sharp transitions from your data to the edges of the interpolated segments you might create by using linear interpolation but does not appear to introduce strong artificial sinusoids as spline interpolation sometimes does. Feel free to try-out the different types of interpolation.
We can now compare the raw data with the cleaned data. If you do not have the time-locked average of the raw data anymore, you can download it here and load it with:
Using the following code we will compare the average TEP of the original data with the averaged TEP of the cleaned data:
After artifact removal, make sure to browse through your channels comparing the data prior and post correction to check if there are any residual artifacts left. It could be that you will have to interpolate a bit more or try to remove additional independent components.
At this point we've sufficiently cleaned our data of TMS artifacts so we can continue with the rest of our analysis. Only after this artifact removal is it safe to perform (post-)processing steps such as filtering, demeaning, detrending, and downsampling.
Now that we have cleaned the data we could apply some (post-)processing steps such as filtering, detrending, demeaning, and downsampling. At this point we are only going to downsample our data. Depending on your further analysis you may wish to apply other processing steps as well. It might be worth to note that some analysis steps may require different processing. For example, when looking at TMS evoked potentials (TEPs), you may want to filter your data to remove high-frequency noise. For performing time-frequency analysis this is not necessary but you would perhaps want to detrend your data, which is again not advised for analyzing TEPs. In short, different analysis methods may require different processing steps. Luckily the functions used to produce these analysis (e.g. ft_timelockanalysis and ft_freqanalysis ) allow you to apply the same preprocessing steps to your input data as you can apply with ft_preprocessing . This allows you to apply separate processing steps suited for each analysis without having to create additional data structures.
For this reason we are only going to downsample our data and apply slightly different (post-) processing steps later on. Coincidentally, downsampling cannot be done with ft_preprocessing but with ft_resampledata .
Now that we have cleaned our data and applied our (post-)processing steps we continue on with our analysis, but first we will save our data.
When saving data we always use the switch '-v7.3' as this allows datafiles to be larger than 4GB, which is often the case in TMS-EEG data.
Now that we have cleaned our data we can continue with our analyses. Initially we started out with the question whether pre-contraction affects the TMS-evoked potential. To address this question we are going to compare the amplitudes of the TEPs, inspect the frequency content of the response to TMS, and look at Global Mean Field Power.
If you do not have the output from the previous cleaning steps you can download the cleaned dataset here.
Remember that we have two conditions to compare in the current dataset: 'relax' & 'contract'. The condition was indicated in the dataset by markers placed in the EEG. When we read-in our data we based the trials on these markers, the information to which condition each trial belongs can therefore be found in the .trialinfo field of our data structure. In this field the 'relax' condition is indicated by the number 1 and the 'contract' condition by the number 3.
We can use the information in this field to perform timelock analysis on both conditions separately. Each row in the .trialinfo field corresponds to a trial in our dataset. If we therefore find all the rows corresponding to one number representing a condition, we know which trials belong to that condition.
In calculating the timelocked averages we will also apply a baseline correction (50ms to 1ms prior to TMS onset) and we will apply a lowpass filter of 35Hz.
We are also going to calculate the difference between the two averages. To this end we will use the function ft_math . which allows you to perform a certain number of mathematical operations on one or multiple data structures.
We will now plot both conditions and their difference using ft_singleplotER . a function ideally suited for plotting and comparing conditions.
A nice feature of ft_singleplotER is that you can select a time range in your plotting window and click on it to produce a topographical representation of your amplitudes at that time point if you've specified a layout. You can also use the function ft_topoplotER for this.
Where can you find the largest differences? How does the topography of these differences look like? Does it make sense given that we know we stimulated left-M1?
FieldTrip supports numerous ways of plotting your data. Each suited for a particular purpose. Most plotting functions can be subdivided into three categories, each category has a plotting function for a specific datatype. For us the following are the most usefull:
ft_singleplotXXX for single channel data.
ft_multiplotXXX plots data of all channels following the specified layout
ft_topoplotXXX plots topographical distribution of a specified time-range over a 2D representation of the head
XXX can be ER, for event-related data or TFR for time-frequency data.
Please also have a look at Plotting data at the channel and source level for a tutorial on plotting data
Global Mean Field Power (GMFP) is a measure first introduced by Lehmann and Skandries (1979). used by, for example, Esser et al. (2006) as a measure to characterize global EEG activity.
where t is time, V is the voltage at channel i and K is the number of channels. In Esser et al. (2006) the GMFP is calculated on the average over all subjects. As we only have one subject, we will only calculate the GMFP within this subject. If you, however, have multiple subjects you can apply the same method but on the grand average (see for examples on handling multiple subjects: Parametric and non-parametric statistics on event-related fields ). Basically, the GMFP is the standard deviation over channels.
FieldTrip has a built-in function to calculate the GMFP; ft_globalmeanfield. This function requires timelocked data as input. We will use similar preprocessing as applied in Esser et al. (2006).
Now we can plot the GMFP of both conditions.
Are there differences between the outcome of this analysis and the comparison between time-locked averages in the previous section? Can you see an advantage of using GMFP to compare conditions?
We have so far analyzed responses to the TMS pulse which always occur at the same time. Anything that is not phase-locked to the onset of the TMS pulse is cancelled out due to averaging. It is, however, possible that the TMS pulse induces responses that are not necessarily phase-locked to the onset of the pulse, for example changes in spontaneous oscillatory activity. To look at these induced responses we are going to look at time-frequency representations of our data. We will decompose our signals into frequencies and look at the averages of the power of these frequencies. Contrasting to time-lock analyses we are then sensitive to oscillatory activity not phase-locked to onset of the pulse (also see: Time-frequency analysis using Hanning window, multitapers and wavelets ).
We will first decompose our signal into different frequencies using ft_freqanalysis . When doing spectral analyses it is important to detrend and demean your data prior to decomposing into frequencies to avoid strange looking powerspectra (see: Why does my TFR look strange (part I, demeaning)? and Why does my TFR look strange (part II, detrending)? ). We will therefore detrend and demean our data using the .preproc option.
We will also calculate the difference between conditions. Usually when plotting TFRs you can specify a baseline window. Since we are also calculating the difference between conditions and we are interested in the difference between both conditions AFTER baseline correction, we will first have to remove the baseline from our conditions.
Now that we've calculated the TFRs for both conditions and their differences we can plot the results in various ways. We can start with plotting all TFRs on a 2D representation of the head using ft_multiplotTFR .
This plot is fully interactive, click and drag to select one or more channels, click on them to view an averaged representation of the selected channels. You can also plot single (or multiple) channels in a single view using ft_singleplotTFR .
What additional information can be gained by analyzing time-frequency data?
Now that we have described three ways of looking at our data, can we conclude the conditions differ? If so, how do they differ specifically?
This tutorial covered how to deal with TMS artifacts in EEG in a single-pulse study. Furthermore, the tutorial showed three examples of how to further analyze this data with a certain research question in mind. In all examples two conditions were compared with each other. A next step would be to test whether differences between these conditions are statistically significant. To see how you can do this please have a look at the following tutorials:
tutorial/tms-eeg.txt · Last modified: 2016/05/22 16:48 by 188.8.131.52
This DokuWiki features an Anymorphic Webdesign theme, customised by Eelke Spaak and Stephen Whitmarsh.