initial commit
This commit is contained in:
7
mne/io/artemis123/__init__.py
Normal file
7
mne/io/artemis123/__init__.py
Normal file
@@ -0,0 +1,7 @@
|
||||
"""artemis123 module for conversion to FIF."""
|
||||
|
||||
# Authors: The MNE-Python contributors.
|
||||
# License: BSD-3-Clause
|
||||
# Copyright the MNE-Python contributors.
|
||||
|
||||
from .artemis123 import read_raw_artemis123
|
||||
530
mne/io/artemis123/artemis123.py
Normal file
530
mne/io/artemis123/artemis123.py
Normal file
@@ -0,0 +1,530 @@
|
||||
# Authors: The MNE-Python contributors.
|
||||
# License: BSD-3-Clause
|
||||
# Copyright the MNE-Python contributors.
|
||||
|
||||
import calendar
|
||||
import datetime
|
||||
import os.path as op
|
||||
|
||||
import numpy as np
|
||||
from scipy.spatial.distance import cdist
|
||||
|
||||
from ..._fiff._digitization import DigPoint, _make_dig_points
|
||||
from ..._fiff.constants import FIFF
|
||||
from ..._fiff.meas_info import _empty_info
|
||||
from ..._fiff.utils import _read_segments_file
|
||||
from ...transforms import Transform, apply_trans, get_ras_to_neuromag_trans
|
||||
from ...utils import _check_fname, logger, verbose, warn
|
||||
from ..base import BaseRaw
|
||||
from .utils import _load_mne_locs, _read_pos
|
||||
|
||||
|
||||
@verbose
|
||||
def read_raw_artemis123(
|
||||
input_fname, preload=False, verbose=None, pos_fname=None, add_head_trans=True
|
||||
) -> "RawArtemis123":
|
||||
"""Read Artemis123 data as raw object.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
input_fname : path-like
|
||||
Path to the data file (extension ``.bin``). The header file with the
|
||||
same file name stem and an extension ``.txt`` is expected to be found
|
||||
in the same directory.
|
||||
%(preload)s
|
||||
%(verbose)s
|
||||
pos_fname : path-like | None
|
||||
If not None, load digitized head points from this file.
|
||||
add_head_trans : bool (default True)
|
||||
If True attempt to perform initial head localization. Compute initial
|
||||
device to head coordinate transform using HPI coils. If no
|
||||
HPI coils are in info['dig'] hpi coils are assumed to be in canonical
|
||||
order of fiducial points (nas, rpa, lpa).
|
||||
|
||||
Returns
|
||||
-------
|
||||
raw : instance of Raw
|
||||
A Raw object containing the data.
|
||||
|
||||
See Also
|
||||
--------
|
||||
mne.io.Raw : Documentation of attributes and methods.
|
||||
"""
|
||||
return RawArtemis123(
|
||||
input_fname,
|
||||
preload=preload,
|
||||
verbose=verbose,
|
||||
pos_fname=pos_fname,
|
||||
add_head_trans=add_head_trans,
|
||||
)
|
||||
|
||||
|
||||
def _get_artemis123_info(fname, pos_fname=None):
|
||||
"""Generate info struct from artemis123 header file."""
|
||||
fname = op.splitext(fname)[0]
|
||||
header = fname + ".txt"
|
||||
|
||||
logger.info("Reading header...")
|
||||
|
||||
# key names for artemis channel info...
|
||||
chan_keys = [
|
||||
"name",
|
||||
"scaling",
|
||||
"FLL_Gain",
|
||||
"FLL_Mode",
|
||||
"FLL_HighPass",
|
||||
"FLL_AutoReset",
|
||||
"FLL_ResetLock",
|
||||
]
|
||||
|
||||
header_info = dict()
|
||||
header_info["filter_hist"] = []
|
||||
header_info["comments"] = ""
|
||||
header_info["channels"] = []
|
||||
|
||||
with open(header) as fid:
|
||||
# section flag
|
||||
# 0 - None
|
||||
# 1 - main header
|
||||
# 2 - channel header
|
||||
# 3 - comments
|
||||
# 4 - length
|
||||
# 5 - filtering History
|
||||
sectionFlag = 0
|
||||
for line in fid:
|
||||
# skip emptylines or header line for channel info
|
||||
if (not line.strip()) or (sectionFlag == 2 and line.startswith("DAQ Map")):
|
||||
continue
|
||||
|
||||
# set sectionFlag
|
||||
if line.startswith("<end"):
|
||||
sectionFlag = 0
|
||||
elif line.startswith("<start main header>"):
|
||||
sectionFlag = 1
|
||||
elif line.startswith("<start per channel header>"):
|
||||
sectionFlag = 2
|
||||
elif line.startswith("<start comments>"):
|
||||
sectionFlag = 3
|
||||
elif line.startswith("<start length>"):
|
||||
sectionFlag = 4
|
||||
elif line.startswith("<start filtering history>"):
|
||||
sectionFlag = 5
|
||||
else:
|
||||
# parse header info lines
|
||||
# part of main header - lines are name value pairs
|
||||
if sectionFlag == 1:
|
||||
values = line.strip().split("\t")
|
||||
if len(values) == 1:
|
||||
values.append("")
|
||||
header_info[values[0]] = values[1]
|
||||
# part of channel header - lines are Channel Info
|
||||
elif sectionFlag == 2:
|
||||
values = line.strip().split("\t")
|
||||
if len(values) != 7:
|
||||
raise OSError(
|
||||
f"Error parsing line \n\t:{line}\nfrom file {header}"
|
||||
)
|
||||
tmp = dict()
|
||||
for k, v in zip(chan_keys, values):
|
||||
tmp[k] = v
|
||||
header_info["channels"].append(tmp)
|
||||
elif sectionFlag == 3:
|
||||
header_info["comments"] = f"{header_info['comments']}{line.strip()}"
|
||||
elif sectionFlag == 4:
|
||||
header_info["num_samples"] = int(line.strip())
|
||||
elif sectionFlag == 5:
|
||||
header_info["filter_hist"].append(line.strip())
|
||||
|
||||
for k in [
|
||||
"Temporal Filter Active?",
|
||||
"Decimation Active?",
|
||||
"Spatial Filter Active?",
|
||||
]:
|
||||
if header_info[k] != "FALSE":
|
||||
warn(f"{k} - set to but is not supported")
|
||||
if header_info["filter_hist"]:
|
||||
warn("Non-Empty Filter history found, BUT is not supported")
|
||||
|
||||
# build mne info struct
|
||||
info = _empty_info(float(header_info["DAQ Sample Rate"]))
|
||||
|
||||
# Attempt to get time/date from fname
|
||||
# Artemis123 files saved from the scanner observe the following
|
||||
# naming convention 'Artemis_Data_YYYY-MM-DD-HHh-MMm_[chosen by user].bin'
|
||||
try:
|
||||
date = datetime.datetime.strptime(
|
||||
op.basename(fname).split("_")[2], "%Y-%m-%d-%Hh-%Mm"
|
||||
)
|
||||
meas_date = (calendar.timegm(date.utctimetuple()), 0)
|
||||
except Exception:
|
||||
meas_date = None
|
||||
|
||||
# build subject info must be an integer (as per FIFF)
|
||||
try:
|
||||
subject_info = {"id": int(header_info["Subject ID"])}
|
||||
except ValueError:
|
||||
subject_info = {"id": 0}
|
||||
|
||||
# build description
|
||||
desc = ""
|
||||
for k in ["Purpose", "Notes"]:
|
||||
desc += f"{k} : {header_info[k]}\n"
|
||||
desc += f"Comments : {header_info['comments']}"
|
||||
|
||||
info.update(
|
||||
{
|
||||
"meas_date": meas_date,
|
||||
"description": desc,
|
||||
"subject_info": subject_info,
|
||||
"proj_name": header_info["Project Name"],
|
||||
}
|
||||
)
|
||||
|
||||
# Channel Names by type
|
||||
ref_mag_names = ["REF_001", "REF_002", "REF_003", "REF_004", "REF_005", "REF_006"]
|
||||
|
||||
ref_grad_names = ["REF_007", "REF_008", "REF_009", "REF_010", "REF_011", "REF_012"]
|
||||
|
||||
# load mne loc dictionary
|
||||
loc_dict = _load_mne_locs()
|
||||
info["chs"] = []
|
||||
bads = []
|
||||
|
||||
for i, chan in enumerate(header_info["channels"]):
|
||||
# build chs struct
|
||||
t = {
|
||||
"cal": float(chan["scaling"]),
|
||||
"ch_name": chan["name"],
|
||||
"logno": i + 1,
|
||||
"scanno": i + 1,
|
||||
"range": 1.0,
|
||||
"unit_mul": FIFF.FIFF_UNITM_NONE,
|
||||
"coord_frame": FIFF.FIFFV_COORD_DEVICE,
|
||||
}
|
||||
# REF_018 has a zero cal which can cause problems. Let's set it to
|
||||
# a value of another ref channel to make writers/readers happy.
|
||||
if t["cal"] == 0:
|
||||
t["cal"] = 4.716e-10
|
||||
bads.append(t["ch_name"])
|
||||
t["loc"] = loc_dict.get(chan["name"], np.zeros(12))
|
||||
|
||||
if chan["name"].startswith("MEG"):
|
||||
t["coil_type"] = FIFF.FIFFV_COIL_ARTEMIS123_GRAD
|
||||
t["kind"] = FIFF.FIFFV_MEG_CH
|
||||
# While gradiometer units are T/m, the meg sensors referred to as
|
||||
# gradiometers report the field difference between 2 pick-up coils.
|
||||
# Therefore the units of the measurements should be T
|
||||
# *AND* the baseline (difference between pickup coils)
|
||||
# should not be used in leadfield / forwardfield computations.
|
||||
t["unit"] = FIFF.FIFF_UNIT_T
|
||||
t["unit_mul"] = FIFF.FIFF_UNITM_F
|
||||
|
||||
# 3 axis reference magnetometers
|
||||
elif chan["name"] in ref_mag_names:
|
||||
t["coil_type"] = FIFF.FIFFV_COIL_ARTEMIS123_REF_MAG
|
||||
t["kind"] = FIFF.FIFFV_REF_MEG_CH
|
||||
t["unit"] = FIFF.FIFF_UNIT_T
|
||||
t["unit_mul"] = FIFF.FIFF_UNITM_F
|
||||
|
||||
# reference gradiometers
|
||||
elif chan["name"] in ref_grad_names:
|
||||
t["coil_type"] = FIFF.FIFFV_COIL_ARTEMIS123_REF_GRAD
|
||||
t["kind"] = FIFF.FIFFV_REF_MEG_CH
|
||||
# While gradiometer units are T/m, the meg sensors referred to as
|
||||
# gradiometers report the field difference between 2 pick-up coils.
|
||||
# Therefore the units of the measurements should be T
|
||||
# *AND* the baseline (difference between pickup coils)
|
||||
# should not be used in leadfield / forwardfield computations.
|
||||
t["unit"] = FIFF.FIFF_UNIT_T
|
||||
t["unit_mul"] = FIFF.FIFF_UNITM_F
|
||||
|
||||
# other reference channels are unplugged and should be ignored.
|
||||
elif chan["name"].startswith("REF"):
|
||||
t["coil_type"] = FIFF.FIFFV_COIL_NONE
|
||||
t["kind"] = FIFF.FIFFV_MISC_CH
|
||||
t["unit"] = FIFF.FIFF_UNIT_V
|
||||
bads.append(t["ch_name"])
|
||||
|
||||
elif chan["name"].startswith(("AUX", "TRG", "MIO")):
|
||||
t["coil_type"] = FIFF.FIFFV_COIL_NONE
|
||||
t["unit"] = FIFF.FIFF_UNIT_V
|
||||
if chan["name"].startswith("TRG"):
|
||||
t["kind"] = FIFF.FIFFV_STIM_CH
|
||||
else:
|
||||
t["kind"] = FIFF.FIFFV_MISC_CH
|
||||
else:
|
||||
raise ValueError(
|
||||
f'Channel does not match expected channel Types:"{chan["name"]}"'
|
||||
)
|
||||
|
||||
# incorporate multiplier (unit_mul) into calibration
|
||||
t["cal"] *= 10 ** t["unit_mul"]
|
||||
t["unit_mul"] = FIFF.FIFF_UNITM_NONE
|
||||
|
||||
# append this channel to the info
|
||||
info["chs"].append(t)
|
||||
if chan["FLL_ResetLock"] == "TRUE":
|
||||
bads.append(t["ch_name"])
|
||||
|
||||
# HPI information
|
||||
# print header_info.keys()
|
||||
hpi_sub = dict()
|
||||
# Don't know what event_channel is don't think we have it HPIs are either
|
||||
# always on or always off.
|
||||
# hpi_sub['event_channel'] = ???
|
||||
hpi_sub["hpi_coils"] = [dict(), dict(), dict(), dict()]
|
||||
hpi_coils = [dict(), dict(), dict(), dict()]
|
||||
drive_channels = ["MIO_001", "MIO_003", "MIO_009", "MIO_011"]
|
||||
key_base = "Head Tracking %s %d"
|
||||
|
||||
# set default HPI frequencies
|
||||
if info["sfreq"] == 1000:
|
||||
default_freqs = [140, 150, 160, 40]
|
||||
else:
|
||||
default_freqs = [700, 750, 800, 40]
|
||||
|
||||
for i in range(4):
|
||||
# build coil structure
|
||||
hpi_coils[i]["number"] = i + 1
|
||||
hpi_coils[i]["drive_chan"] = drive_channels[i]
|
||||
this_freq = header_info.pop(key_base % ("Frequency", i + 1), default_freqs[i])
|
||||
hpi_coils[i]["coil_freq"] = this_freq
|
||||
|
||||
# check if coil is on
|
||||
if header_info[key_base % ("Channel", i + 1)] == "OFF":
|
||||
hpi_sub["hpi_coils"][i]["event_bits"] = [0]
|
||||
else:
|
||||
hpi_sub["hpi_coils"][i]["event_bits"] = [256]
|
||||
|
||||
info["hpi_subsystem"] = hpi_sub
|
||||
info["hpi_meas"] = [{"hpi_coils": hpi_coils}]
|
||||
# read in digitized points if supplied
|
||||
if pos_fname is not None:
|
||||
info["dig"] = _read_pos(pos_fname)
|
||||
else:
|
||||
info["dig"] = []
|
||||
|
||||
info._unlocked = False
|
||||
info._update_redundant()
|
||||
# reduce info['bads'] to unique set
|
||||
info["bads"] = list(set(bads))
|
||||
del bads
|
||||
return info, header_info
|
||||
|
||||
|
||||
class RawArtemis123(BaseRaw):
|
||||
"""Raw object from Artemis123 file.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
input_fname : path-like
|
||||
Path to the Artemis123 data file (ending in ``'.bin'``).
|
||||
%(preload)s
|
||||
%(verbose)s
|
||||
|
||||
See Also
|
||||
--------
|
||||
mne.io.Raw : Documentation of attributes and methods.
|
||||
"""
|
||||
|
||||
@verbose
|
||||
def __init__(
|
||||
self,
|
||||
input_fname,
|
||||
preload=False,
|
||||
verbose=None,
|
||||
pos_fname=None,
|
||||
add_head_trans=True,
|
||||
):
|
||||
from ...chpi import (
|
||||
_fit_coil_order_dev_head_trans,
|
||||
compute_chpi_amplitudes,
|
||||
compute_chpi_locs,
|
||||
)
|
||||
|
||||
input_fname = str(_check_fname(input_fname, "read", True, "input_fname"))
|
||||
fname, ext = op.splitext(input_fname)
|
||||
if ext == ".txt":
|
||||
input_fname = fname + ".bin"
|
||||
elif ext != ".bin":
|
||||
raise RuntimeError(
|
||||
'Valid artemis123 files must end in "txt"' + ' or ".bin".'
|
||||
)
|
||||
|
||||
if not op.exists(input_fname):
|
||||
raise RuntimeError(f"{input_fname} - Not Found")
|
||||
|
||||
info, header_info = _get_artemis123_info(input_fname, pos_fname=pos_fname)
|
||||
|
||||
last_samps = [header_info.get("num_samples", 1) - 1]
|
||||
|
||||
super().__init__(
|
||||
info,
|
||||
preload,
|
||||
filenames=[input_fname],
|
||||
raw_extras=[header_info],
|
||||
last_samps=last_samps,
|
||||
orig_format="single",
|
||||
verbose=verbose,
|
||||
)
|
||||
|
||||
if add_head_trans:
|
||||
n_hpis = 0
|
||||
for d in info["hpi_subsystem"]["hpi_coils"]:
|
||||
if d["event_bits"] == [256]:
|
||||
n_hpis += 1
|
||||
if n_hpis < 3:
|
||||
warn(
|
||||
f"{n_hpis:d} HPIs active. At least 3 needed to perform"
|
||||
"head localization\n *NO* head localization performed"
|
||||
)
|
||||
else:
|
||||
# Localized HPIs using the 1st 250 milliseconds of data.
|
||||
with info._unlock():
|
||||
info["hpi_results"] = [
|
||||
dict(
|
||||
dig_points=[
|
||||
dict(
|
||||
r=np.zeros(3),
|
||||
coord_frame=FIFF.FIFFV_COORD_DEVICE,
|
||||
ident=ii + 1,
|
||||
)
|
||||
for ii in range(n_hpis)
|
||||
],
|
||||
coord_trans=Transform("meg", "head"),
|
||||
)
|
||||
]
|
||||
coil_amplitudes = compute_chpi_amplitudes(
|
||||
self, tmin=0, tmax=0.25, t_window=0.25, t_step_min=0.25
|
||||
)
|
||||
assert len(coil_amplitudes["times"]) == 1
|
||||
coil_locs = compute_chpi_locs(self.info, coil_amplitudes)
|
||||
with info._unlock():
|
||||
info["hpi_results"] = None
|
||||
hpi_g = coil_locs["gofs"][0]
|
||||
hpi_dev = coil_locs["rrs"][0]
|
||||
|
||||
# only use HPI coils with localizaton goodness_of_fit > 0.98
|
||||
bad_idx = []
|
||||
for i, g in enumerate(hpi_g):
|
||||
msg = f"HPI coil {i + 1} - location goodness of fit ({g:0.3f})"
|
||||
if g < 0.98:
|
||||
bad_idx.append(i)
|
||||
msg += " *Removed from coregistration*"
|
||||
logger.info(msg)
|
||||
hpi_dev = np.delete(hpi_dev, bad_idx, axis=0)
|
||||
hpi_g = np.delete(hpi_g, bad_idx, axis=0)
|
||||
|
||||
if pos_fname is not None:
|
||||
# Digitized HPI points are needed.
|
||||
hpi_head = np.array(
|
||||
[
|
||||
d["r"]
|
||||
for d in self.info.get("dig", [])
|
||||
if d["kind"] == FIFF.FIFFV_POINT_HPI
|
||||
]
|
||||
)
|
||||
|
||||
if len(hpi_head) != len(hpi_dev):
|
||||
raise RuntimeError(
|
||||
f"number of digitized ({len(hpi_head)}) and active "
|
||||
f"({len(hpi_dev)}) HPI coils are not the same."
|
||||
)
|
||||
|
||||
# compute initial head to dev transform and hpi ordering
|
||||
head_to_dev_t, order, trans_g = _fit_coil_order_dev_head_trans(
|
||||
hpi_dev, hpi_head
|
||||
)
|
||||
|
||||
# set the device to head transform
|
||||
self.info["dev_head_t"] = Transform(
|
||||
FIFF.FIFFV_COORD_DEVICE, FIFF.FIFFV_COORD_HEAD, head_to_dev_t
|
||||
)
|
||||
|
||||
# add hpi_meg_dev to dig...
|
||||
for idx, point in enumerate(hpi_dev):
|
||||
d = {
|
||||
"r": point,
|
||||
"ident": idx + 1,
|
||||
"kind": FIFF.FIFFV_POINT_HPI,
|
||||
"coord_frame": FIFF.FIFFV_COORD_DEVICE,
|
||||
}
|
||||
self.info["dig"].append(DigPoint(d))
|
||||
|
||||
dig_dists = cdist(hpi_head[order], hpi_head[order])
|
||||
dev_dists = cdist(hpi_dev, hpi_dev)
|
||||
tmp_dists = np.abs(dig_dists - dev_dists)
|
||||
dist_limit = tmp_dists.max() * 1.1
|
||||
|
||||
logger.info(
|
||||
"HPI-Dig corrregsitration\n"
|
||||
f"\tGOF : {trans_g:0.3f}\n"
|
||||
f"\tMax Coil Error : {100 * tmp_dists.max():0.3f} cm\n"
|
||||
)
|
||||
|
||||
else:
|
||||
logger.info("Assuming Cardinal HPIs")
|
||||
nas = hpi_dev[0]
|
||||
lpa = hpi_dev[2]
|
||||
rpa = hpi_dev[1]
|
||||
t = get_ras_to_neuromag_trans(nas, lpa, rpa)
|
||||
with self.info._unlock():
|
||||
self.info["dev_head_t"] = Transform(
|
||||
FIFF.FIFFV_COORD_DEVICE, FIFF.FIFFV_COORD_HEAD, t
|
||||
)
|
||||
|
||||
# transform fiducial points
|
||||
nas = apply_trans(t, nas)
|
||||
lpa = apply_trans(t, lpa)
|
||||
rpa = apply_trans(t, rpa)
|
||||
|
||||
hpi = apply_trans(self.info["dev_head_t"], hpi_dev)
|
||||
with self.info._unlock():
|
||||
self.info["dig"] = _make_dig_points(
|
||||
nasion=nas, lpa=lpa, rpa=rpa, hpi=hpi
|
||||
)
|
||||
order = np.array([0, 1, 2])
|
||||
dist_limit = 0.005
|
||||
|
||||
# fill in hpi_results
|
||||
hpi_result = dict()
|
||||
|
||||
# add HPI points in device coords...
|
||||
dig = []
|
||||
for idx, point in enumerate(hpi_dev):
|
||||
dig.append(
|
||||
{
|
||||
"r": point,
|
||||
"ident": idx + 1,
|
||||
"kind": FIFF.FIFFV_POINT_HPI,
|
||||
"coord_frame": FIFF.FIFFV_COORD_DEVICE,
|
||||
}
|
||||
)
|
||||
hpi_result["dig_points"] = dig
|
||||
|
||||
# attach Transform
|
||||
hpi_result["coord_trans"] = self.info["dev_head_t"]
|
||||
|
||||
# 1 based indexing
|
||||
hpi_result["order"] = order + 1
|
||||
hpi_result["used"] = np.arange(3) + 1
|
||||
hpi_result["dist_limit"] = dist_limit
|
||||
hpi_result["good_limit"] = 0.98
|
||||
|
||||
# Warn for large discrepancies between digitized and fit
|
||||
# cHPI locations
|
||||
if hpi_result["dist_limit"] > 0.005:
|
||||
warn(
|
||||
"Large difference between digitized geometry"
|
||||
" and HPI geometry. Max coil to coil difference"
|
||||
f" is {100.0 * tmp_dists.max():0.2f} cm\n"
|
||||
"beware of *POOR* head localization"
|
||||
)
|
||||
|
||||
# store it
|
||||
with self.info._unlock():
|
||||
self.info["hpi_results"] = [hpi_result]
|
||||
|
||||
def _read_segment_file(self, data, idx, fi, start, stop, cals, mult):
|
||||
"""Read a chunk of raw data."""
|
||||
_read_segments_file(self, data, idx, fi, start, stop, cals, mult, dtype=">f4")
|
||||
146
mne/io/artemis123/resources/Artemis123_ChannelMap.csv
Normal file
146
mne/io/artemis123/resources/Artemis123_ChannelMap.csv
Normal file
@@ -0,0 +1,146 @@
|
||||
name,Channel Type,CAD X+ (INCH),CAD Y+ (INCH),CAD Z+ (INCH),CAD X- (INCH),CAD Y- (INCH),CAD Z- (INCH)
|
||||
Derived from '90-0395 Channel Map for 6th cooldown 2-01-13.xls',,,,,,,
|
||||
MEG_059,MEG_GRAD,-1.97677,1.56552,2.91489,-4.18768,2.50074,5.40664
|
||||
MEG_045,MEG_GRAD,-1.61144,0.93037,3.41137,-3.33479,1.92534,6.24186
|
||||
MEG_029,MEG_GRAD,-0.91075,1.72387,3.473,-1.93587,2.72988,6.62081
|
||||
MEG_073,MEG_GRAD,-2.38955,0.86972,2.76491,-4.94504,1.79985,4.90406
|
||||
MEG_043,MEG_GRAD,-1.59926,2.33243,2.93122,-3.46787,3.39595,5.64209
|
||||
MEG_085,MEG_GRAD,-2.78631,1.40783,1.84839,-5.89386,2.21359,3.13893
|
||||
REF_013,UNUSED,,,,,,
|
||||
MEG_071,MEG_GRAD,-2.43321,2.17533,2.12153,-5.27622,3.05529,3.88634
|
||||
MEG_032,MEG_GRAD,0.93037,-1.61144,3.41137,1.92534,-3.33479,6.24186
|
||||
MEG_048,MEG_GRAD,1.27145,-2.20222,2.76491,2.6312,-4.55737,4.90406
|
||||
MEG_018,MEG_GRAD,0.44157,-2.50427,2.76491,0.91381,-5.18245,4.90406
|
||||
MEG_006,MEG_GRAD,0,-3.0105,1.94967,0,-6.23006,3.21696
|
||||
MEG_005,MEG_GRAD,0,-1.86073,3.41137,0,-3.85068,6.24186
|
||||
MEG_049,MEG_GRAD,-1.27145,-2.20222,2.76491,-2.6312,-4.55737,4.90406
|
||||
MEG_019,MEG_GRAD,-0.44157,-2.50427,2.76491,-0.91381,-5.18245,4.90406
|
||||
MEG_033,MEG_GRAD,-0.93037,-1.61144,3.41137,-1.92534,-3.33479,6.24186
|
||||
MEG_021,MEG_GRAD,-0.56074,-3.168,1.10519,-1.13708,-6.39559,2.21066
|
||||
MEG_020,MEG_GRAD,0.56022,-3.16809,1.10519,1.13604,-6.39578,2.21066
|
||||
MEG_034,MEG_GRAD,1.02965,-2.82894,1.94967,2.13081,-5.85434,3.21696
|
||||
MEG_077,MEG_GRAD,-2.47272,-2.0647,1.06346,-5.01426,-4.15829,2.12604
|
||||
MEG_035,MEG_GRAD,-1.02965,-2.82894,1.94967,-2.13081,-5.85434,3.21696
|
||||
MEG_007,MEG_GRAD,0,-3.27147,0.25764,0,-6.63351,1.0751
|
||||
MEG_023,MEG_GRAD,-0.576,-3.27431,-0.5962,-1.16503,-6.58484,0.21931
|
||||
MEG_022,MEG_GRAD,0.56022,-3.27709,-0.59609,1.14872,-6.58771,0.21942
|
||||
MEG_047,MEG_GRAD,-1.61144,-0.93037,3.41137,-3.33479,-1.92534,6.24186
|
||||
MEG_061,MEG_GRAD,-1.86073,0,3.41137,-3.85068,0,6.24186
|
||||
MEG_087,MEG_GRAD,-2.5429,0,2.76491,-5.2624,0,4.90406
|
||||
MEG_113,MEG_GRAD,-3.22769,0.0086,0.98505,-6.5452,0.046,1.96703
|
||||
MEG_101,MEG_GRAD,-2.96476,-0.52277,1.94967,-6.13541,-1.08184,3.21696
|
||||
MEG_099,MEG_GRAD,-2.96476,0.52277,1.94967,-6.13541,1.08184,3.21696
|
||||
MEG_063,MEG_GRAD,-1.94798,-1.63455,2.76491,-4.03123,-3.38261,4.90406
|
||||
MEG_075,MEG_GRAD,-2.38955,-0.86972,2.76491,-4.94504,-1.79985,4.90406
|
||||
MEG_089,MEG_GRAD,-2.60717,-1.50525,1.94967,-5.39539,-3.11503,3.21696
|
||||
MEG_123,MEG_GRAD,-3.24454,-0.65992,-1.54654,-6.63007,-1.24165,-1.13258
|
||||
MEG_103,MEG_GRAD,-3.03312,-1.09456,1.02677,-6.15066,-2.19102,2.05164
|
||||
MEG_119,MEG_GRAD,-3.27163,-0.04807,-0.71822,-6.66217,-0.02172,-0.02891
|
||||
MEG_121,MEG_GRAD,-3.24454,0.48346,-1.58979,-6.63007,1.0948,-1.22095
|
||||
MEG_105,MEG_GRAD,-3.07707,-1.16672,-0.67591,-6.26323,-2.29919,0.05723
|
||||
MEG_091,MEG_GRAD,-2.81455,-1.64764,0.19622,-5.75085,-3.31563,0.94961
|
||||
MEG_115,MEG_GRAD,-3.20059,-0.58777,0.15614,-6.53962,-1.15004,0.86771
|
||||
MEG_037,MEG_GRAD,-1.11155,-3.07561,0.25023,-2.27119,-6.23333,1.05996
|
||||
MEG_067,MEG_GRAD,-2.08904,-2.51166,0.2289,-4.26844,-5.08104,1.01638
|
||||
MEG_079,MEG_GRAD,-2.51137,-2.1514,-0.63867,-5.10885,-4.30296,0.13301
|
||||
MEG_093,MEG_GRAD,-2.8532,-1.73435,-1.50591,-5.7542,-3.37531,-0.57691
|
||||
MEG_051,MEG_GRAD,-1.61407,-2.7848,1.0907,-3.27306,-5.61852,2.18127
|
||||
MEG_065,MEG_GRAD,-1.93511,-2.30617,1.94967,-4.00461,-4.7725,3.21696
|
||||
REF_014,UNUSED,,,,,,
|
||||
MEG_053,MEG_GRAD,-1.64275,-2.88336,-0.61098,-3.33826,-5.79135,0.1893
|
||||
MEG_039,MEG_GRAD,-1.37821,4.03301,0.38766,-2.98972,7.09471,0.3625
|
||||
MEG_041,MEG_GRAD,-1.59926,3.67934,1.66789,-3.46787,6.31662,2.90266
|
||||
MEG_055,MEG_GRAD,-2.06278,3.53364,0.8475,-4.47296,6.00069,1.12372
|
||||
MEG_069,MEG_GRAD,-2.43321,2.88136,1.45931,-5.27622,4.58626,2.45038
|
||||
MEG_027,MEG_GRAD,-1.02514,3.32279,2.63742,-2.22293,5.54346,5.00502
|
||||
MEG_025,MEG_GRAD,-0.92333,4.17235,1.20548,-2.00217,7.38566,1.89996
|
||||
MEG_057,MEG_GRAD,-1.84667,3.00588,2.29955,-4.00435,4.85628,4.27238
|
||||
REF_015,UNUSED,,,,,,
|
||||
MEG_083,MEG_GRAD,-2.81067,2.32514,1.52142,-6.13327,3.15736,2.01067
|
||||
MEG_095,MEG_GRAD,-2.85632,2.16654,0.82155,-6.24599,2.85761,0.88605
|
||||
MEG_117,MEG_GRAD,-3.14455,0.87829,-0.52294,-6.53422,1.56936,-0.45844
|
||||
MEG_109,MEG_GRAD,-3.0226,1.3925,0.37679,-6.41227,2.08357,0.44129
|
||||
MEG_107,MEG_GRAD,-2.7791,2.44789,0.19401,-6.01824,3.66345,0.23867
|
||||
MEG_111,MEG_GRAD,-3.20059,0.54013,0.11348,-6.53962,1.15454,0.78055
|
||||
MEG_097,MEG_GRAD,-3.04326,1.22292,1.10768,-6.3884,1.94226,1.62169
|
||||
MEG_081,MEG_GRAD,-2.54021,2.92425,0.68688,-5.5195,4.68347,0.71098
|
||||
REF_001,REF_MAG,-2.26079604,3.98626183,5.04439808,-2.20703425,3.92437924,4.93090704
|
||||
REF_002,REF_MAG,1.93013445,4.03046866,5.17689263,1.8763992,3.96852956,5.06341985
|
||||
REF_004,REF_MAG,1.70031266,4.21202221,5.57217923,1.57144014,4.22797498,5.62449924
|
||||
REF_012,REF_GRAD,4.64675,-0.89642,-0.43802,6.03162,-1.01804,-0.22614
|
||||
REF_006,REF_MAG,2.07781,3.83073028,5.60154279,2.08802749,3.70619491,5.66468189
|
||||
REF_008,REF_GRAD,4.50056,0.78066,1.76423,5.88573,0.92199,1.96135
|
||||
REF_010,REF_GRAD,4.31926,2.18698,-0.37055,5.69806,2.46181,-0.34022
|
||||
MEG_094,REF_GRAD,2.85632,2.16654,0.82155,6.24599,2.85761,0.88605
|
||||
REF_016,UNUSED,,,,,,
|
||||
REF_003,REF_MAG,-2.73073962,4.07852721,5.1569653,-2.8596759,4.06162797,5.1051015
|
||||
REF_017,UNUSED,,,,,,
|
||||
REF_011,REF_GRAD,-4.64675,-0.89642,-0.43802,-6.03162,-1.01804,-0.22614
|
||||
REF_009,REF_GRAD,-4.31926,2.18698,-0.37055,-5.69806,2.46181,-0.34022
|
||||
REF_007,REF_GRAD,-4.50056,0.78066,1.76423,-5.88573,0.92199,1.96135
|
||||
REF_018,UNUSED,,,,,,
|
||||
REF_005,REF_MAG,-2.4058382,3.78665997,5.47001894,-2.41506358,3.66222139,5.53350068
|
||||
MEG_090,MEG_GRAD,2.81455,-1.64764,0.19622,5.75085,-3.31563,0.94961
|
||||
MEG_088,MEG_GRAD,2.60717,-1.50525,1.94967,5.39539,-3.11503,3.21696
|
||||
MEG_102,MEG_GRAD,3.03294,-1.09506,1.02679,6.1503,-2.19202,2.05167
|
||||
MEG_122,MEG_GRAD,3.24454,-0.65992,-1.54654,6.63007,-1.24165,-1.13258
|
||||
MEG_114,MEG_GRAD,3.20059,-0.58777,0.15614,6.53962,-1.15004,0.86771
|
||||
MEG_104,MEG_GRAD,3.07159,-1.18176,-0.67534,6.25756,-2.31475,0.05782
|
||||
MEG_120,MEG_GRAD,3.24454,0.48346,-1.58979,6.63007,1.0948,-1.22094
|
||||
MEG_118,MEG_GRAD,3.27163,-0.06408,-0.71761,6.66217,-0.03828,-0.02828
|
||||
MEG_106,MEG_GRAD,2.7791,2.44789,0.19401,6.01824,3.66345,0.23867
|
||||
MEG_082,MEG_GRAD,2.81067,2.32514,1.52142,6.13327,3.15736,2.01067
|
||||
MEG_110,MEG_GRAD,3.20059,0.54013,0.11348,6.53962,1.15454,0.78055
|
||||
MEG_116,MEG_GRAD,3.14455,0.87829,-0.52294,6.53422,1.56936,-0.45844
|
||||
MEG_096,MEG_GRAD,3.04326,1.22292,1.10768,6.3884,1.94226,1.62169
|
||||
MEG_080,MEG_GRAD,2.54021,2.92425,0.68688,5.5195,4.68347,0.71098
|
||||
MEG_108,MEG_GRAD,3.0226,1.3925,0.37679,6.41227,2.08357,0.44129
|
||||
REF_019,UNUSED,,,,,,
|
||||
MEG_009,MEG_GRAD,-0.48824,4.32904,0.13976,-1.05817,7.74156,0.10133
|
||||
MEG_003,MEG_GRAD,0,3.44805,2.77097,0,5.81508,5.29461
|
||||
MEG_010,MEG_GRAD,0.51257,3.97032,2.03007,1.11147,6.94759,3.68802
|
||||
MEG_012,MEG_GRAD,0.51257,2.67525,3.24478,1.11147,4.13933,6.32201
|
||||
MEG_004,MEG_GRAD,0,4.3528,1.03622,0,7.77696,1.53295
|
||||
MEG_011,MEG_GRAD,-0.51257,3.97032,2.03007,-1.11147,6.94759,3.68802
|
||||
MEG_008,MEG_GRAD,0.48824,4.32904,0.13976,1.05817,7.74156,0.10133
|
||||
MEG_013,MEG_GRAD,-0.51257,2.67525,3.24478,-1.11147,4.13933,6.32201
|
||||
MEG_024,MEG_GRAD,0.92333,4.17235,1.20548,2.00217,7.38566,1.89996
|
||||
REF_020,UNUSED,,,,,,
|
||||
MEG_068,MEG_GRAD,2.43321,2.88136,1.45931,5.27622,4.58626,2.45038
|
||||
MEG_026,MEG_GRAD,1.02514,3.32279,2.63742,2.22293,5.54346,5.00502
|
||||
MEG_038,MEG_GRAD,1.37821,4.03301,0.38766,2.98972,7.09471,0.3625
|
||||
MEG_040,MEG_GRAD,1.59926,3.67934,1.66789,3.46787,6.31662,2.90266
|
||||
MEG_054,MEG_GRAD,2.06278,3.53364,0.8475,4.47296,6.00069,1.12372
|
||||
MEG_056,MEG_GRAD,1.84667,3.00588,2.29955,4.00435,4.85628,4.27238
|
||||
MEG_058,MEG_GRAD,2.00892,1.56358,2.88668,4.25593,2.49543,5.34722
|
||||
MEG_042,MEG_GRAD,1.59926,2.33243,2.93122,3.46787,3.39595,5.64209
|
||||
MEG_028,MEG_GRAD,0.90968,1.7238,3.47337,1.93358,2.72985,6.62156
|
||||
MEG_070,MEG_GRAD,2.43321,2.17533,2.12153,5.27622,3.05529,3.88634
|
||||
REF_021,UNUSED,,,,,,
|
||||
MEG_072,MEG_GRAD,2.38955,0.86972,2.76491,4.94504,1.79985,4.90406
|
||||
MEG_044,MEG_GRAD,1.61144,0.93037,3.41137,3.33479,1.92534,6.24186
|
||||
MEG_084,MEG_GRAD,2.78632,1.40783,1.84839,5.89386,2.21359,3.13893
|
||||
MEG_046,MEG_GRAD,1.61144,-0.93037,3.41137,3.33479,-1.92534,6.24186
|
||||
MEG_098,MEG_GRAD,2.96476,0.52277,1.94967,6.13541,1.08184,3.21696
|
||||
MEG_060,MEG_GRAD,1.8607,0,3.41137,3.85068,0,6.24186
|
||||
MEG_100,MEG_GRAD,2.96476,-0.52277,1.94967,6.13541,-1.08184,3.21696
|
||||
MEG_074,MEG_GRAD,2.38955,-0.86972,2.76491,4.94504,-1.79985,4.90406
|
||||
MEG_086,MEG_GRAD,2.5429,0,2.76491,5.2624,0,4.90406
|
||||
MEG_062,MEG_GRAD,1.94798,-1.63455,2.76491,4.03123,-3.38261,4.90406
|
||||
MEG_112,MEG_GRAD,3.22769,0.00807,0.98507,6.5452,0.04494,1.96707
|
||||
MEG_016,MEG_GRAD,0.50538,-0.87535,3.83752,0.89368,-1.5479,7.20924
|
||||
MEG_031,MEG_GRAD,-1.01076,0,3.83752,-1.78736,0,7.20924
|
||||
MEG_015,MEG_GRAD,-0.50538,0.87535,3.83752,-0.89368,1.5479,7.20924
|
||||
MEG_001,MEG_GRAD,0,0,4,0,0,7.46
|
||||
MEG_002,MEG_GRAD,0,1.80611,3.59215,0,2.82922,6.89743
|
||||
MEG_017,MEG_GRAD,-0.50538,-0.87535,3.83752,-0.89368,-1.5479,7.20924
|
||||
MEG_014,MEG_GRAD,0.50538,0.87535,3.83752,0.89368,1.5479,7.20924
|
||||
MEG_030,MEG_GRAD,1.01076,0,3.83752,1.78736,0,7.20924
|
||||
MEG_050,MEG_GRAD,1.61362,-2.78506,1.09071,3.27214,-5.61905,2.18129
|
||||
MEG_064,MEG_GRAD,1.93511,-2.30617,1.94967,4.00461,-4.7725,3.21696
|
||||
MEG_076,MEG_GRAD,2.47238,-2.0651,1.06348,5.01358,-4.1591,2.12607
|
||||
MEG_078,MEG_GRAD,2.50107,-2.16367,-0.6382,5.0982,-4.31565,0.13349
|
||||
MEG_066,MEG_GRAD,2.08904,-2.51166,0.2289,4.26844,-5.08104,1.01638
|
||||
MEG_036,MEG_GRAD,1.11155,-3.07561,0.25023,2.27119,-6.23333,1.05996
|
||||
MEG_052,MEG_GRAD,1.62888,-2.89137,-0.61068,3.32391,-5.79963,0.18962
|
||||
MEG_092,MEG_GRAD,2.8532,-1.73435,-1.50591,5.7542,-3.37531,-0.57691
|
||||
|
144
mne/io/artemis123/resources/Artemis123_mneLoc.csv
Normal file
144
mne/io/artemis123/resources/Artemis123_mneLoc.csv
Normal file
@@ -0,0 +1,144 @@
|
||||
MEG_001,0.0,0.0,0.10160000191,1.0,-0.0,-0.0,-0.0,1.0,-0.0,0.0,0.0,1.0
|
||||
MEG_002,0.0,0.0458751948625,0.0912406117153,1.0,-0.0,-0.0,-0.0,0.955282042035,-0.295696161906,0.0,0.295696161906,0.955282042035
|
||||
MEG_003,0.0,0.0875804716465,0.0703826393232,1.0,-0.0,-0.0,-0.0,0.729376031116,-0.684113006186,0.0,0.684113006186,0.729376031116
|
||||
MEG_004,0.0,0.110561122079,0.0263199884948,1.0,-0.0,-0.0,-0.0,0.143563509474,-0.989641106032,0.0,0.989641106032,0.143563509474
|
||||
MEG_005,0.0,-0.0472625428885,0.086648799629,1.0,0.0,-0.0,0.0,0.818061560022,0.575130666904,0.0,-0.575130666904,0.818061560022
|
||||
MEG_006,0.0,-0.0764667014376,0.049521618931,1.0,0.0,-0.0,0.0,0.366268930876,0.930509038255,0.0,-0.930509038255,0.366268930876
|
||||
MEG_007,0.0,-0.0830953395622,0.00654405612303,1.0,0.0,-0.0,0.0,0.236260571358,0.971689735678,0.0,-0.971689735678,0.236260571358
|
||||
MEG_008,0.0124012962331,0.109957618067,0.00354990406674,0.972562667953,-0.164284112711,-0.164719723212,-0.164284112711,0.0163303909087,-0.986277875978,0.164719723212,0.986277875978,-0.0111069411385
|
||||
MEG_009,-0.0124012962331,0.109957618067,0.00354990406674,0.972562667953,0.164284112711,0.164719723212,0.164284112711,0.0163303909087,-0.986277875978,-0.164719723212,0.986277875978,-0.0111069411385
|
||||
MEG_010,0.0130192782448,0.100846129896,0.0515637789694,0.979744824976,-0.100693145673,-0.173092369408,-0.100693145673,0.499431154085,-0.860482081594,0.173092369408,0.860482081594,0.479175979061
|
||||
MEG_011,-0.0130192782448,0.100846129896,0.0515637789694,0.979744824976,0.100693145673,0.173092369408,0.100693145673,0.499431154085,-0.860482081594,-0.173092369408,0.860482081594,0.479175979061
|
||||
MEG_012,0.0130192782448,0.0679513512775,0.0824174135494,0.984142307767,-0.038765954324,-0.17309280415,-0.038765954324,0.905232161619,-0.423145287527,0.17309280415,0.423145287527,0.889374469386
|
||||
MEG_013,-0.0130192782448,0.0679513512775,0.0824174135494,0.984142307767,0.038765954324,0.17309280415,0.038765954324,0.905232161619,-0.423145287527,-0.17309280415,0.423145287527,0.889374469386
|
||||
MEG_014,0.0128366522413,0.022233890418,0.0974730098325,0.993621350642,-0.0110480572384,-0.112225451567,-0.0110480572384,0.980864355149,-0.194378643965,0.112225451567,0.194378643965,0.974485705791
|
||||
MEG_015,-0.0128366522413,0.022233890418,0.0974730098325,0.993621350642,0.0110480572384,0.112225451567,0.0110480572384,0.980864355149,-0.194378643965,-0.112225451567,0.194378643965,0.974485705791
|
||||
MEG_016,0.0128366522413,-0.022233890418,0.0974730098325,0.993621350642,0.0110480572384,-0.112225451567,0.0110480572384,0.980864355149,0.194378643965,0.112225451567,-0.194378643965,0.974485705791
|
||||
MEG_017,-0.0128366522413,-0.022233890418,0.0974730098325,0.993621350642,-0.0110480572384,0.112225451567,-0.0110480572384,0.980864355149,0.194378643965,-0.112225451567,-0.194378643965,0.974485705791
|
||||
MEG_018,0.0112158782109,-0.0636084591958,0.0702287153203,0.988488638046,0.0652835409099,-0.136485426846,0.0652835409099,0.629762253104,0.774039768908,0.136485426846,-0.774039768908,0.61825089115
|
||||
MEG_019,-0.0112158782109,-0.0636084591958,0.0702287153203,0.988488638046,-0.0652835409099,0.136485426846,-0.0652835409099,0.629762253104,0.774039768908,-0.136485426846,-0.774039768908,0.61825089115
|
||||
MEG_020,0.0142295882675,-0.0804694875128,0.0280718265278,0.979010049739,0.117656650617,-0.166421858768,0.117656650617,0.340489745704,0.93285778425,0.166421858768,-0.93285778425,0.319499795443
|
||||
MEG_021,-0.0142427962678,-0.0804672015128,0.0280718265278,0.978972050612,-0.117759654311,0.166572470526,-0.117759654311,0.340528364062,0.932830690472,-0.166572470526,-0.932830690472,0.319500414673
|
||||
MEG_022,0.0142295882675,-0.0832380875649,-0.0151406862846,0.976588506526,0.131701883642,-0.170086750705,0.131701883642,0.259108088321,0.956826845574,0.170086750705,-0.956826845574,0.235696594848
|
||||
MEG_023,-0.0146304002751,-0.0831674755635,-0.0151434802847,0.976546368958,-0.131816629327,0.170239729521,-0.131816629327,0.259149948413,0.956799707604,-0.170239729521,-0.956799707604,0.235696317371
|
||||
MEG_024,0.0234525824409,0.105977691992,0.0306191925756,0.919030275794,-0.241167202261,-0.311803997292,-0.241167202261,0.281686827798,-0.928703888007,0.311803997292,0.928703888007,0.200717103592
|
||||
MEG_025,-0.0234525824409,0.105977691992,0.0306191925756,0.919030275794,0.241167202261,0.311803997292,0.241167202261,0.281686827798,-0.928703888007,-0.311803997292,0.928703888007,0.200717103592
|
||||
MEG_026,0.0260385564895,0.0843988675867,0.0669904692594,0.928846648352,-0.131916373824,-0.346181995721,-0.131916373824,0.755430639878,-0.641811980763,0.346181995721,0.641811980763,0.68427728823
|
||||
MEG_027,-0.0260385564895,0.0843988675867,0.0669904692594,0.928846648352,0.131916373824,0.346181995721,0.131916373824,0.755430639878,-0.641811980763,-0.346181995721,0.641811980763,0.68427728823
|
||||
MEG_028,0.0231058724344,0.0437845208231,0.0882235996586,0.954148215535,-0.0450524345745,-0.295924755521,-0.0450524345745,0.955732979975,-0.290765797726,0.295924755521,0.290765797726,0.90988119551
|
||||
MEG_029,-0.0231330504349,0.0437862988232,0.0882142016584,0.954036318954,0.0451068389737,0.296277024411,0.0451068389737,0.955734030088,-0.290753911081,-0.296277024411,0.290753911081,0.909770349043
|
||||
MEG_030,0.0256733044827,0.0,0.0974730098325,0.974485414074,-0.0,-0.224450835944,-0.0,1.0,-0.0,0.224450835944,0.0,0.974485414074
|
||||
MEG_031,-0.0256733044827,0.0,0.0974730098325,0.974485414074,0.0,0.224450835944,0.0,1.0,-0.0,-0.224450835944,0.0,0.974485414074
|
||||
MEG_032,0.0236313984443,-0.0409305767695,0.086648799629,0.954515845737,0.078781387629,-0.287563894118,0.078781387629,0.863545730655,0.498078572146,0.287563894118,-0.498078572146,0.818061576392
|
||||
MEG_033,-0.0236313984443,-0.0409305767695,0.086648799629,0.954515845737,-0.078781387629,0.287563894118,-0.078781387629,0.863545730655,0.498078572146,-0.287563894118,-0.498078572146,0.818061576392
|
||||
MEG_034,0.0261531104917,-0.0718550773509,0.049521618931,0.925866960833,0.203678027441,-0.318254036858,0.203678027441,0.440401481873,0.874392243734,0.318254036858,-0.874392243734,0.366268442706
|
||||
MEG_035,-0.0261531104917,-0.0718550773509,0.049521618931,0.925866960833,-0.203678027441,0.318254036858,-0.203678027441,0.440401481873,0.874392243734,-0.318254036858,-0.874392243734,0.366268442706
|
||||
MEG_036,0.0282333705308,-0.0781204954687,0.00635584211949,0.908973236603,0.247867468623,-0.335155744599,0.247867468623,0.325052548187,0.91263495381,0.335155744599,-0.91263495381,0.23402578479
|
||||
MEG_037,-0.0282333705308,-0.0781204954687,0.00635584211949,0.908973236603,-0.247867468623,0.335155744599,-0.247867468623,0.325052548187,0.91263495381,-0.335155744599,-0.91263495381,0.23402578479
|
||||
MEG_038,0.0350065346581,0.102438455926,0.00984656418512,0.781484001521,-0.415157481208,-0.465754249753,-0.415157481208,0.211244323513,-0.884884230609,0.465754249753,0.884884230609,-0.00727167496558
|
||||
MEG_039,-0.0350065346581,0.102438455926,0.00984656418512,0.781484001521,0.415157481208,0.465754249753,0.415157481208,0.211244323513,-0.884884230609,-0.465754249753,0.884884230609,-0.00727167496558
|
||||
MEG_040,0.0406212047637,0.093455237757,0.0423644067965,0.785045408535,-0.303378150058,-0.540060556425,-0.303378150058,0.57182444299,-0.762219459517,0.540060556425,0.762219459517,0.356869851524
|
||||
MEG_041,-0.0406212047637,0.093455237757,0.0423644067965,0.785045408535,0.303378150058,0.540060556425,0.303378150058,0.57182444299,-0.762219459517,-0.540060556425,0.762219459517,0.356869851524
|
||||
MEG_042,0.0406212047637,0.0592437231138,0.0744529893997,0.836463385382,-0.0930769183398,-0.540060822675,-0.0930769183398,0.947025241119,-0.307375795983,0.540060822675,0.307375795983,0.7834886265
|
||||
MEG_043,-0.0406212047637,0.0592437231138,0.0744529893997,0.836463385382,0.0930769183398,0.540060822675,0.0930769183398,0.947025241119,-0.307375795983,-0.540060822675,0.307375795983,0.7834886265
|
||||
MEG_044,0.0409305767695,0.0236313984443,0.086648799629,0.863545730655,-0.078781387629,-0.498078572146,-0.078781387629,0.954515845737,-0.287563894118,0.498078572146,0.287563894118,0.818061576392
|
||||
MEG_045,-0.0409305767695,0.0236313984443,0.086648799629,0.863545730655,0.078781387629,0.498078572146,0.078781387629,0.954515845737,-0.287563894118,-0.498078572146,0.287563894118,0.818061576392
|
||||
MEG_046,0.0409305767695,-0.0236313984443,0.086648799629,0.863545730655,0.078781387629,-0.498078572146,0.078781387629,0.954515845737,0.287563894118,0.498078572146,-0.287563894118,0.818061576392
|
||||
MEG_047,-0.0409305767695,-0.0236313984443,0.086648799629,0.863545730655,-0.078781387629,0.498078572146,-0.078781387629,0.954515845737,0.287563894118,-0.498078572146,-0.287563894118,0.818061576392
|
||||
MEG_048,0.0322948306071,-0.0559363890516,0.0702287153203,0.904562399003,0.165302346745,-0.392991094644,0.165302346745,0.713688676641,0.680678784005,0.392991094644,-0.680678784005,0.618251075645
|
||||
MEG_049,-0.0322948306071,-0.0559363890516,0.0702287153203,0.904562399003,-0.165302346745,0.392991094644,-0.165302346745,0.713688676641,0.680678784005,-0.392991094644,-0.680678784005,0.618251075645
|
||||
MEG_050,0.0409859487705,-0.0707405253299,0.0277040345208,0.825297111533,0.298522923381,-0.479341988471,0.298522923381,0.489900043633,0.819073874241,0.479341988471,-0.819073874241,0.315197155166
|
||||
MEG_051,-0.0409973787708,-0.0707339213298,0.0277037805208,0.825197788666,-0.298579570884,0.479477683976,-0.298579570884,0.489996382374,0.818995595294,-0.479477683976,-0.818995595294,0.31519417104
|
||||
MEG_052,0.0413735527778,-0.0734407993807,-0.0155112722916,0.805087785644,0.334422043575,-0.489893411036,0.334422043575,0.426212956438,0.840538168399,0.489893411036,-0.840538168399,0.231300742083
|
||||
MEG_053,-0.0417258507844,-0.0732373453769,-0.0155188922918,0.804976833568,-0.334486625117,0.490031626568,-0.334486625117,0.426317886079,0.840459253996,-0.490031626568,-0.840459253996,0.231294719647
|
||||
MEG_054,0.052394612985,0.0897544576874,0.0215265004047,0.550644162251,-0.459958724875,-0.696583791076,-0.459958724875,0.529188204946,-0.713020206696,0.696583791076,0.713020206696,0.0798323671971
|
||||
MEG_055,-0.052394612985,0.0897544576874,0.0215265004047,0.550644162251,0.459958724875,0.696583791076,0.459958724875,0.529188204946,-0.713020206696,-0.696583791076,0.713020206696,0.0798323671971
|
||||
MEG_056,0.0469054188818,0.0763493534354,0.0584085710981,0.752331243475,-0.212397698952,-0.623606380317,-0.212397698952,0.817850328992,-0.534797210957,0.623606380317,0.534797210957,0.570181572467
|
||||
MEG_057,-0.0469054188818,0.0763493534354,0.0584085710981,0.752331243475,0.212397698952,0.623606380317,0.212397698952,0.817850328992,-0.534797210957,-0.623606380317,0.534797210957,0.570181572467
|
||||
MEG_058,0.0510265689593,0.0397149327466,0.0733216733784,0.75352606525,-0.102214380931,-0.649423351381,-0.102214380931,0.95761101603,-0.269320185484,0.649423351381,0.269320185484,0.71113708128
|
||||
MEG_059,-0.0502099589439,0.0397642087476,0.0740382073919,0.762632097113,0.100407167247,0.638991928915,0.100407167247,0.957527538003,-0.27029505125,-0.638991928915,0.27029505125,0.720159635116
|
||||
MEG_060,0.0472617808885,0.0,0.086648799629,0.818057480605,-0.0,-0.575136469394,-0.0,1.0,-0.0,0.575136469394,0.0,0.818057480605
|
||||
MEG_061,-0.0472625428885,0.0,0.086648799629,0.818061560022,0.0,0.575130666904,0.0,1.0,-0.0,-0.575130666904,0.0,0.818061560022
|
||||
MEG_062,0.0494786929302,-0.0415175707805,0.0702287153203,0.775981248219,0.187974664221,-0.602095198473,0.187974664221,0.842270014862,0.505219504448,0.602095198473,-0.505219504448,0.618251263081
|
||||
MEG_063,-0.0494786929302,-0.0415175707805,0.0702287153203,0.775981248219,-0.187974664221,0.602095198473,-0.187974664221,0.842270014862,0.505219504448,-0.602095198473,-0.505219504448,0.618251263081
|
||||
MEG_064,0.0491517949241,-0.0585767191012,0.049521618931,0.738156783089,0.312052080775,-0.598120441436,0.312052080775,0.628111423833,0.712811011513,0.598120441436,-0.712811011513,0.366268206923
|
||||
MEG_065,-0.0491517949241,-0.0585767191012,0.049521618931,0.738156783089,-0.312052080775,0.598120441436,-0.312052080775,0.628111423833,0.712811011513,-0.598120441436,-0.712811011513,0.366268206923
|
||||
MEG_066,0.0530616169976,-0.0637961651994,0.0058140601093,0.676804202704,0.381028180993,-0.629883796022,0.381028180993,0.550790957291,0.742594671847,0.629883796022,-0.742594671847,0.227595159994
|
||||
MEG_067,-0.0530616169976,-0.0637961651994,0.0058140601093,0.676804202704,-0.381028180993,0.629883796022,-0.381028180993,0.550790957291,0.742594671847,-0.629883796022,-0.742594671847,0.227595159994
|
||||
MEG_068,0.0618035351619,0.0731865453759,0.0370664746968,0.475173275464,-0.314728784866,-0.821678860785,-0.314728784866,0.811263025695,-0.492745466865,0.821678860785,0.492745466865,0.286436301159
|
||||
MEG_069,-0.0618035351619,0.0731865453759,0.0370664746968,0.475173275464,0.314728784866,0.821678860785,0.314728784866,0.811263025695,-0.492745466865,-0.821678860785,0.492745466865,0.286436301159
|
||||
MEG_070,0.0618035351619,0.0552533830388,0.0538868630131,0.552894017073,-0.138386914129,-0.821679540869,-0.138386914129,0.957166893906,-0.254323807789,0.821679540869,0.254323807789,0.510060910979
|
||||
MEG_071,-0.0618035351619,0.0552533830388,0.0538868630131,0.552894017073,0.138386914129,0.821679540869,0.138386914129,0.957166893906,-0.254323807789,-0.821679540869,0.254323807789,0.510060910979
|
||||
MEG_072,0.0606945711411,0.0220908884153,0.0702287153203,0.662907428432,-0.12269267874,-0.738579885939,-0.12269267874,0.955343146999,-0.268823321284,0.738579885939,0.268823321284,0.61825057543
|
||||
MEG_073,-0.0606945711411,0.0220908884153,0.0702287153203,0.662907428432,0.12269267874,0.738579885939,0.12269267874,0.955343146999,-0.268823321284,-0.738579885939,0.268823321284,0.61825057543
|
||||
MEG_074,0.0606945711411,-0.0220908884153,0.0702287153203,0.662907428432,0.12269267874,-0.738579885939,0.12269267874,0.955343146999,0.268823321284,0.738579885939,-0.268823321284,0.61825057543
|
||||
MEG_075,-0.0606945711411,-0.0220908884153,0.0702287153203,0.662907428432,-0.12269267874,0.738579885939,-0.12269267874,0.955343146999,0.268823321284,-0.738579885939,-0.268823321284,0.61825057543
|
||||
MEG_076,0.0627984531806,-0.0524535409861,0.0270123925078,0.587320034467,0.340056606259,-0.73444991773,0.340056606259,0.719786504995,0.605201529878,0.73444991773,-0.605201529878,0.307106539462
|
||||
MEG_077,-0.0628070891808,-0.0524433809859,0.0270118845078,0.587208379993,-0.340036516337,0.734548491268,-0.340036516337,0.719895397972,0.605083286446,-0.734548491268,-0.605083286446,0.307103777966
|
||||
MEG_078,0.0635271791943,-0.0549572190332,-0.0162102803048,0.539322307512,0.381717195782,-0.750615368258,0.381717195782,0.683709413476,0.621959339803,0.750615368258,-0.621959339803,0.223031720988
|
||||
MEG_079,-0.0637887991992,-0.0546455610273,-0.016222218305,0.539196876386,-0.381695169412,0.750716675014,-0.381695169412,0.683831999207,0.621838077403,-0.750716675014,-0.621838077403,0.223028875593
|
||||
MEG_080,0.064521335213,0.0742759513964,0.017446752328,0.263693428198,-0.434776489447,-0.861066304154,-0.434776489447,0.743271888347,-0.508444986421,0.861066304154,0.508444986421,0.00696531654525
|
||||
MEG_081,-0.064521335213,0.0742759513964,0.017446752328,0.263693428198,0.434776489447,0.861066304154,0.434776489447,0.743271888347,-0.508444986421,-0.861066304154,0.508444986421,0.00696531654525
|
||||
MEG_082,0.0713910193422,0.0590585571103,0.0386440687265,0.192087187177,-0.202359959395,-0.960287956478,-0.202359959395,0.949314390716,-0.240525745844,0.960287956478,0.240525745844,0.141401577893
|
||||
MEG_083,-0.0713910193422,0.0590585571103,0.0386440687265,0.192087187177,0.202359959395,0.960287956478,0.202359959395,0.949314390716,-0.240525745844,-0.960287956478,0.240525745844,0.141401577893
|
||||
MEG_084,0.0707725293305,0.0357588826723,0.0469491068826,0.412488973038,-0.15233685973,-0.89813491653,-0.15233685973,0.960500283795,-0.232879123147,0.89813491653,0.232879123147,0.372989256833
|
||||
MEG_085,-0.0707722753305,0.0357588826723,0.0469491068826,0.412487827635,0.152336666507,0.898135475354,0.152336666507,0.960500461005,-0.232878518647,-0.898135475354,0.232878518647,0.37298828864
|
||||
MEG_086,0.0645896612143,0.0,0.0702287153203,0.618250335472,-0.0,-0.785981248306,-0.0,1.0,-0.0,0.785981248306,0.0,0.618250335472
|
||||
MEG_087,-0.0645896612143,0.0,0.0702287153203,0.618250335472,0.0,0.785981248306,0.0,1.0,-0.0,-0.785981248306,0.0,0.618250335472
|
||||
MEG_088,0.066222119245,-0.0382333507188,0.049521618931,0.524701809918,0.274413611706,-0.80584438968,0.274413611706,0.841567184852,0.46525460029,0.80584438968,-0.46525460029,0.36626899477
|
||||
MEG_089,-0.066222119245,-0.0382333507188,0.049521618931,0.524701809918,-0.274413611706,0.80584438968,-0.274413611706,0.841567184852,0.46525460029,-0.80584438968,-0.46525460029,0.36626899477
|
||||
MEG_090,0.071489571344,-0.0418500567868,0.0049839880937,0.408585986848,0.335957722235,-0.848640029826,0.335957722235,0.809156380101,0.482077132224,0.848640029826,-0.482077132224,0.217742366948
|
||||
MEG_091,-0.071489571344,-0.0418500567868,0.0049839880937,0.408585986848,-0.335957722235,0.848640029826,-0.335957722235,0.809156380101,0.482077132224,-0.848640029826,-0.482077132224,0.217742366948
|
||||
MEG_092,0.0724712813625,-0.0440524908282,-0.0382501147191,0.445815918958,0.313476011591,-0.83843959625,0.313476011591,0.822681283702,0.474266059932,0.83843959625,-0.474266059932,0.26849720266
|
||||
MEG_093,-0.0724712813625,-0.0440524908282,-0.0382501147191,0.445815918958,-0.313476011591,0.83843959625,-0.313476011591,0.822681283702,0.474266059932,-0.83843959625,-0.474266059932,0.26849720266
|
||||
MEG_094,0.0725505293639,0.0550301170346,0.0208673703923,0.0578041209796,-0.192090470788,-0.979673381608,-0.192090470788,0.96083749697,-0.199731208002,0.979673381608,0.199731208002,0.0186416179491
|
||||
MEG_095,-0.0725505293639,0.0550301170346,0.0208673703923,0.0578041209796,0.192090470788,0.979673381608,0.192090470788,0.96083749697,-0.199731208002,-0.979673381608,0.199731208002,0.0186416179491
|
||||
MEG_096,0.0772988054532,0.031062168584,0.0281350725289,0.186190165142,-0.175001933135,-0.966802743999,-0.175001933135,0.962367527045,-0.20790157837,0.966802743999,0.20790157837,0.148557692187
|
||||
MEG_097,-0.0772988054532,0.031062168584,0.0281350725289,0.186190165142,0.175001933135,0.966802743999,0.175001933135,0.962367527045,-0.20790157837,-0.966802743999,0.20790157837,0.148557692187
|
||||
MEG_098,0.0753049054157,0.0132783582496,0.049521618931,0.385377976058,-0.108374224505,-0.91637265511,-0.108374224505,0.980890739219,-0.1615808936,0.91637265511,0.1615808936,0.366268715277
|
||||
MEG_099,-0.0753049054157,0.0132783582496,0.049521618931,0.385377976058,0.108374224505,0.91637265511,0.108374224505,0.980890739219,-0.1615808936,-0.91637265511,0.1615808936,0.366268715277
|
||||
MEG_100,0.0753049054157,-0.0132783582496,0.049521618931,0.385377976058,0.108374224505,-0.91637265511,0.108374224505,0.980890739219,0.1615808936,0.91637265511,-0.1615808936,0.366268715277
|
||||
MEG_101,-0.0753049054157,-0.0132783582496,0.049521618931,0.385377976058,-0.108374224505,0.91637265511,-0.108374224505,0.980890739219,0.1615808936,-0.91637265511,-0.1615808936,0.366268715277
|
||||
MEG_102,0.0770366774483,-0.0278145245229,0.0260804664903,0.373752636547,0.220368615692,-0.900969832953,0.220368615692,0.922455039947,0.31704001718,0.900969832953,-0.31704001718,0.296207676495
|
||||
MEG_103,-0.0770412494484,-0.0278018245227,0.0260799584903,0.373679152588,-0.220281297547,0.901021665041,-0.220281297547,0.92252557096,0.31689544155,-0.901021665041,-0.31689544155,0.296204723548
|
||||
MEG_104,0.0780183874667,-0.0300167045643,-0.0171536363225,0.300373897506,0.24880001314,-0.920800779299,0.24880001314,0.911522102566,0.327453828799,0.920800779299,-0.327453828799,0.211896000073
|
||||
MEG_105,-0.0781575794694,-0.0296346885571,-0.0171681143228,0.300287289279,-0.248701776907,0.920855564169,-0.248701776907,0.911602900892,0.327303494098,-0.920855564169,-0.327303494098,0.211890190171
|
||||
MEG_106,0.0705891413271,0.0621764071689,0.00492785409264,0.134758903688,-0.324701145067,-0.936167295022,-0.324701145067,0.878148606143,-0.351317793345,0.936167295022,0.351317793345,0.0129075098315
|
||||
MEG_107,-0.0705891413271,0.0621764071689,0.00492785409264,0.134758903688,0.324701145067,0.936167295022,0.324701145067,0.878148606143,-0.351317793345,-0.936167295022,0.351317793345,0.0129075098315
|
||||
MEG_108,0.0767740414434,0.0353695006649,0.00957046617992,0.0578041209796,-0.192090470788,-0.979673381608,-0.192090470788,0.96083749697,-0.199731208002,0.979673381608,0.199731208002,0.0186416179491
|
||||
MEG_109,-0.0767740414434,0.0353695006649,0.00957046617992,0.0578041209796,0.192090470788,0.979673381608,0.192090470788,0.96083749697,-0.199731208002,-0.979673381608,0.199731208002,0.0186416179491
|
||||
MEG_110,0.0812949875283,0.0137193022579,0.00288239205419,0.219230938619,-0.143668166804,-0.965037436268,-0.143668166804,0.973563831901,-0.177575119486,0.965037436268,0.177575119486,0.192794770521
|
||||
MEG_111,-0.0812949875283,0.0137193022579,0.00288239205419,0.219230938619,0.143668166804,0.965037436268,0.143668166804,0.973563831901,-0.177575119486,-0.965037436268,0.177575119486,0.192794770521
|
||||
MEG_112,0.0819833275413,0.000204978003854,0.0250207784704,0.283903999524,-0.00795851694118,-0.958819681203,-0.00795851694118,0.999911550977,-0.010656088948,0.958819681203,0.010656088948,0.283815550501
|
||||
MEG_113,-0.0819833275413,0.000218440004107,0.0250202704704,0.283900779742,0.00807295557139,0.958819677859,0.00807295557139,0.999908989411,-0.0108092683826,-0.958819677859,0.0108092683826,0.283809769153
|
||||
MEG_114,0.0812949875283,-0.0149293582807,0.00396595607456,0.227559595527,0.130073723873,-0.965037541675,0.130073723873,0.978096467321,0.162505775197,0.965037541675,-0.162505775197,0.205656062847
|
||||
MEG_115,-0.0812949875283,-0.0149293582807,0.00396595607456,0.227559595527,-0.130073723873,0.965037541675,-0.130073723873,0.978096467321,0.162505775197,-0.965037541675,-0.162505775197,0.205656062847
|
||||
MEG_116,0.0798715715016,0.0223085664194,-0.0132826762497,0.0578041209796,-0.192090470788,-0.979673381608,-0.192090470788,0.96083749697,-0.199731208002,0.979673381608,0.199731208002,0.0186416179491
|
||||
MEG_117,-0.0798715715016,0.0223085664194,-0.0132826762497,0.0578041209796,0.192090470788,0.979673381608,0.192090470788,0.96083749697,-0.199731208002,-0.979673381608,0.199731208002,0.0186416179491
|
||||
MEG_118,0.0830994035623,-0.0016276320306,-0.0182272943427,0.199274663362,-0.00609304526277,-0.979924733508,-0.00609304526277,0.999953635537,-0.00745664647062,0.979924733508,0.00745664647062,0.199228298899
|
||||
MEG_119,-0.0830994035623,-0.00122097802295,-0.018242788343,0.199270871862,0.00622296522868,0.979924688091,0.00622296522868,0.999951637458,-0.00761560563545,-0.979924688091,0.00761560563545,0.19922250932
|
||||
MEG_120,0.0824113175493,0.0122798842309,-0.0403806667592,0.134815219165,-0.156230210311,-0.978476866394,-0.156230210311,0.971788825746,-0.176687859065,0.978476866394,0.176687859065,0.106604044912
|
||||
MEG_121,-0.0824113175493,0.0122798842309,-0.0403806667592,0.134812452063,0.156230709979,0.978477167862,0.156230709979,0.971788735519,-0.176687913503,-0.978477167862,0.176687913503,0.106601187582
|
||||
MEG_122,0.0824113175493,-0.0167619683151,-0.0392821167385,0.144888827116,0.146932333372,-0.978477448481,0.146932333372,0.974752861061,0.168130155723,0.978477448481,-0.168130155723,0.119641688177
|
||||
MEG_123,-0.0824113175493,-0.0167619683151,-0.0392821167385,0.144888827116,-0.146932333372,0.978477448481,-0.146932333372,0.974752861061,0.168130155723,-0.978477448481,-0.168130155723,0.119641688177
|
||||
REF_001,-0.0574242204956,0.101251052386,0.128127713641,0.221198761686,0.896440347728,-0.384012774259,0.896440347728,-0.0318490232173,0.442018486814,0.384012774259,-0.442018486814,-0.810650261531
|
||||
REF_002,0.0490254159517,0.102373905889,0.131493075274,0.222503034056,-0.896198721013,0.383823204472,-0.896198721013,-0.0330228704748,0.442422131545,-0.383823204472,-0.442422131545,-0.810519836419
|
||||
REF_003,-0.069360787652,0.103594593082,0.130986921083,-0.347310972431,-0.17658747001,0.920973373049,-0.17658747001,0.976855280479,0.120708849866,-0.920973373049,-0.120708849866,-0.370455691952
|
||||
REF_004,0.0431879423759,0.106985366145,0.141533355103,0.383166262537,0.0763561288473,0.920517982899,0.0763561288473,0.990548087664,-0.113948355026,-0.920517982899,0.113948355026,0.3737143502
|
||||
REF_005,-0.0611082914288,0.0961811650462,0.138938483688,0.997012450802,-0.040298218601,0.0658955728709,-0.040298218601,0.456428559123,0.888847019455,-0.0658955728709,-0.888847019455,0.453441009925
|
||||
REF_006,0.0527763749922,0.0973005509413,0.142279189541,0.99632914816,0.0447419955488,-0.072982068763,0.0447419955488,0.454664406796,0.889538324653,0.072982068763,-0.889538324653,0.450993554956
|
||||
REF_007,-0.114314226149,0.0198287643728,0.0448114428425,0.149033474209,0.0868247934117,0.985012933323,0.0868247934117,0.991141197071,-0.100501655296,-0.985012933323,0.100501655296,0.14017467128
|
||||
REF_008,0.114314226149,0.0198287643728,0.0448114428425,0.149033474209,-0.0868247934117,-0.985012933323,-0.0868247934117,0.991141197071,-0.100501655296,0.985012933323,0.100501655296,0.14017467128
|
||||
REF_009,-0.109709206063,0.0555492930443,-0.00941197017695,0.0589562738411,0.187574011648,0.98047954998,0.187574011648,0.96261171626,-0.195434576966,-0.98047954998,0.195434576966,0.0215679901007
|
||||
REF_010,0.109709206063,0.0555492930443,-0.00941197017695,0.0589562738411,-0.187574011648,-0.98047954998,-0.187574011648,0.96261171626,-0.195434576966,0.98047954998,0.195434576966,0.0215679901007
|
||||
REF_011,-0.118027452219,-0.0227690684281,-0.0111257082092,0.157170103306,-0.0740177576494,0.984793851615,-0.0740177576494,0.993499722223,0.0864851056297,-0.984793851615,-0.0864851056297,0.150669825529
|
||||
REF_012,0.118027452219,-0.0227690684281,-0.0111257082092,0.157170103306,0.0740177576494,-0.984793851615,0.0740177576494,0.993499722223,0.0864851056297,0.984793851615,-0.0864851056297,0.150669825529
|
||||
REF_013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||
REF_014,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||
REF_015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||
REF_016,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||
REF_017,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||
REF_018,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||
REF_019,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||
REF_020,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||
REF_021,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||
|
123
mne/io/artemis123/utils.py
Normal file
123
mne/io/artemis123/utils.py
Normal file
@@ -0,0 +1,123 @@
|
||||
# Authors: The MNE-Python contributors.
|
||||
# License: BSD-3-Clause
|
||||
# Copyright the MNE-Python contributors.
|
||||
|
||||
import os.path as op
|
||||
|
||||
import numpy as np
|
||||
|
||||
from ..._fiff._digitization import _artemis123_read_pos
|
||||
from ...transforms import rotation3d_align_z_axis
|
||||
from ...utils import logger
|
||||
|
||||
|
||||
def _load_mne_locs(fname=None):
|
||||
"""Load MNE locs structure from file (if exists) or recreate it."""
|
||||
if not fname:
|
||||
# find input file
|
||||
resource_dir = op.join(op.dirname(op.abspath(__file__)), "resources")
|
||||
fname = op.join(resource_dir, "Artemis123_mneLoc.csv")
|
||||
|
||||
if not op.exists(fname):
|
||||
raise OSError(f'MNE locs file "{fname}" does not exist')
|
||||
|
||||
logger.info(f"Loading mne loc file {fname}")
|
||||
locs = dict()
|
||||
with open(fname) as fid:
|
||||
for line in fid:
|
||||
vals = line.strip().split(",")
|
||||
locs[vals[0]] = np.array(vals[1::], np.float64)
|
||||
|
||||
return locs
|
||||
|
||||
|
||||
def _generate_mne_locs_file(output_fname):
|
||||
"""Generate mne coil locs and save to supplied file."""
|
||||
logger.info("Converting Tristan coil file to mne loc file...")
|
||||
resource_dir = op.join(op.dirname(op.abspath(__file__)), "resources")
|
||||
chan_fname = op.join(resource_dir, "Artemis123_ChannelMap.csv")
|
||||
chans = _load_tristan_coil_locs(chan_fname)
|
||||
|
||||
# compute a dict of loc structs
|
||||
locs = {n: _compute_mne_loc(cinfo) for n, cinfo in chans.items()}
|
||||
|
||||
# write it out to output_fname
|
||||
with open(output_fname, "w") as fid:
|
||||
for n in sorted(locs.keys()):
|
||||
fid.write(f"{n},")
|
||||
fid.write(",".join(locs[n].astype(str)))
|
||||
fid.write("\n")
|
||||
|
||||
|
||||
def _load_tristan_coil_locs(coil_loc_path):
|
||||
"""Load the Coil locations from Tristan CAD drawings."""
|
||||
channel_info = dict()
|
||||
with open(coil_loc_path) as fid:
|
||||
# skip 2 Header lines
|
||||
fid.readline()
|
||||
fid.readline()
|
||||
for line in fid:
|
||||
line = line.strip()
|
||||
vals = line.split(",")
|
||||
channel_info[vals[0]] = dict()
|
||||
if vals[6]:
|
||||
channel_info[vals[0]]["inner_coil"] = np.array(vals[2:5], np.float64)
|
||||
channel_info[vals[0]]["outer_coil"] = np.array(vals[5:8], np.float64)
|
||||
else: # nothing supplied
|
||||
channel_info[vals[0]]["inner_coil"] = np.zeros(3)
|
||||
channel_info[vals[0]]["outer_coil"] = np.zeros(3)
|
||||
return channel_info
|
||||
|
||||
|
||||
def _compute_mne_loc(coil_loc):
|
||||
"""Convert a set of coils to an mne Struct.
|
||||
|
||||
Note input coil locations are in inches.
|
||||
"""
|
||||
loc = np.zeros(12)
|
||||
if (np.linalg.norm(coil_loc["inner_coil"]) == 0) and (
|
||||
np.linalg.norm(coil_loc["outer_coil"]) == 0
|
||||
):
|
||||
return loc
|
||||
|
||||
# channel location is inner coil location converted to meters From inches
|
||||
loc[0:3] = coil_loc["inner_coil"] / 39.370078
|
||||
|
||||
# figure out rotation
|
||||
z_axis = coil_loc["outer_coil"] - coil_loc["inner_coil"]
|
||||
R = rotation3d_align_z_axis(z_axis)
|
||||
loc[3:13] = R.T.reshape(9)
|
||||
return loc
|
||||
|
||||
|
||||
def _read_pos(fname):
|
||||
"""Read the .pos file and return positions as dig points."""
|
||||
nas, lpa, rpa, hpi, extra = None, None, None, None, None
|
||||
with open(fname) as fid:
|
||||
for line in fid:
|
||||
line = line.strip()
|
||||
if len(line) > 0:
|
||||
parts = line.split()
|
||||
# The lines can have 4 or 5 parts. First part is for the id,
|
||||
# which can be an int or a string. The last three are for xyz
|
||||
# coordinates. The extra part is for additional info
|
||||
# (e.g. 'Pz', 'Cz') which is ignored.
|
||||
if len(parts) not in [4, 5]:
|
||||
continue
|
||||
|
||||
if parts[0].lower() == "nasion":
|
||||
nas = np.array([float(p) for p in parts[-3:]]) / 100.0
|
||||
elif parts[0].lower() == "left":
|
||||
lpa = np.array([float(p) for p in parts[-3:]]) / 100.0
|
||||
elif parts[0].lower() == "right":
|
||||
rpa = np.array([float(p) for p in parts[-3:]]) / 100.0
|
||||
elif "hpi" in parts[0].lower():
|
||||
if hpi is None:
|
||||
hpi = list()
|
||||
hpi.append(np.array([float(p) for p in parts[-3:]]) / 100.0)
|
||||
else:
|
||||
if extra is None:
|
||||
extra = list()
|
||||
extra.append(np.array([float(p) for p in parts[-3:]]) / 100.0)
|
||||
|
||||
return _artemis123_read_pos(nas, lpa, rpa, hpi, extra)
|
||||
Reference in New Issue
Block a user