{"action":"created","comment":{"url":"https://api.github.com/repos/mne-tools/mne-python/pulls/comments/58709545","id":58709545,"diff_hunk":"@@ -0,0 +1,356 @@\n+# -*- coding: utf-8 -*-\n+\"\"\"\n+====================================\n+Brainstorm auditory tutorial dataset\n+====================================\n+\n+Here we compute the evoked from raw for the auditory Brainstorm\n+tutorial dataset. For comparison, see:\n+http://neuroimage.usc.edu/brainstorm/Tutorials/Auditory\n+\n+Experiment:\n+    - One subject 2 acquisition runs 6 minutes each.\n+    - Each run contains 200 regular beeps and 40 easy deviant beeps.\n+    - Random ISI: between 0.7s and 1.7s seconds, uniformly distributed.\n+    - Button pressed when detecting a deviant with the right index finger.\n+\n+The specifications of this dataset were discussed initially on the FieldTrip\n+bug tracker:\n+http://bugzilla.fcdonders.nl/show_bug.cgi?id=2300\n+\n+References\n+----------\n+.. [1] Tadel F, Baillet S, Mosher JC, Pantazis D, Leahy RM.\n+       Brainstorm: A User-Friendly Application for MEG/EEG Analysis.\n+       Computational Intelligence and Neuroscience, vol. 2011, Article ID\n+       879716, 13 pages, 2011. doi:10.1155/2011/879716\n+\"\"\"\n+\n+# Authors: Mainak Jas <mainak.jas@telecom-paristech.fr>\n+#          Eric Larson <larson.eric.d@gmail.com>\n+#          Jaakko Leppakangas <jaeilepp@student.jyu.fi>\n+#\n+# License: BSD (3-clause)\n+\n+import numpy as np\n+import os.path as op\n+import csv\n+\n+import mne\n+from mne.datasets.brainstorm import bst_auditory\n+from mne.io import read_raw_ctf\n+from mne.filter import notch_filter, low_pass_filter\n+\n+print(__doc__)\n+\n+\n+# To reduce memory consumption and running time, some of the steps are\n+# precomputed. To run everything from scratch change this to False.\n+use_precomputed = True\n+\n+##############################################################################\n+# The data was collected with a CTF 275 system at 2400 Hz and low-pass\n+# filtered at 600 Hz. Here the data and empty room data files are read to\n+# construct instances of :class:`mne.io.Raw`.\n+data_path = bst_auditory.data_path()\n+\n+subject = 'bst_auditory'\n+subjects_dir = op.join(data_path, 'subjects')\n+\n+raw_fname1 = op.join(data_path, 'MEG', 'bst_auditory',\n+                     'S01_AEF_20131218_01.ds')\n+raw_fname2 = op.join(data_path, 'MEG', 'bst_auditory',\n+                     'S01_AEF_20131218_02.ds')\n+erm_fname = op.join(data_path, 'MEG', 'bst_auditory',\n+                    'S01_Noise_20131218_01.ds')\n+preload = not use_precomputed\n+raw1 = read_raw_ctf(raw_fname1, preload=preload)\n+raw2 = read_raw_ctf(raw_fname2, preload=preload)\n+\n+raw_erm = read_raw_ctf(erm_fname, preload=preload)\n+\n+raws = [raw1, raw2, raw_erm]\n+##############################################################################\n+# Data channel array consisted of 274 MEG axial gradiometers, 26 MEG reference\n+# sensors and 2 EEG electrodes (Cz and Pz).\n+# In addition:\n+#   - 1 stim channel for marking presentation times for the stimuli\n+#   - 1 audio channel for the sent signal\n+#   - 1 response channel for recording the button presses\n+#   - 1 ECG bipolar\n+#   - 2 EOG bipolar (vertical and horizontal)\n+#   - 12 head tracking channels\n+#   - 20 unused channels\n+# The head tracking channels and the unused channels are marked as misc\n+# channels. Here we define the EOG and ECG channels.\n+for raw in raws[:2]:\n+    raw.set_channel_types({'HEOG': 'eog', 'VEOG': 'eog', 'ECG': 'ecg'})\n+    if not use_precomputed:\n+        # Leave out the two EEG channels for easier setup of source space.\n+        raw.pick_types(meg=True, eeg=False, stim=True, misc=True, eog=True,\n+                       ecg=True)\n+\n+##############################################################################\n+# For noise reduction, a set of bad segments have been identified and stored\n+# in csv files. The bad segments are later used to reject epochs that overlap\n+# with them.\n+# The file for the second run also contains some saccades. The saccades are\n+# removed by using SSP. You can view the files with your favorite text editor.\n+\n+for idx in [1, 2]:\n+    onsets = list()\n+    durations = list()\n+    descriptions = list()\n+    saccades = list()\n+    with open(op.join(data_path, 'MEG', 'bst_auditory',\n+                      'events_bad_0%s.csv' % idx), 'r') as f:\n+        reader = csv.reader(f)\n+        for row in reader:\n+            onsets.append(int(row[0]))\n+            durations.append(int(row[1]))\n+            descriptions.append(row[3])\n+            if row[3] == 'saccade':  # Events for removal of saccades.\n+                saccades.append([int(row[0]), 0, 1])\n+    saccades = np.asarray(saccades)\n+    raw = raws[idx - 1]\n+    onsets = raw.index_as_time(onsets)  # Conversion from samples to times.\n+    durations = raw.index_as_time(durations)\n+\n+    annot = mne.annotations.Annotations(onsets, durations, descriptions)\n+    raw.annotations = annot\n+\n+##############################################################################\n+# Here we compute the saccade and EOG projectors for magnetometers and add\n+# them to the raw data. The projectors are added to both runs.\n+saccade_epochs = mne.Epochs(raw2, saccades, 1, 0., 0.5, preload=True,\n+                            segment_reject=False)\n+\n+projs_saccade = mne.compute_proj_epochs(saccade_epochs, n_mag=1, n_eeg=0,\n+                                        desc_prefix='saccade')\n+if use_precomputed:\n+    proj_fname = op.join(data_path, 'MEG', 'bst_auditory',\n+                         'bst_auditory-eog-proj.fif')\n+    projs_eog = mne.read_proj(proj_fname)[0]\n+else:\n+    projs_eog, _ = mne.preprocessing.compute_proj_eog(raw2.load_data(),\n+                                                      n_mag=1, n_eeg=0)\n+for raw in raws[:2]:\n+    raw.add_proj(projs_saccade)\n+    raw.add_proj(projs_eog)\n+del saccade_epochs  # To save memory\n+\n+##############################################################################\n+# Visually inspect the effects of projections. Click on 'proj' button at the\n+# bottom right corner to toggle the projectors on/off. EOG events can be\n+# plotted by adding the event list as a keyword argument. As the bad segments\n+# and saccades were added as annotations to the raw data, they are plotted as\n+# well.\n+raw1.plot()\n+raw2.plot(block=True)\n+\n+##############################################################################\n+# Typical preprocessing step is the removal of power line artifact (50 Hz or\n+# 60 Hz). Here we notch filter the data at 60, 120 and 180 to remove the\n+# original 60 Hz artifact and the harmonics. The power spectra are plotted\n+# before and after the filtering to show the effect. The drop after 600 Hz\n+# appears because the data was filtered during the acquisition. To save time\n+# and memory we do the filtering at evoked stage, which is not something you\n+# usually would do.\n+if not use_precomputed:\n+    meg_picks = mne.pick_types(raw.info, meg=True, eeg=False)\n+    raws[0].plot_psd(picks=meg_picks)\n+    notches = np.arange(60, 181, 60)\n+    for raw in raws:\n+        raw.notch_filter(notches)\n+    raws[0].plot_psd(picks=meg_picks)\n+\n+##############################################################################\n+# We also lowpass filter the data at 100 Hz to remove the hf components.\n+if not use_precomputed:\n+    for raw in raws:\n+        raw.filter(None, 100.)\n+\n+##############################################################################\n+# Epoching and averaging.\n+# First some parameters are defined and events extracted from the stimulus\n+# channel (UPPT001). The rejection thresholds are defined as peak-to-peak\n+# values and are in T / m for gradiometers, T for magnetometers and\n+# V for EOG and EEG channels.\n+tmin, tmax = -0.1, 0.5\n+event_id = dict(standard=1, deviant=2)\n+reject = dict(mag=4e-12, eog=250e-6)\n+# find events\n+events1 = mne.find_events(raw1, stim_channel='UPPT001')\n+events2 = mne.find_events(raw2, stim_channel='UPPT001')","path":"tutorials/plot_brainstorm_auditory.py","position":184,"original_position":184,"commit_id":"87908db09856e1b6721a9ddbf8a3cff03503b457","original_commit_id":"618f073f83b0248f1c00a2016773bab4f2671549","user":{"login":"Eric89GXL","id":2365790,"avatar_url":"https://avatars.githubusercontent.com/u/2365790?v=3","gravatar_id":"","url":"https://api.github.com/users/Eric89GXL","html_url":"https://github.com/Eric89GXL","followers_url":"https://api.github.com/users/Eric89GXL/followers","following_url":"https://api.github.com/users/Eric89GXL/following{/other_user}","gists_url":"https://api.github.com/users/Eric89GXL/gists{/gist_id}","starred_url":"https://api.github.com/users/Eric89GXL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Eric89GXL/subscriptions","organizations_url":"https://api.github.com/users/Eric89GXL/orgs","repos_url":"https://api.github.com/users/Eric89GXL/repos","events_url":"https://api.github.com/users/Eric89GXL/events{/privacy}","received_events_url":"https://api.github.com/users/Eric89GXL/received_events","type":"User","site_admin":false},"body":"I suspect that is old -- previously we didn't have `preload=False` mode for BTi, and we probably didn't even have CTF when this was written. It would be a lot nicer (and probably save memory) not to have these duplications. Do you have time to look into this issue? We could try to fix that, then rebase this so it's cleaner and lower memory.","created_at":"2016-04-06T13:59:46Z","updated_at":"2016-04-06T13:59:46Z","html_url":"https://github.com/mne-tools/mne-python/pull/2821#discussion_r58709545","pull_request_url":"https://api.github.com/repos/mne-tools/mne-python/pulls/2821","_links":{"self":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/comments/58709545"},"html":{"href":"https://github.com/mne-tools/mne-python/pull/2821#discussion_r58709545"},"pull_request":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/2821"}}},"pull_request":{"url":"https://api.github.com/repos/mne-tools/mne-python/pulls/2821","id":57332993,"html_url":"https://github.com/mne-tools/mne-python/pull/2821","diff_url":"https://github.com/mne-tools/mne-python/pull/2821.diff","patch_url":"https://github.com/mne-tools/mne-python/pull/2821.patch","issue_url":"https://api.github.com/repos/mne-tools/mne-python/issues/2821","number":2821,"state":"open","locked":false,"title":"[MRG] Epoch rejection by annotations.","user":{"login":"jaeilepp","id":3456414,"avatar_url":"https://avatars.githubusercontent.com/u/3456414?v=3","gravatar_id":"","url":"https://api.github.com/users/jaeilepp","html_url":"https://github.com/jaeilepp","followers_url":"https://api.github.com/users/jaeilepp/followers","following_url":"https://api.github.com/users/jaeilepp/following{/other_user}","gists_url":"https://api.github.com/users/jaeilepp/gists{/gist_id}","starred_url":"https://api.github.com/users/jaeilepp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaeilepp/subscriptions","organizations_url":"https://api.github.com/users/jaeilepp/orgs","repos_url":"https://api.github.com/users/jaeilepp/repos","events_url":"https://api.github.com/users/jaeilepp/events{/privacy}","received_events_url":"https://api.github.com/users/jaeilepp/received_events","type":"User","site_admin":false},"body":"The annotation descriptions are also visible in ``raw.plot``.","created_at":"2016-01-27T09:26:04Z","updated_at":"2016-04-06T13:59:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c761211b306d3eaf701fd36b375d6278beeb1628","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mne-tools/mne-python/pulls/2821/commits","review_comments_url":"https://api.github.com/repos/mne-tools/mne-python/pulls/2821/comments","review_comment_url":"https://api.github.com/repos/mne-tools/mne-python/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mne-tools/mne-python/issues/2821/comments","statuses_url":"https://api.github.com/repos/mne-tools/mne-python/statuses/87908db09856e1b6721a9ddbf8a3cff03503b457","head":{"label":"jaeilepp:epoch-rejection","ref":"epoch-rejection","sha":"87908db09856e1b6721a9ddbf8a3cff03503b457","user":{"login":"jaeilepp","id":3456414,"avatar_url":"https://avatars.githubusercontent.com/u/3456414?v=3","gravatar_id":"","url":"https://api.github.com/users/jaeilepp","html_url":"https://github.com/jaeilepp","followers_url":"https://api.github.com/users/jaeilepp/followers","following_url":"https://api.github.com/users/jaeilepp/following{/other_user}","gists_url":"https://api.github.com/users/jaeilepp/gists{/gist_id}","starred_url":"https://api.github.com/users/jaeilepp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaeilepp/subscriptions","organizations_url":"https://api.github.com/users/jaeilepp/orgs","repos_url":"https://api.github.com/users/jaeilepp/repos","events_url":"https://api.github.com/users/jaeilepp/events{/privacy}","received_events_url":"https://api.github.com/users/jaeilepp/received_events","type":"User","site_admin":false},"repo":{"id":35097627,"name":"mne-python","full_name":"jaeilepp/mne-python","owner":{"login":"jaeilepp","id":3456414,"avatar_url":"https://avatars.githubusercontent.com/u/3456414?v=3","gravatar_id":"","url":"https://api.github.com/users/jaeilepp","html_url":"https://github.com/jaeilepp","followers_url":"https://api.github.com/users/jaeilepp/followers","following_url":"https://api.github.com/users/jaeilepp/following{/other_user}","gists_url":"https://api.github.com/users/jaeilepp/gists{/gist_id}","starred_url":"https://api.github.com/users/jaeilepp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaeilepp/subscriptions","organizations_url":"https://api.github.com/users/jaeilepp/orgs","repos_url":"https://api.github.com/users/jaeilepp/repos","events_url":"https://api.github.com/users/jaeilepp/events{/privacy}","received_events_url":"https://api.github.com/users/jaeilepp/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jaeilepp/mne-python","description":"MNE : Magnetoencephalography (MEG) and Electroencephalography (EEG) in Python","fork":true,"url":"https://api.github.com/repos/jaeilepp/mne-python","forks_url":"https://api.github.com/repos/jaeilepp/mne-python/forks","keys_url":"https://api.github.com/repos/jaeilepp/mne-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jaeilepp/mne-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jaeilepp/mne-python/teams","hooks_url":"https://api.github.com/repos/jaeilepp/mne-python/hooks","issue_events_url":"https://api.github.com/repos/jaeilepp/mne-python/issues/events{/number}","events_url":"https://api.github.com/repos/jaeilepp/mne-python/events","assignees_url":"https://api.github.com/repos/jaeilepp/mne-python/assignees{/user}","branches_url":"https://api.github.com/repos/jaeilepp/mne-python/branches{/branch}","tags_url":"https://api.github.com/repos/jaeilepp/mne-python/tags","blobs_url":"https://api.github.com/repos/jaeilepp/mne-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jaeilepp/mne-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jaeilepp/mne-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/jaeilepp/mne-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jaeilepp/mne-python/statuses/{sha}","languages_url":"https://api.github.com/repos/jaeilepp/mne-python/languages","stargazers_url":"https://api.github.com/repos/jaeilepp/mne-python/stargazers","contributors_url":"https://api.github.com/repos/jaeilepp/mne-python/contributors","subscribers_url":"https://api.github.com/repos/jaeilepp/mne-python/subscribers","subscription_url":"https://api.github.com/repos/jaeilepp/mne-python/subscription","commits_url":"https://api.github.com/repos/jaeilepp/mne-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/jaeilepp/mne-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/jaeilepp/mne-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/jaeilepp/mne-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/jaeilepp/mne-python/contents/{+path}","compare_url":"https://api.github.com/repos/jaeilepp/mne-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jaeilepp/mne-python/merges","archive_url":"https://api.github.com/repos/jaeilepp/mne-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jaeilepp/mne-python/downloads","issues_url":"https://api.github.com/repos/jaeilepp/mne-python/issues{/number}","pulls_url":"https://api.github.com/repos/jaeilepp/mne-python/pulls{/number}","milestones_url":"https://api.github.com/repos/jaeilepp/mne-python/milestones{/number}","notifications_url":"https://api.github.com/repos/jaeilepp/mne-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jaeilepp/mne-python/labels{/name}","releases_url":"https://api.github.com/repos/jaeilepp/mne-python/releases{/id}","deployments_url":"https://api.github.com/repos/jaeilepp/mne-python/deployments","created_at":"2015-05-05T12:24:30Z","updated_at":"2016-02-29T07:08:15Z","pushed_at":"2016-04-06T08:45:32Z","git_url":"git://github.com/jaeilepp/mne-python.git","ssh_url":"git@github.com:jaeilepp/mne-python.git","clone_url":"https://github.com/jaeilepp/mne-python.git","svn_url":"https://github.com/jaeilepp/mne-python","homepage":"http://martinos.org/mne/","size":83802,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mne-tools:master","ref":"master","sha":"f4f302f78486b9e6af99faac072e0ac6cda3b2d2","user":{"login":"mne-tools","id":583875,"avatar_url":"https://avatars.githubusercontent.com/u/583875?v=3","gravatar_id":"","url":"https://api.github.com/users/mne-tools","html_url":"https://github.com/mne-tools","followers_url":"https://api.github.com/users/mne-tools/followers","following_url":"https://api.github.com/users/mne-tools/following{/other_user}","gists_url":"https://api.github.com/users/mne-tools/gists{/gist_id}","starred_url":"https://api.github.com/users/mne-tools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mne-tools/subscriptions","organizations_url":"https://api.github.com/users/mne-tools/orgs","repos_url":"https://api.github.com/users/mne-tools/repos","events_url":"https://api.github.com/users/mne-tools/events{/privacy}","received_events_url":"https://api.github.com/users/mne-tools/received_events","type":"Organization","site_admin":false},"repo":{"id":1301584,"name":"mne-python","full_name":"mne-tools/mne-python","owner":{"login":"mne-tools","id":583875,"avatar_url":"https://avatars.githubusercontent.com/u/583875?v=3","gravatar_id":"","url":"https://api.github.com/users/mne-tools","html_url":"https://github.com/mne-tools","followers_url":"https://api.github.com/users/mne-tools/followers","following_url":"https://api.github.com/users/mne-tools/following{/other_user}","gists_url":"https://api.github.com/users/mne-tools/gists{/gist_id}","starred_url":"https://api.github.com/users/mne-tools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mne-tools/subscriptions","organizations_url":"https://api.github.com/users/mne-tools/orgs","repos_url":"https://api.github.com/users/mne-tools/repos","events_url":"https://api.github.com/users/mne-tools/events{/privacy}","received_events_url":"https://api.github.com/users/mne-tools/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mne-tools/mne-python","description":"MNE : Magnetoencephalography (MEG) and Electroencephalography (EEG) in Python","fork":false,"url":"https://api.github.com/repos/mne-tools/mne-python","forks_url":"https://api.github.com/repos/mne-tools/mne-python/forks","keys_url":"https://api.github.com/repos/mne-tools/mne-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mne-tools/mne-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mne-tools/mne-python/teams","hooks_url":"https://api.github.com/repos/mne-tools/mne-python/hooks","issue_events_url":"https://api.github.com/repos/mne-tools/mne-python/issues/events{/number}","events_url":"https://api.github.com/repos/mne-tools/mne-python/events","assignees_url":"https://api.github.com/repos/mne-tools/mne-python/assignees{/user}","branches_url":"https://api.github.com/repos/mne-tools/mne-python/branches{/branch}","tags_url":"https://api.github.com/repos/mne-tools/mne-python/tags","blobs_url":"https://api.github.com/repos/mne-tools/mne-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mne-tools/mne-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mne-tools/mne-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/mne-tools/mne-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mne-tools/mne-python/statuses/{sha}","languages_url":"https://api.github.com/repos/mne-tools/mne-python/languages","stargazers_url":"https://api.github.com/repos/mne-tools/mne-python/stargazers","contributors_url":"https://api.github.com/repos/mne-tools/mne-python/contributors","subscribers_url":"https://api.github.com/repos/mne-tools/mne-python/subscribers","subscription_url":"https://api.github.com/repos/mne-tools/mne-python/subscription","commits_url":"https://api.github.com/repos/mne-tools/mne-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/mne-tools/mne-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/mne-tools/mne-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/mne-tools/mne-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/mne-tools/mne-python/contents/{+path}","compare_url":"https://api.github.com/repos/mne-tools/mne-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mne-tools/mne-python/merges","archive_url":"https://api.github.com/repos/mne-tools/mne-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mne-tools/mne-python/downloads","issues_url":"https://api.github.com/repos/mne-tools/mne-python/issues{/number}","pulls_url":"https://api.github.com/repos/mne-tools/mne-python/pulls{/number}","milestones_url":"https://api.github.com/repos/mne-tools/mne-python/milestones{/number}","notifications_url":"https://api.github.com/repos/mne-tools/mne-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mne-tools/mne-python/labels{/name}","releases_url":"https://api.github.com/repos/mne-tools/mne-python/releases{/id}","deployments_url":"https://api.github.com/repos/mne-tools/mne-python/deployments","created_at":"2011-01-28T03:31:13Z","updated_at":"2016-04-04T05:38:53Z","pushed_at":"2016-04-06T13:36:15Z","git_url":"git://github.com/mne-tools/mne-python.git","ssh_url":"git@github.com:mne-tools/mne-python.git","clone_url":"https://github.com/mne-tools/mne-python.git","svn_url":"https://github.com/mne-tools/mne-python","homepage":"http://martinos.org/mne/","size":173115,"stargazers_count":187,"watchers_count":187,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":176,"mirror_url":null,"open_issues_count":180,"forks":176,"open_issues":180,"watchers":187,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/2821"},"html":{"href":"https://github.com/mne-tools/mne-python/pull/2821"},"issue":{"href":"https://api.github.com/repos/mne-tools/mne-python/issues/2821"},"comments":{"href":"https://api.github.com/repos/mne-tools/mne-python/issues/2821/comments"},"review_comments":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/2821/comments"},"review_comment":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/2821/commits"},"statuses":{"href":"https://api.github.com/repos/mne-tools/mne-python/statuses/87908db09856e1b6721a9ddbf8a3cff03503b457"}}}}