From 7a771f2535ad97471b43b7da5b6b8edc3771aaf6 Mon Sep 17 00:00:00 2001 From: zhangyulongkylinos Date: Fri, 1 Nov 2024 15:58:16 +0800 Subject: [PATCH 1/3] upgrade package to version 0.15.0 --- mne-bids-0.15.0.tar.gz | Bin 0 -> 573440 bytes mne-bids-0.9.tar.gz | Bin 896882 -> 0 bytes python-mne-bids.spec | 45 ++++++++++++++++++++++++++++++++++++----- 3 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 mne-bids-0.15.0.tar.gz delete mode 100644 mne-bids-0.9.tar.gz diff --git a/mne-bids-0.15.0.tar.gz b/mne-bids-0.15.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..5302090e62c51a33e15e646dca2c18f2692bd22f GIT binary patch literal 573440 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

>ac6FVeR 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 Q2TB|$aiGM3|8EZb2WBzrJ^%m! literal 0 HcmV?d00001 diff --git a/mne-bids-0.9.tar.gz b/mne-bids-0.9.tar.gz deleted file mode 100644 index e3023f8eeeba7c6c78c2aace29dafc782a113ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896882 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 Ol^g);e4z1_HrLw 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%0A`LG9dRy5{3%n&l#y>s^AY$3D3I2F6tP6TcUp7r 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ν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

Z;0mNF$ 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ⅈ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

E{vb9pOm#6V%EZI$i74%y(s_Xl^vI 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

N|COPwIB)3_t@(58^cB5e_U11gfQ$a2I< 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

Y>=|I}&(dmTMPy}G8@Ffqg&W|g6JU>I_yZYIp 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 z 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%0Dt`4Y?Ma>C*-Op3ecAN(mMH55nQ>YEVZ!SHKD| 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�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 z z+!R{8HK((paLhQyFy{#~3x&gbyAV<_%ONxx?>1Qp-{%L8~+Ws~x6Ws8}w}M%Q-#%QC7V7o&M<%JnA< zCV5iA2-UvovZr%S`{rqzq_p1#Q8wK|n0l%O2lFs-WP1!T8}r5EewgE>Wc&f}sa>7n z4fLWh5q1J6(SqD<=xTN;4y3*h zN;Xw8OxOs&wVf{SagH(b%XG69-HxPK5!NU1>2H1nE1n0wSZt$=hr(mr3+37lBH8-Kh0xLO#I~A+U1D3 zTsx&$^E%3a4s*N6PEb0K6vaik;ZM;abHW&22{dYJfwON)ddI^@JtuQzzNKoz<;NRT zZKSm%B14I-^e-SFy(Z%N^Aa_#{oUQ$k8pt9ZpwNL4uxQVf3UE(z=UC~1rn)81+x5-O%3D&w$^;jLP#Rd5pSQyW!7FSRi5#io4$vFj( zV=x1}A@06`D3=t*af2F?`JE{D1i5)zG>Q50k?g4yErZ|Wil$g*aOo(65hIKuK;e{BI0FS+}R1sXcq zZ|MQyOpf*bjMai6@sOKf2u7ul#st<&>VY_+xA(VHm!pu)*LiZwJvqs0DKuWH`WL6i z&+R6?z-;TZE+#S>oX~!+9iYot(WhNauk~xh3*dkwFvC2o2=f|!t%)c&s!jP?5)n1L@g z2eydMY{sSZG(afN+ax}GA;8!SeHtk3eoq#5OMFufgdavT%|JUpf;@U@QNd;o7vdk1 zOK{+^4$P;K!(zlj1eey!)Z^$_xa9cV7cn z7(a#Eq)AQw)WI$bx5f3-nT5ic2FX8F|5{E=^NX$GxiP}W6$-I%uMdJE^a_?u_H`BT zx1b#ZGD6X0po-AmQQ21ENgGp7qx(wrLGj*UlQ8@0PT5iQ?x_qG2n!`38XIQxL^ur` z9;0HDewj8I&2Zk7p^B1PMSLZD+x)4=5Pf)sX(8Xo3OkZG39_NTP3Ne+$hDjS!hoA^ z6-seBdU*ur;)hoENKhKLJ8}JgKJ>jg#1ke~zqUDC#t;KjxOO~28D>92jmqF2?p}qI zx6r@kyrsartSw?`L;`G@hMn?nteN0{^O{6voVw2hb8{Js8q*GN^Kow?>FJf8E1NaiM4XVnx4aeD zq3TXtb%|nZ^7Xx9c~(Eiv1oh|ACNUc$ZxIAuJXw9B)-iUs;{Fh40a5hj=@Pno*8hP z{g{fsj@weUN}rJ_FF3_CgU`PYjIlbJOFgubj8O%HAc>;&Prytf1c(HlKU~mhypj$l zUvslRl=53!qU>d$<&aVKE!=BT{xc}(mX+=|P;-u97h&*#&jVE3h zI3n;&=BVxXL{!+=Y+K@%KabdGyDeq=&5gL6iNznfsaE&Z4D zrR%UGN!LTg-CKl>Br@|$MPi#~bkjKHX3RXBun%^8>Ibl~>STJ}m*iF*3yv&cU5WUP zv-+tr^mf4zWG0rW zLukP+^3@tSqYJjTMOMn+L9?jm234OZV^kfjt;xlnp15f>wXL5d%Yy7#914RQl(8A_Z-w{9 zg)L1Z#$9o0K_Hr3AQh*PT`GDHyhs7FOy1LmkR3ysnDyPmb4iF#7?~O7r))rpXnZ(i z*pw8mOG4;Y$c&tt@d7i(_aWg+)5?G9o>k}K>~;kL=Sha1P!lqeF3ulZ81zwfctct2 z`{F;Uf$MS35$VBux&tFlg2#h?=T{H>&9KCj0uAyWn#+;}B|xIEJRk$0E+RtLU2?vXDj2 z+zv0izg%MRrfVi3(DSa@Sw+s6jmveN@Z~y+e8R)C|G$*~C$nG)MDA^kgl9oV$T+VK zmFv;z?NG9hKtXkP15)NgsXl-wG^hpkc+mqb4k3ba+L0Mj>2q8fwojfUye&fOU+ozf zNYM&UG|d(lE*wr*FauO|SZ2aE)^qHkx+>Oej=VGTRbuJyFY-^z{_U+A2^6B)mXwoy zzts7wGCH}X0Lh)gp}C8jtd3T0_T3b3D2q&N!rC=*e$X#_M-CdSQ4WlKOKdT{jFTj# zweI{n^%Lkhb0+Lx8w2wRlm}l9lw_+yW(7go@xR*=W@86crpyL<>weayJ}>9qe0CYL zv(~uHEF26=TnrNEWWXk%O!Gn~U(Tsas>MX;a+t#+P8FKAP$am!L%swtbI3aA*0OW_ zWaZNgzThg`f@PXzXV+(jmABR#kcMi!Xp22FZUm&h_;?DI$JI%Zal_TAep8X5&1kw4 zsMtA@xI5rOBeJq}EKguPf5P~=snH>M)2~r$UyFNOheK%ABWvoSi&p8cXCh?4_V~O< z^GNZMk;cv=kzRM1=8-Vpl1fhaA|^A5DK9#~9up6!rSTKut>Ay}HTFE!p1J1J`D^1; ze87b6MO_pfZbj~D3&4O{I#NT50_|y88u(+_(MCJ>ZeAnFBkd)Ck8(1V<7DZE7ssJ{ z=C&$%%7F-@mr$6dR;Y0++`Qdd^iyeNEyFNxpdEamFEC#==TU+FwOdUW43?{yd0ki@cg6MD;pO|x>Uz&&^sqt>!3_<4GoG4p0cPZbP@_wN5 zhVJ4IKzx1JF1YvTORt475{Ln`HyLFl0P6*>og&EzEZmr2Ub=-&Fz#I@#Zqe1(ieV7V(!CvkKw0nva|2}mUe z;ztntov;=|0gCWiOYbgLJMY|I8CKjNhKOjYm63+X>Gx{&JZ}f-`52^IPiwhq=buI>ojzA2sBJ5o1&gpO9*dp%$*A zDTM)(BdXuQ7=6@T*_!gP`B5m!T%g3CA~Ig{m3F-T{dZzLE2-NKr2M|Vx)-=-;Ctz{ zHu;T{=J7&Y-d=d#D)H63^?RYUgYSmq1;XvOw1Hy{m}1-6M;Fq@SG$EJ5@u~#a{<*G zG^Rd=!=$8zyz9B`$GIMfm9Id5kCfWuiKWH+2}^2FMzY$i;*3lir^+f2FS^SdkFOMz zTU4=uLk{+XOc?G*BRc}4WVCtV8lr#1)t+P51VTAtgyA{kWmtMj;)gR|ezE)?tf|A* zFF)~;DdArDxFVq9>g+F*a7tBnp)4h;jd~H0ZDsrQG?E9cYi%f5O$^g1dHa1$nsij@ zSOvFAGGdW+gngl=)FO$iFPyEYqg2Q8vmim{%42tdsK@GSuZ-bA|9Duy2*5t*W3e^o z?Xttmt+ONuEHC})mWXy#1#f>aX8p}OJ|Mb>GT+dVIHtoZPi^|h zBP0cH(`|Py%@Ug>#8okyC^w`WifJdq(|& zu|mhVV?+9v@KdSAqQQ>d>0IMCg6pUM5}UuNh((c=K$qhN!je5MQp}eARh5nSDjOtxExIBR1I-au z>gH)9tX4xXgJ+)$^ov$Kg$apZ#Ze;adSH1?PcZtO?PT!7)AzNsKUlXWk0Tf9BtDBt zj$s8Ylg-^56Cgewun`jcBW{1xS(L|TCBPi^f=Ox2)U9_rFe0ocDH&%j#2(kT5nF2W zM=bH`BA7Jqwclth%t6Sp-E|rHR9f>ScdIe_I_bBb9cer=oe(6TEIyY@u*EZm{&NFSVdaJX+7Xw_bpYWvD6wBa7dUQY^!Y*?=)1|KHRYc&&U3fvX;q&2YJw<) zq$`Mj914rMgkv2ZUOhB&oBg=H$r4^MH%=EXEeA%%kpuKt17{PD*E?|of!P4ga8zB* zq^EAJp8+Zz@@BR4Mtlh^_p0nLC-B?29^~C&0F^8EW_OzM`#VpPva= zbG2$`pA~uKKstbe9gkMumix}Zv*H!q{Z+uJPWNkr+1Zs$@~^_A!hGi@_rzj8KIZz) zWHEqDX)R4FLKL%lleblyD-jC{TVH&-r&wU*KN;XIZ65;diskSpVtGiNqaGT`$u3U`$$IZ z@vl#^wa;0E@lLFP^&nZ(nlr$kid;{tOI_WWIZ41is{1h~ut32?%Gf;-%b*-rC zBjBUBY&4fEqt0KIyFDnGB@?s`eaS>VYZ7Ce#MMH_vKFJzT#qD4*A|X>Kpbcc(pk6osA;%#NSK+*vi&-`CaQd?DD9)Ih{<1$P9$#rP1S3LX({wjn13D zZq3LYn$@gCm3HSk8Zx@CrT}nan<$_oOVQiw(Mp3k=k4E*0(?;PG?Hi4@mJW=Ii?5& zHTf3{Ij&;2I9z>~YfQ)l41kOkdUTTL?)m$787}j+HO20N>7al=x^oOR{-r&;*IM~d zhMf~qC@8oWfr?*#WFG8#&1n&OO?hxUI8*t^=V2PX4E(G{)F*Y_pM!dNI*h1G*ge}z zz>R{=+}7yU0mH9=u6y^!&zJE>z|(nP4!%fjd%*=c*TTW($8q zA-|hGu)2^kub>0WSh6xsy@UieU(P#n3ke1@>^w(ZD~l+UpRT}r>*iNX8sR;9eXH;E za{g{9Cu2*>NHuHnYgh!Aq9_rK3U*lHNgO`^BiT72p?xm{Zyf7gy}`tVxKH+(#+b7F ze;NelE`tw4f8lA=+4zB8mfDCrmuf2R^bv;}JKV$eL9B{3WNC3RJxRJ}frThRx;*VS zeah)XWJ!KXKw&9)U?&~Yy!w*@THXc84R)JU2|&McN_UlVg-d>7xQhmDF?o#&k^YAG zhjtF_9d0RU6#&YYjg520X%bp%+8$tYQK$SpHbn1ocAt<|aUosX)f?6+Q z(w^1C&RQbY8XIuzA6-?X#Kb9DNLZbnIeS!o(z}5Kj<#7)Im!OV$a7FHBN6W#FyzF{ z-E#tM8Q{=$>crGjjfKf6{csV-Ho86LReHv&I6b%(v=}n^5ufPGJj!lCMSnA_lHgdn zf3(5tUx@4!o5|?Y-Dp#AnM(?kWQtM<@&dHAeHyYL8`dcBYujR;9V3)jOefn^Y_Tc} z-f?rIrVYeq)1Z_c@w|uG!4b%d5y|lK@gmXkk$-p^XI#>q{;t}(JWIb1TH~RGVo;F8 z?y$(+r%T}8^Z$4FH|=Ake^c7w7Zrv28aCN>IazCaFMdoy&T+=wD=BdEJiE2JCBBziH2cbhv~50t60SeJNl(&mNT2kf_Q=*D|ATqc`6*U)?!mPGu;jjM(- z2fuShZM)ExwaRW14Fu_D2o*2ozF3=bdRjoNlh8-9_WWC^UeoN-%+{~jq|8rEo8QUw zTS@R%y3ORc_5Uz2S+%c0Ht!2Eo4J12yn=uE8bhT4lf)H*JqZ*^x>1ZUg7VTvAig`I zQ$hMFe~mj+--PBls^dT2W$fz8CMe(I)30ZSy{YLa6Vk4EReQ4|K*%iNXHTM)3m5Q> z+pA2BFNSSaYa;V?Qf14wb-Ag0OmxaQMXcvD#dYw!Kl|L>0z-4HANCbX62m92WNV6! z$WsHLu_gByHs~WlX>OtqbN~ZD{J*J0x7>Q580jemL8-9#n#_0+r=lX5L8jNF?xiM5 zE{iLc6l2%!Kjo@2C~}M$1~hxLi9k?h`{VEpto<7mEQPU8pzl2R%&Y};k>`0{@|5W- zE`JGHD8`jlxe7Tt*f>X)Lo5A@(8hqQZ&uYcj{2eHsqw$*AT;pO7+pROF#}Apn(0^O z>$JV7yP-Ff@F~?YSQZ#(%IyN^UV9F9E_!J8(YuiXR#ikde2K#4#=2^ysq;=2c2_2)=0XPCHsQS|Oyc!OXvm zGPjr&2(IifHF*bK_WlcV8wlJ2gjD^;HNPWx>IgsfNfD>U|G&$wLaj7=`HoL4IjZ-- zVHOt8XRvjVqE?A&M8yX9KZpj zS_L`kX+nlecdhJTP`%^*@C3dh;;qleYHk1sO!~6`390y}`iSDOn%>swij%x+p?$}? z=jfmrsc9fT%3NhTsbd8%a1Ez%DK-lM5zQB|_G6ornt%#16wiW%dbAKB=@S}L0F`i) z?YiHj`;ZaGR~6ruG(6lx!|^n*y!T#viS{J)sRecrZBl@fm%Ss~jKlJC#-z~pnR<)O z_(RWzZ1PxQ<9z@~3DTq1RM>@gg#U#Xjr`*c5a>IG$xN9fozk&%ZmG=1w5%jn>D~ql^J|TMx>4 zy3@?RIcKx(kXp9&RLq0+P9mYG-=iVUJk;dqUW{$(yuE}e+aAD3k#1U4rBvq-R9dR3 zwTua3Q@RqLh(K6+V!tlnJ35r@^I-cTxY4tNf1OS4|>}R zp44S?YtD25Np!h)V9-RWffX6Y6X~!N6w-~7FJrUTt3M>=jvAh|zPr+HEXU|J8DhO| zG$vaD%FU)A)Ax+9=J?=;yA|-{)@ZHmQ9`29iyYPrC3e=F=vSw!5Cy6b(QwY*9;j;7 z{E;E#mEOXZeE~I!zdJ_o1jDV`iY4aBX-w3A^x1JIz;N0qA%AT^2f_T z)-s=i-3OB|tH6doCKb$lzAP@YB$Xn0u<)0zct9bJK}-JGjrPTglGbcr%9392BOiDc*Z?XwPtQCk>7RyTD2<3VuHQ)@xU2H44j` z&LJ$GgfbxpB(wJphR=G;+x-{8D=v$(dvXqMRHlCH12k(+e$HDUVeBSO_x%-a0U@fyRW_49r z231!bnKc~ZyNpfOfS)T_ofM!Er``TNh|m>a^k*P=20yp7tU=)lSot;!%H`z4NH zt}0c~zotI?^9V59u;+r)p}n$;KnA7}VQNTf_lgITwoW28hf0ZPg~>d`;l9h}g*`(% zesR_jc~`s!ekKPVvg1~U%8kpON9KdK=Z}U*f=)xO0j&+wuHc$Ky7)2}Rr+rqFFmr| zVO;66G|RkO%)heHW5Zeh;aPw}W-@-A_9AUE6;B%e1-gNKn#;o}RYhD#&(_kEQ;zNf zI7yQJmR!6jsrvJtD?8KK_Fa|{7Muf*PTd3@Zwde}u?*G~>n@8E^C1*0pDd{M{-e=M zvZ7m4E8i?c(TS74X<>XvqTL|0Ompe+!@njff-BUYlX2B;3&b_~eDX*gWe zZ`pIc##WrYN~ug3{=UEys*piwY*X_yFQgZE_vVA^-AWFqUK$V*gi^~idip1}6 zI5a#dR7skOm66uH)Zi_q%A(ABomdO1%!EGjYn zKC-zwoEB9QG@+MtxRE6 z&I2A*?$L3fzsTkRxp)w=tySOyAoASZc@H7Mco-!%zTxZHYog`TZeKxuD;Jl>WegRuAE;KDQUO3Pqrx6f4)#>Ill~tc0;g9kihV?>Hm)>mPw;z{-QS^ z^K@_FIBnW}avLt=KlhhRS{8i5(D=?&_|AvF#M1R|CsN67oEq7r0Izil z$rB9*Hkw+n+$&4}0GLvE>YA!t*Mlh#;5V$@X;9$!(~;e6EUs8`yfn)Lry}VxZIpFlp4yAA<}vT4-J*>iZ!9acDJVTVKe z8k_r$&-_F`O?9AoYrjV+gr!W~%62W4Ijhv>kK21DCRbsA%__tOd5p6j0rFxyf@TM- z^S>6*)Ca?Uv+o$jm~kdaJ3|OyVe_gf!A)t8TEJCA89ErAU)s8C4_=D9rgQnOJ)&}QNZeyof==+h3 zEA%Q+Q)~OrKAKH)zR6AxW2$QP=5(ABNJg9KPiyM>Nsiw~T?&V37~N|ec1#%7ki#;` z!99Xl(!B-jC%{!ugv|oml6p7RRKa+# z@DtQnt7xf5dYl&t`bn}{_n>vXzC7!F8_;*=HL;ifPtpV$(X?&xEb}VbU&rHtRbK zAsU%#n-ZH4z{sOXASqvadHLuFJUPGqQ13!>Z3Xk1A*Ew%HobRLyEou zX-V>jk=zhzO1>N*b8=W}>GLL3^;Dem>{m&)H07`D|k>cLTI0 zHl?Wm$LZ$Wu=!vvm9O@rU_&z_NnA%aAL7iHKT<2aid%wAl957CGIFp^zi)D~0b`dY z3k~Ki1IHhI?J*3tuL)Ah?!tA0MVaP8f+Q1EP;t8 z29_8dsr9EM6<1&FJ+Ryt}b9G2onsv<60;e0!g zP>`wh*wV~1oT7M?x1E581*G6Sx`5;9(D`-$_YVXtB1V`1tDw%&kde?=^SRNj&3Q)L zA@B!|Jm_FBFr=OuLn^Otg}iu|1#03T&B3u5@iiT|h!*~}TJCloT4+Y*wPuDk+tdV!8;&j?2bH1ixJT8;O`_V@!4j_jo4t^^Y`V&i=Wd}6`B--Uvb-i#1 zg1xTn&T8DonH=oKZbIR(s*wve8Y|eesxL7x0Z~cKG9C1R5DfayTTCR5YG{KA$_CzQ z2^!oEJ@(+F3r8cli9)y^oC__c`Jk@McZeEfa~(~4p6JqF6GYs#Qr}yWSt;q^#NrPW zyAF{of8CVlUwAoTxwi`(@QFSj&HWp6Z{4-A!6XoH&3nC`6b4XvR+|L_zWasFubOn% zNy|~|yh?dTeiIW@grst-$ZwWowNue)4xroFj(TOKX<O|kA%ln&rB>Y`?Ycv(wSwx@-(mtLaDbDHSuJut z0C_FU8g=uRdteBV35)4?d{c%1^n~a+!2W2LFeiR{u-Zu~*v#kBTQuV5;Dk{ok1_r6 z{Mj+v5k8|&A|Vnubi4g8!&rf_-cD^vXPVBV<&G6`5*!T_;OTxCN~jeD7Zm%U1_4}Q z$F(f~q==OB(j_X->P!b-^o_Dc#)IJBruIqG(3CyO#eWhoxc&SRt~%q6c9vS=F^u%h z=L_8JAq$X4n*0|5lIn$#=R|$w%(?c^D#}!*%%Sx;hqp*lnS97Cao?_1`If~4O~I^E z`;}ttU4(tOM>2fGXAGrFvJ78(wR5vH~-g-v;;fl zva5w)?6V-wV)Tk_UIA%9zX1mJll{s^a0(q8#~MB69&E)V4PuT2>>V;+SZWpEFI}R* zEM9C6$*g_9W24vR4$1tG`wdHp|k*gGLBk?|Bmwu(}qn$@*`h+Ngrz2~Um zV`VY7RZhgj>&D&&*ggjiKJv6tONDv^t?7q;YHjQ@Mzb~nfe7-^f%*fT*SI}01fMG| zOd%Y~cttOz={fw)bw+5;hIxC&cpgoB<{7T1g-AwTbtZpo3lV^0VTDXl{B=(`TpRer*oo8xA#%><6H_^>xE57JXeb8?n>*aCh}?aXhzURDOjZ$3#S68uAI=$04 zr-=s?pi_14YY$cSWMK)_i1tq!sVbQbndC;P@;KS-<0-hePT!p@imKAWBEN9TqFPm* zLel`y-naD8gsoAV@BA69lDRQU*P}m2YTc6J=*(41j-I|np#&lu*S&1R#>eOVXQcfC zy{Kq^8!t0gfiK5!;x(*_b?eO`0WV7P4JSW#5`+)G8@j1V&Zj1^0=RhQoNNyJ#S}A! z?D?hd>sb~^Q@S>n!$*{!*~fn96k2a!o>1+qKuO3BF<|ZJZTYvsXqd#se=QrT2ZJK} z1wZM-4&t9l9}n;DK)Q6m-b>T?FLwwmNsrje^IPVdAYfkxjC9mnW`$o&&BtCCI|HQ! z>w`cg1%W2)lXje!@ZDlOq8EmoIF3L6(@Sc`Q82$<<}%QoNPjAd0ty?H3yh=*O@VoD z^~TES&-04FJoH^rNOSLT1x2p+W$~8arqle`z0_t;!f4%lszbmI{r1Ead4yN;KC3jj zELLaxdi<_s(P>4s3(27sl&871Kr6b4hjBi7{bH&wvN{M}hsY>EQ|=*{!Ryd^a?Z*B zItyEB)!zp*%Z{1z6Nr&|^q&^<7ylIxXm9#pK~Sg!bN!k)4@^~98~KvG=J8AzCr{@t zAF)b$r6969J6fxFK)gqo+XG+vK57hDw@4y2-?dlDrS>5^>8jYSTl6BwtiMDs+_zw` z$%Di1F8uMiFr*Ut;K74i>hUZCdoBu*OPT&{JRn)IL=-Ucw5M`^{j@Ovepd|n2GyW{ zY-3cid^Qc@Ts0T_`(b0sGYNBIQuU+cZ9C8mB;*=w!D}!7lRo_-8m9CB0NuA~(D?YV z2NV{KdS@v-u*mpQI8@t9agS6lYwpFeccD{Qtvi(xoxo^*BEg*5;jH<92Cs^5#3(y< zbLvpG5oi-;+IjtB#E{-gZADUAd0fX&EwW`kcVJC~@`q+_UvM_7u|5=!TS)-`cft5csI=<<)#@d<5!qqQKy883W&y*jzEXcQB**BIZVbhQPWBfK<3iM_obZ3-M9#pcGDvn30&GX)|4pQ3f*X?wLlqMV zO9%RufAzZ`LOa~DDbZy@fqaUgob@%dLv+u(7r^bLz|$9z^y+AD>tG^sZ@)?AZ=jN- zW15K`rDo5!V~o$-2zjU(p$veO)*pwyKT-NbOk~9nfS^tV&*{rewt|COMOz$KCyKY_ zVF8;DY^HCxvnBOp-e=DeVRkoWr#Ak|iJ2$lpDPl-1A08b#15Xa4WcZysvI?91bI6H zm3^7EhFxQSM@lB5y0Yllk`-aQcZb;%PI;sK?^JsFN^MhQR?`4I8JMbjmGt-5)_LiK zi}J3NAZR_H`=o^n+S^xoI94m&9h|@}j=DeBZ(_^Mzm|7iG-m2#3M5B#bhAKJ$w#IO z>xns%=ZeTBGPrS!VXS{r8V=e8A4;pmC+lO_I-k99HF@ykng5MPAqN4)EEUj;%--w^ z@~k>T`ylo(B48Huo#oxkO_7`Lv)#hlPLZwJD>^Pto(~iT%1#(bOmaHd4}vYyC70d7lx8LY zEo>y)X1viUw8Z618U6NavywufYPq=$YBJEZA@CulrE4G*1Q(K)y|!!dqeDB0oOmMfEb3!Wg`7>n$ zpdcg*qFN(<{~>J{%fozGBAtA=*EHX*P#SV!))aPM;hRq^V!KH?1C#s?e2;3gA>O7_ zHR7EPdUmi%;w7@;@GMSjLaO{6OJ(x##mw%p<>SGt!r=mAb9U4rfe-9)doqeC%f1+n829>g9b*84Q; zjXCixddArx^WJ4!69E3(RJc}MFaR{GNH4yEtmT}$gOn}r7%m{rhZxFpUnp~#%Aq3q zq+JS_IfQ;Q*WdMa0G+gMj!tBnYj(=lsL%ay6*W{r1-iu+V-+LFDQj*;V;Tt=c~ev+ z*`gJtTEI2O8^&LlADw8Z!d7a&%88H{qXiS0=%u0+0RvAkW(A@qcS3WCOUtofpO%ph zEXpb`r8%nLjKqrSy;s<39?t+KCN~K8h+(aR)RAnS?quGDGZ>4Ve+4>J3vu5>ka$3k z#OntZE?uidL1vhWz<+yqxBVnOEB%`q-Fyfj{+?7o?2ZyL!*~f#f&}I+Jw){I9-eZe zvD@ojkQp#XoACYq_4JqfHA+Q7qu^~E2;95s`z0m39z^7VGhsx&G&8%KFK~*@7pi^@ z2|nmxtIcp8O%2;Ew$l_txc#fbSs$uQvNM^)`XKCO3i*AS)L3dB<2s5#b%2dRCG_RI^TXR~mEbWu`pGox5uIrF+oO46-L#C=b+;(jky56m zBzRcrkLaHP;q`=?nDW%Js=mmQG(m7n`25FsLg=Ir%C}F4XyYKr6*}_cs!sBi;7YnKX`1WGE{> zd;TBl1RaJk^`8yJ3~6wiPxOYp+woIF%m`~SPEF?nK=!_sl6+nMT1zy`;#W)j<>g{2 zlRuijWNmqKn;ijeoH>$2tgt21{)LU{IZ|Y_*5F@dSHN8z#7~UL%q+3!TsQ-q?d?7nz%o8xhmo^<_!A@xC!x0TO9f%*kd{%9VqWp438+Jqy+l z(fm-)y$ueu!s8FM{5W>qmVp@xipHA3_4l0LO2@=Ja&v)8yl~K2cr{WJpaH-jmm`=V zY>yX3ah@dy{;H?$e~){$5kbi>c*?M1`0xYg*l#iK?Y?8&XA2x)f+Jn_R(Z}#;awXa zY-YQQL?z1(esVkz=$ktb9m58tRvEca1JmcF9}8L3Gy?!j`*+Ic5@HJ>B2t9TgaZ@O zoTcZ5smX333Xl<23QBuwq8EaWS8CMi(PCx<01IvGW>By2BT@IMpkroNLru#Zn4xUJ zthr;D6Zw>JN{nNv{d6{%RjJs;hc(N3@SXg8=nWx)j3Ap2(bIY51fse${WeEx>cmTv zoMjJ=`ylaeHOKkjfm6Ss6sz|Zzj4x#Vp);Le5ugTZLwnTg#)S$J)64}4zCk&5jkI+ z@CtFG)~nQowmO8;%oL7GDWw58=rySZMTw{dvpqyZ`RkR;3aYGx(Sw5T6g5CRI!6I> zxa2N2{3XU?Q?j#d6&<%&J!{fvd3S)qr>mN4@?Qrm!~}N3E+8K@A~p;K*Qu8U5aaDn zWAQ|;0Qww6>5_PPRm zFn}XZXFhP*6!z^EVpsz{HNa~oR@+|uOK1I#Fm(!##1 zv>^y=6F-+aYB!E@RN`gYjlu zl4JZs=~pg)0LS8O5~5om^SSYM{AbBw2iSWE0Ub5O0LH7}M+Yg%lvY`96y6LGJ($~8 z{R3<_AmU5T=S>PwAj)}=__-6?-uKEMO=%5Rv@VpDx>wEd7AZfeT{!{_Lr^N3Ib_vq*;?4?E|d$V%`z=lu8BEPz26 z8Hzd1aS zCA|ycFC<-saZ1GSG3LqV!*_kUTN!cUcgot|@d~sfAYUm6w5n+fDhuC(P|{saj-v)j zSHc?iDnPqnvXwgg#T(Q^1v0}wZ&*I~;Y2~U2ECR@J}P80+ZHJOrg+nP%-gNEz!&Q) zv4UaECV01b<6>!va$(WWy{Wfj4Ru6kq*f1_iAi2aGvf9k6ZV66z*6;w3Q^Wmr1@@M z&t%vmu~sdZ--DR>#%KYXlp{nL$_^Rf?A)}cvxRL08NkQ&^K9)-u9}wJ-P=9ZP|x2QPt*pCcF@=J zxdFiA4J|jHXVi_TnlIUeB>>o!r$RoxA6au{-n(_^m2=Hub*fkaqCwjDR%NyNfG9p0 z+!!hZ;pJ^S`W%MA_E5w2pE{{;8Y;cQ9%iv>I;tRxMhxW67Q$_-e{0II`$W#~L3olptI+1P6gkyNRnZFe+;z4OFidn(%Gz9SbV(~382g9GYZjJ3njuJfF@Ajs7K56h==X0OTs~F!SgwgJAK>5Hx&OF z0j+wQ&<(EhEke+ZbWQCUP2u8Og`@QAiBN%y=AUpPpbDsY)!A_bCABRm_&&fLual?J zo1>Y`jOT@A#(r2oQNK#mfZhE_MTDtz5YfV2g#R zjSFE2ZdR34)w@15I{?IH|Hs2i}r`DYbHW>h?AuTjaa%{AV*YH^M*}Y z#=5$LeWWUxl_c~Vbw(wpRYJu~HT#WtaX|0f-_V3C!the6fo_&h=EZ?WHO!*C!U%_`G2w3Nx=N7c$6h zjx=K1*;y_U;V=Sx#k&u-9#^S^uy`K+sljv%**ge@w@*x6SxsXl3Mx22z+pSoB$^y_>{t++dSFsLI^!Di%!$m z7RU!dGse&(A}O?qC!b-BFpLA$h?sF#4Z)@fCgkRZ2<(adJ(nH*g7Aa5F8N%)-;6c1 z_iZyAe~}wxV}Z8)p4`NMx*<>t@>J(W6gg1A*lo64ZjbEiwU^oJ5;ZL0#<99N} zGc%uRj1Ml5&XR}d;<}ek1k3tFu7X8gV{t}eAhCm$ax=8@=s`1^A{DOll{`Z&<;;3J z88-23wOP$?s6}M`Z=qI8Qg-GkESK~pLiJ745A?o+W42Y!fcErs=B+AiAR|$G2{q-olYJo0 z;^ImEWH#4oPBA6OTLPQwndPeQppJuK>@A3pZVoKoS!n_^plfO*i1qviD?#H1a7OSM zw5OhN$a%S3tS`!(phi@i1b6Nb_5y3t8q)6FmI6K0K&n~33f52w-tXu^%TGWx_tLSz z&L5JCqjfcY5e{%>p$Hw<6#u0$0=Wd7;7z;(E86HdnbfgO%9TF^dr{&h2OFaJwE&N4 zb4YcTr_MTs!O@(wb@NrP=L}$o9v#(|kFI}>`=Ty>F#eauNkPP9IMwO7$1UuZBEWY} z0Xd|XLJ?&&PKP9U-T#_G^-vK*Zams&;so`Hl9EH%kQxbCW zDofLY5aSIAF&t<1vi&Mf{xVOtUMq0wAsgMu*SvhjJ+VZy#8NlYB%lzNYmE0` zym$P zGZTy0b$@;>Y)%A;jMd++`ArlGz({9}EC_;l+j}aOI%!~cIJ>z#GUM z#jy`TkYts}v`cZ!z;EW06bt;Wk0T#z%Tm>?-@LQ^r|naOj7Z7XMxgw%;bJK#GFBUD z@RnFcBz>^}di%$F;8#3xr93w`GXv!OEFzauwpkk51?$b_d`Nd7M3j$7*hF_9eFL)c z|1GGpPUoSn@nBqBH(gmP$>v!Enr9r&WRN=|gzro>NbrV9T*;DzK%TF+_7tmIl>VQf zf`EV5ox*k_#hSkL=Ylq3yfnb_`sD8xzuZTV@|0sH>g!~mhpu8NNjWa(D$QPQ%vu!( zZ%<;5jgd9qbp7Z$NV)Hwe=ZPtYtoIiSPPMObwwkWrld*)EGEEcP@au95JToD<4mxJ z^LuhO4ve)+!(W}D;Rd-#)NIXOIUI(zY}GDh-L7M|rP-VtK15P5@c=|;_YR1=*r-7C zp+`*aYDM)*>P$<*h~Inh^p*jB_Qb6X5(*!F8{OvrL3pqr{TR`T&{dG84?z{iAJ(jD zu=7&ll8&A5-A|rzdB!xT^xxH^3#SlsGpNjWfa2JMlq0Sar>#tVunjJt%S)=)yDhcA zhvTrt#D;~6W72AaFc$le!b*6a)zOG|gK9jT6FosxX@A;?0t8PveGIL$-{d<|MtwFg zRJXEL&vVhlj3?8(c(~IPedL?#t(x|y2a$u(l?#@;~+zvFTvHpz0jfw ziBE{Yifp6({MgwY{`^WK50AUvk2~y5sbQ)qOR0YY(_FYFku(En7)#b*`k(ZdIXt@hhwZLkLSN^hGD;0S000Mj7_ ziBRGs+QVgyCplu|<(r|UIqK!O%?}ae{%*#2~ z&mg=47cX7D(X9u|d-DfQ?vDM!B>_-6Xbk_+zJ>7{%TN`EU~#|$(Vs0-g4F?zm{Vgc zMOJ4x*%GR)IZ8meGqm0^G$;IfUU~g4ehBTF&Og4UU2XTp#vpw}jHUrkgzLm3o3HeY&gPRgP56D7H2zoxzCLH}Lb=`V5g1#xKVBBI_yZFD zqJVV-QPrWfw;?6ddG;u zZnFrzDSM5`l4`84s3swtsW(8LD?&0fQqqRPa~Af-sh{$wljwqsBXHg`POmNww>hLy z!+GzVe;-4-4#3awRCUY6h*v$q$Z z;`RqaiUwtHApbLgzd<`%*A(P4dyFNZBI|FBl)zo0uWBXqtwt${N6njCRf8w2YuZDp zPnp!o$Kru78DhQ<@-;u#5vN+i;vmGI&FI1hQKM+-=P9#;YO{)Ln{&camJ5F4AnuQz zCe8)T8T9%DJ|?6911OZL;Btd35}~BP8Lz6}I4zFr?H2b*CtdqCKCCIG+)QSu!=w5PrAJBVqaG*VM$$uXH%VG|bErcEI*=W7{(6J|K z>H%+)ZpSda^c!v^2=rlLR}G9{tEozi^xCi*+8xx=tTzE?jORlg@?>v&w>9=o33_*P zbmC>f9&~{nM%xabP<~Ztr;zzOnCmUit|)6XhLkj>NPO`tOVTWFEy07u8tA~B zED8>$y(dWPD$@X4fE=J(0<(TmAk(eBR`<~P#S*Wu62Q^(v{WLXi&(8fR5FSON(d(x z;J_uMmU99Wjh~$B7{gO_{O-lqK`=%LF{PSicoM8|YId=?w4U1cOr|M74Bg!oxRQaf zvxa@uE{UGeCskT^USiWSWAK{rWfsZv6Hz+NlC0XhDzGpC8Tn)@rzR0*fEI6%MAsp{ zJ#Ck~5daR=vNrhhf(~EB@(YGn)^q`9QaZdx-qS=Rau$c^W8~XU(iom;7XpIDc;Ov;@G`3r^}kb zR_C4QShbBw%bKY8UJS${eZB1IBd*5PVfDf0&q@;n62Fm7z1Hl1zc87^@ATFrpCzlr zF+aug9WtitF38WYtxG_73dML~I_qwH;=v@j8w7rS4cMW)3dAsC6~CBKy8RtC zNfN&Iy3A4su#}7P%NmSYS%Zr6_8@McS1T=kPbY0)`cdW)X8aoXe+iGk##*LlaI87Scwr#VqZQJJk=lgrs z^X9BspV6LqvDZH5%$_-2*ZD*2qPBr^v>-ZxxwT9#IJH~l`cq|bnes-qfNb5??*RMu z5LhB%Ob>~3S;s1cOdP`}bM`H4$6eu?_brubD)Q{Kq4N z-M1O~6zPI>BF8i>F|S1>9-wUOcfxB^gu&^W!%g83;EGO)2j-_aDuykL0i{4gnO6+R z<4Qz8g`7-&pxRTrzFsY8Ay&u2T`Qf&F>>}dkk>t3BDOgG$V&jJ-$A15wssz5%-clQ zh77V-SjVS<`E#!(*9BLt=D_?Q9;=H&%**2n0z**WSW>292$lq zfSy{yMe9K(8Y&z0Jrv@s+z=BVFZ=#Pcr-RJu4)J^< zwPc>Fwn=yhiF4v+?%CYte%8MBx)t%(ZJYS_KC^8bKbLBm)9HEgFWRabj{WcC2l-Km zOtD}BlPYKL<1_Qxu)TJo{TcW*xrd~^gMz#nzOzxmo_bYVP#hLXqe=vDlrVcX0{woz ztYYb)B1^A!tDTV0NMznp7NztTdVCoU4|4Ae7n4&`q7Jw85)&y zF+@oU@_%ClnU}(_*fq82_snlO2$-FQRzP5H)#y}h+a~z3>R_`$-uTd5BReWo0>Xk# zdBvve;O(N*ZJ65#VLXT4Y!#6lJg^s2in>OE8bm@)s<3^25isD0v*PB~JiMX>)@aoZ z1cfVh|47;N_O;1WRM0DZI}3GjIQK(ZP4QHH8?k~&1y_^r>AAK-i4k!V)oP@@nxU)vNvl&W&s^(7IkELk)fa)i+v zKD4HD^WWlkAeKb$p%s7p{FmS^=*>x1`oMVsm6`BHEq)7gq97PEe}yOfeQK9Wq|>XGI(>H3RtC+Rx!s@I%840Q$NGWm*jOp!deI}2b*qT(MP zvLIq0ZhPw~sOZCMGW@uR+#!b19LTWZhu*x(ZkSt+F zD(F&Ap35w&FaA`m6rM&M_Zna%&tr?Jrj|^B5B(1UTzkZl(F_vP2Qy^GK1~R+P93h@ zrj6yuZ!jTy!;*RtrYbKi`6ikCrN_>@c!+>wxY$qH`+NgX5EJo3={OY@+Z;mbI6B?% z>I!4=5lVeQ#TG%yC@}PjEbiDms!7Jn0Ii)kvn}a2-yum+fqpr)U0VDlt;LSfpL-VS z>go%kl>-CPo>lnIo`JN?ayHWZG`b|zL9GZOw*iZ1IlVdLt(=-r1_GUeEbHIXrFOvk zM8Q2F682vwC^L3Bn(UV^rjET5!?GBg?O6seTVczHz_>Wc! z#6;KsW&|N8es{RZAA2-L9XhO~4@DN^ziAiO|OCm9@FJI*S>+DM)$@ZH+B)0l3y)d(07gjDr54bjOBltlz4ohMU9 z+f=MiZq6j^H{fq3 zPJeB0c?X!pzS?@?!Fy7KhCsO7Ug&kGO2>luN0JY6M_A!q7P@1eEdkViYz8H;80S8I zSZkU>YAw}`b@<-U8I>|jkoe}yb{$w1SF(;#$+Zl&`O56HzRd~%o9#Jt&ZID!LfojVM3h- z&Shz7X4jy^%CG6T_fKQ9wdX(3{`S`;FG`3yQa2HKD$Hp&mDLYJlw8Ln@aF?!O(9}x`RskjDZH^3^NmNl!lN>>U2{*C~i}4 zoZT-NRI!$d>^|dF%0wIx%ytEX6911stLIx=cPxa!QNs!+17FBoXVj zEQln4vS>YKub7p^&CK?@Av?fhHc22yo1B$(^AB^d&~1}4<7zG?c zdiWL5(@tJo8$q1UXKAz1KA6?FTV{Id3|TZ|{ELIa5Pf#a%ZGU*^BXX%XLIa(=U)%; zatth)99vdD0nORu2prUh2eW3k>+(((f5pEmkeR4jXUv(sTsv!^9h}$7VOBG*!y?%v>Y5pBcf-mAM{e8 zgk~U^2`e80f>G;}p0gH%R#vI8reY&ut=L!>F$8t9yFWF;6`S!|fB#Koy3=pjFIoxa zCX96yro<%Ql3Ne##bSF|IkMwpBMd!wCU-9Tjaj)>J%9a9Lv~TeuqsNT_nmcwt|`*Q z4o2EPx8AAqq>%X^3^@#yT9N?ee2i{0Evn1|>vB$LL^Z-Oex8UXRVu;B9_6`F4r>=K znUUki#v6hD_i3R=KNx0>?7Yiq=Ucr+df}|i-xu%xe;7mBElesASQ!0-}q*Wgq|+m zJ|98du}_0nP z*Tk~7KsJ|8?ZIWMUmRo0?FVvoU7xz}a&E^fRvM7k{y2+!#4>?N@}9|cznM`v`p~_! zJ3Zcb0N@yODAl&iXLX;_%5-MvEdU26O|EP;|1zqZ_YJ||brXG8S$?ktWNWZUIWvlH)h+K)Efn(0GP6iZk^ z%fU%e->kC*CaA|sZVn#&S_}1u7;lE3iW^(z?1WeQIQGyP<6oUG9k-_>9u%hV4W6u( zigOU6EIBl6;Yrhx47{sG>(iYSnn}49I#(QJA|tMnE(v~Fh|b_FxZx;vaah(=KBp)j zFjo^k`|L?RL`SfHy1E{=ZAF2I=}zeQZPxW!x}D)>tov|Yq8iiLTt2h-qdWr7CZta} zv>!}*@l{4UUNHIe$(YPAy>Q6<^S7c9_rI;fy|b0mT58-Vo{A9<_jZ*IjGZ7z?K{g5}Nq21ORzdIhv#i^Uw zUw+kn+~oqwNv43-Qq(6CkkCvvjh)Xo@0S|Shl1>H z${#4Oi%Ud>+_#!*D%TCX_Z7ORqW4iQ!A&_D|ksckfDUQ4x|w z>6Rq**VisujVw?O?wzYwX&ZEOa(&}jP2TOFQMF8el*o`v4f-KQqKfBL{Q7i4dwt3& zVCV4S<_!VUgG}3NPH$eDWL9JI#|=(u3QL|trI*Xisw7M{19j#6>07;1I*Pkq%jdqg zH3zwZ?b*Tc=M#r)Xj~debTXclz76&1-2vj<$cF8Q04Cr2!DCifqW+n3b2cGfx*~B) z;h3V4Q-8buTa)vG^is4uNzt(!rf(Ce>5*IF?Y#B!fgVzYX;|uDQS;k}-q4`SUO*CO zJh0QFlA$T*Q~tNqa`ng*Vpl#u`wCNh5e)Pcy68W+3O%5&y+b!kHnP& zsFCQrzFMG?=X^J=J&cLIpct8fXv>I8z$&GA&$Mpbst%-!0 z%X86}6d`8o_ZlR59?e>wB>)};-1S>8C--GFAlfA^36=95cayAq&afh`TFkuH#L3GG z)(L$)&3j9lRHEcJx11)nafsZwi#PS(Yp!2(9DXRB`1n==P5OfdlU@HAAiI95|HgF9 zKf+t6i^LHVj41a!J*=!v^z95MA>6jndwM+Zj`hGvO6t`2ER?u$DK^77BV=RJ+Va$S zV>wU%Y-d7wcIw~Es%JGuK9jIpHv%$QvOY}Yr4(^UesDbgJ8!@lm`C<;YiMDu)OU=0 z<8q}x+!%mWc*!q0R*<I~wU^i6frY;^Xl7o~f0{PbwH*zfQ!k z?))>a_v4_`fZb!zEx5S|W#%8CaN=94K;L4n@b$+vU1PG|)-mo%!O4Ax#7x(;h>}|N zB>>0fovch#DtV80sN$R-XqbA%PEG>yxO0En(pM|t|9LC^FzDp!y-;3jGM7d(gF`hI zcP(sGJ*IB}VrOuX8M&6$3B_pjveWi&O zkA#P(HRW&pkuJJcbUSuR`kDJSNoEWAGH&fzA3IwWCU|Cw>ghk(@fP&ja29a{9v4}T zmXA4XPsbD0+J5CTKNd;6ufk82=^iibJkOPp7k#K1^~B|Rol#^|Ian!X8^zy8c_H00 z5)(U`Xg%m%;oCgZw+@AFEH`27&3ZjtJ;}bOiXt^9hj~4Wp==~Aka>Rkbmjs3H`5gi zyb5gv4xTQ?3S><&UiWl{=dU{L)B+m^YM4C43(CZ+6JEmteSI2AvRY5yw+ZD;Iaezua2ayWKxD>R#h_VQ~4cCU_U$e^`o}bc|lSpNvUd z%~ujwZH1LuF@EICCUiV`18-4)i3X0Q;%hEDK*@qF{%}S&Dp+~qy86l8u;^l96s8uX z598ir$>gU`dz;}nw@@bHKJyLtySeN&PDT9J?-nx~%1Rq^-;S<;yEjcEK5vwpRW@CX zE^~iM=Ch=Qy?Cg%h`F~takV5DZI|E5{l!g29P%4^BMP`c%)TA7Xd+Y9i;O|(12C^*LlrM zbr&a_oR7zFZ=7oWzyI1jtv8p-6+0EYvu5fS8%#7fJ32tS9rdoYl&dKy@moz-bq><@ zwUb=tC}`0Dw}P$E9I1sVNg2S(-D}pxF`9XW-mAP&E}fc=Vp^y9YZM@~1l!<4OUL50 zAqSzK*Dk_lUP^gqaNwxWZ3~ynTckI0DoOCT`Ky%sL>9)`^8Kv0m}nJgWBz8RIvVy< zvpt2e?l^ib?)2PFU4O|?RrLGo?=EfnJf^G*>{){gw8<4sbQrxNFw>>CgP#Lh(NllJQK>VRnYF^?9F}e=&3fS%jtU z^z?yPjbIPv(Ne?$!p5cjE4GrApPowpEIHt5++TpVG4WE)0)G zRkuwA#%wM(CQETTQ+j-jTUGnPvZH6_7xZ?CNOA9u)^7m@I9aVks@@wAmdAOF)KmwZ ze7`i@`!~!TG_YZs@jN|N_4r1srC(kQsG~^u07~{-M02~?1M__BDvh6AzGpaF&8G}o z26m@mMQn7B?kTJ6O80Hn?)$T>yhkutOf9*`0tYvhz|za5^`wO9-S)j^0ACk2wrk$# zwel2G^fY}GpT(N@*u?IqISi2vnp)=+xuxc9y+d>SYLJUBnvUa95XTH`Xw*me1R zVPBKqPRND=B8eFZ@auEM*F)_5!?np>Lol|Sb$$ZQLi|ciC(R->pubW$nd+s&!{n*! zIR9F(E1CAO66yYGJ0nw!5!uWW!HcB}SWPd3zEXr+sk1cJeY>w$vUUa4Jr5+3^@q52 zHG$k;{o)6wB5KtYao5{r&T1G#0Fs&7Jl492-{mDUc$$w-0L5Gwj3}XUSuyux2A0r= zi4_$1*G?89GTF%}K-|tZp)-qN`n{`2uFLVcx5p-A4Lbb^T=pV~v7tpsmxoX)Y#uH% ziA`Y)rt=9WZ~ObrlGXBL1}j~8$D;F%_gc5K>Px!N zG+r)d4bO?l#bIsL=TG@Y62#N6BPzsJ&w_Fb6Flinbnz%+?WNqz8B2xLYuS_Bx;LVw zEQC(r+wo9ru*fiRmAd^w2A#Wzx%e-O_*AFlCn8{dT^C@XQ##GE5+cOb(z|GKF}oJ< zmZizyp?rSz{xFKTu1vwBcK@ipAWSs;v0U1hEvXMUU%$fkJ#yR&&?)|^fce-7;zRNM z$!Yqr@F45C4qUIWjQxwHu)u4;biY=K^4>-8tJ(cUFq%LQf>6QNq!2yCbu= zzxdOA>Z&gr@V+_L++bT%=QLuvGjS_vUoAWw%uzx zDe$4Z=!27z`>I#D5vBpi)9mcMB4E4ei>H%w&;t;&1=85)cs3rr1|ASkA<)g`&CdPB zLgepC(JBDm0XPwDpVwyuYyBU z>Sx^^leGmw#cZ<7f3vGRK-%d5%a$TQh>uQk7?t4Bd1v@L{onFSTOwLK2dDKv0jIb( z?>uC$-Nd?O#Oid*GY9te{@d#1utRAWhZNzAKJ2v@TU(v$mTioCF4+c5nUl>$o4*8) z3IY>RB)%H|R2*&9yf+hhT}hp|`m8*jQ1$n+DQ1Iw%=BXEC^IDgGJdq4+%gGQGGSez z@|xZh=nuLLPL9WyP-Ej++Zt4*9mrj2+P*hm(97Y+%omw`jkG*OIZjD&BsW6HV5~vKtF)i3*zzTWc5tpV^MVJHgJE_beZp!I$d5+WIZn@+HK!Ej}IT1 zfB?J~ql2J=XS=AtF;31@Pp03~X{UopC+0}p>CI~y+3JGNMT!@efnr?W1Q~2-**!-p z{-Mjbk=WXuQ;M zR~@8$XhRWDx_C){F+HM-t9D6wa+fdciq%+3Akp4AN#_givW%vC%s@Yhpf9OvO*>|D zTPb<`t5`U`@o@An-{&m0-h6<#`gI}gPo0jh_iIV_WveL8ulvmir6QbQ0bP;|w?qGT zuDzxr{c;Yf7K0Uk{^pPb>!_-kT8~IZ4IKd1gAb9i$5as7P39|6+q?HXPXAor z5eS{=%_W+d;Oe#gx#AFqX94@ko%r!+Um#FD%U7U5B5buyZv*|zMZJnZgXz)Z=}D>G zS8bwv)8_MWckkVE{CMfeDtmE3Nn?na9gcxx#Uv1B+Z@w(Im_49-K0iV zTi{Zz!DbA*Qk_xC<1>5mm+h~HOn)ZQ8&W(edOf3MQ4Y&0bsn{^_T@V(Pe$nZLzKhqks?sCu^S#|wfyBN^*Pn35U5n$4F zRDn(?&AEEdx;o{5&rOvneF5E2A>#r3?L$QWUe|JigrnE~`rZUS7d}sgRjbKC za;3LBJ57Py!V~ir?_Bq#kI!1zJg>NZW#&WM)zVs$G({-aln2^Y?r3MPNmW<*&!h4} zY^~k300%c0J%JMZVTxiD8n4syn~4dO&Wk&5o7m)yG6L16mu68OgD}rZ)l2VdGw0Rm z29d(WXbYRt=A!!)>bDR(UjFXK-L})HT2PM=?St2g3_oKVrn$?it? z`$vCe<Pg=h&SgxXT3$^hnbZSU7@LeyXh8EW$ zcrC~0@IwD6nCLUljM8uUaeG|ups1de;jn_=>MjLtJ~D_xKVeOwC*a|B?>`dPa&sio zwl3I6m-AT8qxk85ONFT-AYanP27JQk9#my3>J)r#{`k>!RDG>9HTB#`+pNE9QODh8 z&o+#b++?SMMJTJz^Y%2UPGYyvh@$^A9HG4s9+{L_G3PVaxm}C#$mOmxuWxnrRIlnH ziNvH)KP%t;j)fkLMWd^vYNK`W`P7*IS(o9n%jNvb!XIO4^i{D-|Lm_$=-+I*mTT(U z)nLBhqjABv%gHx1QyGob%M=b*)#AIURhu$zo987r7+ryl0_mpkYWngdUxyMXyeheIdeSFmM|TqABR!-`6=PX>b<&572ORXBpC83HyY!=r;#O)-4u zFWVdAqY?*%@*j+O14gp91IAsuc{3w(!4pFO0`Uj>E$xA z4`Yb&weaQIz&NclO}F_p6#I794Vbd%DU)#F+}tlom1!OOEJ{tVVs4(bL{HSD(mx87 z9KB^=tnc2s>k`+_DAlc7`m*|78ODL7&TjoY%hP(fRwD~0vH%yW-}A(#t3LX-mm?FUEK4mH8$TuB4WRt4s_aJN~L>bdb?PlCIS#G zaGfa?Tdu}s5;5sj)ifyDTo_{%qj*;8-Uv&@_{Q#hIrk}JK5urWyn$j;T$|E`vBf7AI^PWI^+)}9hHH$8LgkJr2rbS*Pv z>UQ+(6*vDqxN6MrE$CA5 z-WKKQTbBy89Fd@@bMdquThn=Uy`A-hk5?I{e$7d`Mlh8aC#^0;5scD_{9E4NeNpom zwa+Yf@7L{e4-NTG%AOT>G!MYjg{&+uUib6sP?=G^r>%g#+efWcv-OjX!yoE25*P?xKJjHf>S01S_v;`&~=)ju9?F&mi| z9Z9duHEVm-J{(^C4QL)8S20!w$?Iq|RCJgvwS=NHtI;?&c$Hr>npSUh>d_T!O_yA| z1Oq>|L=9awXLxV`*95L5H+(S2n=UbNlU#c6+1 z5coC$ynVEVFPH2@197(5ynmgTWnl%%*;=-Hmj7tH3c@vMb{fE_+%Dcz8CQ%os)vFf*uN4|& zLV8oflB=85KAk9_1i&raR=tFA*&f7lPj5R^_&FkttQo6TNrm>VpE zn`^1iB0@KlPHo>f%#VGImzI}E!S)3kE|5`2#GFMjLCb;WPdcM0I)B}n+FFQG=Ufk*l8WFrW z8|5VSIt&oqOQrO)-CFidH_Y#*s+?4r1&co*&n`|B6*3gJR(6urJ(8)CbP{YdUw!*u zI)NXD3_lpYJ5Q!>TNQc@gd@^=J)%4xOodnvl`%&&MCyCxn@^EoAYX}t$|9lm1sXx$F^DbISp2q(TzZ4wY(wL{;d={=`oW-9jQU$D98fXss5$ly< zeZJfTUPJF8mM7{wb+A1~5joK{iWLvCNhFkMa(XP*HV1#BCU}xYm+dD3OU=d8`z+c$H5Y-5-*0tkrEUin4fLN7KW8_@r~v zG&HZr5}!$8r)?Whn9b*qojJp1N2~HyBWIPB|Dv%xwQsfSjo<8js-8@B*k38-5>FO9 z2HE~I4C6GozM{O`M5alcCf9aaySgo$rmw%1HcnTl6!glQ=b`mf-Fhx)>C^ePxasQs z)ZYY1nn>Dw_t2wbEpK?KQ+4GFc5rd|lYM8+tv)wn|f# z-2T$?yE3XS87U!t3h48!^?dvXrHrvsA2%6b^|euF3IH<6A({)ykljk#N1JSR1}SZg z(YaP$rOm7u6 z%hLJSEfwvJEYGt)#LF{a#_mP~aa>X3JJpCA`*WdqmD`uNCd`ZopVJZ}={kmHlt3vsp7ZXGQqDE^GfN!SS zeiVy#M8#yo2R$7MiU#=$c5AXYRk~oWGb7#wVjNTFZ#K_rWlCgj?lkPVK3CT2nb!?1 z!w0Hdk*13L5TmmLSk~>%xORkMG@s51&lo~~G-gg3v!z#ry+;chrXART_Z>?utlU_{ zulTP?FGq3+4YO}zFJZVsmXMq@oDov>A#_1%BOz6uX_InpglsQis0%eH^o>B^Vl5Of z+6`RfxUCm@T$hGr+G`_SUYU&Z@Z0rPM!EX2(9BaDORf8%sgK77nYgDxHsklyE2HHo z8~)}w>0#`6MU&jy^B*tftjbm$Plj7!mN}HAUt&gl)J~P^OjfLQRryY8 zwp5+BnWy`aT@G@30A3nIoq`f5z8a%{R3j+UL2TT2f2Yv^fiQqlxh6z%6kl_NC{pYh z=;To_CB8=~(Sbu+;SKYE4I;|Y_}iCACeE!nWI|eW2RRoYolw!(My!eFwZQcmg9FmE zBBAh@!$}ca&dZo94qa#^%hxW)mzu%1iyuw1+b!~R zT(}`N1Z_aEbF-56)u>M4R3N_NJYgvdImt^VP6DMk(loGcu;~XpMop*Ou(Q+HsPD~Oi=v| z%L4MJSQ63pOZ5eqNR-74CZz25pxZ})4H|O8+tqT<7S?3KsS-bqh5ohDR1}Iw@P0VU zyO00-JuV^5B3+qEVHqm z|2_YQ1Y7(^FDwi+phXB_m06O5X;e-(pf!}KTdl&G>q6tBL6oao_XYpXL5BLzW?&Bi zxcjN$*V3}_e+7bNS_vVGT!V4L<-kMDllGXBl7?vZ;zEMYAe54!{;G^2gaF?_C>BKh zRb~GP34Sqz085OUho)>znga*k+;Lzs-R3Gx9Mw;vFpLj1;y_ z1$w?%I~O}lY$pY}-bhH=P~uvUu--(I_c|KV$(S>iDqc|g!!Rf|Hj_eAJEUe6+WK1p zEA~=@IiDsUgh}{Y&oL2$-O;M+xCUDOpxEbqb_t9wuko+I91=}AWgc2s?IF5QMZQKf zKVehw%|;64TDams7W~?uti&A_2)_m2VEiD~$O(l^XHYbG328LYIjM$s$ zyI}WqsvPN>`>UFF5JNas)svRhXRWvAWSlXioJMeEY-gNBq*WZZt+&T~QK!($-_P6I zxRe^a=DlA)V`(s+FX69$fPZu{8{&l&Z&xxy+D&#jYjQ@X?z4ntU|x=MeWx7 zM?rpZ#qQ8LkQ0Qzu)GLOVkg?b|1kWXKSy*S`?}^9a)v%VY8B~DnZe4LH|#DJla^M{ z3wVkuM;TB`|G6mpb?`+gp;LsESB`SS=ZV~Y50UgQ%ZMkX8<_mjfvn0+Ev)+I(8PUL zCeaC9ESQEogbQD7QW_O2trC}*yxdVCpyU^q;ozi8(tm7E%lrGmyAdYAO$KlZ6m8Cw;s%a@7^>H^+UAkPuSAD*vVnK1o_ zaimpPY+B5JEn?n6YKG5I<3BUx9%vIs^CxivC|*h*C8<2Cj^r|3JDjwkSG? zFE3DKr4M++^Z(;Re#KgZJkAY|jw_ZMoB#Ab$zD}+-HZQGe^}kK;2BtsD5OXm!*^o6 z3@4>ygsiao$^R!P{69a!Uw#4-=KBKDOLD&a2-8`O3^+Lc`jR9aMd@RE4E)Lkl#(xM zRxL?_6FLRWpES0p&Ho3Mq4fy zV_#85Sad;l|CggYS6qL*AFxT`CoH@nkh0&{jLfbf>^9?4FITMC^Q16JWm)!MVx{KC zjr);!%899eT*ue+FXQHC))?}1_G6+E2a2Prhi0;v$mu%cY6Pz^EO4_FvNF)nAodVb zg*VamyZ6EHmAg;TDLKPkp?$*?FMpYmQF2!NWGf-TrNZ@c)=NJ6lf$x8FAG9@{}cwI z^#Tlukr;q#<-6Na2{2Ct%ldzDd+Vy3CUoQ(%?^qblAmUq>vFH1la z!>8BtImu9Ktk^GNC+PX(RC-jpQ_|-uk*W13QYD@Be`n09^8;3>*D7|HE|)J;>vtrr zM}m%D@3+7fsQov`PYlQQwHK5^)~EMj;PX4I%QZwMC@qftuoVY3p4DAamdurLm{l2q{eO6Hu(+5K%fe3QB`mO6hu6-8d1`gabNGsbt2<#V zU|Liv0U(uss+c6SiF8qsLRyI-$f`**)}upW_=MSs_I@F~Dfg%)nDNNgTU9?6RI84s z8bOX1-MVkgPs~f7Zm!v9nO(4usp{2WSt3+0cFAnu5vF)maru4effKc%g z&2CM)vl%11OnAZZxIzaUydvt(_h4Nms85vLZ*ul&NX_Xvwn}1JV&DR0CDGDiWl2yF zgO;vw;;Q1)Wcj*GV+)|xS3wQX(dP&A2@q#P@zh0KV#jM6B=^uwHy{pz3`5N*2Z6{w z0PLv_DZt!63R|MzO#S~A&ohbVRD)xJgGkC%gK061Sc-98&obzR93OyHpHp8}fuM<3 zl247VkwPcGL}MIvUa7BvW-r~URqxfxv{O6eSmbqB5W$6^FQM>Q8ML{bu7E5@wudfuZ=Hz}&ztP!PX+=y2Gfg_y3|LvBC)piCOAB%Jq?sP?7FR3@);UutA2=EX)jX#dm9qzD% zN@Jr&wRG&uf-4IcWt8_^m)SMa+;ffnv;x7^PfG88$3Up-hZE}IkwjmYA+s5mHQd?# zw<`?pe%-#3;5S3^RTBG$)>1Zfy+;5-A@|ge#4(>1i8@u=&xpZLwS_Zy^~YYguv6Lq zk&QHLuv-(DG5?{-o>}Y#Dp)}EJZego5En(&;2a@Sux65}j7&pVi)cDn^Q-c-LN<2u zDSQfB;wWa?O16#~97L)MKMb7jhRu8*($IOr5XMAXkd3MoCwIa3ShzzcamYS)Kf3)5 z_;@vlPmYxHY0{(~tvM?t=t|X)F!>Qzb`Skpy4VmUJWbleJ|XS_BNjzsn~7{% zDOg|QcLovZf9RqWuxoy*dkEjZar%WVb>s4VA3*~4c!Fs!2k9l3arA-Tq#33co{`2A zMTD6e|6WRp8tl>@d*B`$WZuJ;_uRsPWZDC?Xo8qDgYkYh&zaM)^rrN!x&uE zLC80!}Hx;HQp6w)i6*{{<?Ro@=fu%!Q`nlti+;CArz;_s zCj9zEsNA2QEtiJYmmtk+kq1W4mFEB_%H!u5;xVY=;!2+)tNfjlQX8I^n5vp6v1qu| z{@ZDyus*L`MkzAd+{I81a8+lAu(!pxsW3{F8SJ2f{iXn}6CQ&`%+Q187hJxOXHRN@ z8SI=ElKmo$o$&#@>W4P3@K3NqsnE=`T|qKiLl63_G8fv(J}I1GBrtyURb@xAMKfC# z!Z?0wYSR%?*6}>2<9PPn#h+LmCS=O?bhoezh`-<;x^SE)kM>lmBC$(xlI{0;3F5`=jje%Q}i z=%v`>%AZ*QS(k80qhPwJ3RK7UBfBhel?aFk7nzK^@eY;Jf(VJ%wAO!Uy`4#do&-=o2~c%9LIG9cl{s2axHXh5fiDfHS1f#YN05l#PO<-w31QAzc^?wl?BvmS@2 z4vD@ML<2Szf4#2~Nu=nU=HeVx@i9q)^s?X7BQp!bL^T9z~Ez*LOz6-++xPb4X zGX&PyC)H4m=@`=L6}4d&p*nJ__MQC+0mDV;#;s_k0-<+jO${b62pX;~=zPmp6j9W& zr!pH1uTWBd&_8ka4=)vF$x6%p{(5>ErCIWu@nzB9z7QbI`)uaY1kMFVSh4`kf*itP zss9D#bIi`$Dqh!_eHF|QFy&z(U(KIl2heflh_?rUYudr80P3V$$|!in@tfdRH&IQD zEi+iN_9WJK8g%&M8bk#6)V#(8KkAyyu{|C!qb)2UB@`4zc$QtVqeWHYdXlaF`203Q=>zZ+a z(x_0WbELA=jRbX#e!95wSKId69RkMe9@bbfM7~W*v|&;PEB@L)?JU~`8m_o|bvWiRl92GkKN_A`#oizCs3vW@WeYS}c3EowXku>${VZ~XSnVXuip+~~3EEtDm(J9X^S_ZSmy3*82IC-Jq9_fsAt<=g% zr&(-EU^EZJiyAf*%vrD(N^k#6h3=YPsE27GQ3X@o!l(g170VbQjtCNg()|(F5|}Fd z`(Gc1x|xV#=hOh?@WL-zRT)*?(~$*<3)os`#{QBA*Ta3H1*rL6q4a;fX6!$8lOn0e zsdmJ^acto;2l~m|Z)ztq3d8Sdgji*Jz%q`$qS7L?DwpO3(*p5=5SeEr+g?+MR{$k~ zEc;12kv>jWc)?>J8}7$xKA+d{8RmE_@_iUV#V-Cd%#PLv<%=MW8F6el%cf6P1u z^XJw-NK^Wxo)wpMfz*NnGn|FEqiX-wUMW;#Ru6k8>;*UbHPIZUS+EUrMUw)F3^DnQ z6NnSS>!4E*d1l9hCUgANgVX;6Hbl{4>i7Jfrw4bkCTD< zOTqlAA|;u_^*o)Y#ZW1n+YPqz=tmO+J|u&0xUigo91>c8H4e+-6Ni!gb-C&<^@^Mp z_L8q$^3JPY;Qbn_Y_& zK_zof+k$<^>Jf)(Ek5L<1B?jN>l?aY1ICJrHOFz_?91#-CELr`5yE?{zpbRS@mQ7E zJGPO#x>GWJoXv2-Yb?m4Soeg;jav=izOTo+psdzpFulM3In$iVoZ+J|%AG&|4-&%MExZO z7lbmu{|{C`slS*9Qh~qS0f5ASC`X1wFj%Mnnn(s3E|K)Ir^I#Roj+KnW0fx|0=NT7 zB~Hl+D3F;l8s%c@^gk4r92&(uvE~sxL5qy|;{yQq%RUJJD)PWr02l;t1zbcBPv!F_ zBNr=is3#n|N^)Ou+_W7J$3P``#xeZxuf#D8@n^#^J5XtE z{CV#AkKFSgx#vG}|NismKfsFE29(OjpZ>_|{D(RS(4EWq4`op9`Okm!{0CYsqN~ew zXg`AT9no`7P(jO?o}{49N1(80bbf>&%9D@l=J`ZLR!1e|PKSwW z-i`yi#g3EiM=nq?xt6Z(R^CDwoMv9PDW;ynmbFH(l-BCaCVjHV^EnL(W0J`*E^rEb zmtiP~fcH!zQ%jG{+xm>E28<`IUS~EXP)Rvt{MUAZ1jJ|t%W4jF)WHwB3zy>{D8h~% z5cs5ZkSX+V=;#Kn039Z)1*=?tFOor|cx}k?plU=4gwrkf8^+=MC z2ep>OBsf`2WrqEHX#%i2i5wMt52f Qpj} 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

q+)hpds*5~LoGVNSHVT28%Qz|6m;&_` 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νUQ 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 H0N@$`ytmEs diff --git a/python-mne-bids.spec b/python-mne-bids.spec index 6026716..3a1d42c 100644 --- a/python-mne-bids.spec +++ b/python-mne-bids.spec @@ -1,11 +1,11 @@ %global _empty_manifest_terminate_build 0 Name: python-mne-bids -Version: 0.9 +Version: 0.15.0 Release: 1 Summary: Organizing MEG, EEG, and iEEG data according to the BIDS specification and facilitating their analysis with MNE-Python License: BSD-3-Clause URL: https://github.com/mne-tools/mne-bids -Source0: https://files.pythonhosted.org/packages/a0/f2/1091a5e4e89746105577a8d00bf8ac1063f847f7363d8120a4d1d5d022e5/mne-bids-0.9.tar.gz +Source0: https://files.pythonhosted.org/packages/31/33/6c14b9aefaeeab0fe40925cedb37ceda62cb23fef514e6f498889dd7c44f/mne-bids-0.15.0.tar.gz BuildArch: noarch Requires: python3-mne @@ -27,6 +27,8 @@ Summary: Organizing MEG, EEG, and iEEG data according to the BIDS specification Provides: python-mne-bids BuildRequires: python3-devel BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-wheel %description -n python3-mne-bids MNE-BIDS is a Python package that allows you to read and write BIDS-compatible datasets with the help of MNE-Python. @@ -37,13 +39,13 @@ Provides: python3-mne-bids-doc MNE-BIDS is a Python package that allows you to read and write BIDS-compatible datasets with the help of MNE-Python. %prep -%autosetup -n mne-bids-0.9 +%autosetup -n mne-bids-0.15.0 %build -%py3_build +%pyproject_build %install -%py3_install +%pyproject_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi @@ -77,6 +79,39 @@ mv %{buildroot}/doclist.lst . %{_docdir}/* %changelog +* Fri Nov 01 2024 zhangyulong - 0.15-1 +- Update package to version 0.15 + -MAINT: remove ref-names from git_archive.txt + -Fix InvalidDistribution: Metadata is required fields: Name, Version. + -read_raw_bids() tries to process task name without checking if a task exists bug + -Allow BIDSPath(check=False) to work for _check_key_val() enhancement + -Fix after switch to hatchling&hatch-vcs: heading in documentation is taking up too much space maint + -Adjust pip install + -MAINT: MNE-Python now uses edfio + -MAINT: update release protocol --> versioning scheme maint + -Add copyright holder to each file, and remove individual authors maint + -FutureWarning: with copy=False --> set default explicity + -Fix BUG: Error when writing calibration for empty-room file + -Fix read_raw_bids can't create events if taskname includes decimal dot + -maint: linters, CIs, packaging metadata code-health maint + -get_entity_vals() does support the 'recording' entity easy enhancement Nice First Contribution Opportunity + -Fix read_raw_bids() messes up the channel order and therefore loading raw fails bug + -read_raw_bids not accepting extra params (clean_names for CTF) API doc enhancement + -Fix doc build failure: pydata-sphinx-theme + -Fix problems with conversion of BTI datasets bug + -MNE-BIDS 0.13 release + -Export to EEGLAB format + -Fix EEGLab bug writing HDF5 persisting in MNE-BIDS bug + -Use Black for formatting maint + -write_raw_bids() cannot handle MaxFiltered data bug + -docs: dropdown menu on main no longer working + -Fix doc build fails: "tut-ieeg-localize" moved bug + -Problem loading mne-bids when MNE 1.0.0 and above is installed + -BIDS sample and value columns will be considered "arbitrary" columns soon + -restrict find_matching_paths to only look outside of derivatives/ Nice First Contribution Opportunity + -Fix command raw_to_bids takes overwrite and line_freq as text and fails for brainvision format bug + -Fix write_raw_bids does not produce a valid SET file bug + * Fri Dec 17 2021 Python_Bot - 0.9-1 - Package Init -- Gitee From 0a5275eb3741222036dfc696bc72dc5168821de3 Mon Sep 17 00:00:00 2001 From: zhangyulongkylinos Date: Fri, 1 Nov 2024 16:30:44 +0800 Subject: [PATCH 2/3] Upgrade package to version 0.15.0 --- python-mne-bids.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python-mne-bids.spec b/python-mne-bids.spec index 3a1d42c..d4bad60 100644 --- a/python-mne-bids.spec +++ b/python-mne-bids.spec @@ -79,8 +79,8 @@ mv %{buildroot}/doclist.lst . %{_docdir}/* %changelog -* Fri Nov 01 2024 zhangyulong - 0.15-1 -- Update package to version 0.15 +* Fri Nov 01 2024 zhangyulong - 0.15.0-1 +- Update package to version 0.15.0 -MAINT: remove ref-names from git_archive.txt -Fix InvalidDistribution: Metadata is required fields: Name, Version. -read_raw_bids() tries to process task name without checking if a task exists bug -- Gitee From 3f2496cb6cf0cbef34ae59d44fe09d911ed261ec Mon Sep 17 00:00:00 2001 From: zhangyulongkylinos Date: Fri, 1 Nov 2024 16:54:42 +0800 Subject: [PATCH 3/3] Upgrade package to version 0.15 --- ...bids-0.15.0.tar.gz => mne-bids-0.15.tar.gz | Bin 573440 -> 573440 bytes mne-bids-0.15/.gitignore | 38 + mne-bids-0.15/LICENSE | 29 + mne-bids-0.15/PKG-INFO | 156 + mne-bids-0.15/README.md | 58 + mne-bids-0.15/mne_bids/__init__.py | 40 + mne-bids-0.15/mne_bids/assets/help-128px.png | Bin 0 -> 3261 bytes mne-bids-0.15/mne_bids/assets/help.svg | 1 + mne-bids-0.15/mne_bids/commands/__init__.py | 1 + .../commands/mne_bids_calibration_to_bids.py | 67 + .../commands/mne_bids_count_events.py | 96 + .../mne_bids/commands/mne_bids_cp.py | 81 + .../commands/mne_bids_crosstalk_to_bids.py | 63 + .../mne_bids/commands/mne_bids_inspect.py | 112 + .../commands/mne_bids_mark_channels.py | 144 + .../mne_bids/commands/mne_bids_raw_to_bids.py | 126 + .../mne_bids/commands/mne_bids_report.py | 48 + mne-bids-0.15/mne_bids/commands/run.py | 47 + mne-bids-0.15/mne_bids/config.py | 622 ++++ mne-bids-0.15/mne_bids/conftest.py | 19 + mne-bids-0.15/mne_bids/copyfiles.py | 642 ++++ .../data/space-ICBM452AirSpace_fiducials.fif | Bin 0 -> 260 bytes .../space-ICBM452AirSpace_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-ICBM452AirSpace_trans.fif | Bin 0 -> 212 bytes .../space-ICBM452AirSpace_vox-mri_trans.fif | Bin 0 -> 212 bytes .../space-ICBM452Warp5Space_fiducials.fif | Bin 0 -> 260 bytes .../space-ICBM452Warp5Space_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-ICBM452Warp5Space_trans.fif | Bin 0 -> 212 bytes .../space-ICBM452Warp5Space_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-IXI549Space_fiducials.fif | Bin 0 -> 260 bytes .../data/space-IXI549Space_ras-vox_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-IXI549Space_trans.fif | Bin 0 -> 212 bytes .../data/space-IXI549Space_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152Lin_fiducials.fif | Bin 0 -> 260 bytes .../data/space-MNI152Lin_ras-vox_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-MNI152Lin_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152Lin_vox-mri_trans.fif | Bin 0 -> 212 bytes .../space-MNI152NLin2009aAsym_fiducials.fif | Bin 0 -> 260 bytes ...pace-MNI152NLin2009aAsym_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin2009aAsym_trans.fif | Bin 0 -> 212 bytes ...pace-MNI152NLin2009aAsym_vox-mri_trans.fif | Bin 0 -> 212 bytes .../space-MNI152NLin2009aSym_fiducials.fif | Bin 0 -> 260 bytes ...space-MNI152NLin2009aSym_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin2009aSym_trans.fif | Bin 0 -> 212 bytes ...space-MNI152NLin2009aSym_vox-mri_trans.fif | Bin 0 -> 212 bytes .../space-MNI152NLin2009bAsym_fiducials.fif | Bin 0 -> 260 bytes ...pace-MNI152NLin2009bAsym_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin2009bAsym_trans.fif | Bin 0 -> 212 bytes ...pace-MNI152NLin2009bAsym_vox-mri_trans.fif | Bin 0 -> 212 bytes .../space-MNI152NLin2009bSym_fiducials.fif | Bin 0 -> 260 bytes ...space-MNI152NLin2009bSym_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin2009bSym_trans.fif | Bin 0 -> 212 bytes ...space-MNI152NLin2009bSym_vox-mri_trans.fif | Bin 0 -> 212 bytes .../space-MNI152NLin2009cAsym_fiducials.fif | Bin 0 -> 260 bytes ...pace-MNI152NLin2009cAsym_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin2009cAsym_trans.fif | Bin 0 -> 212 bytes ...pace-MNI152NLin2009cAsym_vox-mri_trans.fif | Bin 0 -> 212 bytes .../space-MNI152NLin2009cSym_fiducials.fif | Bin 0 -> 260 bytes ...space-MNI152NLin2009cSym_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin2009cSym_trans.fif | Bin 0 -> 212 bytes ...space-MNI152NLin2009cSym_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin6ASym_fiducials.fif | Bin 0 -> 260 bytes .../space-MNI152NLin6ASym_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin6ASym_trans.fif | Bin 0 -> 212 bytes .../space-MNI152NLin6ASym_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin6Sym_fiducials.fif | Bin 0 -> 260 bytes .../space-MNI152NLin6Sym_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI152NLin6Sym_trans.fif | Bin 0 -> 212 bytes .../space-MNI152NLin6Sym_vox-mri_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-MNI305_fiducials.fif | Bin 0 -> 260 bytes .../data/space-MNI305_ras-vox_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-MNI305_trans.fif | Bin 0 -> 212 bytes .../data/space-MNI305_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-MNIColin27_fiducials.fif | Bin 0 -> 260 bytes .../data/space-MNIColin27_ras-vox_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-MNIColin27_trans.fif | Bin 0 -> 212 bytes .../data/space-MNIColin27_vox-mri_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-NIHPD_fiducials.fif | Bin 0 -> 260 bytes .../data/space-NIHPD_ras-vox_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-NIHPD_trans.fif | Bin 0 -> 212 bytes .../data/space-NIHPD_vox-mri_trans.fif | Bin 0 -> 212 bytes .../space-OASIS30AntsOASISAnts_fiducials.fif | Bin 0 -> 260 bytes ...ace-OASIS30AntsOASISAnts_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-OASIS30AntsOASISAnts_trans.fif | Bin 0 -> 212 bytes ...ace-OASIS30AntsOASISAnts_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-OASIS30Atropos_fiducials.fif | Bin 0 -> 260 bytes .../space-OASIS30Atropos_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-OASIS30Atropos_trans.fif | Bin 0 -> 212 bytes .../space-OASIS30Atropos_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-Talairach_fiducials.fif | Bin 0 -> 260 bytes .../data/space-Talairach_ras-vox_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-Talairach_trans.fif | Bin 0 -> 212 bytes .../data/space-Talairach_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-UNCInfant_fiducials.fif | Bin 0 -> 260 bytes .../data/space-UNCInfant_ras-vox_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-UNCInfant_trans.fif | Bin 0 -> 212 bytes .../data/space-UNCInfant_vox-mri_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-fsLR_fiducials.fif | Bin 0 -> 260 bytes .../data/space-fsLR_ras-vox_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-fsLR_trans.fif | Bin 0 -> 212 bytes .../data/space-fsLR_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-fsaverageSym_fiducials.fif | Bin 0 -> 260 bytes .../data/space-fsaverageSym_ras-vox_trans.fif | Bin 0 -> 212 bytes .../data/space-fsaverageSym_trans.fif | Bin 0 -> 212 bytes .../data/space-fsaverageSym_vox-mri_trans.fif | Bin 0 -> 212 bytes .../data/space-fsaverage_fiducials.fif | Bin 0 -> 260 bytes .../data/space-fsaverage_ras-vox_trans.fif | Bin 0 -> 212 bytes .../mne_bids/data/space-fsaverage_trans.fif | Bin 0 -> 212 bytes .../data/space-fsaverage_vox-mri_trans.fif | Bin 0 -> 212 bytes mne-bids-0.15/mne_bids/dig.py | 793 +++++ mne-bids-0.15/mne_bids/inspect.py | 453 +++ mne-bids-0.15/mne_bids/path.py | 2490 +++++++++++++ mne-bids-0.15/mne_bids/pick.py | 88 + mne-bids-0.15/mne_bids/read.py | 1183 +++++++ mne-bids-0.15/mne_bids/report/__init__.py | 3 + mne-bids-0.15/mne_bids/report/_report.py | 538 +++ .../report/templates/dataset_summary.jinja | 13 + .../report/templates/datatype_agnostic.jinja | 20 + .../report/templates/participants.jinja | 3 + mne-bids-0.15/mne_bids/sidecar_updates.py | 389 ++ mne-bids-0.15/mne_bids/stats.py | 130 + mne-bids-0.15/mne_bids/tsv_handler.py | 220 ++ mne-bids-0.15/mne_bids/utils.py | 542 +++ mne-bids-0.15/mne_bids/write.py | 3147 +++++++++++++++++ mne-bids-0.15/pyproject.toml | 151 + python-mne-bids.spec | 10 +- 126 files changed, 12558 insertions(+), 5 deletions(-) rename mne-bids-0.15.0.tar.gz => mne-bids-0.15.tar.gz (96%) create mode 100644 mne-bids-0.15/.gitignore create mode 100644 mne-bids-0.15/LICENSE create mode 100644 mne-bids-0.15/PKG-INFO create mode 100644 mne-bids-0.15/README.md create mode 100644 mne-bids-0.15/mne_bids/__init__.py create mode 100644 mne-bids-0.15/mne_bids/assets/help-128px.png create mode 100644 mne-bids-0.15/mne_bids/assets/help.svg create mode 100644 mne-bids-0.15/mne_bids/commands/__init__.py create mode 100644 mne-bids-0.15/mne_bids/commands/mne_bids_calibration_to_bids.py create mode 100644 mne-bids-0.15/mne_bids/commands/mne_bids_count_events.py create mode 100644 mne-bids-0.15/mne_bids/commands/mne_bids_cp.py create mode 100644 mne-bids-0.15/mne_bids/commands/mne_bids_crosstalk_to_bids.py create mode 100644 mne-bids-0.15/mne_bids/commands/mne_bids_inspect.py create mode 100644 mne-bids-0.15/mne_bids/commands/mne_bids_mark_channels.py create mode 100644 mne-bids-0.15/mne_bids/commands/mne_bids_raw_to_bids.py create mode 100644 mne-bids-0.15/mne_bids/commands/mne_bids_report.py create mode 100755 mne-bids-0.15/mne_bids/commands/run.py create mode 100644 mne-bids-0.15/mne_bids/config.py create mode 100644 mne-bids-0.15/mne_bids/conftest.py create mode 100644 mne-bids-0.15/mne_bids/copyfiles.py create mode 100644 mne-bids-0.15/mne_bids/data/space-ICBM452AirSpace_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-ICBM452AirSpace_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-ICBM452AirSpace_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-ICBM452AirSpace_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-ICBM452Warp5Space_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-ICBM452Warp5Space_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-ICBM452Warp5Space_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-ICBM452Warp5Space_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-IXI549Space_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-IXI549Space_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-IXI549Space_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-IXI549Space_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152Lin_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152Lin_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152Lin_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152Lin_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bAsym_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bAsym_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bAsym_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bAsym_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bSym_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bSym_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bSym_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bSym_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cAsym_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cAsym_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cAsym_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cAsym_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cSym_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cSym_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cSym_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cSym_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin6Sym_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin6Sym_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin6Sym_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI152NLin6Sym_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI305_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI305_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI305_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNI305_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNIColin27_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNIColin27_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNIColin27_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-MNIColin27_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-NIHPD_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-NIHPD_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-NIHPD_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-NIHPD_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-Talairach_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-Talairach_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-Talairach_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-Talairach_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-UNCInfant_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-UNCInfant_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-UNCInfant_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-UNCInfant_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsLR_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsLR_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsLR_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsLR_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsaverageSym_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsaverageSym_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsaverageSym_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsaverageSym_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsaverage_fiducials.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsaverage_ras-vox_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsaverage_trans.fif create mode 100644 mne-bids-0.15/mne_bids/data/space-fsaverage_vox-mri_trans.fif create mode 100644 mne-bids-0.15/mne_bids/dig.py create mode 100644 mne-bids-0.15/mne_bids/inspect.py create mode 100644 mne-bids-0.15/mne_bids/path.py create mode 100644 mne-bids-0.15/mne_bids/pick.py create mode 100644 mne-bids-0.15/mne_bids/read.py create mode 100644 mne-bids-0.15/mne_bids/report/__init__.py create mode 100644 mne-bids-0.15/mne_bids/report/_report.py create mode 100644 mne-bids-0.15/mne_bids/report/templates/dataset_summary.jinja create mode 100644 mne-bids-0.15/mne_bids/report/templates/datatype_agnostic.jinja create mode 100644 mne-bids-0.15/mne_bids/report/templates/participants.jinja create mode 100644 mne-bids-0.15/mne_bids/sidecar_updates.py create mode 100644 mne-bids-0.15/mne_bids/stats.py create mode 100644 mne-bids-0.15/mne_bids/tsv_handler.py create mode 100644 mne-bids-0.15/mne_bids/utils.py create mode 100644 mne-bids-0.15/mne_bids/write.py create mode 100644 mne-bids-0.15/pyproject.toml diff --git a/mne-bids-0.15.0.tar.gz b/mne-bids-0.15.tar.gz similarity index 96% rename from mne-bids-0.15.0.tar.gz rename to mne-bids-0.15.tar.gz index 5302090e62c51a33e15e646dca2c18f2692bd22f..9d7d5084ce9797c9aa4c2e0f0e3f6e960eee954a 100644 GIT binary patch delta 3723 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%0Ai`_{9zh(X-lI6Bc z8YO?5q2!}dYu~Gp#QcF{d&_Q@tv)$RqZ}sqYk0p zdGt%|=@;-`O-p!%s8%pgR??P|@P*picV)O2>d1mWRx`T6tF$>zHk!eBy|dPg>_?J* zDW5%D4?ZUurs^1Fs*cjIFEIfx*L4olWWD0yrcKv7@Q#~(mmEjyftpjByxPc-*{g{6 ar0y#%%uyaR#kqP{HMJf@aq{*0mj41hsWEc^ diff --git a/mne-bids-0.15/.gitignore b/mne-bids-0.15/.gitignore new file mode 100644 index 0000000..7c67eba --- /dev/null +++ b/mne-bids-0.15/.gitignore @@ -0,0 +1,38 @@ +# Distribution / packaging +.Python +dist/ +*.egg* +build +coverage +.coverage* +*.xml +.venv +.ruff_cache +sg_execution_times.rst + +# Sphinx documentation +doc/_build/ +doc/generated/ +doc/auto_examples/ +doc/auto_tutorials/ +doc/modules/generated/ +doc/sphinxext/cachedir +pip-log.txt +.coverage +tags +doc/coverages +doc/samples +cover + +# Pycharm +.idea/ + +*.pyc + +.cache +.pytest_cache +.ipynb_checkpoints +.DS_Store +.vscode/ + +__pycache__ diff --git a/mne-bids-0.15/LICENSE b/mne-bids-0.15/LICENSE new file mode 100644 index 0000000..a3ee632 --- /dev/null +++ b/mne-bids-0.15/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2018, mne-bids developers +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/mne-bids-0.15/PKG-INFO b/mne-bids-0.15/PKG-INFO new file mode 100644 index 0000000..f78d2bb --- /dev/null +++ b/mne-bids-0.15/PKG-INFO @@ -0,0 +1,156 @@ +Metadata-Version: 2.3 +Name: mne-bids +Version: 0.15.0 +Summary: MNE-BIDS: Organizing MEG, EEG, and iEEG data according to the BIDS specification and facilitating their analysis with MNE-Python +Project-URL: Homepage, https://mne.tools/mne-bids +Project-URL: Download, https://pypi.org/project/mne-bids/#files +Project-URL: Bug Tracker, https://github.com/mne-tools/mne-bids/issues/ +Project-URL: Documentation, https://mne.tools/mne-bids +Project-URL: Forum, https://mne.discourse.group/ +Project-URL: Source Code, https://github.com/mne-tools/mne-bids +Author: MNE-BIDS Developers +Maintainer-email: Stefan Appelhoff +License: BSD-3-Clause +License-File: LICENSE +Keywords: bids,brain imaging data structure,eeg,ieeg,meg,neuroimaging,neuroscience +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Science/Research +Classifier: License :: OSI Approved +Classifier: Operating System :: MacOS +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: POSIX :: Linux +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: Software Development +Requires-Python: >=3.9 +Requires-Dist: mne>=1.5 +Requires-Dist: numpy>=1.21.2 +Requires-Dist: scipy>=1.7.1 +Provides-Extra: dev +Requires-Dist: defusedxml; extra == 'dev' +Requires-Dist: edfio>=0.2.1; extra == 'dev' +Requires-Dist: edflib-python>=1.0.6; extra == 'dev' +Requires-Dist: eeglabio>=0.0.2; extra == 'dev' +Requires-Dist: matplotlib; extra == 'dev' +Requires-Dist: matplotlib>=3.5.0; extra == 'dev' +Requires-Dist: mne-nirs; extra == 'dev' +Requires-Dist: nibabel>=3.2.1; extra == 'dev' +Requires-Dist: nilearn; extra == 'dev' +Requires-Dist: numpydoc; extra == 'dev' +Requires-Dist: openneuro-py; extra == 'dev' +Requires-Dist: pandas; extra == 'dev' +Requires-Dist: pandas>=1.3.2; extra == 'dev' +Requires-Dist: pillow; extra == 'dev' +Requires-Dist: pre-commit; extra == 'dev' +Requires-Dist: pybv>=0.7.5; extra == 'dev' +Requires-Dist: pydata-sphinx-theme; extra == 'dev' +Requires-Dist: pymatreader>=0.0.30; extra == 'dev' +Requires-Dist: pytest; extra == 'dev' +Requires-Dist: pytest-cov; extra == 'dev' +Requires-Dist: pytest-sugar; extra == 'dev' +Requires-Dist: ruff; extra == 'dev' +Requires-Dist: seaborn; extra == 'dev' +Requires-Dist: sphinx; extra == 'dev' +Requires-Dist: sphinx-copybutton; extra == 'dev' +Requires-Dist: sphinx-gallery; extra == 'dev' +Provides-Extra: doc +Requires-Dist: matplotlib; extra == 'doc' +Requires-Dist: mne-nirs; extra == 'doc' +Requires-Dist: nilearn; extra == 'doc' +Requires-Dist: numpydoc; extra == 'doc' +Requires-Dist: openneuro-py; extra == 'doc' +Requires-Dist: pandas; extra == 'doc' +Requires-Dist: pillow; extra == 'doc' +Requires-Dist: pydata-sphinx-theme; extra == 'doc' +Requires-Dist: seaborn; extra == 'doc' +Requires-Dist: sphinx; extra == 'doc' +Requires-Dist: sphinx-copybutton; extra == 'doc' +Requires-Dist: sphinx-gallery; extra == 'doc' +Provides-Extra: full +Requires-Dist: defusedxml; extra == 'full' +Requires-Dist: edfio>=0.2.1; extra == 'full' +Requires-Dist: edflib-python>=1.0.6; extra == 'full' +Requires-Dist: eeglabio>=0.0.2; extra == 'full' +Requires-Dist: matplotlib>=3.5.0; extra == 'full' +Requires-Dist: nibabel>=3.2.1; extra == 'full' +Requires-Dist: pandas>=1.3.2; extra == 'full' +Requires-Dist: pybv>=0.7.5; extra == 'full' +Requires-Dist: pymatreader>=0.0.30; extra == 'full' +Provides-Extra: test +Requires-Dist: defusedxml; extra == 'test' +Requires-Dist: edfio>=0.2.1; extra == 'test' +Requires-Dist: edflib-python>=1.0.6; extra == 'test' +Requires-Dist: eeglabio>=0.0.2; extra == 'test' +Requires-Dist: matplotlib>=3.5.0; extra == 'test' +Requires-Dist: nibabel>=3.2.1; extra == 'test' +Requires-Dist: pandas>=1.3.2; extra == 'test' +Requires-Dist: pybv>=0.7.5; extra == 'test' +Requires-Dist: pymatreader>=0.0.30; extra == 'test' +Requires-Dist: pytest; extra == 'test' +Requires-Dist: pytest-cov; extra == 'test' +Requires-Dist: pytest-sugar; extra == 'test' +Requires-Dist: ruff; extra == 'test' +Description-Content-Type: text/markdown + +[![Codecov](https://codecov.io/gh/mne-tools/mne-bids/branch/main/graph/badge.svg)](https://codecov.io/gh/mne-tools/mne-bids) +[![GitHub Actions](https://github.com/mne-tools/mne-bids/workflows/build/badge.svg)](https://github.com/mne-tools/mne-bids/actions) +[![CircleCI](https://circleci.com/gh/mne-tools/mne-bids.svg?style=shield)](https://circleci.com/gh/mne-tools/mne-bids) +[![PyPI Download count](https://pepy.tech/badge/mne-bids)](https://pepy.tech/project/mne-bids) +[![Latest PyPI release](https://img.shields.io/pypi/v/mne-bids.svg)](https://pypi.org/project/mne-bids/) +[![Latest conda-forge release](https://img.shields.io/conda/vn/conda-forge/mne-bids.svg)](https://anaconda.org/conda-forge/mne-bids/) +[![JOSS publication](https://joss.theoj.org/papers/5b9024503f7bea324d5e738a12b0a108/status.svg)](https://joss.theoj.org/papers/5b9024503f7bea324d5e738a12b0a108) + +MNE-BIDS +======== + +MNE-BIDS is a Python package that allows you to read and write +[BIDS](https://bids.neuroimaging.io/)-compatible datasets with the help of +[MNE-Python](https://mne.tools/stable/index.html). + +![Schematic: From raw data to BIDS using MNE-BIDS](https://mne.tools/mne-bids/assets/MNE-BIDS.png) + +Why? +---- + +MNE-BIDS links BIDS and MNE-Python with the goal to make your analyses faster to code, more robust, and facilitate data and code sharing with co-workers and collaborators. + +How? +---- + +The documentation can be found under the following links: + +- for the [stable release](https://mne.tools/mne-bids/) +- for the [latest (development) version](https://mne.tools/mne-bids/dev/index.html) + +Getting Help +------------ +[MNE Forum](https://mne.discourse.group) + +For any usage questions, please post to the +[MNE Forum](https://mne.discourse.group). Be sure to add the `mne-bids` tag to +your question. + +Citing +------ + +[![JOSS publication](https://joss.theoj.org/papers/5b9024503f7bea324d5e738a12b0a108/status.svg)](https://joss.theoj.org/papers/5b9024503f7bea324d5e738a12b0a108) + +If you use MNE-BIDS in your work, please cite our +[publication in JOSS](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., & Jas, M. (2019): **MNE-BIDS: Organizing +electrophysiological data into the BIDS format and facilitating their analysis.** +*Journal of Open Source Software,* 4:1896. DOI: [10.21105/joss.01896](https://doi.org/10.21105/joss.01896) + +Please also cite one of the following papers to credit BIDS, depending on which data type you used: + +- [MEG-BIDS](https://doi.org/10.1038/sdata.2018.110) +- [EEG-BIDS](https://doi.org/10.1038/s41597-019-0104-8) +- [iEEG-BIDS](https://doi.org/10.1038/s41597-019-0105-7) +- [NIRS-BIDS](https://doi.org/10.31219/osf.io/7nmcp) diff --git a/mne-bids-0.15/README.md b/mne-bids-0.15/README.md new file mode 100644 index 0000000..331d741 --- /dev/null +++ b/mne-bids-0.15/README.md @@ -0,0 +1,58 @@ +[![Codecov](https://codecov.io/gh/mne-tools/mne-bids/branch/main/graph/badge.svg)](https://codecov.io/gh/mne-tools/mne-bids) +[![GitHub Actions](https://github.com/mne-tools/mne-bids/workflows/build/badge.svg)](https://github.com/mne-tools/mne-bids/actions) +[![CircleCI](https://circleci.com/gh/mne-tools/mne-bids.svg?style=shield)](https://circleci.com/gh/mne-tools/mne-bids) +[![PyPI Download count](https://pepy.tech/badge/mne-bids)](https://pepy.tech/project/mne-bids) +[![Latest PyPI release](https://img.shields.io/pypi/v/mne-bids.svg)](https://pypi.org/project/mne-bids/) +[![Latest conda-forge release](https://img.shields.io/conda/vn/conda-forge/mne-bids.svg)](https://anaconda.org/conda-forge/mne-bids/) +[![JOSS publication](https://joss.theoj.org/papers/5b9024503f7bea324d5e738a12b0a108/status.svg)](https://joss.theoj.org/papers/5b9024503f7bea324d5e738a12b0a108) + +MNE-BIDS +======== + +MNE-BIDS is a Python package that allows you to read and write +[BIDS](https://bids.neuroimaging.io/)-compatible datasets with the help of +[MNE-Python](https://mne.tools/stable/index.html). + +![Schematic: From raw data to BIDS using MNE-BIDS](https://mne.tools/mne-bids/assets/MNE-BIDS.png) + +Why? +---- + +MNE-BIDS links BIDS and MNE-Python with the goal to make your analyses faster to code, more robust, and facilitate data and code sharing with co-workers and collaborators. + +How? +---- + +The documentation can be found under the following links: + +- for the [stable release](https://mne.tools/mne-bids/) +- for the [latest (development) version](https://mne.tools/mne-bids/dev/index.html) + +Getting Help +------------ +[MNE Forum](https://mne.discourse.group) + +For any usage questions, please post to the +[MNE Forum](https://mne.discourse.group). Be sure to add the `mne-bids` tag to +your question. + +Citing +------ + +[![JOSS publication](https://joss.theoj.org/papers/5b9024503f7bea324d5e738a12b0a108/status.svg)](https://joss.theoj.org/papers/5b9024503f7bea324d5e738a12b0a108) + +If you use MNE-BIDS in your work, please cite our +[publication in JOSS](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., & Jas, M. (2019): **MNE-BIDS: Organizing +electrophysiological data into the BIDS format and facilitating their analysis.** +*Journal of Open Source Software,* 4:1896. DOI: [10.21105/joss.01896](https://doi.org/10.21105/joss.01896) + +Please also cite one of the following papers to credit BIDS, depending on which data type you used: + +- [MEG-BIDS](https://doi.org/10.1038/sdata.2018.110) +- [EEG-BIDS](https://doi.org/10.1038/s41597-019-0104-8) +- [iEEG-BIDS](https://doi.org/10.1038/s41597-019-0105-7) +- [NIRS-BIDS](https://doi.org/10.31219/osf.io/7nmcp) diff --git a/mne-bids-0.15/mne_bids/__init__.py b/mne-bids-0.15/mne_bids/__init__.py new file mode 100644 index 0000000..45e9558 --- /dev/null +++ b/mne-bids-0.15/mne_bids/__init__.py @@ -0,0 +1,40 @@ +"""MNE software for easily interacting with BIDS compatible datasets.""" + +try: + from importlib.metadata import version + + __version__ = version("mne_bids") +except Exception: + __version__ = "0.0.0" + +from mne_bids import commands +from mne_bids.report import make_report +from mne_bids.path import ( + BIDSPath, + get_datatypes, + get_entity_vals, + print_dir_tree, + get_entities_from_fname, + search_folder_for_text, + get_bids_path_from_fname, + find_matching_paths, +) +from mne_bids.read import get_head_mri_trans, read_raw_bids +from mne_bids.utils import get_anonymization_daysback +from mne_bids.write import ( + make_dataset_description, + write_anat, + write_raw_bids, + mark_channels, + write_meg_calibration, + write_meg_crosstalk, + get_anat_landmarks, + anonymize_dataset, +) +from mne_bids.sidecar_updates import update_sidecar_json, update_anat_landmarks +from mne_bids.inspect import inspect_dataset +from mne_bids.dig import ( + template_to_head, + convert_montage_to_ras, + convert_montage_to_mri, +) diff --git a/mne-bids-0.15/mne_bids/assets/help-128px.png b/mne-bids-0.15/mne_bids/assets/help-128px.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd4f7a80982e0d54370c3274293067661e093f7 GIT binary patch literal 3261 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 diff --git a/mne-bids-0.15/mne_bids/commands/__init__.py b/mne-bids-0.15/mne_bids/commands/__init__.py new file mode 100644 index 0000000..ffcea79 --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/__init__.py @@ -0,0 +1 @@ +"""Initialize cli.""" diff --git a/mne-bids-0.15/mne_bids/commands/mne_bids_calibration_to_bids.py b/mne-bids-0.15/mne_bids/commands/mne_bids_calibration_to_bids.py new file mode 100644 index 0000000..4cceccb --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/mne_bids_calibration_to_bids.py @@ -0,0 +1,67 @@ +r"""Write Elekta/Neuromag/MEGIN fine-calibration data to BIDS. + +example usage: +$ mne_bids calibration_to_bids --subject_id=01 --session=test +--bids_root=bids_root --file=sss_cal.dat + +""" +# Authors: Richard Höchenberger +# +# License: BSD-3-Clause + +from mne.utils import logger + +import mne_bids +from mne_bids import BIDSPath, write_meg_calibration + + +def run(): + """Run the calibration_to_bids command.""" + from mne.commands.utils import get_optparser + + parser = get_optparser( + __file__, + usage="usage: %prog options args", + prog_prefix="mne_bids", + version=mne_bids.__version__, + ) + + parser.add_option( + "--bids_root", + dest="bids_root", + help="The path of the folder containing the BIDS dataset", + ) + parser.add_option("--subject_id", dest="subject", help="Subject name") + parser.add_option("--session_id", dest="session", help="Session name") + parser.add_option("--file", dest="fname", help="The path of the crosstalk file") + parser.add_option( + "--verbose", + dest="verbose", + action="store_true", + help="Whether do generate additional diagnostic output", + ) + + opt, args = parser.parse_args() + if args: + parser.print_help() + parser.error( + f"Please do not specify arguments without flags. " f"Got: {args}.\n" + ) + + if opt.bids_root is None: + parser.print_help() + parser.error("You must specify bids_root") + if opt.subject is None: + parser.print_help() + parser.error("You must specify a subject") + + bids_path = BIDSPath(subject=opt.subject, session=opt.session, root=opt.bids_root) + + logger.info(f"Writing fine-calibration file {bids_path.basename} …") + write_meg_calibration( + calibration=opt.fname, bids_path=bids_path, verbose=opt.verbose + ) + + +if __name__ == "__main__": + run() diff --git a/mne-bids-0.15/mne_bids/commands/mne_bids_count_events.py b/mne-bids-0.15/mne_bids/commands/mne_bids_count_events.py new file mode 100644 index 0000000..8c7efdc --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/mne_bids_count_events.py @@ -0,0 +1,96 @@ +"""Count events in BIDS dataset. + +example usage: $ mne_bids count_events --bids_root bids_root_path + +""" + +# Authors: Alex Gramfort +# +# License: BSD-3-Clause +from pathlib import Path + +import mne_bids +from mne_bids.stats import count_events + + +def run(): + """Run the raw_to_bids command.""" + import pandas as pd + from mne.commands.utils import get_optparser + + parser = get_optparser( + __file__, + usage="usage: %prog options args", + prog_prefix="mne_bids", + version=mne_bids.__version__, + ) + + parser.add_option( + "--bids_root", dest="bids_root", help="The path of the BIDS compatible folder." + ) + + parser.add_option( + "--datatype", dest="datatype", default="auto", help="The datatype to consider." + ) + + parser.add_option( + "--describe", + dest="describe", + action="store_true", + help="If set print the descriptive statistics (min, max, etc.).", + ) + + parser.add_option( + "--output", + dest="output", + default=None, + help="Path to the CSV file where to store the results.", + ) + + parser.add_option( + "--overwrite", + dest="overwrite", + action="store_true", + help="If set, overwrite an existing output file.", + ) + + parser.add_option( + "--silent", + dest="silent", + action="store_true", + help="Whether to print the event counts on the screen.", + ) + + opt, args = parser.parse_args() + + if len(args) > 0: + parser.print_help() + parser.error(f'Do not specify arguments without flags. Found: "{args}".\n') + + if not all([opt.bids_root]): + parser.print_help() + parser.error( + "Arguments missing. You need to specify the --bids_root parameter." + ) + + if opt.output and Path(opt.output).exists() and not opt.overwrite: + parser.error("Output file exists. To overwrite, pass --overwrite") + + counts = count_events(opt.bids_root, datatype=opt.datatype) + + if opt.describe: + counts = counts.describe() + + if not opt.silent: + with pd.option_context( + "display.max_rows", 1000, "display.max_columns", 80, "display.width", 1000 + ): + print(counts) + + if opt.output: + counts.to_csv(opt.output) + print(f"\nOutput stored in {opt.output}") + + +if __name__ == "__main__": + run() diff --git a/mne-bids-0.15/mne_bids/commands/mne_bids_cp.py b/mne-bids-0.15/mne_bids/commands/mne_bids_cp.py new file mode 100644 index 0000000..7d981f1 --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/mne_bids_cp.py @@ -0,0 +1,81 @@ +"""Rename files (making a copy) and update their internal pointers. + +example usage: $ mne_bids cp --input myfile.vhdr --output sub-01_task-test.vhdr +""" + +# Authors: Stefan Appelhoff +# +# License: BSD-3-Clause +import mne_bids +from mne_bids.copyfiles import copyfile_brainvision, copyfile_ctf, copyfile_eeglab + + +def run(): + """Run the cp command.""" + from mne.commands.utils import get_optparser + + accepted_formats_msg = "(accepted formats: BrainVision .vhdr, EEGLAB .set, CTF .ds)" + + parser = get_optparser( + __file__, + usage="usage: %prog -i INPUT -o OUTPUT", + prog_prefix="mne_bids", + version=mne_bids.__version__, + ) + + parser.add_option( + "-i", + "--input", + dest="input", + help=f"path to the input file. {accepted_formats_msg}", + metavar="INPUT", + ) + + parser.add_option( + "-o", + "--output", + dest="output", + help="path to the output file (MUST be same format as input file)", + metavar="OUTPUT", + ) + + parser.add_option( + "-v", + "--verbose", + dest="verbose", + help="set logging level to verbose", + action="store_true", + ) + + opt, args = parser.parse_args() + opt_dict = vars(opt) + + # Check the usage and raise error if invalid + if len(args) > 0: + parser.print_help() + parser.error( + f'Do not specify arguments without flags. Found: "{args}".\n' + "Did you forget to provide -i and -o?" + ) + + if not opt_dict.get("input") or not opt_dict.get("output"): + parser.print_help() + parser.error( + "Incorrect number of arguments. Supply one input and one " + f'output file. You supplied: "{opt}"' + ) + + # Attempt to do the copying. Errors will be raised by the copyfile + # functions if there are issues with the file formats + if opt.input.endswith(".vhdr"): + copyfile_brainvision(opt.input, opt.output, opt.verbose) + elif opt.input.endswith(".set"): + copyfile_eeglab(opt.input, opt.output) + elif opt.input.endswith(".ds"): + copyfile_ctf(opt.input, opt.output) + else: + parser.error(f'{accepted_formats_msg} You supplied: "{opt}"') + + +if __name__ == "__main__": + run() diff --git a/mne-bids-0.15/mne_bids/commands/mne_bids_crosstalk_to_bids.py b/mne-bids-0.15/mne_bids/commands/mne_bids_crosstalk_to_bids.py new file mode 100644 index 0000000..391fbd3 --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/mne_bids_crosstalk_to_bids.py @@ -0,0 +1,63 @@ +"""Write Elekta/Neuromag/MEGIN crosstalk data to BIDS. + +example usage: +$ mne_bids crosstalk_to_bids --subject_id=01 --session=test +--bids_root=bids_root --file=ct_sparse.fif + +""" +# Authors: Richard Höchenberger +# +# License: BSD-3-Clause + +from mne.utils import logger + +import mne_bids +from mne_bids import BIDSPath, write_meg_crosstalk + + +def run(): + """Run the crosstalk_to_bids command.""" + from mne.commands.utils import get_optparser + + parser = get_optparser( + __file__, + usage="usage: %prog options args", + prog_prefix="mne_bids", + version=mne_bids.__version__, + ) + + parser.add_option( + "--bids_root", + dest="bids_root", + help="The path of the folder containing the BIDS dataset", + ) + parser.add_option("--subject_id", dest="subject", help="Subject name") + parser.add_option("--session_id", dest="session", help="Session name") + parser.add_option("--file", dest="fname", help="The path of the crosstalk file") + parser.add_option( + "--verbose", + dest="verbose", + action="store_true", + help="Whether do generate additional diagnostic output", + ) + + opt, args = parser.parse_args() + if args: + parser.print_help() + parser.error(f"Please do not specify arguments without flags. Got: {args}.\n") + + if opt.bids_root is None: + parser.print_help() + parser.error("You must specify bids_root") + if opt.subject is None: + parser.print_help() + parser.error("You must specify a subject") + + bids_path = BIDSPath(subject=opt.subject, session=opt.session, root=opt.bids_root) + + logger.info(f"Writing crosstalk file {bids_path.basename} …") + write_meg_crosstalk(fname=opt.fname, bids_path=bids_path, verbose=opt.verbose) + + +if __name__ == "__main__": + run() diff --git a/mne-bids-0.15/mne_bids/commands/mne_bids_inspect.py b/mne-bids-0.15/mne_bids/commands/mne_bids_inspect.py new file mode 100644 index 0000000..d47339c --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/mne_bids_inspect.py @@ -0,0 +1,112 @@ +r"""Inspect MEG and EEG raw data, and interactively mark channels as bad. + +example usage: +$ mne_bids inspect --subject_id=01 --task=experiment --session=test \ +--datatype=meg --suffix=meg --bids_root=bids_root + +""" +# Authors: Richard Höchenberger +# +# License: BSD-3-Clause + +from mne.utils import logger + +import mne_bids +from mne_bids import BIDSPath, inspect_dataset + + +def run(): + """Run the mark_channels command.""" + from mne.commands.utils import get_optparser + + parser = get_optparser( + __file__, + usage="usage: %prog options args", + prog_prefix="mne_bids", + version=mne_bids.__version__, + ) + + parser.add_option( + "--bids_root", + dest="bids_root", + help="The path of the folder containing the BIDS dataset", + ) + parser.add_option("--subject_id", dest="subject", help="Subject name") + parser.add_option("--session_id", dest="session", help="Session name") + parser.add_option("--task", dest="task", help="Task name") + parser.add_option("--acq", dest="acquisition", help="Acquisition parameter") + parser.add_option("--run", dest="run", help="Run number") + parser.add_option("--proc", dest="processing", help="Processing label.") + parser.add_option("--rec", dest="recording", help="Recording name") + parser.add_option( + "--type", dest="datatype", help="Recording data type, e.g. meg, ieeg or eeg" + ) + parser.add_option( + "--suffix", + dest="suffix", + help="The filename suffix, i.e. the last part before the extension", + ) + parser.add_option( + "--ext", + dest="extension", + help="The filename extension, including the leading period, e.g. .fif", + ) + parser.add_option( + "--find_flat", + dest="find_flat", + help="Whether to auto-detect flat channels and time segments", + ) + parser.add_option( + "--l_freq", dest="l_freq", help="The high-pass filter cutoff frequency" + ) + parser.add_option( + "--h_freq", dest="h_freq", help="The low-pass filter cutoff frequency" + ) + parser.add_option( + "--verbose", + dest="verbose", + action="store_true", + help="Whether do generate additional diagnostic output", + ) + + opt, args = parser.parse_args() + if args: + parser.print_help() + parser.error( + f"Please do not specify arguments without flags. " f"Got: {args}.\n" + ) + + if opt.bids_root is None: + parser.print_help() + parser.error("You must specify bids_root") + + bids_path = BIDSPath( + subject=opt.subject, + session=opt.session, + task=opt.task, + acquisition=opt.acquisition, + run=opt.run, + processing=opt.processing, + recording=opt.recording, + datatype=opt.datatype, + suffix=opt.suffix, + extension=opt.extension, + root=opt.bids_root, + ) + + find_flat = True if opt.find_flat is None else bool(opt.find_flat) + l_freq = None if opt.l_freq is None else float(opt.l_freq) + h_freq = None if opt.h_freq is None else float(opt.h_freq) + + logger.info(f"Inspecting {bids_path.basename} …") + inspect_dataset( + bids_path=bids_path, + find_flat=find_flat, + l_freq=l_freq, + h_freq=h_freq, + verbose=opt.verbose, + ) + + +if __name__ == "__main__": + run() diff --git a/mne-bids-0.15/mne_bids/commands/mne_bids_mark_channels.py b/mne-bids-0.15/mne_bids/commands/mne_bids_mark_channels.py new file mode 100644 index 0000000..045e103 --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/mne_bids_mark_channels.py @@ -0,0 +1,144 @@ +"""Mark channels in an existing BIDS dataset as "bad". + +example usage: +$ mne_bids mark_channels --ch_name="MEG 0112" --description="noisy" \ + --ch_name="MEG 0131" --description="flat" \ + --subject_id=01 --task=experiment --session=test \ + --bids_root=bids_root + +""" +# Authors: Richard Höchenberger +# +# License: BSD-3-Clause + +from mne.utils import logger + +import mne_bids +from mne_bids import BIDSPath, mark_channels +from mne_bids.config import reader + + +def run(): + """Run the mark_channels command.""" + from mne.commands.utils import get_optparser + + parser = get_optparser( + __file__, + usage="usage: %prog options args", + prog_prefix="mne_bids", + version=mne_bids.__version__, + ) + + parser.add_option( + "--ch_name", + dest="ch_names", + action="append", + default=[], + help="The names of the bad channels. If multiple " + "channels are bad, pass the --ch_name parameter " + "multiple times.", + ) + parser.add_option( + "--status", + default="bad", + help='Status of the channels (Either "good", or "bad").', + ) + parser.add_option( + "--description", + dest="descriptions", + action="append", + default=[], + help="Descriptions as to why the channels are bad. " + "Must match the number of bad channels provided. " + "Pass multiple times to supply more than one " + "value in that case.", + ) + parser.add_option( + "--bids_root", + dest="bids_root", + help="The path of the folder containing the BIDS dataset", + ) + parser.add_option("--subject_id", dest="subject", help="Subject name") + parser.add_option("--session_id", dest="session", help="Session name") + parser.add_option("--task", dest="task", help="Task name") + parser.add_option("--acq", dest="acquisition", help="Acquisition parameter") + parser.add_option("--run", dest="run", help="Run number") + parser.add_option("--proc", dest="processing", help="Processing label.") + parser.add_option("--rec", dest="recording", help="Recording name") + parser.add_option( + "--type", dest="datatype", help="Recording data type, e.g. meg, ieeg or eeg" + ) + parser.add_option( + "--suffix", + dest="suffix", + help="The filename suffix, i.e. the last part before the extension", + ) + parser.add_option( + "--ext", + dest="extension", + help="The filename extension, including the leading period, e.g. .fif", + ) + parser.add_option( + "--verbose", + dest="verbose", + action="store_true", + help="Whether do generate additional diagnostic output", + ) + + opt, args = parser.parse_args() + if args: + parser.print_help() + parser.error(f"Please do not specify arguments without flags. Got: {args}.\n") + + if opt.bids_root is None: + parser.print_help() + parser.error("You must specify bids_root") + if opt.ch_names is None: + parser.print_help() + parser.error("You must specify some --ch_name parameters.") + + status = opt.status + ch_names = [] if opt.ch_names == [""] else opt.ch_names + bids_path = BIDSPath( + subject=opt.subject, + session=opt.session, + task=opt.task, + acquisition=opt.acquisition, + run=opt.run, + processing=opt.processing, + recording=opt.recording, + datatype=opt.datatype, + suffix=opt.suffix, + extension=opt.extension, + root=opt.bids_root, + ) + + bids_paths = bids_path.match() + # Only keep data we can actually read & write. + allowed_extensions = list(reader.keys()) + bids_paths = [p for p in bids_paths if p.extension in allowed_extensions] + + if not bids_paths: + logger.info( + "No matching files found. Please consider using a less " + "restrictive set of entities to broaden the search." + ) + return # XXX should be return with an error code? + + logger.info( + f'Marking channels {", ".join(ch_names)} as bad in ' + f"{len(bids_paths)} recording(s) …" + ) + for bids_path in bids_paths: + logger.info(f"Processing: {bids_path.basename}") + mark_channels( + bids_path=bids_path, + ch_names=ch_names, + status=status, + descriptions=opt.descriptions, + verbose=opt.verbose, + ) + + +if __name__ == "__main__": + run() diff --git a/mne-bids-0.15/mne_bids/commands/mne_bids_raw_to_bids.py b/mne-bids-0.15/mne_bids/commands/mne_bids_raw_to_bids.py new file mode 100644 index 0000000..1050540 --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/mne_bids_raw_to_bids.py @@ -0,0 +1,126 @@ +"""Write raw files to BIDS format. + +example usage: $ mne_bids raw_to_bids --subject_id sub01 --task rest +--raw data.edf --bids_root new_path + +""" + +# Authors: Teon Brooks +# Stefan Appelhoff +# +# License: BSD-3-Clause +from itertools import chain, repeat + +import mne_bids +from mne_bids import BIDSPath, write_raw_bids +from mne_bids.read import _read_raw + + +def run(): + """Run the raw_to_bids command.""" + from mne.commands.utils import get_optparser + + parser = get_optparser( + __file__, + usage="usage: %prog options args", + prog_prefix="mne_bids", + version=mne_bids.__version__, + ) + + parser.add_option( + "--subject_id", + dest="subject_id", + help="subject name in BIDS compatible format (01, 02, etc.)", + ) + parser.add_option( + "--task", dest="task", help="name of the task the data is based on" + ) + parser.add_option("--raw", dest="raw_fname", help="path to the raw MEG file") + parser.add_option( + "--bids_root", dest="bids_root", help="The path of the BIDS compatible folder." + ) + parser.add_option( + "--session_id", dest="session_id", help="session name in BIDS compatible format" + ) + parser.add_option("--run", dest="run", help="run number for this dataset") + parser.add_option( + "--acq", dest="acq", help="acquisition parameter for this dataset" + ) + parser.add_option("--events", dest="events", help="events file (events.tsv)") + parser.add_option( + "--event_id", dest="event_id", help="event id dict", metavar="eid" + ) + parser.add_option("--hpi", dest="hpi", help="path to the MEG marker points") + parser.add_option( + "--electrode", dest="electrode", help="path to head-native digitizer points" + ) + parser.add_option("--hsp", dest="hsp", help="path to headshape points") + parser.add_option("--config", dest="config", help="path to the configuration file") + parser.add_option( + "--overwrite", + dest="overwrite", + help="whether to overwrite existing data (BOOLEAN)", + ) + parser.add_option( + "--line_freq", + dest="line_freq", + help="The frequency of the line noise in Hz " + "(e.g. 50 or 60). If unknown, pass None", + ) + + opt, args = parser.parse_args() + + if len(args) > 0: + parser.print_help() + parser.error(f'Do not specify arguments without flags. Found: "{args}".\n') + + if not all([opt.subject_id, opt.task, opt.raw_fname, opt.bids_root]): + parser.print_help() + parser.error( + "Arguments missing. You need to specify at least the" + "following: --subject_id, --task, --raw, --bids_root." + ) + + bids_path = BIDSPath( + subject=opt.subject_id, + session=opt.session_id, + run=opt.run, + acquisition=opt.acq, + task=opt.task, + root=opt.bids_root, + ) + + allow_maxshield = False + if opt.raw_fname.endswith(".fif"): + allow_maxshield = "yes" + + raw = _read_raw( + opt.raw_fname, + hpi=opt.hpi, + electrode=opt.electrode, + hsp=opt.hsp, + config_path=opt.config, + allow_maxshield=allow_maxshield, + ) + if opt.line_freq is not None: + line_freq = None if opt.line_freq == "None" else float(opt.line_freq) + raw.info["line_freq"] = line_freq + + if opt.overwrite is not None: + truthy = [1, "True", "true"] + falsy = [0, "False", "false"] + bool_mapping = dict(chain(zip(truthy, repeat(True)), zip(falsy, repeat(False)))) + opt.overwrite = bool_mapping[opt.overwrite] + + write_raw_bids( + raw, + bids_path, + event_id=opt.event_id, + events=opt.events, + overwrite=opt.overwrite, + verbose=True, + ) + + +if __name__ == "__main__": + run() diff --git a/mne-bids-0.15/mne_bids/commands/mne_bids_report.py b/mne-bids-0.15/mne_bids/commands/mne_bids_report.py new file mode 100644 index 0000000..2ca58bb --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/mne_bids_report.py @@ -0,0 +1,48 @@ +"""Write raw files to BIDS format. + +example usage: $ mne_bids report --bids_root bids_root_path + +""" + +# Authors: Alexandre Gramfort +# +# License: BSD-3-Clause +import mne_bids +from mne_bids import make_report + + +def run(): + """Run the raw_to_bids command.""" + from mne.commands.utils import get_optparser + + parser = get_optparser( + __file__, + usage="usage: %prog options args", + prog_prefix="mne_bids", + version=mne_bids.__version__, + ) + + parser.add_option( + "--bids_root", dest="bids_root", help="The path of the BIDS compatible folder." + ) + + opt, args = parser.parse_args() + + if len(args) > 0: + parser.print_help() + parser.error(f'Do not specify arguments without flags. Found: "{args}".\n') + + if not all([opt.bids_root]): + parser.print_help() + parser.error( + "Arguments missing. You need to specify the --bids_root parameter." + ) + + report = make_report(opt.bids_root) + print("-" * 36 + " REPORT " + "-" * 36) + print(report) + assert " " not in report + + +if __name__ == "__main__": + run() diff --git a/mne-bids-0.15/mne_bids/commands/run.py b/mne-bids-0.15/mne_bids/commands/run.py new file mode 100755 index 0000000..d0996db --- /dev/null +++ b/mne-bids-0.15/mne_bids/commands/run.py @@ -0,0 +1,47 @@ +"""Command Line Interface for MNE-BIDS.""" + +# Authors: Teon Brooks +# Stefan Appelhoff +# +# License: BSD-3-Clause +import glob +import os.path as op +import subprocess +import sys + +import mne_bids + +mne_bin_dir = op.abspath(op.dirname(mne_bids.__file__)) +valid_commands = sorted(glob.glob(op.join(mne_bin_dir, "commands", "mne_bids_*.py"))) +valid_commands = [c.split(op.sep)[-1][9:-3] for c in valid_commands] + + +def print_help(): + """Print the help.""" + print("Usage : mne_bids command options\n") + print("Accepted commands :\n") + for c in valid_commands: + print("\t- %s" % c) + print( + "\nExample : mne_bids raw_to_bids --subject_id sub01 --task rest", + "--raw_file data.edf --bids_root new_path", + ) + sys.exit(0) + + +def main(): + """Run main command.""" + if len(sys.argv) == 1: + print_help() + elif "help" in sys.argv[1] or "-h" in sys.argv[1]: + print_help() + elif sys.argv[1] == "--version": + print("MNE-BIDS %s" % mne_bids.__version__) + elif sys.argv[1] not in valid_commands: + print('Invalid command: "%s"\n' % sys.argv[1]) + print_help() + sys.exit(0) + else: + cmd = sys.argv[1] + cmd_path = op.join(mne_bin_dir, "commands", "mne_bids_%s.py" % cmd) + sys.exit(subprocess.call([sys.executable, cmd_path] + sys.argv[2:])) diff --git a/mne-bids-0.15/mne_bids/config.py b/mne-bids-0.15/mne_bids/config.py new file mode 100644 index 0000000..7941cbb --- /dev/null +++ b/mne-bids-0.15/mne_bids/config.py @@ -0,0 +1,622 @@ +"""Configuration values for MNE-BIDS.""" + +from mne import io +from mne.io.constants import FIFF + +BIDS_VERSION = "1.7.0" + +PYBV_VERSION = "0.7.3" +EEGLABIO_VERSION = "0.0.2" + +DOI = """https://doi.org/10.21105/joss.01896""" + +EPHY_ALLOWED_DATATYPES = ["meg", "eeg", "ieeg", "nirs"] + +ALLOWED_DATATYPES = EPHY_ALLOWED_DATATYPES + ["anat", "beh"] + +MEG_CONVERT_FORMATS = ["FIF", "auto"] +EEG_CONVERT_FORMATS = ["BrainVision", "auto"] +IEEG_CONVERT_FORMATS = ["BrainVision", "auto"] +NIRS_CONVERT_FORMATS = ["auto"] +CONVERT_FORMATS = { + "meg": MEG_CONVERT_FORMATS, + "eeg": EEG_CONVERT_FORMATS, + "ieeg": IEEG_CONVERT_FORMATS, + "nirs": NIRS_CONVERT_FORMATS, +} + +# Orientation of the coordinate system dependent on manufacturer +ORIENTATION = { + ".con": "KitYokogawa", + ".ds": "CTF", + ".fif": "ElektaNeuromag", + ".pdf": "4DBti", + ".sqd": "KitYokogawa", +} + +EXT_TO_UNIT_MAP = {".con": "m", ".ds": "cm", ".fif": "m", ".pdf": "m", ".sqd": "m"} + +UNITS_MNE_TO_BIDS_MAP = { + "C": "oC", # temperature in deg. C +} + +meg_manufacturers = { + ".con": "KIT/Yokogawa", + ".ds": "CTF", + ".fif": "Elekta", + ".meg4": "CTF", + ".pdf": "4D Magnes", + ".sqd": "KIT/Yokogawa", +} + +eeg_manufacturers = { + ".vhdr": "Brain Products", + ".eeg": "Brain Products", + ".edf": "n/a", + ".EDF": "n/a", + ".bdf": "Biosemi", + ".BDF": "Biosemi", + ".set": "n/a", + ".fdt": "n/a", + ".lay": "Persyst", + ".dat": "Persyst", + ".EEG": "Nihon Kohden", + ".cnt": "Neuroscan", + ".CNT": "Neuroscan", + ".bin": "EGI", + ".cdt": "Curry", +} + +ieeg_manufacturers = { + ".vhdr": "Brain Products", + ".eeg": "Brain Products", + ".edf": "n/a", + ".EDF": "n/a", + ".set": "n/a", + ".fdt": "n/a", + ".mef": "n/a", + ".nwb": "n/a", + ".lay": "Persyst", + ".dat": "Persyst", + ".EEG": "Nihon Kohden", +} + +nirs_manufacturers = {".snirf": "SNIRF"} + +# file-extension map to mne-python readers +reader = { + ".con": io.read_raw_kit, + ".sqd": io.read_raw_kit, + ".fif": io.read_raw_fif, + ".pdf": io.read_raw_bti, + ".ds": io.read_raw_ctf, + ".vhdr": io.read_raw_brainvision, + ".edf": io.read_raw_edf, + ".EDF": io.read_raw_edf, + ".bdf": io.read_raw_bdf, + ".set": io.read_raw_eeglab, + ".lay": io.read_raw_persyst, + ".EEG": io.read_raw_nihon, + ".cnt": io.read_raw_cnt, + ".CNT": io.read_raw_cnt, + ".bin": io.read_raw_egi, + ".snirf": io.read_raw_snirf, + ".cdt": io.read_raw_curry, +} + + +# Merge the manufacturer dictionaries in a python2 / python3 compatible way +# MANUFACTURERS dictionary only includes the extension of the input filename +# that mne-python accepts (e.g. BrainVision has three files, but the reader +# takes the filename for `.vhdr`) +MANUFACTURERS = dict() +MANUFACTURERS.update(meg_manufacturers) +MANUFACTURERS.update(eeg_manufacturers) +MANUFACTURERS.update(ieeg_manufacturers) +MANUFACTURERS.update(nirs_manufacturers) + +# List of synthetic channels by manufacturer that are to be excluded from the +# channel list. Currently this is only for stimulus channels. +IGNORED_CHANNELS = { + "KIT/Yokogawa": ["STI 014"], + "BrainProducts": ["STI 014"], + "n/a": ["STI 014"], # for unknown manufacturers, ignore it + "Biosemi": ["STI 014"], +} + +allowed_extensions_meg = [".con", ".sqd", ".fif", ".pdf", ".ds"] +allowed_extensions_eeg = [ + ".vhdr", # BrainVision, accompanied by .vmrk, .eeg + ".edf", # European Data Format + ".bdf", # Biosemi + ".set", # EEGLAB, potentially accompanied by .fdt +] + +allowed_extensions_ieeg = [ + ".vhdr", # BrainVision, accompanied by .vmrk, .eeg + ".edf", # European Data Format + ".set", # EEGLAB, potentially accompanied by .fdt + ".mef", # MEF: Multiscale Electrophysiology File + ".nwb", # Neurodata without borders +] + +allowed_extensions_nirs = [ + ".snirf", # SNIRF +] + +# allowed extensions (data formats) in BIDS spec +ALLOWED_DATATYPE_EXTENSIONS = { + "meg": allowed_extensions_meg, + "eeg": allowed_extensions_eeg, + "ieeg": allowed_extensions_ieeg, + "nirs": allowed_extensions_nirs, +} + +# allow additional extensions that are not BIDS +# compliant, but we will convert to the +# recommended formats +ALLOWED_INPUT_EXTENSIONS = ( + allowed_extensions_meg + + allowed_extensions_eeg + + allowed_extensions_ieeg + + allowed_extensions_nirs + + [".lay", ".EEG", ".cnt", ".CNT", ".bin", ".cdt"] +) + +# allowed suffixes (i.e. last "_" delimiter in the BIDS filenames before +# the extension) +ALLOWED_FILENAME_SUFFIX = [ + "meg", + "markers", + "eeg", + "ieeg", + "T1w", + "FLASH", # datatype + "participants", + "scans", + "sessions", + "electrodes", + "optodes", + "channels", + "coordsystem", + "events", # sidecars + "headshape", + "digitizer", # meg-specific sidecars + "beh", + "physio", + "stim", # behavioral + "nirs", +] + +# converts suffix to known path modalities +SUFFIX_TO_DATATYPE = { + "meg": "meg", + "headshape": "meg", + "digitizer": "meg", + "markers": "meg", + "eeg": "eeg", + "ieeg": "ieeg", + "T1w": "anat", + "FLASH": "anat", +} + +# allowed BIDS extensions (extension in the BIDS filename) +ALLOWED_FILENAME_EXTENSIONS = ( + ALLOWED_INPUT_EXTENSIONS + + [".json", ".tsv", ".tsv.gz", ".nii", ".nii.gz"] + + [".pos", ".eeg", ".vmrk"] + + [".dat", ".EEG"] # extra datatype-specific metadata files. + + [".mrk"] # extra eeg extensions # KIT/Yokogawa/Ricoh marker coil +) + +# allowed BIDSPath entities +ALLOWED_PATH_ENTITIES = ( + "subject", + "session", + "task", + "run", + "processing", + "recording", + "space", + "acquisition", + "split", + "description", + "suffix", + "extension", +) +ALLOWED_PATH_ENTITIES_SHORT = { + "sub": "subject", + "ses": "session", + "task": "task", + "acq": "acquisition", + "run": "run", + "proc": "processing", + "space": "space", + "rec": "recording", + "split": "split", + "desc": "description", +} + +# Annotations to never remove during reading or writing +ANNOTATIONS_TO_KEEP = ("BAD_ACQ_SKIP",) + +BIDS_STANDARD_TEMPLATE_COORDINATE_SYSTEMS = [ + "ICBM452AirSpace", + "ICBM452Warp5Space", + "IXI549Space", + "fsaverage", + "fsaverageSym", + "fsLR", + "MNIColin27", + "MNI152Lin", + "MNI152NLin2009aSym", + "MNI152NLin2009bSym", + "MNI152NLin2009cSym", + "MNI152NLin2009aAsym", + "MNI152NLin2009bAsym", + "MNI152NLin2009cAsym", + "MNI152NLin6Sym", + "MNI152NLin6ASym", + "MNI305", + "NIHPD", + "OASIS30AntsOASISAnts", + "OASIS30Atropos", + "Talairach", + "UNCInfant", +] + +coordsys_standard_template_deprecated = [ + "fsaverage3", + "fsaverage4", + "fsaverage5", + "fsaverage6", + "fsaveragesym", + "UNCInfant0V21", + "UNCInfant1V21", + "UNCInfant2V21", + "UNCInfant0V22", + "UNCInfant1V22", + "UNCInfant2V22", + "UNCInfant0V23", + "UNCInfant1V23", + "UNCInfant2V23", +] + +# accepted BIDS formats, which may be subject to change +# depending on the specification +BIDS_IEEG_COORDINATE_FRAMES = ["ACPC", "Pixels"] +BIDS_MEG_COORDINATE_FRAMES = [ + "CTF", + "ElektaNeuromag", + "4DBti", + "KitYokogawa", + "ChietiItab", +] +BIDS_EEG_COORDINATE_FRAMES = ["CapTrak"] + +# accepted coordinate SI units +BIDS_COORDINATE_UNITS = ["m", "cm", "mm"] +coordsys_wildcard = ["Other"] +BIDS_SHARED_COORDINATE_FRAMES = ( + BIDS_STANDARD_TEMPLATE_COORDINATE_SYSTEMS + + coordsys_standard_template_deprecated + + coordsys_wildcard +) + +ALLOWED_SPACES = dict() +ALLOWED_SPACES["meg"] = ALLOWED_SPACES["eeg"] = ( + BIDS_SHARED_COORDINATE_FRAMES + + BIDS_MEG_COORDINATE_FRAMES + + BIDS_EEG_COORDINATE_FRAMES +) +ALLOWED_SPACES["ieeg"] = BIDS_SHARED_COORDINATE_FRAMES + BIDS_IEEG_COORDINATE_FRAMES +ALLOWED_SPACES["anat"] = None +ALLOWED_SPACES["beh"] = None + +# See: https://bids-specification.readthedocs.io/en/latest/appendices/entity-table.html#encephalography-eeg-ieeg-and-meg # noqa +ENTITY_VALUE_TYPE = { + "subject": "label", + "session": "label", + "task": "label", + "run": "index", + "processing": "label", + "recording": "label", + "space": "label", + "acquisition": "label", + "split": "index", + "description": "label", + "suffix": "label", + "extension": "label", +} + +# mapping from supported BIDs coordinate frames -> MNE +BIDS_TO_MNE_FRAMES = { + "CTF": "ctf_head", + "4DBti": "ctf_head", + "KitYokogawa": "ctf_head", + "ElektaNeuromag": "head", + "ChietiItab": "head", + "CapTrak": "head", + "ACPC": "ras", # assumes T1 is ACPC-aligned, if not the coordinates are lost # noqa + "fsaverage": "mni_tal", # XXX: note fsaverage and MNI305 are the same # noqa + "MNI305": "mni_tal", +} + +# mapping from supported MNE coordinate frames -> BIDS +# XXX: note that there are a lot fewer MNE available coordinate +# systems so the range of BIDS supported coordinate systems we +# can write is limited. +MNE_TO_BIDS_FRAMES = {"ctf_head": "CTF", "head": "CapTrak", "mni_tal": "fsaverage"} + +# these coordinate frames in mne-python are related to scalp/meg +# 'meg', 'ctf_head', 'ctf_meg', 'head', 'unknown' +# copied from "mne.transforms.MNE_STR_TO_FRAME" +MNE_STR_TO_FRAME = dict( + meg=FIFF.FIFFV_COORD_DEVICE, + mri=FIFF.FIFFV_COORD_MRI, + mri_voxel=FIFF.FIFFV_MNE_COORD_MRI_VOXEL, + head=FIFF.FIFFV_COORD_HEAD, + mni_tal=FIFF.FIFFV_MNE_COORD_MNI_TAL, + ras=FIFF.FIFFV_MNE_COORD_RAS, + fs_tal=FIFF.FIFFV_MNE_COORD_FS_TAL, + ctf_head=FIFF.FIFFV_MNE_COORD_CTF_HEAD, + ctf_meg=FIFF.FIFFV_MNE_COORD_CTF_DEVICE, + unknown=FIFF.FIFFV_COORD_UNKNOWN, +) +MNE_FRAME_TO_STR = {val: key for key, val in MNE_STR_TO_FRAME.items()} + +# see BIDS specification for description we copied over from each +BIDS_COORD_FRAME_DESCRIPTIONS = { + "acpc": "The origin of the coordinate system is at the Anterior " + "Commissure and the negative y-axis is passing through the " + "Posterior Commissure. The positive z-axis is passing through " + "a mid-hemispheric point in the superior direction.", + "pixels": "If electrodes are localized in 2D space (only x and y are " + "specified and z is n/a), then the positions in this file " + "must correspond to the locations expressed in pixels on " + "the photo/drawing/rendering of the electrodes on the brain. " + "In this case, coordinates must be (row,column) pairs, with " + "(0,0) corresponding to the upper left pixel and (N,0) " + "corresponding to the lower left pixel.", + "ctf": "ALS orientation and the origin between the ears", + "elektaneuromag": "RAS orientation and the origin between the ears", + "4dbti": "ALS orientation and the origin between the ears", + "kityokogawa": "ALS orientation and the origin between the ears", + "chietiitab": "RAS orientation and the origin between the ears", + "captrak": ( + "The X-axis goes from the left preauricular point (LPA) through " + "the right preauricular point (RPA). " + "The Y-axis goes orthogonally to the X-axis through the nasion (NAS). " + "The Z-axis goes orthogonally to the XY-plane through the vertex of " + "the head. " + 'This corresponds to a "RAS" orientation with the origin of the ' + "coordinate system approximately between the ears. " + "See Appendix VIII in the BIDS specification." + ), + "fsaverage": "Defined by FreeSurfer, the MRI (surface RAS) origin is " + "at the center of a 256×256×256 mm^3 anisotropic volume " + "(may not be in the center of the head).", + "icbm452airspace": 'Reference space defined by the "average of 452 ' + 'T1-weighted MRIs of normal young adult brains" ' + 'with "linear transforms of the subjects into the ' + "atlas space using a 12-parameter affine " + 'transformation"', + "icbm452warp5space": 'Reference space defined by the "average of 452 ' + 'T1-weighted MRIs of normal young adult brains" ' + '"based on a 5th order polynomial transformation ' + 'into the atlas space"', + "ixi549space": 'Reference space defined by the average of the "549 (...) ' + 'subjects from the IXI dataset" linearly transformed to ' + "ICBM MNI 452.", + "fsaveragesym": "The fsaverage is a dual template providing both " + "volumetric and surface coordinates references. The " + "volumetric template corresponds to a FreeSurfer variant " + "of MNI305 space. The fsaverageSym atlas also defines a " + "symmetric surface reference system (formerly described " + "as fsaveragesym).", + "fslr": "The fsLR is a dual template providing both volumetric and " + "surface coordinates references. The volumetric template " + "corresponds to MNI152NLin6Asym. Surface templates are given " + "at several sampling densities: 164k (used by HCP pipelines " + "for 3T and 7T anatomical analysis), 59k (used by HCP pipelines " + "for 7T MRI bold and DWI analysis), 32k (used by HCP pipelines " + "for 3T MRI bold and DWI analysis), or 4k (used by HCP " + "pipelines for MEG analysis) fsaverage_LR surface " + "reconstructed from the T1w image.", + "mnicolin27": "Average of 27 T1 scans of a single subject.", + "mni152lin": "Also known as ICBM (version with linear coregistration).", + "mni152nlin6sym": "Also known as symmetric ICBM 6th generation " + "(non-linear coregistration).", + "mni152nlin6asym": "A variation of MNI152NLin6Sym built by A. Janke that " + "is released as the MNI template of FSL. Volumetric " + "templates included with HCP-Pipelines correspond to " + "this template too.", + "mni305": "Also known as avg305.", + "nihpd": "Pediatric templates generated from the NIHPD sample. Available " + "for different age groups (4.5–18.5 y.o., 4.5–8.5 y.o., " + "7–11 y.o., 7.5–13.5 y.o., 10–14 y.o., 13–18.5 y.o. This " + "template also comes in either -symmetric or -asymmetric flavor.", + "oasis30antsoasisants": "See https://figshare.com/articles/ANTs_ANTsR_Brain_Templates/915436", # noqa: E501 + "oasis30atropos": "See https://mindboggle.info/data.html", + "talairach": "Piecewise linear scaling of the brain is implemented as " + "described in TT88.", + "uncinfant": "Infant Brain Atlases from Neonates to 1- and 2-year-olds.", +} + +for letter in ("a", "b", "c"): + for sym in ("Sym", "Asym"): + BIDS_COORD_FRAME_DESCRIPTIONS[f"mni152nlin2009{letter}{sym}"] = ( + "Also known as ICBM (non-linear coregistration with 40 iterations," + ) + " released in 2009). It comes in either three different flavours " + "each in symmetric or asymmetric version." + +REFERENCES = { + "mne-bids": "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", + "meg": "Niso, G., Gorgolewski, K. J., Bock, E., Brooks, T. L., " + "Flandin, G., Gramfort, A., Henson, R. N., Jas, M., Litvak, " + "V., Moreau, J., Oostenveld, R., Schoffelen, J., Tadel, F., " + "Wexler, J., Baillet, S. (2018). MEG-BIDS, the brain " + "imaging data structure extended to magnetoencephalography. " + "Scientific Data, 5, 180110." + "https://doi.org/10.1038/sdata.2018.110", + "eeg": "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", + "ieeg": "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", + "nirs": "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", +} + + +# Mapping subject information between MNE-BIDS and MNE-Python. +HAND_BIDS_TO_MNE = { + ("n/a",): 0, + ("right", "r", "R", "RIGHT", "Right"): 1, + ("left", "l", "L", "LEFT", "Left"): 2, + ("ambidextrous", "a", "A", "AMBIDEXTROUS", "Ambidextrous"): 3, +} + +HAND_MNE_TO_BIDS = {0: "n/a", 1: "R", 2: "L", 3: "A"} + +SEX_BIDS_TO_MNE = { + ("n/a", "other", "o", "O", "OTHER", "Other"): 0, + ("male", "m", "M", "MALE", "Male"): 1, + ("female", "f", "F", "FEMALE", "Female"): 2, +} + +SEX_MNE_TO_BIDS = {0: "n/a", 1: "M", 2: "F"} + + +def _map_options(what, key, fro, to): + if what == "sex": + mapping_bids_mne = SEX_BIDS_TO_MNE + mapping_mne_bids = SEX_MNE_TO_BIDS + elif what == "hand": + mapping_bids_mne = HAND_BIDS_TO_MNE + mapping_mne_bids = HAND_MNE_TO_BIDS + else: + raise ValueError("Can only map `sex` and `hand`.") + + if fro == "bids" and to == "mne": + # Many-to-one mapping + mapped_option = None + for bids_keys, mne_option in mapping_bids_mne.items(): + if key in bids_keys: + mapped_option = mne_option + break + elif fro == "mne" and to == "bids": + # One-to-one mapping + mapped_option = mapping_mne_bids.get(key, None) + else: + raise RuntimeError( + f"fro value {fro} and to value {to} are not " + "accepted. Use 'mne', or 'bids'." + ) + + return mapped_option + + +# Which JSON data can safely be transferred from a non-anonymized to an +# anonymized dataset without accidentally exposing personal identifiable +# information +ANONYMIZED_JSON_KEY_WHITELIST = [ + # Common + "Manufacturer", + "ManufacturersModelName", + "InstitutionName", + "InstitutionalDepartmentName", + "InstitutionAddress", + "DeviceSerialNumber", + # MRI + # Many of these are not standardized, but produced by dcm2niix. + "Modality", + "MagneticFieldStrength", + "ImagingFrequency", + "StationName", + "SeriesInstanceUID", + "StudyInstanceUID", + "StudyID", + "BodyPartExamined", + "PatientPosition", + "ProcedureStepDescription", + "SoftwareVersions", + "MRAcquisitionType", + "SeriesDescription", + "ProtocolName", + "ScanningSequence", + "SequenceVariant", + "ScanOptions", + "SequenceName", + "ImageType", + "SeriesNumber", + "AcquisitionNumber", + "SliceThickness", + "SAR", + "EchoTime", + "RepetitionTime", + "InversionTime", + "FlipAngle", + "PartialFourier", + "BaseResolution", + "ShimSetting", + "TxRefAmp", + "PhaseResolution", + "ReceiveCoilName", + "ReceiveCoilActiveElements", + "PulseSequenceDetails", + "ConsistencyInfo", + "PercentPhaseFOV", + "PercentSampling", + "PhaseEncodingSteps", + "AcquisitionMatrixPE", + "PixelBandwidth", + "DwellTime", + "ImageOrientationPatientDICOM", + "InPlanePhaseEncodingDirectionDICOM", + "ConversionSoftware", + "ConversionSoftwareVersion", + # Electrophys common + "TaskName", + "TaskDescription", + "Instructions", + "PowerLineFrequency", + "SamplingFrequency", + "SoftwareFilters", + "RecordingType", + "EEGChannelCount", + "EOGChannelCount", + "ECGChannelCount", + "EMGChannelCount", + "MiscChannelCount", + "TriggerChannelCount", + "RecordingDuration", + # EEG + "EEGReference", + "EEGPlacementScheme", + # MEG + "DewarPosition", + "DigitizedLandmarks", + "DigitizedHeadPoints", + "MEGChannelCount", + "MEGREFChannelCount", + "ContinuousHeadLocalization", + "HeadCoilFrequency", +] diff --git a/mne-bids-0.15/mne_bids/conftest.py b/mne-bids-0.15/mne_bids/conftest.py new file mode 100644 index 0000000..46948d2 --- /dev/null +++ b/mne-bids-0.15/mne_bids/conftest.py @@ -0,0 +1,19 @@ +"""Configure all tests.""" + +import mne +import pytest + + +def pytest_configure(config): + """Configure pytest options.""" + # Fixtures + config.addinivalue_line("usefixtures", "monkeypatch_mne") + + +@pytest.fixture(scope="session") +def monkeypatch_mne(): + """Monkeypatch MNE to ensure we have download=False everywhere in tests.""" + mne.datasets.utils._MODULES_TO_ENSURE_DOWNLOAD_IS_FALSE_IN_TESTS = ( + "mne", + "mne_bids", + ) diff --git a/mne-bids-0.15/mne_bids/copyfiles.py b/mne-bids-0.15/mne_bids/copyfiles.py new file mode 100644 index 0000000..dc82c1e --- /dev/null +++ b/mne-bids-0.15/mne_bids/copyfiles.py @@ -0,0 +1,642 @@ +"""Utility functions to copy raw data files. + +When writing BIDS datasets, we often move and/or rename raw data files. several +original data formats have properties that restrict such operations. That is, +moving/renaming raw data files naively might lead to broken files, for example +due to internal pointers that are not being updated. + +""" + +# Authors: Mainak Jas +# Alexandre Gramfort +# Teon Brooks +# Chris Holdgraf +# Stefan Appelhoff +# Matt Sanderson +# +# License: BSD-3-Clause +import os +import os.path as op +import re +import shutil as sh +from pathlib import Path + +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, _mkdir_p, _parse_ext +from mne_bids.utils import _check_anonymize, _get_mrk_meas_date, warn + + +def _copytree(src, dst, **kwargs): + """See: https://github.com/jupyterlab/jupyterlab/pull/5150.""" + try: + sh.copytree(src, dst, **kwargs) + except sh.Error as error: + # `copytree` throws an error if copying to + from NFS even though + # the copy is successful (see https://bugs.python.org/issue24564) + if "[Errno 22]" not in str(error) or not op.exists(dst): + raise + + +def _get_brainvision_encoding(vhdr_file): + """Get the encoding of .vhdr and .vmrk files. + + Parameters + ---------- + vhdr_file : str + Path to the header file. + + Returns + ------- + enc : str + Encoding of the .vhdr file to pass it on to open() function + either 'UTF-8' (default) or whatever encoding scheme is specified + in the header. + + """ + with open(vhdr_file, "rb") as ef: + enc = ef.read() + if enc.find(b"Codepage=") != -1: + enc = enc[enc.find(b"Codepage=") + 9 :] + enc = enc.split()[0] + enc = enc.decode() + src = "(read from header)" + else: + enc = "UTF-8" + src = "(default)" + logger.debug(f"Detected file encoding: {enc} {src}.") + return enc + + +def _get_brainvision_paths(vhdr_path): + """Get the .eeg/.dat and .vmrk file paths from a BrainVision header file. + + Parameters + ---------- + vhdr_path : str + Path to the header file. + + Returns + ------- + paths : tuple + Paths to the .eeg/.dat file at index 0 and the .vmrk file at index 1 of + the returned tuple. + + """ + fname, ext = _parse_ext(vhdr_path) + if ext != ".vhdr": + raise ValueError(f'Expecting file ending in ".vhdr",' f" but got {ext}") + + # Header file seems fine + # extract encoding from brainvision header file, or default to utf-8 + enc = _get_brainvision_encoding(vhdr_path) + + # ..and read it + with open(vhdr_path, encoding=enc) as f: + lines = f.readlines() + + # Try to find data file .eeg/.dat + eeg_file_match = re.search(r"DataFile=(.*\.(eeg|dat))", " ".join(lines)) + + if not eeg_file_match: + raise ValueError("Could not find a .eeg or .dat file link in" f" {vhdr_path}") + else: + eeg_file = eeg_file_match.groups()[0] + + # Try to find marker file .vmrk + vmrk_file_match = re.search(r"MarkerFile=(.*\.vmrk)", " ".join(lines)) + if not vmrk_file_match: + raise ValueError("Could not find a .vmrk file link in" f" {vhdr_path}") + else: + vmrk_file = vmrk_file_match.groups()[0] + + # Make sure we are dealing with file names as is customary, not paths + # Paths are problematic when copying the files to another system. Instead, + # always use the file name and keep the file triplet in the same directory + assert os.sep not in eeg_file + assert os.sep not in vmrk_file + + # Assert the paths exist + head, tail = op.split(vhdr_path) + eeg_file_path = op.join(head, eeg_file) + vmrk_file_path = op.join(head, vmrk_file) + assert op.exists(eeg_file_path) + assert op.exists(vmrk_file_path) + + # Return the paths + return (eeg_file_path, vmrk_file_path) + + +def copyfile_ctf(src, dest): + """Copy and rename CTF files to a new location. + + Parameters + ---------- + src : path-like + Path to the source raw .ds folder. + dest : path-like + Path to the destination of the new bids folder. + + See Also + -------- + copyfile_brainvision + copyfile_bti + copyfile_edf + copyfile_eeglab + copyfile_kit + + """ + _copytree(src, dest) + # list of file types to rename + file_types = ( + ".acq", + ".eeg", + ".dat", + ".hc", + ".hist", + ".infods", + ".bak", + ".meg4", + ".newds", + ".res4", + ) + + # Consider CTF files that are split having consecutively numbered extensions + extra_ctf_file_types = tuple( + f".{i}_meg4" for i in range(1, 21) + ) # cap at 20 is arbitrary + file_types += extra_ctf_file_types + + # Rename files in dest with the name of the dest directory + fnames = [f for f in os.listdir(dest) if f.endswith(file_types)] + bids_folder_name = op.splitext(op.split(dest)[-1])[0] + for fname in fnames: + ext = op.splitext(fname)[-1] + os.replace(op.join(dest, fname), op.join(dest, bids_folder_name + ext)) + + +def copyfile_kit(src, dest, subject_id, session_id, task, run, _init_kwargs): + """Copy and rename KIT files to a new location. + + Parameters + ---------- + src : path-like + Path to the source raw .con or .sqd folder. + dest : path-like + Path to the destination of the new bids folder. + subject_id : str | None + The subject ID. Corresponds to "sub". + session_id : str | None + The session identifier. Corresponds to "ses". + task : str | None + The task identifier. Corresponds to "task". + run : int | None + The run number. Corresponds to "run". + _init_kwargs : dict + Extract information of marker and headpoints + + See Also + -------- + copyfile_brainvision + copyfile_bti + copyfile_ctf + copyfile_edf + copyfile_eeglab + + """ + # create parent directories in case it does not exist yet + _mkdir_p(op.dirname(dest)) + + # KIT data requires the marker file to be copied over too + sh.copyfile(src, dest) + data_path = op.split(dest)[0] + datatype = "meg" + + if "mrk" in _init_kwargs and _init_kwargs["mrk"] is not None: + hpi = _init_kwargs["mrk"] + acq_map = dict() + if isinstance(hpi, list): + if _get_mrk_meas_date(hpi[0]) > _get_mrk_meas_date(hpi[1]): + raise ValueError("Markers provided in incorrect order.") + _, marker_ext = _parse_ext(hpi[0]) + acq_map = dict(zip(["pre", "post"], hpi)) + else: + _, marker_ext = _parse_ext(hpi) + acq_map[None] = hpi + for key, value in acq_map.items(): + marker_path = BIDSPath( + subject=subject_id, + session=session_id, + task=task, + run=run, + acquisition=key, + suffix="markers", + extension=marker_ext, + datatype=datatype, + ) + sh.copyfile(value, op.join(data_path, marker_path.basename)) + + for acq in ["elp", "hsp"]: + if acq in _init_kwargs and _init_kwargs[acq] is not None: + position_file = _init_kwargs[acq] + task, run, acq = None, None, acq.upper() + position_ext = ".pos" + position_path = BIDSPath( + subject=subject_id, + session=session_id, + task=task, + run=run, + acquisition=acq, + suffix="headshape", + extension=position_ext, + datatype=datatype, + ) + sh.copyfile(position_file, op.join(data_path, position_path.basename)) + + +def _replace_file(fname, pattern, replace): + """Overwrite file, replacing end of lines matching pattern with replace.""" + new_content = [] + for line in open(fname): + match = re.match(pattern, line) + if match: + line = match.group()[: -len(replace)] + replace + "\n" + new_content.append(line) + + with open(fname, "w", encoding="utf-8") as fout: + fout.writelines(new_content) + + +def _anonymize_brainvision(vhdr_file, date): + """Anonymize vmrk and vhdr files in place using `date` datetime object.""" + _, vmrk_file = _get_brainvision_paths(vhdr_file) + + # Go through VMRK + pattern = re.compile(r"^Mk\d+=New Segment,.*,\d+,\d+,\d+,\d{20}$") + replace = date.strftime("%Y%m%d%H%M%S%f") + _replace_file(vmrk_file, pattern, replace) + + # Go through VHDR + pattern = re.compile(r"^Impedance \[kOhm\] at \d\d:\d\d:\d\d :$") + replace = f'at {date.strftime("%H:%M:%S")} :' + _replace_file(vhdr_file, pattern, replace) + + +@verbose +def copyfile_brainvision(vhdr_src, vhdr_dest, anonymize=None, verbose=None): + """Copy a BrainVision file triplet to a new location and repair links. + + The BrainVision file format consists of three files: + .vhdr, .eeg/.dat, and .vmrk + The .eeg/.dat and .vmrk files associated with the .vhdr file will be + given names as in `vhdr_dest` with adjusted extensions. Internal file + pointers will be fixed. + + Parameters + ---------- + vhdr_src : path-like + The source path of the .vhdr file to be copied. + vhdr_dest : path-like + The destination path of the .vhdr file. + anonymize : dict | None + If None (default), no anonymization is performed. + If dict, data will be anonymized depending on the keys provided with + the dict: `daysback` is a required key, `keep_his` is an optional key. + + `daysback` : int + Number of days by which to move back the recording date in time. + In studies with multiple subjects the relative recording date + differences between subjects can be kept by using the same number + of `daysback` for all subject anonymizations. `daysback` should be + great enough to shift the date prior to 1925 to conform with BIDS + anonymization rules. + + `keep_his` : bool + By default (False), all subject information next to the recording + date will be overwritten as well. If True, keep subject information + apart from the recording date. + + %(verbose)s + + See Also + -------- + mne.io.anonymize_info + copyfile_bti + copyfile_ctf + copyfile_edf + copyfile_eeglab + copyfile_kit + + """ + # Get extension of the brainvision file + fname_src, ext_src = _parse_ext(vhdr_src) + fname_dest, ext_dest = _parse_ext(vhdr_dest) + if ext_src != ext_dest: + raise ValueError( + f"Need to move data with same extension, " + f' but got "{ext_src}" and "{ext_dest}"' + ) + + eeg_file_path, vmrk_file_path = _get_brainvision_paths(vhdr_src) + + # extract encoding from brainvision header file, or default to utf-8 + enc = _get_brainvision_encoding(vhdr_src) + + # raise warning if binary file has .dat extension + if ".dat" in eeg_file_path: + warn( + "The file extension of your binary EEG data file is .dat, while " + "the expected extension for raw data is .eeg. " + "This might imply it's preprocessed or processed data: " + "We copied the files and changed the extension to .eeg, " + "but please ensure that this is actually BIDS compatible data!" + ) + + # Copy data .eeg/.dat ... no links to repair + sh.copyfile(eeg_file_path, fname_dest + ".eeg") + + # Write new header and marker files, fixing the file pointer links + # For that, we need to replace an old "basename" with a new one + # assuming that all .eeg/.dat, .vhdr, .vmrk share one basename + __, basename_src = op.split(fname_src) + assert op.split(eeg_file_path)[-1] in [basename_src + ".eeg", basename_src + ".dat"] + assert basename_src + ".vmrk" == op.split(vmrk_file_path)[-1] + __, basename_dest = op.split(fname_dest) + search_lines = [ + "DataFile=" + basename_src + ".eeg", + "DataFile=" + basename_src + ".dat", + "MarkerFile=" + basename_src + ".vmrk", + ] + + 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, 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: + line = line.replace(basename_src, basename_dest) + fout.write(line) + + if anonymize is not None: + raw = read_raw_brainvision(vhdr_src, preload=False, verbose=0) + daysback, keep_his, _ = _check_anonymize(anonymize, raw, ".vhdr") + raw.info = anonymize_info(raw.info, daysback=daysback, keep_his=keep_his) + _anonymize_brainvision(fname_dest + ".vhdr", date=raw.info["meas_date"]) + + for ext in [".eeg", ".vhdr", ".vmrk"]: + _, fname = os.path.split(fname_dest + ext) + dirname = op.dirname(op.realpath(vhdr_dest)) + logger.info(f'Created "{fname}" in "{dirname}".') + if anonymize: + logger.info("Anonymized all dates in VHDR and VMRK.") + + +def copyfile_edf(src, dest, anonymize=None): + """Copy an EDF, EDF+, or BDF file to a new location, optionally anonymize. + + .. warning:: EDF/EDF+/BDF files contain two fields for recording dates: + A generic "startdate" field that supports only 2-digit years, + and a "Startdate" field as part of the "local recording + identification", which supports 4-digit years. + If you want to anonymize your file, MNE-BIDS will set the + "startdate" field to 85 (i.e., 1985), the earliest possible + date for that field. However, the "Startdate" field in the + file's "local recording identification" and the date in the + session's corresponding ``scans.tsv`` will be set correctly + according to the argument provided to the ``anonymize`` + parameter. Note that it is possible that not all EDF/EDF+/BDF + reading software parses the accurate recording date, and + that for some reading software, the wrong year (1985) may + be parsed. + + Parameters + ---------- + src : path-like + The source path of the .edf or .bdf file to be copied. + dest : path-like + The destination path of the .edf or .bdf file. + anonymize : dict | None + If None (default), no anonymization is performed. + If dict, data will be anonymized depending on the keys provided with + the dict: `daysback` is a required key, `keep_his` is an optional key. + + `daysback` : int + Number of days by which to move back the recording date in time. + In studies with multiple subjects the relative recording date + differences between subjects can be kept by using the same number + of `daysback` for all subject anonymizations. `daysback` should be + great enough to shift the date prior to 1925 to conform with BIDS + anonymization rules. Due to limitations of the EDF/BDF format, the + year of the anonymized date will always be set to 1985 in the + 'startdate' field of the file. The correctly-shifted year will be + written to the 'local recording identification' region of the + file header, which may not be parsed by all EDF/EDF+/BDF reader + software. + + `keep_his` : bool + By default (False), all subject information next to the recording + date will be overwritten as well. If True, keep subject information + apart from the recording date. Participant names and birthdates + will always be anonymized if present, regardless of this setting. + + See Also + -------- + mne.io.anonymize_info + copyfile_brainvision + copyfile_bti + copyfile_ctf + copyfile_eeglab + copyfile_kit + + """ + # Ensure source & destination extensions are the same + fname_src, ext_src = _parse_ext(src) + fname_dest, ext_dest = _parse_ext(dest) + + if ext_src.lower() != ext_dest.lower(): + raise ValueError( + f"Need to move data with same extension, " + f' but got "{ext_src}" and "{ext_dest}"' + ) + + if ext_dest in [".EDF", ".BDF"]: + warn( + "Upper-case extension for EDF/BDF files is not supported " + "in BIDS. Converting destination extension to lower-case." + ) + ext_dest = ext_dest.lower() + dest = Path(dest).with_suffix(ext_dest) + + # Copy data prior to any anonymization + sh.copyfile(src, dest) + + # Anonymize EDF/BDF data, if requested + if anonymize is not None: + if ext_src in [".bdf", ".BDF"]: + raw = read_raw_bdf(dest, preload=False, verbose=0) + elif ext_src in [".edf", ".EDF"]: + raw = read_raw_edf(dest, preload=False, verbose=0) + else: + raise ValueError(f"Unsupported file type ({ext_src})") + + # Get subject info, recording info, and recording date + with open(dest, "rb") as f: + f.seek(8) # id_info field starts 8 bytes in + id_info = f.read(80).decode("ascii").rstrip() + rec_info = f.read(80).decode("ascii").rstrip() + + # Parse metadata from file + if len(id_info) == 0 or len(id_info.split(" ")) != 4: + id_info = "X X X X" + if len(rec_info) == 0 or len(rec_info.split(" ")) != 5: + rec_info = "Startdate X X X X" + pid, sex, birthdate, name = id_info.split(" ") + start_date, admin_code, tech, equip = rec_info.split(" ")[1:5] + + # Try to anonymize the recording date + daysback, keep_his, _ = _check_anonymize(anonymize, raw, ".edf") + anonymize_info(raw.info, daysback=daysback, keep_his=keep_his) + start_date = "01-JAN-1985" + meas_date = "01.01.85" + + # Anonymize ID info and write to file + if keep_his: + # Always remove participant birthdate and name to be safe + id_info = [pid, sex, "X", "X"] + rec_info = ["Startdate", start_date, admin_code, tech, equip] + else: + id_info = ["0", "X", "X", "X"] + rec_info = ["Startdate", start_date, "X", "mne-bids_anonymize", "X"] + with open(dest, "r+b") as f: + f.seek(8) # id_info field starts 8 bytes in + f.write(bytes(" ".join(id_info).ljust(80), "ascii")) + f.write(bytes(" ".join(rec_info).ljust(80), "ascii")) + f.write(bytes(meas_date, "ascii")) + + +def copyfile_eeglab(src, dest): + """Copy an EEGLAB file to a new location. + + If the EEGLAB ``.set`` file comes with an accompanying ``.fdt`` binary file + that contains the actual data, this function will copy this file, too, and + update all internal pointers in the new ``.set`` file. + + Parameters + ---------- + src : path-like + Path to the source raw .set file. + dest : path-like + Path to the destination of the new .set file. + + See Also + -------- + copyfile_brainvision + copyfile_bti + copyfile_ctf + copyfile_edf + copyfile_kit + + """ + # Get extension of the EEGLAB file + _, ext_src = _parse_ext(src) + fname_dest, ext_dest = _parse_ext(dest) + if ext_src != ext_dest: + raise ValueError( + f"Need to move data with same extension" f" but got {ext_src}, {ext_dest}" + ) + + # Load the EEG struct + # NOTE: do *not* simplify cells, because this changes the underlying + # structure and potentially breaks re-reading of the file + uint16_codec = None + eeg = loadmat( + file_name=src, + simplify_cells=False, + appendmat=False, + uint16_codec=uint16_codec, + mat_dtype=True, + ) + oldstyle = False + if "EEG" in eeg: + eeg = eeg["EEG"] + oldstyle = True + + has_fdt_link = False + try: + # If the data field is a string, it points to a .fdt file in src dir + if isinstance(eeg["data"][0, 0][0], str): + has_fdt_link = True + except IndexError: + pass + + if has_fdt_link: + fdt_fname = eeg["data"][0, 0][0] + + assert fdt_fname.endswith(".fdt"), f"Unexpected fdt name: {fdt_fname}" + head, _ = op.split(src) + fdt_path = op.join(head, fdt_fname) + + # Copy the .fdt file and give it a new name + fdt_name_new = fname_dest + ".fdt" + sh.copyfile(fdt_path, fdt_name_new) + + # Now adjust the pointer in the .set file + # NOTE: Clunky numpy code is to match MATLAB structure for "savemat" + _, tail = op.split(fdt_name_new) + new_value = np.empty((1, 1), dtype=object) + new_value[0, 0] = np.atleast_1d(np.array(tail)) + eeg["data"] = new_value + + # Save the EEG dictionary as a Matlab struct again + mdict = dict(EEG=eeg) if oldstyle else eeg + savemat(file_name=dest, mdict=mdict, appendmat=False) + else: + # If no .fdt file, simply copy the .set file, no modifications + # necessary + sh.copyfile(src, dest) + + +def copyfile_bti(raw, dest): + """Copy BTi data. + + Parameters + ---------- + raw : mne.io.Raw + An MNE-Python raw object of BTi data. + dest : path-like + Destination to copy the BTi data to. + + See Also + -------- + copyfile_brainvision + copyfile_ctf + copyfile_edf + copyfile_eeglab + copyfile_kit + + """ + os.makedirs(dest, exist_ok=True) + for key, val in ( + ("pdf_fname", None), + ("config_fname", "config"), + ("head_shape_fname", "hs_file"), + ): + keyfile = raw._raw_extras[0].get(key) + + # Keep name of pdf file + if key == "pdf_fname": + val = op.basename(keyfile) + + # If no headshape file present, cannot copy it + if key == "head_shape_fname" and keyfile is None: + continue + + sh.copyfile(keyfile, op.join(dest, val)) diff --git a/mne-bids-0.15/mne_bids/data/space-ICBM452AirSpace_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-ICBM452AirSpace_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..6acfa03a12301663e3c272c530cee1508b89035a GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFOcm7^nuia)PeMa^nujxo@nZ8JwLv{mbYdyP+1O0EeL?z1^`fYL#6-# literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-ICBM452AirSpace_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-ICBM452AirSpace_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..1cbaf18695f85ce46bded27c7392862ac2851b55 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf^~lbh>Z&D8z6j`oYPbWhC@>r7@YPnFo48B(#RO54yF&J9;DU@s0Rpg Kz$B0WxeWlz4I_8} literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-ICBM452Warp5Space_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-ICBM452Warp5Space_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..ad2c1920f83321c6833a1e54a8629fbd71c8fdb6 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFI|eu=*g kGe{n!j^p=#dyqa5e>YIQjiJDQTd5dBpvgHf^FeL{0CdzeUjP6A literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-ICBM452Warp5Space_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-ICBM452Warp5Space_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..1cbaf18695f85ce46bded27c7392862ac2851b55 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf^~lbh>Z&D8z6j`oYPbWhC@>r7@YPnFo48B(#RO54yF&J9;DU@s0Rpg Kz$B0WxeWlz4I_8} literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-IXI549Space_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-IXI549Space_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..ef056b5c0c5da5554cf629790897219bcf43833e GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwF}*34NZjc8=#D>tf8?mG5eV_C+^Sx{~sg=!XRJ| TekBFxqxaiff(*iARFi=h8!RU1CU<;Sam3l literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152Lin_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152Lin_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..50dbe4684999eccafa37ce758e58290c8f26bae4 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0`^Nle9^uE%z+cw_)c3G7@Yn9@dO42Z1Ql;Kn6(u5K#Rgp!!2V^+1pVCV>RV FZ2(8kA_4#a literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152Lin_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152Lin_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..b25f8696a3c2618ac558e017c788b07b51c2df35 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0g!su{q;Xxtsnku+v9t4zfBPPY+ISLEB4o)nzZ{8`|SPo=hFAes#)($|MGHg zmwkY>%g%)$^&oX1d5}Jc`g7?Z{UCiH^;Wvir&w=iG1}Ytyc1|g4#+YP0J#kS1Gz^U literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152Lin_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152Lin_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..4fff658da866496c17270e1c9ef50a6013664958 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf^~lbh>Z&D8z6j`oYPhYhC@K?bd!MrBnFa3#xQj-eIWH9wICV@a=;{z H0J#kS?U^Jr literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..510bf28cc133ad07e3628af6b1635b9c12aadba7 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFwE^7l@udbs!Gt~eZO em_cTM%>k+fs>uXmxI2Mtpqm(SfEWxwegOa^GAgP7 literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..238fc12f7c033bb4e1f0b416b1cd0c31c3191708 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0`^Nle9^uE%z+cw_)bR{7@XM{7@Q_BFkq91YX&kv@`r%x4+GU70;&gs954wa HKyCv7^eZ4Z literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aAsym_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..fb5bdfe16a5b87b872f757b935818665c7ae809b GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0g!su{q_GgSf5v@vRu~VucTq-ZtFYEVSoMFwB6^EQ})-d5!>rK)o3UCZ^gay zb_7{9?g#^^mv3NL0g?ylgQ#C42GS4G2UgFR$!Z&D8z6j`oYPSThC_Q97@S@*Fo48B(#RO54yF&J9;DU@s0Rpg Kz$B0WxeWmPX(WUI literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..510bf28cc133ad07e3628af6b1635b9c12aadba7 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFwE^7l@udbs!Gt~eZO em_cTM%>k+fs>uXmxI2Mtpqm(SfEWxwegOa^GAgP7 literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..238fc12f7c033bb4e1f0b416b1cd0c31c3191708 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0`^Nle9^uE%z+cw_)bR{7@XM{7@Q_BFkq91YX&kv@`r%x4+GU70;&gs954wa HKyCv7^eZ4Z literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009aSym_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..fb5bdfe16a5b87b872f757b935818665c7ae809b GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0g!su{q_GgSf5v@vRu~VucTq-ZtFYEVSoMFwB6^EQ})-d5!>rK)o3UCZ^gay zb_7{9?g#^^mv3NL0g?ylgQ#C42GS4G2UgFR$!Z&D8z6j`oYPSThC_Q97@S@*Fo48B(#RO54yF&J9;DU@s0Rpg Kz$B0WxeWmPX(WUI literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bAsym_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bAsym_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..0e532a4c7f827a5f18870b986a60614e7717311b GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwF!%*zL1VoC(CX LV1XQ{FxYJX1;HQ+ literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bSym_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009bSym_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..0e532a4c7f827a5f18870b986a60614e7717311b GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwF!%*zL1VoC(CX LV1XQ{FxYJX1;HQ+ literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cAsym_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cAsym_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..cd4563ab8af315d903309b48ecceeaaafe5fbea7 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFU=m1x G+y(&k-ylQ) literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cAsym_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cAsym_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..51dd0afd1ad827bdcb81374bf363fea5863c9284 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0g!su{q_GgSf5v@vRu~Vuax2S#nyM4!~XiUX}ixSr|hp^BevIfs?l!lNs4Z&D8z6j`oYO%DhC@K?^pt@CBnFa3#xQj-eIWH9wICV@a=;{z H0J#kS`q3nO literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cSym_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cSym_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..cd4563ab8af315d903309b48ecceeaaafe5fbea7 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFU=m1x G+y(&k-ylQ) literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cSym_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin2009cSym_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..51dd0afd1ad827bdcb81374bf363fea5863c9284 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0g!su{q_GgSf5v@vRu~Vuax2S#nyM4!~XiUX}ixSr|hp^BevIfs?l!lNs4Z&D8z6j`oYO%DhC@K?^pt@CBnFa3#xQj-eIWH9wICV@a=;{z H0J#kS`q3nO literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..7b0787fefceb7ee99f10bfcb2871434dc979ae8b GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwF|GhN<9(#|-WB{@&iVn$`*v^nq$Jff(*iARFi=h8!RU1CU<;g}^Aa literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..ed09e3804492468d9037618576db9c812e831080 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0`^Nld~yG_+j$K@9teYgJ&+G!K}ZnanPHNrvk3!()7foz_8S`;HvpwT7zFHr ad)r|X wa;!PoL_z97>Ok@!eIWH9bs+s9eIWH#anJ7A@cLf0?Y{xCBL`#|2!PxM07kV$mH+?% literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin6ASym_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..264ad65a0d8a6f8f9d640ae2a90d963afaf38e4a GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf_1;Ku`!s7MA$>cU~*2|7#I!#vD3}X#{0M3&T9awMaCd8kal}0?aai$ S;4Iz10HT2)2TTG9klO(3Hz-2@ literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin6Sym_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin6Sym_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..673671d648e5073a0af9d2ae14572f8ebcc4c439 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFU=m1x G+y(&iFCa7k literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI152NLin6Sym_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI152NLin6Sym_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..e93e5fa7b8d754f9d4e1f7148f53385616114a80 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0g!su{q?_kcCocs+XP$e-V>bMW2^K;et-S3O)A*|zWeLXsO?pHKEvvC*yX*G yQY3dV3+02Z&D8z6j`oYO%DhC@K?^pt@CBnFa3#xQj-eIWH9wICV@a=;{z H0J#kS`q3nO literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI305_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-MNI305_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..0ba25e0a533f189e4ec965e0b458d42ed2f657e7 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFulhuLPM%#7f8}{;T2*9C+ k*>=sbyge`L7Vgy)Y6q&x1Y)>5fo!0g7;=CZ3_yMX0JS|S{r~^~ literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNI305_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNI305_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..14b762d4664435153467346c493e5af58cb274dd GIT binary patch literal 212 zcmZ9G!3{uA5JX4(L<8;)8jvW!K`SI8dZ0506;OayzPC0K%-@&E&d%XW>LeAAgOn&# zwLe?u7$eq03IRl9*$DsaBr9P6lpV0Ii^P1e%+xHmsl^`NeZP9os?W{38@WwUiZ&D8z6j`oHLMn7>GeMNDPQjFiagxA4nYx1DQEM3|A6HuICZ~3{Kdruu`#-WCJ j?*@gVdwc!wTW_(90IJCZVz@hjY@nMMa)1~NKz;!L$EYey literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-MNIColin27_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-MNIColin27_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..18a9a0f74227504e7cd7f89ea283846db1766ed6 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0`^Nle9-~SMiAKe&L#~E&NVgiGhFvm}FpZHU;8H2n`g< JfeM4&1_1WrAG!bl literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-NIHPD_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-NIHPD_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..44e25ac43bc989ac531e9bb10383de9c9ffeb407 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFOp28tKXAs7Pr?~;~`Ku2Z+G{Z&D8z6j`oYPSThC_Q97@S@*Fo48B(#RO54yF&J9;DU@s0Rpg Kz$B0WxeWmPX(WUI literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..c3165847f44132ca8d2839ce8a98a7a4da7e3b1c GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwF literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_trans.fif b/mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..082efa55e7ca3fcf3c7faaf8835e9c9ce5f39594 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0g!rD`}*VGt!-y2*lN7}vy?9~#J)a0dT+l!^IpveN85h=rS|perMtuDdhNdQ y_sgDttnWeUL7GAGAblY9Aax-9AblY9*36laHoPw_Y<^8V3{;u}QV#+kw*dgCwLRki literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-OASIS30AntsOASISAnts_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..5b69b00af07e3348eec1f0452bdab6926067da7f GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf^~lbh>Z&D8z6j`oYM^khQopl49-AdkQhiB8N<}U^nuia)H(z806`9j I00EHO0HRSMga7~l literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..ab2b7490f45adda41e2496e576e3c4d366024f4c GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwF|9Ry__iOuJoXFSFfW^KK7N9S$|j iw%yLtcBdvd?FFg@s>uXmxI2Mtpqm(SfEWxwegObIX)Wjg literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..fc263347cceb167498721993f6b4daf77a96acd2 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0`^Nld~tsR0|OADV2~IH*f)SFxSaE(1_osH5Lt*ikWys1!$7qlF(Al+P!P8P E0IX#tpa1{> literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_trans.fif b/mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..24eb8f93f50b38f2248eee17588d259a95c3a5ef GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0g!rD`}$Xp_DodPv6=Eh&1Nn0LHnve?tP)vl6%tDudxd~r(j7__#HN5*(AL5PWJeCjG7tc{4FE$8KGgsK literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-OASIS30Atropos_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..5b69b00af07e3348eec1f0452bdab6926067da7f GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf^~lbh>Z&D8z6j`oYM^khQopl49-AdkQhiB8N<}U^nuia)H(z806`9j I00EHO0HRSMga7~l literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-Talairach_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-Talairach_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..76b615bf24592cc5a8cef29dbdee92ef255a8ce3 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwF<`IkO7iE1XOL;C^|?R^{f`P&Iz6WO=^UCsX7h3od}s_x%w zpm5Yy{P9YV`o#x-8Gz(L`oQXe>OlHI`oQWPnOE2boKvw$dUPFVM-Ip`5CFLi06EP> A&;S4c literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-Talairach_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-Talairach_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..b2bd237328e81a6f0002938998a5fe4018121a5c GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf^~lbh>Z&D8z6j`oKr6Y!=V@k2B$R)3?MO(G%|*%gXsgQ2dQ-e>H&fr KFbO0;ZUX?WjUw0p literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-UNCInfant_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-UNCInfant_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..18518a352e305a6fdb541f1351d3c47e1e0f306b GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwF?7^Xi$?C}LWqZ92H1D;FGsU5X hd9T~@4`6ey{QUw{lL^FdcLLc!H!(S_H=Olx6#@lsIuq5lKmW9|My4SF|=7QW7qzOi*5ECEWXyt*SYre z$7ot_v5WwzU&O%X1Cj^ngQ&mQ2GS4G2Uah$k9GI7Jpp?r&JY0Fkpr>}1VC;B0AD9S A5dZ)H literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-UNCInfant_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-UNCInfant_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..4fff658da866496c17270e1c9ef50a6013664958 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf^~lbh>Z&D8z6j`oYPhYhC@K?bd!MrBnFa3#xQj-eIWH9wICV@a=;{z H0J#kS?U^Jr literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-fsLR_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-fsLR_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..7b0787fefceb7ee99f10bfcb2871434dc979ae8b GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwF|GhN<9(#|-WB{@&iVn$`*v^nq$Jff(*iARFi=h8!RU1CU<;g}^Aa literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-fsLR_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-fsLR_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..ed09e3804492468d9037618576db9c812e831080 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0`^Nld~yG_+j$K@9teYgJ&+G!K}ZnanPHNrvk3!()7foz_8S`;HvpwT7zFHr ad)r|X wa;!PoL_z97>Ok@!eIWH9bs+s9eIWH#anJ7A@cLf0?Y{xCBL`#|2!PxM07kV$mH+?% literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-fsLR_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-fsLR_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..264ad65a0d8a6f8f9d640ae2a90d963afaf38e4a GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf_1;Ku`!s7MA$>cU~*2|7#I!#vD3}X#{0M3&T9awMaCd8kal}0?aai$ S;4Iz10HT2)2TTG9klO(3Hz-2@ literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-fsaverageSym_fiducials.fif b/mne-bids-0.15/mne_bids/data/space-fsaverageSym_fiducials.fif new file mode 100644 index 0000000000000000000000000000000000000000..4f0bd2e989fec02cfde5acbd1eec8fc8d39673c2 GIT binary patch literal 260 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFh($ literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-fsaverageSym_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-fsaverageSym_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..14b762d4664435153467346c493e5af58cb274dd GIT binary patch literal 212 zcmZ9G!3{uA5JX4(L<8;)8jvW!K`SI8dZ0506;OayzPC0K%-@&E&d%XW>LeAAgOn&# zwLe?u7$eq03IRl9*$DsaBr9P6lpV0Ii^P1e%+xHmsl^`NeZP9os?W{38vGB literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-fsaverageSym_vox-mri_trans.fif b/mne-bids-0.15/mne_bids/data/space-fsaverageSym_vox-mri_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..ea19506eaaf7ec5a8f3e7e7f9f45a7ee957acb06 GIT binary patch literal 212 zcmZQzU`SzLV2}r55g=w@U}Ru1For-7xBmbC|3E4gh?#+y1&A4dLLjj$AVwFv2NY8V z;tU`L0``kQf^~lbh>Z&D8z6j`oHLMn7>GeMNDPQjFiagxA4nYx1DQEM3ulhuLPM%#7f8}{;T2*9C+ k*>=sbyge`L7Vgy)Y6q&x1Y)>5fo!0g7;=CZ3_yMX0JS|S{r~^~ literal 0 HcmV?d00001 diff --git a/mne-bids-0.15/mne_bids/data/space-fsaverage_ras-vox_trans.fif b/mne-bids-0.15/mne_bids/data/space-fsaverage_ras-vox_trans.fif new file mode 100644 index 0000000000000000000000000000000000000000..14b762d4664435153467346c493e5af58cb274dd GIT binary patch literal 212 zcmZ9G!3{uA5JX4(L<8;)8jvW!K`SI8dZ0506;OayzPC0K%-@&E&d%XW>LeAAgOn&# zwLe?u7$eq03IRl9*$DsaBr9P6lpV0Ii^P1e%+xHmsl^`NeZP9os?W{38@WwUiZ&D8z6j`oHLMn7>GeMNDPQjFiagxA4nYx1DQEM3 +# Stefan Appelhoff +# Alex Rockhill +# +# License: BSD-3-Clause +import json +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.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, + BIDS_STANDARD_TEMPLATE_COORDINATE_SYSTEMS, + BIDS_TO_MNE_FRAMES, + MNE_FRAME_TO_STR, + MNE_STR_TO_FRAME, + 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, +) + +data_dir = Path(__file__).parent / "data" + + +def _handle_electrodes_reading(electrodes_fname, coord_frame, coord_unit): + """Read associated electrodes.tsv and populate raw. + + Handle xyz coordinates and coordinate frame of each channel. + """ + logger.info("Reading electrode " f"coords from {electrodes_fname}.") + electrodes_dict = _from_tsv(electrodes_fname) + ch_names_tsv = electrodes_dict["name"] + + def _float_or_nan(val): + if val == "n/a": + return np.nan + else: + return float(val) + + # convert coordinates to float and create list of tuples + electrodes_dict["x"] = [_float_or_nan(x) for x in electrodes_dict["x"]] + electrodes_dict["y"] = [_float_or_nan(x) for x in electrodes_dict["y"]] + electrodes_dict["z"] = [_float_or_nan(x) for x in electrodes_dict["z"]] + ch_names_raw = [ + x for i, x in enumerate(ch_names_tsv) if electrodes_dict["x"][i] != "n/a" + ] + ch_locs = np.c_[electrodes_dict["x"], electrodes_dict["y"], electrodes_dict["z"]] + + # convert coordinates to meters + ch_locs = _scale_coord_to_meters(ch_locs, coord_unit) + + # create mne.DigMontage + ch_pos = dict(zip(ch_names_raw, ch_locs)) + montage = mne.channels.make_dig_montage(ch_pos=ch_pos, coord_frame=coord_frame) + return montage + + +def _handle_coordsystem_reading(coordsystem_fpath, datatype): + """Read associated coordsystem.json. + + Handle reading the coordinate frame and coordinate unit + of each electrode. + """ + with open(coordsystem_fpath, encoding="utf-8-sig") as fin: + coordsystem_json = json.load(fin) + + if datatype == "meg": + coord_frame = coordsystem_json["MEGCoordinateSystem"] + coord_unit = coordsystem_json["MEGCoordinateUnits"] + coord_frame_desc = coordsystem_json.get("MEGCoordinateDescription", None) + elif datatype == "eeg": + coord_frame = coordsystem_json["EEGCoordinateSystem"] + coord_unit = coordsystem_json["EEGCoordinateUnits"] + coord_frame_desc = coordsystem_json.get("EEGCoordinateDescription", None) + elif datatype == "ieeg": + coord_frame = coordsystem_json["iEEGCoordinateSystem"] + coord_unit = coordsystem_json["iEEGCoordinateUnits"] + coord_frame_desc = coordsystem_json.get("iEEGCoordinateDescription", None) + + msg = f"Reading coordinate system frame {coord_frame}" + if coord_frame_desc: + msg += f": {coord_frame_desc}" + + return coord_frame, coord_unit + + +def _get_impedances(raw, names): + """Get the impedance values in kOhm from raw.impedances.""" + if not hasattr(raw, "impedances"): # pragma: no cover + return ["n/a"] * len(names) + no_info = {"imp": np.nan, "imp_unit": "kOhm"} + impedance_dicts = [raw.impedances.get(name, no_info) for name in names] + # If we encounter a unit not defined in `scalings`, return NaN + scalings = {"kOhm": 1, "Ohm": 0.001} + impedances = [ + imp_dict["imp"] * scalings.get(imp_dict["imp_unit"], np.nan) + for imp_dict in impedance_dicts + ] + # replace np.nan with BIDS 'n/a' representation + impedances = [i if not np.isnan(i) else "n/a" for i in impedances] + return impedances + + +def _write_electrodes_tsv(raw, fname, datatype, overwrite=False): + """Create an electrodes.tsv file and save it. + + Parameters + ---------- + raw : mne.io.Raw + The data as MNE-Python Raw object. + fname : str + Filename to save the electrodes.tsv to. + datatype : str + Type of the data recording. Can be ``meg``, ``eeg``, + or ``ieeg``. + overwrite : bool + Defaults to False. + Whether to overwrite the existing data in the file. + If there is already data for the given `fname` and overwrite is False, + an error will be raised. + + """ + # create list of channel coordinates and names + x, y, z, names = list(), list(), list(), list() + for ch in raw.info["chs"]: + if ch["kind"] == FIFF.FIFFV_STIM_CH: + logger.debug(f"Not writing stim chan {ch['ch_name']} " f"to electrodes.tsv") + continue + elif np.isnan(ch["loc"][:3]).any() or np.allclose(ch["loc"][:3], 0): + x.append("n/a") + y.append("n/a") + z.append("n/a") + else: + x.append(ch["loc"][0]) + y.append(ch["loc"][1]) + z.append(ch["loc"][2]) + names.append(ch["ch_name"]) + + # create OrderedDict to write to tsv file + if datatype == "ieeg": + # XXX: size should be included in the future + sizes = ["n/a"] * len(names) + data = OrderedDict( + [ + ("name", names), + ("x", x), + ("y", y), + ("z", z), + ("size", sizes), + ] + ) + elif datatype == "eeg": + data = OrderedDict( + [ + ("name", names), + ("x", x), + ("y", y), + ("z", z), + ] + ) + else: # pragma: no cover + raise RuntimeError(f"datatype {datatype} not supported.") + + # Add impedance values if available, currently only BrainVision: + # https://github.com/mne-tools/mne-python/pull/7974 + if hasattr(raw, "impedances"): + data["impedance"] = _get_impedances(raw, names) + + # note that any coordsystem.json file shared within sessions + # will be the same across all runs (currently). So + # overwrite is set to True always + # XXX: improve later when BIDS is updated + # check that there already exists a coordsystem.json + if Path(fname).exists() and not overwrite: + electrodes_tsv = _from_tsv(fname) + + # cast values to str to make equality check work + if any( + [ + list(map(str, vals1)) != list(vals2) + for vals1, vals2 in zip(data.values(), electrodes_tsv.values()) + ] + ): + raise RuntimeError( + f"Trying to write electrodes.tsv, but it already " + f"exists at {fname} and the contents do not match. " + f"You must differentiate this electrodes.tsv file " + f'from the existing one, or set "overwrite" to True.' + ) + _write_tsv(fname, data, overwrite=True) + + +def _write_optodes_tsv(raw, fname, overwrite=False, verbose=True): + """Create a optodes.tsv file and save it. + + Parameters + ---------- + raw : instance of Raw + The data as MNE-Python Raw object. + fname : str | BIDSPath + Filename to save the optodes.tsv to. + overwrite : bool + Whether to overwrite the existing file. + Defaults to False. + verbose : bool + Set verbose output to True or False. + """ + picks = _picks_to_idx(raw.info, "fnirs", exclude=[], allow_empty=True) + sources = np.zeros(picks.shape) + detectors = np.zeros(picks.shape) + for ii in picks: + # NIRS channel names take a specific form in MNE-Python. + # The channel names always reflect the source and detector + # pair, followed by the wavelength frequency. + # The following code extracts the source and detector + # numbers from the channel name. + ch1_name_info = re.match(r"S(\d+)_D(\d+) (\d+)", raw.info["chs"][ii]["ch_name"]) + sources[ii] = ch1_name_info.groups()[0] + detectors[ii] = ch1_name_info.groups()[1] + unique_sources = np.unique(sources) + n_sources = len(unique_sources) + unique_detectors = np.unique(detectors) + names = np.concatenate( + ( + ["S" + str(s) for s in unique_sources.astype(int)], + ["D" + str(d) for d in unique_detectors.astype(int)], + ) + ) + + xs = np.zeros(names.shape) + ys = np.zeros(names.shape) + zs = np.zeros(names.shape) + for i, source in enumerate(unique_sources): + s_idx = np.where(sources == source)[0][0] + xs[i] = raw.info["chs"][s_idx]["loc"][3] + ys[i] = raw.info["chs"][s_idx]["loc"][4] + zs[i] = raw.info["chs"][s_idx]["loc"][5] + for i, detector in enumerate(unique_detectors): + d_idx = np.where(detectors == detector)[0][0] + xs[i + n_sources] = raw.info["chs"][d_idx]["loc"][6] + ys[i + n_sources] = raw.info["chs"][d_idx]["loc"][7] + zs[i + n_sources] = raw.info["chs"][d_idx]["loc"][8] + + ch_data = { + "name": names, + "type": np.concatenate( + ( + np.full(len(unique_sources), "source"), + np.full(len(unique_detectors), "detector"), + ) + ), + "x": xs, + "y": ys, + "z": zs, + } + _write_tsv(fname, ch_data, overwrite, verbose) + + +def _write_coordsystem_json( + *, + raw, + unit, + hpi_coord_system, + sensor_coord_system, + fname, + datatype, + overwrite=False, +): + """Create a coordsystem.json file and save it. + + Parameters + ---------- + raw : mne.io.Raw + The data as MNE-Python Raw object. + unit : str + Units to be used in the coordsystem specification, + as in BIDS_COORDINATE_UNITS. + hpi_coord_system : str + Name of the coordinate system for the head coils. + sensor_coord_system : str | tuple of str + Name of the coordinate system for the sensor positions. + If a tuple of strings, should be in the form: + ``(BIDS coordinate frame, MNE coordinate frame)``. + fname : str + Filename to save the coordsystem.json to. + datatype : str + Type of the data recording. Can be ``meg``, ``eeg``, + or ``ieeg``. + overwrite : bool + Whether to overwrite the existing file. + Defaults to False. + + """ + if raw.get_montage() is None: + dig = list() + coords = dict() + else: + montage = raw.get_montage() + pos = montage.get_positions() + dig = list() if montage.dig is None else montage.dig + coords = dict( + NAS=list() if pos["nasion"] is None else pos["nasion"].tolist(), + LPA=list() if pos["lpa"] is None else pos["lpa"].tolist(), + RPA=list() if pos["rpa"] is None else pos["rpa"].tolist(), + ) + + # get the coordinate frame description + sensor_coord_system_descr = BIDS_COORD_FRAME_DESCRIPTIONS.get( + sensor_coord_system.lower(), "n/a" + ) + + # create the coordinate json data structure based on 'datatype' + if datatype == "meg": + hpi = {d["ident"]: d for d in dig if d["kind"] == FIFF.FIFFV_POINT_HPI} + if hpi: + for ident in hpi.keys(): + coords["coil%d" % ident] = hpi[ident]["r"].tolist() + + fid_json = { + "MEGCoordinateSystem": sensor_coord_system, + "MEGCoordinateUnits": unit, # XXX validate this + "MEGCoordinateSystemDescription": sensor_coord_system_descr, + "HeadCoilCoordinates": coords, + "HeadCoilCoordinateSystem": hpi_coord_system, + "HeadCoilCoordinateUnits": unit, # XXX validate this + "AnatomicalLandmarkCoordinates": coords, + "AnatomicalLandmarkCoordinateSystem": sensor_coord_system, + "AnatomicalLandmarkCoordinateUnits": unit, + } + elif datatype == "eeg": + fid_json = { + "EEGCoordinateSystem": sensor_coord_system, + "EEGCoordinateUnits": unit, + "EEGCoordinateSystemDescription": sensor_coord_system_descr, + "AnatomicalLandmarkCoordinates": coords, + "AnatomicalLandmarkCoordinateSystem": sensor_coord_system, + "AnatomicalLandmarkCoordinateUnits": unit, + } + elif datatype == "ieeg": + fid_json = { + # (Other, Pixels, ACPC) + "iEEGCoordinateSystem": sensor_coord_system, + "iEEGCoordinateSystemDescription": sensor_coord_system_descr, + "iEEGCoordinateUnits": unit, # m (MNE), mm, cm , or pixels + } + elif datatype == "nirs": + fid_json = { + "NIRSCoordinateSystem": sensor_coord_system, + "NIRSCoordinateSystemDescription": sensor_coord_system_descr, + "NIRSCoordinateUnits": unit, + } + + # note that any coordsystem.json file shared within sessions + # will be the same across all runs (currently). So + # overwrite is set to True always + # 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, encoding="utf-8-sig") as fin: + coordsystem_dict = json.load(fin) + if fid_json != coordsystem_dict: + raise RuntimeError( + f"Trying to write coordsystem.json, but it already " + f"exists at {fname} and the contents do not match. " + f"You must differentiate this coordsystem.json file " + f'from the existing one, or set "overwrite" to True.' + ) + _write_json(fname, fid_json, overwrite=True) + + +def _write_dig_bids(bids_path, raw, montage=None, acpc_aligned=False, overwrite=False): + """Write BIDS formatted DigMontage from Raw instance. + + Handles coordsystem.json and electrodes.tsv writing + from DigMontage. + + Parameters + ---------- + bids_path : BIDSPath + Path in the BIDS dataset to save the ``electrodes.tsv`` + and ``coordsystem.json`` file for. ``datatype`` + attribute must be ``eeg``, or ``ieeg``. For ``meg`` + data, ``electrodes.tsv`` are not saved. + raw : mne.io.Raw + The data as MNE-Python Raw object. + montage : mne.channels.DigMontage | None + The montage to use rather than the one in ``raw`` if it + must be transformed from the "head" coordinate frame. + acpc_aligned : bool + Whether "mri" space is aligned to ACPC. + overwrite : bool + Whether to overwrite the existing file. + Defaults to False. + + """ + # write electrodes data for iEEG and EEG + unit = "m" # defaults to meters + + if montage is None: + montage = raw.get_montage() + else: # assign montage to raw but supress any coordinate transforms + montage = montage.copy() # don't modify original + montage_coord_frame = montage.get_positions()["coord_frame"] + fids = [ + d + for d in montage.dig # save to add back + if d["kind"] == FIFF.FIFFV_POINT_CARDINAL + ] + montage.remove_fiducials() # prevent coordinate transform + with warnings.catch_warnings(): + warnings.filterwarnings( + action="ignore", + category=RuntimeWarning, + message=".*nasion not found", + module="mne", + ) + raw.set_montage(montage) + for ch in raw.info["chs"]: + ch["coord_frame"] = MNE_STR_TO_FRAME[montage_coord_frame] + for d in raw.info["dig"]: + d["coord_frame"] = MNE_STR_TO_FRAME[montage_coord_frame] + with raw.info._unlock(): # add back fiducials + raw.info["dig"] = fids + raw.info["dig"] + + # get the accepted mne-python coordinate frames + coord_frame_int = int(montage.dig[0]["coord_frame"]) + mne_coord_frame = MNE_FRAME_TO_STR.get(coord_frame_int, None) + coord_frame = MNE_TO_BIDS_FRAMES.get(mne_coord_frame, None) + + if coord_frame == "CapTrak" and bids_path.datatype in ("eeg", "nirs"): + pos = raw.get_montage().get_positions() + if any([pos[fid_key] is None for fid_key in ("nasion", "lpa", "rpa")]): + raise RuntimeError( + "'head' coordinate frame must contain nasion " + "and left and right pre-auricular point " + "landmarks" + ) + + if ( + bids_path.datatype == "ieeg" + and bids_path.space in (None, "ACPC") + and mne_coord_frame == "ras" + ): + if not acpc_aligned: + raise RuntimeError( + "`acpc_aligned` is False, if your T1 is not aligned " + "to ACPC and the coordinates are in fact in ACPC " + "space there will be no way to relate the coordinates " + "to the T1. If the T1 is ACPC-aligned, use " + "`acpc_aligned=True`" + ) + coord_frame = "ACPC" + + if bids_path.space is None: # no space, use MNE coord frame + if coord_frame is None: # if no MNE coord frame, skip + warn( + "Coordinate frame could not be inferred from the raw object " + "and the BIDSPath.space was none, skipping the writing of " + "channel positions" + ) + return + else: # either a space and an MNE coord frame or just a space + if coord_frame is None: # just a space, use that + coord_frame = bids_path.space + else: # space and raw have coordinate frame, check match + if bids_path.space != coord_frame and not ( + coord_frame == "fsaverage" and bids_path.space == "MNI305" + ): # fsaverage == MNI305 + raise ValueError( + "Coordinates in the raw object or montage " + f"are in the {coord_frame} coordinate " + "frame but BIDSPath.space is " + f"{bids_path.space}" + ) + + # create electrodes/coordsystem files using a subset of entities + # that are specified for these files in the specification + coord_file_entities = { + "root": bids_path.root, + "datatype": bids_path.datatype, + "subject": bids_path.subject, + "session": bids_path.session, + "acquisition": bids_path.acquisition, + "space": None if bids_path.datatype == "nirs" else coord_frame, + } + channels_suffix = "optodes" if bids_path.datatype == "nirs" else "electrodes" + _channels_fun = ( + _write_optodes_tsv if bids_path.datatype == "nirs" else _write_electrodes_tsv + ) + channels_path = BIDSPath( + **coord_file_entities, suffix=channels_suffix, extension=".tsv" + ) + coordsystem_path = BIDSPath( + **coord_file_entities, suffix="coordsystem", extension=".json" + ) + + # Now write the data to the elec coords and the coordsystem + _channels_fun(raw, channels_path, bids_path.datatype, overwrite) + _write_coordsystem_json( + raw=raw, + unit=unit, + hpi_coord_system="n/a", + sensor_coord_system=coord_frame, + fname=coordsystem_path, + datatype=bids_path.datatype, + overwrite=overwrite, + ) + + +def _read_dig_bids(electrodes_fpath, coordsystem_fpath, datatype, raw): + """Read MNE-Python formatted DigMontage from BIDS files. + + Handles coordinatesystem.json and electrodes.tsv reading + to DigMontage. + + Parameters + ---------- + electrodes_fpath : str + Filepath of the electrodes.tsv to read. + coordsystem_fpath : str + Filepath of the coordsystem.json to read. + datatype : str + Type of the data recording. Can be ``meg``, ``eeg``, + or ``ieeg``. + raw : mne.io.Raw + The raw data as MNE-Python ``Raw`` object. The montage + will be set in place. + """ + bids_coord_frame, bids_coord_unit = _handle_coordsystem_reading( + coordsystem_fpath, datatype + ) + + if bids_coord_frame not in ALLOWED_SPACES[datatype]: + warn( + f'"{bids_coord_frame}" is not a BIDS-acceptable coordinate frame ' + f"for {datatype.upper()}. The supported coordinate frames are: " + "{}".format(ALLOWED_SPACES[datatype]) + ) + coord_frame = None + elif bids_coord_frame in BIDS_TO_MNE_FRAMES: + coord_frame = BIDS_TO_MNE_FRAMES.get(bids_coord_frame, None) + else: + warn( + f"{bids_coord_frame} is not an MNE-Python coordinate frame " + f"for {datatype.upper()} data and so will be set to 'unknown'" + ) + coord_frame = "unknown" + + # check coordinate units + if bids_coord_unit not in BIDS_COORDINATE_UNITS: + warn( + f"Coordinate unit is not an accepted BIDS unit for " + f"{electrodes_fpath}. Please specify to be one of " + f"{BIDS_COORDINATE_UNITS}. Skipping electrodes.tsv reading..." + ) + coord_frame = None + + # montage is interpretable only if coordinate frame was properly parsed + if coord_frame is not None: + # read in electrode coordinates as a DigMontage object + montage = _handle_electrodes_reading( + electrodes_fpath, coord_frame, bids_coord_unit + ) + else: + montage = None + + if montage is not None: + # determine if there are problematic channels + ch_pos = montage._get_ch_pos() + nan_chs = [] + for ch_name, ch_coord in ch_pos.items(): + if any(np.isnan(ch_coord)) and ch_name not in raw.info["bads"]: + nan_chs.append(ch_name) + if len(nan_chs) > 0: + warn( + f"There are channels without locations " + f"(n/a) that are not marked as bad: {nan_chs}" + ) + + # add montage to Raw object + # XXX: Starting with mne 0.24, this will raise a RuntimeWarning + # if channel types are included outside of + # (EEG/sEEG/ECoG/DBS/fNIRS). Probably needs a fix in the future. + with warnings.catch_warnings(): + warnings.filterwarnings( + action="ignore", + category=RuntimeWarning, + message=".*nasion not found", + module="mne", + ) + raw.set_montage(montage, on_missing="warn") + + # put back in unknown for unknown coordinate frame + if coord_frame == "unknown": + for ch in raw.info["chs"]: + ch["coord_frame"] = MNE_STR_TO_FRAME["unknown"] + for d in raw.info["dig"]: + d["coord_frame"] = MNE_STR_TO_FRAME["unknown"] + + +@verbose +def template_to_head(info, space, coord_frame="auto", unit="auto", verbose=None): + """Transform a BIDS standard template montage to the head coordinate frame. + + Parameters + ---------- + %(info_not_none)s The info is modified in place. + space : str + The name of the BIDS standard template. See + https://bids-specification.readthedocs.io/en/latest/appendices/coordinate-systems.html#standard-template-identifiers + for a list of acceptable spaces. + coord_frame : 'mri' | 'mri_voxel' | 'ras' + BIDS template coordinate systems do not specify a coordinate frame, + so this must be determined by inspecting the documentation for the + dataset or the ``electrodes.tsv`` file. If ``'auto'``, the coordinate + frame is assumed to be ``'mri_voxel'`` if the coordinates are strictly + positive, and ``'ras'`` (``"scanner RAS"``) otherwise. + + .. warning:: + + ``scanner RAS`` and ``surface RAS`` coordinates frames are similar + so be very careful not to assume a BIDS dataset's coordinates are + in one when they are actually in the other. The only way to tell + for template coordinate systems, currently, is if it is specified + in the dataset documentation. + + unit : 'm' | 'mm' | 'auto' + The unit that was used in the coordinate system specification. + If ``'auto'``, ``'m'`` will be inferred if the montage + spans less than ``-1`` to ``1``, and ``'mm'`` otherwise. If the + ``coord_frame`` is ``'mri_voxel'``, ``unit`` will be ignored. + %(verbose)s + + Returns + ------- + %(info_not_none)s The modified ``Info`` object. + trans : mne.transforms.Transform + The data transformation matrix from ``'head'`` to ``'mri'`` + coordinates. + + """ + _validate_type(info, mne.Info) + _check_option("space", space, BIDS_STANDARD_TEMPLATE_COORDINATE_SYSTEMS) + _check_option("coord_frame", coord_frame, ("auto", "mri", "mri_voxel", "ras")) + _check_option("unit", unit, ("auto", "m", "mm")) + montage = info.get_montage() + if montage is None: + raise RuntimeError("No montage found in the `raw` object") + montage.remove_fiducials() # we will add fiducials so remove any + pos = montage.get_positions() + if pos["coord_frame"] not in ("mni_tal", "unknown"): + raise RuntimeError( + "Montage coordinate frame '{}' not expected for a template " + "montage, should be 'unknown' or 'mni_tal'".format(pos["coord_frame"]) + ) + locs = np.array(list(pos["ch_pos"].values())) + locs = locs[~np.any(np.isnan(locs), axis=1)] # only channels with loc + if locs.size == 0: + raise RuntimeError("No channel locations found in the montage") + if unit == "auto": + unit = "m" if abs(locs - locs.mean(axis=0)).max() < 1 else "mm" + if coord_frame == "auto": + coord_frame = "mri_voxel" if locs.min() >= 0 else "ras" + # transform montage to head + # set to the right coordinate frame as specified by the user + for d in montage.dig: # ensure same coordinate frame + d["coord_frame"] = MNE_STR_TO_FRAME[coord_frame] + # do the transforms, first ras -> vox if needed + if montage.get_positions()["coord_frame"] == "ras": + ras_vox_trans = mne.read_trans(data_dir / f"space-{space}_ras-vox_trans.fif") + if unit == "m": # must be in mm here + for d in montage.dig: + d["r"] *= 1000 + montage.apply_trans(ras_vox_trans) + if montage.get_positions()["coord_frame"] == "mri_voxel": + vox_mri_trans = mne.read_trans(data_dir / f"space-{space}_vox-mri_trans.fif") + montage.apply_trans(vox_mri_trans) + assert montage.get_positions()["coord_frame"] == "mri" + if not (unit == "m" and coord_frame == "mri"): # if so, already in m + for d in montage.dig: + d["r"] /= 1000 # mm -> m + # now add fiducials (in mri coordinates) + fids = mne.io.read_fiducials(data_dir / f"space-{space}_fiducials.fif")[0] + montage.dig = fids + montage.dig # add fiducials + for fid in fids: # ensure also in mri + fid["coord_frame"] = MNE_STR_TO_FRAME["mri"] + info.set_montage(montage) # transform to head + # finally return montage + return info, mne.read_trans(data_dir / f"space-{space}_trans.fif") + + +@verbose +def convert_montage_to_ras(montage, subject, subjects_dir=None, verbose=None): + """Convert a montage from surface RAS (m) to scanner RAS (m). + + Parameters + ---------- + montage : mne.channels.DigMontage + The montage in the "mri" coordinate frame. Note: modified in place. + %(subject)s + %(subjects_dir)s + %(verbose)s + """ + nib = _import_nibabel("converting a montage to RAS") + + subjects_dir = get_subjects_dir(subjects_dir, raise_error=True) + T1_fname = op.join(subjects_dir, subject, "mri", "T1.mgz") + if not op.isfile(T1_fname): + raise RuntimeError( + f"Freesurfer subject ({subject}) and/or " + f"subjects_dir ({subjects_dir}, incorrectly " + "formatted, T1.mgz not found" + ) + T1 = nib.load(T1_fname) + + # transform from "mri" (Freesurfer surface RAS) to "ras" (scanner RAS) + mri_vox_t = np.linalg.inv(T1.header.get_vox2ras_tkr()) + mri_vox_t[:3, :3] *= 1000 # scale from mm to m + mri_vox_trans = mne.transforms.Transform(fro="mri", to="mri_voxel", trans=mri_vox_t) + + vox_ras_t = T1.header.get_vox2ras() + vox_ras_t[:3] /= 1000 # scale from mm to m + vox_ras_trans = mne.transforms.Transform(fro="mri_voxel", to="ras", trans=vox_ras_t) + montage.apply_trans( # mri->vox + vox->ras = mri->ras + mne.transforms.combine_transforms( + mri_vox_trans, vox_ras_trans, fro="mri", to="ras" + ) + ) + + +@verbose +def convert_montage_to_mri(montage, subject, subjects_dir=None, verbose=None): + """Convert a montage from scanner RAS (m) to surface RAS (m). + + Parameters + ---------- + montage : mne.channels.DigMontage + The montage in the "ras" coordinate frame. Note: modified in place. + %(subject)s + %(subjects_dir)s + %(verbose)s + + Returns + ------- + ras_mri_t : mne.transforms.Transform + The transformation matrix from ``'ras'`` (``scanner RAS``) to + ``'mri'`` (``surface RAS``). + """ + nib = _import_nibabel("converting a montage to MRI") + + subjects_dir = get_subjects_dir(subjects_dir, raise_error=True) + T1_fname = op.join(subjects_dir, subject, "mri", "T1.mgz") + if not op.isfile(T1_fname): + raise RuntimeError( + f"Freesurfer subject ({subject}) and/or " + f"subjects_dir ({subjects_dir}, incorrectly " + "formatted, T1.mgz not found" + ) + T1 = nib.load(T1_fname) + + # transform from "ras" (scanner RAS) to "mri" (Freesurfer surface RAS) + ras_vox_t = T1.header.get_ras2vox() + ras_vox_t[:3, :3] *= 1000 # scale from mm to m + ras_vox_trans = mne.transforms.Transform(fro="ras", to="mri_voxel", trans=ras_vox_t) + + vox_mri_t = T1.header.get_vox2ras_tkr() + vox_mri_t[:3] /= 1000 # scale from mm to m + vox_mri_trans = mne.transforms.Transform(fro="mri_voxel", to="mri", trans=vox_mri_t) + montage.apply_trans( # ras->vox + vox->mri = ras->mri + mne.transforms.combine_transforms( + ras_vox_trans, vox_mri_trans, fro="ras", to="mri" + ) + ) diff --git a/mne-bids-0.15/mne_bids/inspect.py b/mne-bids-0.15/mne_bids/inspect.py new file mode 100644 index 0000000..9106cfb --- /dev/null +++ b/mne-bids-0.15/mne_bids/inspect.py @@ -0,0 +1,453 @@ +"""Inspect and annotate BIDS raw data.""" +# Authors: Richard Höchenberger +# Stefan Appelhoff +# +# License: BSD-3-Clause + +from pathlib import Path + +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_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 + + +@verbose +def inspect_dataset( + bids_path, + find_flat=True, + l_freq=None, + h_freq=None, + show_annotations=True, + verbose=None, +): + """Inspect and annotate BIDS raw data. + + This function allows you to browse MEG, EEG, and iEEG raw data stored in a + BIDS dataset. You can toggle the status of a channel (bad or good) by + clicking on the traces, and when closing the browse window, you will be + asked whether you want to save the changes to the existing BIDS dataset or + discard them. + + .. warning:: This functionality is still experimental and will be extended + in the future. Its API will likely change. Planned features + include automated bad channel detection and visualization of + MRI images. + + .. note:: Currently, only MEG, EEG, and iEEG data can be inspected. + + To add or modify annotations, press ``A`` to toggle annotation mode. + + Parameters + ---------- + bids_path : BIDSPath + A :class:`mne_bids.BIDSPath` containing at least a ``root``. All + matching files will be inspected. To select only a subset of the data, + set more :class:`mne_bids.BIDSPath` attributes. If ``datatype`` is not + set and multiple datatypes are found, they will be inspected in the + following order: MEG, EEG, iEEG. + To read a specific file, set all the :class:`mne_bids.BIDSPath` + attributes required to uniquely identify the file: If this ``BIDSPath`` + is accepted by :func:`mne_bids.read_raw_bids`, it will work here. + find_flat : bool + Whether to auto-detect channels producing "flat" signals, i.e., with + unusually low variability. Flat **segments** will be added to + ``*_events.tsv``, while channels with more than 5 percent of flat data + will be marked as ``bad`` in ``*_channels.tsv``. + + .. note:: + This function calls ``mne.preprocessing.annotate_amplitude`` + (MNE-Python 1.0 or newer) or ``mne.preprocessing.annotate_flat`` + (older versions of MNE-Python) + and will only consider segments of at least **50 ms consecutive + flatness** as "flat" (deviating from MNE-Python's default of 5 ms). + If more than 5 percent of a channel's data has been marked as flat, + the entire channel will be added to the list of bad channels. Only + flat time segments applying to channels **not** marked as bad will + be added to ``*_events.tsv``. + + l_freq : float | None + The high-pass filter cutoff frequency to apply when displaying the + data. This can be useful when inspecting data with slow drifts. If + ``None``, no high-pass filter will be applied. + h_freq : float | None + The low-pass filter cutoff frequency to apply when displaying the + data. This can be useful when inspecting data with high-frequency + artifacts. If ``None``, no low-pass filter will be applied. + show_annotations : bool + Whether to show annotations (events, bad segments, …) or not. If + ``False``, toggling annotations mode by pressing ``A`` will be disabled + as well. + %(verbose)s + + Examples + -------- + Disable flat channel & segment detection, and apply a filter with a + passband of 1–30 Hz. + + >>> from mne_bids import BIDSPath + >>> root = Path('./mne_bids/tests/data/tiny_bids').absolute() + >>> bids_path = BIDSPath(subject='01', task='rest', session='eeg', + ... suffix='eeg', extension='.vhdr', root=root) + >>> inspect_dataset(bids_path=bids_path, find_flat=False, # doctest: +SKIP + ... l_freq=1, h_freq=30) + """ + allowed_extensions = set( + ALLOWED_DATATYPE_EXTENSIONS["meg"] + + ALLOWED_DATATYPE_EXTENSIONS["eeg"] + + ALLOWED_DATATYPE_EXTENSIONS["ieeg"] + ) + + bids_paths = [ + p + for p in bids_path.match(check=True) + if (p.extension is None or p.extension in allowed_extensions) + and p.acquisition != "crosstalk" + ] + + for bids_path_ in bids_paths: + _inspect_raw( + bids_path=bids_path_, + l_freq=l_freq, + h_freq=h_freq, + find_flat=find_flat, + show_annotations=show_annotations, + ) + + +# XXX This this should probably be refactored into a class attribute someday. +_global_vars = dict(raw_fig=None, dialog_fig=None, mne_close_key=None) + + +def _inspect_raw(*, bids_path, l_freq, h_freq, find_flat, show_annotations): + """Raw data inspection.""" + # Delay the import + import matplotlib + import matplotlib.pyplot as plt + + extra_params = dict() + if bids_path.extension == ".fif": + extra_params["allow_maxshield"] = "yes" + raw = read_raw_bids(bids_path, extra_params=extra_params, verbose="error") + old_bads = raw.info["bads"].copy() + old_annotations = raw.annotations.copy() + + if find_flat: + raw.load_data() # Speeds up processing dramatically + flat_annot, flat_chans = annotate_amplitude( + raw=raw, flat=0, min_duration=0.05, bad_percent=5 + ) + new_annot = raw.annotations + flat_annot + raw.set_annotations(new_annot) + raw.info["bads"] = list(set(raw.info["bads"] + flat_chans)) + del new_annot, flat_annot + else: + flat_chans = [] + + show_options = bids_path.datatype == "meg" + + with use_browser_backend("matplotlib"): + fig = raw.plot( + title=f"{bids_path.root.name}: {bids_path.basename}", + highpass=l_freq, + lowpass=h_freq, + show_options=show_options, + block=False, + show=False, + verbose="warning", + ) + + # Add our own event handlers so that when the MNE Raw Browser is being + # closed, our dialog box will pop up, asking whether to save changes. + def _handle_close(event): + mne_raw_fig = event.canvas.figure + # Bads alterations are only transferred to `inst` once the figure is + # closed; Annotation changes are immediately reflected in `inst` + new_bads = mne_raw_fig.mne.info["bads"].copy() + new_annotations = mne_raw_fig.mne.inst.annotations.copy() + + if not new_annotations: + # Ensure it's not an empty list, but an empty set of Annotations. + new_annotations = mne.Annotations( + onset=[], + duration=[], + description=[], + orig_time=mne_raw_fig.mne.info["meas_date"], + ) + _save_raw_if_changed( + old_bads=old_bads, + new_bads=new_bads, + flat_chans=flat_chans, + old_annotations=old_annotations, + new_annotations=new_annotations, + bids_path=bids_path, + ) + _global_vars["raw_fig"] = None + + def _keypress_callback(event): + if event.key == _global_vars["mne_close_key"]: + _handle_close(event) + + fig.canvas.mpl_connect("close_event", _handle_close) + fig.canvas.mpl_connect("key_press_event", _keypress_callback) + + if not show_annotations: + # Remove annotations and kill `_toggle_annotation_fig` method, since + # we cannot directly and easily remove the associated `a` keyboard + # event callback. + fig._clear_annotations() + fig._toggle_annotation_fig = lambda: None + # Ensure it's not an empty list, but an empty set of Annotations. + old_annotations = mne.Annotations( + onset=[], duration=[], description=[], orig_time=raw.info["meas_date"] + ) + + if matplotlib.get_backend().lower() != "agg": + plt.show(block=True) + + _global_vars["raw_fig"] = fig + _global_vars["mne_close_key"] = fig.mne.close_key + + +def _annotations_almost_equal(old_annotations, new_annotations): + """Allow for a tiny bit of floating point precision loss.""" + if ( + np.array_equal(old_annotations.description, new_annotations.description) + and np.array_equal(old_annotations.orig_time, new_annotations.orig_time) + and np.allclose(old_annotations.onset, new_annotations.onset) + and np.allclose(old_annotations.duration, new_annotations.duration) + ): + return True + else: + return False + + +def _save_annotations(*, annotations, bids_path): + # Attach the new Annotations to our raw data so we can easily convert them + # to events, which will be stored in the *_events.tsv sidecar. + extra_params = dict() + if bids_path.extension == ".fif": + extra_params["allow_maxshield"] = "yes" + + raw = read_raw_bids( + bids_path=bids_path, extra_params=extra_params, verbose="warning" + ) + raw.set_annotations(annotations) + events, durs, descrs = _read_events( + events=None, event_id=None, bids_path=bids_path, raw=raw + ) + + # Write sidecar – or remove it if no events are left. + events_tsv_fname = bids_path.copy().update(suffix="events", extension=".tsv").fpath + + if len(events) > 0: + _events_tsv( + events=events, + durations=durs, + raw=raw, + fname=events_tsv_fname, + trial_type=descrs, + overwrite=True, + ) + elif events_tsv_fname.exists(): + logger.info( + f"No events remaining after interactive inspection, " + f"removing {events_tsv_fname.name}" + ) + events_tsv_fname.unlink() + + +def _save_raw_if_changed( + *, old_bads, new_bads, flat_chans, old_annotations, new_annotations, bids_path +): + """Save bad channel selection if it has been changed. + + Parameters + ---------- + old_bads : list + The original bad channels. + new_bads : list + The updated set of bad channels (i.e. **all** of them, not only the + changed ones). + flat_chans : list + The auto-detected flat channels. This is either an empty list or a + subset of ``new_bads``. + old_annotations : mne.Annotations + The original Annotations. + new_annotations : mne.Annotations + The new Annotations. + """ + assert set(flat_chans).issubset(set(new_bads)) + + if set(old_bads) == set(new_bads): + bads = None + bad_descriptions = [] + else: + bads = new_bads + bad_descriptions = [] + + # Generate entries for the `status_description` column. + channels_tsv_fname = ( + bids_path.copy().update(suffix="channels", extension=".tsv").fpath + ) + channels_tsv_data = _from_tsv(channels_tsv_fname) + + for ch_name in bads: + idx = channels_tsv_data["name"].index(ch_name) + if channels_tsv_data["status"][idx] == "bad": + # Channel was already marked as bad in the data, so retain + # existing description. + description = channels_tsv_data["status_description"][idx] + elif ch_name in flat_chans: + description = "Flat channel, auto-detected via MNE-BIDS" + else: + # Channel has been manually marked as bad during inspection + description = "Interactive inspection via MNE-BIDS" + + bad_descriptions.append(description) + del ch_name, description + + del ( + channels_tsv_data, + channels_tsv_fname, + ) + + if _annotations_almost_equal(old_annotations, new_annotations): + annotations = None + else: + annotations = new_annotations + + if bads is None and annotations is None: + # Nothing has changed, so we can just exit. + return None + + return _save_raw_dialog_box( + bads=bads, + bad_descriptions=bad_descriptions, + annotations=annotations, + bids_path=bids_path, + ) + + +def _save_raw_dialog_box(*, bads, bad_descriptions, annotations, bids_path): + """Display a dialog box asking whether to save the changes.""" + # Delay the imports + import matplotlib + import matplotlib.pyplot as plt + from matplotlib.widgets import Button + from mne.viz.utils import figure_nobar + + title = "Save changes?" + message = "You have modified " + if bads is not None and annotations is None: + message += "the bad channel selection " + figsize = (7.5, 2.5) + elif bads is None and annotations is not None: + message += "the bad segments selection " + figsize = (7.5, 2.5) + else: + message += "the bad channel and\nannotations selection " + figsize = (8.5, 3) + + message += ( + f"of\n" + f"{bids_path.basename}.\n\n" + f"Would you like to save these changes to the\n" + f"BIDS dataset?" + ) + icon_fname = str(Path(__file__).parent / "assets" / "help-128px.png") + icon = plt.imread(icon_fname) + + fig = figure_nobar(figsize=figsize) + fig.canvas.manager.set_window_title("MNE-BIDS Inspector") + fig.suptitle(title, y=0.95, fontsize="xx-large", fontweight="bold") + + gs = fig.add_gridspec(1, 2, width_ratios=(1.5, 5)) + + # The dialog box tet. + ax_msg = fig.add_subplot(gs[0, 1]) + ax_msg.text( + x=0, + y=0.8, + s=message, + fontsize="large", + verticalalignment="top", + horizontalalignment="left", + multialignment="left", + ) + ax_msg.axis("off") + + # The help icon. + ax_icon = fig.add_subplot(gs[0, 0]) + ax_icon.imshow(icon) + ax_icon.axis("off") + + # Buttons. + ax_save = fig.add_axes([0.6, 0.05, 0.3, 0.1]) + ax_dont_save = fig.add_axes([0.1, 0.05, 0.3, 0.1]) + + save_button = Button(ax=ax_save, label="Save") + save_button.label.set_fontsize("medium") + save_button.label.set_fontweight("bold") + + dont_save_button = Button(ax=ax_dont_save, label="Don't save") + dont_save_button.label.set_fontsize("medium") + dont_save_button.label.set_fontweight("bold") + + # Store references to keep buttons alive. + fig.save_button = save_button + fig.dont_save_button = dont_save_button + + # Define callback functions. + def _save_callback(event): + plt.close(event.canvas.figure) # Close dialog + _global_vars["dialog_fig"] = None + + if bads is not None: + _save_bads(bads=bads, descriptions=bad_descriptions, bids_path=bids_path) + if annotations is not None: + _save_annotations(annotations=annotations, bids_path=bids_path) + + def _dont_save_callback(event): + plt.close(event.canvas.figure) # Close dialog + _global_vars["dialog_fig"] = None + + def _keypress_callback(event): + if event.key in ["enter", "return"]: + _save_callback(event) + elif event.key == _global_vars["mne_close_key"]: + _dont_save_callback(event) + + # Connect events to callback functions. + save_button.on_clicked(_save_callback) + dont_save_button.on_clicked(_dont_save_callback) + fig.canvas.mpl_connect("close_event", _dont_save_callback) + fig.canvas.mpl_connect("key_press_event", _keypress_callback) + + if matplotlib.get_backend().lower() != "agg": + fig.show() + + _global_vars["dialog_fig"] = fig + + +def _save_bads(*, bads, descriptions, bids_path): + """Update the set of channels marked as bad. + + Parameters + ---------- + bads : list + The complete list of bad channels. + descriptions : list + The values to be written to the `status_description` column. + """ + # We first make all channels not passed as bad here to be marked as good. + mark_channels(bids_path=bids_path, ch_names=[], status="good") + mark_channels( + bids_path=bids_path, ch_names=bads, status="bad", descriptions=descriptions + ) diff --git a/mne-bids-0.15/mne_bids/path.py b/mne-bids-0.15/mne_bids/path.py new file mode 100644 index 0000000..101d271 --- /dev/null +++ b/mne-bids-0.15/mne_bids/path.py @@ -0,0 +1,2490 @@ +"""BIDS compatible path functionality.""" + +# Authors: Adam Li +# Stefan Appelhoff +# +# License: BSD-3-Clause +import glob +import json +import os +import re +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 textwrap import indent +from typing import Optional + +import numpy as np +from mne.utils import _check_fname, _validate_type, logger, verbose + +from mne_bids.config import ( + ALLOWED_DATATYPE_EXTENSIONS, + ALLOWED_DATATYPES, + ALLOWED_FILENAME_EXTENSIONS, + ALLOWED_FILENAME_SUFFIX, + ALLOWED_PATH_ENTITIES, + ALLOWED_PATH_ENTITIES_SHORT, + ALLOWED_SPACES, + ENTITY_VALUE_TYPE, + reader, +) +from mne_bids.tsv_handler import _drop, _from_tsv, _to_tsv +from mne_bids.utils import ( + _check_empty_room_basename, + _check_key_val, + _ensure_tuple, + param_regex, + warn, +) + + +def _find_empty_room_candidates(bids_path): + """Get matching empty-room file for an MEG recording.""" + # Check whether we have a BIDS root. + bids_root = bids_path.root + if bids_root is None: + raise ValueError( + 'The root of the "bids_path" must be set. ' + 'Please use `bids_path.update(root="")` ' + "to set the root of the BIDS folder to read." + ) + + bids_path = bids_path.copy() + + datatype = "meg" # We're only concerned about MEG data here + bids_fname = bids_path.update(suffix=datatype).fpath + _, ext = _parse_ext(bids_fname) + emptyroom_dir = BIDSPath(root=bids_root, subject="emptyroom").directory + + if not emptyroom_dir.exists(): + return list() + + # Find the empty-room recording sessions. + emptyroom_session_dirs = [ + x + for x in emptyroom_dir.iterdir() + if x.is_dir() and str(x.name).startswith("ses-") + ] + if not emptyroom_session_dirs: # No session sub-directories found + emptyroom_session_dirs = [emptyroom_dir] + + # Now try to discover all recordings inside the session directories. + + allowed_extensions = list(reader.keys()) + # `.pdf` is just a "virtual" extension for BTi data (which is stored inside + # a dedicated directory that doesn't have an extension) + del allowed_extensions[allowed_extensions.index(".pdf")] + + candidate_er_fnames = [] + for session_dir in emptyroom_session_dirs: + dir_contents = glob.glob( + op.join(session_dir, datatype, f"sub-emptyroom_*_{datatype}*") + ) + for item in dir_contents: + item = Path(item) + if (item.suffix in allowed_extensions) or ( + not item.suffix and item.is_dir() + ): # Hopefully BTi? + candidate_er_fnames.append(item.name) + + candidates = list() + for er_fname in candidate_er_fnames: + # get entities from filenamme + er_bids_path = get_bids_path_from_fname(er_fname, check=False) + er_bids_path.subject = "emptyroom" # er subject entity is different + er_bids_path.root = bids_root + er_bids_path.datatype = "meg" + candidates.append(er_bids_path) + + return candidates + + +def _find_matched_empty_room(bids_path): + from mne_bids import read_raw_bids # avoid circular import. + + candidates = _find_empty_room_candidates(bids_path) + + # Walk through recordings, trying to extract the recording date: + # First, from the filename; and if that fails, from `info['meas_date']`. + best_er_bids_path = None + min_delta_t = np.inf + date_tie = False + failed_to_get_er_date_count = 0 + bids_path = bids_path.copy().update(datatype="meg") + raw = read_raw_bids(bids_path=bids_path) + if raw.info["meas_date"] is None: + raise ValueError( + "The provided recording does not have a measurement " + "date set. Cannot get matching empty-room file." + ) + ref_date = raw.info["meas_date"] + del bids_path, raw + for er_bids_path in candidates: + # get entities from filenamme + er_meas_date = None + + # Try to extract date from filename. + if er_bids_path.session is not None: + try: + er_meas_date = datetime.strptime(er_bids_path.session, "%Y%m%d") + except (ValueError, TypeError): + # There is a session in the filename, but it doesn't encode a + # valid date. + pass + + if er_meas_date is None: # No luck so far! Check info['meas_date'] + _, ext = _parse_ext(er_bids_path.fpath) + extra_params = None + if ext == ".fif": + extra_params = dict(allow_maxshield="yes") + + er_raw = read_raw_bids(bids_path=er_bids_path, extra_params=extra_params) + + er_meas_date = er_raw.info["meas_date"] + if er_meas_date is None: # There's nothing we can do. + failed_to_get_er_date_count += 1 + continue + + er_meas_date = er_meas_date.replace(tzinfo=ref_date.tzinfo) + delta_t = er_meas_date - ref_date + + if abs(delta_t.total_seconds()) == min_delta_t: + date_tie = True + elif abs(delta_t.total_seconds()) < min_delta_t: + min_delta_t = abs(delta_t.total_seconds()) + best_er_bids_path = er_bids_path + date_tie = False + + if failed_to_get_er_date_count > 0: + msg = ( + f"Could not retrieve the empty-room measurement date from " + f"a total of {failed_to_get_er_date_count} recording(s)." + ) + warn(msg) + + if date_tie: + msg = ( + "Found more than one matching empty-room measurement with the " + "same recording date. Selecting the first match." + ) + warn(msg) + + return best_er_bids_path + + +class BIDSPath: + """A BIDS path object. + + BIDS filename prefixes have one or more pieces of metadata in them. They + must follow a particular order, which is followed by this function. This + will generate the *prefix* for a BIDS filename that can be used with many + subsequent files, or you may also give a suffix that will then complete + the file name. + + BIDSPath allows dynamic updating of its entities in place, and operates + similar to `pathlib.Path`. In addition, it can query multiple paths + with matching BIDS entities via the ``match`` method. + + Note that not all parameters are applicable to each suffix of data. For + example, electrode location TSV files do not need a "task" field. + + Parameters + ---------- + subject : str | None + The subject ID. Corresponds to "sub". + session : str | None + The acquisition session. Corresponds to "ses". + task : str | None + The experimental task. Corresponds to "task". + acquisition: str | None + The acquisition parameters. Corresponds to "acq". + run : int | None + The run number. Corresponds to "run". + processing : str | None + The processing label. Corresponds to "proc". + recording : str | None + The recording name. Corresponds to "rec". + space : str | None + The coordinate space for anatomical and sensor location + files (e.g., ``*_electrodes.tsv``, ``*_markers.mrk``). + Corresponds to "space". + Note that valid values for ``space`` must come from a list + of BIDS keywords as described in the BIDS specification. + split : int | None + The split of the continuous recording file for ``.fif`` data. + Corresponds to "split". + description : str | None + This corresponds to the BIDS entity ``desc``. It is used to provide + additional information for derivative data, e.g., preprocessed data + may be assigned ``description='cleaned'``. + + .. versionadded:: 0.11 + suffix : str | None + The filename suffix. This is the entity after the + last ``_`` before the extension. E.g., ``'channels'``. + The following filename suffix's are accepted: + 'meg', 'markers', 'eeg', 'ieeg', 'T1w', + 'participants', 'scans', 'electrodes', 'coordsystem', + 'channels', 'events', 'headshape', 'digitizer', + 'beh', 'physio', 'stim' + extension : str | None + The extension of the filename. E.g., ``'.json'``. + datatype : str + The BIDS data type, e.g., ``'anat'``, ``'func'``, ``'eeg'``, ``'meg'``, + ``'ieeg'``. + root : path-like | None + The root directory of the BIDS dataset. + check : bool + If ``True``, enforces BIDS conformity. Defaults to ``True``. + + Attributes + ---------- + entities : dict + A dictionary of the BIDS entities and their values: + ``subject``, ``session``, ``task``, ``acquisition``, + ``run``, ``processing``, ``space``, ``recording``, + ``split``, ``description``, ``suffix``, and ``extension``. + datatype : str | None + The data type, i.e., one of ``'meg'``, ``'eeg'``, ``'ieeg'``, + ``'anat'``. + basename : str + The basename of the file path. Similar to `os.path.basename(fpath)`. + root : pathlib.Path + The root of the BIDS path. + directory : pathlib.Path + The directory path. + fpath : pathlib.Path + The full file path. + check : bool + Whether to enforce BIDS conformity. + + Examples + -------- + Generate a BIDSPath object and inspect it + + >>> bids_path = BIDSPath(subject='test', session='two', task='mytask', + ... suffix='ieeg', extension='.edf', datatype='ieeg') + >>> print(bids_path.basename) + sub-test_ses-two_task-mytask_ieeg.edf + >>> bids_path + BIDSPath( + root: None + datatype: ieeg + basename: sub-test_ses-two_task-mytask_ieeg.edf) + + Copy and update multiple entities at once + + >>> new_bids_path = bids_path.copy().update(subject='test2', + ... session='one') + >>> print(new_bids_path.basename) + sub-test2_ses-one_task-mytask_ieeg.edf + + Printing a BIDSPath will show a relative path when `root` is not set + + >>> print(new_bids_path) + sub-test2/ses-one/ieeg/sub-test2_ses-one_task-mytask_ieeg.edf + + Setting `suffix` without an identifiable datatype will make + BIDSPath try to guess the datatype + + >>> new_bids_path = new_bids_path.update(suffix='channels', + ... extension='.tsv') + >>> print(new_bids_path) + sub-test2/ses-one/ieeg/sub-test2_ses-one_task-mytask_channels.tsv + + You can set a new root for the BIDS dataset. Let's see what the + different properties look like for our object: + + >>> new_bids_path = new_bids_path.update(root='/bids_dataset') + >>> print(new_bids_path.root.as_posix()) + /bids_dataset + >>> print(new_bids_path.basename) + sub-test2_ses-one_task-mytask_channels.tsv + >>> print(new_bids_path) + /bids_dataset/sub-test2/ses-one/ieeg/sub-test2_ses-one_task-mytask_channels.tsv + >>> print(new_bids_path.directory.as_posix()) + /bids_dataset/sub-test2/ses-one/ieeg + + Notes + ----- + BIDS entities are generally separated with a ``"_"`` character, while + entity key/value pairs are separated with a ``"-"`` character. + There are checks performed to make sure that there are no ``'-'``, ``'_'``, + or ``'/'`` characters contained in any entity keys or values. + + To represent a filename such as ``dataset_description.json``, + one can set ``check=False``, and pass ``suffix='dataset_description'`` + and ``extension='.json'``. + + ``BIDSPath`` can also be used to represent file and folder names of data + types that are not yet supported through MNE-BIDS, but are recognized by + BIDS. For example, one can set ``datatype`` to ``dwi`` or ``func`` and + pass ``check=False`` to represent diffusion-weighted imaging and + functional MRI paths. + """ + + def __init__( + self, + subject=None, + session=None, + task=None, + acquisition=None, + run=None, + processing=None, + recording=None, + space=None, + split=None, + description=None, + root=None, + suffix=None, + extension=None, + datatype=None, + check=True, + ): + if all( + ii is None + for ii in [ + subject, + session, + task, + acquisition, + run, + processing, + recording, + space, + description, + root, + suffix, + extension, + ] + ): + raise ValueError("At least one parameter must be given.") + + self.check = check + + self.update( + subject=subject, + session=session, + task=task, + acquisition=acquisition, + run=run, + processing=processing, + recording=recording, + space=space, + split=split, + description=description, + root=root, + datatype=datatype, + suffix=suffix, + extension=extension, + ) + + @property + def entities(self): + """Return dictionary of the BIDS entities.""" + return { + "subject": self.subject, + "session": self.session, + "task": self.task, + "acquisition": self.acquisition, + "run": self.run, + "processing": self.processing, + "space": self.space, + "recording": self.recording, + "split": self.split, + "description": self.description, + } + + @property + def basename(self): + """Path basename.""" + basename = [] + for key, val in self.entities.items(): + if val is not None and key != "datatype": + # convert certain keys to shorthand + long_to_short_entity = { + val: key for key, val in ALLOWED_PATH_ENTITIES_SHORT.items() + } + key = long_to_short_entity[key] + basename.append(f"{key}-{val}") + + if self.suffix is not None: + if self.extension is not None: + basename.append(f"{self.suffix}{self.extension}") + else: + basename.append(self.suffix) + + basename = "_".join(basename) + return basename + + @property + def directory(self): + """Get the BIDS parent directory. + + If ``subject``, ``session`` and ``datatype`` are set, then they will be + used to construct the directory location. For example, if + ``subject='01'``, ``session='02'`` and ``datatype='ieeg'``, then the + directory would be:: + + /sub-01/ses-02/ieeg + + Returns + ------- + data_path : pathlib.Path + The path of the BIDS directory. + """ + # Create the data path based on the available entities: + # root, subject, session, and datatype + data_path = "" if self.root is None else self.root + if self.subject is not None: + data_path = op.join(data_path, f"sub-{self.subject}") + if self.session is not None: + data_path = op.join(data_path, f"ses-{self.session}") + # datatype will allow 'meg', 'eeg', 'ieeg', 'anat' + if self.datatype is not None: + data_path = op.join(data_path, self.datatype) + return Path(data_path) + + @property + def subject(self) -> Optional[str]: + """The subject ID.""" + return self._subject + + @subject.setter + def subject(self, value): + self.update(subject=value) + + @property + def session(self) -> Optional[str]: + """The acquisition session.""" + return self._session + + @session.setter + def session(self, value): + self.update(session=value) + + @property + def task(self) -> Optional[str]: + """The experimental task.""" + return self._task + + @task.setter + def task(self, value): + self.update(task=value) + + @property + def run(self) -> Optional[str]: + """The run number.""" + return self._run + + @run.setter + def run(self, value): + self.update(run=value) + + @property + def acquisition(self) -> Optional[str]: + """The acquisition parameters.""" + return self._acquisition + + @acquisition.setter + def acquisition(self, value): + self.update(acquisition=value) + + @property + def processing(self) -> Optional[str]: + """The processing label.""" + return self._processing + + @processing.setter + def processing(self, value): + self.update(processing=value) + + @property + def recording(self) -> Optional[str]: + """The recording name.""" + return self._recording + + @recording.setter + def recording(self, value): + self.update(recording=value) + + @property + def space(self) -> Optional[str]: + """The coordinate space for an anatomical or sensor position file.""" + return self._space + + @space.setter + def space(self, value): + self.update(space=value) + + @property + def description(self) -> Optional[str]: + """The description entity.""" + return self._description + + @description.setter + def description(self, value): + self.update(description=value) + + @property + def suffix(self) -> Optional[str]: + """The filename suffix.""" + return self._suffix + + @suffix.setter + def suffix(self, value): + self.update(suffix=value) + + @property + def root(self) -> Optional[Path]: + """The root directory of the BIDS dataset.""" + return self._root + + @root.setter + def root(self, value): + self.update(root=value) + + @property + def datatype(self) -> Optional[str]: + """The BIDS data type, e.g. ``'anat'``, ``'meg'``, ``'eeg'``.""" + return self._datatype + + @datatype.setter + def datatype(self, value): + self.update(datatype=value) + + @property + def split(self) -> Optional[str]: + """The split of the continuous recording file for ``.fif`` data.""" + return self._split + + @split.setter + def split(self, value): + self.update(split=value) + + @property + def extension(self) -> Optional[str]: + """The extension of the filename, including a leading period.""" + return self._extension + + @extension.setter + def extension(self, value): + self.update(extension=value) + + def __str__(self): + """Return the string representation of the path.""" + return str(self.fpath.as_posix()) + + def __repr__(self): + """Representation in the style of `pathlib.Path`.""" + root = self.root.as_posix() if self.root is not None else None + + return ( + f"{self.__class__.__name__}(\n" + f"root: {root}\n" + f"datatype: {self.datatype}\n" + f"basename: {self.basename})" + ) + + def __fspath__(self): + """Return the string representation for any fs functions.""" + return str(self.fpath) + + def __eq__(self, other): + """Compare str representations.""" + return str(self) == str(other) + + def __ne__(self, other): + """Compare str representations.""" + return str(self) != str(other) + + def copy(self): + """Copy the instance. + + Returns + ------- + bidspath : BIDSPath + The copied bidspath. + """ + return deepcopy(self) + + def mkdir(self, exist_ok=True): + """Create the directory structure of the BIDS path. + + Parameters + ---------- + exist_ok : bool + If ``False``, raise an exception if the directory already exists. + Otherwise, do nothing (default). + + Returns + ------- + self : BIDSPath + The BIDSPath object. + """ + self.directory.mkdir(parents=True, exist_ok=exist_ok) + return self + + @verbose + def rm(self, *, safe_remove=True, verbose=None): + """Safely delete a set of files from a BIDS dataset. + + Deleting a scan that conforms to the bids-validator will + remove the respective row in ``*_scans.tsv``, the + corresponding sidecar files, and the data file itself. + + Deleting all files of a subject will update the + ``*_participants.tsv`` file. + + + Parameters + ---------- + safe_remove : bool + If ``False``, directly delete and update the files. + Otherwise, displays the list of operations planned + and asks for user confirmation before + executing them (default). + %(verbose)s + + Returns + ------- + self : BIDSPath + The BIDSPath object. + + Examples + -------- + Remove one specific run: + + >>> bids_path = BIDSPath(subject='01', session='01', run="01", # doctest: +SKIP + ... root='/bids_dataset').rm() # doctest: +SKIP + Please, confirm you want to execute the following operations: + Delete: + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-01_channels.tsv + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-01_events.json + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-01_events.tsv + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-01_meg.fif + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-01_meg.json + Update: + /bids_dataset/sub-01/ses-01/sub-01_ses-01_scans.tsv + I confirm [y/N]>? y + + Remove all the files of a specific subject: + + >>> bids_path = BIDSPath(subject='01', root='/bids_dataset', # doctest: +SKIP + ... check=False).rm() # doctest: +SKIP + Please, confirm you want to execute the following operations: + Delete: + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_acq-calibration_meg.dat + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_acq-crosstalk_meg.fif + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_coordsystem.json + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-02_channels.tsv + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-02_events.json + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-02_events.tsv + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-02_meg.fif + /bids_dataset/sub-01/ses-01/meg/sub-01_ses-01_run-02_meg.json + /bids_dataset/sub-01/ses-01/sub-01_ses-01_scans.tsv + /bids_dataset/sub-01 + Update: + /bids_dataset/participants.tsv + I confirm [y/N]>? y + """ + # only proceed if root is defined + if self.root is None: + raise RuntimeError("The root must not be None to remove files.") + + # Planning: + paths_matched = self.match(ignore_json=False, check=self.check) + subjects = set() + paths_to_delete = list() + paths_to_update = {} + subjects_paths_to_delete = [] + participants_tsv_fpath = None + for bids_path in paths_matched: + paths_to_delete.append(bids_path) + # if a datatype is present, then check + # if a scan is deleted or not + if bids_path.datatype is not None: + # read in the corresponding scans file + scans_fpath = ( + bids_path.copy() + .update(datatype=None) + .find_matching_sidecar( + suffix="scans", + extension=".tsv", + on_error="raise", + ) + ) + paths_to_update.setdefault(scans_fpath, []).append(bids_path) + subjects.add(bids_path.subject) + + files_to_delete = set(p.fpath for p in paths_to_delete) + for subject in subjects: + # check existence of files in the subject dir + subj_path = BIDSPath(root=self.root, subject=subject) + subj_files = [ + fpath for fpath in subj_path.directory.rglob("*") if fpath.is_file() + ] + if set(subj_files) <= files_to_delete: + subjects_paths_to_delete.append(subj_path) + participants_tsv_fpath = self.root / "participants.tsv" + + # Informing: + pretty_delete_paths = "\n".join( + [ + str(p) + for p in paths_to_delete + + [p.directory for p in subjects_paths_to_delete] + ] + ) + pretty_update_paths = "\n".join( + [ + str(p) + for p in list(paths_to_update.keys()) + + ( + [participants_tsv_fpath] + if participants_tsv_fpath is not None + else [] + ) + ] + ) + summary = "" + if pretty_delete_paths: + summary += f"Delete:\n{pretty_delete_paths}\n" + if pretty_update_paths: + summary += f"Update:\n{pretty_update_paths}\n" + + if safe_remove: + choice = input( + "Please, confirm you want to execute the following operations:\n" + f"{summary}\nI confirm [y/N]" + ) + if choice.lower() != "y": + return + else: + logger.info(f"Executing the following operations:\n{summary}") + + # Execution: + for bids_path in paths_to_delete: + bids_path.fpath.unlink() + + for scans_fpath, bids_paths in paths_to_update.items(): + if not scans_fpath.exists(): + continue + # get the relative datatype of these bids files + bids_fnames = [op.join(p.datatype, p.fpath.name) for p in bids_paths] + + scans_tsv = _from_tsv(scans_fpath) + scans_tsv = _drop(scans_tsv, bids_fnames, "filename") + _to_tsv(scans_tsv, scans_fpath) + + subjects_to_delete = [] + for subj_path in subjects_paths_to_delete: + if subj_path.directory.exists(): + sh.rmtree(subj_path.directory) + subjects_to_delete.append(subj_path.subject) + if subjects_to_delete and participants_tsv_fpath.exists(): + participants_tsv = _from_tsv(participants_tsv_fpath) + participants_tsv = _drop( + participants_tsv, subjects_to_delete, "participant_id" + ) + _to_tsv(participants_tsv, participants_tsv_fpath) + + return self + + @property + def fpath(self): + """Full filepath for this BIDS file. + + Getting the file path consists of the entities passed in + and will get the relative (or full if ``root`` is passed) + path. + + Returns + ------- + bids_fpath : pathlib.Path + Either the relative, or full path to the dataset. + """ + # get the inner-most BIDS directory for this file path + data_path = self.directory + + # account for MEG data that are directory-based + # else, all other file paths attempt to match + if self.suffix == "meg" and self.extension == ".ds": + bids_fpath = op.join(data_path, self.basename) + elif self.suffix == "meg" and self.extension == ".pdf": + bids_fpath = op.join(data_path, op.splitext(self.basename)[0]) + else: + # if suffix and/or extension is missing, and root is + # not None, then BIDSPath will infer the dataset + # else, return the relative path with the basename + if ( + self.suffix is None or self.extension is None + ) and self.root is not None: + # get matching BIDSPaths inside the bids root + matching_paths = _get_matching_bidspaths_from_filesystem(self) + + # FIXME This will break + # FIXME e.g. with FIFF data split across multiple files. + # if extension is not specified and no unique file path + # return filepath of the actual dataset for MEG/EEG/iEEG data + if self.suffix is None or self.suffix in ALLOWED_DATATYPES: + # now only use valid datatype extension + if self.extension is None: + valid_exts = sum(ALLOWED_DATATYPE_EXTENSIONS.values(), []) + else: + valid_exts = [self.extension] + matching_paths = [ + p for p in matching_paths if _parse_ext(p)[1] in valid_exts + ] + + if self.split is None and ( + not matching_paths or "_split-" in matching_paths[0] + ): + # try finding FIF split files (only first one) + this_self = self.copy().update(split="01") + matching_paths = _get_matching_bidspaths_from_filesystem(this_self) + + # found no matching paths + if not matching_paths: + bids_fpath = op.join(data_path, self.basename) + # if paths still cannot be resolved, then there is an error + elif len(matching_paths) > 1: + matching_paths_str = "\n".join(sorted(matching_paths)) + msg = ( + "Found more than one matching data file for the " + "requested recording. While searching:\n" + f'{indent(repr(self), " ")}\n' + f"Found {len(matching_paths)} paths:\n" + f'{indent(matching_paths_str, " ")}\n' + "Cannot proceed due to the " + "ambiguity. This is likely a problem with your " + "BIDS dataset. Please run the BIDS validator on " + "your data." + ) + raise RuntimeError(msg) + else: + bids_fpath = matching_paths[0] + + else: + bids_fpath = op.join(data_path, self.basename) + + bids_fpath = Path(bids_fpath) + return bids_fpath + + def update(self, *, check=None, **kwargs): + """Update inplace BIDS entity key/value pairs in object. + + ``run`` and ``split`` are auto-converted to have two + digits. For example, if ``run=1``, then it will nbecome ``run='01'``. + + Also performs error checks on various entities to + adhere to the BIDS specification. Specifically: + - ``datatype`` should be one of: ``anat``, ``eeg``, ``ieeg``, ``meg`` + - ``extension`` should be one of the accepted file + extensions in the file path: ``.con``, ``.sqd``, ``.fif``, + ``.pdf``, ``.ds``, ``.vhdr``, ``.edf``, ``.bdf``, ``.set``, + ``.edf``, ``.set``, ``.mef``, ``.nwb`` + - ``suffix`` should be one of the acceptable file suffixes in: ``meg``, + ``markers``, ``eeg``, ``ieeg``, ``T1w``, + ``participants``, ``scans``, ``electrodes``, ``channels``, + ``coordsystem``, ``events``, ``headshape``, ``digitizer``, + ``beh``, ``physio``, ``stim`` + - Depending on the modality of the data (EEG, MEG, iEEG), + ``space`` should be a valid string according to Appendix VIII + in the BIDS specification. + + Parameters + ---------- + check : None | bool + If a boolean, controls whether to enforce BIDS conformity. This + will set the ``.check`` attribute accordingly. If ``None``, rely on + the existing ``.check`` attribute instead, which is set upon + `mne_bids.BIDSPath` instantiation. Defaults to ``None``. + **kwargs : dict + It can contain updates for valid BIDSPath entities: + 'subject', 'session', 'task', 'acquisition', 'processing', 'run', + 'recording', 'space', 'suffix', 'split', 'extension', + or updates for 'root' or 'datatype'. + + Returns + ------- + bidspath : BIDSPath + The updated instance of BIDSPath. + + Examples + -------- + If one creates a bids basename using + :func:`mne_bids.BIDSPath`: + + >>> bids_path = BIDSPath(subject='test', session='two', + ... task='mytask', suffix='channels', + ... extension='.tsv') + >>> print(bids_path.basename) + sub-test_ses-two_task-mytask_channels.tsv + >>> # Then, one can update this `BIDSPath` object in place + >>> bids_path.update(acquisition='test', suffix='ieeg', + ... datatype='ieeg', + ... extension='.vhdr', task=None) + BIDSPath( + root: None + datatype: ieeg + basename: sub-test_ses-two_acq-test_ieeg.vhdr) + >>> print(bids_path.basename) + sub-test_ses-two_acq-test_ieeg.vhdr + """ + # Update .check attribute + if check is not None: + self.check = check + + for key, val in kwargs.items(): + if key == "root": + _validate_type(val, types=("path-like", None), item_name=key) + continue + + if key == "datatype": + if val is not None and val not in ALLOWED_DATATYPES and self.check: + raise ValueError( + f"datatype ({val}) is not valid. " + f"Should be one of " + f"{ALLOWED_DATATYPES}" + ) + else: + continue + + if key not in ENTITY_VALUE_TYPE: + raise ValueError( + f"Key must be one of " f"{ALLOWED_PATH_ENTITIES}, got {key}" + ) + + if ENTITY_VALUE_TYPE[key] == "label": + _validate_type(val, types=(None, str), item_name=key) + else: + assert ENTITY_VALUE_TYPE[key] == "index" + _validate_type(val, types=(int, str, None), item_name=key) + if isinstance(val, str) and not val.isdigit(): + raise ValueError(f"{key} is not an index (Got {val})") + elif isinstance(val, int): + kwargs[key] = f"{val}" + + # ensure extension starts with a '.' + extension = kwargs.get("extension") + if extension is not None and not extension.startswith("."): + kwargs["extension"] = f".{extension}" + del extension + + # error check entities + old_kwargs = dict() + for key, val in kwargs.items(): + # check if there are any characters not allowed + if val is not None and key != "root": + if key == "suffix" and not self.check: + # suffix may skip a check if check=False to allow + # things like "dataset_description.json" + pass + else: + _check_key_val(key, val) + + # set entity value, ensuring `root` is a Path + if val is not None and key == "root": + val = Path(val).expanduser() + old_kwargs[key] = ( + getattr(self, f"{key}") if hasattr(self, f"_{key}") else None + ) + setattr(self, f"_{key}", val) + + # Perform a check of the entities and revert changes if check fails + try: + self._check() + except Exception as e: + old_check = self.check + self.check = False + self.update(**old_kwargs) + self.check = old_check + raise e + return self + + def match(self, ignore_json=True, check=False): + """Get a list of all matching paths in the root directory. + + Performs a recursive search, starting in ``.root`` (if set), based on + `BIDSPath.entities` object. Ignores ``.json`` files. + + Parameters + ---------- + ignore_json : bool + If ``True``, ignores json files. Defaults to ``True``. + check : bool + If ``True``, only returns paths that conform to BIDS. If ``False`` + (default), the ``.check`` attribute of the returned + `mne_bids.BIDSPath` object will be set to ``True`` for paths that + do conform to BIDS, and to ``False`` for those that don't. + + Returns + ------- + bids_paths : list of mne_bids.BIDSPath + The matching paths. + """ + if self.root is None: + raise RuntimeError( + "Cannot match basenames if `root` " + "attribute is not set. Please set the" + "BIDS root directory path to `root` via " + "BIDSPath.update()." + ) + + paths = _return_root_paths( + self.root, datatype=self.datatype, ignore_json=ignore_json + ) + + fnames = _filter_fnames( + paths, suffix=self.suffix, extension=self.extension, **self.entities + ) + + bids_paths = _fnames_to_bidspaths(fnames, self.root, check=check) + return bids_paths + + def _check(self): + """Deep check or not of the instance.""" + self.basename # run basename to check validity of arguments + + # perform error check on scans + if ( + self.suffix == "scans" and self.extension == ".tsv" + ) and _check_non_sub_ses_entity(self): + raise ValueError( + "scans.tsv file name can only contain " + "subject and session entities. BIDSPath " + f"currently contains {self.entities}." + ) + + # perform deeper check if user has it turned on + if self.check: + _check_empty_room_basename(self) + + if ( + self.acquisition in ("calibration", "crosstalk") + and self.task is not None + ): + raise ValueError( + f'task must be None if the acquisition is "calibration" or ' + f'"crosstalk", but received: {self.task}' + ) + + # ensure extension starts with a '.' + extension = self.extension + if extension is not None: + # check validity of the extension + if extension not in ALLOWED_FILENAME_EXTENSIONS: + raise ValueError( + f"Extension {extension} is not " + f"allowed. Use one of these extensions " + f"{ALLOWED_FILENAME_EXTENSIONS}." + ) + + # labels from space entity must come from list (appendix VIII) + space = self.space + if space is not None: + datatype = getattr(self, "datatype", None) + if datatype is None: + raise ValueError( + "You must define datatype if you want to " + "use space in your BIDSPath." + ) + + allowed_spaces_for_dtype = ALLOWED_SPACES.get(datatype, None) + if allowed_spaces_for_dtype is None: + raise ValueError( + f"space entity is not valid for datatype " f"{self.datatype}" + ) + elif space not in allowed_spaces_for_dtype: + raise ValueError( + f"space ({space}) is not valid for " + f"datatype ({self.datatype}).\n" + f"Should be one of " + f"{allowed_spaces_for_dtype}" + ) + else: + pass + + # error check suffix + suffix = self.suffix + if suffix is not None and suffix not in ALLOWED_FILENAME_SUFFIX: + raise ValueError( + f"Suffix {suffix} is not allowed. " + f"Use one of these suffixes " + f"{ALLOWED_FILENAME_SUFFIX}." + ) + + @verbose + def find_empty_room(self, use_sidecar_only=False, *, verbose=None): + """Find the corresponding empty-room file of an MEG recording. + + This will only work if the ``.root`` attribute of the + :class:`mne_bids.BIDSPath` instance has been set. + + Parameters + ---------- + use_sidecar_only : bool + Whether to only check the ``AssociatedEmptyRoom`` entry in the + sidecar JSON file or not. If ``False``, first look for the entry, + and if unsuccessful, try to find the best-matching empty-room + recording in the dataset based on the measurement date. + %(verbose)s + + Returns + ------- + BIDSPath | None + The path corresponding to the best-matching empty-room measurement. + Returns ``None`` if none was found. + """ + if self.datatype not in ("meg", None): + raise ValueError("Empty-room data is only supported for MEG datasets") + + if self.root is None: + raise ValueError( + 'The root of the "bids_path" must be set. ' + 'Please use `bids_path.update(root="")` ' + "to set the root of the BIDS folder to read." + ) + + # needed to deal with inheritance principle + sidecar_fname = ( + self.copy() + .update(datatype=None, suffix="meg") + .find_matching_sidecar(extension=".json") + ) + with open(sidecar_fname, encoding="utf-8") as f: + sidecar_json = json.load(f) + + if "AssociatedEmptyRoom" in sidecar_json: + logger.info( + 'Using "AssociatedEmptyRoom" entry from MEG sidecar ' + "file to retrieve empty-room path." + ) + emptytoom_path = sidecar_json["AssociatedEmptyRoom"] + er_bids_path = get_bids_path_from_fname(emptytoom_path) + er_bids_path.root = self.root + er_bids_path.datatype = "meg" + elif use_sidecar_only: + logger.info( + "The MEG sidecar file does not contain an " + '"AssociatedEmptyRoom" entry. Aborting search for an ' + "empty-room recording, as you passed use_sidecar_only=True" + ) + return None + else: + logger.info( + "The MEG sidecar file does not contain an " + '"AssociatedEmptyRoom" entry. Will try to find a matching ' + "empty-room recording based on the measurement date …" + ) + er_bids_path = _find_matched_empty_room(self) + + if er_bids_path is not None and not er_bids_path.fpath.exists(): + raise FileNotFoundError( + f"Empty-room BIDS path resolved but not found:\n" + f"{er_bids_path}\n" + "Check your BIDS dataset for completeness." + ) + + return er_bids_path + + def get_empty_room_candidates(self): + """Get the list of empty-room candidates for the given file. + + Returns + ------- + candidates : list of BIDSPath + The candidate files that will be checked if the sidecar does not + contain an "AssociatedEmptyRoom" entry. + + Notes + ----- + .. versionadded:: 0.12.0 + """ + return _find_empty_room_candidates(self) + + def find_matching_sidecar(self, suffix=None, extension=None, *, on_error="raise"): + """Get the matching sidecar JSON path. + + Parameters + ---------- + suffix : str | None + The filename suffix. This is the entity after the last ``_`` + before the extension. E.g., ``'ieeg'``. + extension : str | None + The extension of the filename. E.g., ``'.json'``. + on_error : 'raise' | 'warn' | 'ignore' + If no matching sidecar file was found and this is set to + ``'raise'``, raise a ``RuntimeError``. If ``'warn'``, emit a + warning, and if ``'ignore'``, neither raise an exception nor a + warning, and return ``None`` in both cases. + + Returns + ------- + sidecar_path : pathlib.Path | None + The path to the sidecar JSON file. + """ + return _find_matching_sidecar( + self, + suffix=suffix, + extension=extension, + on_error=on_error, + ) + + @property + def meg_calibration_fpath(self): + """Find the matching Elekta/Neuromag/MEGIN fine-calibration file. + + This requires that at least ``root`` and ``subject`` are set, and that + ``datatype`` is either ``'meg'`` or ``None``. + + Returns + ------- + path : pathlib.Path | None + The path of the fine-calibration file, or ``None`` if it couldn't + be found. + """ + if self.root is None or self.subject is None: + raise ValueError("root and subject must be set.") + if self.datatype not in (None, "meg"): + raise ValueError("Can only find fine-calibration file for MEG datasets.") + + path = BIDSPath( + subject=self.subject, + session=self.session, + acquisition="calibration", + suffix="meg", + extension=".dat", + datatype="meg", + root=self.root, + ).fpath + if not path.exists(): + path = None + + return path + + @property + def meg_crosstalk_fpath(self): + """Find the matching Elekta/Neuromag/MEGIN crosstalk file. + + This requires that at least ``root`` and ``subject`` are set, and that + ``datatype`` is either ``'meg'`` or ``None``. + + Returns + ------- + path : pathlib.Path | None + The path of the crosstalk file, or ``None`` if it couldn't be + found. + """ + if self.root is None or self.subject is None: + raise ValueError("root and subject must be set.") + if self.datatype not in (None, "meg"): + raise ValueError("Can only find crosstalk file for MEG datasets.") + + path = BIDSPath( + subject=self.subject, + session=self.session, + acquisition="crosstalk", + suffix="meg", + extension=".fif", + datatype="meg", + root=self.root, + ).fpath + if not path.exists(): + path = None + + return path + + +def _get_matching_bidspaths_from_filesystem(bids_path): + """Get matching file paths for a BIDSPath. + + Assumes suffix and/or extension is not provided. + """ + # extract relevant entities to find filepath + sub, ses = bids_path.subject, bids_path.session + datatype = bids_path.datatype + basename, bids_root = bids_path.basename, bids_path.root + + if datatype is None: + datatype = _infer_datatype(root=bids_root, sub=sub, ses=ses) + + data_dir = BIDSPath( + subject=sub, session=ses, datatype=datatype, root=bids_root + ).directory + + # For BTi data, just return the directory with a '.pdf' extension + # to facilitate reading in mne-bids + bti_dir = op.join(data_dir, f"{basename}") + if op.isdir(bti_dir): + logger.info(f"Assuming BTi data in {bti_dir}") + matching_paths = [f"{bti_dir}.pdf"] + # otherwise, search for valid file paths + else: + search_str = bids_root + # parse down the BIDS directory structure + if sub is not None: + search_str = op.join(search_str, f"sub-{sub}") + if ses is not None: + search_str = op.join(search_str, f"ses-{ses}") + if datatype is not None: + search_str = op.join(search_str, datatype) + else: + search_str = op.join(search_str, "**") + search_str = op.join(search_str, f"{basename}*") + + # Find all matching files in all supported formats. + valid_exts = ALLOWED_FILENAME_EXTENSIONS + matching_paths = glob.glob(search_str) + matching_paths = [p for p in matching_paths if _parse_ext(p)[1] in valid_exts] + return matching_paths + + +def _check_non_sub_ses_entity(bids_path): + """Check existence of non subject/session entities in BIDSPath.""" + if ( + bids_path.task + or bids_path.acquisition + or bids_path.run + or bids_path.space + or bids_path.recording + or bids_path.split + or bids_path.processing + ): + return True + return False + + +def _print_lines_with_entry(file, entry, folder, is_tsv, line_numbers, outfile): + """Print the lines that contain the entry. + + Parameters + ---------- + file : str + The text file to look though. + entry : str + The string to look in the text file for. + folder : str + The base folder for relative file path printing. + is_tsv : bool + If ``True``, things that format a tsv nice will be used. + line_numbers : bool + Whether to include line numbers in the printout. + outfile : io.StringIO | None + The argument to pass to `print` for `file`. If ``None``, + prints to the console, else a string is printed to. + """ + entry_lines = list() + 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: + header = f"1 {header}" + header = header.rstrip() + for i, line in enumerate(fid): + if entry in line: + if is_tsv: + line = _truncate_tsv_line(line) + if line_numbers: + line = str(i + 2) + (5 - len(str(i + 2))) * " " + line + entry_lines.append(line.rstrip()) + if entry_lines: + print(op.relpath(file, folder), file=outfile) + if is_tsv: + print(f" {header}", file=outfile) + if len(entry_lines) > 10: + entry_lines = entry_lines[:10] + entry_lines.append("...") + for line in entry_lines: + print(f" {line}", file=outfile) + + +def _truncate_tsv_line(line, lim=10): + """Truncate a line to the specified number of characters.""" + return "".join( + [ + str(val) + (lim - len(val)) * " " if len(val) < lim else f"{val[:lim - 1]} " + for val in line.split("\t") + ] + ) + + +def search_folder_for_text( + entry, folder, extensions=(".json", ".tsv"), line_numbers=True, return_str=False +): + """Find any particular string entry in the text files of a folder. + + .. note:: This is a search function like `grep + `_ + that is formatted nicely for BIDS datasets. + + Parameters + ---------- + entry : str + The string to search for + folder : path-like + The folder in which to search. + extensions : list | tuple | str + The extensions to search through. Default is ``json`` and + ``tsv`` which are the BIDS sidecar file types. + line_numbers : bool + Whether to include line numbers. + return_str : bool + If ``True``, return the fields with "n/a" as a str instead of + printing them. + + Returns + ------- + str | None + If `return_str` is ``True``, the fields are returned as a + string. Else, ``None`` is returned and the fields are printed. + """ + _validate_type(entry, str, "entry") + if not op.isdir(folder): + raise ValueError("{folder} is not a directory") + folder = Path(folder) # ensure pathlib.Path + + extensions = (extensions,) if isinstance(extensions, str) else extensions + _validate_type(extensions, (tuple, list)) + _validate_type(line_numbers, bool, "line_numbers") + _validate_type(return_str, bool, "return_str") + outfile = StringIO() if return_str else None + + for extension in extensions: + for file in folder.rglob("*" + extension): + _print_lines_with_entry( + file, entry, folder, extension == ".tsv", line_numbers, outfile + ) + + if outfile is not None: + return outfile.getvalue() + + +def _check_max_depth(max_depth): + """Check that max depth is a proper input.""" + msg = "`max_depth` must be a positive integer or None" + if not isinstance(max_depth, (int, type(None))): + raise ValueError(msg) + if max_depth is None: + max_depth = float("inf") + if max_depth < 0: + raise ValueError(msg) + # Use max_depth same as the -L param in the unix `tree` command + max_depth += 1 + return max_depth + + +def print_dir_tree(folder, max_depth=None, return_str=False): + """Recursively print a directory tree. + + Parameters + ---------- + folder : path-like + The folder for which to print the directory tree. + max_depth : int + The maximum depth into which to descend recursively for printing + the directory tree. + return_str : bool + If ``True``, return the directory tree as a str instead of + printing it. + + Returns + ------- + str | None + If `return_str` is ``True``, the directory tree is returned as a + string. Else, ``None`` is returned and the directory tree is printed. + """ + folder = _check_fname( + fname=folder, overwrite="read", must_exist=True, name="Folder", need_dir=True + ) + max_depth = _check_max_depth(max_depth) + + _validate_type(return_str, bool, "return_str") + outfile = StringIO() if return_str else None + + # Base length of a tree branch, to normalize each tree's start to 0 + baselen = len(str(folder).split(os.sep)) - 1 + + # Recursively walk through all directories + for root, dirs, files in os.walk(folder, topdown=True): + # Since we're using `topdown=True`, sorting `dirs` ensures that + # `os.walk` will continue walking through directories in alphabetical + # order. So although we're not actually using `dirs` anywhere below, + # sorting it here is imperative to ensure the correct (alphabetical) + # directory sort order in the output. + dirs.sort() + files.sort() + + # Check how far we have walked + branchlen = len(root.split(os.sep)) - baselen + + # Only print if this is up to the depth we asked + if branchlen <= max_depth: + if branchlen <= 1: + print(f"|{op.basename(root) + os.sep}", file=outfile) + else: + print( + "|{} {}".format( + (branchlen - 1) * "---", op.basename(root) + os.sep + ), + file=outfile, + ) + + # Only print files if we are NOT yet up to max_depth or beyond + if branchlen < max_depth: + for file in files: + print("|{} {}".format(branchlen * "---", file), file=outfile) + + if outfile is not None: + return outfile.getvalue() + + +def _parse_ext(raw_fname): + """Split a filename into its name and extension.""" + raw_fname = str(raw_fname) + fname, ext = os.path.splitext(raw_fname) + # BTi data is the only file format that does not have a file extension + if ext == "" or "c,rf" in fname: + logger.info( + 'Found no extension for raw file, assuming "BTi" format ' + "and appending extension .pdf" + ) + ext = ".pdf" + # If ending on .gz, check whether it is an .nii.gz file + elif ext == ".gz" and raw_fname.endswith(".nii.gz"): + ext = ".nii.gz" + fname = fname[:-4] # cut off the .nii + return fname, ext + + +def _infer_datatype_from_path(fname: Path): + # get the parent + if fname.exists(): + datatype = fname.parent.name + if any([datatype.startswith(entity) for entity in ["sub", "ses"]]): + datatype = None + elif fname.stem.split("_")[-1] in ("meg", "eeg", "ieeg"): + datatype = fname.stem.split("_")[-1] + else: + datatype = None + + return datatype + + +@verbose +def get_bids_path_from_fname(fname, check=True, verbose=None): + """Retrieve a BIDSPath object from a filename. + + Parameters + ---------- + fname : path-like + The path to parse a `BIDSPath` from. + check : bool + Whether to check if the generated `BIDSPath` complies with the BIDS + specification, i.e., whether all included entities and the suffix are + valid. + %(verbose)s + + Returns + ------- + bids_path : BIDSPath + The BIDSPath object. + """ + fpath = Path(fname) + fname = fpath.name + + entities = get_entities_from_fname(fname) + + # parse suffix and extension + last_entity = fname.split("-")[-1] + if "_" in last_entity: + suffix = last_entity.split("_")[-1] + suffix, extension = _get_bids_suffix_and_ext(suffix) + else: + suffix = None + extension = Path(fname).suffix # already starts with a period + if extension == "": + extension = None + + if extension is not None: + assert extension.startswith(".") # better safe than sorry + + datatype = _infer_datatype_from_path(fpath) + + # find root and datatype if it exists + if fpath.parent == "": + root = None + else: + root_level = 0 + # determine root if it's there + if entities["subject"] is not None: + root_level += 1 + if entities["session"] is not None: + root_level += 1 + if suffix != "scans": + root_level += 1 + + if root_level: + root = fpath.parent + for _ in range(root_level): + root = root.parent + + bids_path = BIDSPath( + root=root, + datatype=datatype, + suffix=suffix, + extension=extension, + **entities, + check=check, + ) + if verbose: + logger.info(f"From {fpath}, formed a BIDSPath: {bids_path}.") + return bids_path + + +@verbose +def get_entities_from_fname(fname, on_error="raise", verbose=None): + """Retrieve a dictionary of BIDS entities from a filename. + + Entities not present in ``fname`` will be assigned the value of ``None``. + + Parameters + ---------- + fname : BIDSPath | path-like + The path to parse. + on_error : 'raise' | 'warn' | 'ignore' + If any unsupported labels in the filename are found and this is set + to ``'raise'``, raise a ``RuntimeError``. If ``'warn'``, + emit a warning and continue, and if ``'ignore'``, + neither raise an exception nor a warning, and + return all entities found. For example, currently MNE-BIDS does not + support derivatives yet, but the ``desc`` entity label is used to + differentiate different derivatives and will work with this function + if ``on_error='ignore'``. + %(verbose)s + + Returns + ------- + params : dict + A dictionary with the keys corresponding to the BIDS entity names, and + the values to the entity values encoded in the filename. + + Examples + -------- + >>> fname = 'sub-01_ses-exp_run-02_meg.fif' + >>> get_entities_from_fname(fname) + {'subject': '01', \ +'session': 'exp', \ +'task': None, \ +'acquisition': None, \ +'run': '02', \ +'processing': None, \ +'space': None, \ +'recording': None, \ +'split': None, \ +'description': None} + """ + if on_error not in ("warn", "raise", "ignore"): + raise ValueError( + f"Acceptable values for on_error are: warn, raise, " + f"ignore, but got: {on_error}" + ) + + fname = str(fname) # to accept also BIDSPath or Path instances + + # filename keywords to the BIDS entity mapping + entity_vals = list(ALLOWED_PATH_ENTITIES_SHORT.values()) + fname_vals = list(ALLOWED_PATH_ENTITIES_SHORT.keys()) + + params = {key: None for key in entity_vals} + idx_key = 0 + for match in re.finditer(param_regex, op.basename(fname)): + key, value = match.groups() + + if on_error in ("raise", "warn"): + if key not in fname_vals: + msg = f'Unexpected entity "{key}" found in ' f'filename "{fname}"' + if on_error == "raise": + raise KeyError(msg) + elif on_error == "warn": + warn(msg) + continue + if fname_vals.index(key) < idx_key: + msg = ( + f"Entities in filename not ordered correctly." + f' "{key}" should have occurred earlier in the ' + f'filename "{fname}"' + ) + raise ValueError(msg) + idx_key = fname_vals.index(key) + + key_short_hand = ALLOWED_PATH_ENTITIES_SHORT.get(key, key) + params[key_short_hand] = value + return params + + +def _find_matching_sidecar(bids_path, suffix=None, extension=None, on_error="raise"): + """Try to find a sidecar file with a given suffix for a data file. + + Parameters + ---------- + bids_path : BIDSPath + Full name of the data file. + suffix : str | None + The filename suffix. This is the entity after the last ``_`` + before the extension. E.g., ``'ieeg'``. + extension : str | None + The extension of the filename. E.g., ``'.json'``. + on_error : 'raise' | 'warn' | 'ignore' + If no matching sidecar file was found and this is set to ``'raise'``, + raise a ``RuntimeError``. If ``'warn'``, emit a warning, and if + ``'ignore'``, neither raise an exception nor a warning, and return + ``None`` in both cases. + + Returns + ------- + sidecar_fname : str | None + Path to the identified sidecar file, or ``None`` if none could be found + and ``on_error`` was set to ``'warn'`` or ``'ignore'``. + + """ + if on_error not in ("warn", "raise", "ignore"): + raise ValueError( + f"Acceptable values for on_error are: warn, raise, " + f"ignore, but got: {on_error}" + ) + + bids_root = bids_path.root + + # search suffix is BIDS-suffix and extension + search_suffix = "" + if suffix is None and bids_path.suffix is not None: + search_suffix = bids_path.suffix + elif suffix is not None: + search_suffix = suffix + + # do not search for suffix if suffix is explicitly passed + bids_path = bids_path.copy() + bids_path.check = False + bids_path.update(suffix=None) + + if extension is None and bids_path.extension is not None: + search_suffix = search_suffix + bids_path.extension + elif extension is not None: + search_suffix = search_suffix + extension + + # do not search for extension if extension is explicitly passed + bids_path = bids_path.copy() + bids_path.check = False + bids_path = bids_path.update(extension=None) + + # We only use subject and session as identifier, because all other + # parameters are potentially not binding for metadata sidecar files + search_str_filename = f"sub-{bids_path.subject}" + if bids_path.session is not None: + search_str_filename += f"_ses-{bids_path.session}" + + # Find all potential sidecar files, doing a recursive glob + # from bids_root/sub-*, potentially taking into account the data type + search_dir = Path(bids_root) / f"sub-{bids_path.subject}" + # ** -> don't forget about potentially present session directories + if bids_path.datatype is None: + search_dir = search_dir / "**" + else: + search_dir = search_dir / "**" / bids_path.datatype + + search_str_complete = str(search_dir / f"{search_str_filename}*{search_suffix}") + + candidate_list = glob.glob(search_str_complete, recursive=True) + best_candidates = _find_best_candidates(bids_path.entities, candidate_list) + if len(best_candidates) == 1: + # Success + return Path(best_candidates[0]) + + # We failed. Construct a helpful error message. + # If this was expected, simply return None, otherwise, raise an exception. + msg = None + if len(best_candidates) == 0: + msg = ( + f"Did not find any {search_suffix} " + f"associated with {bids_path.basename}." + ) + elif len(best_candidates) > 1: + # More than one candidates were tied for best match + msg = ( + f"Expected to find a single {search_suffix} file " + f"associated with {bids_path.basename}, " + f"but found {len(candidate_list)}:\n\n" + "\n".join(candidate_list) + ) + msg += f'\n\nThe search_str was "{search_str_complete}"' + if on_error == "raise": + raise RuntimeError(msg) + elif on_error == "warn": + warn(msg) + + return None + + +def _get_bids_suffix_and_ext(str_suffix): + """Parse suffix for valid suffix and ext.""" + # no matter what the suffix is, suffix and extension are last + suffix = str_suffix + ext = None + if "." in str_suffix: + # handle case of multiple '.' in extension + split_str = str_suffix.split(".") + suffix = split_str[0] + ext = ".".join(split_str[1:]) + ext = f".{ext}" # prepend period + return suffix, ext + + +@verbose +def get_datatypes(root, verbose=None): + """Get list of data types ("modalities") present in a BIDS dataset. + + Parameters + ---------- + root : path-like + Path to the root of the BIDS directory. + %(verbose)s + + Returns + ------- + modalities : list of str + List of the data types present in the BIDS dataset pointed to by + `root`. + + """ + # Take all possible data types from "entity" table + # (Appendix in BIDS spec) + # https://bids-specification.readthedocs.io/en/latest/appendices/entity-table.html # noqa + datatype_list = ("anat", "func", "dwi", "fmap", "beh", "meg", "eeg", "ieeg", "nirs") + datatypes = list() + for root, dirs, files in os.walk(root): + for dir in dirs: + if dir in datatype_list and dir not in datatypes: + datatypes.append(dir) + + return datatypes + + +@verbose +def get_entity_vals( + root, + entity_key, + *, + ignore_subjects="emptyroom", + ignore_sessions=None, + ignore_tasks=None, + ignore_acquisitions=None, + ignore_runs=None, + ignore_processings=None, + ignore_spaces=None, + ignore_recordings=None, + ignore_splits=None, + ignore_descriptions=None, + ignore_modalities=None, + ignore_datatypes=None, + ignore_dirs=("derivatives", "sourcedata"), + with_key=False, + verbose=None, +): + """Get list of values associated with an `entity_key` in a BIDS dataset. + + BIDS file names are organized by key-value pairs called "entities" [1]_. + With this function, you can get all values for an entity indexed by its + key. + + Parameters + ---------- + root : path-like + Path to the "root" directory from which to start traversing to gather + BIDS entities from file- and folder names. This will commonly be the + BIDS root, but it may also be a subdirectory inside of a BIDS dataset, + e.g., the ``sub-X`` directory of a hypothetical subject ``X``. + + .. note:: This function searches the names of all files and directories + nested within ``root``. Depending on the size of your + dataset and storage system, searching the entire BIDS dataset + may take a **considerable** amount of time (seconds up to + several minutes). If you find yourself running into such + performance issues, consider limiting the search to only a + subdirectory in the dataset, e.g., to a single subject or + session only. + + entity_key : str + The name of the entity key to search for. + ignore_subjects : str | array-like of str | None + Subject(s) to ignore. By default, entities from the ``emptyroom`` + mock-subject are not returned. If ``None``, include all subjects. + ignore_sessions : str | array-like of str | None + Session(s) to ignore. If ``None``, include all sessions. + ignore_tasks : str | array-like of str | None + Task(s) to ignore. If ``None``, include all tasks. + ignore_acquisitions : str | array-like of str | None + Acquisition(s) to ignore. If ``None``, include all acquisitions. + ignore_runs : str | array-like of str | None + Run(s) to ignore. If ``None``, include all runs. + ignore_processings : str | array-like of str | None + Processing(s) to ignore. If ``None``, include all processings. + ignore_spaces : str | array-like of str | None + Space(s) to ignore. If ``None``, include all spaces. + ignore_recordings : str | array-like of str | None + Recording(s) to ignore. If ``None``, include all recordings. + ignore_splits : str | array-like of str | None + Split(s) to ignore. If ``None``, include all splits. + ignore_descriptions : str | array-like of str | None + Description(s) to ignore. If ``None``, include all descriptions. + + .. versionadded:: 0.11 + ignore_modalities : str | array-like of str | None + Modalities(s) to ignore. If ``None``, include all modalities. + ignore_datatypes : str | array-like of str | None + Datatype(s) to ignore. If ``None``, include all datatypes (i.e. + ``anat``, ``ieeg``, ``eeg``, ``meg``, ``func``, etc.) + ignore_dirs : str | array-like of str | None + Directories nested directly within ``root`` to ignore. If ``None``, + include all directories in the search. + + .. versionadded:: 0.9 + with_key : bool + If ``True``, returns the full entity with the key and the value. This + will for example look like ``['sub-001', 'sub-002']``. + If ``False`` (default), just returns the entity values. This + will for example look like ``['001', '002']``. + %(verbose)s + + Returns + ------- + entity_vals : list of str + List of the values associated with an `entity_key` in the BIDS dataset + pointed to by `root`. + + Examples + -------- + >>> root = Path('./mne_bids/tests/data/tiny_bids').absolute() + >>> entity_key = 'subject' + >>> get_entity_vals(root, entity_key) + ['01'] + >>> get_entity_vals(root, entity_key, with_key=True) + ['sub-01'] + + Notes + ----- + This function will scan the entire ``root``, except for a + ``derivatives`` subfolder placed directly under ``root``. + + References + ---------- + .. [1] https://bids-specification.rtfd.io/en/latest/common-principles.html#entities + + """ + root = _check_fname( + fname=root, + overwrite="read", + must_exist=True, + need_dir=True, + name="Root directory", + ) + root = Path(root).expanduser() + + entities = ( + "subject", + "task", + "session", + "acquisition", + "run", + "processing", + "space", + "recording", + "split", + "description", + "suffix", + ) + entities_abbr = ( + "sub", + "task", + "ses", + "acq", + "run", + "proc", + "space", + "rec", + "split", + "desc", + "suffix", + ) + entity_long_abbr_map = dict(zip(entities, entities_abbr)) + + if entity_key not in entities: + raise ValueError( + f'`key` must be one of: {", ".join(entities)}. ' f"Got: {entity_key}" + ) + + ignore_subjects = _ensure_tuple(ignore_subjects) + ignore_sessions = _ensure_tuple(ignore_sessions) + ignore_tasks = _ensure_tuple(ignore_tasks) + ignore_acquisitions = _ensure_tuple(ignore_acquisitions) + ignore_runs = _ensure_tuple(ignore_runs) + ignore_processings = _ensure_tuple(ignore_processings) + ignore_spaces = _ensure_tuple(ignore_spaces) + ignore_recordings = _ensure_tuple(ignore_recordings) + ignore_splits = _ensure_tuple(ignore_splits) + ignore_descriptions = _ensure_tuple(ignore_descriptions) + ignore_modalities = _ensure_tuple(ignore_modalities) + + ignore_dirs = _ensure_tuple(ignore_dirs) + existing_ignore_dirs = [ + root / d for d in ignore_dirs if (root / d).exists() and (root / d).is_dir() + ] + ignore_dirs = _ensure_tuple(existing_ignore_dirs) + + p = re.compile(rf"{entity_long_abbr_map[entity_key]}-(.*?)_") + values = list() + filenames = root.glob(f"**/*{entity_long_abbr_map[entity_key]}-*_*") + + for filename in filenames: + # Skip ignored directories + # XXX In Python 3.9, we can use Path.is_relative_to() here + if any( + [str(filename).startswith(str(ignore_dir)) for ignore_dir in ignore_dirs] + ): + continue + + if ignore_datatypes and filename.parent.name in ignore_datatypes: + continue + if ignore_subjects and any( + [filename.stem.startswith(f"sub-{s}_") for s in ignore_subjects] + ): + continue + if ignore_sessions and any( + [f"_ses-{s}_" in filename.stem for s in ignore_sessions] + ): + continue + if ignore_tasks and any([f"_task-{t}_" in filename.stem for t in ignore_tasks]): + continue + if ignore_acquisitions and any( + [f"_acq-{a}_" in filename.stem for a in ignore_acquisitions] + ): + continue + if ignore_runs and any([f"_run-{r}_" in filename.stem for r in ignore_runs]): + continue + if ignore_processings and any( + [f"_proc-{p}_" in filename.stem for p in ignore_processings] + ): + continue + if ignore_spaces and any( + [f"_space-{s}_" in filename.stem for s in ignore_spaces] + ): + continue + if ignore_recordings and any( + [f"_rec-{a}_" in filename.stem for a in ignore_recordings] + ): + continue + if ignore_splits and any( + [f"_split-{s}_" in filename.stem for s in ignore_splits] + ): + continue + if ignore_descriptions and any( + [f"_desc-{d}_" in filename.stem for d in ignore_descriptions] + ): + continue + if ignore_modalities and any( + [f"_{k}" in filename.stem for k in ignore_modalities] + ): + continue + + match = p.search(filename.stem) + value = match.group(1) + if with_key: + value = f"{entity_long_abbr_map[entity_key]}-{value}" + if value not in values: + values.append(value) + return sorted(values) + + +def _mkdir_p(path, overwrite=False): + """Create a directory, making parent directories as needed [1]. + + References + ---------- + .. [1] stackoverflow.com/questions/600268/mkdir-p-functionality-in-python + + """ + if overwrite and op.isdir(path): + sh.rmtree(path) + logger.info(f"Clearing path: {path}") + + os.makedirs(path, exist_ok=True) + if not op.isdir(path): + logger.info(f"Creating folder: {path}") + + +def _find_best_candidates(params, candidate_list): + """Return the best candidate, based on the number of param matches. + + Assign each candidate a score, based on how many entities are shared with + the ones supplied in the `params` parameter. The candidate with the highest + score wins. Candidates with entities that conflict with the supplied + `params` are disqualified. + + Parameters + ---------- + params : dict + The entities that the candidate should match. + candidate_list : list of str + A list of candidate filenames. + + Returns + ------- + best_candidates : list of str + A list of all the candidate filenames that are tied for first place. + Hopefully, the list will have a length of one. + """ + params = {key: value for key, value in params.items() if value is not None} + + best_candidates = [] + best_n_matches = 0 + for candidate in candidate_list: + n_matches = 0 + candidate_disqualified = False + candidate_params = get_entities_from_fname(candidate) + for entity, value in params.items(): + if entity in candidate_params: + if candidate_params[entity] is None: + continue + elif candidate_params[entity] == value: + n_matches += 1 + else: + # Incompatible entity found, candidate is disqualified + candidate_disqualified = True + break + if not candidate_disqualified: + if n_matches > best_n_matches: + best_n_matches = n_matches + best_candidates = [candidate] + elif n_matches == best_n_matches: + best_candidates.append(candidate) + return best_candidates + + +def _get_datatypes_for_sub(*, root, sub, ses=None): + """Retrieve data modalities for a specific subject and session.""" + subject_dir = op.join(root, f"sub-{sub}") + if ses is not None: + subject_dir = op.join(subject_dir, f"ses-{ses}") + + # TODO We do this to ensure we don't accidentally pick up any "spurious" + # TODO sub-directories. But is that really necessary with valid BIDS data? + modalities_in_dataset = get_datatypes(root=root) + subdirs = [f.name for f in os.scandir(subject_dir) if f.is_dir()] + available_modalities = [s for s in subdirs if s in modalities_in_dataset] + return available_modalities + + +def _infer_datatype(*, root, sub, ses): + # Check which suffix is available for this particular + # subject & session. If we get no or multiple hits, throw an error. + + modalities = _get_datatypes_for_sub(root=root, sub=sub, ses=ses) + + # We only want to handle electrophysiological data here. + allowed_recording_modalities = ["meg", "eeg", "ieeg"] + modalities = list(set(modalities) & set(allowed_recording_modalities)) + if not modalities: + raise ValueError("No electrophysiological data found.") + elif len(modalities) >= 2: + msg = ( + f"Found data of more than one recording datatype. Please " + f"pass the `suffix` parameter to specify which data to load. " + f"Found the following modalitiess: {modalities}" + ) + raise RuntimeError(msg) + + assert len(modalities) == 1 + return modalities[0] + + +def _path_to_str(var): + """Make sure var is a string or Path, return string representation.""" + if not isinstance(var, (Path, str)): + raise ValueError( + f"All path parameters must be either strings or " + f"pathlib.Path objects. Found type {type(var)}." + ) + else: + return str(var) + + +def _filter_fnames( + fnames, + *, + subject=None, + session=None, + task=None, + acquisition=None, + run=None, + processing=None, + recording=None, + space=None, + split=None, + description=None, + suffix=None, + extension=None, +): + """Filter a list of BIDS filenames / paths based on BIDS entity values. + + Input can be str or list of str. + + Parameters + ---------- + fnames : iterable of pathlib.Path | iterable of str + + Returns + ------- + list of pathlib.Path + + """ + subject = _ensure_tuple(subject) + session = _ensure_tuple(session) + task = _ensure_tuple(task) + acquisition = _ensure_tuple(acquisition) + run = _ensure_tuple(run) + processing = _ensure_tuple(processing) + space = _ensure_tuple(space) + recording = _ensure_tuple(recording) + split = _ensure_tuple(split) + description = _ensure_tuple(description) + suffix = _ensure_tuple(suffix) + extension = _ensure_tuple(extension) + + leading_path_str = r".*\/?" # nothing or something ending with a `/` + sub_str = r"sub-(" + "|".join(subject) + ")" if subject else r"sub-([^_]+)" + ses_str = r"_ses-(" + "|".join(session) + ")" if session else r"(|_ses-([^_]+))" + task_str = r"_task-(" + "|".join(task) + ")" if task else r"(|_task-([^_]+))" + acq_str = ( + r"_acq-(" + "|".join(acquisition) + ")" if acquisition else r"(|_acq-([^_]+))" + ) + run_str = r"_run-(" + "|".join(run) + ")" if run else r"(|_run-([^_]+))" + proc_str = ( + r"_proc-(" + "|".join(processing) + ")" if processing else r"(|_proc-([^_]+))" + ) + space_str = r"_space-(" + "|".join(space) + ")" if space else r"(|_space-([^_]+))" + rec_str = r"_rec-(" + "|".join(recording) + ")" if recording else r"(|_rec-([^_]+))" + split_str = r"_split-(" + "|".join(split) + ")" if split else r"(|_split-([^_]+))" + desc_str = ( + r"_desc-(" + "|".join(description) + ")" if description else r"(|_desc-([^_]+))" + ) + suffix_str = r"_(" + "|".join(suffix) + ")" if suffix else r"_([^_]+)" + ext_str = r"(" + "|".join(extension) + ")" if extension else r".([^_]+)" + + regexp = ( + leading_path_str + + sub_str + + ses_str + + task_str + + acq_str + + run_str + + proc_str + + space_str + + rec_str + + split_str + + desc_str + + suffix_str + + ext_str + ) + + # Convert to str so we can apply the regexp ... + fnames = [str(f) for f in fnames] + + # https://stackoverflow.com/a/51246151/1944216 + fnames_filtered = sorted(filter(re.compile(regexp).match, fnames)) + + # ... and return Paths. + fnames_filtered = [Path(f) for f in fnames_filtered] + return fnames_filtered + + +def find_matching_paths( + root, + subjects=None, + sessions=None, + tasks=None, + acquisitions=None, + runs=None, + processings=None, + recordings=None, + spaces=None, + splits=None, + descriptions=None, + suffixes=None, + extensions=None, + datatypes=None, + check=False, +): + """Get list of all matching paths for all matching entity values. + + Input can be str or list of str. None matches all found values. + + Performs a recursive search, starting in ``.root`` (if set), based on + `BIDSPath.entities` object. + + Parameters + ---------- + root : pathlib.Path | str + The root of the BIDS path. + subjects : str | array-like of str | None + The subject ID. Corresponds to "sub". + sessions : str | array-like of str | None + The acquisition session. Corresponds to "ses". + tasks : str | array-like of str | None + The experimental task. Corresponds to "task". + acquisitions: str | array-like of str | None + The acquisition parameters. Corresponds to "acq". + runs : str | array-like of str | None + The run number. Corresponds to "run". + processings : str | array-like of str | None + The processing label. Corresponds to "proc". + recordings : str | array-like of str | None + The recording name. Corresponds to "rec". + spaces : str | array-like of str | None + The coordinate space for anatomical and sensor location + files (e.g., ``*_electrodes.tsv``, ``*_markers.mrk``). + Corresponds to "space". + Note that valid values for ``space`` must come from a list + of BIDS keywords as described in the BIDS specification. + splits : str | array-like of str | None + The split of the continuous recording file for ``.fif`` data. + Corresponds to "split". + descriptions : str | array-like of str | None + This corresponds to the BIDS entity ``desc``. It is used to provide + additional information for derivative data, e.g., preprocessed data + may be assigned ``description='cleaned'``. + + .. versionadded:: 0.11 + suffixes : str | array-like of str | None + The filename suffix. This is the entity after the + last ``_`` before the extension. E.g., ``'channels'``. + The following filename suffix's are accepted: + 'meg', 'markers', 'eeg', 'ieeg', 'T1w', + 'participants', 'scans', 'electrodes', 'coordsystem', + 'channels', 'events', 'headshape', 'digitizer', + 'beh', 'physio', 'stim' + extensions : str | array-like of str | None + The extension of the filename. E.g., ``'.json'``. + datatypes : str | array-like of str | None + The BIDS data type, e.g., ``'anat'``, ``'func'``, ``'eeg'``, ``'meg'``, + ``'ieeg'``. + check : bool + If ``True``, only returns paths that conform to BIDS. If ``False`` + (default), the ``.check`` attribute of the returned + `mne_bids.BIDSPath` object will be set to ``True`` for paths that + do conform to BIDS, and to ``False`` for those that don't. + + Returns + ------- + bids_paths : list of mne_bids.BIDSPath + The matching paths. + + """ + fpaths = _return_root_paths(root, datatype=datatypes, ignore_json=False) + + fpaths_filtered = _filter_fnames( + fpaths, + subject=subjects, + session=sessions, + task=tasks, + acquisition=acquisitions, + run=runs, + processing=processings, + recording=recordings, + space=spaces, + split=splits, + description=descriptions, + suffix=suffixes, + extension=extensions, + ) + + bids_paths = _fnames_to_bidspaths(fpaths_filtered, root, check=check) + return bids_paths + + +def _return_root_paths(root, datatype=None, ignore_json=True): + """Return all paths in root. + + Can be filtered by datatype (which is present in the path but not in + the BIDSPath basename). Can also be list of datatypes. + root : pathlib.Path | str + The root of the BIDS path. + datatype : str | array-like of str | None + The BIDS data type, e.g., ``'anat'``, ``'func'``, ``'eeg'``, ``'meg'``, + ``'ieeg'``. + """ + root = Path(root) # if root is str + + if datatype is not None: + datatype = _ensure_tuple(datatype) + search_str = f'*/{"|".join(datatype)}/*' + else: + search_str = "*.*" + + paths = root.rglob(search_str) + # Only keep files (not directories), and omit the JSON sidecars + # if ignore_json is True. + if ignore_json: + paths = [p for p in paths if p.is_file() and p.suffix != ".json"] + else: + paths = [p for p in paths if p.is_file()] + + return paths + + +def _fnames_to_bidspaths(fnames, root, check=False): + """Make BIDSPaths from file names. + + To check whether the BIDSPath is conforming to BIDS if check=True, we + first instantiate without checking and then run the check manually, + allowing us to be more specific about the exception to catch. + + Parameters + ---------- + fnames : list of str + Filenames as list of strings. + root : path-like | None + The root directory of the BIDS dataset. + check : bool + If ``True``, only returns paths that conform to BIDS. If ``False`` + (default), the ``.check`` attribute of the returned + `mne_bids.BIDSPath` object will be set to ``True`` for paths that + do conform to BIDS, and to ``False`` for those that don't. + + Returns + ------- + bids_paths : list of mne_bids.BIDSPath + Bids paths. + + """ + bids_paths = [] + for fname in fnames: + datatype = _infer_datatype_from_path(fname) + bids_path = get_bids_path_from_fname(fname, check=False) + bids_path.root = root + bids_path.datatype = datatype + bids_path.check = True + + try: + bids_path._check() + except ValueError: + # path is not BIDS-compatible + if check: # skip! + continue + else: + bids_path.check = False + + bids_paths.append(bids_path) + return bids_paths diff --git a/mne-bids-0.15/mne_bids/pick.py b/mne-bids-0.15/mne_bids/pick.py new file mode 100644 index 0000000..a351d13 --- /dev/null +++ b/mne-bids-0.15/mne_bids/pick.py @@ -0,0 +1,88 @@ +"""Define coil types for MEG.""" + +# Authors: Matt Sanderson +# +# License: BSD-3-Clause +from mne.io.constants import FIFF + + +def get_coil_types(): + """Return all known coil types. + + Returns + ------- + coil_types : dict + The keys contain the channel types, and the values contain the + corresponding values in the info['chs'][idx]['kind'] + + """ + return dict( + meggradaxial=( + FIFF.FIFFV_COIL_KIT_GRAD, + FIFF.FIFFV_COIL_CTF_GRAD, + # Support for gradient-compensated data: + int(FIFF.FIFFV_COIL_CTF_GRAD | (3 << 16)), + int(FIFF.FIFFV_COIL_CTF_GRAD | (2 << 16)), + FIFF.FIFFV_COIL_AXIAL_GRAD_5CM, + FIFF.FIFFV_COIL_BABY_GRAD, + ), + megrefgradaxial=( + FIFF.FIFFV_COIL_CTF_REF_GRAD, + FIFF.FIFFV_COIL_CTF_OFFDIAG_REF_GRAD, + FIFF.FIFFV_COIL_MAGNES_REF_GRAD, + FIFF.FIFFV_COIL_MAGNES_OFFDIAG_REF_GRAD, + ), + meggradplanar=( + FIFF.FIFFV_COIL_VV_PLANAR_T1, + FIFF.FIFFV_COIL_VV_PLANAR_T2, + FIFF.FIFFV_COIL_VV_PLANAR_T3, + ), + megmag=( + FIFF.FIFFV_COIL_POINT_MAGNETOMETER, + FIFF.FIFFV_COIL_VV_MAG_W, + FIFF.FIFFV_COIL_VV_MAG_T1, + FIFF.FIFFV_COIL_VV_MAG_T2, + FIFF.FIFFV_COIL_VV_MAG_T3, + FIFF.FIFFV_COIL_NM_122, + FIFF.FIFFV_COIL_MAGNES_MAG, + FIFF.FIFFV_COIL_BABY_MAG, + ), + megrefmag=( + FIFF.FIFFV_COIL_KIT_REF_MAG, + FIFF.FIFFV_COIL_CTF_REF_MAG, + FIFF.FIFFV_COIL_MAGNES_REF_MAG, + FIFF.FIFFV_COIL_BABY_REF_MAG, + FIFF.FIFFV_COIL_BABY_REF_MAG2, + FIFF.FIFFV_COIL_ARTEMIS123_REF_MAG, + FIFF.FIFFV_COIL_MAGNES_REF_MAG, + ), + eeg=(FIFF.FIFFV_COIL_EEG,), + misc=(FIFF.FIFFV_COIL_NONE,), + ) + + +def coil_type(info, idx, ch_type="n/a"): + """Get coil type. + + Parameters + ---------- + info : dict + Measurement info + idx : int + Index of channel + ch_type : str + Channel type to fall back upon if a more specific + type is not found + + Returns + ------- + type : 'meggradaxial' | 'megrefgradaxial' | 'meggradplanar' + 'megmag' | 'megrefmag' | 'eeg' | 'misc' + Type of coil + + """ + ch = info["chs"][idx] + for key, values in get_coil_types().items(): + if ch["coil_type"] in values: + return key + return ch_type diff --git a/mne-bids-0.15/mne_bids/read.py b/mne-bids-0.15/mne_bids/read.py new file mode 100644 index 0000000..cf91f43 --- /dev/null +++ b/mne-bids-0.15/mne_bids/read.py @@ -0,0 +1,1183 @@ +"""Check whether a file format is supported by BIDS and then load it.""" + +# Authors: Mainak Jas +# Alexandre Gramfort +# Teon Brooks +# Chris Holdgraf +# Stefan Appelhoff +# +# License: BSD-3-Clause +import json +import os +import os.path as op +import re +from datetime import datetime, timezone +from difflib import get_close_matches +from pathlib import Path + +import mne +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.config import ( + ALLOWED_DATATYPE_EXTENSIONS, + ANNOTATIONS_TO_KEEP, + _map_options, + reader, +) +from mne_bids.dig import _read_dig_bids +from mne_bids.path import ( + BIDSPath, + _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( + raw_path, + electrode=None, + hsp=None, + hpi=None, + allow_maxshield=False, + config_path=None, + **kwargs, +): + """Read a raw file into MNE, making inferences based on extension.""" + _, ext = _parse_ext(raw_path) + + # KIT systems + if ext in [".con", ".sqd"]: + raw = io.read_raw_kit( + raw_path, elp=electrode, hsp=hsp, mrk=hpi, preload=False, **kwargs + ) + + # BTi systems + elif ext == ".pdf": + raw = io.read_raw_bti( + pdf_fname=raw_path, + config_fname=config_path, + head_shape_fname=hsp, + preload=False, + **kwargs, + ) + + elif ext == ".fif": + raw = reader[ext](raw_path, allow_maxshield, **kwargs) + + elif ext in [".ds", ".vhdr", ".set", ".edf", ".bdf", ".EDF", ".snirf", ".cdt"]: + raw_path = Path(raw_path) + raw = reader[ext](raw_path, **kwargs) + + # MEF and NWB are allowed, but not yet implemented + elif ext in [".mef", ".nwb"]: + raise ValueError( + f'Got "{ext}" as extension. This is an allowed ' + f"extension but there is no IO support for this " + f"file format yet." + ) + + # No supported data found ... + # --------------------------- + else: + raise ValueError( + f"Raw file name extension must be one " + f"of {ALLOWED_DATATYPE_EXTENSIONS}\n" + f"Got {ext}" + ) + return raw + + +def _read_events(events, event_id, raw, bids_path=None): + """Retrieve events (for use in *_events.tsv) from FIFF/array & Annotations. + + Parameters + ---------- + events : path-like | np.ndarray | None + If a string, a path to an events file. If an array, an MNE events array + (shape n_events, 3). If None, events will be generated from + ``raw.annotations``. + event_id : dict | None + The event id dict used to create a 'trial_type' column in events.tsv, + mapping a description key to an integer-valued event code. + raw : mne.io.Raw + The data as MNE-Python Raw object. + bids_path : BIDSPath | None + Can be used to determine if the data is a resting-state or empty-room + recording, and will suppress a warning about missing events in this + case. + + Returns + ------- + all_events : np.ndarray, shape = (n_events, 3) + The first column contains the event time in samples and the third + column contains the event id. The second column is ignored for now but + typically contains the value of the trigger channel either immediately + before the event or immediately after. + all_dur : np.ndarray, shape (n_events,) + The event durations in seconds. + all_desc : dict + A dictionary with the keys corresponding to the event descriptions and + the values to the event IDs. + + """ + # retrieve events + if isinstance(events, np.ndarray): + if events.ndim != 2: + raise ValueError("Events must have two dimensions, " f"found {events.ndim}") + if events.shape[1] != 3: + raise ValueError( + "Events must have second dimension of length 3, " + f"found {events.shape[1]}" + ) + events = events + elif events is None: + events = np.empty(shape=(0, 3), dtype=int) + else: + events = read_events(events).astype(int) + + if raw.annotations: + if event_id is None: + logger.info( + "The provided raw data contains annotations, but you did not " + 'pass an "event_id" mapping from annotation descriptions to ' + "event codes. We will generate arbitrary event codes. " + 'To specify custom event codes, please pass "event_id".' + ) + else: + special_annots = {"BAD_ACQ_SKIP"} + desc_without_id = sorted( + set(raw.annotations.description) - set(event_id.keys()) + ) + # auto-add entries to `event_id` for "special" annotation values + # (but only if they're needed) + if set(desc_without_id) & special_annots: + for annot in special_annots: + # use a value guaranteed to not be in use + event_id = {annot: max(event_id.values()) + 90000} | event_id + # remove the "special" annots from the list of problematic annots + desc_without_id = sorted(set(desc_without_id) - special_annots) + if desc_without_id: + raise ValueError( + f"The provided raw data contains annotations, but " + f'"event_id" does not contain entries for all annotation ' + f"descriptions. The following entries are missing: " + f'{", ".join(desc_without_id)}' + ) + + # If we have events, convert them to Annotations so they can be easily + # merged with existing Annotations. + if events.size > 0: + ids_without_desc = set(events[:, 2]) - set(event_id.values()) + if ids_without_desc: + raise ValueError( + f"No description was specified for the following event(s): " + f'{", ".join([str(x) for x in sorted(ids_without_desc)])}. ' + f"Please add them to the event_id dictionary, or drop them " + f"from the events array." + ) + + # Append events to raw.annotations. All event onsets are relative to + # measurement beginning. + id_to_desc_map = dict(zip(event_id.values(), event_id.keys())) + # We don't pass `first_samp`, as set_annotations() below will take + # care of this shift automatically. + new_annotations = mne.annotations_from_events( + events=events, + sfreq=raw.info["sfreq"], + event_desc=id_to_desc_map, + orig_time=raw.annotations.orig_time, + ) + + raw = raw.copy() # Don't alter the original. + annotations = raw.annotations.copy() + + # We use `+=` here because `Annotations.__iadd__()` does the right + # thing and also performs a sanity check on `Annotations.orig_time`. + annotations += new_annotations + raw.set_annotations(annotations) + del id_to_desc_map, annotations, new_annotations + + # Now convert the Annotations to events. + all_events, all_desc = events_from_annotations( + raw, + event_id=event_id, + regexp=None, # Include `BAD_` and `EDGE_` Annotations, too. + ) + all_dur = raw.annotations.duration + + # Warn about missing events if not rest or empty-room data + if (all_events.size == 0 and bids_path.task is not None) and ( + not bids_path.task.startswith("rest") + or not (bids_path.subject == "emptyroom" and bids_path.task == "noise") + ): + warn( + "No events found or provided. Please add annotations to the raw " + "data, or provide the events and event_id parameters. For " + "resting state data, BIDS recommends naming the task using " + 'labels beginning with "rest".' + ) + + return all_events, all_dur, all_desc + + +def _verbose_list_index(lst, val, *, allow_all=False): + # try to "return lst.index(val)" for list of str, but be more + # informative/verbose when it fails + try: + return lst.index(val) + except ValueError as exc: + # Use str cast here to deal with pathlib.Path instances + extra = get_close_matches(str(val), [str(ll) for ll in lst]) + if allow_all and not extra: + extra = lst + extra = f". Did you mean one of {extra}?" if extra else "" + raise ValueError(f"{exc}{extra}") from None + + +def _handle_participants_reading(participants_fname, raw, subject): + participants_tsv = _from_tsv(participants_fname) + subjects = participants_tsv["participant_id"] + row_ind = _verbose_list_index(subjects, subject, allow_all=True) + raw.info["subject_info"] = dict() # start from scratch + + # set data from participants tsv into subject_info + for col_name, value in participants_tsv.items(): + if col_name in ("sex", "hand"): + value = _map_options( + what=col_name, key=value[row_ind], fro="bids", to="mne" + ) + # We don't know how to translate to MNE, so skip. + if value is None: + if col_name == "sex": + info_str = "subject sex" + else: + info_str = "subject handedness" + warn( + f'Unable to map "{col_name}" value "{value}" to MNE. ' + f"Not setting {info_str}." + ) + elif col_name in ("height", "weight"): + try: + value = float(value[row_ind]) + except ValueError: + value = None + else: + if value[row_ind] == "n/a": + value = None + else: + value = value[row_ind] + + # add data into raw.Info + key = "his_id" if col_name == "participant_id" else col_name + if value is not None: + assert key not in raw.info["subject_info"] + raw.info["subject_info"][key] = value + + return raw + + +def _handle_scans_reading(scans_fname, raw, bids_path): + """Read associated scans.tsv and set meas_date.""" + scans_tsv = _from_tsv(scans_fname) + fname = bids_path.fpath.name + + if fname.endswith(".pdf"): + # for BTi files, the scan is an entire directory + fname = fname.split(".")[0] + + # get the row corresponding to the file + # use string concatenation instead of os.path + # to work nicely with windows + data_fname = Path(bids_path.datatype) / fname + fnames = scans_tsv["filename"] + fnames = [Path(fname) for fname in fnames] + if "acq_time" in scans_tsv: + acq_times = scans_tsv["acq_time"] + else: + acq_times = ["n/a"] * len(fnames) + + # There are three possible extensions for BrainVision + # First gather all the possible extensions + acq_suffixes = set(fname.suffix for fname in fnames) + # Add the filename extension for the bids folder + acq_suffixes.add(Path(data_fname).suffix) + + if all(suffix in (".vhdr", ".eeg", ".vmrk") for suffix in acq_suffixes): + ext = fnames[0].suffix + data_fname = Path(data_fname).with_suffix(ext) + row_ind = _verbose_list_index(fnames, data_fname) + + # check whether all split files have the same acq_time + # and throw an error if they don't + if "_split-" in fname: + split_idx = fname.find("split-") + pattern = re.compile( + bids_path.datatype + + "/" + + bids_path.basename[:split_idx] + + r"split-\d+_" + + bids_path.datatype + + bids_path.fpath.suffix + ) + split_fnames = list(filter(lambda x: pattern.match(x.as_posix()), fnames)) + split_acq_times = [] + for split_f in split_fnames: + split_acq_times.append(acq_times[_verbose_list_index(fnames, split_f)]) + if len(set(split_acq_times)) != 1: + raise ValueError("Split files must have the same acq_time.") + + # extract the acquisition time from scans file + acq_time = acq_times[row_ind] + if acq_time != "n/a": + # BIDS allows the time to be stored in UTC with a zero time-zone offset, as + # indicated by a trailing "Z" in the datetime string. If the "Z" is missing, the + # time is represented as "local" time. We have no way to know what the local + # time zone is at the *acquisition* site; so we simply assume the same time zone + # as the user's current system (this is what the spec demands anyway). + acq_time_is_utc = acq_time.endswith("Z") + + # microseconds part in the acquisition time is optional; add it if missing + if "." not in acq_time: + if acq_time_is_utc: + acq_time = acq_time.replace("Z", ".0Z") + else: + acq_time += ".0" + + date_format = "%Y-%m-%dT%H:%M:%S.%f" + if acq_time_is_utc: + date_format += "Z" + + acq_time = datetime.strptime(acq_time, date_format) + + if acq_time_is_utc: + # Enforce setting timezone to UTC without additonal conversion + acq_time = acq_time.replace(tzinfo=timezone.utc) + else: + # Convert time offset to UTC + acq_time = acq_time.astimezone(timezone.utc) + + logger.debug( + f"Loaded {scans_fname} scans file to set " f"acq_time as {acq_time}." + ) + # First set measurement date to None and then call call anonymize() to + # remove any traces of the measurement date we wish + # to replace – it might lurk out in more places than just + # raw.info['meas_date'], e.g. in info['meas_id]['secs'] and in + # info['file_id'], which are not affected by set_meas_date(). + # The combined use of set_meas_date(None) and anonymize() is suggested + # by the MNE documentation, and in fact we cannot load e.g. OpenNeuro + # ds003392 without this combination. + raw.set_meas_date(None) + raw.anonymize(daysback=None, keep_his=True) + raw.set_meas_date(acq_time) + + return raw + + +def _handle_info_reading(sidecar_fname, raw): + """Read associated sidecar JSON and populate raw. + + Handle PowerLineFrequency of recording. + """ + 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 + json_linefreq = sidecar_json.get("PowerLineFrequency") + raw_linefreq = raw.info["line_freq"] + + # If both are defined, warn if there is a conflict, else all is fine + if (json_linefreq is not None) and (raw_linefreq is not None): + if json_linefreq != raw_linefreq: + msg = ( + f"Line frequency in sidecar JSON does not match the info " + f"data structure of the mne.Raw object:\n" + f"Sidecar JSON is -> {json_linefreq}\n" + f"Raw is -> {raw_linefreq}\n\n" + ) + + if json_linefreq == "n/a": + msg += "Defaulting to the info from mne.Raw object." + raw.info["line_freq"] = raw_linefreq + else: + msg += "Defaulting to the info from sidecar JSON." + raw.info["line_freq"] = json_linefreq + + warn(msg) + + # Else, try to use JSON, fall back on mne.Raw + elif (json_linefreq is not None) and (json_linefreq != "n/a"): + raw.info["line_freq"] = json_linefreq + else: + pass # line freq is either defined or None in mne.Raw + + # get cHPI info + chpi = sidecar_json.get("ContinuousHeadLocalization") + if chpi is None: + # no cHPI info in the sidecar – leave raw.info unchanged + pass + elif chpi is True: + from mne.io.ctf import RawCTF + from mne.io.kit.kit import RawKIT + + msg = ( + "Cannot verify that the cHPI frequencies from " + "the MEG JSON sidecar file correspond to the raw data{}" + ) + + if isinstance(raw, RawCTF): + # Pick channels corresponding to the cHPI positions + hpi_picks = pick_channels_regexp(raw.info["ch_names"], "HLC00[123][123].*") + if len(hpi_picks) != 9: + raise ValueError( + f"Could not find all cHPI channels that we expected for " + f"CTF data. Expected: 9, found: {len(hpi_picks)}" + ) + logger.info(msg.format(" for CTF files.")) + + elif isinstance(raw, RawKIT): + logger.info(msg.format(" for KIT files.")) + + elif "HeadCoilFrequency" in sidecar_json: + hpi_freqs_json = sidecar_json["HeadCoilFrequency"] + try: + hpi_freqs_raw, _, _ = mne.chpi.get_chpi_info(raw.info) + except ValueError: + logger.info(msg.format(".")) + else: + # XXX: Set chpi info in mne.Raw to what is in the sidecar + if not np.allclose(hpi_freqs_json, hpi_freqs_raw): + warn( + f"The cHPI coil frequencies in the sidecar file " + f"{sidecar_fname}:\n {hpi_freqs_json}\n " + f"differ from what is stored in the raw data:\n" + f" {hpi_freqs_raw}.\n" + f"Defaulting to the info from mne.Raw object." + ) + else: + addmsg = ( + ".\n(Because no 'HeadCoilFrequency' data was found in the sidecar.)" + ) + logger.info(msg.format(addmsg)) + + else: + if raw.info["hpi_subsystem"]: + logger.info( + "Dropping cHPI information stored in raw data, " + "following specification in sidecar file" + ) + with raw.info._unlock(): + raw.info["hpi_subsystem"] = None + raw.info["hpi_meas"] = [] + + return raw + + +def _handle_events_reading(events_fname, raw): + """Read associated events.tsv and populate raw. + + Handle onset, duration, and description of each event. + """ + logger.info(f"Reading events from {events_fname}.") + events_dict = _from_tsv(events_fname) + + # Get the descriptions of the events + if "trial_type" in events_dict: + trial_type_col_name = "trial_type" + elif "stim_type" in events_dict: # Backward-compat with old datasets. + trial_type_col_name = "stim_type" + warn( + f'The events file, {events_fname}, contains a "stim_type" ' + f'column. This column should be renamed to "trial_type" for ' + f"BIDS compatibility." + ) + else: + trial_type_col_name = None + + if trial_type_col_name is not None: + # Drop events unrelated to a trial type + events_dict = _drop(events_dict, "n/a", trial_type_col_name) + + if "value" in events_dict: + # Check whether the `trial_type` <> `value` mapping is unique. + trial_types = events_dict[trial_type_col_name] + values = np.asarray(events_dict["value"], dtype=str) + for trial_type in np.unique(trial_types): + idx = np.where(trial_type == np.atleast_1d(trial_types))[0] + matching_values = values[idx] + + if len(np.unique(matching_values)) > 1: + # Event type descriptors are ambiguous; create hierarchical + # event descriptors. + logger.info( + f'The event "{trial_type}" refers to multiple event ' + f"values. Creating hierarchical event names." + ) + for ii in idx: + value = values[ii] + value = "na" if value == "n/a" else value + new_name = f"{trial_type}/{value}" + logger.info( + f" Renaming event: {trial_type} -> " f"{new_name}" + ) + trial_types[ii] = new_name + descriptions = np.asarray(trial_types, dtype=str) + else: + descriptions = np.asarray(events_dict[trial_type_col_name], dtype=str) + elif "value" in events_dict: + # If we don't have a proper description of the events, perhaps we have + # at least an event value? + # Drop events unrelated to value + events_dict = _drop(events_dict, "n/a", "value") + descriptions = np.asarray(events_dict["value"], dtype=str) + + # Worst case, we go with 'n/a' for all events + else: + descriptions = np.array(["n/a"] * len(events_dict["onset"]), dtype=str) + + # Deal with "n/a" strings before converting to float + onsets = np.array( + [np.nan if on == "n/a" else on for on in events_dict["onset"]], dtype=float + ) + durations = np.array( + [0 if du == "n/a" else du for du in events_dict["duration"]], dtype=float + ) + + # Keep only events where onset is known + good_events_idx = ~np.isnan(onsets) + onsets = onsets[good_events_idx] + durations = durations[good_events_idx] + descriptions = descriptions[good_events_idx] + del good_events_idx + + # Add events as Annotations, but keep essential Annotations present in + # raw file + annot_from_raw = raw.annotations.copy() + + annot_from_events = mne.Annotations( + onset=onsets, duration=durations, description=descriptions + ) + raw.set_annotations(annot_from_events) + + annot_idx_to_keep = [ + idx + for idx, descr in enumerate(annot_from_raw.description) + if descr in ANNOTATIONS_TO_KEEP + ] + annot_to_keep = annot_from_raw[annot_idx_to_keep] + + if len(annot_to_keep): + raw.set_annotations(raw.annotations + annot_to_keep) + + return raw + + +def _get_bads_from_tsv_data(tsv_data): + """Extract names of bads from data read from channels.tsv.""" + idx = [] + for ch_idx, status in enumerate(tsv_data["status"]): + if status.lower() == "bad": + idx.append(ch_idx) + + bads = [tsv_data["name"][i] for i in idx] + return bads + + +def _handle_channels_reading(channels_fname, raw): + """Read associated channels.tsv and populate raw. + + Updates status (bad) and types of channels. + """ + logger.info(f"Reading channel info from {channels_fname}.") + channels_dict = _from_tsv(channels_fname) + ch_names_tsv = channels_dict["name"] + + # Now we can do some work. + # The "type" column is mandatory in BIDS. We can use it to set channel + # types in the raw data using a mapping between channel types + channel_type_bids_mne_map = dict() + + # Get the best mapping we currently have from BIDS to MNE nomenclature + bids_to_mne_ch_types = _get_ch_type_mapping(fro="bids", to="mne") + ch_types_json = channels_dict["type"] + for ch_name, ch_type in zip(ch_names_tsv, ch_types_json): + # We don't map MEG channels for now, as there's no clear 1:1 mapping + # from BIDS to MNE coil types. + if ch_type.upper() in ( + "MEGGRADAXIAL", + "MEGMAG", + "MEGREFGRADAXIAL", + "MEGGRADPLANAR", + "MEGREFMAG", + "MEGOTHER", + ): + continue + + # Try to map from BIDS nomenclature to MNE, leave channel type + # untouched if we are uncertain + updated_ch_type = bids_to_mne_ch_types.get(ch_type, None) + + if updated_ch_type is None: + # XXX Try again with uppercase spelling – this should be removed + # XXX once https://github.com/bids-standard/bids-validator/issues/1018 # noqa:E501 + # XXX has been resolved. + # XXX x-ref https://github.com/mne-tools/mne-bids/issues/481 + updated_ch_type = bids_to_mne_ch_types.get(ch_type.upper(), None) + if updated_ch_type is not None: + msg = ( + "The BIDS dataset contains channel types in lowercase " + "spelling. This violates the BIDS specification and " + "will raise an error in the future." + ) + warn(msg) + + if updated_ch_type is None: + # We don't have an appropriate mapping, so make it a "misc" channel + channel_type_bids_mne_map[ch_name] = "misc" + warn( + f'No BIDS -> MNE mapping found for channel type "{ch_type}". ' + f'Type of channel "{ch_name}" will be set to "misc".' + ) + else: + # We found a mapping, so use it + channel_type_bids_mne_map[ch_name] = updated_ch_type + + # Special handling for (synthesized) stimulus channel + synthesized_stim_ch_name = "STI 014" + if ( + synthesized_stim_ch_name in raw.ch_names + and synthesized_stim_ch_name not in ch_names_tsv + ): + logger.info( + f'The stimulus channel "{synthesized_stim_ch_name}" is present in ' + f"the raw data, but not included in channels.tsv. Removing the " + f"channel." + ) + raw.drop_channels([synthesized_stim_ch_name]) + + # Rename channels in loaded Raw to match those read from the BIDS sidecar + if len(ch_names_tsv) != len(raw.ch_names): + warn( + f"The number of channels in the channels.tsv sidecar file " + f"({len(ch_names_tsv)}) does not match the number of channels " + f"in the raw data file ({len(raw.ch_names)}). Will not try to " + f"set channel names." + ) + else: + raw.rename_channels(dict(zip(raw.ch_names, ch_names_tsv))) + + # Set the channel types in the raw data according to channels.tsv + channel_type_bids_mne_map_available_channels = { + ch_name: ch_type + for ch_name, ch_type in channel_type_bids_mne_map.items() + if ch_name in raw.ch_names + } + ch_diff = set(channel_type_bids_mne_map.keys()) - set( + channel_type_bids_mne_map_available_channels.keys() + ) + if ch_diff: + warn( + f"Cannot set channel type for the following channels, as they " + f'are missing in the raw data: {", ".join(sorted(ch_diff))}' + ) + raw.set_channel_types(channel_type_bids_mne_map_available_channels) + + # Set bad channels based on _channels.tsv sidecar + if "status" in channels_dict: + bads_tsv = _get_bads_from_tsv_data(channels_dict) + bads_avail = [ch_name for ch_name in bads_tsv if ch_name in raw.ch_names] + + ch_diff = set(bads_tsv) - set(bads_avail) + if ch_diff: + warn( + f'Cannot set "bad" status for the following channels, as ' + f"they are missing in the raw data: " + f'{", ".join(sorted(ch_diff))}' + ) + + raw.info["bads"] = bads_avail + + return raw + + +@verbose +def read_raw_bids(bids_path, extra_params=None, verbose=None): + """Read BIDS compatible data. + + Will attempt to read associated events.tsv and channels.tsv files to + populate the returned raw object with raw.annotations and raw.info['bads']. + + Parameters + ---------- + bids_path : BIDSPath + The file to read. The :class:`mne_bids.BIDSPath` instance passed here + **must** have the ``.root`` attribute set. The ``.datatype`` attribute + **may** be set. If ``.datatype`` is not set and only one data type + (e.g., only EEG or MEG data) is present in the dataset, it will be + selected automatically. + + .. note:: + If ``bids_path`` points to a symbolic link of a ``.fif`` file + without a ``split`` entity, the link will be resolved before + reading. + + extra_params : None | dict + Extra parameters to be passed to MNE read_raw_* functions. + Note that the ``exclude`` parameter, which is supported by some + MNE-Python readers, is not supported; instead, you need to subset + your channels **after** reading. + %(verbose)s + + Returns + ------- + raw : mne.io.Raw + The data as MNE-Python Raw object. + + Raises + ------ + RuntimeError + If multiple recording data types are present in the dataset, but + ``datatype=None``. + + RuntimeError + If more than one data files exist for the specified recording. + + RuntimeError + If no data file in a supported format can be located. + + ValueError + If the specified ``datatype`` cannot be found in the dataset. + + """ + if not isinstance(bids_path, BIDSPath): + raise RuntimeError( + '"bids_path" must be a BIDSPath object. Please ' + "instantiate using mne_bids.BIDSPath()." + ) + + bids_path = bids_path.copy() + sub = bids_path.subject + ses = bids_path.session + bids_root = bids_path.root + datatype = bids_path.datatype + suffix = bids_path.suffix + + # check root available + if bids_root is None: + raise ValueError( + 'The root of the "bids_path" must be set. ' + 'Please use `bids_path.update(root="")` ' + "to set the root of the BIDS folder to read." + ) + + # infer the datatype and suffix if they are not present in the BIDSPath + if datatype is None: + datatype = _infer_datatype(root=bids_root, sub=sub, ses=ses) + bids_path.update(datatype=datatype) + if suffix is None: + bids_path.update(suffix=datatype) + + if bids_path.fpath.suffix == ".pdf": + bids_raw_folder = bids_path.directory / f"{bids_path.basename}" + + # try to find the processed data file ("pdf") + # see: https://www.fieldtriptoolbox.org/getting_started/bti/ + bti_pdf_patterns = ["0", "c,rf*", "hc,rf*", "e,rf*"] + pdf_list = [] + for pattern in bti_pdf_patterns: + pdf_list += sorted(bids_raw_folder.glob(pattern)) + + if len(pdf_list) == 0: + raise RuntimeError( + "Cannot find BTi 'processed data file' (pdf). Please open an issue on " + "the mne-bids repository to discuss with the developers:\n\n" + "https://github.com/mne-tools/mne-bids/issues/new/choose\n\n" + f"No matches for following patterns:\n\n{bti_pdf_patterns}\n\n" + f"In: {bids_raw_folder}" + ) + elif len(pdf_list) > 1: # pragma: no cover + logger.warn( + "Found more than one BTi 'processed data file' (pdf). " + f"Picking:\n\n {pdf_list[0]}\n\nout of the options:\n\n" + f"{pdf_list}\n\n" + ) + raw_path = pdf_list[0] + config_path = bids_raw_folder / "config" + else: + raw_path = bids_path.fpath + # Resolve for FIFF files + if ( + raw_path.suffix == ".fif" + and bids_path.split is None + and raw_path.is_symlink() + ): + target_path = raw_path.resolve() + logger.info(f"Resolving symbolic link: " f"{raw_path} -> {target_path}") + raw_path = target_path + config_path = None + + # Special-handle EDF filenames: we accept upper- and lower-case extensions + if raw_path.suffix.lower() == ".edf": + for extension in (".edf", ".EDF"): + candidate_path = raw_path.with_suffix(extension) + if candidate_path.exists(): + raw_path = candidate_path + break + + if not raw_path.exists(): + options = os.listdir(bids_path.directory) + matches = get_close_matches(bids_path.basename, options) + msg = f"File does not exist:\n{raw_path}" + if matches: + msg += ( + "\nDid you mean one of:\n" + + "\n".join(matches) + + "\ninstead of:\n" + + bids_path.basename + ) + raise FileNotFoundError(msg) + if config_path is not None and not config_path.exists(): + raise FileNotFoundError(f"config directory not found: {config_path}") + + if extra_params is None: + extra_params = dict() + elif "exclude" in extra_params: + del extra_params["exclude"] + logger.info('"exclude" parameter is not supported by read_raw_bids') + + if raw_path.suffix == ".fif" and "allow_maxshield" not in extra_params: + extra_params["allow_maxshield"] = True + raw = _read_raw( + raw_path, + electrode=None, + hsp=None, + hpi=None, + config_path=config_path, + **extra_params, + ) + + # Try to find an associated events.tsv to get information about the + # events in the recorded data + if ( + bids_path.subject == "emptyroom" and bids_path.task == "noise" + ) or bids_path.task.startswith("rest"): + on_error = "ignore" + else: + on_error = "warn" + + events_fname = _find_matching_sidecar( + bids_path, suffix="events", extension=".tsv", on_error=on_error + ) + + if events_fname is not None: + raw = _handle_events_reading(events_fname, raw) + + # Try to find an associated channels.tsv to get information about the + # status and type of present channels + channels_fname = _find_matching_sidecar( + bids_path, suffix="channels", extension=".tsv", on_error="warn" + ) + if channels_fname is not None: + raw = _handle_channels_reading(channels_fname, raw) + + # Try to find an associated electrodes.tsv and coordsystem.json + # to get information about the status and type of present channels + on_error = "warn" if suffix == "ieeg" else "ignore" + electrodes_fname = _find_matching_sidecar( + bids_path, suffix="electrodes", extension=".tsv", on_error=on_error + ) + coordsystem_fname = _find_matching_sidecar( + bids_path, suffix="coordsystem", extension=".json", on_error=on_error + ) + if electrodes_fname is not None: + if coordsystem_fname is None: + raise RuntimeError( + f"BIDS mandates that the coordsystem.json " + f"should exist if electrodes.tsv does. " + f"Please create coordsystem.json for" + f"{bids_path.basename}" + ) + if datatype in ["meg", "eeg", "ieeg"]: + _read_dig_bids( + electrodes_fname, coordsystem_fname, raw=raw, datatype=datatype + ) + + # Try to find an associated sidecar .json to get information about the + # recording snapshot + sidecar_fname = _find_matching_sidecar( + bids_path, suffix=datatype, extension=".json", on_error="warn" + ) + if sidecar_fname is not None: + raw = _handle_info_reading(sidecar_fname, raw) + + # read in associated scans filename + scans_fname = BIDSPath( + subject=bids_path.subject, + session=bids_path.session, + suffix="scans", + extension=".tsv", + root=bids_path.root, + ).fpath + + if scans_fname.exists(): + raw = _handle_scans_reading(scans_fname, raw, bids_path) + + # read in associated subject info from participants.tsv + participants_tsv_path = bids_root / "participants.tsv" + subject = f"sub-{bids_path.subject}" + if op.exists(participants_tsv_path): + raw = _handle_participants_reading( + participants_fname=participants_tsv_path, raw=raw, subject=subject + ) + else: + warn(f"participants.tsv file not found for {raw_path}") + raw.info["subject_info"] = dict() + + assert raw.annotations.orig_time == raw.info["meas_date"] + return raw + + +@verbose +def get_head_mri_trans( + bids_path, + extra_params=None, + t1_bids_path=None, + fs_subject=None, + fs_subjects_dir=None, + *, + kind=None, + verbose=None, +): + """Produce transformation matrix from MEG and MRI landmark points. + + Will attempt to read the landmarks of Nasion, LPA, and RPA from the sidecar + files of (i) the MEG and (ii) the T1-weighted MRI data. The two sets of + points will then be used to calculate a transformation matrix from head + coordinates to MRI coordinates. + + .. note:: The MEG and MRI data need **not** necessarily be stored in the + same session or even in the same BIDS dataset. See the + ``t1_bids_path`` parameter for details. + + Parameters + ---------- + bids_path : BIDSPath + The path of the electrophysiology recording. If ``datatype`` and + ``suffix`` are not present, they will be set to ``'meg'``, and a + warning will be raised. + + .. versionchanged:: 0.10 + A warning is raised it ``datatype`` or ``suffix`` are not set. + extra_params : None | dict + Extra parameters to be passed to :func:`mne.io.read_raw` when reading + the MEG file. + t1_bids_path : BIDSPath | None + If ``None`` (default), will try to discover the T1-weighted MRI file + based on the name and location of the MEG recording specified via the + ``bids_path`` parameter. Alternatively, you explicitly specify which + T1-weighted MRI scan to use for extraction of MRI landmarks. To do + that, pass a :class:`mne_bids.BIDSPath` pointing to the scan. + Use this parameter e.g. if the T1 scan was recorded during a different + session than the MEG. It is even possible to point to a T1 image stored + in an entirely different BIDS dataset than the MEG data. + fs_subject : str + The subject identifier used for FreeSurfer. + + .. versionchanged:: 0.10 + Does not default anymore to ``bids_path.subject`` if ``None``. + fs_subjects_dir : path-like | None + The FreeSurfer subjects directory. If ``None``, defaults to the + ``SUBJECTS_DIR`` environment variable. + + .. versionadded:: 0.8 + kind : str | None + The suffix of the anatomical landmark names in the JSON sidecar. + A suffix might be present e.g. to distinguish landmarks between + sessions. If provided, should not include a leading underscore ``_``. + For example, if the landmark names in the JSON sidecar file are + ``LPA_ses-1``, ``RPA_ses-1``, ``NAS_ses-1``, you should pass + ``'ses-1'`` here. + If ``None``, no suffix is appended, the landmarks named + ``Nasion`` (or ``NAS``), ``LPA``, and ``RPA`` will be used. + + .. versionadded:: 0.10 + %(verbose)s + + Returns + ------- + trans : mne.transforms.Transform + The data transformation matrix from head to MRI coordinates. + """ + nib = _import_nibabel("get a head to MRI transform") + + if not isinstance(bids_path, BIDSPath): + raise RuntimeError( + '"bids_path" must be a BIDSPath object. Please ' + "instantiate using mne_bids.BIDSPath()." + ) + + # check root available + meg_bids_path = bids_path.copy() + del bids_path + if meg_bids_path.root is None: + raise ValueError( + 'The root of the "bids_path" must be set. ' + 'Please use `bids_path.update(root="")` ' + "to set the root of the BIDS folder to read." + ) + + # if the bids_path is underspecified, only get info for MEG data + if meg_bids_path.datatype is None: + meg_bids_path.datatype = "meg" + warn( + 'bids_path did not have a datatype set. Assuming "meg". This ' + "will raise an exception in the future.", + module="mne_bids", + category=DeprecationWarning, + ) + if meg_bids_path.suffix is None: + meg_bids_path.suffix = "meg" + warn( + 'bids_path did not have a suffix set. Assuming "meg". This ' + "will raise an exception in the future.", + module="mne_bids", + category=DeprecationWarning, + ) + + # Get the sidecar file for MRI landmarks + t1w_bids_path = ( + (meg_bids_path if t1_bids_path is None else t1_bids_path) + .copy() + .update(datatype="anat", suffix="T1w", task=None) + ) + t1w_json_path = _find_matching_sidecar( + bids_path=t1w_bids_path, extension=".json", on_error="ignore" + ) + del t1_bids_path + + if t1w_json_path is not None: + t1w_json_path = Path(t1w_json_path) + + if t1w_json_path is None or not t1w_json_path.exists(): + raise FileNotFoundError( + f"Did not find T1w JSON sidecar file, tried location: " f"{t1w_json_path}" + ) + for extension in (".nii", ".nii.gz"): + t1w_path_candidate = t1w_json_path.with_suffix(extension) + if t1w_path_candidate.exists(): + t1w_bids_path = get_bids_path_from_fname(fname=t1w_path_candidate) + break + + if not t1w_bids_path.fpath.exists(): + raise FileNotFoundError( + f"Did not find T1w recording file, tried location: " + f'{t1w_path_candidate.name.replace(".nii.gz", "")}[.nii, .nii.gz]' + ) + + # Get MRI landmarks from the JSON sidecar + t1w_json = json.loads(t1w_json_path.read_text(encoding="utf-8")) + mri_coords_dict = t1w_json.get("AnatomicalLandmarkCoordinates", dict()) + + # landmarks array: rows: [LPA, NAS, RPA]; columns: [x, y, z] + suffix = f"_{kind}" if kind is not None else "" + mri_landmarks = np.full((3, 3), np.nan) + for landmark_name, coords in mri_coords_dict.items(): + if landmark_name.upper() == ("LPA" + suffix).upper(): + mri_landmarks[0, :] = coords + elif landmark_name.upper() == ("RPA" + suffix).upper(): + mri_landmarks[2, :] = coords + elif ( + landmark_name.upper() == ("NAS" + suffix).upper() + or landmark_name.lower() == ("nasion" + suffix).lower() + ): + mri_landmarks[1, :] = coords + else: + continue + + if np.isnan(mri_landmarks).any(): + raise RuntimeError( + f"Could not extract fiducial points from T1w sidecar file: " + f"{t1w_json_path}\n\n" + f"The sidecar file SHOULD contain a key " + f'"AnatomicalLandmarkCoordinates" pointing to an ' + f'object with the keys "LPA", "NAS", and "RPA". ' + f"Yet, the following structure was found:\n\n" + f"{mri_coords_dict}" + ) + + # The MRI landmarks are in "voxels". We need to convert them to the + # Neuromag RAS coordinate system in order to compare them with MEG + # landmarks. See also: `mne_bids.write.write_anat` + if fs_subject is None: + warn( + 'Passing "fs_subject=None" has been deprecated and will raise ' + "an error in future versions. Please explicitly specify the " + "FreeSurfer subject name.", + DeprecationWarning, + ) + fs_subject = f"sub-{meg_bids_path.subject}" + + fs_subjects_dir = get_subjects_dir(fs_subjects_dir, raise_error=False) + fs_t1_path = Path(fs_subjects_dir) / fs_subject / "mri" / "T1.mgz" + if not fs_t1_path.exists(): + raise ValueError( + f"Could not find {fs_t1_path}. Consider running FreeSurfer's " + f"'recon-all` for subject {fs_subject}." + ) + fs_t1_mgh = nib.load(str(fs_t1_path)) + t1_nifti = nib.load(str(t1w_bids_path.fpath)) + + # Convert to MGH format to access vox2ras method + t1_mgh = nib.MGHImage(t1_nifti.dataobj, t1_nifti.affine) + + # convert to scanner RAS + mri_landmarks = apply_trans(t1_mgh.header.get_vox2ras(), mri_landmarks) + + # convert to FreeSurfer T1 voxels (same scanner RAS as T1) + mri_landmarks = apply_trans(fs_t1_mgh.header.get_ras2vox(), mri_landmarks) + + # now extract transformation matrix and put back to RAS coordinates of MRI + vox2ras_tkr = fs_t1_mgh.header.get_vox2ras_tkr() + mri_landmarks = apply_trans(vox2ras_tkr, mri_landmarks) + mri_landmarks = mri_landmarks * 1e-3 + + # Get MEG landmarks from the raw file + _, ext = _parse_ext(meg_bids_path) + if extra_params is None: + extra_params = dict() + if ext == ".fif": + extra_params["allow_maxshield"] = "yes" + + raw = read_raw_bids(bids_path=meg_bids_path, extra_params=extra_params) + + if ( + raw.get_montage() is None + or raw.get_montage().get_positions() is None + or any( + [ + raw.get_montage().get_positions()[fid_key] is None + for fid_key in ("nasion", "lpa", "rpa") + ] + ) + ): + raise RuntimeError( + f"Could not extract fiducial points from ``raw`` file: " + f"{meg_bids_path}\n\n" + f"The ``raw`` file SHOULD contain digitization points " + "for the nasion and left and right pre-auricular points " + "but none were found" + ) + pos = raw.get_montage().get_positions() + meg_landmarks = np.asarray((pos["lpa"], pos["nasion"], pos["rpa"])) + + # Given the two sets of points, fit the transform + trans_fitted = fit_matched_points(src_pts=meg_landmarks, tgt_pts=mri_landmarks) + trans = mne.transforms.Transform(fro="head", to="mri", trans=trans_fitted) + return trans diff --git a/mne-bids-0.15/mne_bids/report/__init__.py b/mne-bids-0.15/mne_bids/report/__init__.py new file mode 100644 index 0000000..47816cb --- /dev/null +++ b/mne-bids-0.15/mne_bids/report/__init__.py @@ -0,0 +1,3 @@ +"""Create a summary report of the BIDS dataset.""" + +from ._report import make_report diff --git a/mne-bids-0.15/mne_bids/report/_report.py b/mne-bids-0.15/mne_bids/report/_report.py new file mode 100644 index 0000000..cb681c3 --- /dev/null +++ b/mne-bids-0.15/mne_bids/report/_report.py @@ -0,0 +1,538 @@ +"""Make BIDS report from dataset and sidecar files.""" + +# Authors: Adam Li +# +# License: BSD-3-Clause +import json +import os.path as op +import textwrap +from pathlib import Path + +import jinja2 +import numpy as np +from mne.utils import logger, verbose + +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, +) +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" + ) +) + + +def _pretty_str(listed): + # make strings a sequence of ',' and 'and' + if not isinstance(listed, list): + listed = list(listed) + + if len(listed) <= 1: + return ",".join(listed) + return "{}, and {}".format(", ".join(listed[:-1]), listed[-1]) + + +def _range_str(minval, maxval, meanval, stdval, n_unknown, type): + if minval == "n/a": + return "ages all unknown" + + if n_unknown > 0: + unknown_str = f"; {n_unknown} with unknown {type}" + else: + unknown_str = "" + return ( + f"ages ranged from {round(minval, 2)} to {round(maxval, 2)} " + f"(mean = {round(meanval, 2)}, std = {round(stdval, 2)}{unknown_str})" + ) + + +def _summarize_participant_hand(hands): + n_unknown = len([hand for hand in hands if hand == "n/a"]) + + if n_unknown == len(hands): + return "handedness were all unknown" + + n_rhand = len([hand for hand in hands if hand.upper() == "R"]) + n_lhand = len([hand for hand in hands if hand.upper() == "L"]) + n_ambidex = len([hand for hand in hands if hand.upper() == "A"]) + + return ( + f"comprised of {n_rhand} right hand, {n_lhand} left hand " + f"and {n_ambidex} ambidextrous" + ) + + +def _summarize_participant_sex(sexs): + n_unknown = len([sex for sex in sexs if sex == "n/a"]) + + if n_unknown == len(sexs): + return "sex were all unknown" + + n_males = len([sex for sex in sexs if sex.upper() == "M"]) + n_females = len([sex for sex in sexs if sex.upper() == "F"]) + + return f"comprised of {n_males} male and {n_females} female participants" + + +def _length_recording_str(length_recordings): + import numpy as np + + if length_recordings is None: + return "" + + min_record_length = round(np.min(length_recordings), 2) + max_record_length = round(np.max(length_recordings), 2) + mean_record_length = round(np.mean(length_recordings), 2) + std_record_length = round(np.std(length_recordings), 2) + total_record_length = round(sum(length_recordings), 2) + + return ( + f"Recording durations ranged from {min_record_length} to " + f"{max_record_length} seconds " + f"(mean = {mean_record_length}, std = {std_record_length}), " + f"for a total of {total_record_length} seconds of data recorded " + f"over all scans." + ) + + +def _summarize_software_filters(software_filters): + if software_filters in [{}, "n/a"]: + return "" + + msg = "" + for key, value in software_filters.items(): + msg += f"{key}" + + if isinstance(value, dict) and value: + parameters = [] + for param_name, param_value in value.items(): + if param_name and param_value: + parameters.append(f"{param_value} {param_name}") + if parameters: + msg += " with parameters " + msg += ", ".join(parameters) + return msg + + +def _pretty_dict(template_dict): + """Remove problematic blank spaces.""" + for key, val in template_dict.items(): + if val == " ": + template_dict[key] = "n/a" + + +def _summarize_dataset(root): + """Summarize the dataset_desecription.json file. + + Required dataset descriptors include: + - Name + - BIDSVersion + + Added descriptors include: + - Authors + - DOI + + Parameters + ---------- + root : path-like + The path of the root of the BIDS compatible folder. + + Returns + ------- + template_dict : dict + A dictionary of values for various template strings. + """ + dataset_descrip_fpath = op.join(root, "dataset_description.json") + if not op.exists(dataset_descrip_fpath): + return dict() + + # read file and 'REQUIRED' components of it + with open(dataset_descrip_fpath, encoding="utf-8-sig") as fin: + dataset_description = json.load(fin) + + # create dictionary to pass into template string + name = dataset_description["Name"] + bids_version = dataset_description["BIDSVersion"] + authors = dataset_description["Authors"] + template_dict = { + "name": name, + "bids_version": bids_version, + "mne_bids_doi": DOI, + "authors": _pretty_str(authors), + } + _pretty_dict(template_dict) + return template_dict + + +def _summarize_participants_tsv(root): + """Summarize `participants.tsv` file in BIDS root directory. + + Parameters + ---------- + root : path-like + The path of the root of the BIDS compatible folder. + + Returns + ------- + template_dict : dict + A dictionary of values for various template strings. + """ + participants_tsv_fpath = op.join(root, "participants.tsv") + if not op.exists(participants_tsv_fpath): + return dict() + + participants_tsv = _from_tsv(str(participants_tsv_fpath)) + p_ids = participants_tsv["participant_id"] + logger.info(f"Summarizing participants.tsv {participants_tsv_fpath}...") + + # summarize sex count statistics + keys = ["M", "F", "n/a"] + p_sex = participants_tsv.get("sex") + # phrasing works for both sex and gender + p_gender = participants_tsv.get("gender") + sexs = ["n/a"] + if p_sex or p_gender: + # only summarize sex if it conforms to `keys` referenced above + p_sex = p_gender if p_sex is None else p_sex + if all([sex.upper() in keys for sex in p_sex if sex != "n/a"]): + sexs = p_sex + + # summarize hand count statistics + keys = ["R", "L", "A", "n/a"] + p_hands = participants_tsv.get("hand") + hands = ["n/a"] + if p_hands: + # only summarize handedness if it conforms to + # mne-bids handedness + if all([hand.upper() in keys for hand in p_hands if hand != "n/a"]): + hands = p_hands + + # summarize age statistics: mean, std, min, max + p_ages = participants_tsv.get("age") + min_age, max_age = "n/a", "n/a" + mean_age, std_age = "n/a", "n/a" + n_age_unknown = len(p_ages) if p_ages else len(p_ids) + if p_ages: + # only summarize age if they are numerics + if all([age.isnumeric() for age in p_ages if age != "n/a"]): + age_list = [float(age) for age in p_ages if age != "n/a"] + n_age_unknown = len(p_ids) - len(age_list) + if age_list: + min_age, max_age = np.min(age_list), np.max(age_list) + mean_age, std_age = np.mean(age_list), np.std(age_list) + + template_dict = { + "sexs": _summarize_participant_sex(sexs), + "hands": _summarize_participant_hand(hands), + "ages": _range_str(min_age, max_age, mean_age, std_age, n_age_unknown, "age"), + } + return template_dict + + +def _summarize_scans(root, session=None): + """Summarize scans in BIDS root directory. + + Summarizes scans only if there is a *_scans.tsv file. + + Parameters + ---------- + root : path-like + The path of the root of the BIDS compatible folder. + session : str, optional + The session for a item. Corresponds to "ses". + + Returns + ------- + template_dict : dict + A dictionary of values for various template strings. + + """ + root = Path(root) + if session is None: + search_str = "*_scans.tsv" + else: + search_str = f"*ses-{session}" f"*_scans.tsv" + scans_fpaths = list(root.rglob(search_str)) + if len(scans_fpaths) == 0: + warn( + "No *scans.tsv files found. Currently, " + "we do not generate a report without the scans.tsv files." + ) + return dict() + + logger.info(f"Summarizing scans.tsv files {scans_fpaths}...") + + # summarize sidecar.json, channels.tsv template + sidecar_dict = _summarize_sidecar_json(root, scans_fpaths) + channels_dict = _summarize_channels_tsv(root, scans_fpaths) + template_dict = dict() + template_dict.update(**sidecar_dict) + template_dict.update(**channels_dict) + + return template_dict + + +def _summarize_sidecar_json(root, scans_fpaths): + """Summarize scans in BIDS root directory. + + Parameters + ---------- + root : path-like + The path of the root of the BIDS compatible folder. + scans_fpaths : list + A list of all *_scans.tsv files in ``root``. The summary + will occur for all scans listed in the *_scans.tsv files. + + Returns + ------- + template_dict : dict + A dictionary of values for various template strings. + + """ + n_scans = 0 + powerlinefreqs, sfreqs = set(), set() + manufacturers = set() + length_recordings = [] + + # loop through each scan + for scan_fpath in scans_fpaths: + # load in the scans.tsv file + # and read metadata for each scan + scans_tsv = _from_tsv(scan_fpath) + scans = scans_tsv["filename"] + for scan in scans: + # summarize metadata of recordings + bids_path, ext = _parse_ext(scan) + datatype = op.dirname(scan) + if datatype not in ALLOWED_DATATYPES: + continue + + n_scans += 1 + + # convert to BIDSPath + if not isinstance(bids_path, BIDSPath): + bids_path = get_bids_path_from_fname(bids_path) + bids_path.root = root + + # XXX: improve to allow emptyroom + if bids_path.subject == "emptyroom": + continue + + sidecar_fname = _find_matching_sidecar( + bids_path=bids_path, suffix=datatype, extension=".json" + ) + with open(sidecar_fname, encoding="utf-8-sig") as fin: + sidecar_json = json.load(fin) + + # aggregate metadata from each scan + # REQUIRED kwargs + sfreq = sidecar_json["SamplingFrequency"] + powerlinefreq = str(sidecar_json["PowerLineFrequency"]) + software_filters = sidecar_json.get("SoftwareFilters") + if not software_filters: + software_filters = "n/a" + + # RECOMMENDED kwargs + manufacturer = sidecar_json.get("Manufacturer", "n/a") + record_duration = sidecar_json.get("RecordingDuration", "n/a") + + sfreqs.add(str(np.round(sfreq, 2))) + powerlinefreqs.add(str(powerlinefreq)) + if manufacturer != "n/a": + manufacturers.add(manufacturer) + length_recordings.append(record_duration) + + # XXX: length summary is only allowed, if no 'n/a' was found + if any([dur == "n/a" for dur in length_recordings]): + length_recordings = None + + template_dict = { + "n_scans": n_scans, + "manufacturer": _pretty_str(manufacturers), + "sfreq": _pretty_str(sfreqs), + "powerlinefreq": _pretty_str(powerlinefreqs), + "software_filters": _summarize_software_filters(software_filters), + "length_recordings": _length_recording_str(length_recordings), + } + return template_dict + + +def _summarize_channels_tsv(root, scans_fpaths): + """Summarize channels.tsv data in BIDS root directory. + + Currently, summarizes all REQUIRED components of channels + data, and some RECOMMENDED and OPTIONAL components. + + Parameters + ---------- + root : path-like + The path of the root of the BIDS compatible folder. + scans_fpaths : list + A list of all *_scans.tsv files in ``root``. The summary + will occur for all scans listed in the *_scans.tsv files. + + Returns + ------- + template_dict : dict + A dictionary of values for various template strings. + """ + root = Path(root) + + # keep track of channel type, status + ch_status_count = {"bad": [], "good": []} + ch_count = [] + + # loop through each scan + for scan_fpath in scans_fpaths: + # load in the scans.tsv file + # and read metadata for each scan + scans_tsv = _from_tsv(scan_fpath) + scans = scans_tsv["filename"] + for scan in scans: + # summarize metadata of recordings + bids_path, _ = _parse_ext(scan) + datatype = op.dirname(scan) + if datatype not in ["meg", "eeg", "ieeg"]: + continue + + # convert to BIDSPath + if not isinstance(bids_path, BIDSPath): + bids_path = get_bids_path_from_fname(bids_path) + bids_path.root = root + + # XXX: improve to allow emptyroom + if bids_path.subject == "emptyroom": + continue + + channels_fname = _find_matching_sidecar( + bids_path=bids_path, suffix="channels", extension=".tsv" + ) + + # summarize channels.tsv + channels_tsv = _from_tsv(channels_fname) + for status in ch_status_count.keys(): + ch_status = [ch for ch in channels_tsv["status"] if ch == status] + ch_status_count[status].append(len(ch_status)) + ch_count.append(len(channels_tsv["name"])) + + # create summary template strings for status + template_dict = { + "mean_chs": np.mean(ch_count), + "std_chs": np.std(ch_count), + "mean_good_chs": np.mean(ch_status_count["good"]), + "std_good_chs": np.std(ch_status_count["good"]), + "mean_bad_chs": np.mean(ch_status_count["bad"]), + "std_bad_chs": np.std(ch_status_count["bad"]), + } + for key, val in template_dict.items(): + template_dict[key] = round(val, 2) + return template_dict + + +@verbose +def make_report(root, session=None, verbose=None): + """Create a methods paragraph string from BIDS dataset. + + Summarizes the REQUIRED components in the BIDS specification + and also some RECOMMENDED components. Currently, the methods + paragraph summarize the: + + - dataset_description.json file + - (optional) participants.tsv file + - (optional) datatype-agnostic files for (M/I)EEG data, + which reads files from the ``*_scans.tsv`` file. + + Parameters + ---------- + root : path-like + The path of the root of the BIDS compatible folder. + session : str | None + The (optional) session for a item. Corresponds to "ses". + %(verbose)s + + Returns + ------- + paragraph : str + The paragraph wrapped with 80 characters per line + describing the summary of the subjects. + """ + # high level summary + subjects = get_entity_vals(root, entity_key="subject") + sessions = get_entity_vals(root, entity_key="session") + modalities = get_datatypes(root) + + # only summarize allowed modalities (MEG/EEG/iEEG) data + # map them to a pretty looking string + datatype_map = { + "meg": "MEG", + "eeg": "EEG", + "ieeg": "iEEG", + } + modalities = [ + datatype_map[datatype] + for datatype in modalities + if datatype in datatype_map.keys() + ] + + # REQUIRED: dataset_description.json summary + dataset_summary = _summarize_dataset(root) + + # RECOMMENDED: participants summary + participant_summary = _summarize_participants_tsv(root) + + # RECOMMENDED: scans summary + scans_summary = _summarize_scans(root, session=session) + + dataset_agnostic_summary = scans_summary.copy() + dataset_agnostic_summary["system"] = _pretty_str(modalities) + + # turn off 'recommended' report summary + # if files are not available to summarize + if not participant_summary: + participants_info = "" + else: + particpants_info_template = jinja_env.get_template("participants.jinja") + participants_info = particpants_info_template.render(**participant_summary) + logger.info(f"The participant template found: {participants_info}") + + if not scans_summary: + datatype_agnostic_info = "" + else: + datatype_agnostic_template = jinja_env.get_template("datatype_agnostic.jinja") + datatype_agnostic_info = datatype_agnostic_template.render( + **dataset_agnostic_summary + ) + + dataset_summary.update( + { + "n_subjects": len(subjects), + "participants_info": participants_info, + "n_sessions": len(sessions), + "sessions": _pretty_str(sessions), + } + ) + + # XXX: add channel summary for modalities (ieeg, meg, eeg) + # create the content and mne Template + # lower-case templates are "Recommended", + # while upper-case templates are "Required". + + dataset_summary_template = jinja_env.get_template("dataset_summary.jinja") + dataset_summary_info = dataset_summary_template.render(**dataset_summary) + + # Concatenate info and clean the paragraph + paragraph = f"{dataset_summary_info}\n{datatype_agnostic_info}" + paragraph = paragraph.replace("\n", " ") + while " " in paragraph: + paragraph = paragraph.replace(" ", " ") + + return "\n".join(textwrap.wrap(paragraph, width=80)) diff --git a/mne-bids-0.15/mne_bids/report/templates/dataset_summary.jinja b/mne-bids-0.15/mne_bids/report/templates/dataset_summary.jinja new file mode 100644 index 0000000..aada6df --- /dev/null +++ b/mne-bids-0.15/mne_bids/report/templates/dataset_summary.jinja @@ -0,0 +1,13 @@ +{% if name == 'n/a' %}This +{% else %} +The {{ name }} +{% endif %} +dataset was created by {{ authors }} and conforms to BIDS version +{{ bids_version }}. This report was generated with +MNE-BIDS ({{ mne_bids_doi }}). The dataset consists of +{{ n_subjects }} participants ({{ participants_info }}) +{% if n_sessions %} +and {{ n_sessions }} recording sessions: +{{ sessions }}. +{% else %}. +{% endif %} diff --git a/mne-bids-0.15/mne_bids/report/templates/datatype_agnostic.jinja b/mne-bids-0.15/mne_bids/report/templates/datatype_agnostic.jinja new file mode 100644 index 0000000..50cc2a5 --- /dev/null +++ b/mne-bids-0.15/mne_bids/report/templates/datatype_agnostic.jinja @@ -0,0 +1,20 @@ +Data was recorded using an {{ system }} system +{% if manufacturer %} +({{ manufacturer }}) +{% endif %} +sampled at {{ sfreq }} Hz +with line noise at {{ powerlinefreq }} Hz. +{% if software_filters %} +The following software filters were applied during recording: +{{ software_filters }}. +{% endif %} +{% if n_scans > 1 %} +There were {{n_scans}} scans in total. +{% else %} +There was {{n_scans}} scan in total. +{% endif %} +{{ length_recordings }} +For each dataset, there were on average {{mean_chs}} (std = {{std_chs}}) +recording channels per scan, out of which {{mean_good_chs}} +(std = {{std_good_chs}}) were used in analysis +({{mean_bad_chs}} +/- {{std_bad_chs}} were removed from analysis). diff --git a/mne-bids-0.15/mne_bids/report/templates/participants.jinja b/mne-bids-0.15/mne_bids/report/templates/participants.jinja new file mode 100644 index 0000000..4fb1b9c --- /dev/null +++ b/mne-bids-0.15/mne_bids/report/templates/participants.jinja @@ -0,0 +1,3 @@ +{{ sexs }}; +{{hands}}; +{{ages}} diff --git a/mne-bids-0.15/mne_bids/sidecar_updates.py b/mne-bids-0.15/mne_bids/sidecar_updates.py new file mode 100644 index 0000000..0942aa2 --- /dev/null +++ b/mne-bids-0.15/mne_bids/sidecar_updates.py @@ -0,0 +1,389 @@ +"""Update BIDS directory structures and sidecar files meta data.""" +# Authors: Adam Li +# Austin Hurst +# Stefan Appelhoff +# mne-bids developers +# +# License: BSD-3-Clause + +import json +from collections import OrderedDict + +import numpy as np +from mne.channels import DigMontage, make_dig_montage +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 + + +# TODO: add support for tsv files +@verbose +def update_sidecar_json(bids_path, entries, verbose=None): + """Update sidecar files using a dictionary or JSON file. + + Will update metadata fields inside the path defined by + ``bids_path.fpath`` according to the ``entries``. If a + field does not exist in the corresponding sidecar file, + then that field will be created according to the ``entries``. + If a field does exist in the corresponding sidecar file, + then that field will be updated according to the ``entries``. + + For example, if ``InstitutionName`` is not defined in + the sidecar json file, then trying to update + ``InstitutionName`` to ``Martinos Center`` will update + the sidecar json file to have ``InstitutionName`` as + ``Martinos Center``. + + Parameters + ---------- + bids_path : BIDSPath + The set of paths to update. The :class:`mne_bids.BIDSPath` instance + passed here **must** have the ``.root`` attribute set. The + ``.datatype`` attribute **may** be set. If ``.datatype`` is + not set and only one data type (e.g., only EEG or MEG data) + is present in the dataset, it will be + selected automatically. This must uniquely identify + an existing file path, else an error will be raised. + entries : dict | str | pathlib.Path + A dictionary, or JSON file that defines the + sidecar fields and corresponding values to be updated to. + %(verbose)s + + Notes + ----- + This function can only update JSON files. + + Sidecar JSON files include files such as ``*_ieeg.json``, + ``*_coordsystem.json``, ``*_scans.json``, etc. + + You should double check that your update dictionary is correct + for the corresponding sidecar JSON file because it will perform + a dictionary update of the sidecar fields according to + the passed in dictionary overwriting any information that was + previously there. + + Raises + ------ + RuntimeError + If the specified ``bids_path.fpath`` cannot be found + in the dataset. + + RuntimeError + If the ``bids_path.fpath`` does not have ``.json`` + extension. + + Examples + -------- + Update a sidecar JSON file + + >>> from pathlib import Path + >>> root = Path('./mne_bids/tests/data/tiny_bids').absolute() + >>> bids_path = BIDSPath(subject='01', task='rest', session='eeg', + ... suffix='eeg', extension='.json', datatype='eeg', + ... root=root) + >>> entries = {'PowerLineFrequency': 60} + >>> update_sidecar_json(bids_path, entries, verbose=False) + + """ + # get all matching json files + bids_path = bids_path.copy() + if bids_path.extension != ".json": + raise RuntimeError( + 'Only works for ".json" files. The ' + "BIDSPath object passed in has " + f"{bids_path.extension} extension." + ) + + # get the file path + fpath = bids_path.fpath + if not fpath.exists(): + raise RuntimeError(f"Sidecar file does not " f"exist for {fpath}.") + + # sidecar update either from file, or as dictionary + if isinstance(entries, dict): + sidecar_tmp = entries + else: + 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) as tmp_f: + sidecar_json = json.load(tmp_f, object_pairs_hook=OrderedDict) + + # update sidecar JSON file with the fields passed in + sidecar_json.update(**sidecar_tmp) + + # write back the sidecar JSON + _write_json(fpath, sidecar_json, overwrite=True) + + +def _update_sidecar(sidecar_fname, key, val): + """Update a sidecar JSON file with a given key/value pair. + + Parameters + ---------- + sidecar_fname : str | os.PathLike + Full name of the data file + key : str + The key in the sidecar JSON file. E.g. "PowerLineFrequency" + val : str + The corresponding value to change to in the sidecar JSON file. + """ + 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) + + +@verbose +def update_anat_landmarks( + bids_path, + landmarks, + *, + fs_subject=None, + fs_subjects_dir=None, + kind=None, + on_missing="raise", + verbose=None, +): + """Update the anatomical landmark coordinates of an MRI scan. + + This will change the ``AnatomicalLandmarkCoordinates`` entry in the + respective JSON sidecar file, or create it if it doesn't exist. + + Parameters + ---------- + bids_path : BIDSPath + Path of the MR image. + landmarks : mne.channels.DigMontage | path-like + An :class:`mne.channels.DigMontage` instance with coordinates for the + nasion and left and right pre-auricular points in MRI voxel + coordinates. Alternatively, the path to a ``*-fiducials.fif`` file as + produced by the MNE-Python coregistration GUI or via + :func:`mne.io.write_fiducials`. + + .. note:: :func:`mne_bids.get_anat_landmarks` provides a convenient and + reliable way to generate the landmark coordinates in the + required coordinate system. + + .. note:: If ``path-like``, ``fs_subject`` and ``fs_subjects_dir`` + must be provided as well. + + .. versionchanged:: 0.10 + Added support for ``path-like`` input. + fs_subject : str | None + The subject identifier used for FreeSurfer. Must be provided if + ``landmarks`` is ``path-like``; otherwise, it will be ignored. + fs_subjects_dir : path-like | None + The FreeSurfer subjects directory. If ``None``, defaults to the + ``SUBJECTS_DIR`` environment variable. Must be provided if + ``landmarks`` is ``path-like``; otherwise, it will be ignored. + kind : str | None + The suffix of the anatomical landmark names in the JSON sidecar. + A suffix might be present e.g. to distinguish landmarks between + sessions. If provided, should not include a leading underscore ``_``. + For example, if the landmark names in the JSON sidecar file are + ``LPA_ses-1``, ``RPA_ses-1``, ``NAS_ses-1``, you should pass + ``'ses-1'`` here. + If ``None``, no suffix is appended, the landmarks named + ``Nasion`` (or ``NAS``), ``LPA``, and ``RPA`` will be used. + + .. versionadded:: 0.10 + on_missing : 'ignore' | 'warn' | 'raise' + How to behave if the specified landmarks cannot be found in the MRI + JSON sidecar file. + + .. versionadded:: 0.10 + %(verbose)s + + Notes + ----- + .. versionadded:: 0.8 + """ + _validate_type(item=bids_path, types=BIDSPath, item_name="bids_path") + _validate_type( + item=landmarks, types=(DigMontage, "path-like"), item_name="landmarks" + ) + _check_on_missing(on_missing) + + # Do some path verifications and fill in some gaps the users might have + # left (datatype and extension) + # XXX We could be more stringent (and less user-friendly) and insist on a + # XXX full specification of all parts of the BIDSPath, thoughts? + bids_path_mri = bids_path.copy() + if bids_path_mri.datatype is None: + bids_path_mri.datatype = "anat" + + if bids_path_mri.datatype != "anat": + raise ValueError( + f'Can only operate on "anat" MRI data, but the provided bids_path ' + f"points to: {bids_path_mri.datatype}" + ) + + if bids_path_mri.suffix is None: + raise ValueError( + 'Please specify the "suffix" entity of the provided ' "bids_path." + ) + elif bids_path_mri.suffix not in ("T1w", "FLASH"): + raise ValueError( + f'Can only operate on "T1w" and "FLASH" images, but the bids_path ' + f"suffix indicates: {bids_path_mri.suffix}" + ) + + valid_extensions = (".nii", ".nii.gz") + tried_paths = [] + file_exists = False + if bids_path_mri.extension is None: + # No extension was provided, start searching … + for extension in valid_extensions: + bids_path_mri.extension = extension + tried_paths.append(bids_path_mri.fpath) + + if bids_path_mri.fpath.exists(): + file_exists = True + break + else: + # An extension was provided + tried_paths.append(bids_path_mri.fpath) + if bids_path_mri.fpath.exists(): + file_exists = True + + if not file_exists: + raise ValueError( + f"Could not find an MRI scan. Please check the provided " + f"bids_path. Tried the following filenames: " + f'{", ".join([p.name for p in tried_paths])}' + ) + + if not isinstance(landmarks, DigMontage): # it's pathlike + if fs_subject is None: + raise ValueError( + 'You must provide the "fs_subject" parameter when passing the ' + "path to fiducials" + ) + landmarks = _get_landmarks_from_fiducials_file( + bids_path=bids_path, + fname=landmarks, + fs_subject=fs_subject, + fs_subjects_dir=fs_subjects_dir, + ) + + positions = landmarks.get_positions() + coord_frame = positions["coord_frame"] + if coord_frame != "mri_voxel": + raise ValueError( + f"The landmarks must be specified in MRI voxel coordinates, but " + f'provided DigMontage is in "{coord_frame}"' + ) + + # Extract the cardinal points + name_to_coords_map = { + "LPA": positions["lpa"], + "NAS": positions["nasion"], + "RPA": positions["rpa"], + } + + # Check if coordinates for any cardinal point are missing, and convert to + # a list so we can easily store the data in JSON format + missing_points = [] + for name, coords in name_to_coords_map.items(): + if coords is None: + missing_points.append(name) + else: + # Funnily, np.float64 is JSON-serializabe, while np.float32 is not! + # Thus, cast to float64 to avoid issues (which e.g. may arise when + # fiducials were read from disk!) + name_to_coords_map[name] = list(coords.astype("float64")) + + if missing_points: + raise ValueError( + f"The provided DigMontage did not contain all required cardinal " + f"points (nasion and left and right pre-auricular points). The " + f"following points are missing: " + f'{", ".join(missing_points)}' + ) + + bids_path_json = bids_path.copy().update(extension=".json") + if not bids_path_json.fpath.exists(): # Must exist before we can update it + _write_json(bids_path_json.fpath, dict()) + + mri_json = json.loads(bids_path_json.fpath.read_text(encoding="utf-8")) + if "AnatomicalLandmarkCoordinates" not in mri_json: + _on_missing( + on_missing=on_missing, + msg=f"No AnatomicalLandmarkCoordinates section found in " + f"{bids_path_json.fpath.name}", + error_klass=KeyError, + ) + mri_json["AnatomicalLandmarkCoordinates"] = dict() + + for name, coords in name_to_coords_map.items(): + if kind is not None: + name = f"{name}_{kind}" + + if name not in mri_json["AnatomicalLandmarkCoordinates"]: + _on_missing( + on_missing=on_missing, + msg=f"Anatomical landmark not found in " + f"{bids_path_json.fpath.name}: {name}", + error_klass=KeyError, + ) + + mri_json["AnatomicalLandmarkCoordinates"][name] = coords + + update_sidecar_json(bids_path=bids_path_json, entries=mri_json) + + +def _get_landmarks_from_fiducials_file( + *, bids_path, fname, fs_subject, fs_subjects_dir +): + """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, + ) + + digpoints, coord_frame = read_fiducials(fname) + + # All of this should be guaranteed, but better be safe than sorry! + assert coord_frame == FIFF.FIFFV_COORD_MRI + assert digpoints[0]["ident"] == FIFF.FIFFV_POINT_LPA + assert digpoints[1]["ident"] == FIFF.FIFFV_POINT_NASION + assert digpoints[2]["ident"] == FIFF.FIFFV_POINT_RPA + + montage_loaded = make_dig_montage( + lpa=digpoints[0]["r"], + nasion=digpoints[1]["r"], + rpa=digpoints[2]["r"], + coord_frame="mri", + ) + landmark_coords_mri, _ = _get_fid_coords(dig_points=montage_loaded.dig) + landmark_coords_mri = np.asarray( + ( + landmark_coords_mri["lpa"], + landmark_coords_mri["nasion"], + landmark_coords_mri["rpa"], + ) + ) + + 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 + ) + montage_voxels = make_dig_montage( + lpa=landmark_coords_voxels[0], + nasion=landmark_coords_voxels[1], + rpa=landmark_coords_voxels[2], + coord_frame="mri_voxel", + ) + + return montage_voxels diff --git a/mne-bids-0.15/mne_bids/stats.py b/mne-bids-0.15/mne_bids/stats.py new file mode 100644 index 0000000..50931b0 --- /dev/null +++ b/mne-bids-0.15/mne_bids/stats.py @@ -0,0 +1,130 @@ +"""Some functions to extract stats from a BIDS dataset.""" + +# Authors: Alex Gramfort +# +# License: BSD-3-Clause + +from mne_bids import BIDSPath, get_datatypes +from mne_bids.config import EPHY_ALLOWED_DATATYPES + + +def count_events(root_or_path, datatype="auto"): + """Count events present in dataset. + + Parameters + ---------- + root_or_path : path-like | mne_bids.BIDSPath + If str or Path it is the root folder of the BIDS dataset. + If a BIDSPath is passed it allows to limit the count + to a subject, a session or a run by only considering + the event files that match this BIDSPath. + datatype : str + Type of the data recording. Can be ``meg``, ``eeg``, + ``ieeg`` or ``auto``. If ``auto`` and a :class:`mne_bids.BIDSPath` + isinstance is passed as ``root_or_path`` which has a ``datatype`` + attribute set, then this data type will be used. Otherwise, only + one data type should be present in the dataset to avoid any + ambiguity. + + Returns + ------- + counts : pandas.DataFrame + The pandas dataframe containing all the counts of trial_type + in all matching events.tsv files. + + Notes + ----- + .. versionchanged:: 0.15 + Table values were changed from floats (with NaN for missing values) + to Pandas nullable integer arrays. + """ + import pandas as pd + + if not isinstance(root_or_path, BIDSPath): + bids_path = BIDSPath(root=root_or_path) + else: + bids_path = root_or_path.copy() + + bids_path.update(suffix="events", extension=".tsv") + + datatypes = get_datatypes(bids_path.root) + this_datatypes = list(set(datatypes).intersection(EPHY_ALLOWED_DATATYPES)) + + if (datatype == "auto") and (bids_path.datatype is not None): + datatype = bids_path.datatype + + if datatype == "auto": + if len(this_datatypes) > 1: + raise ValueError( + f"Multiple datatypes present ({this_datatypes})." + f" You need to specity datatype got: {datatype})" + ) + elif len(this_datatypes) == 0: + raise ValueError("No valid datatype present.") + + datatype = this_datatypes[0] + + if datatype not in EPHY_ALLOWED_DATATYPES: + raise ValueError( + f"datatype ({datatype}) is not supported. " + f"It must be one of: {EPHY_ALLOWED_DATATYPES})" + ) + + bids_path.update(datatype=datatype) + + tasks = sorted(set([bp.task for bp in bids_path.match()])) + + all_counts = [] + + for task in tasks: + bids_path.update(task=task) + + all_df = [] + for bp in bids_path.match(): + df = pd.read_csv(str(bp), delimiter="\t") + df["subject"] = bp.subject + if bp.session is not None: + df["session"] = bp.session + if bp.run is not None: + df["run"] = bp.run + all_df.append(df) + + if not all_df: + continue + + df = pd.concat(all_df) + groups = ["subject"] + if bp.session is not None: + groups.append("session") + if bp.run is not None: + groups.append("run") + + if "stim_type" in df.columns: + # Deal with some old files that use stim_type rather than + # trial_type + df = df.rename(columns={"stim_type": "trial_type"}) + + # There are datasets out there without a `trial_type` or `stim_type` + # column. + if "trial_type" in df.columns: + groups.append("trial_type") + + counts = df.groupby(groups).size() + counts = counts.unstack(fill_value=-1) + counts.replace(-1, pd.NA, inplace=True) + + if "BAD_ACQ_SKIP" in counts.columns: + counts = counts.drop("BAD_ACQ_SKIP", axis=1) + + counts.columns = pd.MultiIndex.from_arrays( + [[task] * counts.shape[1], counts.columns] + ) + + all_counts.append(counts) + + if not all_counts: + raise ValueError("No events files found.") + + counts = pd.concat(all_counts, axis=1) + + return counts diff --git a/mne-bids-0.15/mne_bids/tsv_handler.py b/mne-bids-0.15/mne_bids/tsv_handler.py new file mode 100644 index 0000000..3ce4b60 --- /dev/null +++ b/mne-bids-0.15/mne_bids/tsv_handler.py @@ -0,0 +1,220 @@ +"""Private functions to handle tabular data.""" + +from collections import OrderedDict +from copy import deepcopy + +import numpy as np + + +def _combine_rows(data1, data2, drop_column=None): + """Add two OrderedDict's together and optionally drop repeated data. + + Parameters + ---------- + data1 : collections.OrderedDict + Original OrderedDict. + data2 : collections.OrderedDict + New OrderedDict to be added to the original. + drop_column : str, optional + Name of the column to check for duplicate values in. + Any duplicates found will be dropped from the original data array (ie. + most recent value are kept). + + Returns + ------- + data : collections.OrderedDict + The new combined data. + """ + data = deepcopy(data1) + # next extend the values in data1 with values in data2 + for key, value in data2.items(): + data[key].extend(value) + + # Make sure that if there are any columns in data1 that didn't get new + # data they are populated with "n/a"'s. + for key in set(data1.keys()) - set(data2.keys()): + data[key].extend(["n/a"] * len(next(iter(data2.values())))) + + if drop_column is None: + return data + + # Find any repeated values and remove all but the most recent value. + n_rows = len(data[drop_column]) + _, idxs = np.unique(data[drop_column][::-1], return_index=True) + for key in data: + data[key] = [data[key][n_rows - 1 - idx] for idx in idxs] + + return data + + +def _contains_row(data, row_data): + """Determine whether the specified row data exists in the OrderedDict. + + Parameters + ---------- + data : collections.OrderedDict + OrderedDict to check. + row_data : dict + Dictionary with column names as keys, and values being the column value + to match within a row. + + Returns + ------- + bool + True if `row_data` exists in `data`. + + Note + ---- + This function will return True if the supplied `row_data` contains less + columns than the number of columns in the existing data but there is still + a match for the partial row data. + + """ + mask = None + for key, row_value in row_data.items(): + # if any of the columns don't even exist in the keys + # this data_value will return False + data_value = np.array(data.get(key)) + + # Cast row_value to the same dtype as data_value to avoid a NumPy + # FutureWarning, see + # https://github.com/mne-tools/mne-bids/pull/372 + row_value = np.array(row_value, dtype=data_value.dtype) + + column_mask = np.isin(data_value, row_value) + mask = column_mask if mask is None else (mask & column_mask) + return np.any(mask) + + +def _drop(data, values, column): + """Remove rows from the OrderedDict. + + Parameters + ---------- + data : collections.OrderedDict + Data to drop values from. + values : list + List of values to drop. Any row containing this value in the specified + column will be dropped. + column : string + Name of the column to check for the existence of `value` in. + + Returns + ------- + new_data : collections.OrderedDict + Copy of the original data with 0 or more rows dropped. + + """ + new_data = deepcopy(data) + new_data_col = np.array(new_data[column]) + + # Cast `values` to the same dtype as `new_data_col` to avoid a NumPy + # FutureWarning, see + # https://github.com/mne-tools/mne-bids/pull/372 + dtype = new_data_col.dtype + if new_data_col.shape == (0,): + dtype = np.array(values).dtype + values = np.array(values, dtype=dtype) + + mask = np.isin(new_data_col, values, invert=True) + for key in new_data.keys(): + new_data[key] = np.array(new_data[key])[mask].tolist() + return new_data + + +def _from_tsv(fname, dtypes=None): + """Read a tsv file into an OrderedDict. + + Parameters + ---------- + fname : str + Path to the file being loaded. + dtypes : list, optional + List of types to cast the values loaded as. This is specified column by + column. + Defaults to None. In this case all the data is loaded as strings. + + Returns + ------- + data_dict : collections.OrderedDict + Keys are the column names, and values are the column data. + + """ + from .utils import warn # avoid circular import + + data = np.loadtxt( + fname, dtype=str, delimiter="\t", ndmin=2, comments=None, encoding="utf-8-sig" + ) + column_names = data[0, :] + info = data[1:, :] + data_dict = OrderedDict() + if dtypes is None: + dtypes = [str] * info.shape[1] + if not isinstance(dtypes, (list, tuple)): + dtypes = [dtypes] * info.shape[1] + if not len(dtypes) == info.shape[1]: + raise ValueError( + "dtypes length mismatch. " + f"Provided: {len(dtypes)}, Expected: {info.shape[1]}" + ) + empty_cols = 0 + for i, name in enumerate(column_names): + values = info[:, i].astype(dtypes[i]).tolist() + data_dict[name] = values + if len(values) == 0: + empty_cols += 1 + + if empty_cols == len(column_names): + warn(f"TSV file is empty: '{fname}'") + + return data_dict + + +def _to_tsv(data, fname): + """Write an OrderedDict into a tsv file. + + Parameters + ---------- + data : collections.OrderedDict + Ordered dictionary containing data to be written to a tsv file. + fname : str + Path to the file being written. + + """ + n_rows = len(data[list(data.keys())[0]]) + output = _tsv_to_str(data, n_rows) + + with open(fname, "w", encoding="utf-8-sig") as f: + f.write(output) + f.write("\n") + + +def _tsv_to_str(data, rows=5): + """Return a string representation of the OrderedDict. + + Parameters + ---------- + data : collections.OrderedDict + OrderedDict to return string representation of. + rows : int, optional + Maximum number of rows of data to output. + + Returns + ------- + str + String representation of the first `rows` lines of `data`. + + """ + col_names = list(data.keys()) + n_rows = len(data[col_names[0]]) + output = list() + # write headings. + output.append("\t".join(col_names)) + + # write column data. + max_rows = min(n_rows, rows) + for idx in range(max_rows): + row_data = list(str(data[key][idx]) for key in data) + output.append("\t".join(row_data)) + + return "\n".join(output) diff --git a/mne-bids-0.15/mne_bids/utils.py b/mne-bids-0.15/mne_bids/utils.py new file mode 100644 index 0000000..2c934b2 --- /dev/null +++ b/mne-bids-0.15/mne_bids/utils.py @@ -0,0 +1,542 @@ +"""Utility and helper functions for MNE-BIDS.""" + +# Authors: Mainak Jas +# Alexandre Gramfort +# Teon Brooks +# Chris Holdgraf +# Stefan Appelhoff +# Matt Sanderson +# +# License: BSD-3-Clause +import json +import os +import re +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.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"([^-_\.\\\/]+)-([^-_\.\\\/]+)") + + +def _ensure_tuple(x): + """Return a tuple.""" + if x is None: + return tuple() + elif isinstance(x, str): + return (x,) + else: + return tuple(x) + + +def _get_ch_type_mapping(fro="mne", to="bids"): + """Map between BIDS and MNE nomenclatures for channel types. + + Parameters + ---------- + fro : str + Mapping from nomenclature of `fro`. Can be 'mne', 'bids' + to : str + Mapping to nomenclature of `to`. Can be 'mne', 'bids' + + Returns + ------- + mapping : dict + Dictionary mapping from one nomenclature of channel types to another. + If a key is not present, a default value will be returned that depends + on the `fro` and `to` parameters. + + Notes + ----- + For the mapping from BIDS to MNE, MEG channel types are ignored for now. + Furthermore, this is not a one-to-one mapping: Incomplete and partially + one-to-many/many-to-one. + + Bio channels are supported in mne-python and are converted to MISC + because there is no "Bio" supported channel in BIDS. + """ + if fro == "mne" and to == "bids": + mapping = dict( + eeg="EEG", + misc="MISC", + stim="TRIG", + emg="EMG", + ecog="ECOG", + seeg="SEEG", + eog="EOG", + ecg="ECG", + resp="RESP", + bio="MISC", + dbs="DBS", + gsr="GSR", + temperature="TEMP", + # NIRS + fnirs_cw_amplitude="NIRSCWAMPLITUDE", + # MEG channels + meggradaxial="MEGGRADAXIAL", + megmag="MEGMAG", + megrefgradaxial="MEGREFGRADAXIAL", + meggradplanar="MEGGRADPLANAR", + megrefmag="MEGREFMAG", + ias="MEGOTHER", + syst="MEGOTHER", + exci="MEGOTHER", + ) + + elif fro == "bids" and to == "mne": + mapping = dict( + EEG="eeg", + MISC="misc", + TRIG="stim", + EMG="emg", + ECOG="ecog", + SEEG="seeg", + EOG="eog", + ECG="ecg", + RESP="resp", + GSR="gsr", + TEMP="temperature", + # NIRS + NIRSCWAMPLITUDE="fnirs_cw_amplitude", + NIRS="fnirs_cw_amplitude", + # No MEG channels for now (see Notes above) + # Many to one mapping + VEOG="eog", + HEOG="eog", + DBS="dbs", + ) + else: + raise ValueError( + "Only two types of mappings are currently supported: " + "from mne to bids, or from bids to mne. However, " + f'you specified from "{fro}" to "{to}"' + ) + + return mapping + + +def _handle_datatype(raw, datatype): + """Check if datatype exists in raw object or infer datatype if possible. + + Parameters + ---------- + raw : mne.io.Raw + Raw object. + datatype : str | None + Can be one of either ``'meg'``, ``'eeg'``, or ``'ieeg'``. If ``None``, + `mne.utils._handle_datatype()` will attempt to infer the datatype from + the ``raw`` object. In case of multiple data types in the ``raw`` + object, ``datatype`` must not be ``None``. + + Returns + ------- + datatype : str + One of either ``'meg'``, ``'eeg'``, or ``'ieeg'``. + """ + if datatype is not None: + _check_datatype(raw, datatype) + # MEG data is not supported by BrainVision or EDF files + if datatype in ["eeg", "ieeg"] and "meg" in raw: + logger.info( + f"{os.linesep}Both {datatype} and 'meg' data found. " + f"BrainVision and EDF do not support 'meg' data. " + f"The data will therefore be stored as 'meg' data. " + f"If you wish to store your {datatype} data in " + f"BrainVision or EDF, please remove the 'meg'" + f"channels from your recording.{os.linesep}" + ) + datatype = "meg" + else: + datatypes = list() + ieeg_types = ["seeg", "ecog", "dbs"] + if any(ieeg_type in raw for ieeg_type in ieeg_types): + datatypes.append("ieeg") + if "meg" in raw: + datatypes.append("meg") + if "eeg" in raw: + datatypes.append("eeg") + if "fnirs_cw_amplitude" in raw: + datatypes.append("nirs") + if len(datatypes) == 0: + raise ValueError( + "No MEG, EEG or iEEG channels found in data. " + "Please use raw.set_channel_types to set the " + "channel types in the data." + ) + elif len(datatypes) > 1: + if "meg" in datatypes and "ieeg" not in datatypes: + datatype = "meg" + elif "ieeg" in datatypes and "meg" not in datatypes: + datatype = "ieeg" + else: + raise ValueError( + f"Multiple data types (``{datatypes}``) were " + "found in the data. Please specify the " + "datatype using " + '`bids_path.update(datatype="")` ' + "or use raw.set_channel_types to set the " + "correct channel types in the raw object." + ) + else: + datatype = datatypes[0] + return datatype + + +def _age_on_date(bday, exp_date): + """Calculate age from birthday and experiment date. + + Parameters + ---------- + bday : datetime.datetime + The birthday of the participant. + exp_date : datetime.datetime + The date the experiment was performed on. + + """ + if exp_date < bday: + raise ValueError("The experimentation date must be after the birth date") + if exp_date.month > bday.month: + return exp_date.year - bday.year + elif exp_date.month == bday.month: + if exp_date.day >= bday.day: + return exp_date.year - bday.year + return exp_date.year - bday.year - 1 + + +def _check_types(variables): + """Make sure all vars are str or None.""" + for var in variables: + if not isinstance(var, (str, type(None))): + raise ValueError( + f"You supplied a value ({var}) of type " + f"{type(var)}, where a string or None was " + f"expected." + ) + + +def _write_json(fname, dictionary, overwrite=False): + """Write JSON to a file.""" + if op.exists(fname) and not overwrite: + raise FileExistsError( + f'"{fname}" already exists. ' "Please set overwrite to True." + ) + + json_output = json.dumps(dictionary, indent=4) + with open(fname, "w", encoding="utf-8") as fid: + fid.write(json_output) + fid.write("\n") + + logger.info(f"Writing '{fname}'...") + + +@verbose +def _write_tsv(fname, dictionary, overwrite=False, verbose=None): + """Write an ordered dictionary to a .tsv file.""" + if op.exists(fname) and not overwrite: + raise FileExistsError( + f'"{fname}" already exists. ' "Please set overwrite to True." + ) + _to_tsv(dictionary, fname) + + logger.info(f"Writing '{fname}'...") + + +def _write_text(fname, text, overwrite=False): + """Write text to a file.""" + if op.exists(fname) and not overwrite: + raise FileExistsError( + f'"{fname}" already exists. ' "Please set overwrite to True." + ) + with open(fname, "w", encoding="utf-8-sig") as fid: + fid.write(text) + fid.write("\n") + + logger.info(f"Writing '{fname}'...") + + +def _check_key_val(key, val): + """Perform checks on a value to make sure it adheres to the spec.""" + if any(ii in val for ii in ["-", "_", "/"]): + raise ValueError( + "Unallowed `-`, `_`, or `/` found in key/value pair" f" {key}: {val}" + ) + return key, val + + +def _get_mrk_meas_date(mrk): + """Find the measurement date from a KIT marker file.""" + info = get_kit_info(mrk, False)[0] + meas_date = info.get("meas_date", None) + if isinstance(meas_date, (tuple, list, np.ndarray)): + meas_date = meas_date[0] + if isinstance(meas_date, datetime): + meas_datetime = meas_date + elif meas_date is not None: + meas_datetime = datetime.fromtimestamp(meas_date) + else: + meas_datetime = datetime.min + return meas_datetime + + +def _infer_eeg_placement_scheme(raw): + """Based on the channel names, try to infer an EEG placement scheme. + + Parameters + ---------- + raw : mne.io.Raw + The data as MNE-Python Raw object. + + Returns + ------- + placement_scheme : str + Description of the EEG placement scheme. Will be "n/a" for unsuccessful + extraction. + + """ + placement_scheme = "n/a" + # Check if the raw data contains eeg data at all + if "eeg" not in raw: + return placement_scheme + + # How many of the channels in raw are based on the extended 10/20 system + sel = pick_types(raw.info, meg=False, eeg=True) + ch_names = [raw.ch_names[i] for i in sel] + channel_names = [ch.lower() for ch in ch_names] + montage1005 = make_standard_montage("standard_1005") + montage1005_names = [ch.lower() for ch in montage1005.ch_names] + + if set(channel_names).issubset(set(montage1005_names)): + placement_scheme = "based on the extended 10/20 system" + + return placement_scheme + + +def _scale_coord_to_meters(coord, unit): + """Scale units to meters (mne-python default).""" + if unit == "cm": + return np.divide(coord, 100.0) + elif unit == "mm": + return np.divide(coord, 1000.0) + else: + return coord + + +def _check_empty_room_basename(bids_path): + if bids_path.subject != "emptyroom": + return + # only check task entity for emptyroom when it is the sidecar/MEG file + if bids_path.suffix != "meg": + return + if bids_path.acquisition in ("calibration", "crosstalk"): + return + if bids_path.task != "noise": + raise ValueError( + f'task must be "noise" if subject is "emptyroom", but ' + f"received: {bids_path.task}" + ) + + +def _check_anonymize(anonymize, raw, ext): + """Check the `anonymize` dict.""" + # if info['meas_date'] None, then the dates are not stored + if raw.info["meas_date"] is None: + daysback = None + else: + if "daysback" not in anonymize or anonymize["daysback"] is None: + raise ValueError("`daysback` argument required to anonymize.") + daysback = anonymize["daysback"] + daysback_min, daysback_max = _get_anonymization_daysback(raw) + if daysback < daysback_min: + warn( + "`daysback` is too small; the measurement date " + "is after 1925, which is not recommended by BIDS." + "The minimum `daysback` value for changing the " + "measurement date of this data to before this date " + f"is {daysback_min}" + ) + if ext == ".fif" and daysback > daysback_max: + raise ValueError( + "`daysback` exceeds maximum value MNE " + "is able to store in FIF format, must " + f"be less than {daysback_max}" + ) + keep_his = anonymize["keep_his"] if "keep_his" in anonymize else False + keep_source = anonymize["keep_source"] if "keep_source" in anonymize else False + return daysback, keep_his, keep_source + + +def _get_anonymization_daysback(raw): + """Get the min and max number of daysback necessary to satisfy BIDS specs. + + Parameters + ---------- + raw : mne.io.Raw + Subject raw data. + + Returns + ------- + daysback_min : int + The minimum number of daysback necessary to be compatible with BIDS. + daysback_max : int + The maximum number of daysback that MNE can store. + """ + this_date = _stamp_to_dt(raw.info["meas_date"]).date() + daysback_min = (this_date - date(year=1924, month=12, day=31)).days + daysback_max = ( + this_date + - datetime.fromtimestamp(0).date() + + timedelta(seconds=np.iinfo(">i4").max) + ).days + return daysback_min, daysback_max + + +@verbose +def get_anonymization_daysback(raws, verbose=None): + """Get the group min and max number of daysback necessary for BIDS specs. + + .. warning:: It is important that you remember the anonymization + number if you would ever like to de-anonymize but + that it is not included in the code publication + as that would break the anonymization. + + BIDS requires that anonymized dates be before 1925. In order to + preserve the longitudinal structure and ensure anonymization, the + user is asked to provide the same `daysback` argument to each call + of `write_raw_bids`. To determine the minimum number of daysback + necessary, this function will calculate the minimum number based on + the most recent measurement date of raw objects. + + Parameters + ---------- + raw : mne.io.Raw | list of mne.io.Raw + Subject raw data or list of raw data from several subjects. + %(verbose)s + + Returns + ------- + daysback_min : int + The minimum number of daysback necessary to be compatible with BIDS. + daysback_max : int + The maximum number of daysback that MNE can store. + """ + if not isinstance(raws, list): + raws = list([raws]) + daysback_min_list = list() + daysback_max_list = list() + for raw in raws: + if raw.info["meas_date"] is not None: + daysback_min, daysback_max = _get_anonymization_daysback(raw) + daysback_min_list.append(daysback_min) + daysback_max_list.append(daysback_max) + if not daysback_min_list or not daysback_max_list: + raise ValueError( + "All measurement dates are None, pass any `daysback` value to anonymize." + ) + daysback_min = max(daysback_min_list) + daysback_max = min(daysback_max_list) + if daysback_min > daysback_max: + raise ValueError( + "The dataset spans more time than can be " + "accomodated by MNE, you may have to " + "not follow BIDS recommendations and use" + "anonymized dates after 1925" + ) + return daysback_min, daysback_max + + +def _stamp_to_dt(utc_stamp): + """Convert POSIX timestamp to datetime object in Windows-friendly way.""" + # This is a windows datetime bug for timestamp < 0. A negative value + # is needed for anonymization which requires the date to be moved back + # to before 1925. This then requires a negative value of daysback + # compared the 1970 reference date. + if isinstance(utc_stamp, datetime): + return utc_stamp + stamp = [int(s) for s in utc_stamp] + if len(stamp) == 1: # In case there is no microseconds information + stamp.append(0) + return datetime.fromtimestamp(0, tz=timezone.utc) + timedelta( + 0, stamp[0], stamp[1] + ) # day, sec, μs + + +def _check_datatype(raw, datatype): + """Check if datatype exists in given raw object. + + Parameters + ---------- + raw : mne.io.Raw + Raw object. + datatype : str + Can be one of either ``'meg'``, ``'eeg'``, or ``'ieeg'``. + + Returns + ------- + None + """ + supported_types = ("meg", "eeg", "ieeg", "nirs") + if datatype not in supported_types: + raise ValueError( + f"The specified datatype {datatype} is currently not supported. " + f"It should be one of either `meg`, `eeg` or `ieeg` (Got " + f"`{datatype}`. Please specify a valid datatype using " + f'`bids_path.update(datatype="")`.' + ) + datatype_matches = False + if datatype == "eeg" and datatype in raw: + datatype_matches = True + elif datatype == "meg" and datatype in raw: + datatype_matches = True + elif datatype == "nirs" and "fnirs_cw_amplitude" in raw: + datatype_matches = True + elif datatype == "ieeg": + ieeg_types = ("seeg", "ecog", "dbs") + if any(ieeg_type in raw for ieeg_type in ieeg_types): + datatype_matches = True + if not datatype_matches: + raise ValueError( + f"The specified datatype {datatype} was not found in the raw " + "object. Please specify the correct datatype using " + '`bids_path.update(datatype="")` or use ' + "raw.set_channel_types to set the correct channel types in " + "the raw object." + ) + + +def _import_nibabel(why="work with MRI data"): + try: + import nibabel # noqa + except ImportError as exc: + raise exc.__class__( + f"nibabel is required to {why} but could not be imported, " f"got: {exc}" + ) from None + else: + return nibabel + + +def warn( + message, + category=RuntimeWarning, + module="mne_bids", + ignore_namespaces=("mne", "mne_bids"), +): # noqa: D103 + """Emit a warning.""" + _warn( + message, + category=category, + module=module, + ignore_namespaces=ignore_namespaces, + ) + + +# Some of the defaults here will be wrong but it should be close enough +warn.__doc__ = getattr(_warn, "__doc__", None) diff --git a/mne-bids-0.15/mne_bids/write.py b/mne-bids-0.15/mne_bids/write.py new file mode 100644 index 0000000..be0a150 --- /dev/null +++ b/mne-bids-0.15/mne_bids/write.py @@ -0,0 +1,3147 @@ +"""Make BIDS compatible directory structures and infer meta data from MNE.""" + +# Authors: Mainak Jas +# Alexandre Gramfort +# Teon Brooks +# Chris Holdgraf +# Stefan Appelhoff +# Matt Sanderson +# +# License: BSD-3-Clause +import json +import os +import os.path as op +import re +import shutil +import sys +import warnings +from collections import OrderedDict, defaultdict +from datetime import datetime, timedelta, timezone +from pathlib import Path + +import mne +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.transforms import _get_trans, apply_trans, rotation, translation +from mne.utils import ( + Bunch, + ProgressBar, + _validate_type, + check_version, + get_subjects_dir, + logger, + verbose, +) +from scipy import linalg + +from mne_bids import ( + BIDSPath, + 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.copyfiles import ( + copyfile_brainvision, + copyfile_bti, + copyfile_ctf, + copyfile_edf, + copyfile_eeglab, + copyfile_kit, +) +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.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 + + +def _is_numeric(n): + return isinstance(n, (np.integer, np.floating, int, float)) + + +def _channels_tsv(raw, fname, overwrite=False): + """Create a channels.tsv file and save it. + + Parameters + ---------- + raw : mne.io.Raw + The data as MNE-Python Raw object. + fname : str | mne_bids.BIDSPath + Filename to save the channels.tsv to. + overwrite : bool + Whether to overwrite the existing file. + Defaults to False. + + """ + # Get channel type mappings between BIDS and MNE nomenclatures + map_chs = _get_ch_type_mapping(fro="mne", to="bids") + + # Prepare the descriptions for each channel type + map_desc = defaultdict(lambda: "Other type of channel") + map_desc.update( + meggradaxial="Axial Gradiometer", + megrefgradaxial="Axial Gradiometer Reference", + meggradplanar="Planar Gradiometer", + megmag="Magnetometer", + megrefmag="Magnetometer Reference", + stim="Trigger", + eeg="ElectroEncephaloGram", + ecog="Electrocorticography", + seeg="StereoEEG", + ecg="ElectroCardioGram", + eog="ElectroOculoGram", + emg="ElectroMyoGram", + misc="Miscellaneous", + bio="Biological", + ias="Internal Active Shielding", + dbs="Deep Brain Stimulation", + fnirs_cw_amplitude="Near Infrared Spectroscopy (continuous wave)", + resp="Respiration", + gsr="Galvanic skin response (electrodermal activity, EDA)", + temperature="Temperature", + ) + get_specific = ("mag", "ref_meg", "grad") + + # get the manufacturer from the file in the Raw object + _, ext = _parse_ext(raw.filenames[0]) + manufacturer = MANUFACTURERS.get(ext, "") + ignored_channels = IGNORED_CHANNELS.get(manufacturer, list()) + + status, ch_type, description = list(), list(), list() + for idx, ch in enumerate(raw.info["ch_names"]): + status.append("bad" if ch in raw.info["bads"] else "good") + _channel_type = channel_type(raw.info, idx) + if _channel_type in get_specific: + _channel_type = coil_type(raw.info, idx, _channel_type) + ch_type.append(map_chs[_channel_type]) + description.append(map_desc[_channel_type]) + low_cutoff, high_cutoff = (raw.info["highpass"], raw.info["lowpass"]) + if raw._orig_units: + units = [raw._orig_units.get(ch, "n/a") for ch in raw.ch_names] + else: + units = [_unit2human.get(ch_i["unit"], "n/a") for ch_i in raw.info["chs"]] + units = [u if u not in ["NA"] else "n/a" for u in units] + + # Translate from MNE to BIDS unit naming + for idx, mne_unit in enumerate(units): + if mne_unit in UNITS_MNE_TO_BIDS_MAP: + bids_unit = UNITS_MNE_TO_BIDS_MAP[mne_unit] + units[idx] = bids_unit + + n_channels = raw.info["nchan"] + sfreq = raw.info["sfreq"] + + # default to 'n/a' for status description + # XXX: improve with API to modify the description + status_description = ["n/a"] * len(status) + + ch_data = OrderedDict( + [ + ("name", raw.info["ch_names"]), + ("type", ch_type), + ("units", units), + ("low_cutoff", np.full((n_channels), low_cutoff)), + ("high_cutoff", np.full((n_channels), high_cutoff)), + ("description", description), + ("sampling_frequency", np.full((n_channels), sfreq)), + ("status", status), + ("status_description", status_description), + ] + ) + ch_data = _drop(ch_data, ignored_channels, "name") + + if "fnirs_cw_amplitude" in raw: + ch_data["wavelength_nominal"] = [ + raw.info["chs"][i]["loc"][9] for i in range(len(raw.ch_names)) + ] + + picks = _picks_to_idx(raw.info, "fnirs", exclude=[], allow_empty=True) + + sources = np.empty(picks.shape, dtype=" 0 and raise_error: + if set(fid_coord_frames.keys()) != set(["nasion", "lpa", "rpa"]): + raise ValueError( + f"Some fiducial points are missing, got {fid_coords.keys()}" + ) + + if len(set(fid_coord_frames.values())) > 1: + raise ValueError( + "All fiducial points must be in the same coordinate system, " + f"got {len(fid_coord_frames)})" + ) + + coord_frame = fid_coord_frames.popitem()[1] if fid_coord_frames else None + + return fid_coords, coord_frame + + +def _events_tsv(events, durations, raw, fname, trial_type, overwrite=False): + """Create an events.tsv file and save it. + + This function will write the mandatory 'onset', and 'duration' columns as + well as the optional 'value' and 'sample'. The 'value' + corresponds to the marker value as found in the TRIG channel of the + recording. In addition, the 'trial_type' field can be written. + + Parameters + ---------- + events : np.ndarray, shape = (n_events, 3) + The first column contains the event time in samples and the third + column contains the event id. The second column is ignored for now but + typically contains the value of the trigger channel either immediately + before the event or immediately after. + durations : np.ndarray, shape (n_events,) + The event durations in seconds. + raw : mne.io.Raw + The data as MNE-Python Raw object. + fname : str | mne_bids.BIDSPath + Filename to save the events.tsv to. + trial_type : dict | None + Dictionary mapping a brief description key to an event id (value). For + example {'Go': 1, 'No Go': 2}. + overwrite : bool + Whether to overwrite the existing file. + Defaults to False. + + """ + # Start by filling all data that we know into an ordered dictionary + first_samp = raw.first_samp + sfreq = raw.info["sfreq"] + events = events.copy() + events[:, 0] -= first_samp + + # Onset column needs to be specified in seconds + data = OrderedDict( + [ + ("onset", events[:, 0] / sfreq), + ("duration", durations), + ("trial_type", None), + ("value", events[:, 2]), + ("sample", events[:, 0]), + ] + ) + + # Now check if trial_type is specified or should be removed + if trial_type: + trial_type_map = {v: k for k, v in trial_type.items()} + data["trial_type"] = [trial_type_map.get(i, "n/a") for i in events[:, 2]] + else: + del data["trial_type"] + + _write_tsv(fname, data, overwrite) + + +def _events_json(fname, overwrite=False): + """Create participants.json for non-default columns in accompanying TSV. + + Parameters + ---------- + fname : str | mne_bids.BIDSPath + Output filename. + overwrite : bool + Whether to overwrite the output file if it exists. + """ + new_data = { + "onset": { + "Description": ( + "Onset (in seconds) of the event from the beginning of the first data" + "point. Negative onsets account for events before the first stored " + "data point." + ), + "Units": "s", + }, + "duration": { + "Description": ( + "Duration of the event in seconds from onset. " + "Must be zero, positive, or 'n/a' if unavailable. " + "A zero value indicates an impulse event. " + ), + "Units": "s", + }, + "sample": { + "Description": ( + "The event onset time in number of sampling points." + "First sample is 0." + ), + }, + "value": { + "Description": ( + "The event code (also known as trigger code or event ID) " + "associated with the event." + ) + }, + "trial_type": {"Description": "The type, category, or name of the event."}, + } + + # make sure to append any JSON fields added by the user + fname = Path(fname) + if fname.exists(): + orig_data = json.loads( + fname.read_text(encoding="utf-8"), object_pairs_hook=OrderedDict + ) + new_data = {**orig_data, **new_data} + + _write_json(fname, new_data, overwrite) + + +def _readme(datatype, fname, overwrite=False): + """Create a README file and save it. + + This will write a README file containing an MNE-BIDS citation. + If a README already exists, the behavior depends on the + `overwrite` parameter, as described below. + + Parameters + ---------- + datatype : string + The type of data contained in the raw file ('meg', 'eeg', 'ieeg') + fname : str | mne_bids.BIDSPath + Filename to save the README to. + overwrite : bool + Whether to overwrite the existing file (defaults to False). + If overwrite is True, create a new README containing an + MNE-BIDS citation. If overwrite is False, append an + MNE-BIDS citation to the existing README, unless it + already contains that citation. + """ + if os.path.isfile(fname) and not overwrite: + 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 + if mne_bids_ref and datatype_ref: + return + text = "{}References\n----------\n{}{}".format( + orig_data + "\n\n", + "" if mne_bids_ref else REFERENCES["mne-bids"] + "\n\n", + "" if datatype_ref else REFERENCES[datatype] + "\n", + ) + else: + text = "References\n----------\n{}{}".format( + REFERENCES["mne-bids"] + "\n\n", REFERENCES[datatype] + "\n" + ) + + _write_text(fname, text, overwrite=True) + + +def _participants_tsv(raw, subject_id, fname, overwrite=False): + """Create a participants.tsv file and save it. + + This will append any new participant data to the current list if it + exists. Otherwise a new file will be created with the provided information. + + Parameters + ---------- + raw : mne.io.Raw + The data as MNE-Python Raw object. + subject_id : str + The subject name in BIDS compatible format ('01', '02', etc.) + fname : str | mne_bids.BIDSPath + Filename to save the participants.tsv to. + overwrite : bool + Whether to overwrite the existing file. + Defaults to False. + If there is already data for the given `subject_id` and overwrite is + False, an error will be raised. + + """ + subject_age = "n/a" + sex = "n/a" + hand = "n/a" + weight = "n/a" + height = "n/a" + subject_info = raw.info.get("subject_info", None) + + if subject_id != "emptyroom" and subject_info is not None: + # add sex + sex = _map_options( + what="sex", key=subject_info.get("sex", 0), fro="mne", to="bids" + ) + + # add handedness + hand = _map_options( + what="hand", key=subject_info.get("hand", 0), fro="mne", to="bids" + ) + + # determine the age of the participant + age = subject_info.get("birthday", None) + meas_date = raw.info.get("meas_date", None) + if isinstance(meas_date, (tuple, list, np.ndarray)): + meas_date = meas_date[0] + + if meas_date is not None and age is not None: + bday = datetime(age[0], age[1], age[2], tzinfo=timezone.utc) + if isinstance(meas_date, datetime): + meas_datetime = meas_date + else: + meas_datetime = datetime.fromtimestamp(meas_date, tz=timezone.utc) + subject_age = _age_on_date(bday, meas_datetime) + else: + subject_age = "n/a" + + # add weight and height + weight = subject_info.get("weight", "n/a") + height = subject_info.get("height", "n/a") + + subject_id = "sub-" + subject_id + data = OrderedDict(participant_id=[subject_id]) + data.update( + { + "age": [subject_age], + "sex": [sex], + "hand": [hand], + "weight": [weight], + "height": [height], + } + ) + + if os.path.exists(fname): + orig_data = _from_tsv(fname) + # whether the new data exists identically in the previous data + exact_included = _contains_row( + data=orig_data, + row_data={ + "participant_id": subject_id, + "age": subject_age, + "sex": sex, + "hand": hand, + "weight": weight, + "height": height, + }, + ) + # whether the subject id is in the previous data + sid_included = subject_id in orig_data["participant_id"] + # if the subject data provided is different to the currently existing + # data and overwrite is not True raise an error + if (sid_included and not exact_included) and not overwrite: + raise FileExistsError( + f'"{subject_id}" already exists in ' + f"the participant list. Please set " + f"overwrite to True." + ) + + # Append any columns the original data did not have, and fill them with + # n/a's. + for key in data.keys(): + if key in orig_data: + continue + + orig_data[key] = ["n/a"] * len(orig_data["participant_id"]) + + # Append any additional columns that original data had. + # Keep the original order of the data by looping over + # the original OrderedDict keys + for key in orig_data.keys(): + if key in data: + continue + + # add original value for any user-appended columns + # that were not handled by mne-bids + p_id = data["participant_id"][0] + if p_id in orig_data["participant_id"]: + row_idx = orig_data["participant_id"].index(p_id) + data[key] = [orig_data[key][row_idx]] + + # otherwise add the new data as new row + data = _combine_rows(orig_data, data, "participant_id") + + # overwrite is forced to True as all issues with overwrite == False have + # been handled by this point + _write_tsv(fname, data, True) + + +def _participants_json(fname, overwrite=False): + """Create participants.json for non-default columns in accompanying TSV. + + Parameters + ---------- + fname : str | mne_bids.BIDSPath + Output filename. + overwrite : bool + Defaults to False. + Whether to overwrite the existing data in the file. + If there is already data for the given `fname` and overwrite is False, + an error will be raised. + + """ + new_data = { + "participant_id": {"Description": "Unique participant identifier"}, + "age": { + "Description": "Age of the participant at time of testing", + "Units": "years", + }, + "sex": { + "Description": "Biological sex of the participant", + "Levels": {"F": "female", "M": "male"}, + }, + "hand": { + "Description": "Handedness of the participant", + "Levels": {"R": "right", "L": "left", "A": "ambidextrous"}, + }, + "weight": {"Description": "Body weight of the participant", "Units": "kg"}, + "height": {"Description": "Body height of the participant", "Units": "m"}, + } + + # make sure to append any JSON fields added by the user + # Note: mne-bids will overwrite age, sex and hand fields + # if `overwrite` is True + fname = Path(fname) + if fname.exists(): + orig_data = json.loads( + fname.read_text(encoding="utf-8"), object_pairs_hook=OrderedDict + ) + new_data = {**orig_data, **new_data} + + _write_json(fname, new_data, overwrite) + + +def _scans_tsv(raw, raw_fname, fname, keep_source, overwrite=False): + """Create a scans.tsv file and save it. + + Parameters + ---------- + raw : mne.io.Raw + The data as MNE-Python Raw object. + raw_fname : str | mne_bids.BIDSPath + Relative path to the raw data file. + fname : str + Filename to save the scans.tsv to. + keep_source : bool + Wehter to store``raw.filenames`` in the ``source`` column. + overwrite : bool + Defaults to False. + Whether to overwrite the existing data in the file. + If there is already data for the given `fname` and overwrite is False, + an error will be raised. + + """ + # get measurement date in UTC from the data info + meas_date = raw.info["meas_date"] + if meas_date is None: + acq_time = "n/a" + elif isinstance(meas_date, datetime): + acq_time = meas_date.strftime("%Y-%m-%dT%H:%M:%S.%fZ") + + # for fif files check whether raw file is likely to be split + raw_fnames = [raw_fname] + if raw_fname.endswith(".fif"): + # check whether fif files were split when saved + # use the files in the target directory what should be written + # to scans.tsv + datatype, basename = raw_fname.split(os.sep) + raw_dir = op.join(op.dirname(fname), datatype) + raw_files = [f for f in os.listdir(raw_dir) if f.endswith(".fif")] + if basename not in raw_files: + raw_fnames = [] + split_base = basename.replace("_meg.fif", "_split-{}") + for raw_f in raw_files: + if len(raw_f.split("_split-")) == 2: + if split_base.format(raw_f.split("_split-")[1]) == raw_f: + raw_fnames.append(op.join(datatype, raw_f)) + raw_fnames.sort() + + data = OrderedDict( + [ + ( + "filename", + ["{:s}".format(raw_f.replace(os.sep, "/")) for raw_f in raw_fnames], + ), + ("acq_time", [acq_time] * len(raw_fnames)), + ] + ) + + # add source filename if desired + if keep_source: + data["source"] = [Path(src_fname).name for src_fname in raw.filenames] + + # write out a sidecar JSON if not exists + sidecar_json_path = Path(fname).with_suffix(".json") + sidecar_json_path = get_bids_path_from_fname(sidecar_json_path) + sidecar_json = {"source": {"Description": "Original source filename."}} + + if sidecar_json_path.fpath.exists(): + update_sidecar_json(sidecar_json_path, sidecar_json) + else: + _write_json(sidecar_json_path, sidecar_json) + + if os.path.exists(fname): + orig_data = _from_tsv(fname) + # if the file name is already in the file raise an error + if raw_fname in orig_data["filename"] and not overwrite: + raise FileExistsError( + f'"{raw_fname}" already exists in ' + f"the scans list. Please set " + f"overwrite to True." + ) + + for key in data.keys(): + if key in orig_data: + continue + + # add 'n/a' if any missing columns + orig_data[key] = ["n/a"] * len(next(iter(data.values()))) + + # otherwise add the new data + data = _combine_rows(orig_data, data, "filename") + + # overwrite is forced to True as all issues with overwrite == False have + # been handled by this point + _write_tsv(fname, data, True) + + +def _load_image(image, name="image"): + nib = _import_nibabel() + if type(image) not in nib.all_image_classes: + try: + image = _path_to_str(image) + except ValueError: + # image -> str conversion in the try block was successful, + # so load the file from the specified location. We do this + # here to keep the try block as short as possible. + raise ValueError( + f"`{name}` must be a path to an MRI data " + "file or a nibabel image object, but it " + f'is of type "{type(image)}"' + ) + else: + image = nib.load(image) + + image = nib.Nifti1Image(image.dataobj, image.affine) + # XYZT_UNITS = NIFT_UNITS_MM (10 in binary or 2 in decimal) + # seems to be the default for Nifti files + # https://nifti.nimh.nih.gov/nifti-1/documentation/nifti1fields/nifti1fields_pages/xyzt_units.html + if image.header["xyzt_units"] == 0: + image.header["xyzt_units"] = np.array(10, dtype="uint8") + return image + + +def _meg_landmarks_to_mri_landmarks(meg_landmarks, trans): + """Convert landmarks from head space to MRI space. + + Parameters + ---------- + meg_landmarks : np.ndarray, shape (3, 3) + The meg landmark data: rows LPA, NAS, RPA, columns x, y, z. + trans : mne.transforms.Transform + The transformation matrix from head coordinates to MRI coordinates. + + Returns + ------- + mri_landmarks : np.ndarray, shape (3, 3) + The mri RAS landmark data converted to from m to mm. + """ + # Transform MEG landmarks into MRI space, adjust units by * 1e3 + return apply_trans(trans, meg_landmarks, move=True) * 1e3 + + +def _mri_landmarks_to_mri_voxels(mri_landmarks, t1_mgh): + """Convert landmarks from MRI surface RAS space to MRI voxel space. + + Parameters + ---------- + mri_landmarks : np.ndarray, shape (3, 3) + The MRI RAS landmark data: rows LPA, NAS, RPA, columns x, y, z. + t1_mgh : nib.MGHImage + The image data in MGH format. + + Returns + ------- + vox_landmarks : np.ndarray, shape (3, 3) + The MRI voxel-space landmark data. + """ + # Get landmarks in voxel space, using the T1 data + vox2ras_tkr_t = t1_mgh.header.get_vox2ras_tkr() + ras_tkr2vox_t = linalg.inv(vox2ras_tkr_t) + vox_landmarks = apply_trans(ras_tkr2vox_t, mri_landmarks) + + return vox_landmarks + + +def _mri_voxels_to_mri_scanner_ras(mri_landmarks, img_mgh): + """Convert landmarks from MRI voxel space to MRI scanner RAS space. + + Parameters + ---------- + mri_landmarks : np.ndarray, shape (3, 3) + The MRI RAS landmark data: rows LPA, NAS, RPA, columns x, y, z. + img_mgh : nib.MGHImage + The image data in MGH format. + + Returns + ------- + ras_landmarks : np.ndarray, shape (3, 3) + The MRI scanner RAS landmark data. + """ + # Get landmarks in voxel space, using the T1 data + vox2ras = img_mgh.header.get_vox2ras() + ras_landmarks = apply_trans(vox2ras, mri_landmarks) # in scanner RAS + return ras_landmarks + + +def _mri_scanner_ras_to_mri_voxels(ras_landmarks, img_mgh): + """Convert landmarks from MRI scanner RAS space to MRI to MRI voxel space. + + Parameters + ---------- + ras_landmarks : np.ndarray, shape (3, 3) + The MRI RAS landmark data: rows LPA, NAS, RPA, columns x, y, z. + img_mgh : nib.MGHImage + The image data in MGH format. + + Returns + ------- + vox_landmarks : np.ndarray, shape (3, 3) + The MRI voxel-space landmark data. + """ + # Get landmarks in voxel space, using the T1 data + vox2ras = img_mgh.header.get_vox2ras() + ras2vox = linalg.inv(vox2ras) + vox_landmarks = apply_trans(ras2vox, ras_landmarks) # in vox + return vox_landmarks + + +def _sidecar_json( + raw, task, manufacturer, fname, datatype, emptyroom_fname=None, overwrite=False +): + """Create a sidecar json file depending on the suffix and save it. + + The sidecar json file provides meta data about the data + of a certain datatype. + + Parameters + ---------- + raw : mne.io.Raw + The data as MNE-Python Raw object. + task : str + Name of the task the data is based on. + manufacturer : str + Manufacturer of the acquisition system. For MEG also used to define the + coordinate system for the MEG sensors. + fname : str | mne_bids.BIDSPath + Filename to save the sidecar json to. + datatype : str + Type of the data as in ALLOWED_ELECTROPHYSIO_DATATYPE. + emptyroom_fname : str | mne_bids.BIDSPath + For MEG recordings, the path to an empty-room data file to be + associated with ``raw``. Only supported for MEG. + overwrite : bool + Whether to overwrite the existing file. + Defaults to False. + + """ + sfreq = raw.info["sfreq"] + try: + powerlinefrequency = raw.info["line_freq"] + powerlinefrequency = "n/a" if powerlinefrequency is None else powerlinefrequency + except KeyError: + raise ValueError( + "PowerLineFrequency parameter is required in the sidecar files. " + "Please specify it in info['line_freq'] before saving to BIDS, " + "e.g. by running: " + " raw.info['line_freq'] = 60" + "in your script, or by passing: " + " --line_freq 60 " + "in the command line for a 60 Hz line frequency. If the frequency " + "is unknown, set it to None" + ) + + if isinstance(raw, BaseRaw): + rec_type = "continuous" + elif isinstance(raw, Epochs): + rec_type = "epoched" + else: + rec_type = "n/a" + + # determine whether any channels have to be ignored: + n_ignored = len( + [ + ch_name + for ch_name in IGNORED_CHANNELS.get(manufacturer, list()) + if ch_name in raw.ch_names + ] + ) + # all ignored channels are trigger channels at the moment... + + n_megchan = len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_MEG_CH]) + n_megrefchan = len( + [ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_REF_MEG_CH] + ) + n_eegchan = len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_EEG_CH]) + n_ecogchan = len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_ECOG_CH]) + n_seegchan = len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_SEEG_CH]) + n_eogchan = len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_EOG_CH]) + n_ecgchan = len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_ECG_CH]) + n_emgchan = len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_EMG_CH]) + n_miscchan = len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_MISC_CH]) + n_stimchan = ( + len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_STIM_CH]) + - n_ignored + ) + n_dbschan = len([ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_DBS_CH]) + nirs_channels = [ch for ch in raw.info["chs"] if ch["kind"] == FIFF.FIFFV_FNIRS_CH] + n_nirscwchan = len(nirs_channels) + n_nirscwsrc = len( + np.unique([ch["ch_name"].split(" ")[0].split("_")[0] for ch in nirs_channels]) + ) + n_nirscwdet = len( + np.unique([ch["ch_name"].split(" ")[0].split("_")[1] for ch in nirs_channels]) + ) + + # Set DigitizedLandmarks to True if any of LPA, RPA, NAS are found + # Set DigitizedHeadPoints to True if any "Extra" points are found + # (DigitizedHeadPoints done for Neuromag MEG files only) + digitized_head_points = False + digitized_landmark = False + if datatype == "meg" and raw.info["dig"] is not None: + for dig_point in raw.info["dig"]: + if dig_point["kind"] in [ + FIFF.FIFFV_POINT_NASION, + FIFF.FIFFV_POINT_RPA, + FIFF.FIFFV_POINT_LPA, + ]: + digitized_landmark = True + elif dig_point["kind"] == FIFF.FIFFV_POINT_EXTRA and str( + raw.filenames[0] + ).endswith(".fif"): + digitized_head_points = True + software_filters = { + "SpatialCompensation": {"GradientOrder": raw.compensation_grade} + } + + # Compile cHPI information, if any. + system, _ = _get_meg_system(raw.info) + chpi = None + hpi_freqs = [] + if datatype == "meg": + # We need to handle different data formats differently + if system == "CTF_275": + try: + mne.chpi.extract_chpi_locs_ctf(raw) + chpi = True + except RuntimeError: + chpi = False + logger.info("Could not find cHPI information in raw data.") + elif system == "KIT": + try: + mne.chpi.extract_chpi_locs_kit(raw) + chpi = True + except (RuntimeError, ValueError): + chpi = False + logger.info("Could not find cHPI information in raw data.") + elif system in ["122m", "306m"]: + n_active_hpi = mne.chpi.get_active_chpi(raw, on_missing="ignore") + chpi = bool(n_active_hpi.sum() > 0) + if chpi: + hpi_freqs, _, _ = get_chpi_info(info=raw.info, on_missing="ignore") + hpi_freqs = list(hpi_freqs) + + # Define datatype-specific JSON dictionaries + ch_info_json_common = [ + ("TaskName", task), + ("Manufacturer", manufacturer), + ("PowerLineFrequency", powerlinefrequency), + ("SamplingFrequency", sfreq), + ("SoftwareFilters", "n/a"), + ("RecordingDuration", raw.times[-1]), + ("RecordingType", rec_type), + ] + + ch_info_json_meg = [ + ("DewarPosition", "n/a"), + ("DigitizedLandmarks", digitized_landmark), + ("DigitizedHeadPoints", digitized_head_points), + ("MEGChannelCount", n_megchan), + ("MEGREFChannelCount", n_megrefchan), + ("SoftwareFilters", software_filters), + ] + + if chpi is not None: + ch_info_json_meg.append(("ContinuousHeadLocalization", chpi)) + ch_info_json_meg.append(("HeadCoilFrequency", hpi_freqs)) + + if emptyroom_fname is not None: + ch_info_json_meg.append(("AssociatedEmptyRoom", str(emptyroom_fname))) + + ch_info_json_eeg = [ + ("EEGReference", "n/a"), + ("EEGGround", "n/a"), + ("EEGPlacementScheme", _infer_eeg_placement_scheme(raw)), + ("Manufacturer", manufacturer), + ] + + ch_info_json_ieeg = [ + ("iEEGReference", "n/a"), + ("ECOGChannelCount", n_ecogchan), + ("SEEGChannelCount", n_seegchan + n_dbschan), + ] + + ch_info_json_nirs = [("Manufacturer", manufacturer)] + + ch_info_ch_counts = [ + ("EEGChannelCount", n_eegchan), + ("EOGChannelCount", n_eogchan), + ("ECGChannelCount", n_ecgchan), + ("EMGChannelCount", n_emgchan), + ("MiscChannelCount", n_miscchan), + ("TriggerChannelCount", n_stimchan), + ] + + ch_info_ch_counts_nirs = [ + ("NIRSChannelCount", n_nirscwchan), + ("NIRSSourceOptodeCount", n_nirscwsrc), + ("NIRSDetectorOptodeCount", n_nirscwdet), + ] + + # Stitch together the complete JSON dictionary + ch_info_json = ch_info_json_common + if datatype == "meg": + append_datatype_json = ch_info_json_meg + elif datatype == "eeg": + append_datatype_json = ch_info_json_eeg + elif datatype == "ieeg": + append_datatype_json = ch_info_json_ieeg + elif datatype == "nirs": + append_datatype_json = ch_info_json_nirs + ch_info_ch_counts.extend(ch_info_ch_counts_nirs) + + ch_info_json += append_datatype_json + ch_info_json += ch_info_ch_counts + ch_info_json = OrderedDict(ch_info_json) + + _write_json(fname, ch_info_json, overwrite) + + return fname + + +def _deface(image, landmarks, deface): + nib = _import_nibabel("deface MRIs") + + inset, theta = (5, 15.0) + if isinstance(deface, dict): + if "inset" in deface: + inset = deface["inset"] + if "theta" in deface: + theta = deface["theta"] + + if not _is_numeric(inset): + raise ValueError(f"inset must be numeric (float, int). Got {type(inset)}") + + if not _is_numeric(theta): + raise ValueError(f"theta must be numeric (float, int). Got {type(theta)}") + + if inset < 0: + raise ValueError("inset should be positive, Got {inset}") + + if not 0 <= theta < 90: + raise ValueError("theta should be between 0 and 90 degrees. Got {theta}") + + # get image data, make a copy + image_data = image.get_fdata().copy() + + # make indices to move around so that the image doesn't have to + idxs = np.meshgrid( + np.arange(image_data.shape[0]), + np.arange(image_data.shape[1]), + np.arange(image_data.shape[2]), + indexing="ij", + ) + idxs = np.array(idxs) # (3, *image_data.shape) + idxs = np.transpose(idxs, [1, 2, 3, 0]) # (*image_data.shape, 3) + idxs = idxs.reshape(-1, 3) # (n_voxels, 3) + + # convert to RAS by applying affine + idxs = nib.affines.apply_affine(image.affine, idxs) + + # now comes the actual defacing + # 1. move center of voxels to (nasion - inset) + # 2. rotate the head by theta from vertical + x, y, z = nib.affines.apply_affine(image.affine, landmarks)[1] + idxs = apply_trans(translation(x=-x, y=-y + inset, z=-z), idxs) + idxs = apply_trans(rotation(x=-np.pi / 2 + np.deg2rad(theta)), idxs) + idxs = idxs.reshape(image_data.shape + (3,)) + mask = idxs[..., 2] < 0 # z < middle + image_data[mask] = 0.0 + + # smooth decided against for potential lack of anonymizaton + # https://gist.github.com/alexrockhill/15043928b716a432db3a84a050b241ae + + image = nib.Nifti1Image(image_data, image.affine, image.header) + return image + + +def _write_raw_fif(raw, bids_fname): + """Save out the raw file in FIF. + + Parameters + ---------- + raw : mne.io.Raw + Raw file to save out. + bids_fname : str | mne_bids.BIDSPath + The name of the BIDS-specified file where the raw object + should be saved. + + """ + raw.save( + bids_fname, + fmt=raw.orig_format, + split_size=_FIFF_SPLIT_SIZE, + split_naming="bids", + overwrite=True, + ) + + +def _write_raw_brainvision(raw, bids_fname, events, overwrite): + """Save out the raw file in BrainVision format. + + Parameters + ---------- + raw : mne.io.Raw + Raw file to save out. + bids_fname : str + The name of the BIDS-specified file where the raw object + should be saved. + events : ndarray + The events as MNE-Python format ndaray. + overwrite : bool + Whether or not to overwrite existing files. + """ + if not check_version("pybv", PYBV_VERSION): # pragma: no cover + raise ImportError( + f"pybv >= {PYBV_VERSION} is required for converting" + " file to BrainVision format" + ) + from pybv import write_brainvision + + # Subtract raw.first_samp because brainvision marks events starting from + # the first available data point and ignores the raw.first_samp + if events is not None: + events[:, 0] -= raw.first_samp + events = events[:, [0, 2]] # reorder for pybv required order + meas_date = raw.info["meas_date"] + if meas_date is not None: + meas_date = _stamp_to_dt(meas_date) + + # pybv needs to know the units of the data for appropriate scaling + # get voltage units as micro-volts and all other units "as is" + unit = [] + for chs in raw.info["chs"]: + if chs["unit"] == FIFF.FIFF_UNIT_V: + unit.append("µV") + else: + unit.append(_unit2human.get(chs["unit"], "n/a")) + unit = [u if u not in ["NA"] else "n/a" for u in unit] + + # We enforce conversion to float32 format + # XXX: pybv can also write to int16, to do that, we need to get + # original units of data prior to conversion, and add an optimization + # function to pybv that maximizes the resolution parameter while + # ensuring that int16 can represent the data in original units. + if raw.orig_format != "single": + warn( + f'Encountered data in "{raw.orig_format}" format. ' + "Converting to float32.", + RuntimeWarning, + ) + + # Writing to float32 µV with 0.1 resolution are the pybv defaults, + # which guarantees accurate roundtrip for values >= 1e-7 µV + fmt = "binary_float32" + resolution = 1e-1 + write_brainvision( + data=raw.get_data(), + sfreq=raw.info["sfreq"], + ch_names=raw.ch_names, + ref_ch_names=None, + fname_base=op.splitext(op.basename(bids_fname))[0], + folder_out=op.dirname(bids_fname), + overwrite=overwrite, + events=events, + resolution=resolution, + unit=unit, + fmt=fmt, + meas_date=None, + ) + + +def _write_raw_edf(raw, bids_fname, overwrite): + """Store data as EDF. + + Parameters + ---------- + raw : mne.io.Raw + Raw data to save. + bids_fname : str + The output filename. + overwrite : bool + Whether to overwrite an existing file or not. + """ + assert str(bids_fname).endswith(".edf") + raw.export(bids_fname, overwrite=overwrite) + + +def _write_raw_eeglab(raw, bids_fname, overwrite): + """Store data as EEGLAB. + + Parameters + ---------- + raw : mne.io.Raw + Raw data to save. + bids_fname : str + The output filename. + overwrite : bool + Whether to overwrite an existing file or not. + """ + assert str(bids_fname).endswith(".set") + raw.export(bids_fname, overwrite=overwrite) + + +@verbose +def make_dataset_description( + *, + path, + name, + hed_version=None, + dataset_type="raw", + data_license=None, + authors=None, + acknowledgements=None, + how_to_acknowledge=None, + funding=None, + ethics_approvals=None, + references_and_links=None, + doi=None, + generated_by=None, + source_datasets=None, + overwrite=False, + verbose=None, +): + """Create a dataset_description.json file for a BIDS dataset. + + The dataset_description.json file is required in BIDS and describes + several general aspects of the dataset. You can use this function + to freely add metadata fields to this file. See the BIDS specification + for information about what each metadata field means. + + Parameters + ---------- + path : str + A path to a folder where the description will be created. + name : str + The name of this BIDS dataset. + hed_version : str + If HED tags are used: The version of the HED schema used to validate + HED tags for study. + dataset_type : str + Must be either "raw" or "derivative". Defaults to "raw". + data_license : str | None + The license under which this dataset is published. + authors : list | str | None + List of individuals who contributed to the creation/curation of the + dataset. Must be a list of str (e.g., ['a', 'b', 'c']) or a single + comma-separated str (e.g., 'a, b, c'). + acknowledgements : str | None + A str acknowledging individuals who contributed to the + creation/curation of this dataset. + how_to_acknowledge : str | None + A str describing how to acknowledge this dataset. + funding : list | str | None + List of sources of funding (e.g., grant numbers). Must be a list of + str (e.g., ['a', 'b', 'c']) or a single comma-separated str + (e.g., 'a, b, c'). + ethics_approvals : list | str | None + List of ethics committee approvals of the research protocols + and/or protocol identifiers. Must be a list of str (e.g., + ['a', 'b', 'c']) or a single comma-separated str (e.g., 'a, b, c'). + references_and_links : list | str | None + List of references to publication that contain information on the + dataset, or links. Must be a list of str (e.g., ['a', 'b', 'c']) + or a single comma-separated str (e.g., 'a, b, c'). + doi : str | None + The Digital Object Identifier of the dataset (not the corresponding + paper). Must be of the form ``doi:`` (e.g., + doi:10.5281/zenodo.3686061). + generated_by : list of dict | None + Used to specify provenance of the dataset. See BIDS specification + for details. + source_datasets : list of dict | None + Used to specify the locations and relevant attributes of all source + datasets. Each dict in the list represents one source dataset and + may contain the following keys: ``URL``, ``DOI``, ``Version``. + overwrite : bool + Whether to overwrite existing files or data in files. + Defaults to False. + If overwrite is True, provided fields will overwrite previous data. + If overwrite is False, no existing data will be overwritten or + replaced. + %(verbose)s + + Notes + ----- + The required metadata field ``BIDSVersion`` will be automatically filled in + by mne_bids. + + """ + # Convert potential string input into list of strings + convert_vars = [authors, funding, references_and_links, ethics_approvals] + convert_vars = [ + [i.strip() for i in var.split(",")] if isinstance(var, str) else var + for var in convert_vars + ] + authors, funding, references_and_links, ethics_approvals = convert_vars + + # Perform input checks + if dataset_type not in ["raw", "derivative"]: + raise ValueError('`dataset_type` must be either "raw" or ' '"derivative."') + if isinstance(doi, str): + if not doi.startswith("doi:"): + warn( + "The `doi` field in dataset_description should be of the " + "form `doi:`" + ) + + # check generated_by and source_datasets + msg_type = "{} must be a list of dicts or None." + msg_key = "found unexpected key(s) in dict: {}" + + generated_by_keys = set(["Name", "Version", "Description", "CodeURL", "Container"]) + if isinstance(generated_by, list): + if not all([isinstance(i, dict) for i in generated_by]): + raise ValueError(msg_type.format("generated_by")) + for i in generated_by: + if "Name" not in i: + raise ValueError( + '"Name" is a required field for each dict in ' "generated_by" + ) + if not set(i.keys()).issubset(generated_by_keys): + raise ValueError(msg_key.format(i.keys() - generated_by_keys)) + else: + if generated_by is not None: + raise ValueError(msg_type.format("generated_by")) + + source_ds_keys = set(["URL", "DOI", "Version"]) + if isinstance(source_datasets, list): + if not all([isinstance(i, dict) for i in source_datasets]): + raise ValueError(msg_type.format("source_datasets")) + for i in source_datasets: + if not set(i.keys()).issubset(source_ds_keys): + raise ValueError(msg_key.format(i.keys() - source_ds_keys)) + else: + if source_datasets is not None: + raise ValueError(msg_type.format("source_datasets")) + + # Prepare dataset_description.json + fname = op.join(path, "dataset_description.json") + description = OrderedDict( + [ + ("Name", name), + ("BIDSVersion", BIDS_VERSION), + ("HEDVersion", hed_version), + ("DatasetType", dataset_type), + ("License", data_license), + ("Authors", authors), + ("Acknowledgements", acknowledgements), + ("HowToAcknowledge", how_to_acknowledge), + ("Funding", funding), + ("EthicsApprovals", ethics_approvals), + ("ReferencesAndLinks", references_and_links), + ("DatasetDOI", doi), + ("GeneratedBy", generated_by), + ("SourceDatasets", source_datasets), + ] + ) + + # Handle potentially existing file contents + if op.isfile(fname): + 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( + "Conflicting BIDSVersion found in dataset_description.json! " + "Consider setting BIDS root to a new directory and redo " + "conversion after ensuring all software has been updated. " + "Original dataset description will not be overwritten." + ) + overwrite = False + for key in description: + if description[key] is None or not overwrite: + description[key] = orig_cols.get(key, None) + + # default author to make dataset description BIDS compliant + # if the user passed an author don't overwrite, + # if there was an author there, only overwrite if `overwrite=True` + if authors is None and (description["Authors"] is None or overwrite): + description["Authors"] = ["[Unspecified]"] + + # Only write data that is not None + pop_keys = [key for key, val in description.items() if val is None] + for key in pop_keys: + description.pop(key) + _write_json(fname, description, overwrite=True) + + +@verbose +def write_raw_bids( + raw, + bids_path, + events=None, + event_id=None, + *, + anonymize=None, + format="auto", + symlink=False, + empty_room=None, + allow_preload=False, + montage=None, + acpc_aligned=False, + overwrite=False, + verbose=None, +): + """Save raw data to a BIDS-compliant folder structure. + + .. warning:: * The original file is simply copied over if the original + file format is BIDS-supported for that datatype. Otherwise, + this function will convert to a BIDS-supported file format + while warning the user. For EEG and iEEG data, conversion + will be to BrainVision format; for MEG, conversion will be + to FIFF. + + * ``mne-bids`` will infer the manufacturer information + from the file extension. If your file format is non-standard + for the manufacturer, please update the manufacturer field + in the sidecars manually. + + Parameters + ---------- + raw : mne.io.Raw + The raw data. It must be an instance of `mne.io.Raw` that is not + already loaded from disk unless ``allow_preload`` is explicitly set + to ``True``. See warning for the ``allow_preload`` parameter. + bids_path : BIDSPath + The file to write. The `mne_bids.BIDSPath` instance passed here + **must** have the ``subject``, ``task``, and ``root`` attributes set. + If the ``datatype`` attribute is not set, it will be inferred from the + recording data type found in ``raw``. In case of multiple data types, + the ``.datatype`` attribute must be set. + Example:: + + bids_path = BIDSPath(subject='01', session='01', task='testing', + acquisition='01', run='01', datatype='meg', + root='/data/BIDS') + + This will write the following files in the correct subfolder ``root``:: + + sub-01_ses-01_task-testing_acq-01_run-01_meg.fif + sub-01_ses-01_task-testing_acq-01_run-01_meg.json + sub-01_ses-01_task-testing_acq-01_run-01_channels.tsv + sub-01_ses-01_acq-01_coordsystem.json + + and the following one if ``events`` is not ``None``:: + + sub-01_ses-01_task-testing_acq-01_run-01_events.tsv + + and add a line to the following files:: + + participants.tsv + scans.tsv + + Note that the extension is automatically inferred from the raw + object. + events : path-like | np.ndarray | None + Use this parameter to specify events to write to the ``*_events.tsv`` + sidecar file, additionally to the object's :class:`~mne.Annotations` + (which are always written). + If ``path-like``, specifies the location of an MNE events file. + If an array, the MNE events array (shape: ``(n_events, 3)``). + If a path or an array and ``raw.annotations`` exist, the union of + ``events`` and ``raw.annotations`` will be written. + Mappings from event names to event codes (listed in the third + column of the MNE events array) must be specified via the ``event_id`` + parameter; otherwise, an exception is raised. If + :class:`~mne.Annotations` are present, their descriptions must be + included in ``event_id`` as well. + If ``None``, events will only be inferred from the raw object's + :class:`~mne.Annotations`. + + .. note:: + If specified, writes the union of ``events`` and + ``raw.annotations``. If you wish to **only** write + ``raw.annotations``, pass ``events=None``. If you want to + **exclude** the events in ``raw.annotations`` from being written, + call ``raw.set_annotations(None)`` before invoking this function. + + .. note:: + Descriptions of all event codes must be specified via the + ``event_id`` parameter. + + event_id : dict | None + Descriptions or names describing the event codes, if you passed + ``events``. The descriptions will be written to the ``trial_type`` + column in ``*_events.tsv``. The dictionary keys correspond to the event + description,s and the values to the event codes. You must specify a + description for all event codes appearing in ``events``. If your data + contains :class:`~mne.Annotations`, you can use this parameter to + assign event codes to each unique annotation description (mapping from + description to event code). + anonymize : dict | None + If `None` (default), no anonymization is performed. + If a dictionary, data will be anonymized depending on the dictionary + keys: ``daysback`` is a required key, ``keep_his`` is optional. + + ``daysback`` : int + Number of days by which to move back the recording date in time. + In studies with multiple subjects the relative recording date + differences between subjects can be kept by using the same number + of ``daysback`` for all subject anonymizations. ``daysback`` should + be great enough to shift the date prior to 1925 to conform with + BIDS anonymization rules. + + ``keep_his`` : bool + If ``False`` (default), all subject information next to the + recording date will be overwritten as well. If ``True``, keep + subject information apart from the recording date. + + ``keep_source`` : bool + Whether to store the name of the ``raw`` input file in the + ``source`` column of ``scans.tsv``. By default, this information + is not stored. + + format : 'auto' | 'BrainVision' | 'EDF' | 'FIF' | 'EEGLAB' + Controls the file format of the data after BIDS conversion. If + ``'auto'``, MNE-BIDS will attempt to convert the input data to BIDS + without a change of the original file format. A conversion to a + different file format will then only take place if the original file + format lacks some necessary features. + Conversion may be forced to BrainVision, EDF, or EEGLAB for (i)EEG, + and to FIF for MEG data. + symlink : bool + Instead of copying the source files, only create symbolic links to + preserve storage space. This is only allowed when not anonymizing the + data (i.e., ``anonymize`` must be ``None``). + + .. note:: + Symlinks currently only work with FIFF files. In case of split + files, only a link to the first file will be created, and + :func:`mne_bids.read_raw_bids` will correctly handle reading the + data again. + + .. note:: + Symlinks are currently only supported on macOS and Linux. We will + add support for Windows 10 at a later time. + + empty_room : mne.io.Raw | BIDSPath | None + The empty-room recording to be associated with this file. This is + only supported for MEG data. + If :class:`~mne.io.Raw`, you may pass raw data that was not preloaded + (otherwise, pass ``allow_preload=True``); i.e., it behaves similar to + the ``raw`` parameter. The session name will be automatically generated + from the raw object's ``info['meas_date']``. + If a :class:`~mne_bids.BIDSPath`, the ``root`` attribute must be the + same as in ``bids_path``. Pass ``None`` (default) if you do not wish to + specify an associated empty-room recording. + + .. versionchanged:: 0.11 + Accepts :class:`~mne.io.Raw` data. + allow_preload : bool + If ``True``, allow writing of preloaded raw objects (i.e., + ``raw.preload`` is ``True``). Because the original file is ignored, you + must specify what ``format`` to write (not ``auto``). + + .. warning:: + BIDS was originally designed for unprocessed or minimally processed + data. For this reason, by default, we prevent writing of preloaded + data that may have been modified. Only use this option when + absolutely necessary: for example, manually converting from file + formats not supported by MNE or writing preprocessed derivatives. + Be aware that these use cases are not fully supported. + montage : mne.channels.DigMontage | None + The montage with channel positions if channel position data are + to be stored in a format other than "head" (the internal MNE + coordinate frame that the data in ``raw`` is stored in). + acpc_aligned : bool + It is difficult to check whether the T1 scan is ACPC aligned which + means that "mri" coordinate space is "ACPC" BIDS coordinate space. + So, this flag is required to be True when the digitization data + is in "mri" for intracranial data to confirm that the T1 is + ACPC-aligned. + overwrite : bool + Whether to overwrite existing files or data in files. + Defaults to ``False``. + + If ``True``, any existing files with the same BIDS parameters + will be overwritten with the exception of the ``*_participants.tsv`` + and ``*_scans.tsv`` files. For these files, parts of pre-existing data + that match the current data will be replaced. For + ``*_participants.tsv``, specifically, age, sex and hand fields will be + overwritten, while any manually added fields in ``participants.json`` + and ``participants.tsv`` by a user will be retained. + If ``False``, no existing data will be overwritten or + replaced. + + %(verbose)s + + Returns + ------- + bids_path : BIDSPath + The path of the created data file. + + .. note:: + If you passed empty-room raw data via ``empty_room``, the + :class:`~mne_bids.BIDSPath` of the empty-room recording can be + retrieved via ``bids_path.find_empty_room(use_sidecar_only=True)``. + + Notes + ----- + You should ensure that ``raw.info['subject_info']`` and + ``raw.info['meas_date']`` are set to proper (not-``None``) values to allow + for the correct computation of each participant's age when creating + ``*_participants.tsv``. + + This function will convert existing `mne.Annotations` from + ``raw.annotations`` to events. Additionally, any events supplied via + ``events`` will be written too. To avoid writing of annotations, + remove them from the raw file via ``raw.set_annotations(None)`` before + invoking ``write_raw_bids``. + + To write events encoded in a ``STIM`` channel, you first need to create the + events array manually and pass it to this function: + + .. + events = mne.find_events(raw, min_duration=0.002) + write_raw_bids(..., events=events) + + See the documentation of :func:`mne.find_events` for more information on + event extraction from ``STIM`` channels. + + When anonymizing ``.edf`` files, then the file format for EDF limits + how far back we can set the recording date. Therefore, all anonymized + EDF datasets will have an internal recording date of ``01-01-1985``, + and the actual recording date will be stored in the ``scans.tsv`` + file's ``acq_time`` column. + + ``write_raw_bids`` will generate a ``dataset_description.json`` file + if it does not already exist. Minimal metadata will be written there. + If one sets ``overwrite`` to ``True`` here, it will not overwrite an + existing ``dataset_description.json`` file. + If you need to add more data there, or overwrite it, then you should + call :func:`mne_bids.make_dataset_description` directly. + + When writing EDF or BDF files, all file extensions are forced to be + lower-case, in compliance with the BIDS specification. + + See Also + -------- + mne.io.Raw.anonymize + mne.find_events + mne.Annotations + mne.events_from_annotations + + """ + if not isinstance(raw, BaseRaw): + raise ValueError("raw_file must be an instance of BaseRaw, got %s" % type(raw)) + + if raw.preload is not False and not allow_preload: + raise ValueError( + "The data has already been loaded from disk. To write it to BIDS, " + 'pass "allow_preload=True" and the "format" parameter.' + ) + + if not isinstance(bids_path, BIDSPath): + raise RuntimeError( + '"bids_path" must be a BIDSPath object. Please ' + "instantiate using mne_bids.BIDSPath()." + ) + + _validate_type( + events, + types=("path-like", np.ndarray, None), + item_name="events", + type_name="path-like, NumPy array, or None", + ) + + if symlink and sys.platform in ("win32", "cygwin"): + raise NotImplementedError( + "Symbolic links are currently not supported " + "by MNE-BIDS on Windows operating systems." + ) + + if symlink and anonymize is not None: + raise ValueError("Cannot create symlinks when anonymizing data.") + + if bids_path.root is None: + raise ValueError( + 'The root of the "bids_path" must be set. Please call ' + '"bids_path.root = " to set the root of the BIDS dataset.' + ) + + if bids_path.subject is None: + raise ValueError( + 'The subject of the "bids_path" must be set. Please call ' + '"bids_path.subject = "' + ) + + if bids_path.task is None: + raise ValueError( + 'The task of the "bids_path" must be set. Please call ' + '"bids_path.task = "' + ) + + if events is not None and event_id is None: + raise ValueError("You passed events, but no event_id dictionary.") + + _validate_type( + item=empty_room, item_name="empty_room", types=(mne.io.BaseRaw, BIDSPath, None) + ) + _validate_type(montage, (mne.channels.DigMontage, None), "montage") + _validate_type(acpc_aligned, bool, "acpc_aligned") + + raw = raw.copy() + convert = False # flag if converting not copying + + # Load file, filename, extension + if not allow_preload: + raw_fname = raw.filenames[0] + if ".ds" in op.dirname(raw.filenames[0]): + raw_fname = op.dirname(raw.filenames[0]) + # point to file containing header info for multifile systems + raw_fname = str(raw_fname).replace(".eeg", ".vhdr") + raw_fname = str(raw_fname).replace(".fdt", ".set") + raw_fname = str(raw_fname).replace(".dat", ".lay") + _, ext = _parse_ext(raw_fname) + + # force all EDF/BDF files with upper-case extension to be written as + # lower case + if ext == ".EDF": + ext = ".edf" + elif ext == ".BDF": + ext = ".bdf" + + if ext not in ALLOWED_INPUT_EXTENSIONS: + raise ValueError( + f"The input data is in a file format not supported by " + f'BIDS: "{ext}". You can try to preload the data and call ' + f'write_raw_bids() with the "allow_preload=True" and the ' + f'"format" parameters.' + ) + + if symlink and ext != ".fif": + raise NotImplementedError( + "Symlinks are currently only supported for FIFF files." + ) + + raw_orig = reader[ext](**raw._init_kwargs) + else: + if format == "BrainVision": + ext = ".vhdr" + elif format == "EDF": + ext = ".edf" + elif format == "EEGLAB": + ext = ".set" + elif format == "FIF": + ext = ".fif" + else: + msg = ( + 'For preloaded data, you must set the "format" parameter ' + "to one of: BrainVision, EDF, EEGLAB, or FIF" + ) + if format != "auto": # the default was changed + msg += f', but got: "{format}"' + + raise ValueError(msg) + + raw_orig = raw + + # Check times + if not np.array_equal(raw.times, raw_orig.times): + if len(raw.times) == len(raw_orig.times): + msg = ( + "raw.times has changed since reading from disk, but " + "write_raw_bids() doesn't allow writing modified data." + ) + else: + msg = ( + "The raw data you want to write contains {comp} time " + "points than the raw data on disk. It is possible that you " + "{guess} your data." + ) + if len(raw.times) < len(raw_orig.times): + msg = msg.format(comp="fewer", guess="cropped") + elif len(raw.times) > len(raw_orig.times): + msg = msg.format(comp="more", guess="concatenated") + + msg += ( + " To write the data, please preload it and pass " + '"allow_preload=True" and the "format" parameter to ' + "write_raw_bids()." + ) + raise ValueError(msg) + + # Initialize BIDSPath + datatype = _handle_datatype(raw, bids_path.datatype) + bids_path = bids_path.copy().update( + datatype=datatype, suffix=datatype, extension=ext + ) + + # Check whether provided info and raw indicates valid MEG emptyroom data + data_is_emptyroom = False + if ( + bids_path.datatype == "meg" + and bids_path.subject == "emptyroom" + and bids_path.task == "noise" + ): + data_is_emptyroom = True + # check the session date provided is consistent with the value in raw + meas_date = raw.info.get("meas_date", None) + if meas_date is not None: + if not isinstance(meas_date, datetime): + meas_date = datetime.fromtimestamp(meas_date[0], tz=timezone.utc) + + if anonymize is not None and "daysback" in anonymize: + meas_date = meas_date - timedelta(anonymize["daysback"]) + er_date = meas_date.strftime("%Y%m%d") + bids_path = bids_path.copy().update(session=er_date) + else: + er_date = meas_date.strftime("%Y%m%d") + + if er_date != bids_path.session: + raise ValueError( + f"The date provided for the empty-room session " + f"({bids_path.session}) doesn't match the empty-room " + f"recording date found in the data's info structure " + f"({er_date})." + ) + + associated_er_path = None + + if isinstance(empty_room, mne.io.BaseRaw): + er_date = empty_room.info["meas_date"] + if not er_date: + raise ValueError( + "The empty-room raw data must have a valid measurement date " + 'set. Please update its info["meas_date"] field.' + ) + er_session = er_date.strftime("%Y%m%d") + er_bids_path = bids_path.copy().update( + subject="emptyroom", session=er_session, task="noise", run=None + ) + write_raw_bids( + raw=empty_room, + bids_path=er_bids_path, + events=None, + event_id=None, + anonymize=anonymize, + format=format, + symlink=symlink, + allow_preload=allow_preload, + montage=montage, + acpc_aligned=acpc_aligned, + overwrite=overwrite, + verbose=verbose, + ) + associated_er_path = er_bids_path.fpath + del er_bids_path, er_date, er_session + elif isinstance(empty_room, BIDSPath): + if bids_path.datatype != "meg": + raise ValueError('"empty_room" is only supported for ' "MEG data.") + if data_is_emptyroom: + raise ValueError( + "You cannot write empty-room data and pass " + '"empty_room" at the same time.' + ) + if bids_path.root != empty_room.root: + raise ValueError( + "The MEG data and its associated empty-room " + "recording must share the same BIDS root." + ) + associated_er_path = empty_room.fpath + + if associated_er_path is not None: + if not associated_er_path.exists(): + raise FileNotFoundError( + f"Empty-room data file not found: " f"{associated_er_path}" + ) + + # Turn it into a path relative to the BIDS root + associated_er_path = Path( + str(associated_er_path).replace(str(bids_path.root), "") + ) + # Ensure it works on Windows too + associated_er_path = associated_er_path.as_posix() + + # In case of an "emptyroom" subject, BIDSPath() will raise + # an exception if we don't provide a valid task ("noise"). Now, + # scans_fname, electrodes_fname, and coordsystem_fname must NOT include + # the task entity. Therefore, we cannot generate them with + # BIDSPath() directly. Instead, we use BIDSPath() directly + # as it does not make any advanced check. + + data_path = bids_path.mkdir().directory + + # create *_scans.tsv + session_path = BIDSPath( + subject=bids_path.subject, session=bids_path.session, root=bids_path.root + ) + scans_path = session_path.copy().update(suffix="scans", extension=".tsv") + + # create *_coordsystem.json + coordsystem_path = session_path.copy().update( + acquisition=bids_path.acquisition, + space=bids_path.space, + datatype=bids_path.datatype, + suffix="coordsystem", + extension=".json", + ) + + # For the remaining files, we can use BIDSPath to alter. + readme_fname = op.join(bids_path.root, "README") + participants_tsv_fname = op.join(bids_path.root, "participants.tsv") + participants_json_fname = participants_tsv_fname.replace(".tsv", ".json") + + sidecar_path = bids_path.copy().update(suffix=bids_path.datatype, extension=".json") + events_tsv_path = bids_path.copy().update(suffix="events", extension=".tsv") + events_json_path = events_tsv_path.copy().update(extension=".json") + channels_path = bids_path.copy().update(suffix="channels", extension=".tsv") + + # Anonymize + keep_source = False + if anonymize is not None: + daysback, keep_his, keep_source = _check_anonymize(anonymize, raw, ext) + raw.anonymize(daysback=daysback, keep_his=keep_his) + + if bids_path.datatype == "meg" and ext != ".fif": + warn("Converting to FIF for anonymization") + convert = True + bids_path.update(extension=".fif") + elif bids_path.datatype in ["eeg", "ieeg"]: + if ext not in [".vhdr", ".edf", ".bdf", ".EDF"]: + warn("Converting data files to BrainVision format for anonymization") + convert = True + bids_path.update(extension=".vhdr") + # Read in Raw object and extract metadata from Raw object if needed + orient = ORIENTATION.get(ext, "n/a") + unit = EXT_TO_UNIT_MAP.get(ext, "n/a") + manufacturer = MANUFACTURERS.get(ext, "n/a") + + # save readme file unless it already exists + # XXX: can include README overwrite in future if using a template API + # XXX: see https://github.com/mne-tools/mne-bids/issues/551 + _readme(bids_path.datatype, readme_fname, False) + + # save all participants meta data + _participants_tsv( + raw=raw, + subject_id=bids_path.subject, + fname=participants_tsv_fname, + overwrite=overwrite, + ) + _participants_json(participants_json_fname, True) + + # for MEG, we only write coordinate system + if bids_path.datatype == "meg" and not data_is_emptyroom: + if bids_path.space is None: + sensor_coord_system = orient + elif orient == "n/a": + sensor_coord_system = bids_path.space + elif bids_path.space in BIDS_STANDARD_TEMPLATE_COORDINATE_SYSTEMS: + sensor_coord_system = bids_path.space + elif orient != bids_path.space: + raise ValueError( + f"BIDSPath.space {bids_path.space} conflicts " + f"with filetype {ext} which has coordinate " + f"frame {orient}" + ) + _write_coordsystem_json( + raw=raw, + unit=unit, + hpi_coord_system=orient, + sensor_coord_system=sensor_coord_system, + fname=coordsystem_path.fpath, + datatype=bids_path.datatype, + overwrite=overwrite, + ) + _write_coordsystem_json( + raw=raw, + unit=unit, + hpi_coord_system=orient, + sensor_coord_system=sensor_coord_system, + fname=coordsystem_path.fpath, + datatype=bids_path.datatype, + overwrite=overwrite, + ) + elif bids_path.datatype in ["eeg", "ieeg", "nirs"]: + # We only write electrodes.tsv and accompanying coordsystem.json + # if we have an available DigMontage + if montage is not None or (raw.info["dig"] is not None and raw.info["dig"]): + _write_dig_bids(bids_path, raw, montage, acpc_aligned, overwrite) + else: + logger.info( + f"Writing of electrodes.tsv is not supported " + f'for data type "{bids_path.datatype}". Skipping ...' + ) + + # Write events. + if not data_is_emptyroom: + events_array, event_dur, event_desc_id_map = _read_events( + events, event_id, raw, bids_path=bids_path + ) + if events_array.size != 0: + _events_tsv( + events=events_array, + durations=event_dur, + raw=raw, + fname=events_tsv_path.fpath, + trial_type=event_desc_id_map, + overwrite=overwrite, + ) + _events_json(fname=events_json_path.fpath, overwrite=overwrite) + # Kepp events_array around for BrainVision writing below. + del event_desc_id_map, events, event_id, event_dur + + # make dataset description and add template data if it does not + # already exist. Always set overwrite to False here. If users + # want to edit their dataset_description, they can directly call + # this function. + make_dataset_description(path=bids_path.root, name=" ", overwrite=False) + + _sidecar_json( + raw, + task=bids_path.task, + manufacturer=manufacturer, + fname=sidecar_path.fpath, + datatype=bids_path.datatype, + emptyroom_fname=associated_er_path, + overwrite=overwrite, + ) + _channels_tsv(raw, channels_path.fpath, overwrite) + + # create parent directories if needed + _mkdir_p(os.path.dirname(data_path)) + + # If not already converting for anonymization, we may still need to do it + # if current format not BIDS compliant + if not convert: + convert = ext not in ALLOWED_DATATYPE_EXTENSIONS[bids_path.datatype] + + if convert and symlink: + raise RuntimeError( + "The input file format is not supported by the BIDS standard. " + "To store your data, MNE-BIDS would have to convert it. " + "However, this is not possible since you set symlink=True. " + "Deactivate symbolic links by passing symlink=False to allow " + "file format conversion." + ) + + # check if there is an BIDS-unsupported MEG format + if bids_path.datatype == "meg" and convert and not anonymize: + raise ValueError( + f"Got file extension {ext} for MEG data, " + f"expected one of " + f"{', '.join(sorted(ALLOWED_DATATYPE_EXTENSIONS['meg']))}" + ) + + if not convert: + logger.info(f"Copying data files to {bids_path.fpath.name}") + + # If users desire a certain format, will handle auto-conversion + if format != "auto": + if format == "BrainVision" and bids_path.datatype in ["ieeg", "eeg"]: + convert = True + bids_path.update(extension=".vhdr") + elif format == "EDF" and bids_path.datatype in ["ieeg", "eeg"]: + convert = True + bids_path.update(extension=".edf") + elif format == "EEGLAB" and bids_path.datatype in ["ieeg", "eeg"]: + convert = True + bids_path.update(extension=".set") + elif format == "FIF" and bids_path.datatype == "meg": + convert = True + bids_path.update(extension=".fif") + elif all(format not in values for values in CONVERT_FORMATS.values()): + raise ValueError( + f'The input "format" {format} is not an ' + f"accepted input format for `write_raw_bids`. " + f"Please use one of {CONVERT_FORMATS[datatype]} " + f"for {datatype} datatype." + ) + elif format not in CONVERT_FORMATS[datatype]: + raise ValueError( + f'The input "format" {format} is not an ' + f"accepted input format for {datatype} datatype. " + f"Please use one of {CONVERT_FORMATS[datatype]} " + f"for {datatype} datatype." + ) + + # raise error when trying to copy files (copyfile_*) into same location + # (src == dest, see https://github.com/mne-tools/mne-bids/issues/867) + if ( + bids_path.fpath.exists() + and not convert + and bids_path.fpath.as_posix() == Path(raw_fname).as_posix() + ): + raise FileExistsError( + f'Desired output BIDSPath ("{bids_path.fpath}") is the source' + " file. Please pass a different output BIDSPath, or set" + ' `format` to something other than "auto".' + ) + + # otherwise if the BIDSPath currently exists, check if we + # would like to overwrite the existing dataset + if bids_path.fpath.exists(): + if overwrite: + # Need to load data before removing its source + raw.load_data() + if bids_path.fpath.is_dir(): + shutil.rmtree(bids_path.fpath) + else: + bids_path.fpath.unlink() + else: + raise FileExistsError( + f'"{bids_path.fpath}" already exists. Please set overwrite to True.' + ) + + # File saving branching logic + if convert: + if bids_path.datatype == "meg": + _write_raw_fif( + raw, + ( + op.join(data_path, bids_path.basename) + if ext == ".pdf" + else bids_path.fpath + ), + ) + elif bids_path.datatype in ["eeg", "ieeg"] and format == "EDF": + warn("Converting data files to EDF format") + _write_raw_edf(raw, bids_path.fpath, overwrite=overwrite) + elif bids_path.datatype in ["eeg", "ieeg"] and format == "EEGLAB": + warn("Converting data files to EEGLAB format") + _write_raw_eeglab(raw, bids_path.fpath, overwrite=overwrite) + else: + warn("Converting data files to BrainVision format") + bids_path.update(suffix=bids_path.datatype, extension=".vhdr") + # XXX Should we write durations here too? + _write_raw_brainvision( + raw, bids_path.fpath, events=events_array, overwrite=overwrite + ) + elif ext == ".fif": + if symlink: + link_target = Path(raw.filenames[0]) + link_path = bids_path.fpath + link_path.symlink_to(link_target) + else: + _write_raw_fif(raw, bids_path) + # CTF data is saved and renamed in a directory + elif ext == ".ds": + copyfile_ctf(raw_fname, bids_path) + # BrainVision is multifile, copy over all of them and fix pointers + elif ext == ".vhdr": + copyfile_brainvision(raw_fname, bids_path, anonymize=anonymize) + elif ext in [".edf", ".EDF", ".bdf", ".BDF"]: + if anonymize is not None: + warn( + "EDF/EDF+/BDF files contain two fields for recording dates." + "Due to file format limitations, one of these fields only " + "supports 2-digit years. The date for that field will be " + "set to 85 (i.e., 1985), the earliest possible date. " + "The true anonymized date is stored in the scans.tsv file." + ) + copyfile_edf(raw_fname, bids_path, anonymize=anonymize) + # EEGLAB .set might be accompanied by a .fdt - find out and copy it too + elif ext == ".set": + copyfile_eeglab(raw_fname, bids_path) + elif ext == ".pdf": + raw_dir = op.join(data_path, op.splitext(bids_path.basename)[0]) + _mkdir_p(raw_dir) + copyfile_bti(raw_orig, raw_dir) + elif ext in [".con", ".sqd"]: + copyfile_kit( + raw_fname, + bids_path.fpath, + bids_path.subject, + bids_path.session, + bids_path.task, + bids_path.run, + raw._init_kwargs, + ) + else: + # ext may be .snirf + shutil.copyfile(raw_fname, bids_path) + + # write to the scans.tsv file the output file written + scan_relative_fpath = op.join(bids_path.datatype, bids_path.fpath.name) + _scans_tsv( + raw, + raw_fname=scan_relative_fpath, + fname=scans_path.fpath, + keep_source=keep_source, + overwrite=overwrite, + ) + logger.info(f"Wrote {scans_path.fpath} entry with " f"{scan_relative_fpath}.") + + return bids_path + + +def get_anat_landmarks(image, info, trans, fs_subject, fs_subjects_dir=None): + """Get anatomical landmarks in MRI voxel coordinates. + + This function transforms the fiducial points from "head" to MRI "voxel" + coordinate space. The landmarks obtained are defined w.r.t. the MRI passed + via the ``image`` parameter. + + Parameters + ---------- + image : path-like | mne_bids.BIDSPath | NibabelImageObject + Path to an MRI scan (e.g. T1w) of the subject. Can be in any format + readable by nibabel. Can also be a nibabel image object of an + MRI scan. Will be written as a .nii.gz file. + info : mne.Info + The measurement information from an electrophysiology recording of + the subject with the anatomical landmarks stored in its + :class:`mne.channels.DigMontage`. + trans : mne.transforms.Transform | path-like + The transformation matrix from head to MRI coordinates. Can + also be a string pointing to a ``.trans`` file containing the + transformation matrix. + fs_subject : str + The subject identifier used for FreeSurfer. Must be provided to write + the anatomical landmarks if they are not provided in MRI voxel space. + This is because the head coordinate of a + :class:`mne.channels.DigMontage` is aligned using FreeSurfer surfaces. + fs_subjects_dir : path-like | None + The FreeSurfer subjects directory. If ``None``, defaults to the + ``SUBJECTS_DIR`` environment variable. Must be provided to write + anatomical landmarks if they are not provided in MRI voxel space. + + Returns + ------- + landmarks : mne.channels.DigMontage + A montage with the landmarks in MRI voxel space. + """ + nib = _import_nibabel("get anatomical landmarks") + coords_dict, coord_frame = _get_fid_coords(info["dig"]) + if coord_frame != FIFF.FIFFV_COORD_HEAD: + raise ValueError( + "Fiducial coordinates in `info` must be in " + f"the head coordinate frame, got {coord_frame}" + ) + landmarks = np.asarray( + (coords_dict["lpa"], coords_dict["nasion"], coords_dict["rpa"]) + ) + + # get trans and ensure it is from head to MRI + trans, _ = _get_trans(trans, fro="head", to="mri") + landmarks = _meg_landmarks_to_mri_landmarks(landmarks, trans) + + # Get FS T1 image in MGH format + t1w_mgh = _get_t1w_mgh(fs_subject, fs_subjects_dir) + + # FS MGH image: go to T1 voxel space from surface RAS/TkReg RAS/freesurfer + landmarks = _mri_landmarks_to_mri_voxels(landmarks, t1w_mgh) + + # FS MGH image: go to T1 scanner space from T1 voxel space + landmarks = _mri_voxels_to_mri_scanner_ras(landmarks, t1w_mgh) + + # Input image: go to T1 voxel space from T1 scanner space + if isinstance(image, BIDSPath): + image = image.fpath + img_nii = _load_image(image, name="image") + img_mgh = nib.MGHImage(img_nii.dataobj, img_nii.affine) + landmarks = _mri_scanner_ras_to_mri_voxels(landmarks, img_mgh) + + landmarks = mne.channels.make_dig_montage( + lpa=landmarks[0], nasion=landmarks[1], rpa=landmarks[2], coord_frame="mri_voxel" + ) + + return landmarks + + +def _get_t1w_mgh(fs_subject, fs_subjects_dir): + """Return the T1w image in MGH format.""" + import nibabel as nib + + fs_subjects_dir = get_subjects_dir(fs_subjects_dir, raise_error=True) + t1_fname = Path(fs_subjects_dir) / fs_subject / "mri" / "T1.mgz" + if not t1_fname.exists(): + raise ValueError( + "Freesurfer recon-all subject folder " + "is incorrect or improperly formatted, " + f"got {Path(fs_subjects_dir) / fs_subject}" + ) + t1w_img = _load_image(str(t1_fname), name="T1.mgz") + t1w_mgh = nib.MGHImage(t1w_img.dataobj, t1w_img.affine) + return t1w_mgh + + +def _get_landmarks(landmarks, image_nii, kind=""): + import nibabel as nib + + if isinstance(landmarks, (str, Path)): + landmarks, coord_frame = read_fiducials(landmarks) + landmarks = np.array( + [landmark["r"] for landmark in landmarks], dtype=float + ) # unpack + else: + # Prepare to write the sidecar JSON, extract MEG landmarks + coords_dict, coord_frame = _get_fid_coords(landmarks.dig) + landmarks = np.asarray( + (coords_dict["lpa"], coords_dict["nasion"], coords_dict["rpa"]) + ) + + # check if coord frame is supported + if coord_frame not in (FIFF.FIFFV_MNE_COORD_MRI_VOXEL, FIFF.FIFFV_MNE_COORD_RAS): + raise ValueError(f"Coordinate frame not supported: {coord_frame}") + + # convert to voxels from scanner RAS to voxels + if coord_frame == FIFF.FIFFV_MNE_COORD_RAS: + # Make MGH image for header properties + img_mgh = nib.MGHImage(image_nii.dataobj, image_nii.affine) + landmarks = _mri_scanner_ras_to_mri_voxels(landmarks * 1e3, img_mgh) + + suffix = f"_{kind}" if kind else "" + + # Write sidecar.json + img_json = { + "LPA" + suffix: list(landmarks[0, :]), + "NAS" + suffix: list(landmarks[1, :]), + "RPA" + suffix: list(landmarks[2, :]), + } + return img_json, landmarks + + +@verbose +def write_anat( + image, bids_path, landmarks=None, deface=False, overwrite=False, verbose=None +): + """Put anatomical MRI data into a BIDS format. + + Given an MRI scan, format and store the MR data according to BIDS in the + correct location inside the specified :class:`mne_bids.BIDSPath`. If a + transformation matrix is supplied, this information will be stored in a + sidecar JSON file. + + .. note:: To generate the JSON sidecar with anatomical landmark + coordinates ("fiducials"), you need to pass the landmarks via + the ``landmarks`` parameter. :func:`mne_bids.get_anat_landmarks` + may be useful for getting the ``landmarks``. + + Parameters + ---------- + image : path-like | NibabelImageObject + Path to an MRI scan (e.g. T1w) of the subject. Can be in any format + readable by nibabel. Can also be a nibabel image object of an + MRI scan. Will be written as a .nii.gz file. + bids_path : BIDSPath + The file to write. The :class:`mne_bids.BIDSPath` instance passed here + **must** have the ``root`` and ``subject`` attributes set. + The suffix is assumed to be ``'T1w'`` if not present. It can + also be ``'FLASH'``, for example, to indicate FLASH MRI. + landmarks : mne.channels.DigMontage | path-like | dict | None + The montage or path to a montage with landmarks that can be + passed to provide information for defacing. Landmarks can be determined + from the head model using `mne coreg` GUI, or they can be determined + from the MRI using ``freeview``. If a dictionary is passed, then the + values must be instances of :class:`~mne.channels.DigMontage` or + path-like objects pointing to a :class:`~mne.channels.DigMontage` + stored on disk, and the keys of the must be strings + (e.g. ``'session-1'``) which will be used as naming suffix for the + landmarks in the sidecar JSON file. If ``None``, no sidecar JSON file + will be created. + deface : bool | dict + If False, no defacing is performed. + If ``True``, deface with default parameters using the provided + ``landmarks``. If multiple landmarks are provided, will + use the ones with the suffix ``'deface'``; if no landmarks with this + suffix exist, will use the first ones in the ``landmarks`` dictionary. + If dict, accepts the following keys: + + - `inset`: how far back in voxels to start defacing + relative to the nasion (default 5) + + - `theta`: is the angle of the defacing shear in degrees relative + to vertical (default 15). + + overwrite : bool + Whether to overwrite existing files or data in files. + Defaults to False. + If overwrite is True, any existing files with the same BIDS parameters + will be overwritten with the exception of the `participants.tsv` and + `scans.tsv` files. For these files, parts of pre-existing data that + match the current data will be replaced. + If overwrite is False, no existing data will be overwritten or + replaced. + %(verbose)s + + Returns + ------- + bids_path : BIDSPath + Path to the written MRI data. + """ + nib = _import_nibabel("write anatomical MRI data") + + write_sidecar = landmarks is not None + + if deface and landmarks is None: + raise ValueError("`landmarks` must be provided to deface the image") + + # Check if the root is available + if bids_path.root is None: + raise ValueError( + 'The root of the "bids_path" must be set. ' + 'Please use `bids_path.update(root="")` ' + "to set the root of the BIDS folder to read." + ) + # create a copy + bids_path = bids_path.copy() + + # BIDS demands anatomical scans have no task associated with them + bids_path.update(task=None) + + # XXX For now, only support writing a single run. + bids_path.update(run=None) + + # this file is anat + if bids_path.datatype is None: + bids_path.update(datatype="anat") + + # default to T1w + if not bids_path.suffix: + bids_path.update(suffix="T1w") + + # data is compressed Nifti + bids_path.update(extension=".nii.gz") + + # create the directory for the MRI data + bids_path.directory.mkdir(exist_ok=True, parents=True) + + # Try to read our MRI file and convert to MGH representation + image_nii = _load_image(image) + + # Check if we have necessary conditions for writing a sidecar JSON + if write_sidecar: + if not isinstance(landmarks, dict): + landmarks = {"": landmarks} + img_json = {} + for kind, this_landmarks in landmarks.items(): + img_json.update(_get_landmarks(this_landmarks, image_nii, kind=kind)[0]) + img_json = {"AnatomicalLandmarkCoordinates": img_json} + fname = bids_path.copy().update(extension=".json") + if op.isfile(fname) and not overwrite: + raise OSError( + "Wanted to write a file but it already exists and " + f'`overwrite` is set to False. File: "{fname}"' + ) + _write_json(fname, img_json, overwrite) + + if deface: + landmarks_deface = landmarks.get("deface") + if landmarks_deface is None: + # Take first one if none is specified for defacing. + landmarks_deface = next(iter(landmarks.items()))[1] + _, landmarks_deface = _get_landmarks(landmarks_deface, image_nii) + image_nii = _deface(image_nii, landmarks_deface, deface) + + # Save anatomical data + if op.exists(bids_path): + if overwrite: + os.remove(bids_path) + else: + raise OSError( + f"Wanted to write a file but it already exists and " + f'`overwrite` is set to False. File: "{bids_path}"' + ) + + nib.save(image_nii, bids_path.fpath) + + return bids_path + + +@verbose +def mark_channels(bids_path, *, ch_names, status, descriptions=None, verbose=None): + """Update status and description of channels in an existing BIDS dataset. + + Parameters + ---------- + bids_path : BIDSPath + The recording to update. The :class:`mne_bids.BIDSPath` instance passed + here **must** have the ``.root`` attribute set. The ``.datatype`` + attribute **may** be set. If ``.datatype`` is not set and only one data + type (e.g., only EEG or MEG data) is present in the dataset, it will be + selected automatically. + ch_names : str | list of str + The names of the channel(s) to mark with a ``status`` and possibly a + ``description``. Can be an empty list to indicate all channel names. + status : 'good' | 'bad' | list of str + The status of the channels ('good', or 'bad'). Default is 'bad'. If it + is a list, then must be a list of 'good', or 'bad' that has the same + length as ``ch_names``. + descriptions : None | str | list of str + Descriptions of the reasons that lead to the exclusion of the + channel(s). If a list, it must match the length of ``ch_names``. + If ``None``, no descriptions are added. + %(verbose)s + + Examples + -------- + Mark a single channel as bad. + + >>> root = Path('./mne_bids/tests/data/tiny_bids').absolute() + >>> bids_path = BIDSPath(subject='01', task='rest', session='eeg', + ... datatype='eeg', root=root) + >>> mark_channels(bids_path=bids_path, ch_names='C4', status='bad', + ... verbose=False) + + Mark multiple channels as bad, and add a description as to why. + + >>> bads = ['C3', 'PO10'] + >>> descriptions = ['very noisy', 'continuously flat'] + >>> mark_channels(bids_path, ch_names=bads, status='bad', + ... descriptions=descriptions, verbose=False) + + Mark all channels with a new description, while keeping them as a "good" + channel. + + >>> descriptions = ['resected', 'resected'] + >>> mark_channels(bids_path=bids_path, ch_names=['C3', 'C4'], + ... descriptions=descriptions, status='good', + ... verbose=False) + """ + if not isinstance(bids_path, BIDSPath): + raise RuntimeError( + '"bids_path" must be a BIDSPath object. Please ' + "instantiate using mne_bids.BIDSPath()." + ) + + if bids_path.root is None: + raise ValueError( + 'The root of the "bids_path" must be set. ' + 'Please use `bids_path.update(root="")` ' + "to set the root of the BIDS folder to read." + ) + + # Read sidecar file + channels_fname = _find_matching_sidecar( + bids_path, suffix="channels", extension=".tsv" + ) + tsv_data = _from_tsv(channels_fname) + + # if an empty list is passed in, then these are the entire list + # of channels + if ch_names == []: + ch_names = tsv_data["name"] + elif isinstance(ch_names, str): + ch_names = [ch_names] + + # set descriptions based on how it's passed in + if isinstance(descriptions, str): + descriptions = [descriptions] * len(ch_names) + elif not descriptions: + descriptions = [None] * len(ch_names) + + # make sure statuses is a list of strings + if isinstance(status, str): + status = [status] * len(ch_names) + + if len(ch_names) != len(descriptions): + raise ValueError("Number of channels and descriptions must match.") + + if len(status) != len(ch_names): + raise ValueError( + f"If status is a list of {len(status)} statuses, " + f"then it must have the same length as ch_names " + f"({len(ch_names)})." + ) + + if not all(status in ["good", "bad"] for status in status): + raise ValueError( + "Setting the status of a channel must only be " '"good", or "bad".' + ) + + # Read sidecar and create required columns if they do not exist. + if "status" not in tsv_data: + logger.info('No "status" column found in input file. Creating.') + tsv_data["status"] = ["good"] * len(tsv_data["name"]) + + if "status_description" not in tsv_data: + logger.info('No "status_description" column found in input file. ' "Creating.") + tsv_data["status_description"] = ["n/a"] * len(tsv_data["name"]) + + # Now actually mark the user-requested channels as bad. + for ch_name, status_, description in zip(ch_names, status, descriptions): + if ch_name not in tsv_data["name"]: + raise ValueError(f"Channel {ch_name} not found in dataset!") + + idx = tsv_data["name"].index(ch_name) + logger.info( + f"Processing channel {ch_name}:\n" + f" status: bad\n" + f" description: {description}" + ) + tsv_data["status"][idx] = status_ + + # only write if the description was passed in + if description is not None: + tsv_data["status_description"][idx] = description + + _write_tsv(channels_fname, tsv_data, overwrite=True) + + +@verbose +def write_meg_calibration(calibration, bids_path, *, verbose=None): + """Write the Elekta/Neuromag/MEGIN fine-calibration matrix to disk. + + Parameters + ---------- + calibration : path-like | dict + Either the path of the ``.dat`` file containing the file-calibration + matrix, or the dictionary returned by + :func:`mne.preprocessing.read_fine_calibration`. + bids_path : BIDSPath + A :class:`mne_bids.BIDSPath` instance with at least ``root`` and + ``subject`` set, and that ``datatype`` is either ``'meg'`` or + ``None``. + %(verbose)s + + Examples + -------- + >>> data_path = mne.datasets.testing.data_path(download=False) # doctest: +SKIP + >>> calibration_fname = op.join(data_path, 'SSS', 'sss_cal_3053.dat') # doctest: +SKIP + >>> bids_path = BIDSPath(subject='01', session='test', + ... root=op.join(data_path, 'mne_bids')) # doctest: +SKIP + >>> write_meg_calibration(calibration_fname, bids_path) # doctest: +SKIP + Writing fine-calibration file to ...sub-01_ses-test_acq-calibration_meg.dat... + """ # noqa: E501 + if bids_path.root is None or bids_path.subject is None: + raise ValueError("bids_path must have root and subject set.") + if bids_path.datatype not in (None, "meg"): + raise ValueError( + "Can only write fine-calibration information for MEG datasets." + ) + + _validate_type( + calibration, + types=("path-like", dict), + item_name="calibration", + type_name="path or dictionary", + ) + + if isinstance(calibration, dict) and ( + "ch_names" not in calibration + or "locs" not in calibration + or "imb_cals" not in calibration + ): + raise ValueError( + "The dictionary you passed does not appear to be a " + "proper fine-calibration dict. Please only pass the " + "output of " + "mne.preprocessing.read_fine_calibration(), or a " + "filename." + ) + + if not isinstance(calibration, dict): + calibration = mne.preprocessing.read_fine_calibration(calibration) + + out_path = BIDSPath( + subject=bids_path.subject, + session=bids_path.session, + acquisition="calibration", + suffix="meg", + extension=".dat", + datatype="meg", + root=bids_path.root, + ) + + logger.info(f"Writing fine-calibration file to {out_path}") + out_path.mkdir() + mne.preprocessing.write_fine_calibration( + fname=str(out_path), calibration=calibration + ) + + +@verbose +def write_meg_crosstalk(fname, bids_path, verbose=None): + """Write the Elekta/Neuromag/MEGIN crosstalk information to disk. + + Parameters + ---------- + fname : path-like + The path of the ``FIFF`` file containing the crosstalk information. + bids_path : BIDSPath + A :class:`mne_bids.BIDSPath` instance with at least ``root`` and + ``subject`` set, and that ``datatype`` is either ``'meg'`` or + ``None``. + %(verbose)s + + Examples + -------- + >>> data_path = mne.datasets.testing.data_path(download=False) # doctest: +SKIP + >>> crosstalk_fname = op.join(data_path, 'SSS', 'ct_sparse.fif') # doctest: +SKIP + >>> bids_path = BIDSPath(subject='01', session='test', + ... root=op.join(data_path, 'mne_bids')) # doctest: +SKIP + >>> write_meg_crosstalk(crosstalk_fname, bids_path) # doctest: +SKIP + Writing crosstalk file to ...sub-01_ses-test_acq-crosstalk_meg.fif + """ # noqa: E501 + if bids_path.root is None or bids_path.subject is None: + raise ValueError("bids_path must have root and subject set.") + if bids_path.datatype not in (None, "meg"): + raise ValueError( + "Can only write fine-calibration information for MEG datasets." + ) + + _validate_type(fname, types=("path-like",), item_name="fname") + + # MNE doesn't have public reader and writer functions for crosstalk data, + # so just copy the original file. Use shutil.copyfile() to only copy file + # contents, but not metadata & permissions. + out_path = BIDSPath( + subject=bids_path.subject, + session=bids_path.session, + acquisition="crosstalk", + suffix="meg", + extension=".fif", + datatype="meg", + root=bids_path.root, + ) + + logger.info(f"Writing crosstalk file to {out_path}") + out_path.mkdir() + shutil.copyfile(src=fname, dst=str(out_path)) + + +def _get_daysback( + *, bids_paths: list[BIDSPath], rng: np.random.Generator, show_progress_thresh: int +) -> int: + """Try to find a suitable "daysback" for anonymization. + + Parameters + ---------- + bids_paths + The BIDSPath instances to consider. Will be filtered down in this + function to reduce run time (only one file run per session). + rng + The RNG to use for selecting a `daysback` from the valid range. + show_progress_thresh + After narrowing down the files to query for their measurement date, + show a progress bar if >= this number of files remain. + """ + bids_paths_for_daysback = dict() + + # Only consider one run in each session to reduce the amount of files + # we need to access. + for bids_path in bids_paths: + subject = bids_path.subject + session = bids_path.session + datatype = bids_path.datatype + + if subject not in bids_paths_for_daysback: + bids_paths_for_daysback[subject] = [bids_path] + continue + elif session is None: + # Keep any one run for each data type + if datatype not in [p.datatype for p in bids_paths_for_daysback[subject]]: + bids_paths_for_daysback[subject].append(bids_path) + elif session is not None: + # Keep any one run for each data type and session + if all( + [ + session != p.session + for p in bids_paths_for_daysback[subject] + if datatype == p.datatype + ] + ): + bids_paths_for_daysback[subject].append(bids_path) + + bids_paths_to_consider = [] + for bids_path in bids_paths_for_daysback.values(): + bids_paths_to_consider.extend(bids_path) + + if len(bids_paths_to_consider) >= show_progress_thresh: + raws = [] + logger.info("\n") + for bids_path in ProgressBar( + iterable=bids_paths_to_consider, mesg="Determining daysback" + ): + raw = read_raw_bids(bids_path=bids_path, verbose="error") + raws.append(raw) + else: + raws = [ + read_raw_bids(bids_path=bp, verbose="error") + for bp in bids_paths_to_consider + ] + + daysback_min, daysback_max = get_anonymization_daysback(raws=raws, verbose=False) + + # Pick one randomly + daysback = rng.choice(np.arange(daysback_min, daysback_max + 1, dtype=int)) + daysback = int(daysback) + return daysback + + +def _check_crosstalk_path(bids_path: BIDSPath) -> bool: + is_crosstalk_path = ( + bids_path.datatype == "meg" + and bids_path.suffix == "meg" + and bids_path.acquisition == "crosstalk" + and bids_path.extension == ".fif" + ) + return is_crosstalk_path + + +def _check_finecal_path(bids_path: BIDSPath) -> bool: + is_finecal_path = ( + bids_path.datatype == "meg" + and bids_path.suffix == "meg" + and bids_path.acquisition == "calibration" + and bids_path.extension == ".dat" + ) + return is_finecal_path + + +@verbose +def anonymize_dataset( + bids_root_in, + bids_root_out, + daysback="auto", + subject_mapping="auto", + datatypes=None, + random_state=None, + verbose=None, +): + """Anonymize a BIDS dataset. + + This function creates a copy of a BIDS dataset, and tries to remove all + personally identifiable information from the copy. + + Parameters + ---------- + bids_root_in : path-like + The root directory of the input BIDS dataset. + bids_root_out : path-like + The directory to place the anonymized dataset into. + daysback : int | 'auto' + Number of days by which to move back the recording date in time. If + ``'auto'``, tries to randomly pick a suitable number. + subject_mapping : dict | callable | 'auto' | None + How to anonymize subject IDs. If a dictionary, maps the original IDs + (keys) to the anonymized IDs (values). If a function, must be one that + accepts the original IDs as a list of strings and returns a dictionary + with original IDs as keys and anonymized IDs as values. If ``'auto'``, + automatically produces a mapping (zero-padded numerical IDs) and prints + it on the screen. If ``None``, subject IDs are not changed. + datatypes : list of str | str | None + Which data type to anonymize. If can be ``meg``, ``eeg``, ``ieeg``, or + ``anat``. Multiple data types may be passed as a collection of strings. + If ``None``, try to anonymize the entire input dataset. + %(random_state)s + The RNG will be used to derive ``daysback`` and ``subject_mapping`` if + they are ``'auto'``. + %(verbose)s + """ + bids_root_in = Path(bids_root_in).expanduser() + bids_root_out = Path(bids_root_out).expanduser() + rng = np.random.default_rng(seed=random_state) + + if not bids_root_in.is_dir(): + raise FileNotFoundError( + f"The specified input directory does not exist: {bids_root_in}" + ) + + if bids_root_in == bids_root_out: + raise ValueError("Input and output directory must differ") + + if bids_root_out.exists(): + raise FileExistsError( + f"The specified output directory already exists. Please remove " + f"it to perform anonymization: {bids_root_out}" + ) + + if not isinstance(subject_mapping, dict): + participants_tsv = _from_tsv(bids_root_in / "participants.tsv") + participants_in = [ + participant.replace("sub-", "") + for participant in participants_tsv["participant_id"] + ] + + if subject_mapping == "auto": + # Don't change `emptyroom` subject ID + if "emptyroom" in participants_in: + n_participants = len(participants_in) - 1 + else: + n_participants = len(participants_in) + + participants_out = rng.permutation( + np.arange(start=1, stop=n_participants + 1, dtype=int) + ) + + # Zero-pad anonymized IDs + id_len = len(str(len(participants_out))) + + participants_out = [str(p).zfill(id_len) for p in participants_out] + + if "emptyroom" in participants_in: + # Append empty-room at the end + participants_in.remove("emptyroom") + participants_in.append("emptyroom") + participants_out.append("emptyroom") + + assert len(participants_in) == len(participants_out) + subject_mapping = dict(zip(participants_in, participants_out)) + elif callable(subject_mapping): + subject_mapping = subject_mapping(participants_in) + elif subject_mapping is None: + # identity mapping + subject_mapping = dict(zip(participants_in, participants_in)) + + if subject_mapping not in ("auto", None): + # Make sure we're mapping to strings + for k, v in subject_mapping.items(): + subject_mapping[k] = str(v) + + if "emptyroom" in subject_mapping and subject_mapping["emptyroom"] != "emptyroom": + warn( + f'You requested to change the "emptyroom" subject ID ' + f'(to {subject_mapping["emptyroom"]}). It is not ' + f"recommended to do this!" + ) + + allowed_datatypes = ("meg", "eeg", "ieeg", "anat") + allowed_suffixes = ("meg", "eeg", "ieeg", "T1w", "FLASH") + allowed_extensions = [] + for v in ALLOWED_DATATYPE_EXTENSIONS.values(): + allowed_extensions.extend(v) + allowed_extensions.extend([".nii", ".nii.gz"]) + + if isinstance(datatypes, str): + requested_datatypes = [datatypes] + elif datatypes is None: + requested_datatypes = allowed_datatypes + else: + requested_datatypes = datatypes + + for datatype in requested_datatypes: + if datatype not in allowed_datatypes: + raise ValueError(f"Unsupported data type: {datatype}") + del datatype, datatypes + + # Assemble list of candidate files for conversion + matches = bids_root_in.glob("sub-*/**/sub-*.*") + bids_paths_in = [] + for f in matches: + bids_path = get_bids_path_from_fname(f, verbose="error") + if bids_path.datatype in requested_datatypes and ( + ( + bids_path.suffix in allowed_suffixes + and bids_path.extension in allowed_extensions + ) + or (_check_finecal_path(bids_path) or _check_crosstalk_path(bids_path)) + ): + bids_paths_in.append(bids_path) + + # Ensure we convert empty-room recordings first, as we'll want to pass + # their anonymized path when writing the associated experimental recordings + if "meg" in requested_datatypes: + bids_paths_in_er_only = [ + bp + for bp in bids_paths_in + if bp.subject == "emptyroom" and bp.task == "noise" + ] + bids_paths_in_er_first = bids_paths_in_er_only.copy() + for bp in bids_paths_in: + if bp not in bids_paths_in_er_only: + bids_paths_in_er_first.append(bp) + + bids_paths_in = bids_paths_in_er_first + del bids_paths_in_er_first, bids_paths_in_er_only + + logger.info("\nAnonymizing BIDS dataset") + if daysback == "auto": + # Find recordings that can be read with MNE-Python to extract the + # recording dates + bids_paths = [ + bp + for bp in bids_paths_in + if ( + bp.datatype != "anat" + and not _check_crosstalk_path(bp) + and not _check_finecal_path(bp) + ) + ] + if bids_paths: + logger.info('Determining "daysback" for anonymization.') + + daysback = _get_daysback( + bids_paths=bids_paths, rng=rng, show_progress_thresh=20 + ) + else: + daysback = None + del bids_paths + + # Check subject_mapping + subjects_in_dataset = set([bp.subject for bp in bids_paths_in]) + subjects_missing_mapping_keys = [ + s for s in subjects_in_dataset if s not in subject_mapping + ] + if subjects_missing_mapping_keys: + raise IndexError( + f"The subject_mapping dictionary does not contain an entry for " + f'subject ID: {", ".join(subjects_missing_mapping_keys)}' + ) + + _, unique_vals_idx, counts = np.unique( + list(subject_mapping.values()), return_index=True, return_counts=True + ) + non_unique_vals_idx = unique_vals_idx[counts > 1] + if non_unique_vals_idx.size > 0: + keys = np.array(list(subject_mapping.values()))[non_unique_vals_idx] + raise ValueError( + f"The subject_mapping dictionary contains duplicated anonymized " + f'subjet IDs: {", ".join(keys)}' + ) + + # Produce some logging output + msg = f"\n" f" Input: {bids_root_in}\n" f" Output: {bids_root_out}\n" f"\n" + if daysback is None: + msg += "Not shifting recording dates (found anatomical scans only).\n" + else: + msg += ( + f"Shifting recording dates by {daysback} days " + f"({round(daysback / 365, 1)} years).\n" + ) + msg += "Using the following subject ID anonymization mapping:\n\n" + for orig_sub, anon_sub in subject_mapping.items(): + msg += f" sub-{orig_sub} → sub-{anon_sub}\n" + logger.info(msg) + del msg + + # Actual processing starts here + for bp_in in ProgressBar(iterable=bids_paths_in, mesg="Anonymizing"): + bp_out = bp_in.copy().update( + subject=subject_mapping[bp_in.subject], root=bids_root_out + ) + + bp_er_in = bp_er_out = None + + # Handle empty-room anonymization: we need to change the session to + # match the new date + if ( + bp_in.datatype == "meg" + and "emptyroom" in subject_mapping + and not (_check_finecal_path(bp_in) or _check_crosstalk_path(bp_in)) + ): + if bp_in.subject == "emptyroom": + er_session_in = bp_in.session + else: + # An experimental recording, so we need to find the associated + # empty-room + bp_er_in = bp_in.find_empty_room(use_sidecar_only=True, verbose="error") + if bp_er_in is None: + er_session_in = None + else: + er_session_in = bp_er_in.session + + # Update the session entity + if er_session_in is not None: + date_fmt = "%Y%m%d" + er_session_out = datetime.strptime(er_session_in, date_fmt) - timedelta( + days=daysback + ) + er_session_out = datetime.strftime(er_session_out, date_fmt) + + if bp_in.subject == "emptyroom": + bp_out.session = er_session_out + assert bp_er_out is None + else: + bp_er_out = bp_er_in.copy().update( + subject=subject_mapping["emptyroom"], + session=er_session_out, + root=bp_out.root, + ) + + if bp_in.datatype == "anat": + bp_anat_json = bp_in.copy().update(extension=".json") + anat_json = json.loads(bp_anat_json.fpath.read_text(encoding="utf-8")) + landmarks = anat_json["AnatomicalLandmarkCoordinates"] + landmarks_dig = mne.channels.make_dig_montage( + nasion=landmarks["NAS"], + lpa=landmarks["LPA"], + rpa=landmarks["RPA"], + coord_frame="mri_voxel", + ) + write_anat( + image=bp_in.fpath, + bids_path=bp_out, + landmarks=landmarks_dig, + deface=True, + verbose="error", + ) + elif _check_crosstalk_path(bp_in): + write_meg_crosstalk(fname=bp_in.fpath, bids_path=bp_out, verbose="error") + elif _check_finecal_path(bp_in): + write_meg_calibration( + calibration=bp_in.fpath, bids_path=bp_out, verbose="error" + ) + else: + raw = read_raw_bids(bids_path=bp_in, verbose="error") + write_raw_bids( + raw=raw, + bids_path=bp_out, + anonymize={ + "daysback": daysback, + "keep_his": False, + "keep_source": False, + }, + empty_room=bp_er_out, + verbose="error", + ) + + # Enrich sidecars + bp_in_json = bp_in.copy().update(extension=".json") + bp_out_json = bp_out.copy().update(extension=".json") + bp_in_events = bp_in.copy().update(suffix="events", extension=".tsv") + bp_out_events = bp_out.copy().update(suffix="events", extension=".tsv") + + # Enrich the JSON file + if bp_in_json.fpath.exists(): + json_in = json.loads(bp_in_json.fpath.read_text(encoding="utf-8")) + else: + json_in = dict() + + if bp_out_json.fpath.exists(): + json_out = json.loads(bp_out_json.fpath.read_text(encoding="utf-8")) + else: + json_out = dict() + + # Only transfer data that we believe doesn't contain any personally + # identifiable information + json_updates = dict() + for key, value in json_in.items(): + if key in ANONYMIZED_JSON_KEY_WHITELIST and key not in json_out: + json_updates[key] = value + del json_in, json_out + + if json_updates: + bp_out_json.fpath.touch(exist_ok=True) + update_sidecar_json( + bids_path=bp_out_json, entries=json_updates, verbose="error" + ) + + # Transfer trigger codes from original *_events.tsv file + if bp_in_events.fpath.exists(): + assert bp_out_events.fpath.exists() + events_tsv_in = _from_tsv(bp_in_events) + events_tsv_out = _from_tsv(bp_out_events) + + assert events_tsv_in["trial_type"] == events_tsv_out["trial_type"] + events_tsv_out["value"] = events_tsv_in["value"] + _write_tsv( + fname=bp_out_events.fpath, + dictionary=events_tsv_out, + overwrite=True, + verbose="error", + ) + + # Copy some additional files + additional_files = ( + "README", + "CHANGES", + "dataset_description.json", + "participants.json", + ) + for fname in additional_files: + in_path = bids_root_in / fname + if in_path.exists(): + shutil.copy(src=in_path, dst=bids_root_out) diff --git a/mne-bids-0.15/pyproject.toml b/mne-bids-0.15/pyproject.toml new file mode 100644 index 0000000..1a87c0f --- /dev/null +++ b/mne-bids-0.15/pyproject.toml @@ -0,0 +1,151 @@ +[build-system] +requires = ["hatchling", "hatch-vcs"] +build-backend = "hatchling.build" + +[project] +name = "mne-bids" +description = "MNE-BIDS: Organizing MEG, EEG, and iEEG data according to the BIDS specification and facilitating their analysis with MNE-Python" +dynamic = ["version"] +authors = [{ name = "MNE-BIDS Developers" }] +maintainers = [ + { name = "Stefan Appelhoff", email = "stefan.appelhoff@mailbox.org" }, +] +license = { text = "BSD-3-Clause" } +readme = { file = "README.md", content-type = "text/markdown" } +requires-python = ">=3.9" +keywords = [ + "meg", + "eeg", + "ieeg", + "bids", + "brain imaging data structure", + "neuroscience", + "neuroimaging", +] +classifiers = [ + "Topic :: Scientific/Engineering", + "Intended Audience :: Science/Research", + "Intended Audience :: Developers", + "License :: OSI Approved", + "Topic :: Software Development", + "Topic :: Scientific/Engineering", + "Operating System :: Microsoft :: Windows", + "Operating System :: POSIX :: Linux", + "Operating System :: MacOS", + "Programming Language :: Python", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", +] +scripts = { mne_bids = "mne_bids.commands.run:main" } +dependencies = ["mne>=1.5", "numpy>=1.21.2", "scipy>=1.7.1"] + +[project.optional-dependencies] +# Variants with dependencies that will get installed on top of those listed unter +# project.dependencies + +# Dependencies for using all mne_bids features +full = [ + "nibabel >= 3.2.1", + "pybv >= 0.7.5", + "eeglabio >= 0.0.2", + "pymatreader >= 0.0.30", + "matplotlib >= 3.5.0", + "pandas >= 1.3.2", + "EDFlib-Python >= 1.0.6", # drop once mne <1.7 is no longer supported + "edfio >= 0.2.1", + "defusedxml", # For reading EGI MFF data and BrainVision montages +] + +# Dependencies for running the test infrastructure +test = ["mne_bids[full]", "pytest", "pytest-cov", "pytest-sugar", "ruff"] + +# Dependencies for building the documentation +doc = [ + "nilearn", + "sphinx", + "sphinx_gallery", + "sphinx-copybutton", + "pydata-sphinx-theme", + "numpydoc", + "matplotlib", + "pillow", + "pandas", + "mne-nirs", + "seaborn", + "openneuro-py", +] + +# Dependencies for developer installations +dev = ["mne_bids[test,doc,full]", "pre-commit"] + +[project.urls] +"Homepage" = "https://mne.tools/mne-bids" +"Download" = "https://pypi.org/project/mne-bids/#files" +"Bug Tracker" = "https://github.com/mne-tools/mne-bids/issues/" +"Documentation" = "https://mne.tools/mne-bids" +"Forum" = "https://mne.discourse.group/" +"Source Code" = "https://github.com/mne-tools/mne-bids" + +[tool.hatch.metadata] +allow-direct-references = true # allow specifying URLs in our dependencies + +[tool.hatch.build] +exclude = [ + "/.*", + "**/tests", + "/paper", + "/examples", + "/doc", + "/Makefile", + "/CITATION.cff", + "/CONTRIBUTING.md", +] + +[tool.hatch.version] +source = "vcs" +raw-options = { version_scheme = "release-branch-semver" } + +[tool.ruff.lint] +select = ["E", "F", "W", "D", "I"] +exclude = ["__init__.py"] + +[tool.ruff.lint.pydocstyle] +convention = "numpy" + +[tool.coverage.run] +omit = ["*tests*"] + +[tool.coverage.report] +# Regexes for lines to exclude from consideration +exclude_lines = ["pragma: no cover", "if 0:", "if __name__ == .__main__.:"] + +[tool.pytest.ini_options] +addopts = """--durations=20 -ra --junit-xml=junit-results.xml --tb=short + --ignore=doc --ignore=examples --ignore=mne_bids/tests/data""" +filterwarnings = [ + "error", + "ignore:Estimation of line frequency only supports.*:RuntimeWarning", + "ignore:There are channels without locations (n/a)*:RuntimeWarning", + "ignore:Did not find any electrodes.tsv.*:RuntimeWarning", + "ignore:Did not find any coordsystem.json.*:RuntimeWarning", + "ignore:Did not find any events.tsv.*:RuntimeWarning", + "ignore:No events found or provided.*:RuntimeWarning", + "ignore:Participants file not found for.*:RuntimeWarning", + "ignore:Converting to FIF for anonymization:RuntimeWarning", + "ignore:Converting to BV for anonymization:RuntimeWarning", + "ignore:Converting data files to BrainVision format:RuntimeWarning", + "ignore:Writing of electrodes.tsv is not supported for datatype.*:RuntimeWarning", + "ignore:numpy.ufunc size changed.*:RuntimeWarning", + "ignore:tostring\\(\\) is deprecated.*:DeprecationWarning", + "ignore:MEG ref channel RMSP did not.*:RuntimeWarning", + "ignore:`product` is deprecated as of NumPy.*:DeprecationWarning", + # Python 3.10+ and NumPy 1.22 (and maybe also newer NumPy versions?) + "ignore:.*distutils\\.sysconfig module is deprecated.*:DeprecationWarning", + # numba with NumPy dev + "ignore:`np.MachAr` is deprecated.*:DeprecationWarning", + # old MNE _fake_click + "ignore:The .*_event function was deprecated in Matplotlib.*:", + "ignore:datetime\\.datetime\\.utcfromtimestamp.* is deprecated and scheduled for removal in a future version.*:DeprecationWarning", +] diff --git a/python-mne-bids.spec b/python-mne-bids.spec index d4bad60..122efb0 100644 --- a/python-mne-bids.spec +++ b/python-mne-bids.spec @@ -1,11 +1,11 @@ %global _empty_manifest_terminate_build 0 Name: python-mne-bids -Version: 0.15.0 +Version: 0.15 Release: 1 Summary: Organizing MEG, EEG, and iEEG data according to the BIDS specification and facilitating their analysis with MNE-Python License: BSD-3-Clause URL: https://github.com/mne-tools/mne-bids -Source0: https://files.pythonhosted.org/packages/31/33/6c14b9aefaeeab0fe40925cedb37ceda62cb23fef514e6f498889dd7c44f/mne-bids-0.15.0.tar.gz +Source0: https://files.pythonhosted.org/packages/31/33/6c14b9aefaeeab0fe40925cedb37ceda62cb23fef514e6f498889dd7c44f/mne-bids-0.15.tar.gz BuildArch: noarch Requires: python3-mne @@ -39,7 +39,7 @@ Provides: python3-mne-bids-doc MNE-BIDS is a Python package that allows you to read and write BIDS-compatible datasets with the help of MNE-Python. %prep -%autosetup -n mne-bids-0.15.0 +%autosetup -n mne-bids-0.15 %build %pyproject_build @@ -79,8 +79,8 @@ mv %{buildroot}/doclist.lst . %{_docdir}/* %changelog -* Fri Nov 01 2024 zhangyulong - 0.15.0-1 -- Update package to version 0.15.0 +* Fri Nov 01 2024 zhangyulong - 0.15-1 +- Update package to version 0.15 -MAINT: remove ref-names from git_archive.txt -Fix InvalidDistribution: Metadata is required fields: Name, Version. -read_raw_bids() tries to process task name without checking if a task exists bug -- Gitee