From 0c9fca5f1fb5068253bdefb6d4be32bafda18b98 Mon Sep 17 00:00:00 2001 From: Circle Ci Date: Thu, 7 Dec 2023 17:20:29 +0000 Subject: [PATCH] doc updates [skip ci] --- dev/.buildinfo | 2 +- .../read_bids_datasets.ipynb | 2 +- .../auto_examples_python.zip | Bin 101261 -> 100936 bytes .../convert_eeg_to_bids.ipynb | 4 +- .../convert_group_studies.py | 2 +- .../convert_group_studies.ipynb | 2 +- .../mark_bad_channels.py | 5 +- .../convert_mne_sample.ipynb | 6 +- .../convert_empty_room.ipynb | 2 +- .../read_bids_datasets.py | 9 +- .../update_bids_datasets.ipynb | 2 +- .../anonymize_dataset.ipynb | 2 +- .../auto_examples_jupyter.zip | Bin 155782 -> 155407 bytes .../convert_mne_sample.py | 18 +- .../update_bids_datasets.py | 4 +- .../convert_mri_and_trans.ipynb | 2 +- .../convert_nirs_to_bids.py | 4 +- .../convert_ieeg_to_bids.py | 49 +- .../convert_mri_and_trans.py | 12 +- .../convert_nirs_to_bids.ipynb | 4 +- .../convert_eeg_to_bids.py | 4 +- .../mark_bad_channels.ipynb | 2 +- .../convert_ieeg_to_bids.ipynb | 10 +- .../anonymize_dataset.py | 8 +- .../convert_empty_room.py | 3 +- dev/_modules/mne_bids/copyfiles.html | 20 +- dev/_modules/mne_bids/dig.html | 26 +- dev/_modules/mne_bids/inspect.html | 10 +- dev/_modules/mne_bids/path.html | 34 +- dev/_modules/mne_bids/read.html | 29 +- dev/_modules/mne_bids/report/_report.html | 17 +- dev/_modules/mne_bids/sidecar_updates.html | 14 +- dev/_modules/mne_bids/utils.html | 10 +- dev/_modules/mne_bids/write.html | 123 +- dev/auto_examples/anonymize_dataset.html | 70 +- dev/auto_examples/bidspath.html | 2 +- dev/auto_examples/convert_eeg_to_bids.html | 1059 +---------------- dev/auto_examples/convert_empty_room.html | 9 +- dev/auto_examples/convert_group_studies.html | 10 +- dev/auto_examples/convert_ieeg_to_bids.html | 240 +--- dev/auto_examples/convert_mne_sample.html | 24 +- dev/auto_examples/convert_mri_and_trans.html | 14 +- dev/auto_examples/convert_nirs_to_bids.html | 21 +- dev/auto_examples/mark_bad_channels.html | 7 +- dev/auto_examples/read_bids_datasets.html | 817 +------------ .../rename_brainvision_files.html | 2 +- dev/auto_examples/sg_execution_times.html | 48 +- dev/auto_examples/update_bids_datasets.html | 126 +- dev/searchindex.js | 2 +- dev/sg_execution_times.html | 48 +- 50 files changed, 404 insertions(+), 2536 deletions(-) diff --git a/dev/.buildinfo b/dev/.buildinfo index 4cfedd799..ac94bc8da 100644 --- a/dev/.buildinfo +++ b/dev/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: cdc81cce15090a1726205caf1398f763 +config: a45f11a6cfb1de791052d41fb2dfb979 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/dev/_downloads/07841a9269d1816a3add41f32d8a5ed2/read_bids_datasets.ipynb b/dev/_downloads/07841a9269d1816a3add41f32d8a5ed2/read_bids_datasets.ipynb index 684edba0b..869fe8e04 100644 --- a/dev/_downloads/07841a9269d1816a3add41f32d8a5ed2/read_bids_datasets.ipynb +++ b/dev/_downloads/07841a9269d1816a3add41f32d8a5ed2/read_bids_datasets.ipynb @@ -33,7 +33,7 @@ }, "outputs": [], "source": [ - "import os\nimport os.path as op\nimport openneuro\n\nfrom mne.datasets import sample\nfrom mne_bids import (\n BIDSPath,\n read_raw_bids,\n print_dir_tree,\n make_report,\n find_matching_paths,\n get_entity_vals,\n)" + "import os\nimport os.path as op\n\nimport openneuro\nfrom mne.datasets import sample\n\nfrom mne_bids import (\n BIDSPath,\n find_matching_paths,\n get_entity_vals,\n make_report,\n print_dir_tree,\n read_raw_bids,\n)" ] }, { diff --git a/dev/_downloads/07fcc19ba03226cd3d83d4e40ec44385/auto_examples_python.zip b/dev/_downloads/07fcc19ba03226cd3d83d4e40ec44385/auto_examples_python.zip index 73ca295d9a44b722ec514133403485426dc4388a..495342e2bac52af6d09135377831d96dfd414085 100644 GIT binary patch delta 1863 zcmcgsZA@EL7{2dqQ?a8!X=!OG_EJ7dX~R-nh`@|4ZVMFC!Dg~4G_}xMDXzEmQcAQj zf{8*)5ZRfWVivO)Ke7akcrit%fn-KUm?l#bL$+k%mdt60oAKAOC7xT>*1Mtp^CqYF zr1!kfc|V@#nZk;*#}yS_oie$W5}#+20vawC8rzmmh@r`jXqE(-Dp?96esvao7 zZ@8hP#KDa4!6@tHeIwq!pnnLz9tS5X3HXISWHvQEZvqQ`qzueRH##qQG)Rr*h;aQ(QTZ7Q=+O1c05wM#l7iLooMWuv!-wyeIRV|bRRt))y1>NXV zG~JyP_?LCXr9J}JRTbBK)lE_2(o^`g1Q-Ni=6wa?SWW$%8o6Mfua7;-_=Xs=&8E){ zha%5s{)?bw%7$e!sK^vC{fQ36<}8@r38hHwG9tN4gPP||C@`l(Wu!ryDW&ky+>+T4 zupDIj!!ed;{Y-y2%=?3!FUqzuadh$7U^=ubr5n4YhgIpi#gcGM{iktp^eU$fcL#@4BJhN%)v1Z;@Pa_{5=KS>! z+A>$8Q)_MLmo+Oov{rh5Hj_9qovW~A0~}0<4|+pf&>PKx*lc+i3u4dx@b8uH+OC9r zR?{3*Y7q9--srjF;H2(Y&t#T29&G*U=Y7IoO!h2UXgs0=sl)fqh=a$OTMCBuLylj9L+T%#8jId0LBsih!CihGVo0bc9in@?~ zp%P3Ae5x7@Ejd}U+wfc&;KLyzd6v0zY(SJ~H0&iK7e!o!CR6n}Az*hL6u4j~6yjqw zBx|+ZC{jPYQUfbBDnH5KTG`F@hGL3pNKbV@OpfJl7|bi$?2uT%(A~C{e%B2xN}5fk ze>wuOa&dFyIhauth&Hh?wW&+r7=bpK*ljVDJ?L^unj;>CiwX&_tB=aRRmV!66-Y zvZVR$06`Sj4hit|VZ4z91DPzol>`%gUj!Q`NmO>g3j|kO(sbU8Vb3HqD8^m|g7z0j C`BeG< delta 1965 zcmcIkZA@EL7(VZ9E!a^?rQZ~LcZ-ZtMC<&3Et}aK3tw(zXto4MccIr&M{mn*0gKy^ zCBm2)gPhI7oHI*|KQxQRT#~w&Y{V@?sYa$4=K_HRfApW@hw+D-dT!Zj?y{+WJjuzu z=j45#_v1Y8^W_QMF`_GKYS3uSNLfSu!@EyR-F(YoLrB>+a&8Emc$!~_2iEC6ZU3Gr z>ytupAt3R6f%Z@^R>5wq+t%E~$2%+7s1y?8fnZ1q#3ezH+cXzU8cyQKu_7qJHwRL3 zuC)PjyJ-mRShG!Tv7Kk|%k@TF;4CJ!9xxM2KbT~}c{R^)fErET_+VkW7@=wTg>`Rg z^r3JxBE{LTC}6k7ir+|^AIhYHr_vVugl{vBZ8Kq`&nh4EO*#x?iQ(N>escX$D^n{uvgbGxA6L8ts2?!-BBl$hJYgIgntO?fvrp!&YN{3$607>Bjr>yAYb+B_AKZ ztka7<;b?;8W2{JyC%~RBhT8ddp(}F}YR97!-hb?bix>HLg`TBrpAZiyr$84k2E)9x zKZbYKTX6F!mX!8`8OKgp@vR9LUYfAWAD;Tmjeq;ff=x44S2N!$1lf*AL<)wezpz0; zV_%Oc*SKM(7+?I_;o&+u1JOu~Yir>eYj(WE`nk5%u!?QQbQ7LkvO6DW=apB^TOivR zN)R{MWQH7h$LHflyfkArNJ2-XSCE9@!B&yOV#%9lZi@!_F-RX!I zKR@GDiY|R%G3sdlQg`(?{=)wW`u5TQW4KP)YN*M%TN<8IH{R+-s8#;<)+H@D3*aQ<30SX8OAfwP=ei$4Dy=6i z3{>Kwbbf|jq<{e@cyXJ?pG+~}S4n|8Nnd)8_TdaqmEMt)cBr;wj%^hz>tV%6H@|_c zdFDxfa@GzPnY%oB&#;{i%_Y0^`+^Ulg=CcrT)H)X4^5Oba^0YzGPi3^lHh4M%e${JrJxU z@WE_DAFPPUy)Qzwp6TvSp56_;cIBrq3gf!mjWiHD5r*WsUf8I)Uxwt@1Z=s}%>z^= z^9(AbChrVEmHV!;eoXUKHr4O!njG9gR)(O|tx{I1uB*DgYBxFPC(jOp$E{LNs-TuE z4nmWI<>a+tC}CBi$RcD_8J*KsIiu76%VIu4$}Unlyh8pQhH|%B z6YnkJ5UD)^rL2nKl;!Foj{i(Xj{wK2$V>^Xu43*snLPrYwJJVQPT5sibrb{H>;eaQ zd<62=su)2#tVZmu1G2LgtRzZp>Fbh1Bj94@_K$uEqDE~By(aqvWZIO+bb?eG{bO-C*(%wc4 zL+lqZBO?07JbV#_g?|zz>os1Ch!`|8M&<~{pui#;5O6^FVvGp--VF|_#Kic)H+g#R z^`84Zf8O8oyO%$i`r47H&OnnX$I57H-N5EmR~>#e>0ubnO5tb-my@Y)3&T5K$${ew zaULwXh6)Nec6~yS`EVk#KD=6pCY7N1OgS8KqIZ??+2f`>o&xPID>N%Q2_R6JX zge!tYjku7!#MzZ^xh|VU3wG;drr2A}FkZ#~q}>c>r{R1OK2=CI`CR1u+CnmInVk&z znqY4;o~~3Z>z`xs(YHn_4ld|DkdcG@k?Y2^?3p?dIKj3&{BFU5fAcJ0=_)P%e*cvKB=tqWdCAFBTX^vr-16 zc3egq8&htbKV^oR7Gx{FU4l|yE4-hPY48E znM2-~FzT?Ak0;8>^@$Ra_LacFW_nn`G+L+ZxniD&)&N(J9R9c@%8?jfU!(P-M@kB^ zAc@H;Z>y)XOS|{9wR)B}_*b%Zp0yh1d-&ZTi2|2FbaG)WiQeHG$7gC57e5cgMCn$`Zh=|E0G{6RZSKsQ5kP1VqX=#i%N2p4rJhQEbUY{E(&4U z_|NOTCrTv*>d=|n{R#eu{yduyVp=l)szqznP4m%Dw*N2u2TiCWN2k0m{(fk{%`gM1 zJAhodaI68lbiTp%7Ub6ERv$z4!xrRZXFfwI9lOzT{cAcTn%Nl!Znk3w8HvYKVLiH( zL%#ZXibm`_SkaH1Wd4MWTpldEJC?9~BXYt+jks9DCdYgWbo?AHBzoyoZ3DjvO;P{Y zh=yJISgDb>P^TG2ccCS?jZmh8z2RvldQwE3H zaDGLW$Woy#(RF_ECzGm$KpS?mS(-X|mWEpR?v|qQNKguO z2b-ed4vu}fwt8!QDBjAkF)1pzM_t9!YD$z( zim#^PjXto-usmBn#--u8QCKJ=m!*tztvQy1)Ns?$&rcSXFifHHN>#3DPP8p1N^!PL zh{!=MU*_ZUv2{BvkgwNlluy=p6lZPE^I2c_9NO_g`tgFfeumL{E`v^-L`L=YmKlE@3VD***^h|AOcX@I7IOd*pG#ItZX2CYg(=a9!zNs;~jk!{Ou z>ixFz=#>8%=y>UjQanvZ9VqK=4W^I{y~=lA?YCx%)bXplpjyp zV=?3%rXLSlW2k)=*a@ z%r=Xn6pjj^c%(v`X8Ss{X*4YbC!Y3$-Oan2TZ1vNgLefQc-N-&b=z1!9dk)H+7f-m z8vMx*xz49sdvGWQyLE`_c{_|ik~rC0a3MKq&V%7>4fwo_xD*mPDkx(7!Us$6wKB-S zKYid{qW>tTSo8sf;*-QqA?$v^^A9GRSPH8#w+y%j4W1}PTj&P&tPx_qJ=&nf7ZtkP z^eZgJ-MW)m&N#MBiU!++XfQr&*5i3HhzCc?;Ev8Q-ta*w{^0|!&Y1V<92g)y18G+s zBvU<64&UVbe?e90RoInkc|Z$rsA?P!7g6C*@7F=TdAhu`a>eU?kc%bTp-Ao74!LaR zw{(HKJ8PIJr&3d{p6&#}gn517z=4ZkmnVKmMQ=5+V`Co_$%P5sK^?Y?!hF3_QKqJ< zYai4)XC=sA2xissJ_Jk|dIoDmV)qbK<|I=wz_DxrD~Ro(3U>YSGQT=D1izAL2gT}_ zXW%BWG|-a#?3ZKV`)e8IzIyH~K>FO7l8oWtMJSl6!a@yUIzG4vi}9@l*l^bN<%X;oMK2&-(Qy;qe?#KLKVem}WvN#CID=N7Y5t$dLzHBEuDv8E(%m47Ss z%!;x80nFz~F>4T8D!BF;8)mG3{FIzH<-j+2GLNb#zQdC|xQFL?QtC8{>64g)_#00# z8*-KAs}b}3dR!MEg{(0_wJT+&jrHH`!UF+Pw8W4qG+ii9(`~Gui~xRo7V_{>fXrhJ zXHL)E=yA~_v^J6=dTO}3k>ruPW_(?H)9=07d$Jr)(EsezVP2u3v~G+zxDM|$l2Y?= Io=_Zr1M*mViU0rr diff --git a/dev/_downloads/86851480108d4b249520df3993b0222b/convert_mne_sample.py b/dev/_downloads/86851480108d4b249520df3993b0222b/convert_mne_sample.py index 8efc60efa..99174d971 100644 --- a/dev/_downloads/86851480108d4b249520df3993b0222b/convert_mne_sample.py +++ b/dev/_downloads/86851480108d4b249520df3993b0222b/convert_mne_sample.py @@ -29,20 +29,20 @@ import json import os.path as op -from pprint import pprint import shutil +from pprint import pprint import mne from mne.datasets import sample from mne_bids import ( - write_raw_bids, + BIDSPath, + make_dataset_description, + print_dir_tree, read_raw_bids, write_meg_calibration, write_meg_crosstalk, - BIDSPath, - print_dir_tree, - make_dataset_description, + write_raw_bids, ) from mne_bids.stats import count_events @@ -180,7 +180,7 @@ # for mne-bids. If you are preparing a manuscript, please make sure to also # cite MNE-BIDS there. readme = op.join(output_path, "README") -with open(readme, "r", encoding="utf-8-sig") as fid: +with open(readme, encoding="utf-8-sig") as fid: text = fid.read() print(text) @@ -209,9 +209,7 @@ Alexandre Gramfort, Mainak Jas, and Stefan Appelhoff prepared and updated the \ data in BIDS format.""", data_license="CC0", - ethics_approvals=[ - "Human Subjects Division at the University of Washington" - ], # noqa: E501 + ethics_approvals=["Human Subjects Division at the University of Washington"], funding=[ "NIH 5R01EB009048", "NIH 1R01EB009048", @@ -234,7 +232,7 @@ overwrite=True, ) desc_json_path = bids_path.root / "dataset_description.json" -with open(desc_json_path, "r", encoding="utf-8-sig") as fid: +with open(desc_json_path, encoding="utf-8-sig") as fid: pprint(json.loads(fid.read())) # %% diff --git a/dev/_downloads/8a652dc37d1d38cf986f15eab46d0f7d/update_bids_datasets.py b/dev/_downloads/8a652dc37d1d38cf986f15eab46d0f7d/update_bids_datasets.py index 6b0ae077d..667e721c3 100644 --- a/dev/_downloads/8a652dc37d1d38cf986f15eab46d0f7d/update_bids_datasets.py +++ b/dev/_downloads/8a652dc37d1d38cf986f15eab46d0f7d/update_bids_datasets.py @@ -22,10 +22,10 @@ from mne.datasets import somato from mne_bids import ( - read_raw_bids, find_matching_paths, - print_dir_tree, make_report, + print_dir_tree, + read_raw_bids, update_sidecar_json, ) diff --git a/dev/_downloads/9160181635ad137cb4a8a5779295596c/convert_mri_and_trans.ipynb b/dev/_downloads/9160181635ad137cb4a8a5779295596c/convert_mri_and_trans.ipynb index 39ecbee66..09661b906 100644 --- a/dev/_downloads/9160181635ad137cb4a8a5779295596c/convert_mri_and_trans.ipynb +++ b/dev/_downloads/9160181635ad137cb4a8a5779295596c/convert_mri_and_trans.ipynb @@ -33,7 +33,7 @@ }, "outputs": [], "source": [ - "import os.path as op\nimport shutil\n\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nfrom nilearn.plotting import plot_anat\n\nimport mne\nfrom mne.datasets import sample\nfrom mne import head_to_mri\n\nfrom mne_bids import (\n write_raw_bids,\n BIDSPath,\n write_anat,\n get_anat_landmarks,\n get_head_mri_trans,\n print_dir_tree,\n)" + "import os.path as op\nimport shutil\n\nimport matplotlib.pyplot as plt\nimport mne\nimport numpy as np\nfrom mne import head_to_mri\nfrom mne.datasets import sample\nfrom nilearn.plotting import plot_anat\n\nfrom mne_bids import (\n BIDSPath,\n get_anat_landmarks,\n get_head_mri_trans,\n print_dir_tree,\n write_anat,\n write_raw_bids,\n)" ] }, { diff --git a/dev/_downloads/9e546b1b08e67ca7572c8e76f5992643/convert_nirs_to_bids.py b/dev/_downloads/9e546b1b08e67ca7572c8e76f5992643/convert_nirs_to_bids.py index 2b80e5c5c..a18aa6f3f 100644 --- a/dev/_downloads/9e546b1b08e67ca7572c8e76f5992643/convert_nirs_to_bids.py +++ b/dev/_downloads/9e546b1b08e67ca7572c8e76f5992643/convert_nirs_to_bids.py @@ -31,7 +31,7 @@ import mne from mne_nirs import datasets # For convenient downloading of example data -from mne_bids import write_raw_bids, BIDSPath, print_dir_tree +from mne_bids import BIDSPath, print_dir_tree, write_raw_bids from mne_bids.stats import count_events # %% @@ -172,7 +172,7 @@ # If you are preparing a manuscript, please make sure to also cite MNE-BIDS # there. readme = op.join(bids_root, "README") -with open(readme, "r", encoding="utf-8-sig") as fid: +with open(readme, encoding="utf-8-sig") as fid: text = fid.read() print(text) diff --git a/dev/_downloads/a577037ece7a732b0607a269316e55b8/convert_ieeg_to_bids.py b/dev/_downloads/a577037ece7a732b0607a269316e55b8/convert_ieeg_to_bids.py index 659dbd886..bf0cf5a2b 100644 --- a/dev/_downloads/a577037ece7a732b0607a269316e55b8/convert_ieeg_to_bids.py +++ b/dev/_downloads/a577037ece7a732b0607a269316e55b8/convert_ieeg_to_bids.py @@ -50,24 +50,24 @@ # %% import os.path as op -import numpy as np import shutil +import mne import nibabel as nib +import numpy as np from nilearn.plotting import plot_anat -import mne from mne_bids import ( BIDSPath, - write_raw_bids, - write_anat, + convert_montage_to_mri, + convert_montage_to_ras, get_anat_landmarks, + print_dir_tree, read_raw_bids, search_folder_for_text, - print_dir_tree, template_to_head, - convert_montage_to_ras, - convert_montage_to_mri, + write_anat, + write_raw_bids, ) # %% @@ -289,11 +289,8 @@ # compare with standard print( - "Recovered coordinate: {recovered}\n" - "Saved coordinate: {saved}".format( - recovered=montage2.get_positions()["ch_pos"]["LENT 1"], - saved=montage.get_positions()["ch_pos"]["LENT 1"], - ) + f"Recovered coordinate: {montage2.get_positions()['ch_pos']['LENT 1']}\n" + f"Saved coordinate: {montage.get_positions()['ch_pos']['LENT 1']}" ) # %% @@ -303,7 +300,7 @@ # If you are preparing a manuscript, please make sure to also cite MNE-BIDS # there. readme = op.join(bids_root, "README") -with open(readme, "r", encoding="utf-8-sig") as fid: +with open(readme, encoding="utf-8-sig") as fid: text = fid.read() print(text) @@ -397,13 +394,11 @@ # check difference in trans print( - "Recovered trans:\n{recovered}\n" - "Original trans:\n{original}".format( - recovered=trans2["trans"].round(3), - # combine head->mri with mri->mni to get head->mni - # and then invert to get mni->head - original=np.linalg.inv(np.dot(trans["trans"], mri_mni_t["trans"])).round(3), - ) + f"Recovered trans:\n{trans2['trans'].round(3)}\n" + # combine head->mri with mri->mni to get head->mni + # and then invert to get mni->head + "Original trans:\n" + f"{np.linalg.inv(np.dot(trans['trans'], mri_mni_t['trans'])).round(3)}" ) # ensure that the data in MNI coordinates is exactly the same @@ -411,11 +406,8 @@ montage2 = raw2.get_montage() # get montage after transformed back to head montage2.apply_trans(trans2) print( - "Recovered coordinate: {recovered}\n" - "Original coordinate: {original}".format( - recovered=montage2.get_positions()["ch_pos"]["LENT 1"], - original=montage.get_positions()["ch_pos"]["LENT 1"], - ) + f"Recovered coordinate: {montage2.get_positions()['ch_pos']['LENT 1']}\n" + f"Original coordinate: {montage.get_positions()['ch_pos']['LENT 1']}" ) # %% @@ -521,11 +513,8 @@ montage2 = raw2.get_montage() # get montage after transformed back to head montage2.apply_trans(trans2) # apply trans to go back to 'mri' print( - "Recovered coordinate: {recovered}\n" - "Original coordinate: {original}".format( - recovered=montage2.get_positions()["ch_pos"]["LENT 1"], - original=montage.get_positions()["ch_pos"]["LENT 1"], - ) + f"Recovered coordinate: {montage2.get_positions()['ch_pos']['LENT 1']}\n" + f"Original coordinate: {montage.get_positions()['ch_pos']['LENT 1']}" ) # %% diff --git a/dev/_downloads/b143d969421db5e73a9339985e158e7a/convert_mri_and_trans.py b/dev/_downloads/b143d969421db5e73a9339985e158e7a/convert_mri_and_trans.py index a6a0e1310..cef828146 100644 --- a/dev/_downloads/b143d969421db5e73a9339985e158e7a/convert_mri_and_trans.py +++ b/dev/_downloads/b143d969421db5e73a9339985e158e7a/convert_mri_and_trans.py @@ -40,22 +40,20 @@ import os.path as op import shutil -import numpy as np import matplotlib.pyplot as plt - -from nilearn.plotting import plot_anat - import mne -from mne.datasets import sample +import numpy as np from mne import head_to_mri +from mne.datasets import sample +from nilearn.plotting import plot_anat from mne_bids import ( - write_raw_bids, BIDSPath, - write_anat, get_anat_landmarks, get_head_mri_trans, print_dir_tree, + write_anat, + write_raw_bids, ) # %% diff --git a/dev/_downloads/b666106ea850b55fb6bc69db6fdda679/convert_nirs_to_bids.ipynb b/dev/_downloads/b666106ea850b55fb6bc69db6fdda679/convert_nirs_to_bids.ipynb index 409472771..f175c9d7f 100644 --- a/dev/_downloads/b666106ea850b55fb6bc69db6fdda679/convert_nirs_to_bids.ipynb +++ b/dev/_downloads/b666106ea850b55fb6bc69db6fdda679/convert_nirs_to_bids.ipynb @@ -33,7 +33,7 @@ }, "outputs": [], "source": [ - "import os.path as op\nimport pathlib\nimport shutil\n\nimport mne\nfrom mne_nirs import datasets # For convenient downloading of example data\n\nfrom mne_bids import write_raw_bids, BIDSPath, print_dir_tree\nfrom mne_bids.stats import count_events" + "import os.path as op\nimport pathlib\nimport shutil\n\nimport mne\nfrom mne_nirs import datasets # For convenient downloading of example data\n\nfrom mne_bids import BIDSPath, print_dir_tree, write_raw_bids\nfrom mne_bids.stats import count_events" ] }, { @@ -231,7 +231,7 @@ }, "outputs": [], "source": [ - "readme = op.join(bids_root, \"README\")\nwith open(readme, \"r\", encoding=\"utf-8-sig\") as fid:\n text = fid.read()\nprint(text)" + "readme = op.join(bids_root, \"README\")\nwith open(readme, encoding=\"utf-8-sig\") as fid:\n text = fid.read()\nprint(text)" ] }, { diff --git a/dev/_downloads/b7d549fc992398180d012ad4f3a73e8d/convert_eeg_to_bids.py b/dev/_downloads/b7d549fc992398180d012ad4f3a73e8d/convert_eeg_to_bids.py index 54019b3eb..c207a3a7a 100644 --- a/dev/_downloads/b7d549fc992398180d012ad4f3a73e8d/convert_eeg_to_bids.py +++ b/dev/_downloads/b7d549fc992398180d012ad4f3a73e8d/convert_eeg_to_bids.py @@ -34,7 +34,7 @@ import mne from mne.datasets import eegbci -from mne_bids import write_raw_bids, BIDSPath, print_dir_tree +from mne_bids import BIDSPath, print_dir_tree, write_raw_bids from mne_bids.stats import count_events # %% @@ -221,7 +221,7 @@ # If you are preparing a manuscript, please make sure to also cite MNE-BIDS # there. readme = op.join(bids_root, "README") -with open(readme, "r", encoding="utf-8-sig") as fid: +with open(readme, encoding="utf-8-sig") as fid: text = fid.read() print(text) diff --git a/dev/_downloads/bcdfe0d0e220cf6da56beb8f9163c326/mark_bad_channels.ipynb b/dev/_downloads/bcdfe0d0e220cf6da56beb8f9163c326/mark_bad_channels.ipynb index e8376ec87..e0c619401 100644 --- a/dev/_downloads/bcdfe0d0e220cf6da56beb8f9163c326/mark_bad_channels.ipynb +++ b/dev/_downloads/bcdfe0d0e220cf6da56beb8f9163c326/mark_bad_channels.ipynb @@ -33,7 +33,7 @@ }, "outputs": [], "source": [ - "import os.path as op\nimport shutil\n\nimport mne\nfrom mne_bids import (\n BIDSPath,\n write_raw_bids,\n read_raw_bids,\n inspect_dataset,\n mark_channels,\n)\n\ndata_path = mne.datasets.sample.data_path()\nraw_fname = op.join(data_path, \"MEG\", \"sample\", \"sample_audvis_raw.fif\")\nevents_fname = op.join(data_path, \"MEG\", \"sample\", \"sample_audvis_raw-eve.fif\")\nevent_id = {\n \"Auditory/Left\": 1,\n \"Auditory/Right\": 2,\n \"Visual/Left\": 3,\n \"Visual/Right\": 4,\n \"Smiley\": 5,\n \"Button\": 32,\n}\nbids_root = op.join(data_path, \"..\", \"MNE-sample-data-bids\")\nbids_path = BIDSPath(\n subject=\"01\", session=\"01\", task=\"audiovisual\", run=\"01\", root=bids_root\n)" + "import os.path as op\nimport shutil\n\nimport mne\n\nfrom mne_bids import (\n BIDSPath,\n inspect_dataset,\n mark_channels,\n read_raw_bids,\n write_raw_bids,\n)\n\ndata_path = mne.datasets.sample.data_path()\nraw_fname = op.join(data_path, \"MEG\", \"sample\", \"sample_audvis_raw.fif\")\nevents_fname = op.join(data_path, \"MEG\", \"sample\", \"sample_audvis_raw-eve.fif\")\nevent_id = {\n \"Auditory/Left\": 1,\n \"Auditory/Right\": 2,\n \"Visual/Left\": 3,\n \"Visual/Right\": 4,\n \"Smiley\": 5,\n \"Button\": 32,\n}\nbids_root = op.join(data_path, \"..\", \"MNE-sample-data-bids\")\nbids_path = BIDSPath(\n subject=\"01\", session=\"01\", task=\"audiovisual\", run=\"01\", root=bids_root\n)" ] }, { diff --git a/dev/_downloads/cf640e6bfa39f55978e620ef4269fd4c/convert_ieeg_to_bids.ipynb b/dev/_downloads/cf640e6bfa39f55978e620ef4269fd4c/convert_ieeg_to_bids.ipynb index 952b1d772..0e62348c9 100644 --- a/dev/_downloads/cf640e6bfa39f55978e620ef4269fd4c/convert_ieeg_to_bids.ipynb +++ b/dev/_downloads/cf640e6bfa39f55978e620ef4269fd4c/convert_ieeg_to_bids.ipynb @@ -26,7 +26,7 @@ }, "outputs": [], "source": [ - "import os.path as op\nimport numpy as np\nimport shutil\n\nimport nibabel as nib\nfrom nilearn.plotting import plot_anat\n\nimport mne\nfrom mne_bids import (\n BIDSPath,\n write_raw_bids,\n write_anat,\n get_anat_landmarks,\n read_raw_bids,\n search_folder_for_text,\n print_dir_tree,\n template_to_head,\n convert_montage_to_ras,\n convert_montage_to_mri,\n)" + "import os.path as op\nimport shutil\n\nimport mne\nimport nibabel as nib\nimport numpy as np\nfrom nilearn.plotting import plot_anat\n\nfrom mne_bids import (\n BIDSPath,\n convert_montage_to_mri,\n convert_montage_to_ras,\n get_anat_landmarks,\n print_dir_tree,\n read_raw_bids,\n search_folder_for_text,\n template_to_head,\n write_anat,\n write_raw_bids,\n)" ] }, { @@ -213,7 +213,7 @@ }, "outputs": [], "source": [ - "montage2 = raw2.get_montage()\n\n# we need to go from scanner RAS back to surface RAS (requires recon-all)\nconvert_montage_to_mri(montage2, \"sample_seeg\", subjects_dir=subjects_dir)\n\n# this uses Freesurfer recon-all subject directory\nmontage2.add_estimated_fiducials(\"sample_seeg\", subjects_dir=subjects_dir)\n\n# get head->mri trans, invert from mri->head\ntrans2 = mne.transforms.invert_transform(mne.channels.compute_native_head_t(montage2))\n\n# now the montage is properly in \"head\" and ready for analysis in MNE\nraw2.set_montage(montage2)\n\n# get the monage, apply the trans and make sure it's the same\n# note: the head coordinates may differ because they are defined by\n# the fiducials which are estimated; as long as the head->mri trans\n# is computed with the same fiducials, the coordinates will be the same\n# in ACPC space which is what matters\nmontage = raw.get_montage() # the original montage in 'head' coordinates\nmontage.apply_trans(trans)\nmontage2 = raw2.get_montage() # the recovered montage in 'head' coordinates\nmontage2.apply_trans(trans2)\n\n# compare with standard\nprint(\n \"Recovered coordinate: {recovered}\\n\"\n \"Saved coordinate: {saved}\".format(\n recovered=montage2.get_positions()[\"ch_pos\"][\"LENT 1\"],\n saved=montage.get_positions()[\"ch_pos\"][\"LENT 1\"],\n )\n)" + "montage2 = raw2.get_montage()\n\n# we need to go from scanner RAS back to surface RAS (requires recon-all)\nconvert_montage_to_mri(montage2, \"sample_seeg\", subjects_dir=subjects_dir)\n\n# this uses Freesurfer recon-all subject directory\nmontage2.add_estimated_fiducials(\"sample_seeg\", subjects_dir=subjects_dir)\n\n# get head->mri trans, invert from mri->head\ntrans2 = mne.transforms.invert_transform(mne.channels.compute_native_head_t(montage2))\n\n# now the montage is properly in \"head\" and ready for analysis in MNE\nraw2.set_montage(montage2)\n\n# get the monage, apply the trans and make sure it's the same\n# note: the head coordinates may differ because they are defined by\n# the fiducials which are estimated; as long as the head->mri trans\n# is computed with the same fiducials, the coordinates will be the same\n# in ACPC space which is what matters\nmontage = raw.get_montage() # the original montage in 'head' coordinates\nmontage.apply_trans(trans)\nmontage2 = raw2.get_montage() # the recovered montage in 'head' coordinates\nmontage2.apply_trans(trans2)\n\n# compare with standard\nprint(\n f\"Recovered coordinate: {montage2.get_positions()['ch_pos']['LENT 1']}\\n\"\n f\"Saved coordinate: {montage.get_positions()['ch_pos']['LENT 1']}\"\n)" ] }, { @@ -231,7 +231,7 @@ }, "outputs": [], "source": [ - "readme = op.join(bids_root, \"README\")\nwith open(readme, \"r\", encoding=\"utf-8-sig\") as fid:\n text = fid.read()\nprint(text)" + "readme = op.join(bids_root, \"README\")\nwith open(readme, encoding=\"utf-8-sig\") as fid:\n text = fid.read()\nprint(text)" ] }, { @@ -303,7 +303,7 @@ }, "outputs": [], "source": [ - "# check that we can recover the coordinates\nprint(\n \"Recovered coordinate head: {recovered}\\n\"\n \"Original coordinate head: {original}\".format(\n recovered=raw2.info[\"chs\"][0][\"loc\"][:3], original=raw.info[\"chs\"][0][\"loc\"][:3]\n )\n)\n\n# check difference in trans\nprint(\n \"Recovered trans:\\n{recovered}\\n\"\n \"Original trans:\\n{original}\".format(\n recovered=trans2[\"trans\"].round(3),\n # combine head->mri with mri->mni to get head->mni\n # and then invert to get mni->head\n original=np.linalg.inv(np.dot(trans[\"trans\"], mri_mni_t[\"trans\"])).round(3),\n )\n)\n\n# ensure that the data in MNI coordinates is exactly the same\n# (within computer precision)\nmontage2 = raw2.get_montage() # get montage after transformed back to head\nmontage2.apply_trans(trans2)\nprint(\n \"Recovered coordinate: {recovered}\\n\"\n \"Original coordinate: {original}\".format(\n recovered=montage2.get_positions()[\"ch_pos\"][\"LENT 1\"],\n original=montage.get_positions()[\"ch_pos\"][\"LENT 1\"],\n )\n)" + "# check that we can recover the coordinates\nprint(\n \"Recovered coordinate head: {recovered}\\n\"\n \"Original coordinate head: {original}\".format(\n recovered=raw2.info[\"chs\"][0][\"loc\"][:3], original=raw.info[\"chs\"][0][\"loc\"][:3]\n )\n)\n\n# check difference in trans\nprint(\n f\"Recovered trans:\\n{trans2['trans'].round(3)}\\n\"\n # combine head->mri with mri->mni to get head->mni\n # and then invert to get mni->head\n \"Original trans:\\n\"\n f\"{np.linalg.inv(np.dot(trans['trans'], mri_mni_t['trans'])).round(3)}\"\n)\n\n# ensure that the data in MNI coordinates is exactly the same\n# (within computer precision)\nmontage2 = raw2.get_montage() # get montage after transformed back to head\nmontage2.apply_trans(trans2)\nprint(\n f\"Recovered coordinate: {montage2.get_positions()['ch_pos']['LENT 1']}\\n\"\n f\"Original coordinate: {montage.get_positions()['ch_pos']['LENT 1']}\"\n)" ] }, { @@ -364,7 +364,7 @@ }, "outputs": [], "source": [ - "montage2 = raw2.get_montage() # get montage after transformed back to head\nmontage2.apply_trans(trans2) # apply trans to go back to 'mri'\nprint(\n \"Recovered coordinate: {recovered}\\n\"\n \"Original coordinate: {original}\".format(\n recovered=montage2.get_positions()[\"ch_pos\"][\"LENT 1\"],\n original=montage.get_positions()[\"ch_pos\"][\"LENT 1\"],\n )\n)" + "montage2 = raw2.get_montage() # get montage after transformed back to head\nmontage2.apply_trans(trans2) # apply trans to go back to 'mri'\nprint(\n f\"Recovered coordinate: {montage2.get_positions()['ch_pos']['LENT 1']}\\n\"\n f\"Original coordinate: {montage.get_positions()['ch_pos']['LENT 1']}\"\n)" ] }, { diff --git a/dev/_downloads/d5b79ff106a037057e89cb5616b1b839/anonymize_dataset.py b/dev/_downloads/d5b79ff106a037057e89cb5616b1b839/anonymize_dataset.py index 3760d4078..af821c774 100644 --- a/dev/_downloads/d5b79ff106a037057e89cb5616b1b839/anonymize_dataset.py +++ b/dev/_downloads/d5b79ff106a037057e89cb5616b1b839/anonymize_dataset.py @@ -24,15 +24,17 @@ # %% import shutil from pathlib import Path + import mne + from mne_bids import ( BIDSPath, - write_raw_bids, + anonymize_dataset, + print_dir_tree, write_anat, write_meg_calibration, write_meg_crosstalk, - anonymize_dataset, - print_dir_tree, + write_raw_bids, ) data_path = Path(mne.datasets.sample.data_path()) diff --git a/dev/_downloads/f336dfe6a8ab84474813b87342e0c0a3/convert_empty_room.py b/dev/_downloads/f336dfe6a8ab84474813b87342e0c0a3/convert_empty_room.py index 5cca3d9d8..0b56e9288 100644 --- a/dev/_downloads/f336dfe6a8ab84474813b87342e0c0a3/convert_empty_room.py +++ b/dev/_downloads/f336dfe6a8ab84474813b87342e0c0a3/convert_empty_room.py @@ -31,13 +31,12 @@ import os.path as op import shutil - from datetime import datetime, timezone import mne from mne.datasets import sample -from mne_bids import write_raw_bids, read_raw_bids, BIDSPath, print_dir_tree +from mne_bids import BIDSPath, print_dir_tree, read_raw_bids, write_raw_bids # %% # And define the paths and event_id dictionary. diff --git a/dev/_modules/mne_bids/copyfiles.html b/dev/_modules/mne_bids/copyfiles.html index 50ef35cdd..0a8ecb9f6 100644 --- a/dev/_modules/mne_bids/copyfiles.html +++ b/dev/_modules/mne_bids/copyfiles.html @@ -544,17 +544,17 @@

Source code for mne_bids.copyfiles

 # License: BSD-3-Clause
 import os
 import os.path as op
-from pathlib import Path
 import re
 import shutil as sh
+from pathlib import Path
 
-from mne.io import read_raw_brainvision, read_raw_edf, read_raw_bdf, anonymize_info
-from mne.utils import logger, verbose
 import numpy as np
+from mne.io import anonymize_info, read_raw_bdf, read_raw_brainvision, read_raw_edf
+from mne.utils import logger, verbose
 from scipy.io import loadmat, savemat
 
-from mne_bids.path import BIDSPath, _parse_ext, _mkdir_p
-from mne_bids.utils import _get_mrk_meas_date, _check_anonymize, warn
+from mne_bids.path import BIDSPath, _mkdir_p, _parse_ext
+from mne_bids.utils import _check_anonymize, _get_mrk_meas_date, warn
 
 
 def _copytree(src, dst, **kwargs):
@@ -622,7 +622,7 @@ 

Source code for mne_bids.copyfiles

     enc = _get_brainvision_encoding(vhdr_path)
 
     # ..and read it
-    with open(vhdr_path, "r", encoding=enc) as f:
+    with open(vhdr_path, encoding=enc) as f:
         lines = f.readlines()
 
     # Try to find data file .eeg/.dat
@@ -786,7 +786,7 @@ 

Source code for mne_bids.copyfiles

 def _replace_file(fname, pattern, replace):
     """Overwrite file, replacing end of lines matching pattern with replace."""
     new_content = []
-    for line in open(fname, "r"):
+    for line in open(fname):
         match = re.match(pattern, line)
         if match:
             line = match.group()[: -len(replace)] + replace + "\n"
@@ -899,14 +899,14 @@ 

Source code for mne_bids.copyfiles

         "MarkerFile=" + basename_src + ".vmrk",
     ]
 
-    with open(vhdr_src, "r", encoding=enc) as fin:
+    with open(vhdr_src, encoding=enc) as fin:
         with open(vhdr_dest, "w", encoding=enc) as fout:
             for line in fin.readlines():
                 if line.strip() in search_lines:
                     line = line.replace(basename_src, basename_dest)
                 fout.write(line)
 
-    with open(vmrk_file_path, "r", encoding=enc) as fin:
+    with open(vmrk_file_path, encoding=enc) as fin:
         with open(fname_dest + ".vmrk", "w", encoding=enc) as fout:
             for line in fin.readlines():
                 if line.strip() in search_lines:
@@ -1016,7 +1016,7 @@ 

Source code for mne_bids.copyfiles

         elif ext_src in [".edf", ".EDF"]:
             raw = read_raw_edf(dest, preload=False, verbose=0)
         else:
-            raise ValueError("Unsupported file type ({0})".format(ext_src))
+            raise ValueError(f"Unsupported file type ({ext_src})")
 
         # Get subject info, recording info, and recording date
         with open(dest, "rb") as f:
diff --git a/dev/_modules/mne_bids/dig.html b/dev/_modules/mne_bids/dig.html
index 1d8cd3095..acf260e6a 100644
--- a/dev/_modules/mne_bids/dig.html
+++ b/dev/_modules/mne_bids/dig.html
@@ -532,39 +532,39 @@ 

Source code for mne_bids.dig

 #          Alex Rockhill <aprockhill@mailbox.org>
 #
 # License: BSD-3-Clause
-import os.path as op
 import json
-from collections import OrderedDict
-from pathlib import Path
+import os.path as op
 import re
 import warnings
+from collections import OrderedDict
+from pathlib import Path
 
 import mne
 import numpy as np
 from mne.io.constants import FIFF
-from mne.utils import logger, _validate_type, _check_option, get_subjects_dir
 from mne.io.pick import _picks_to_idx
+from mne.utils import _check_option, _validate_type, get_subjects_dir, logger
 
 from mne_bids.config import (
     ALLOWED_SPACES,
+    BIDS_COORD_FRAME_DESCRIPTIONS,
     BIDS_COORDINATE_UNITS,
-    MNE_TO_BIDS_FRAMES,
+    BIDS_STANDARD_TEMPLATE_COORDINATE_SYSTEMS,
     BIDS_TO_MNE_FRAMES,
     MNE_FRAME_TO_STR,
     MNE_STR_TO_FRAME,
-    BIDS_COORD_FRAME_DESCRIPTIONS,
-    BIDS_STANDARD_TEMPLATE_COORDINATE_SYSTEMS,
+    MNE_TO_BIDS_FRAMES,
 )
+from mne_bids.path import BIDSPath
 from mne_bids.tsv_handler import _from_tsv
 from mne_bids.utils import (
+    _import_nibabel,
     _scale_coord_to_meters,
     _write_json,
     _write_tsv,
     verbose,
     warn,
-    _import_nibabel,
 )
-from mne_bids.path import BIDSPath
 
 data_dir = Path(__file__).parent / "data"
 
@@ -574,7 +574,7 @@ 

Source code for mne_bids.dig

 
     Handle xyz coordinates and coordinate frame of each channel.
     """
-    logger.info("Reading electrode " "coords from {}.".format(electrodes_fname))
+    logger.info("Reading electrode " f"coords from {electrodes_fname}.")
     electrodes_dict = _from_tsv(electrodes_fname)
     ch_names_tsv = electrodes_dict["name"]
 
@@ -608,7 +608,7 @@ 

Source code for mne_bids.dig

     Handle reading the coordinate frame and coordinate unit
     of each electrode.
     """
-    with open(coordsystem_fpath, "r", encoding="utf-8-sig") as fin:
+    with open(coordsystem_fpath, encoding="utf-8-sig") as fin:
         coordsystem_json = json.load(fin)
 
     if datatype == "meg":
@@ -706,7 +706,7 @@ 

Source code for mne_bids.dig

             ]
         )
     else:  # pragma: no cover
-        raise RuntimeError("datatype {} not supported.".format(datatype))
+        raise RuntimeError(f"datatype {datatype} not supported.")
 
     # Add impedance values if available, currently only BrainVision:
     # https://github.com/mne-tools/mne-python/pull/7974
@@ -903,7 +903,7 @@ 

Source code for mne_bids.dig

     # XXX: improve later when BIDS is updated
     # check that there already exists a coordsystem.json
     if Path(fname).exists() and not overwrite:
-        with open(fname, "r", encoding="utf-8-sig") as fin:
+        with open(fname, encoding="utf-8-sig") as fin:
             coordsystem_dict = json.load(fin)
         if fid_json != coordsystem_dict:
             raise RuntimeError(
diff --git a/dev/_modules/mne_bids/inspect.html b/dev/_modules/mne_bids/inspect.html
index d07968304..fa4cd64d6 100644
--- a/dev/_modules/mne_bids/inspect.html
+++ b/dev/_modules/mne_bids/inspect.html
@@ -534,18 +534,16 @@ 

Source code for mne_bids.inspect

 
 from pathlib import Path
 
-import numpy as np
-
 import mne
-
+import numpy as np
+from mne.preprocessing import annotate_amplitude
 from mne.utils import logger, verbose
 from mne.viz import use_browser_backend
-from mne.preprocessing import annotate_amplitude
 
-from mne_bids import read_raw_bids, mark_channels
+from mne_bids import mark_channels, read_raw_bids
+from mne_bids.config import ALLOWED_DATATYPE_EXTENSIONS
 from mne_bids.read import _from_tsv, _read_events
 from mne_bids.write import _events_tsv
-from mne_bids.config import ALLOWED_DATATYPE_EXTENSIONS
 
 
 
diff --git a/dev/_modules/mne_bids/path.html b/dev/_modules/mne_bids/path.html index 823221342..78dfa8d33 100644 --- a/dev/_modules/mne_bids/path.html +++ b/dev/_modules/mne_bids/path.html @@ -532,40 +532,40 @@

Source code for mne_bids.path

 #
 # License: BSD-3-Clause
 import glob
+import json
 import os
 import re
-from io import StringIO
 import shutil as sh
 from copy import deepcopy
+from datetime import datetime
+from io import StringIO
 from os import path as op
 from pathlib import Path
-from datetime import datetime
-import json
 from textwrap import indent
 from typing import Optional
 
 import numpy as np
-from mne.utils import logger, _validate_type, verbose, _check_fname
+from mne.utils import _check_fname, _validate_type, logger, verbose
 
 from mne_bids.config import (
-    ALLOWED_PATH_ENTITIES,
+    ALLOWED_DATATYPE_EXTENSIONS,
+    ALLOWED_DATATYPES,
     ALLOWED_FILENAME_EXTENSIONS,
     ALLOWED_FILENAME_SUFFIX,
+    ALLOWED_PATH_ENTITIES,
     ALLOWED_PATH_ENTITIES_SHORT,
-    ALLOWED_DATATYPES,
-    ALLOWED_DATATYPE_EXTENSIONS,
     ALLOWED_SPACES,
-    reader,
     ENTITY_VALUE_TYPE,
+    reader,
 )
+from mne_bids.tsv_handler import _drop, _from_tsv, _to_tsv
 from mne_bids.utils import (
-    _check_key_val,
     _check_empty_room_basename,
-    param_regex,
+    _check_key_val,
     _ensure_tuple,
+    param_regex,
     warn,
 )
-from mne_bids.tsv_handler import _from_tsv, _drop, _to_tsv
 
 
 def _find_empty_room_candidates(bids_path):
@@ -704,7 +704,7 @@ 

Source code for mne_bids.path

 
 
[docs] -class BIDSPath(object): +class BIDSPath: """A BIDS path object. BIDS filename prefixes have one or more pieces of metadata in them. They @@ -1507,7 +1507,7 @@

Source code for mne_bids.path

                 if isinstance(val, str) and not val.isdigit():
                     raise ValueError(f"{key} is not an index (Got {val})")
                 elif isinstance(val, int):
-                    kwargs[key] = "{:02}".format(val)
+                    kwargs[key] = f"{val:02}"
 
         # ensure extension starts with a '.'
         extension = kwargs.get("extension")
@@ -1714,7 +1714,7 @@ 

Source code for mne_bids.path

             .update(datatype=None, suffix="meg")
             .find_matching_sidecar(extension=".json")
         )
-        with open(sidecar_fname, "r", encoding="utf-8") as f:
+        with open(sidecar_fname, encoding="utf-8") as f:
             sidecar_json = json.load(f)
 
         if "AssociatedEmptyRoom" in sidecar_json:
@@ -1945,7 +1945,7 @@ 

Source code for mne_bids.path

         prints to the console, else a string is printed to.
     """
     entry_lines = list()
-    with open(file, "r", encoding="utf-8-sig") as fid:
+    with open(file, encoding="utf-8-sig") as fid:
         if is_tsv:  # format tsv files nicely
             header = _truncate_tsv_line(fid.readline())
             if line_numbers:
@@ -2096,7 +2096,7 @@ 

Source code for mne_bids.path

         # Only print if this is up to the depth we asked
         if branchlen <= max_depth:
             if branchlen <= 1:
-                print("|{}".format(op.basename(root) + os.sep), file=outfile)
+                print(f"|{op.basename(root) + os.sep}", file=outfile)
             else:
                 print(
                     "|{} {}".format(
@@ -2627,7 +2627,7 @@ 

Source code for mne_bids.path

     ]
     ignore_dirs = _ensure_tuple(existing_ignore_dirs)
 
-    p = re.compile(r"{}-(.*?)_".format(entity_long_abbr_map[entity_key]))
+    p = re.compile(rf"{entity_long_abbr_map[entity_key]}-(.*?)_")
     values = list()
     filenames = root.glob(f"**/*{entity_long_abbr_map[entity_key]}-*_*")
 
diff --git a/dev/_modules/mne_bids/read.html b/dev/_modules/mne_bids/read.html
index b5ab06856..daf884dff 100644
--- a/dev/_modules/mne_bids/read.html
+++ b/dev/_modules/mne_bids/read.html
@@ -534,38 +534,37 @@ 

Source code for mne_bids.read

 #          Stefan Appelhoff <stefan.appelhoff@mailbox.org>
 #
 # License: BSD-3-Clause
-import os.path as op
-from pathlib import Path
 import json
+import os
+import os.path as op
 import re
 from datetime import datetime, timezone
 from difflib import get_close_matches
-import os
+from pathlib import Path
 
-import numpy as np
 import mne
-from mne import io, read_events, events_from_annotations
-from mne import pick_channels_regexp
-from mne.utils import logger, get_subjects_dir
+import numpy as np
+from mne import events_from_annotations, io, pick_channels_regexp, read_events
 from mne.coreg import fit_matched_points
 from mne.transforms import apply_trans
+from mne.utils import get_subjects_dir, logger
 
-from mne_bids.dig import _read_dig_bids
-from mne_bids.tsv_handler import _from_tsv, _drop
 from mne_bids.config import (
     ALLOWED_DATATYPE_EXTENSIONS,
     ANNOTATIONS_TO_KEEP,
-    reader,
     _map_options,
+    reader,
 )
-from mne_bids.utils import _get_ch_type_mapping, verbose, warn, _import_nibabel
+from mne_bids.dig import _read_dig_bids
 from mne_bids.path import (
     BIDSPath,
-    _parse_ext,
     _find_matching_sidecar,
     _infer_datatype,
+    _parse_ext,
     get_bids_path_from_fname,
 )
+from mne_bids.tsv_handler import _drop, _from_tsv
+from mne_bids.utils import _get_ch_type_mapping, _import_nibabel, verbose, warn
 
 
 def _read_raw(
@@ -885,7 +884,7 @@ 

Source code for mne_bids.read

 
     Handle PowerLineFrequency of recording.
     """
-    with open(sidecar_fname, "r", encoding="utf-8-sig") as fin:
+    with open(sidecar_fname, encoding="utf-8-sig") as fin:
         sidecar_json = json.load(fin)
 
     # read in the sidecar JSON's and raw object's line frequency
@@ -984,7 +983,7 @@ 

Source code for mne_bids.read

 
     Handle onset, duration, and description of each event.
     """
-    logger.info("Reading events from {}.".format(events_fname))
+    logger.info(f"Reading events from {events_fname}.")
     events_dict = _from_tsv(events_fname)
 
     # Get the descriptions of the events
@@ -1094,7 +1093,7 @@ 

Source code for mne_bids.read

 
     Updates status (bad) and types of channels.
     """
-    logger.info("Reading channel info from {}.".format(channels_fname))
+    logger.info(f"Reading channel info from {channels_fname}.")
     channels_dict = _from_tsv(channels_fname)
     ch_names_tsv = channels_dict["name"]
 
diff --git a/dev/_modules/mne_bids/report/_report.html b/dev/_modules/mne_bids/report/_report.html
index b964a4bb1..b7d020c3b 100644
--- a/dev/_modules/mne_bids/report/_report.html
+++ b/dev/_modules/mne_bids/report/_report.html
@@ -535,23 +535,22 @@ 

Source code for mne_bids.report._report

 import textwrap
 from pathlib import Path
 
-import numpy as np
 import jinja2
+import numpy as np
 from mne.utils import logger, verbose
 
-from mne_bids.config import DOI, ALLOWED_DATATYPES
-from mne_bids.tsv_handler import _from_tsv
+from mne_bids.config import ALLOWED_DATATYPES, DOI
 from mne_bids.path import (
+    BIDSPath,
+    _find_matching_sidecar,
+    _parse_ext,
     get_bids_path_from_fname,
     get_datatypes,
     get_entity_vals,
-    BIDSPath,
-    _parse_ext,
-    _find_matching_sidecar,
 )
+from mne_bids.tsv_handler import _from_tsv
 from mne_bids.utils import warn
 
-
 jinja_env = jinja2.Environment(
     loader=jinja2.PackageLoader(
         package_name="mne_bids.report", package_path="templates"
@@ -684,7 +683,7 @@ 

Source code for mne_bids.report._report

         return dict()
 
     # read file and 'REQUIRED' components of it
-    with open(dataset_descrip_fpath, "r", encoding="utf-8-sig") as fin:
+    with open(dataset_descrip_fpath, encoding="utf-8-sig") as fin:
         dataset_description = json.load(fin)
 
     # create dictionary to pass into template string
@@ -858,7 +857,7 @@ 

Source code for mne_bids.report._report

             sidecar_fname = _find_matching_sidecar(
                 bids_path=bids_path, suffix=datatype, extension=".json"
             )
-            with open(sidecar_fname, "r", encoding="utf-8-sig") as fin:
+            with open(sidecar_fname, encoding="utf-8-sig") as fin:
                 sidecar_json = json.load(fin)
 
             # aggregate metadata from each scan
diff --git a/dev/_modules/mne_bids/sidecar_updates.html b/dev/_modules/mne_bids/sidecar_updates.html
index 21d405633..e51e1c572 100644
--- a/dev/_modules/mne_bids/sidecar_updates.html
+++ b/dev/_modules/mne_bids/sidecar_updates.html
@@ -538,11 +538,10 @@ 

Source code for mne_bids.sidecar_updates

 from collections import OrderedDict
 
 import numpy as np
-
 from mne.channels import DigMontage, make_dig_montage
-from mne.utils import logger, _validate_type, verbose, _check_on_missing, _on_missing
 from mne.io import read_fiducials
 from mne.io.constants import FIFF
+from mne.utils import _check_on_missing, _on_missing, _validate_type, logger, verbose
 
 from mne_bids import BIDSPath
 from mne_bids.utils import _write_json
@@ -637,14 +636,14 @@ 

Source code for mne_bids.sidecar_updates

     if isinstance(entries, dict):
         sidecar_tmp = entries
     else:
-        with open(entries, "r") as tmp_f:
+        with open(entries) as tmp_f:
             sidecar_tmp = json.load(tmp_f, object_pairs_hook=OrderedDict)
 
     logger.debug(sidecar_tmp)
     logger.debug(f"Updating {fpath}...")
 
     # load in sidecar filepath
-    with open(fpath, "r") as tmp_f:
+    with open(fpath) as tmp_f:
         sidecar_json = json.load(tmp_f, object_pairs_hook=OrderedDict)
 
     # update sidecar JSON file with the fields passed in
@@ -667,7 +666,7 @@ 

Source code for mne_bids.sidecar_updates

     val : str
         The corresponding value to change to in the sidecar JSON file.
     """
-    with open(sidecar_fname, "r", encoding="utf-8-sig") as fin:
+    with open(sidecar_fname, encoding="utf-8-sig") as fin:
         sidecar_json = json.load(fin)
     sidecar_json[key] = val
     _write_json(sidecar_fname, sidecar_json, overwrite=True)
@@ -881,9 +880,9 @@ 

Source code for mne_bids.sidecar_updates

     """Get anatomical landmarks from fiducials file, in MRI voxel space."""
     # avoid dicrular imports
     from mne_bids.write import (
+        _get_fid_coords,
         _get_t1w_mgh,
         _mri_landmarks_to_mri_voxels,
-        _get_fid_coords,
     )
 
     digpoints, coord_frame = read_fiducials(fname)
@@ -911,7 +910,8 @@ 

Source code for mne_bids.sidecar_updates

 
     t1w_mgh = _get_t1w_mgh(fs_subject, fs_subjects_dir)
     landmark_coords_voxels = _mri_landmarks_to_mri_voxels(
-        mri_landmarks=landmark_coords_mri * 1000, t1_mgh=t1w_mgh  # in mm
+        mri_landmarks=landmark_coords_mri * 1000,
+        t1_mgh=t1w_mgh,  # in mm
     )
     montage_voxels = make_dig_montage(
         lpa=landmark_coords_voxels[0],
diff --git a/dev/_modules/mne_bids/utils.html b/dev/_modules/mne_bids/utils.html
index c58ba8e35..a2e0c231a 100644
--- a/dev/_modules/mne_bids/utils.html
+++ b/dev/_modules/mne_bids/utils.html
@@ -538,18 +538,18 @@ 

Source code for mne_bids.utils

 import json
 import os
 import re
-from datetime import datetime, date, timedelta, timezone
+from datetime import date, datetime, timedelta, timezone
 from os import path as op
 
 import numpy as np
+from mne import pick_types
 from mne.channels import make_standard_montage
 from mne.io.kit.kit import get_kit_info
-from mne import pick_types
-from mne.utils import warn as _warn, logger, verbose
+from mne.utils import logger, verbose
+from mne.utils import warn as _warn
 
 from mne_bids.tsv_handler import _to_tsv
 
-
 # This regex matches key-val pairs. Any characters are allowed in the key and
 # the value, except these special symbols: - _ . \ /
 param_regex = re.compile(r"([^-_\.\\\/]+)-([^-_\.\\\/]+)")
@@ -645,7 +645,7 @@ 

Source code for mne_bids.utils

         raise ValueError(
             "Only two types of mappings are currently supported: "
             "from mne to bids, or from bids to mne. However, "
-            'you specified from "{}" to "{}"'.format(fro, to)
+            f'you specified from "{fro}" to "{to}"'
         )
 
     return mapping
diff --git a/dev/_modules/mne_bids/write.html b/dev/_modules/mne_bids/write.html
index b733b5095..770fc0fb9 100644
--- a/dev/_modules/mne_bids/write.html
+++ b/dev/_modules/mne_bids/write.html
@@ -535,92 +535,89 @@ 

Source code for mne_bids.write

 #          Matt Sanderson <matt.sanderson@mq.edu.au>
 #
 # License: BSD-3-Clause
-from typing import List
 import json
-import re
-import sys
 import os
 import os.path as op
-from pathlib import Path
-from datetime import datetime, timezone, timedelta
+import re
 import shutil
-from collections import defaultdict, OrderedDict
+import sys
 import warnings
+from collections import OrderedDict, defaultdict
+from datetime import datetime, timedelta, timezone
+from pathlib import Path
 
-import numpy as np
-from scipy import linalg
 import mne
-from mne.transforms import _get_trans, apply_trans, rotation, translation
+import mne.preprocessing
+import numpy as np
 from mne import Epochs, channel_type
+from mne.channels.channels import _get_meg_system, _unit2human
+from mne.chpi import get_chpi_info
+from mne.io import BaseRaw, read_fiducials
 from mne.io.constants import FIFF
 from mne.io.pick import _picks_to_idx
-from mne.io import BaseRaw, read_fiducials
-from mne.channels.channels import _unit2human, _get_meg_system
-from mne.chpi import get_chpi_info
+from mne.transforms import _get_trans, apply_trans, rotation, translation
 from mne.utils import (
-    check_version,
-    logger,
     Bunch,
+    ProgressBar,
     _validate_type,
+    check_version,
     get_subjects_dir,
+    logger,
     verbose,
-    ProgressBar,
 )
-import mne.preprocessing
+from scipy import linalg
 
-from mne_bids.pick import coil_type
-from mne_bids.dig import _write_dig_bids, _write_coordsystem_json
-from mne_bids.utils import (
-    _write_json,
-    _write_tsv,
-    _write_text,
-    _age_on_date,
-    _infer_eeg_placement_scheme,
-    _get_ch_type_mapping,
-    _check_anonymize,
-    _stamp_to_dt,
-    _handle_datatype,
-    warn,
-    _import_nibabel,
-)
 from mne_bids import (
     BIDSPath,
-    read_raw_bids,
     get_anonymization_daysback,
     get_bids_path_from_fname,
+    read_raw_bids,
+)
+from mne_bids.config import (
+    ALLOWED_DATATYPE_EXTENSIONS,
+    ALLOWED_INPUT_EXTENSIONS,
+    ANONYMIZED_JSON_KEY_WHITELIST,
+    BIDS_STANDARD_TEMPLATE_COORDINATE_SYSTEMS,
+    BIDS_VERSION,
+    CONVERT_FORMATS,
+    EXT_TO_UNIT_MAP,
+    IGNORED_CHANNELS,
+    MANUFACTURERS,
+    ORIENTATION,
+    PYBV_VERSION,
+    REFERENCES,
+    UNITS_MNE_TO_BIDS_MAP,
+    _map_options,
+    reader,
 )
-from mne_bids.path import _parse_ext, _mkdir_p, _path_to_str
 from mne_bids.copyfiles import (
     copyfile_brainvision,
-    copyfile_eeglab,
-    copyfile_ctf,
     copyfile_bti,
-    copyfile_kit,
+    copyfile_ctf,
     copyfile_edf,
+    copyfile_eeglab,
+    copyfile_kit,
 )
-from mne_bids.tsv_handler import _from_tsv, _drop, _contains_row, _combine_rows
+from mne_bids.dig import _write_coordsystem_json, _write_dig_bids
+from mne_bids.path import _mkdir_p, _parse_ext, _path_to_str
+from mne_bids.pick import coil_type
 from mne_bids.read import _find_matching_sidecar, _read_events
 from mne_bids.sidecar_updates import update_sidecar_json
-
-from mne_bids.config import (
-    ORIENTATION,
-    EXT_TO_UNIT_MAP,
-    MANUFACTURERS,
-    IGNORED_CHANNELS,
-    ALLOWED_DATATYPE_EXTENSIONS,
-    BIDS_VERSION,
-    REFERENCES,
-    _map_options,
-    reader,
-    ALLOWED_INPUT_EXTENSIONS,
-    CONVERT_FORMATS,
-    ANONYMIZED_JSON_KEY_WHITELIST,
-    PYBV_VERSION,
-    BIDS_STANDARD_TEMPLATE_COORDINATE_SYSTEMS,
-    UNITS_MNE_TO_BIDS_MAP,
+from mne_bids.tsv_handler import _combine_rows, _contains_row, _drop, _from_tsv
+from mne_bids.utils import (
+    _age_on_date,
+    _check_anonymize,
+    _get_ch_type_mapping,
+    _handle_datatype,
+    _import_nibabel,
+    _infer_eeg_placement_scheme,
+    _stamp_to_dt,
+    _write_json,
+    _write_text,
+    _write_tsv,
+    warn,
 )
 
-
 _FIFF_SPLIT_SIZE = "2GB"  # MNE-Python default; can be altered during debugging
 
 
@@ -910,7 +907,7 @@ 

Source code for mne_bids.write

         already contains that citation.
     """
     if os.path.isfile(fname) and not overwrite:
-        with open(fname, "r", encoding="utf-8-sig") as fid:
+        with open(fname, encoding="utf-8-sig") as fid:
             orig_data = fid.read()
         mne_bids_ref = REFERENCES["mne-bids"] in orig_data
         datatype_ref = REFERENCES[datatype] in orig_data
@@ -1204,9 +1201,9 @@ 

Source code for mne_bids.write

             # so load the file from the specified location. We do this
             # here to keep the try block as short as possible.
             raise ValueError(
-                "`{}` must be a path to an MRI data "
+                f"`{name}` must be a path to an MRI data "
                 "file or a nibabel image object, but it "
-                'is of type "{}"'.format(name, type(image))
+                f'is of type "{type(image)}"'
             )
         else:
             image = nib.load(image)
@@ -1859,7 +1856,7 @@ 

Source code for mne_bids.write

 
     # Handle potentially existing file contents
     if op.isfile(fname):
-        with open(fname, "r", encoding="utf-8-sig") as fin:
+        with open(fname, encoding="utf-8-sig") as fin:
             orig_cols = json.load(fin)
         if "BIDSVersion" in orig_cols and orig_cols["BIDSVersion"] != BIDS_VERSION:
             warnings.warn(
@@ -2962,9 +2959,9 @@ 

Source code for mne_bids.write

         img_json = {"AnatomicalLandmarkCoordinates": img_json}
         fname = bids_path.copy().update(extension=".json")
         if op.isfile(fname) and not overwrite:
-            raise IOError(
+            raise OSError(
                 "Wanted to write a file but it already exists and "
-                '`overwrite` is set to False. File: "{}"'.format(fname)
+                f'`overwrite` is set to False. File: "{fname}"'
             )
         _write_json(fname, img_json, overwrite)
 
@@ -2981,7 +2978,7 @@ 

Source code for mne_bids.write

         if overwrite:
             os.remove(bids_path)
         else:
-            raise IOError(
+            raise OSError(
                 f"Wanted to write a file but it already exists and "
                 f'`overwrite` is set to False. File: "{bids_path}"'
             )
@@ -3254,7 +3251,7 @@ 

Source code for mne_bids.write

 
 
 def _get_daysback(
-    *, bids_paths: List[BIDSPath], rng: np.random.Generator, show_progress_thresh: int
+    *, bids_paths: list[BIDSPath], rng: np.random.Generator, show_progress_thresh: int
 ) -> int:
     """Try to find a suitable "daysback" for anonymization.
 
diff --git a/dev/auto_examples/anonymize_dataset.html b/dev/auto_examples/anonymize_dataset.html
index a7e6681b9..3759cfb57 100644
--- a/dev/auto_examples/anonymize_dataset.html
+++ b/dev/auto_examples/anonymize_dataset.html
@@ -583,15 +583,17 @@
 
@@ -941,9 +943,9 @@

ReproducibilityTotal running time of the script: (0 minutes 15.995 seconds)

+

Total running time of the script: (0 minutes 11.044 seconds)

@@ -611,8 +611,6 @@

Download the data
Using default location ~/mne_data for EEGBCI...
-Downloading EEGBCI data
-Download complete in 01s (1.2 MB)
 
 [PosixPath('/home/circleci/mne_data/MNE-eegbci-data/files/eegmmidb/1.0.0/S001/S001R02.edf')]
 
@@ -632,6 +630,13 @@

Download the dataEuropean Data Format with @@ -694,1046 +699,6 @@

Convert to BIDS
Using default location ~/mne_data for testing...
-Dataset testing version 0.0 out of date, latest version is 0.150
-
-0.00B [00:00, ?B/s]
-632kB [00:00, 6.27MB/s]
-1.26MB [00:00, 6.15MB/s]
-1.89MB [00:00, 6.08MB/s]
-2.50MB [00:00, 6.04MB/s]
-3.13MB [00:00, 6.04MB/s]
-3.73MB [00:00, 6.00MB/s]
-4.34MB [00:00, 5.99MB/s]
-4.95MB [00:00, 5.97MB/s]
-5.57MB [00:00, 5.98MB/s]
-6.17MB [00:01, 5.88MB/s]
-6.77MB [00:01, 5.68MB/s]
-7.39MB [00:01, 5.83MB/s]
-7.98MB [00:01, 5.83MB/s]
-8.59MB [00:01, 5.91MB/s]
-9.19MB [00:01, 5.86MB/s]
-9.84MB [00:01, 5.96MB/s]
-10.5MB [00:01, 6.05MB/s]
-11.1MB [00:01, 5.98MB/s]
-11.8MB [00:01, 6.26MB/s]
-12.4MB [00:02, 6.29MB/s]
-13.1MB [00:02, 6.32MB/s]
-13.8MB [00:02, 6.43MB/s]
-14.8MB [00:02, 7.53MB/s]
-15.6MB [00:02, 7.46MB/s]
-16.7MB [00:02, 7.67MB/s]
-17.4MB [00:02, 6.20MB/s]
-18.1MB [00:02, 6.40MB/s]
-18.9MB [00:03, 6.69MB/s]
-19.7MB [00:03, 7.04MB/s]
-20.6MB [00:03, 7.45MB/s]
-21.4MB [00:03, 6.41MB/s]
-22.1MB [00:03, 4.81MB/s]
-22.6MB [00:03, 4.29MB/s]
-23.1MB [00:03, 3.79MB/s]
-23.5MB [00:04, 3.47MB/s]
-23.9MB [00:04, 3.31MB/s]
-24.3MB [00:04, 3.08MB/s]
-24.6MB [00:04, 2.92MB/s]
-24.9MB [00:04, 2.80MB/s]
-25.2MB [00:04, 2.68MB/s]
-25.4MB [00:04, 2.67MB/s]
-25.7MB [00:04, 2.52MB/s]
-25.9MB [00:05, 2.53MB/s]
-26.2MB [00:05, 2.40MB/s]
-26.5MB [00:05, 2.35MB/s]
-26.8MB [00:05, 2.47MB/s]
-27.1MB [00:05, 2.49MB/s]
-27.3MB [00:05, 2.51MB/s]
-27.6MB [00:05, 2.47MB/s]
-27.9MB [00:05, 2.45MB/s]
-28.2MB [00:06, 2.44MB/s]
-28.5MB [00:06, 2.44MB/s]
-28.7MB [00:06, 2.44MB/s]
-29.0MB [00:06, 2.43MB/s]
-29.2MB [00:06, 2.31MB/s]
-29.5MB [00:06, 2.37MB/s]
-29.8MB [00:06, 2.39MB/s]
-30.0MB [00:06, 2.45MB/s]
-30.3MB [00:06, 2.44MB/s]
-30.6MB [00:07, 2.44MB/s]
-30.9MB [00:07, 2.39MB/s]
-31.2MB [00:07, 2.41MB/s]
-31.4MB [00:07, 2.37MB/s]
-31.7MB [00:07, 2.40MB/s]
-32.0MB [00:07, 2.36MB/s]
-32.4MB [00:07, 2.99MB/s]
-32.8MB [00:07, 2.12MB/s]
-33.1MB [00:08, 2.31MB/s]
-33.5MB [00:08, 2.47MB/s]
-33.8MB [00:08, 2.64MB/s]
-34.1MB [00:08, 2.72MB/s]
-34.5MB [00:08, 2.82MB/s]
-34.8MB [00:08, 2.85MB/s]
-35.2MB [00:08, 2.93MB/s]
-35.5MB [00:08, 2.97MB/s]
-35.9MB [00:08, 3.00MB/s]
-36.2MB [00:09, 3.04MB/s]
-36.6MB [00:09, 3.12MB/s]
-36.9MB [00:09, 3.11MB/s]
-37.2MB [00:09, 3.12MB/s]
-37.6MB [00:09, 3.15MB/s]
-37.9MB [00:09, 3.12MB/s]
-38.3MB [00:09, 3.10MB/s]
-38.6MB [00:09, 3.14MB/s]
-39.0MB [00:09, 3.11MB/s]
-39.3MB [00:10, 3.12MB/s]
-39.7MB [00:10, 3.15MB/s]
-40.0MB [00:10, 3.16MB/s]
-40.3MB [00:10, 3.14MB/s]
-40.8MB [00:10, 3.37MB/s]
-41.3MB [00:10, 3.65MB/s]
-41.7MB [00:10, 2.29MB/s]
-42.4MB [00:11, 3.33MB/s]
-43.3MB [00:11, 4.46MB/s]
-44.1MB [00:11, 5.30MB/s]
-44.9MB [00:11, 5.96MB/s]
-45.7MB [00:11, 6.55MB/s]
-46.5MB [00:11, 7.03MB/s]
-47.3MB [00:11, 7.32MB/s]
-48.1MB [00:11, 7.52MB/s]
-48.9MB [00:11, 7.56MB/s]
-49.7MB [00:11, 7.73MB/s]
-50.5MB [00:12, 7.78MB/s]
-51.4MB [00:12, 7.86MB/s]
-52.2MB [00:12, 7.91MB/s]
-53.0MB [00:12, 7.98MB/s]
-53.8MB [00:12, 7.99MB/s]
-54.6MB [00:12, 5.21MB/s]
-55.2MB [00:12, 4.47MB/s]
-55.8MB [00:13, 4.10MB/s]
-56.3MB [00:13, 3.77MB/s]
-56.7MB [00:13, 3.54MB/s]
-57.1MB [00:13, 3.44MB/s]
-57.4MB [00:13, 3.33MB/s]
-57.8MB [00:13, 3.29MB/s]
-58.3MB [00:13, 3.74MB/s]
-58.7MB [00:14, 3.34MB/s]
-59.0MB [00:14, 3.28MB/s]
-59.4MB [00:14, 3.21MB/s]
-59.7MB [00:14, 3.14MB/s]
-60.1MB [00:14, 3.10MB/s]
-60.4MB [00:14, 3.10MB/s]
-60.8MB [00:14, 3.11MB/s]
-61.1MB [00:14, 3.11MB/s]
-61.5MB [00:14, 3.10MB/s]
-61.8MB [00:15, 3.09MB/s]
-62.1MB [00:15, 3.16MB/s]
-62.5MB [00:15, 3.16MB/s]
-62.8MB [00:15, 3.17MB/s]
-63.2MB [00:15, 3.13MB/s]
-63.5MB [00:15, 3.11MB/s]
-63.9MB [00:15, 3.09MB/s]
-64.2MB [00:15, 3.12MB/s]
-64.5MB [00:15, 3.13MB/s]
-64.9MB [00:16, 3.11MB/s]
-65.2MB [00:16, 3.16MB/s]
-65.6MB [00:16, 3.18MB/s]
-65.9MB [00:16, 3.14MB/s]
-66.3MB [00:16, 3.38MB/s]
-66.8MB [00:16, 3.62MB/s]
-67.2MB [00:16, 3.61MB/s]
-67.5MB [00:16, 3.44MB/s]
-67.9MB [00:16, 3.34MB/s]
-68.2MB [00:17, 3.27MB/s]
-68.6MB [00:17, 3.24MB/s]
-68.9MB [00:17, 3.19MB/s]
-69.2MB [00:17, 3.20MB/s]
-69.6MB [00:17, 3.21MB/s]
-69.9MB [00:17, 3.18MB/s]
-70.3MB [00:17, 3.20MB/s]
-70.6MB [00:17, 3.15MB/s]
-71.0MB [00:17, 3.15MB/s]
-71.3MB [00:17, 3.14MB/s]
-71.6MB [00:18, 3.17MB/s]
-72.0MB [00:18, 3.10MB/s]
-72.3MB [00:18, 3.11MB/s]
-72.7MB [00:18, 3.13MB/s]
-73.0MB [00:18, 3.14MB/s]
-73.4MB [00:18, 3.12MB/s]
-73.7MB [00:18, 3.11MB/s]
-74.0MB [00:18, 3.14MB/s]
-74.4MB [00:18, 3.13MB/s]
-74.8MB [00:19, 3.41MB/s]
-75.3MB [00:19, 3.63MB/s]
-75.7MB [00:19, 3.86MB/s]
-76.5MB [00:19, 5.13MB/s]
-77.3MB [00:19, 5.96MB/s]
-78.1MB [00:19, 6.52MB/s]
-79.0MB [00:19, 6.99MB/s]
-79.8MB [00:19, 7.29MB/s]
-80.6MB [00:19, 7.50MB/s]
-81.4MB [00:20, 7.63MB/s]
-82.2MB [00:20, 7.77MB/s]
-83.0MB [00:20, 7.87MB/s]
-83.8MB [00:20, 7.90MB/s]
-84.6MB [00:20, 7.98MB/s]
-85.4MB [00:20, 7.96MB/s]
-86.2MB [00:20, 7.99MB/s]
-87.0MB [00:20, 7.99MB/s]
-87.9MB [00:20, 8.02MB/s]
-88.7MB [00:20, 7.96MB/s]
-89.5MB [00:21, 7.93MB/s]
-90.3MB [00:21, 7.92MB/s]
-91.1MB [00:21, 7.94MB/s]
-91.9MB [00:21, 8.05MB/s]
-92.7MB [00:21, 8.00MB/s]
-93.5MB [00:21, 7.98MB/s]
-94.3MB [00:21, 7.94MB/s]
-95.1MB [00:21, 7.90MB/s]
-95.9MB [00:21, 7.91MB/s]
-96.7MB [00:21, 7.85MB/s]
-97.5MB [00:22, 7.94MB/s]
-98.3MB [00:22, 7.87MB/s]
-99.1MB [00:22, 7.83MB/s]
-99.9MB [00:22, 7.85MB/s]
-101MB [00:22, 5.67MB/s]
-101MB [00:22, 5.14MB/s]
-102MB [00:22, 4.80MB/s]
-102MB [00:23, 4.48MB/s]
-103MB [00:23, 4.37MB/s]
-103MB [00:23, 4.38MB/s]
-104MB [00:23, 4.96MB/s]
-105MB [00:23, 5.72MB/s]
-106MB [00:23, 6.36MB/s]
-106MB [00:23, 6.82MB/s]
-107MB [00:23, 7.18MB/s]
-108MB [00:23, 7.38MB/s]
-109MB [00:23, 7.13MB/s]
-110MB [00:24, 6.91MB/s]
-110MB [00:24, 6.74MB/s]
-111MB [00:24, 6.35MB/s]
-112MB [00:24, 6.86MB/s]
-113MB [00:24, 7.24MB/s]
-113MB [00:24, 7.56MB/s]
-114MB [00:24, 7.01MB/s]
-115MB [00:24, 5.40MB/s]
-116MB [00:25, 7.59MB/s]
-118MB [00:25, 9.47MB/s]
-119MB [00:25, 11.0MB/s]
-121MB [00:25, 12.0MB/s]
-122MB [00:25, 12.8MB/s]
-124MB [00:25, 13.4MB/s]
-125MB [00:25, 13.8MB/s]
-127MB [00:25, 14.2MB/s]
-128MB [00:25, 14.3MB/s]
-130MB [00:26, 8.23MB/s]
-132MB [00:26, 10.2MB/s]
-133MB [00:26, 11.5MB/s]
-135MB [00:26, 12.0MB/s]
-137MB [00:26, 13.7MB/s]
-138MB [00:26, 11.3MB/s]
-140MB [00:26, 12.9MB/s]
-142MB [00:26, 14.2MB/s]
-145MB [00:27, 18.0MB/s]
-147MB [00:27, 14.4MB/s]
-148MB [00:27, 14.6MB/s]
-150MB [00:27, 14.6MB/s]
-151MB [00:27, 14.6MB/s]
-153MB [00:27, 14.5MB/s]
-154MB [00:27, 14.7MB/s]
-156MB [00:27, 13.2MB/s]
-157MB [00:28, 13.2MB/s]
-159MB [00:28, 11.7MB/s]
-160MB [00:28, 11.1MB/s]
-161MB [00:28, 6.85MB/s]
-162MB [00:28, 5.75MB/s]
-163MB [00:29, 5.52MB/s]
-163MB [00:29, 4.46MB/s]
-166MB [00:29, 7.66MB/s]
-168MB [00:29, 10.7MB/s]
-170MB [00:29, 13.5MB/s]
-173MB [00:29, 15.8MB/s]
-175MB [00:29, 14.4MB/s]
-176MB [00:30, 14.5MB/s]
-178MB [00:30, 14.5MB/s]
-180MB [00:30, 14.6MB/s]
-181MB [00:30, 14.2MB/s]
-183MB [00:30, 15.8MB/s]
-185MB [00:30, 16.0MB/s]
-187MB [00:30, 17.5MB/s]
-189MB [00:30, 18.6MB/s]
-191MB [00:31, 12.7MB/s]
-193MB [00:31, 11.0MB/s]
-194MB [00:31, 10.1MB/s]
-196MB [00:31, 12.8MB/s]
-199MB [00:31, 15.1MB/s]
-201MB [00:31, 12.8MB/s]
-202MB [00:32, 9.92MB/s]
-203MB [00:32, 9.23MB/s]
-204MB [00:32, 8.01MB/s]
-206MB [00:32, 8.76MB/s]
-207MB [00:32, 10.8MB/s]
-209MB [00:32, 12.5MB/s]
-211MB [00:33, 6.59MB/s]
-212MB [00:33, 7.62MB/s]
-214MB [00:33, 8.94MB/s]
-215MB [00:33, 5.54MB/s]
-217MB [00:34, 6.45MB/s]
-218MB [00:34, 7.80MB/s]
-220MB [00:34, 9.55MB/s]
-221MB [00:34, 6.11MB/s]
-222MB [00:34, 6.54MB/s]
-224MB [00:34, 8.20MB/s]
-225MB [00:35, 8.70MB/s]
-226MB [00:35, 5.46MB/s]
-227MB [00:35, 3.90MB/s]
-229MB [00:36, 5.36MB/s]
-230MB [00:36, 7.18MB/s]
-231MB [00:36, 4.90MB/s]
-232MB [00:36, 5.56MB/s]
-234MB [00:36, 7.24MB/s]
-236MB [00:36, 8.81MB/s]
-237MB [00:37, 5.49MB/s]
-238MB [00:37, 6.70MB/s]
-240MB [00:37, 6.86MB/s]
-241MB [00:37, 8.50MB/s]
-243MB [00:37, 10.5MB/s]
-245MB [00:38, 5.94MB/s]
-246MB [00:38, 7.50MB/s]
-248MB [00:38, 9.19MB/s]
-249MB [00:38, 7.13MB/s]
-251MB [00:39, 6.15MB/s]
-252MB [00:39, 8.21MB/s]
-254MB [00:39, 7.42MB/s]
-255MB [00:39, 9.18MB/s]
-257MB [00:39, 10.0MB/s]
-258MB [00:40, 5.87MB/s]
-260MB [00:40, 7.41MB/s]
-261MB [00:40, 9.12MB/s]
-263MB [00:40, 7.71MB/s]
-264MB [00:40, 5.89MB/s]
-266MB [00:40, 7.93MB/s]
-267MB [00:41, 8.76MB/s]
-269MB [00:41, 10.5MB/s]
-270MB [00:41, 7.38MB/s]
-271MB [00:41, 6.41MB/s]
-273MB [00:41, 8.10MB/s]
-275MB [00:41, 10.1MB/s]
-276MB [00:42, 6.01MB/s]
-277MB [00:42, 6.71MB/s]
-279MB [00:42, 8.95MB/s]
-280MB [00:42, 9.53MB/s]
-282MB [00:42, 10.6MB/s]
-283MB [00:42, 11.2MB/s]
-284MB [00:43, 6.20MB/s]
-286MB [00:43, 7.83MB/s]
-288MB [00:43, 9.65MB/s]
-289MB [00:43, 7.13MB/s]
-290MB [00:44, 6.24MB/s]
-292MB [00:44, 7.73MB/s]
-293MB [00:44, 8.44MB/s]
-295MB [00:44, 10.3MB/s]
-296MB [00:44, 7.66MB/s]
-297MB [00:45, 6.07MB/s]
-299MB [00:45, 7.29MB/s]
-300MB [00:45, 9.05MB/s]
-301MB [00:45, 8.66MB/s]
-303MB [00:45, 5.59MB/s]
-304MB [00:45, 6.23MB/s]
-306MB [00:45, 9.31MB/s]
-308MB [00:46, 11.7MB/s]
-310MB [00:46, 13.7MB/s]
-312MB [00:46, 15.5MB/s]
-314MB [00:46, 16.9MB/s]
-316MB [00:46, 18.0MB/s]
-318MB [00:46, 18.8MB/s]
-320MB [00:46, 19.3MB/s]
-322MB [00:46, 19.7MB/s]
-325MB [00:46, 20.0MB/s]
-327MB [00:46, 20.3MB/s]
-329MB [00:47, 20.5MB/s]
-331MB [00:47, 19.7MB/s]
-333MB [00:47, 20.3MB/s]
-335MB [00:47, 19.7MB/s]
-337MB [00:47, 10.3MB/s]
-339MB [00:47, 11.3MB/s]
-340MB [00:48, 12.7MB/s]
-342MB [00:48, 6.90MB/s]
-344MB [00:48, 7.99MB/s]
-345MB [00:48, 9.53MB/s]
-347MB [00:49, 7.48MB/s]
-348MB [00:49, 6.25MB/s]
-349MB [00:49, 7.36MB/s]
-351MB [00:49, 9.93MB/s]
-353MB [00:49, 11.9MB/s]
-355MB [00:49, 13.6MB/s]
-357MB [00:49, 14.9MB/s]
-359MB [00:49, 16.2MB/s]
-361MB [00:50, 16.9MB/s]
-363MB [00:50, 17.7MB/s]
-365MB [00:50, 18.4MB/s]
-367MB [00:50, 18.7MB/s]
-369MB [00:50, 19.2MB/s]
-371MB [00:50, 19.4MB/s]
-373MB [00:50, 19.5MB/s]
-375MB [00:50, 19.7MB/s]
-377MB [00:50, 19.7MB/s]
-379MB [00:51, 11.2MB/s]
-381MB [00:51, 10.4MB/s]
-383MB [00:51, 12.4MB/s]
-385MB [00:51, 14.3MB/s]
-387MB [00:51, 15.8MB/s]
-389MB [00:51, 17.0MB/s]
-391MB [00:51, 17.9MB/s]
-393MB [00:52, 18.7MB/s]
-395MB [00:52, 11.2MB/s]
-397MB [00:52, 8.03MB/s]
-399MB [00:52, 9.69MB/s]
-400MB [00:52, 11.3MB/s]
-402MB [00:53, 13.1MB/s]
-404MB [00:53, 14.6MB/s]
-406MB [00:53, 15.2MB/s]
-409MB [00:53, 17.3MB/s]
-411MB [00:53, 18.0MB/s]
-413MB [00:53, 11.7MB/s]
-414MB [00:54, 8.29MB/s]
-416MB [00:54, 10.2MB/s]
-418MB [00:54, 11.9MB/s]
-420MB [00:54, 13.9MB/s]
-422MB [00:54, 14.3MB/s]
-424MB [00:54, 10.0MB/s]
-425MB [00:55, 7.64MB/s]
-426MB [00:55, 8.36MB/s]
-428MB [00:55, 9.84MB/s]
-430MB [00:55, 11.3MB/s]
-432MB [00:55, 12.7MB/s]
-433MB [00:55, 7.97MB/s]
-434MB [00:56, 5.32MB/s]
-435MB [00:56, 5.22MB/s]
-437MB [00:56, 7.25MB/s]
-438MB [00:56, 8.25MB/s]
-440MB [00:56, 10.4MB/s]
-442MB [00:57, 8.04MB/s]
-443MB [00:57, 7.13MB/s]
-444MB [00:57, 6.57MB/s]
-445MB [00:57, 6.13MB/s]
-445MB [00:57, 5.89MB/s]
-446MB [00:57, 6.18MB/s]
-447MB [00:58, 6.76MB/s]
-448MB [00:58, 7.21MB/s]
-449MB [00:58, 7.72MB/s]
-450MB [00:58, 8.02MB/s]
-451MB [00:58, 8.22MB/s]
-452MB [00:58, 8.49MB/s]
-452MB [00:58, 8.56MB/s]
-453MB [00:58, 8.72MB/s]
-454MB [00:58, 8.71MB/s]
-455MB [00:58, 8.73MB/s]
-456MB [00:59, 8.84MB/s]
-457MB [00:59, 8.78MB/s]
-458MB [00:59, 8.82MB/s]
-459MB [00:59, 8.58MB/s]
-460MB [00:59, 8.85MB/s]
-461MB [00:59, 8.83MB/s]
-461MB [00:59, 8.83MB/s]
-462MB [00:59, 8.74MB/s]
-463MB [00:59, 8.69MB/s]
-464MB [01:00, 7.84MB/s]
-465MB [01:00, 5.02MB/s]
-466MB [01:00, 4.11MB/s]
-466MB [01:00, 3.93MB/s]
-467MB [01:00, 3.99MB/s]
-467MB [01:01, 3.53MB/s]
-467MB [01:01, 3.25MB/s]
-468MB [01:01, 4.35MB/s]
-470MB [01:01, 4.27MB/s]
-470MB [01:01, 4.13MB/s]
-471MB [01:01, 3.94MB/s]
-471MB [01:02, 3.82MB/s]
-471MB [01:02, 3.68MB/s]
-472MB [01:02, 3.60MB/s]
-472MB [01:02, 3.53MB/s]
-473MB [01:02, 3.52MB/s]
-473MB [01:02, 3.44MB/s]
-473MB [01:02, 3.40MB/s]
-474MB [01:02, 3.50MB/s]
-474MB [01:02, 3.47MB/s]
-474MB [01:02, 3.44MB/s]
-475MB [01:03, 4.22MB/s]
-476MB [01:03, 3.96MB/s]
-477MB [01:03, 3.85MB/s]
-477MB [01:03, 3.75MB/s]
-477MB [01:03, 3.65MB/s]
-478MB [01:03, 3.56MB/s]
-478MB [01:03, 3.54MB/s]
-479MB [01:04, 3.53MB/s]
-479MB [01:04, 3.40MB/s]
-479MB [01:04, 3.38MB/s]
-480MB [01:04, 3.50MB/s]
-480MB [01:04, 3.46MB/s]
-480MB [01:04, 3.43MB/s]
-481MB [01:04, 3.52MB/s]
-481MB [01:04, 3.34MB/s]
-482MB [01:04, 5.16MB/s]
-483MB [01:05, 7.79MB/s]
-485MB [01:05, 9.86MB/s]
-486MB [01:05, 11.3MB/s]
-488MB [01:05, 11.8MB/s]
-489MB [01:05, 8.12MB/s]
-490MB [01:05, 8.30MB/s]
-492MB [01:05, 10.0MB/s]
-493MB [01:05, 11.1MB/s]
-494MB [01:06, 12.0MB/s]
-496MB [01:06, 12.9MB/s]
-497MB [01:06, 7.17MB/s]
-498MB [01:06, 5.67MB/s]
-499MB [01:07, 4.94MB/s]
-500MB [01:07, 4.52MB/s]
-501MB [01:07, 4.31MB/s]
-501MB [01:07, 4.26MB/s]
-503MB [01:07, 4.25MB/s]
-503MB [01:08, 4.14MB/s]
-504MB [01:08, 3.92MB/s]
-504MB [01:08, 3.79MB/s]
-504MB [01:08, 3.66MB/s]
-505MB [01:08, 3.63MB/s]
-505MB [01:08, 3.70MB/s]
-505MB [01:08, 3.51MB/s]
-506MB [01:08, 3.46MB/s]
-506MB [01:08, 3.37MB/s]
-507MB [01:09, 3.40MB/s]
-507MB [01:09, 3.56MB/s]
-507MB [01:09, 3.51MB/s]
-508MB [01:09, 4.30MB/s]
-510MB [01:09, 8.14MB/s]
-511MB [01:09, 10.5MB/s]
-513MB [01:09, 12.2MB/s]
-515MB [01:09, 13.3MB/s]
-516MB [01:09, 14.3MB/s]
-518MB [01:10, 14.9MB/s]
-520MB [01:10, 15.3MB/s]
-521MB [01:10, 15.5MB/s]
-523MB [01:10, 15.9MB/s]
-525MB [01:10, 16.0MB/s]
-526MB [01:10, 16.1MB/s]
-528MB [01:10, 16.3MB/s]
-530MB [01:10, 16.4MB/s]
-531MB [01:10, 16.5MB/s]
-533MB [01:10, 16.5MB/s]
-535MB [01:11, 16.4MB/s]
-536MB [01:11, 16.4MB/s]
-538MB [01:11, 6.31MB/s]
-539MB [01:12, 5.35MB/s]
-540MB [01:12, 4.72MB/s]
-541MB [01:12, 4.37MB/s]
-541MB [01:12, 4.13MB/s]
-542MB [01:12, 4.62MB/s]
-544MB [01:13, 6.81MB/s]
-546MB [01:13, 8.72MB/s]
-547MB [01:13, 10.4MB/s]
-549MB [01:13, 11.8MB/s]
-550MB [01:13, 12.9MB/s]
-552MB [01:13, 13.8MB/s]
-554MB [01:13, 14.6MB/s]
-555MB [01:13, 15.1MB/s]
-557MB [01:13, 15.5MB/s]
-559MB [01:13, 15.7MB/s]
-560MB [01:14, 15.9MB/s]
-562MB [01:14, 16.1MB/s]
-564MB [01:14, 16.3MB/s]
-565MB [01:14, 16.4MB/s]
-567MB [01:14, 16.5MB/s]
-569MB [01:14, 16.5MB/s]
-570MB [01:14, 16.5MB/s]
-572MB [01:15, 6.26MB/s]
-573MB [01:15, 5.25MB/s]
-574MB [01:15, 4.73MB/s]
-575MB [01:16, 4.39MB/s]
-576MB [01:16, 4.15MB/s]
-576MB [01:16, 4.84MB/s]
-578MB [01:16, 6.78MB/s]
-580MB [01:16, 8.65MB/s]
-581MB [01:16, 10.3MB/s]
-583MB [01:16, 11.5MB/s]
-585MB [01:16, 12.8MB/s]
-586MB [01:17, 13.6MB/s]
-588MB [01:17, 14.5MB/s]
-589MB [01:17, 15.0MB/s]
-591MB [01:17, 15.4MB/s]
-593MB [01:17, 15.7MB/s]
-594MB [01:17, 15.9MB/s]
-596MB [01:17, 16.1MB/s]
-598MB [01:17, 16.2MB/s]
-599MB [01:17, 16.3MB/s]
-601MB [01:17, 16.4MB/s]
-603MB [01:18, 16.5MB/s]
-604MB [01:18, 16.3MB/s]
-606MB [01:18, 6.35MB/s]
-607MB [01:19, 5.25MB/s]
-608MB [01:19, 4.69MB/s]
-609MB [01:19, 4.35MB/s]
-610MB [01:19, 4.19MB/s]
-610MB [01:19, 4.44MB/s]
-612MB [01:20, 6.55MB/s]
-613MB [01:20, 8.49MB/s]
-615MB [01:20, 10.1MB/s]
-617MB [01:20, 11.8MB/s]
-618MB [01:20, 12.8MB/s]
-620MB [01:20, 13.8MB/s]
-622MB [01:20, 14.6MB/s]
-623MB [01:20, 15.2MB/s]
-625MB [01:20, 15.6MB/s]
-627MB [01:20, 15.9MB/s]
-628MB [01:21, 16.2MB/s]
-630MB [01:21, 16.1MB/s]
-632MB [01:21, 16.8MB/s]
-634MB [01:21, 16.7MB/s]
-635MB [01:21, 16.9MB/s]
-637MB [01:21, 16.8MB/s]
-639MB [01:21, 16.8MB/s]
-640MB [01:22, 5.99MB/s]
-642MB [01:22, 5.05MB/s]
-643MB [01:23, 4.56MB/s]
-643MB [01:23, 4.34MB/s]
-644MB [01:23, 4.24MB/s]
-646MB [01:23, 3.83MB/s]
-646MB [01:24, 3.78MB/s]
-647MB [01:24, 3.72MB/s]
-647MB [01:24, 3.63MB/s]
-647MB [01:24, 3.57MB/s]
-648MB [01:24, 3.61MB/s]
-648MB [01:24, 3.46MB/s]
-649MB [01:24, 3.45MB/s]
-649MB [01:24, 3.44MB/s]
-649MB [01:24, 3.41MB/s]
-650MB [01:25, 3.38MB/s]
-650MB [01:25, 3.42MB/s]
-650MB [01:25, 3.36MB/s]
-651MB [01:25, 3.60MB/s]
-651MB [01:25, 4.02MB/s]
-652MB [01:25, 4.38MB/s]
-652MB [01:25, 4.58MB/s]
-653MB [01:25, 4.79MB/s]
-653MB [01:25, 4.84MB/s]
-654MB [01:25, 4.96MB/s]
-654MB [01:26, 5.03MB/s]
-655MB [01:26, 5.04MB/s]
-655MB [01:26, 5.10MB/s]
-656MB [01:26, 5.15MB/s]
-656MB [01:26, 5.08MB/s]
-657MB [01:26, 5.03MB/s]
-657MB [01:26, 4.91MB/s]
-658MB [01:26, 4.88MB/s]
-659MB [01:26, 5.01MB/s]
-659MB [01:27, 5.01MB/s]
-660MB [01:27, 5.26MB/s]
-660MB [01:27, 5.28MB/s]
-661MB [01:27, 5.29MB/s]
-661MB [01:27, 5.31MB/s]
-662MB [01:27, 5.29MB/s]
-663MB [01:27, 5.39MB/s]
-663MB [01:27, 5.42MB/s]
-664MB [01:27, 5.44MB/s]
-664MB [01:27, 5.53MB/s]
-665MB [01:28, 5.42MB/s]
-665MB [01:28, 5.38MB/s]
-666MB [01:28, 5.42MB/s]
-666MB [01:28, 5.48MB/s]
-667MB [01:28, 5.49MB/s]
-668MB [01:28, 5.49MB/s]
-668MB [01:28, 5.49MB/s]
-669MB [01:28, 5.49MB/s]
-669MB [01:28, 5.49MB/s]
-670MB [01:28, 5.51MB/s]
-670MB [01:29, 5.51MB/s]
-671MB [01:29, 5.50MB/s]
-672MB [01:29, 5.52MB/s]
-672MB [01:29, 5.50MB/s]
-673MB [01:29, 5.35MB/s]
-673MB [01:29, 5.27MB/s]
-674MB [01:29, 5.24MB/s]
-674MB [01:30, 2.73MB/s]
-675MB [01:30, 2.87MB/s]
-675MB [01:30, 2.93MB/s]
-675MB [01:30, 3.06MB/s]
-676MB [01:30, 3.08MB/s]
-676MB [01:30, 3.23MB/s]
-677MB [01:30, 3.30MB/s]
-677MB [01:30, 3.26MB/s]
-677MB [01:31, 3.32MB/s]
-678MB [01:31, 3.34MB/s]
-678MB [01:31, 3.36MB/s]
-678MB [01:31, 3.37MB/s]
-679MB [01:31, 3.38MB/s]
-680MB [01:31, 6.81MB/s]
-682MB [01:31, 9.47MB/s]
-683MB [01:31, 11.5MB/s]
-685MB [01:31, 12.6MB/s]
-687MB [01:31, 14.0MB/s]
-688MB [01:32, 14.6MB/s]
-690MB [01:32, 15.1MB/s]
-692MB [01:32, 15.6MB/s]
-693MB [01:32, 15.8MB/s]
-695MB [01:32, 16.0MB/s]
-697MB [01:32, 16.1MB/s]
-698MB [01:32, 16.2MB/s]
-700MB [01:32, 16.3MB/s]
-702MB [01:32, 16.3MB/s]
-703MB [01:32, 16.3MB/s]
-705MB [01:33, 16.0MB/s]
-707MB [01:33, 16.4MB/s]
-708MB [01:33, 7.73MB/s]
-709MB [01:33, 5.93MB/s]
-710MB [01:34, 5.08MB/s]
-711MB [01:34, 4.63MB/s]
-712MB [01:34, 4.33MB/s]
-712MB [01:34, 4.12MB/s]
-713MB [01:34, 4.22MB/s]
-714MB [01:35, 4.74MB/s]
-715MB [01:35, 4.48MB/s]
-715MB [01:35, 4.21MB/s]
-716MB [01:35, 4.06MB/s]
-716MB [01:35, 3.78MB/s]
-717MB [01:35, 3.71MB/s]
-717MB [01:35, 3.63MB/s]
-717MB [01:36, 3.61MB/s]
-718MB [01:36, 3.57MB/s]
-718MB [01:36, 3.54MB/s]
-718MB [01:36, 3.50MB/s]
-719MB [01:36, 3.48MB/s]
-719MB [01:36, 3.41MB/s]
-720MB [01:36, 4.65MB/s]
-721MB [01:36, 8.01MB/s]
-723MB [01:36, 10.4MB/s]
-725MB [01:37, 12.2MB/s]
-726MB [01:37, 13.4MB/s]
-728MB [01:37, 14.3MB/s]
-730MB [01:37, 14.8MB/s]
-731MB [01:37, 15.4MB/s]
-733MB [01:37, 15.7MB/s]
-735MB [01:37, 16.0MB/s]
-736MB [01:37, 16.2MB/s]
-738MB [01:38, 7.85MB/s]
-739MB [01:38, 5.91MB/s]
-740MB [01:38, 5.13MB/s]
-741MB [01:39, 4.60MB/s]
-742MB [01:39, 4.72MB/s]
-743MB [01:39, 6.32MB/s]
-744MB [01:39, 5.35MB/s]
-745MB [01:39, 4.72MB/s]
-745MB [01:39, 4.39MB/s]
-746MB [01:40, 4.12MB/s]
-746MB [01:40, 3.93MB/s]
-747MB [01:40, 3.78MB/s]
-747MB [01:40, 3.70MB/s]
-747MB [01:40, 3.62MB/s]
-748MB [01:40, 3.58MB/s]
-749MB [01:40, 4.83MB/s]
-750MB [01:41, 3.87MB/s]
-750MB [01:41, 3.80MB/s]
-751MB [01:41, 3.73MB/s]
-751MB [01:41, 3.59MB/s]
-751MB [01:41, 3.50MB/s]
-752MB [01:41, 3.50MB/s]
-752MB [01:41, 3.48MB/s]
-752MB [01:41, 3.45MB/s]
-753MB [01:42, 3.41MB/s]
-753MB [01:42, 3.37MB/s]
-753MB [01:42, 3.38MB/s]
-754MB [01:42, 3.44MB/s]
-754MB [01:42, 3.41MB/s]
-755MB [01:42, 3.46MB/s]
-756MB [01:42, 7.40MB/s]
-758MB [01:42, 9.95MB/s]
-760MB [01:42, 11.8MB/s]
-761MB [01:42, 13.1MB/s]
-763MB [01:43, 14.1MB/s]
-765MB [01:43, 14.8MB/s]
-766MB [01:43, 15.1MB/s]
-768MB [01:43, 15.6MB/s]
-770MB [01:43, 16.1MB/s]
-771MB [01:43, 16.4MB/s]
-773MB [01:43, 16.4MB/s]
-775MB [01:43, 16.4MB/s]
-776MB [01:43, 16.8MB/s]
-778MB [01:43, 16.9MB/s]
-780MB [01:44, 17.0MB/s]
-781MB [01:44, 16.9MB/s]
-783MB [01:44, 16.7MB/s]
-785MB [01:44, 8.76MB/s]
-786MB [01:45, 6.29MB/s]
-787MB [01:45, 5.33MB/s]
-788MB [01:45, 4.83MB/s]
-789MB [01:45, 4.57MB/s]
-790MB [01:45, 6.34MB/s]
-791MB [01:46, 4.89MB/s]
-792MB [01:46, 4.47MB/s]
-792MB [01:46, 4.15MB/s]
-793MB [01:46, 3.95MB/s]
-793MB [01:46, 3.87MB/s]
-794MB [01:46, 3.73MB/s]
-794MB [01:47, 3.70MB/s]
-795MB [01:47, 3.65MB/s]
-795MB [01:47, 3.63MB/s]
-796MB [01:47, 4.88MB/s]
-797MB [01:47, 5.62MB/s]
-797MB [01:47, 4.91MB/s]
-798MB [01:47, 4.43MB/s]
-798MB [01:47, 4.18MB/s]
-799MB [01:48, 3.87MB/s]
-799MB [01:48, 3.88MB/s]
-800MB [01:48, 3.73MB/s]
-800MB [01:48, 3.63MB/s]
-800MB [01:48, 3.59MB/s]
-801MB [01:48, 3.43MB/s]
-801MB [01:48, 3.48MB/s]
-801MB [01:48, 3.46MB/s]
-802MB [01:48, 3.62MB/s]
-803MB [01:49, 7.22MB/s]
-804MB [01:49, 6.56MB/s]
-805MB [01:49, 7.72MB/s]
-806MB [01:49, 8.83MB/s]
-808MB [01:49, 9.45MB/s]
-809MB [01:49, 9.59MB/s]
-810MB [01:49, 9.98MB/s]
-811MB [01:49, 10.5MB/s]
-812MB [01:49, 10.6MB/s]
-813MB [01:50, 10.3MB/s]
-816MB [01:50, 14.7MB/s]
-818MB [01:50, 15.8MB/s]
-819MB [01:50, 11.4MB/s]
-821MB [01:50, 13.1MB/s]
-824MB [01:50, 16.7MB/s]
-826MB [01:50, 16.4MB/s]
-827MB [01:50, 16.6MB/s]
-829MB [01:51, 15.6MB/s]
-831MB [01:51, 14.7MB/s]
-833MB [01:51, 16.9MB/s]
-835MB [01:51, 18.5MB/s]
-838MB [01:51, 20.0MB/s]
-840MB [01:51, 20.2MB/s]
-842MB [01:51, 20.9MB/s]
-844MB [01:51, 20.5MB/s]
-847MB [01:51, 23.0MB/s]
-850MB [01:51, 24.2MB/s]
-852MB [01:52, 24.4MB/s]
-855MB [01:53, 6.73MB/s]
-857MB [01:53, 4.76MB/s]
-858MB [01:54, 4.02MB/s]
-859MB [01:54, 3.60MB/s]
-860MB [01:55, 3.33MB/s]
-860MB [01:55, 3.27MB/s]
-862MB [01:55, 4.70MB/s]
-863MB [01:55, 5.04MB/s]
-864MB [01:55, 6.36MB/s]
-866MB [01:55, 8.14MB/s]
-867MB [01:55, 9.49MB/s]
-869MB [01:55, 10.5MB/s]
-870MB [01:56, 10.8MB/s]
-871MB [01:56, 11.1MB/s]
-873MB [01:56, 11.7MB/s]
-874MB [01:56, 13.0MB/s]
-876MB [01:56, 9.91MB/s]
-878MB [01:56, 11.9MB/s]
-879MB [01:56, 12.4MB/s]
-881MB [01:57, 6.43MB/s]
-882MB [01:57, 6.89MB/s]
-883MB [01:57, 8.95MB/s]
-885MB [01:57, 9.07MB/s]
-886MB [01:57, 5.83MB/s]
-887MB [01:58, 5.06MB/s]
-887MB [01:58, 4.59MB/s]
-888MB [01:58, 4.27MB/s]
-890MB [01:58, 6.59MB/s]
-892MB [01:58, 10.1MB/s]
-895MB [01:58, 12.9MB/s]
-896MB [01:59, 12.3MB/s]
-898MB [01:59, 11.9MB/s]
-899MB [01:59, 12.6MB/s]
-901MB [01:59, 6.49MB/s]
-902MB [02:00, 5.88MB/s]
-903MB [02:00, 5.03MB/s]
-904MB [02:00, 4.34MB/s]
-904MB [02:00, 4.34MB/s]
-905MB [02:00, 4.51MB/s]
-905MB [02:00, 4.32MB/s]
-906MB [02:01, 3.80MB/s]
-906MB [02:01, 3.56MB/s]
-907MB [02:01, 3.52MB/s]
-908MB [02:01, 6.56MB/s]
-909MB [02:01, 5.01MB/s]
-910MB [02:02, 4.18MB/s]
-910MB [02:02, 4.34MB/s]
-911MB [02:02, 5.33MB/s]
-912MB [02:02, 6.35MB/s]
-914MB [02:02, 9.32MB/s]
-915MB [02:02, 5.53MB/s]
-916MB [02:03, 4.89MB/s]
-917MB [02:03, 5.04MB/s]
-917MB [02:03, 4.48MB/s]
-918MB [02:03, 3.90MB/s]
-918MB [02:03, 3.65MB/s]
-919MB [02:03, 3.91MB/s]
-919MB [02:03, 4.29MB/s]
-920MB [02:04, 3.97MB/s]
-920MB [02:04, 3.70MB/s]
-921MB [02:04, 3.41MB/s]
-921MB [02:04, 3.33MB/s]
-922MB [02:04, 5.57MB/s]
-923MB [02:04, 6.09MB/s]
-924MB [02:04, 4.65MB/s]
-924MB [02:05, 3.98MB/s]
-925MB [02:05, 4.02MB/s]
-925MB [02:05, 3.99MB/s]
-926MB [02:05, 4.34MB/s]
-926MB [02:05, 4.65MB/s]
-927MB [02:05, 4.13MB/s]
-927MB [02:05, 3.65MB/s]
-928MB [02:06, 3.47MB/s]
-928MB [02:06, 3.36MB/s]
-928MB [02:06, 3.83MB/s]
-929MB [02:06, 4.28MB/s]
-930MB [02:06, 3.88MB/s]
-930MB [02:06, 3.52MB/s]
-930MB [02:06, 3.30MB/s]
-931MB [02:06, 3.18MB/s]
-931MB [02:06, 3.61MB/s]
-932MB [02:07, 4.13MB/s]
-932MB [02:07, 3.93MB/s]
-933MB [02:07, 3.57MB/s]
-933MB [02:07, 3.33MB/s]
-933MB [02:07, 3.19MB/s]
-934MB [02:07, 3.36MB/s]
-934MB [02:07, 3.99MB/s]
-935MB [02:07, 4.15MB/s]
-935MB [02:08, 3.74MB/s]
-936MB [02:08, 3.37MB/s]
-936MB [02:08, 3.29MB/s]
-936MB [02:08, 3.09MB/s]
-937MB [02:08, 2.94MB/s]
-937MB [02:08, 2.79MB/s]
-937MB [02:08, 2.71MB/s]
-937MB [02:08, 2.68MB/s]
-938MB [02:09, 3.18MB/s]
-938MB [02:09, 3.95MB/s]
-939MB [02:09, 3.82MB/s]
-941MB [02:09, 7.47MB/s]
-941MB [02:09, 5.77MB/s]
-942MB [02:09, 4.79MB/s]
-944MB [02:09, 7.01MB/s]
-944MB [02:09, 6.61MB/s]
-945MB [02:10, 5.29MB/s]
-946MB [02:10, 4.50MB/s]
-947MB [02:10, 6.51MB/s]
-948MB [02:10, 5.55MB/s]
-949MB [02:10, 5.15MB/s]
-950MB [02:10, 7.50MB/s]
-951MB [02:11, 6.05MB/s]
-952MB [02:11, 5.68MB/s]
-954MB [02:11, 7.51MB/s]
-955MB [02:11, 5.84MB/s]
-955MB [02:11, 6.00MB/s]
-957MB [02:11, 7.58MB/s]
-958MB [02:12, 5.96MB/s]
-958MB [02:12, 5.07MB/s]
-960MB [02:12, 6.68MB/s]
-961MB [02:12, 5.72MB/s]
-961MB [02:12, 5.36MB/s]
-963MB [02:13, 7.52MB/s]
-964MB [02:13, 6.08MB/s]
-965MB [02:13, 5.72MB/s]
-966MB [02:13, 7.48MB/s]
-967MB [02:13, 5.92MB/s]
-968MB [02:13, 6.02MB/s]
-969MB [02:13, 7.65MB/s]
-970MB [02:14, 5.95MB/s]
-971MB [02:14, 4.70MB/s]
-973MB [02:14, 7.27MB/s]
-975MB [02:14, 9.86MB/s]
-977MB [02:14, 11.9MB/s]
-979MB [02:14, 13.7MB/s]
-981MB [02:14, 15.3MB/s]
-983MB [02:15, 16.6MB/s]
-985MB [02:15, 17.5MB/s]
-987MB [02:15, 17.4MB/s]
-988MB [02:15, 8.24MB/s]
-990MB [02:15, 9.69MB/s]
-992MB [02:16, 8.32MB/s]
-993MB [02:16, 6.33MB/s]
-995MB [02:16, 7.82MB/s]
-996MB [02:16, 9.10MB/s]
-997MB [02:17, 5.74MB/s]
-998MB [02:17, 5.71MB/s]
-1.00GB [02:17, 7.11MB/s]
-1.00GB [02:17, 6.39MB/s]
-1.00GB [02:17, 4.92MB/s]
-1.00GB [02:18, 4.14MB/s]
-1.00GB [02:18, 4.86MB/s]
-1.01GB [02:18, 7.03MB/s]
-1.01GB [02:18, 6.20MB/s]
-1.01GB [02:18, 7.96MB/s]
-1.01GB [02:18, 9.25MB/s]
-1.01GB [02:19, 5.68MB/s]
-1.01GB [02:19, 6.43MB/s]
-1.01GB [02:19, 8.35MB/s]
-1.01GB [02:19, 8.11MB/s]
-1.02GB [02:20, 5.34MB/s]
-1.02GB [02:20, 7.10MB/s]
-1.02GB [02:20, 9.14MB/s]
-1.02GB [02:20, 5.52MB/s]
-1.02GB [02:20, 6.50MB/s]
-1.02GB [02:20, 8.25MB/s]
-1.02GB [02:21, 9.13MB/s]
-1.03GB [02:21, 5.57MB/s]
-1.03GB [02:21, 6.82MB/s]
-1.03GB [02:21, 8.74MB/s]
-1.03GB [02:21, 7.98MB/s]
-1.03GB [02:22, 5.63MB/s]
-1.03GB [02:22, 6.87MB/s]
-1.03GB [02:22, 8.74MB/s]
-1.04GB [02:22, 8.98MB/s]
-1.04GB [02:22, 5.54MB/s]
-1.04GB [02:23, 5.77MB/s]
-1.04GB [02:23, 5.58MB/s]
-1.04GB [02:23, 5.35MB/s]
-1.04GB [02:23, 5.35MB/s]
-1.04GB [02:23, 4.81MB/s]
-1.04GB [02:23, 4.57MB/s]
-1.04GB [02:23, 5.26MB/s]
-1.04GB [02:24, 9.65MB/s]
-1.05GB [02:24, 14.2MB/s]
-1.05GB [02:24, 17.9MB/s]
-1.05GB [02:24, 20.7MB/s]
-1.05GB [02:24, 21.8MB/s]
-1.06GB [02:24, 23.6MB/s]
-1.06GB [02:24, 25.0MB/s]
-1.06GB [02:24, 25.8MB/s]
-1.07GB [02:24, 26.3MB/s]
-1.07GB [02:25, 21.3MB/s]
-1.07GB [02:25, 9.70MB/s]
-1.07GB [02:25, 10.6MB/s]
-1.07GB [02:25, 10.2MB/s]
-1.08GB [02:26, 10.1MB/s]
-1.08GB [02:26, 7.52MB/s]
-1.08GB [02:26, 6.71MB/s]
-1.08GB [02:26, 7.55MB/s]
-1.08GB [02:27, 5.39MB/s]
-1.08GB [02:27, 5.58MB/s]
-1.08GB [02:27, 6.73MB/s]
-1.08GB [02:27, 4.99MB/s]
-1.08GB [02:27, 4.93MB/s]
-1.08GB [02:27, 6.18MB/s]
-1.09GB [02:27, 6.92MB/s]
-1.09GB [02:28, 4.84MB/s]
-1.09GB [02:28, 4.74MB/s]
-1.09GB [02:28, 6.40MB/s]
-1.09GB [02:28, 4.83MB/s]
-1.09GB [02:29, 4.27MB/s]
-1.09GB [02:29, 6.25MB/s]
-1.09GB [02:29, 4.65MB/s]
-1.09GB [02:29, 4.35MB/s]
-1.09GB [02:29, 6.07MB/s]
-1.10GB [02:30, 4.65MB/s]
-1.10GB [02:30, 4.21MB/s]
-0.00B [00:00, ?B/s]
-0.00B [00:00, ?B/s]
-Download complete in 02m45s (1025.7 MB)
 
 <Figure size 640x640 with 1 Axes>
 
@@ -2157,16 +1122,16 @@

Cite mne-bids
readme = op.join(bids_root, "README")
-with open(readme, "r", encoding="utf-8-sig") as fid:
+with open(readme, encoding="utf-8-sig") as fid:
     text = fid.read()
 print(text)
 

References
 ----------
-Appelhoff, S., Sanderson, M., Brooks, T., Vliet, M., Quentin, R., Holdgraf, C., Chaumon, M., Mikulan, E., Tavabi, K., Höchenberger, R., Welke, D., Brunner, C., Rockhill, A., Larson, E., Gramfort, A. and Jas, M. (2019). MNE-BIDS: Organizing electrophysiological data into the BIDS format and facilitating their analysis. Journal of Open Source Software 4: (1896). https://doi.org/10.21105/joss.01896
+Appelhoff, S., Sanderson, M., Brooks, T., Vliet, M., Quentin, R., Holdgraf, C., Chaumon, M., Mikulan, E., Tavabi, K., Höchenberger, R., Welke, D., Brunner, C., Rockhill, A., Larson, E., Gramfort, A. and Jas, M. (2019). MNE-BIDS: Organizing electrophysiological data into the BIDS format and facilitating their analysis. Journal of Open Source Software 4: (1896).https://doi.org/10.21105/joss.01896
 
-Pernet, C. R., Appelhoff, S., Gorgolewski, K. J., Flandin, G., Phillips, C., Delorme, A., Oostenveld, R. (2019). EEG-BIDS, an extension to the brain imaging data structure for electroencephalography. Scientific Data, 6, 103. https://doi.org/10.1038/s41597-019-0104-8
+Pernet, C. R., Appelhoff, S., Gorgolewski, K. J., Flandin, G., Phillips, C., Delorme, A., Oostenveld, R. (2019). EEG-BIDS, an extension to the brain imaging data structure for electroencephalography. Scientific Data, 6, 103.https://doi.org/10.1038/s41597-019-0104-8
 

Now it’s time to manually check the BIDS directory and the meta files to add @@ -2178,7 +1143,7 @@

Cite mne-bidshttps://bids-standard.github.io/bids-validator/

Command line tool: https://www.npmjs.com/package/bids-validator

-

Total running time of the script: (2 minutes 47.564 seconds)

+

Total running time of the script: (0 minutes 0.596 seconds)

-

Total running time of the script: (0 minutes 2.900 seconds)

+

Total running time of the script: (0 minutes 1.844 seconds)

@@ -613,12 +613,6 @@ data_dir = op.join(mne_data_dir, "MNE-eegbci-data")
-
Downloading EEGBCI data
-Download complete in 08s (7.4 MB)
-Downloading EEGBCI data
-Download complete in 08s (7.3 MB)
-
-

Let us loop over the subjects and create BIDS-compatible folder

# Make a path where we can save the data to
 bids_root = op.join(mne_data_dir, "eegmmidb_bids_group_conversion")
@@ -973,7 +967,7 @@
 0.0 were removed from analysis).
 
-

Total running time of the script: (0 minutes 18.918 seconds)

+

Total running time of the script: (0 minutes 2.126 seconds)

import os.path as op
-import numpy as np
 import shutil
 
+import mne
 import nibabel as nib
+import numpy as np
 from nilearn.plotting import plot_anat
 
-import mne
 from mne_bids import (
     BIDSPath,
-    write_raw_bids,
-    write_anat,
+    convert_montage_to_mri,
+    convert_montage_to_ras,
     get_anat_landmarks,
+    print_dir_tree,
     read_raw_bids,
     search_folder_for_text,
-    print_dir_tree,
     template_to_head,
-    convert_montage_to_ras,
-    convert_montage_to_mri,
+    write_anat,
+    write_raw_bids,
 )
 
@@ -630,179 +630,6 @@

Step 1: Download the data
Using default location ~/mne_data for misc...
-Dataset misc version 0.0 out of date, latest version is 0.26
-
-0.00B [00:00, ?B/s]
-514kB [00:00, 4.66MB/s]
-1.31MB [00:00, 6.18MB/s]
-3.21MB [00:00, 11.7MB/s]
-6.24MB [00:00, 18.8MB/s]
-9.26MB [00:00, 22.8MB/s]
-11.6MB [00:00, 13.3MB/s]
-13.4MB [00:01, 11.7MB/s]
-14.8MB [00:01, 9.63MB/s]
-16.5MB [00:01, 10.8MB/s]
-17.9MB [00:01, 11.6MB/s]
-19.3MB [00:01, 8.51MB/s]
-20.7MB [00:01, 9.39MB/s]
-21.9MB [00:02, 7.78MB/s]
-23.6MB [00:02, 9.50MB/s]
-24.8MB [00:02, 7.58MB/s]
-26.2MB [00:02, 8.68MB/s]
-27.3MB [00:02, 7.07MB/s]
-28.5MB [00:02, 7.89MB/s]
-29.4MB [00:03, 6.55MB/s]
-30.6MB [00:03, 7.54MB/s]
-31.5MB [00:03, 6.41MB/s]
-32.7MB [00:03, 7.53MB/s]
-33.6MB [00:03, 6.38MB/s]
-34.4MB [00:03, 6.61MB/s]
-35.7MB [00:03, 7.84MB/s]
-36.5MB [00:04, 3.60MB/s]
-39.6MB [00:04, 7.25MB/s]
-42.8MB [00:04, 11.2MB/s]
-46.0MB [00:04, 15.0MB/s]
-49.2MB [00:04, 18.5MB/s]
-52.5MB [00:05, 21.8MB/s]
-55.7MB [00:05, 24.3MB/s]
-58.9MB [00:05, 26.3MB/s]
-62.1MB [00:05, 27.9MB/s]
-65.3MB [00:05, 28.7MB/s]
-68.5MB [00:05, 29.7MB/s]
-71.8MB [00:05, 30.6MB/s]
-75.0MB [00:05, 31.1MB/s]
-78.2MB [00:05, 24.6MB/s]
-80.9MB [00:06, 9.13MB/s]
-82.9MB [00:06, 9.47MB/s]
-85.4MB [00:07, 11.4MB/s]
-88.0MB [00:07, 13.7MB/s]
-90.5MB [00:07, 15.7MB/s]
-92.7MB [00:07, 9.84MB/s]
-95.2MB [00:07, 12.1MB/s]
-97.8MB [00:07, 14.3MB/s]
-100MB [00:08, 16.2MB/s]
-103MB [00:08, 18.5MB/s]
-106MB [00:08, 22.3MB/s]
-109MB [00:08, 14.2MB/s]
-111MB [00:09, 8.52MB/s]
-113MB [00:09, 6.85MB/s]
-114MB [00:09, 6.41MB/s]
-117MB [00:09, 9.78MB/s]
-120MB [00:09, 12.4MB/s]
-122MB [00:10, 13.0MB/s]
-124MB [00:10, 14.1MB/s]
-126MB [00:10, 9.14MB/s]
-127MB [00:10, 8.82MB/s]
-128MB [00:10, 9.46MB/s]
-130MB [00:11, 7.56MB/s]
-131MB [00:11, 6.65MB/s]
-132MB [00:11, 7.93MB/s]
-134MB [00:11, 9.46MB/s]
-135MB [00:11, 9.25MB/s]
-137MB [00:11, 11.2MB/s]
-138MB [00:12, 8.17MB/s]
-139MB [00:12, 6.98MB/s]
-140MB [00:12, 7.05MB/s]
-141MB [00:12, 8.21MB/s]
-142MB [00:12, 7.03MB/s]
-143MB [00:12, 6.23MB/s]
-144MB [00:13, 6.01MB/s]
-145MB [00:13, 7.32MB/s]
-147MB [00:13, 9.67MB/s]
-148MB [00:13, 7.59MB/s]
-149MB [00:13, 6.63MB/s]
-150MB [00:13, 6.67MB/s]
-151MB [00:13, 7.57MB/s]
-152MB [00:13, 8.87MB/s]
-153MB [00:14, 7.16MB/s]
-154MB [00:14, 6.31MB/s]
-154MB [00:14, 5.92MB/s]
-156MB [00:14, 8.58MB/s]
-157MB [00:14, 7.13MB/s]
-158MB [00:15, 6.25MB/s]
-159MB [00:15, 5.48MB/s]
-161MB [00:15, 8.07MB/s]
-162MB [00:15, 6.84MB/s]
-163MB [00:15, 6.16MB/s]
-163MB [00:15, 5.47MB/s]
-165MB [00:15, 8.02MB/s]
-166MB [00:16, 6.79MB/s]
-167MB [00:16, 6.21MB/s]
-168MB [00:16, 5.81MB/s]
-169MB [00:16, 6.97MB/s]
-171MB [00:16, 9.64MB/s]
-172MB [00:16, 7.53MB/s]
-173MB [00:17, 6.49MB/s]
-174MB [00:17, 3.23MB/s]
-177MB [00:17, 6.62MB/s]
-180MB [00:18, 9.99MB/s]
-183MB [00:18, 13.7MB/s]
-186MB [00:18, 17.3MB/s]
-189MB [00:18, 20.5MB/s]
-193MB [00:18, 23.0MB/s]
-196MB [00:18, 25.8MB/s]
-199MB [00:18, 27.6MB/s]
-202MB [00:18, 28.8MB/s]
-206MB [00:18, 29.8MB/s]
-209MB [00:18, 30.4MB/s]
-212MB [00:19, 29.6MB/s]
-215MB [00:19, 30.3MB/s]
-218MB [00:19, 30.2MB/s]
-222MB [00:19, 30.8MB/s]
-225MB [00:19, 31.4MB/s]
-228MB [00:19, 31.7MB/s]
-231MB [00:19, 31.9MB/s]
-235MB [00:19, 31.6MB/s]
-238MB [00:20, 18.8MB/s]
-240MB [00:20, 19.2MB/s]
-243MB [00:20, 19.5MB/s]
-245MB [00:20, 19.8MB/s]
-247MB [00:20, 20.0MB/s]
-249MB [00:20, 20.2MB/s]
-252MB [00:20, 20.4MB/s]
-254MB [00:20, 20.5MB/s]
-256MB [00:20, 20.7MB/s]
-258MB [00:21, 20.6MB/s]
-260MB [00:21, 8.77MB/s]
-262MB [00:21, 8.98MB/s]
-263MB [00:21, 9.04MB/s]
-264MB [00:22, 9.22MB/s]
-265MB [00:22, 9.25MB/s]
-266MB [00:22, 9.32MB/s]
-268MB [00:22, 9.42MB/s]
-269MB [00:22, 9.43MB/s]
-270MB [00:22, 9.47MB/s]
-271MB [00:22, 9.47MB/s]
-272MB [00:22, 9.33MB/s]
-272MB [00:22, 9.38MB/s]
-273MB [00:23, 9.41MB/s]
-274MB [00:23, 9.40MB/s]
-275MB [00:23, 9.30MB/s]
-276MB [00:23, 9.33MB/s]
-277MB [00:23, 9.40MB/s]
-278MB [00:23, 9.42MB/s]
-279MB [00:23, 9.46MB/s]
-280MB [00:23, 9.58MB/s]
-281MB [00:23, 9.50MB/s]
-282MB [00:23, 9.47MB/s]
-283MB [00:24, 9.45MB/s]
-284MB [00:24, 9.40MB/s]
-285MB [00:24, 9.40MB/s]
-286MB [00:24, 9.44MB/s]
-287MB [00:24, 9.46MB/s]
-288MB [00:24, 9.47MB/s]
-289MB [00:24, 9.50MB/s]
-290MB [00:24, 9.74MB/s]
-291MB [00:24, 9.65MB/s]
-292MB [00:24, 9.60MB/s]
-293MB [00:25, 9.55MB/s]
-294MB [00:25, 9.50MB/s]
-295MB [00:25, 9.45MB/s]
-296MB [00:25, 9.51MB/s]
-297MB [00:25, 9.60MB/s]
-0.00B [00:00, ?B/s]
-0.00B [00:00, ?B/s]
-Download complete in 29s (278.8 MB)
 Opening raw data file /home/circleci/mne_data/MNE-misc-data/seeg/sample_seeg_ieeg.fif...
     Range : 1310640 ... 1370605 =   1311.411 ...  1371.411 secs
 Ready.
@@ -1333,16 +1160,13 @@ 

Step 3: Load channels from BIDS-formatted dataset and compare# compare with standard print( - "Recovered coordinate: {recovered}\n" - "Saved coordinate: {saved}".format( - recovered=montage2.get_positions()["ch_pos"]["LENT 1"], - saved=montage.get_positions()["ch_pos"]["LENT 1"], - ) + f"Recovered coordinate: {montage2.get_positions()['ch_pos']['LENT 1']}\n" + f"Saved coordinate: {montage.get_positions()['ch_pos']['LENT 1']}" )

Recovered coordinate: [-0.02430001  0.02610001 -0.05600001]
-Saved coordinate:     [-0.0243  0.0261 -0.056 ]
+Saved coordinate: [-0.0243  0.0261 -0.056 ]
 
@@ -1352,14 +1176,14 @@

Step 4: Cite mne-bids
readme = op.join(bids_root, "README")
-with open(readme, "r", encoding="utf-8-sig") as fid:
+with open(readme, encoding="utf-8-sig") as fid:
     text = fid.read()
 print(text)
 
References
 ----------
-Appelhoff, S., Sanderson, M., Brooks, T., Vliet, M., Quentin, R., Holdgraf, C., Chaumon, M., Mikulan, E., Tavabi, K., Höchenberger, R., Welke, D., Brunner, C., Rockhill, A., Larson, E., Gramfort, A. and Jas, M. (2019). MNE-BIDS: Organizing electrophysiological data into the BIDS format and facilitating their analysis. Journal of Open Source Software 4: (1896). https://doi.org/10.21105/joss.01896
+Appelhoff, S., Sanderson, M., Brooks, T., Vliet, M., Quentin, R., Holdgraf, C., Chaumon, M., Mikulan, E., Tavabi, K., Höchenberger, R., Welke, D., Brunner, C., Rockhill, A., Larson, E., Gramfort, A. and Jas, M. (2019). MNE-BIDS: Organizing electrophysiological data into the BIDS format and facilitating their analysis. Journal of Open Source Software 4: (1896).https://doi.org/10.21105/joss.01896
 
 Holdgraf, C., Appelhoff, S., Bickel, S., Bouchard, K., D'Ambrosio, S., David, O., … Hermes, D. (2019). iEEG-BIDS, extending the Brain Imaging Data Structure specification to human intracranial electrophysiology. Scientific Data, 6, 102. https://doi.org/10.1038/s41597-019-0105-7
 
@@ -1425,7 +1249,7 @@

Step 5: Store coordinates in a template space
Opening raw data file /home/circleci/mne_data/MNE-misc-data/seeg/sample_seeg_ieeg.fif...
     Range : 1310640 ... 1370605 =   1311.411 ...  1371.411 secs
 Ready.
-/home/circleci/project/examples/convert_ieeg_to_bids.py:357: RuntimeWarning: Converting data files to BrainVision format for anonymization
+/home/circleci/project/examples/convert_ieeg_to_bids.py:354: RuntimeWarning: Converting data files to BrainVision format for anonymization
   write_raw_bids(
 Writing '/home/circleci/mne_data/ieeg_bids/README'...
 Writing '/home/circleci/mne_data/ieeg_bids/participants.tsv'...
@@ -1439,7 +1263,7 @@ 

Step 5: Store coordinates in a template space# check difference in trans print( - "Recovered trans:\n{recovered}\n" - "Original trans:\n{original}".format( - recovered=trans2["trans"].round(3), - # combine head->mri with mri->mni to get head->mni - # and then invert to get mni->head - original=np.linalg.inv(np.dot(trans["trans"], mri_mni_t["trans"])).round(3), - ) + f"Recovered trans:\n{trans2['trans'].round(3)}\n" + # combine head->mri with mri->mni to get head->mni + # and then invert to get mni->head + "Original trans:\n" + f"{np.linalg.inv(np.dot(trans['trans'], mri_mni_t['trans'])).round(3)}" ) # ensure that the data in MNI coordinates is exactly the same @@ -1497,11 +1319,8 @@

Step 5: Store coordinates in a template spacemontage2 = raw2.get_montage() # get montage after transformed back to head montage2.apply_trans(trans2) print( - "Recovered coordinate: {recovered}\n" - "Original coordinate: {original}".format( - recovered=montage2.get_positions()["ch_pos"]["LENT 1"], - original=montage.get_positions()["ch_pos"]["LENT 1"], - ) + f"Recovered coordinate: {montage2.get_positions()['ch_pos']['LENT 1']}\n" + f"Original coordinate: {montage.get_positions()['ch_pos']['LENT 1']}" )

@@ -1518,7 +1337,7 @@

Step 5: Store coordinates in a template spaceraw object are slightly off. @@ -1611,7 +1430,7 @@

Step 5: Store coordinates in a template space
montage2 = raw2.get_montage()  # get montage after transformed back to head
 montage2.apply_trans(trans2)  # apply trans to go back to 'mri'
 print(
-    "Recovered coordinate: {recovered}\n"
-    "Original coordinate:  {original}".format(
-        recovered=montage2.get_positions()["ch_pos"]["LENT 1"],
-        original=montage.get_positions()["ch_pos"]["LENT 1"],
-    )
+    f"Recovered coordinate: {montage2.get_positions()['ch_pos']['LENT 1']}\n"
+    f"Original coordinate: {montage.get_positions()['ch_pos']['LENT 1']}"
 )
 

Recovered coordinate: [-0.0231477   0.00949445 -0.05183359]
-Original coordinate:  [-0.0231477   0.00949445 -0.05183359]
+Original coordinate: [-0.0231477   0.00949445 -0.05183359]
 

In summary, as we saw, these standard template spaces that are allowable by @@ -1676,7 +1492,7 @@

Step 5: Store coordinates in a template spaceTotal running time of the script: (0 minutes 36.611 seconds)

+

Total running time of the script: (0 minutes 5.117 seconds)

@@ -1145,7 +1143,7 @@

This should be very similar to the ds000248 dataset_description.json!

-

Total running time of the script: (0 minutes 5.083 seconds)

+

Total running time of the script: (0 minutes 3.687 seconds)

@@ -604,17 +604,6 @@

Download the data
References
 ----------
-Appelhoff, S., Sanderson, M., Brooks, T., Vliet, M., Quentin, R., Holdgraf, C., Chaumon, M., Mikulan, E., Tavabi, K., Höchenberger, R., Welke, D., Brunner, C., Rockhill, A., Larson, E., Gramfort, A. and Jas, M. (2019). MNE-BIDS: Organizing electrophysiological data into the BIDS format and facilitating their analysis. Journal of Open Source Software 4: (1896). https://doi.org/10.21105/joss.01896
+Appelhoff, S., Sanderson, M., Brooks, T., Vliet, M., Quentin, R., Holdgraf, C., Chaumon, M., Mikulan, E., Tavabi, K., Höchenberger, R., Welke, D., Brunner, C., Rockhill, A., Larson, E., Gramfort, A. and Jas, M. (2019). MNE-BIDS: Organizing electrophysiological data into the BIDS format and facilitating their analysis. Journal of Open Source Software 4: (1896).https://doi.org/10.21105/joss.01896
 
-In preperation
+Luke, R., Oostenveld, R., Cockx, H., Niso, G., Shader, M., Orihuela-Espina, F., Innes-Brown, H., Tucker, S., Boas, D., Gau, R., Salo, T., Appelhoff, S., Markiewicz, C McAlpine, D., BIDS maintainers, Pollonini, L. (2023). fNIRS-BIDS, the Brain Imaging Data Structure Extended to Functional Near-Infrared Spectroscopy. PsyArXiv. https://doi.org/10.31219/osf.io/7nmcp
 

Now it’s time to manually check the BIDS directory and the meta files to add @@ -1154,7 +1143,7 @@

Cite mne-bidshttps://bids-standard.github.io/bids-validator/

Command line tool: https://www.npmjs.com/package/bids-validator

-

Total running time of the script: (0 minutes 4.002 seconds)

+

Total running time of the script: (0 minutes 0.296 seconds)

-

Total running time of the script: (0 minutes 13.893 seconds)

+

Total running time of the script: (0 minutes 10.999 seconds)