针对pulse-transit的工具
This commit is contained in:
200
dist/client/mne/commands/mne_report.py
vendored
Normal file
200
dist/client/mne/commands/mne_report.py
vendored
Normal file
@@ -0,0 +1,200 @@
|
||||
# Authors: The MNE-Python contributors.
|
||||
# License: BSD-3-Clause
|
||||
# Copyright the MNE-Python contributors.
|
||||
|
||||
r"""Create mne report for a folder.
|
||||
|
||||
Examples
|
||||
--------
|
||||
Before getting started with ``mne report``, make sure the files you want to
|
||||
render follow the filename conventions defined by MNE:
|
||||
|
||||
.. highlight:: console
|
||||
|
||||
.. cssclass:: table-bordered
|
||||
.. rst-class:: midvalign
|
||||
|
||||
============ ==============================================================
|
||||
Data object Filename convention (ends with)
|
||||
============ ==============================================================
|
||||
raw -raw.fif(.gz), -raw_sss.fif(.gz), -raw_tsss.fif(.gz),
|
||||
_meg.fif(.gz), _eeg.fif(.gz), _ieeg.fif(.gz)
|
||||
events -eve.fif(.gz)
|
||||
epochs -epo.fif(.gz)
|
||||
evoked -ave.fif(.gz)
|
||||
covariance -cov.fif(.gz)
|
||||
trans -trans.fif(.gz)
|
||||
forward -fwd.fif(.gz)
|
||||
inverse -inv.fif(.gz)
|
||||
============ ==============================================================
|
||||
|
||||
To generate a barebones report from all the \*.fif files in the sample
|
||||
dataset, invoke the following command in a system (e.g., Bash) shell::
|
||||
|
||||
$ mne report --path MNE-sample-data/ --verbose
|
||||
|
||||
On successful creation of the report, it will open the HTML in a new tab in
|
||||
the browser. To disable this, use the ``--no-browser`` option.
|
||||
|
||||
TO generate a report for a single subject, give the ``SUBJECT`` name and
|
||||
the ``SUBJECTS_DIR`` and this will generate the MRI slices (with BEM
|
||||
contours overlaid on top if available)::
|
||||
|
||||
$ mne report --path MNE-sample-data/ --subject sample --subjects-dir \
|
||||
MNE-sample-data/subjects --verbose
|
||||
|
||||
To properly render ``trans`` and ``covariance`` files, add the measurement
|
||||
information::
|
||||
|
||||
$ mne report --path MNE-sample-data/ \
|
||||
--info MNE-sample-data/MEG/sample/sample_audvis-ave.fif \
|
||||
--subject sample --subjects-dir MNE-sample-data/subjects --verbose
|
||||
|
||||
To render whitened ``evoked`` files with baseline correction, add the noise
|
||||
covariance file::
|
||||
|
||||
$ mne report --path MNE-sample-data/ \
|
||||
--info MNE-sample-data/MEG/sample/sample_audvis-ave.fif \
|
||||
--cov MNE-sample-data/MEG/sample/sample_audvis-cov.fif --bmax 0 \
|
||||
--subject sample --subjects-dir MNE-sample-data/subjects --verbose
|
||||
|
||||
To generate the report in parallel::
|
||||
|
||||
$ mne report --path MNE-sample-data/ \
|
||||
--info MNE-sample-data/MEG/sample/sample_audvis-ave.fif \
|
||||
--subject sample --subjects-dir MNE-sample-data/subjects \
|
||||
--verbose --jobs 6
|
||||
|
||||
For help on all the available options, do::
|
||||
|
||||
$ mne report --help
|
||||
"""
|
||||
|
||||
import sys
|
||||
import time
|
||||
|
||||
import mne
|
||||
from mne.report import Report
|
||||
from mne.utils import logger, verbose
|
||||
|
||||
|
||||
@verbose
|
||||
def log_elapsed(t, verbose=None):
|
||||
"""Log elapsed time."""
|
||||
logger.info(f"Report complete in {round(t, 1)} seconds")
|
||||
|
||||
|
||||
def run():
|
||||
"""Run command."""
|
||||
from mne.commands.utils import _add_verbose_flag, get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
|
||||
parser.add_option(
|
||||
"-p",
|
||||
"--path",
|
||||
dest="path",
|
||||
help="Path to folder who MNE-Report must be created",
|
||||
)
|
||||
parser.add_option(
|
||||
"-i",
|
||||
"--info",
|
||||
dest="info_fname",
|
||||
help="File from which info dictionary is to be read",
|
||||
metavar="FILE",
|
||||
)
|
||||
parser.add_option(
|
||||
"-c",
|
||||
"--cov",
|
||||
dest="cov_fname",
|
||||
help="File from which noise covariance is to be read",
|
||||
metavar="FILE",
|
||||
)
|
||||
parser.add_option(
|
||||
"--bmin",
|
||||
dest="bmin",
|
||||
help="Time at which baseline correction starts for evokeds",
|
||||
default=None,
|
||||
)
|
||||
parser.add_option(
|
||||
"--bmax",
|
||||
dest="bmax",
|
||||
help="Time at which baseline correction stops for evokeds",
|
||||
default=None,
|
||||
)
|
||||
parser.add_option(
|
||||
"-d", "--subjects-dir", dest="subjects_dir", help="The subjects directory"
|
||||
)
|
||||
parser.add_option("-s", "--subject", dest="subject", help="The subject name")
|
||||
parser.add_option(
|
||||
"--no-browser",
|
||||
dest="no_browser",
|
||||
action="store_false",
|
||||
help="Do not open MNE-Report in browser",
|
||||
)
|
||||
parser.add_option(
|
||||
"--overwrite",
|
||||
dest="overwrite",
|
||||
action="store_false",
|
||||
help="Overwrite html report if it already exists",
|
||||
)
|
||||
parser.add_option(
|
||||
"-j", "--jobs", dest="n_jobs", help="Number of jobs to run in parallel"
|
||||
)
|
||||
parser.add_option(
|
||||
"-m",
|
||||
"--mri-decim",
|
||||
type="int",
|
||||
dest="mri_decim",
|
||||
default=2,
|
||||
help="Integer factor used to decimate BEM plots",
|
||||
)
|
||||
parser.add_option(
|
||||
"--image-format",
|
||||
type="str",
|
||||
dest="image_format",
|
||||
default="png",
|
||||
help="Image format to use (can be 'png' or 'svg')",
|
||||
)
|
||||
_add_verbose_flag(parser)
|
||||
|
||||
options, args = parser.parse_args()
|
||||
path = options.path
|
||||
if path is None:
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
info_fname = options.info_fname
|
||||
cov_fname = options.cov_fname
|
||||
subjects_dir = options.subjects_dir
|
||||
subject = options.subject
|
||||
image_format = options.image_format
|
||||
mri_decim = int(options.mri_decim)
|
||||
verbose = True if options.verbose is not None else False
|
||||
open_browser = False if options.no_browser is not None else True
|
||||
overwrite = True if options.overwrite is not None else False
|
||||
n_jobs = int(options.n_jobs) if options.n_jobs is not None else 1
|
||||
|
||||
bmin = float(options.bmin) if options.bmin is not None else None
|
||||
bmax = float(options.bmax) if options.bmax is not None else None
|
||||
# XXX: this means (None, None) cannot be specified through command line
|
||||
if bmin is None and bmax is None:
|
||||
baseline = None
|
||||
else:
|
||||
baseline = (bmin, bmax)
|
||||
|
||||
t0 = time.time()
|
||||
report = Report(
|
||||
info_fname,
|
||||
subjects_dir=subjects_dir,
|
||||
subject=subject,
|
||||
baseline=baseline,
|
||||
cov_fname=cov_fname,
|
||||
verbose=verbose,
|
||||
image_format=image_format,
|
||||
)
|
||||
report.parse_folder(path, verbose=verbose, n_jobs=n_jobs, mri_decim=mri_decim)
|
||||
log_elapsed(time.time() - t0, verbose=verbose)
|
||||
report.save(open_browser=open_browser, overwrite=overwrite)
|
||||
|
||||
|
||||
mne.utils.run_command_if_main()
|
||||
Reference in New Issue
Block a user