From 705b771bafc6a95b44d796d55cc531ea2d9fd0d5 Mon Sep 17 00:00:00 2001 From: Marcel Zwiers Date: Fri, 12 Jul 2024 08:04:04 +0200 Subject: [PATCH] Prepare a v4.3.3 release --- Dockerfile | 2 +- README.rst | 4 +- apptainer.def | 4 +- bidscoin/cli/_rawmapper.py | 2 +- bidscoin/heuristics/bidsmap_bids2bids.yaml | 2 +- bidscoin/heuristics/bidsmap_dccn.yaml | 2 +- bidscoin/heuristics/bidsmap_sst.yaml | 2 +- docs/CHANGELOG.md | 14 +- docs/_static/bidseditor_added_run.png | Bin 0 -> 16625 bytes docs/bidsapps.rst | 163 ++++++++++----------- docs/installation.rst | 8 +- docs/troubleshooting.rst | 35 +++-- docs/utilities.rst | 60 ++++---- docs/workflow.rst | 47 +++--- pyproject.toml | 2 +- release_procedure.rst | 12 +- tests/test_data/bidsmap.yaml | 2 +- 17 files changed, 182 insertions(+), 179 deletions(-) create mode 100755 docs/_static/bidseditor_added_run.png diff --git a/Dockerfile b/Dockerfile index 7e3c6d1d..2dba4039 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,7 +31,7 @@ RUN mkdir -p /opt/miniconda3; \ # Clone bidscoin and switch to the qt5 branch \ git clone https://github.com/Donders-Institute/bidscoin.git /opt/bidscoin; \ cd /opt/bidscoin; \ - git checkout v4.3.2+qt5; \ + git checkout v4.3.3+qt5; \ rm -rf docs tests .git diff --git a/README.rst b/README.rst index 157e8b74..48e5a26f 100644 --- a/README.rst +++ b/README.rst @@ -43,10 +43,10 @@ Features .. note:: - * All **source code** is hosted at `Github `__ and **freely available** under the GPL-3.0-or-later `license `__. + * All **source code** is hosted at `GitHub `__ and **freely available** under the GPL-3.0-or-later `license `__. * The full BIDScoin **documentation** is hosted at `Read the Docs `__ * For citation and more information, see our `BIDScoin publication `__ in **Frontiers in Neuroinformatics** (`DOI: 10.3389/fninf.2021.770608 `__). See `here <./plugins.html>`__ for citations of the plugins. A custom-made citation report can be generated with the help of `duecredit `__ - * You are encouraged to **post issues or questions at** `Github `__ or `NeuroStars `__ (tag: #bidscoin) + * You are encouraged to **post issues or questions at** `GitHub `__ or `NeuroStars `__ (tag: #bidscoin) How to contribute ----------------- diff --git a/apptainer.def b/apptainer.def index ea9ca6a1..9fe1803c 100644 --- a/apptainer.def +++ b/apptainer.def @@ -36,7 +36,7 @@ Stage: builder # Clone bidscoin and switch to the qt5 branch git clone https://github.com/Donders-Institute/bidscoin.git /opt/bidscoin cd /opt/bidscoin - git checkout v4.3.2+qt5 + git checkout v4.3.3+qt5 rm -rf docs tests .git @@ -48,7 +48,7 @@ Stage: final This BIDScoin Apptainer image includes: * Debian stable, - * The latest stable release of BIDScoin (v4.3.2+qt5) + * The latest stable release of BIDScoin (v4.3.3+qt5) * The latest versions of dcm2niix, pydeface, spec2nii and some FSL tools The general form to run BIDScoin commands is: diff --git a/bidscoin/cli/_rawmapper.py b/bidscoin/cli/_rawmapper.py index e3807609..cae48c8a 100755 --- a/bidscoin/cli/_rawmapper.py +++ b/bidscoin/cli/_rawmapper.py @@ -30,7 +30,7 @@ class CustomFormatter(argparse.ArgumentDefaultsHelpFormatter, argparse.RawDescri parser.add_argument('-s','--sessions', help='Space separated list of selected sub-#/ses-# names/folders to be processed. Otherwise all sessions in the bidsfolder will be processed', nargs='+', metavar='SESSION') parser.add_argument('-f','--field', help='The fieldname(s) of the DICOM attribute(s) used to rename or map the subid/sesid foldernames', default=['PatientComments', 'ImageComments'], nargs='+', metavar='NAME') parser.add_argument('-w','--wildcard', help='The Unix style pathname pattern expansion that is used to select the series from which the dicomfield is being mapped (can contain wildcards)', default='*', metavar='PATTERN') - parser.add_argument('-o','--outfolder', help='The mapper-file is normally saved in sourcefolder or, when using this option, in outfolder', metavar='DESTINATION') + parser.add_argument('-o','--outfolder', help='The mapper-file is normally saved in sourcefolder or, when using this option, in outfolder', metavar='FOLDER') parser.add_argument('-r','--rename', help='Rename sub-subid/ses-sesid directories in the sourcefolder to sub-dcmval/ses-dcmval', action='store_true') parser.add_argument('-c','--clobber', help='Rename the sub/ses directories, even if the target-directory already exists', action='store_true') parser.add_argument('-n','--subprefix', help="The prefix common for all the source subject-folders. Use a '*' wildcard if there is no prefix", default='sub-', metavar='PREFIX') diff --git a/bidscoin/heuristics/bidsmap_bids2bids.yaml b/bidscoin/heuristics/bidsmap_bids2bids.yaml index 74e8718b..eda0c156 100644 --- a/bidscoin/heuristics/bidsmap_bids2bids.yaml +++ b/bidscoin/heuristics/bidsmap_bids2bids.yaml @@ -22,7 +22,7 @@ Options: # General BIDScoin and plugin options # -------------------------------------------------------------------------------- bidscoin: - version: 4.3.2 # BIDScoin version (should correspond with the version in pyproject.toml) + version: 4.3.3 # BIDScoin version (should correspond with the version in pyproject.toml) subprefix: sub- # The subject prefix of the source data sesprefix: ses- # The session prefix of the source data bidsignore: [mrs/, extra_data/, sub-*_ct.*] # List of entries that are added to the .bidsignore file (for more info, see BIDS specifications), e.g. [extra_data/, pet/, myfile.txt, yourfile.csv] diff --git a/bidscoin/heuristics/bidsmap_dccn.yaml b/bidscoin/heuristics/bidsmap_dccn.yaml index f820cea6..11e965a3 100644 --- a/bidscoin/heuristics/bidsmap_dccn.yaml +++ b/bidscoin/heuristics/bidsmap_dccn.yaml @@ -23,7 +23,7 @@ Options: # General BIDScoin and plugin options # -------------------------------------------------------------------------------- bidscoin: - version: 4.3.2 # BIDScoin version (should correspond with the version in pyproject.toml) + version: 4.3.3 # BIDScoin version (should correspond with the version in pyproject.toml) subprefix: sub- # The subject prefix of the source data sesprefix: ses- # The session prefix of the source data bidsignore: [mrs/, extra_data/, sub-*_ct.*] # List of entries that are added to the .bidsignore file (for more info, see BIDS specifications), e.g. [extra_data/, pet/, myfile.txt, yourfile.csv] diff --git a/bidscoin/heuristics/bidsmap_sst.yaml b/bidscoin/heuristics/bidsmap_sst.yaml index 6d26ba70..b8133a96 100644 --- a/bidscoin/heuristics/bidsmap_sst.yaml +++ b/bidscoin/heuristics/bidsmap_sst.yaml @@ -22,7 +22,7 @@ Options: # General BIDScoin and plugin options # -------------------------------------------------------------------------------- bidscoin: - version: 4.3.2 # BIDScoin version (should correspond with the version in pyproject.toml) + version: 4.3.3 # BIDScoin version (should correspond with the version in pyproject.toml) subprefix: sub- # The subject prefix of the source data sesprefix: ses- # The session prefix of the source data bidsignore: [mrs/, extra_data/, sub-*_ct.*] # List of entries that are added to the .bidsignore file (for more info, see BIDS specifications), e.g. [extra_data/, pet/, myfile.txt, yourfile.csv] diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index e6937584..c710081a 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -4,22 +4,25 @@ ## [dev] +## [4.3.3] - 2024-07-12 + ### Added -- A bidseditor context menu for comparing selected run-items -- A bidseditor context menu for changing the data type of selected run-items +- A bidseditor context menu for comparing, editing or adding multiple run-items (GitHub issue #239) +- A ``fixmeta`` bidsapp for retrospective metadata editing ### Changed - Merged the DRMAA `cluster` and `nativespec` input arguments +- DRMAA support for slicereport (instead of calling qsub or sbatch) ## [4.3.2] - 2024-03-29 ### Fixed -- A regression was introduced when fixing Github issue #229 (now reverted) +- A regression was introduced when fixing GitHub issue #229 (now reverted) ## [4.3.1] - 2024-03-27 ### Added -- Update B0FieldIdentifier/Source when having multiple fieldmap runs (Github issue [#198](https://github.com/Donders-Institute/bidscoin/issues/198)) +- Update B0FieldIdentifier/Source when having multiple fieldmap runs (`GitHub` issue [#198](https://github.com/Donders-Institute/bidscoin/issues/198)) - Slicereport support for all nibabel file-formats - The `BIDSCOIN_TRACKUSAGE` environment variable for setting trackusage on the fly (see `bidscoin --trackusage show`) @@ -450,7 +453,8 @@ A first stable release of BIDScoin :-) ### To do - Add support for non-imaging data -[dev]: https://github.com/Donders-Institute/bidscoin/compare/4.3.2...HEAD +[dev]: https://github.com/Donders-Institute/bidscoin/compare/4.3.3...HEAD +[4.3.3]: https://github.com/Donders-Institute/bidscoin/compare/4.3.2...4.3.3 [4.3.2]: https://github.com/Donders-Institute/bidscoin/compare/4.3.1...4.3.2 [4.3.1]: https://github.com/Donders-Institute/bidscoin/compare/4.3.0...4.3.1 [4.3.0]: https://github.com/Donders-Institute/bidscoin/compare/4.2.1...4.3.0 diff --git a/docs/_static/bidseditor_added_run.png b/docs/_static/bidseditor_added_run.png new file mode 100755 index 0000000000000000000000000000000000000000..b1cbdcc7fe38762199300e95c889d5a10aba530d GIT binary patch literal 16625 zcmb8XWmH{Fw>5~nOK|t#5Zv805L^-*f?FWC1PCs{f;++8-61%^HF(hAP8WIa?a_V5 z*LRHm@#Hxt=bYNLYpklN8hV zWO%d!{|V>UBK#>2BF)9BMo>5cLcp8-wrjMhl2BNNfB>ZWlEFs}Ny&8k^dz+S5f{}k+bTAhb;;6l6F z78rNlv1@O+Cb|~L3=Iv9x zKg1#sP0d+#$ZRm;xovfewcATwtmkw|eFZb~0SAA;D^?kDXSYr1CPEx)f@+JT8LbL=X&K`! z*Np&}lT~KaKQl8=oMG9{A>8~Jn3$8fjQz~B#{u{*zmJyNBbOt-#$}c1(Rddq#&x(@ z4JFWo>m#Bhbk^CJE$wEGn8}D@?j1luS8~aP9@lr%<7LgaT7$ztru~>-^G9CDk zf7+kQE<-~x1y7XJV6}iO0?}N*%Ru(_Y&-Vt{k6gsT}BL36r|TwemqLF5Uo}e>9^3$ zf$gdvnlyhB2O~9#sf|Wc)r)NP{+^x1p)@&%d9 zCui$VzJk+!H>}(df}MlKbejX3F_`S$WWlJMr971TsGJm%2u-n<*F=k!+ju4`UA=u$ z=(;gqlUrHP$0gb%DoX0Db+IM_Tn3uYR|yeK&f!T^#(chq$xJtgoH`F9tiQLl;RDE+ z7~6er?vTrx9Pv6I-q@5s2-;+DNrUK!j@#2KHL+11&R{P2BoL5HiTheM$i%BIGc#?z z!{|(-oGGQo{M)irxO_%;aDIQMzk0Q+&5%xW?Q&>D!gf6E2&$2h)kJOx&gZAwJ+r>K z8$@ig-tU0~oiC5mpw;bYF<-*MO@Ip$ep3#DI6KO$o!LQEf3M25ais9Mc5 zRBU;L^FH5q-)gR}qc z-v!hzm}je2(t~6W=eHU4wNudvDEt1*C82U!3=gFXn5|swS35s?F0^>JAYik53$} zh4Mb9dBnxt#apYXh6)^(x4KgW3V6A%;7;}PZ^W5@p7IzbMT^|4uaaG+=r=iOUOjqr zrYgLwE=O4yyE|P9TKic2$F<^d@qj^Oysh7{RGt>G!SZ3U|CyEMmGaGLHnfH<_zw^WnF(GCwvU zt;l!=U2K%!cK@#ur^jW!+ucR3GTW|`KGWCQs!_~_rD7xB-WF~>thQk_gB6$m{!ZL| zx!j}6;;*C)6Ql55yD+u%KhQPZt+Sdg&@13W6jSWXpt2)_SSYcPDb{O`SmyOL^ew)& zwk*2gEy%5h6|vq8{X(tT?1F`hNl`piI7imfvX5ZsRc#vEH}dWbG6t-1f@Lcd6x5qg zFlh{aZsK{E{KeJ}5PnIyamxml~JysCnJG%mKM5v`#uE6%MybvCma|L`<-R1QOL zzz|w&kXnZAY(Z;nI5t;oGTqyttF<$CVC&rR`CHiALQX#lu=bMMbv}=tk5vK>2qaJT zj|YuQsrUkdk%aCTn)F)lzT&XpJSw!_kR%6&MC}>K?oDH@3A2H@Ng`$gyf;4ez3*E8 z1k3*NH*yU9(JOtw(q3LC=u57Bu!RG&p;W=3dbtCz;<0q0K8FzB;{gf`#(yf)Z&DYy zqKxT!ZWDVy^}}4phWjNOo#Cuh&7r)EkD;QrCcp-zssH(#>)U1l>IgF|21al zWL473Ox{{5p{$Ge()}ArDuR4RtvC`<*h76-v-IOjoW#<7bqv33vz}}&!(r9bl^4{K zeyvgbnxw@g-b&<=>3QDTO_=nuIO1Vl!bb4|FM#ghCijiis=9nq1-UB`_tY%~MPaFX z=)=wlYuS?f#O*KZU$NIB53(%!jmD$6I`v*n<<~3Ms|^Lq^^Vi#>8rl$f1-soGS-?e7T^;qZ1jT#CpR@T;yg-A?$)Z%V z+cDD|3FJ_6MgLG`wnUy>u5=uOi8O=8o>7#U4@LI-_h$zI!LxCa9Q;smNaIOK-%8%? z-~1}k+P+4GoXYa?CUNg;;w$z%YChZSm7B_T#c z&I!c7f9_R%NU_)oqa#hSt%q6@bykU`l-epTMACVCd~ex|XUvvw(E+fX=&dA0+}6cl z*e%4zWfPfnN~;8_%|~Bbj0NeMxQ`?95o}^`;N7;6qFG)I%Q4 z)Hin2!mE>2IytW*51!pf6w7YBNn2 z$3?>J7i&2zI}gq>$2%~dX%x1nwnqq0QSb#N0TpH`)2**ebb+7c{2PJ@u=_~4E^L1= zmTEBtUj(kvc!QFU0E<%d$MP}$gJM-q_4}Tq0-71p(F_3nU?`cDW^z^sGuDfS;V1(DMZOZB9bDr+#;#8Ro>rgyhgW{cIK%OfMU%5uPQ#&K!-M-Z};`2qhzSqBqyCzn+ zR9<$5eXIF+hBq=7J&)b;L~6o%__J(Dsyh#)&<}@juHynifgNWXBmk2%@aVNBtl-6D zU|ge+@e4$gV%aK-zg5@JNZ_Um)^G3Ip#~@>f2I8o%Snf9W=nMztMJe@dzpK$)v*Kh z!h2ZtXUNje|Gw7;SC&LKj39@5R*{ko2uzNrD5RFSyNKhqCG@_+e90?0@C<4J$(-5m z0mRVCrSsSQThF~N`Gf(qEW|KZRxrW^Ti;%%lSmiJ_ZTppz4sqj^}#RCWKlkVw}VtP z@|pNABZWkA{Yx6L|H%w8AO7VE(lD`?q~$^VpNtXRhl-dX=R=8#m} zOmD5-lA(MeONm6JuB++%(uwS+8(15=DL%J{MvWr#w$mc7%gedhG=Wpm;gG(S=BLYw0QFo?*MEo`7fy}*p|!28Z(u+M zN$@uBjrF`J8mVB>w9T(FR%|+@L^Kisg#)*vx-grm1cs?fInH9kn)+70kDnrRiCUlU z5k+K^j)n3xzq_4H4rI!Lhry*~x{~LXsT5&3YrwmEHoeQ2i;MZ%#sR>EAU_YP4!|IT#2JBkZ7k!gQ~&e>zbrrAPVAOG_sy2#XX zKUs@=_*z~Vhx?TxpX;Am#WX>wLVJXHdXoWf=4S#S`Pm8`8qE@oL<)Pf@X70e_VSAM z2XQZNZ?ocOd;a+b#IbY%x<^9~rDnH%YNFY)SobgJ@gN<>*I11I;gD&+ZjX4nz+Sky z=f5>O{>bq5j_)8IL`K4VTshzV^rSAfdfPh^60$ezu8-&lSW_S=sq`COeD84CUzS69 z#YDdk3aD&*ltj%EEt^vlm;HG)8&|gVwx=frm%GvhXBVBmudjZ22sOLMudf>;A|g)S z8XIZpzY<8)`(Y|)rP|RxOZ|;iOL;hnbr+$Vd(SIVqj;+V8h-0+d*mfIGUzu}D!+6i zdXr4We)`Sbk1XqOnofVYn`p4L>VMVXzQ9mi@UY@{uG#R>UT!pRw7Z%5=U*2{(VO<;uHOl1x-&fs*sC_VPw!j~2I+C_~aO zLZ7d#&R+#&Ihu4N;4;3GUxACvyAEd^%Jh9Q^N#z^Q-ozt;V_?Br*i!>Gn*iA_>Hm& zJXAGjr@ITQqaYh}Ph}W*y$a$A6&MA(0Sj{bRl%w2zSZi}IgiPn)NdpC8pUz^WQPZ5 zS6{u|w}!rJz1A$nH}POhyt6??Phftl+kSsVq|@N}P2*F0Ys9B#?|(gnFxH{_-rjt< zP3g1g3j!>c!(_K+5>B_YnQ~2qsX`U|HVM;eP`Qct8rn$u-2C-jRKw@5wV}hNQ=T1b z+^Y#N&oCQFIuO*VHXC_8S7DSiQOO2aR3s5sLYZE}a9sY#R(~WB76AdnQo~71%-cc$ zMdAWiABd(4lmJ^UR?n{%mIHAS#=HQ}uJrv4sCR9*^L;90+rC6{eY!b)jGbLxBINl< zZ_sj`V9u;J#M$>%?!-{Y)w9l8)9f_MpX2Ni{UR#+o$b;{YTbcL1|tE7>BM-w?VQ+} zFE!gls6Xy$Q}x+0LtiI@_+nyO5(Yy zWu?VkuL2AcdTbB}!=B!9S=s;Z9qNCmJJtXDC;vU(5M^kS!$!cvX%9Mw=Y{1$wORPj z6iyj#+r_-|r<+am+uPmD%gY{|SFdQFuYI2_B87N8&Ud~6-l%JWV+4!*D#3QCUdJRO zAMjlcpNCI25rTc-X}(!88%@CS?#k}{f3cm(ZYAK(-8(Qv~RsDaCScMd`f|JCg= z8TgT03Wpgr*jHy~BdmIFO{!0xMV=qtzSb&dYHx2>uQruisC*x&438s!Gj`QQ>e5@k zrtfio)UbU}(UEw1>M)x7^myVsvKcL6H>z}dy7ITJsv|}unviQaHJ+`a_3SGtvU4`l zO0#Rc=j9(AlWUf25Bw>Jv!^ZECc7j?z=5U;ph;xd#nBRvG@;_YxVZRM&A4zpl}ywi=$qEX zT%MoT?DUV%mg#ZDD8|!9a&6Z)yB=8kxpZKqhCDuAuj#H*^ProwI6P6qrM=ysE^O$R z9Lp4`xV4KS<|}1zH}?F%@3N;l1<&5`bXP)J2>{cw4hK&1=8Ap=E%vH644Z57{>1m0 z(cj;HmUz;fp87Y#+X72z@YppXEg@kSzy`Raei-+C%1vQNty*tb^8s9+)kgZu<;h~5 zLSfI<(b9G}Yx_hA{|r72+{fHD3={-}iJzES1x4?;V1>|l>#vQT?~>p=8m-?<9vS&Q z=1)&B#e%dzQu$c&t}O0D-&ZTs2u2x!!{`_8T>o()&*$+j)njR)0a6*OArphW4eLMZwCQGu__ix^ zN&qUJr=BnG$yBwnv*r1>56?9P4vCtW%)w5%oBhpF)Z-h6bqAJ)W)`1+JpNm4+msi}D`tF`z;)q&_H zgjnZ{0SU2eGPKOE@}vb|$v*plyCgI87*&tKU02g|yZ7hO+RBOy-zSfk1UBaUYRTQd z-ge1)(W$+f^YEU`17?c4{qxSxlN@M>^J4{g7mgTcUM=|%-t)<~I>uS6( zj5_OIQ?((GBlUBKy{!~7#c!TA4O}9wAT>X5q z@0LKXM%jP6j&^3|#ma(N ziU%x$v6|)Y`*$Vpn57L-$2@HGRj&jeFQ#XcEj_#2MQ;PDhYTmEGNqL$nhD57#8goV z4j`Mw$vgV}AV_WrqVN*yoVMk?EBsv|F3F7~n;n&*ua3HX#7;vVznJ)$E5ZEXwP%ZR z@w-5&`sVCsmR*mv%QZX>4Ue|>hSTeAzwiuT%bzRb7NzzOXQYugF)GO>C(CI;ga$Q7 z^D4aNycLxv;t~>EwjWls@d`Ft2hQ%T(7mg*s=QRHr z0~!T3-BR7jTsDcyGQTCoWhgr}$>&upsoyBd_=ie{MIa%PXvGV-9Zvjlj2~h#Xx8B5 zyI}2hx1O)ecG;Vt;E!!yWTDnbYvkR);H8WoIGd#QhY9XQ(}v@ClU7R~q2>TW+-R3T zn;VM`%K_BHt_1io>uTf_*gb#6-`6_tDnFvM!$%>fqCkv@Vr(Nt(M09?$3t4dE(Jkh zk4Wiu4MoR4q`R+9Lf}>^&Y*OHyWu+R^6lhT!%tS6YbV9&L|Ap$_CJYC^}7*=3o;2e z@y90hPY@WKITAxK%)Nry$A+bu>NxlEqHX`_-tBn!t0c+XOIB|%R4rNb<379jlTg4g`DNMi6hr9ra`Kib$D2_)eZUTX2ts1)Lg{h(INml)+!9h58G z_Il!r2g@+N@_2NtS9sjf)xh)x2lE|{O?XO;8hqFqmt zwmmw&=awti{0c%gDG|tM82~-I5j!(t} z_^0Wy{f?yMvWnliZ7;Z~MzgO_c6p2mj+?!*h-;EI5K`5I*SoR0coM@+Le62$xS#}Q z&LEo+lGn+eF$X^w_&r~-z?cgSI5_gFPm1?7k=ae8}E5C3@j5;t)q6D<0|RAOC8kAF_YQ28$XA+tf+c z@cIpz3auzaIO=ajl5o{=#0V4(LsRC-+%Vo41nlP6O`S;AE>8< zV23OqiDJ!h{p>fLuYf0H?&r#FIU!o1{g)7y@G5Dj_AlQ@)+@5B9zFXu+?58XgL>9E zLmPh=|5QTL*&91;J1+|Q{wmRaKSnHlH7XM~*a4!HaDT>6oi6dO4hK-rl~7If)2>OT z;HFSGOijrVASmiD0w4Xlu~KkTD^z9qc<}J6ypwJ!PkeXH{2yC31vca{{Nd}}dqXiN zy{(SjJNUv69yl;~sr*DYf&~%xv6LA8;;x;Oa8VR7vwPqn(cklhokJ`k54x-JZsstw zuXFk$c36q`kdx11vlVBI76Bd-P?4YYSQLBGV>`aJnsU7_a8 zF}bgV;TPjhoN|N@sy4xk(xpTLsQW91(?RVNH>-mdF%8+$Sho~oxpbLc9Q-O0qJh6obCp~GFF7(V4IM@tw$|CG^9l>%$8n4?8~Fwm#dqwHUv7M?BP-R8 zu3<%lBfWBd!brUDlI^nG`U&oY*SBhnD1PTjWCx-kj)+M|h(bYgSfyQzIq1h?&R++g z->LQlGrl=gK>__VEnME>7{_b~QR(Q{KE&Ai-b;b_UUa7V+IYsklt&wXu!6nCksuH0 zpo8h)i0yH{&>OR@w?NmAu8#N2zYGZa=A1esejRE}%6{$YF-9I*{n& zkRM?ZT*7?FgX2JNjD2VD`*-VedJ^o_Nt8Iu0Gcrt(v z?W}2YA%x|C4Oy#(L)Ix4aHEP5LUHC9!LSxtb?su_n6%Bqb-Igt_BRW@4i%G*#wJz5 zH5a`kSu{qa#(<`SYG*>@wMMNB{CxQ*Ka*VxV`sgYpBz1)jbD(39wWvQh1lyNsVPZ- z(xGxPC_uauMV7vi(l6*^5@#BHQJnO;Kl${G!@LUd?qiF?hIkp44BPv01hqZ#7||~O zxkf0lvQX#9(DV{pcSEuttdpi@L|UGMD3!kK$Gf|Qnv0FiaBm3Klo;X6`!GdnhJ%l;{Cg^1NS=uj=GJJRP;4-<;F!dg`ikX(|C*3 zKJkqYSp4qsSbOiAdyBOOErv3N7s~u-EZ`6vY3-zsn=1#~r7GT`0I&n(r5)M(_WtS> zZ+Fuu+R7-Kj*XTSTOLU5e~&qBT9(!ATCe2*DHUFoJPQso7}DDDuK@~9`&AZPy6X|% z+v6-wRv$EISQ=}Gw2cRj!;#*5nJD67e^fYP&O8B}^|9r2t+87QF@ueA7fk;W)y&?qJv;OBT{V%!ub0*vuD z=Xb}t@-Q=PW!~bSY0TthFCcRXULEy#P98z*zP@7ZceKl4;t>-#Bb87-+l9s!jO2#E!Qyb77k-@;c_$|RyW4GDo>_Q82Htj6 z7C%(OktXno`ifq#T{UYR2`LO05$^tHZ4a$WOWJ##L1RTSf5*-KeP4Ig9{+e0@3(2t z9BB}Hn|?k}jm-nN=;g<%0_!ZHUAXT*Y8mg`=jdWD=3!f!r|2cIJypoy}x9eU%c0{jU`mWYQJPb1(PSDSLKtXS;*!l zM_GS>LEdp5`*6?VM^3U7a*hXW_&w@)?4In`Z&?w`4_(|;^wO1~!iawD=9Y<_^&g0; zSkgo=G9ME$s*cE7K)q>o*Y5*&$m3Pf`{i=;^{a#KcJ{|Plsuh00hl9tatE^raVBnF z5sY4PZBckTVxl}F0T=~dItOBm`BXE?UO0AnM4m(lGh6O7@Z9#|rP?^WH@7aXT%oU}$X?n;8Tne4 z=KN(dhy|%}&>3yeAwn%TzzazXIf`JI^dsZ2rq*xlUh)<4iXO+lYbitH5ZCuc-$fA* zy01ks%vh9<(nEw^hjyV!E-`Z;T_p5_HTN+kg!@76824Tni+C{#(!HPDkvvzz2-|eR zEi@vD)u@~xwk=-cgVR{hX22g~7bFQzgmPtvv-Q_|hFRG7?L?H$`iSd!lC}ucAT+Y$ z@v&&H*k=O~__zm`)r@m6x_-gKEfd<1XNlHvVwDjLu=iKFe#ye!?{1yLrS`%}8&q|q ziEhW7R~9IRUNQ~9hhZHgALX5mzIfl^ja`R^5TQC6A&}#689FzJqM9BKg}sl&r7%W9 zuBM$6Ps+ilU)R#Y2p6+6S&V+vGnn_6?C~3l1`(BziAatd`~blLY@P>>>CS6(0;qn+ zR=^S3sgU4c;08M}V3NC80ZV{_xrd#eq=T%}KQ0g5yklw9Ls$yg40he*ib^VZj9$kY zC8SraY(wBzgAO`^m|5N6rR?eT2wKZyPv@Yhe@s*b0U}T{I+$5$Tht~788?qHpMB2T zj?Ryt`)(9%jVPEcN+=5VszvVLm|RqBI&xnzvdd%1ku<9b9TI0uOaBuji-RI_L{n-% zdkv2j!SNX5OgGhus4wLfdeL7AcwL-%02hbB#$H*Oh)}9CW0Wi8o%Opqi2mWk7j=@l zQog*)h*n5vL3T+sjl+BvMHr&w;hmV<3~--oc+ZdzjhvNJI=hJ_1ZL7Gih%PAe)LkC z?20C;?)s6KsJ~D{wHr%BKkdMD>0E5GCYhCaZgIg>WcuLPGDp~(j`tSW4>o% z1Mdv4X0U5_?N*14cZlz`5#&I*zYlbx2=`X9nyzpq-zNn!K}jL9~9 z<^NV*8GMipyB8@Yx0Hr3vsac!p`XW4rS$te4;miXelmQHB9J|SG5QUR!m2Gn$Q?JU zByJTLvbi}>9n&zRn%JBB6Q=84QVGP=b4Op%C6CH~J(IaI2Q_M^Bi}y#U|J6={4{|l zr2Q#I7ZCGOb|5t&eL~1Pe>*VLW{TOn&c5_XoF>COTm~+I#XvWcA{J{yZs-#SW5(*& zOzeSa&!bcAi^2>~`Am$Z%J)5c19e277MU`nHYm;G-$9}bTCsa6_ zFthKx{j~Ozr$d|+1~w^aIc$x8!2GY=_O}5qy)rT#pNl;;?=3!3#tvZ0NXNs+r+=w+ zW$r?Pg7!8KTHH^{&mmNJ`>19e&(?dj8|>0EMBzw#q7X=&qdo23_b*+`I9esb^e+P*bH#6EzVl3^)%rgBFfT)L zVJjpuO^QO)VS?V_SD!z0Ie#LejyhXkT3xnqSQem<1ha;D9xIEy15aC^R+1g5voZF2AJ zwaD<0PKsBj@lbl{tJL1Y zV6swvKsmO?!r;nXmv&(PIL{^|3RJJzeYizz5R)a7e@&u=3J^y+yL!*mhysk^yMk6g zpPT^*3X|QQyJP9ihd>jtdGB-iM{}XdB&3~HcxeO4+US(@O%lPUNOH8(HDPo}aS$ad zV*>|0A?Po*iBg8YA>MvjNOTD0Y){u6&pOU_@RkV44p@NWAb#-W;JqTc8sU>U{rb$i zkLj>sz4hI`Jr*>@`YdD+Ba@HLoFvMasuIJ3Jc(n@qK0OF+e=fr8 zmf}7$)mO|pWOopY^h2yWEUJ@fy1Lnn)^nD6db+o_Z4%`RdM;WSfPFpORG{?T+DPUz zr`-Pda<^-asVnFA46W8a5u&6;o zShOvw5x$5exlp77bo1z03^WA?(XCd zX3H*zyMJvygoVaIUxfIB2G}28(Wl^6WHzwAAHGL>7$<(mpjWY;Du)%W?-T=H&rs%@lH&G~drJF_j~x!HB5>i9T25Luc)0#8RLy!A-k%!O-}f zb;8gl+h@X8jq=oOm^b|m9?zCW@F?;Z?H47rCv)G?m!=?-ZnBskDN7j64Zxof%&I(E z>+rqs;~oa{(mQcL*L1ODeCc2Lz`39K35AALd|pADna%Q(xi7A=nPahqhJ9!lm#~FP z{kS|jV1fB@9y;`<6EX0J*ZZ!POX@?b^j5U_Yhd9<@E}L}v@3|g^A_T1X?No{CSLLJ z&L&p?>SqW{vcZ-rlB;rrD`e3GF3SSS>zBG~m;QoL43}u}b|Na&2fsj?k~=h2E!V%B zXu|Q*aOJ>_yvps*jGXY@9+gt^o@BUkRlzwv|8LMDS9`^xUxetfH5jYQ6kC{+qi_A@um~Vr@vyK8p9}pPxd|NVb4#GdsuYe<~mZS5HMwE_(lH z%s2n;qL+?R9&zGLpqCeDX{M_D4wzis#W-g}^=68#C^u}=wJBF}7EX1ar~+HBCRNLR zzLG-PSIW5tg?zlv#u+WXvP^KWuY z0z2QYcls0V=LVK#W@e5-mtvDd1FZRRlztPvHp`B2n#G6e?o6@XWs}C_XXXtQfk`ox zdIBZmy@LQBCT6|*nSDQQt!4k9jLXJL61piMyp%No*B!ch0%f$MVW^K^V-t)w1*FHD zGYel|-_gxUScuy^|0g>7w+<38&DdF2gx;?sfrPSmGLi+&W|!7!^R^|@Y~#bP1iTv| zHpTC3?*pzhnRIK5l;Pjbl0WxJF`k)jExE|Vt$k1e>a7c_;E(?ZpvM143&;QJ@AyA{ znD@dQiZecaJ=>eiH3Lmw4vR5j?{3bAzXN1v=i?#=2cN&;j{py=y!`w3@9)TEo2hgJ zA*KYann1_51oV?G+T|DqHDITYk-Z{SDEn6LsucLGRy2R2kd{{M$RChTQK9fnDc0KL7* zGO`{4L>>t0H=fK_NsRFgPhRX#D*)Le4@f2a;{?MTrT1kGtH7$}@8kr+YBpIGWaSIF zB_M267vw1p<_}K>%eiw5_zB_aSc8DqO{IQ^ zj{%rv!N~wWSO&&#uQlT|iq)+a0y$8&H390@NyCk}tdceY;mS_o*AGosuluVb-HaDK zO2m0<5YvEVHZV0A=;78nU&$Hs<6CY3J{FB_@#4-RI>vPmm0?JU@$R-kXVe`OUs~uPFz>e z7(xzL_vRSbEyY?m6_eS-gr7jCjn{4N*&JkK-Kgwn<&USrwSwe+V$W*O-XcJylDOT= zjot!5JB%1iRo|x1L19R06ng|Xf{$g zcs~57Bhmvq_U*T{o(q=WB}D<|M5Dby&mN)$)NmGOE{a5;05ZDeiOtUm#(?(j`lP~J z(;@qCcNfpVj-W`V>%Q4#-${#%Sir?slsUHKNTO!u{-mPk%WY z3x!wp8>80jt%~q%p3Bjq=Bn4ZQl#)?>((%!^>w=A%c!v0+}8GoBhoS@c!r<4JmFuK zW}*Scn-N$FoJmv-*Dd%byi7u#5)q6iPI^gZ&Nc%Gyx(J_t#=bVsvO}hAh=9)C`Blm<5GaapqY6d)0ND~?%@C~DV&_acZ4{v|ihGZy z%tcQpfdG#`DoAgmn%HP9FYb)azX#PUN-X$E^}A;!>2gc}NB?qccqf7w3KVvN-qn!< zytlRLmux9Wvn&$faL8@S;g?_Dg-WOdl{-QG_ej6i^LehGP9rbv5}ta8;Z=oR7<_AtECfJH&z_Q3Ci< zi|WLhg06E-PJuDF&Px}#9}=Y+8Twor`$id(qmAK~{2;gUnl^gJzJ(P(tt{0Dn|;r?EON$?RR2c2T^P-2Zu@=RzrQa<7Ea=9={mx9tEMk z1KT@+uvcSLE?+UI8g)4XPwLG_2@P1=jjBHM<*5OCI=`#+QlE~O`Me`xB7=s7f&G_(jQ;`-24)a|Zms@2Ft6b-s7vmW zfFl3?XBPJ}aPlk~6#&Q7pnS`Jevf|1-bE!R?K}zin5{_+40G zF`7YT53~g%>=zh}&l6Lu5cbZOzf1+bNh_tMGP^+OYWrs&8%5LOR->)DIe1-@V=nty zjn|q#EF)K1Oa`JAf`>KBK$ud>N5wIPzSxQn=bPTPwzis%F4oP?e0KgXKBrNtE%p_c z*;?u4RBZy&P(U&)GM-#<98JDv_|D4#2Ady)1G&QADl6GMygSLQ<{OI@)80t+`*109 z+b`s7lJL9DUbpdmY>as77|&B#^O-8La^~~8k&W1)4*mKy&RsepVOX<7;h_G=Y#=Iq zmN*vgzKsbuD|JmMOWsu^9t(XwIPeb)83Y{-7jOK4fB=`fZmABrky+cit0Majtv48f zj9TS`F+6K=)?79UzXa=Eo@h5bxfiQ9 zRe#j(cxQMxtpJDOBf%mgsqMUS|7V1?cWzE=E+kvjA1car`F}d1-C$UHYF}Air8Nb} z@RaJdYwSi6|Bbr2xzSdj0;>v7As3KLBJdm&PbZQ0J`hg5^@j7sNp(Bw8^*=+1ZGd! z(KS%WiIkg-{jWN(3DTWfcN}_mdmt|iuX%|&sQ)-Q+%`(oN z?TnhVH8W>Yg#yF=450!(4CAyt666hbwjXGEWa)R2ZL7}Yq()INFRXj28Csp{nrBhkdQ=| zm%yoHcHHW5M+n+}Kf2yoYA16^--aX9`qZM!6TGzJ8hX(W+#&f`0eeQcJ=fQ#q5 z0gK6mAX?gg@dq|~U_stHWP*}vwJncJ zW1q3Cp6g~{wOra%m)H2K$WX~=4TD^hWaQST8-4LTk4b+7e}&DiveVz+QdZOLfhhPF zUo?tT#R@@oAjosC$e5}(fG^fB`$7y3C|m#fF}yAYZMJn!wpaUKUgwKPx`4p#Z7rke z{iDSWa@0R_)2;wOCIdJBS(g!rLH8v4za`__:: - usage: fixmeta [-h] [-p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [-b BIDSMAP] - bidsfolder pattern metadata + usage: fixmeta [-h] [-p LABEL [LABEL ...]] [-b NAME] bidsfolder pattern metadata A bidsapp that can change or add meta data in BIDS data repositories. The fixmeta app supports the use of special bidsmap features, such as dynamic values to use source data attributes or properties, or to @@ -39,11 +38,10 @@ If you have a previously converted BIDS data repository and you would like to re options: -h, --help show this help message and exit - -p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...], --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...] + -p LABEL [LABEL ...], --participant LABEL [LABEL ...] Space separated list of sub-# identifiers to be processed (the sub-prefix can - be left out). If not specified then all participants will be processed will be - processed - -b BIDSMAP, --bidsmap BIDSMAP + be left out). If not specified then all participants will be processed + -b NAME, --bidsmap NAME Selects a custom study bidsmap file for extracting source data properties and attributes. If the bidsmap filename is just the basename (i.e. no "/" in the name) then it is assumed to be located in the current directory or in @@ -59,8 +57,8 @@ Multi-echo combination Before sharing or pre-processing their images, you may want to combine the separate the individual echos of multi-echo MRI acquisitions. The ``echcombine``-tool is a wrapper around ``mecombine`` that writes BIDS valid echo-combined output data:: - usage: echocombine [-h] [-p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [-o OUTPUT] - [-a {PAID,TE,average}] [-w [WEIGHTS ...]] [-f] + usage: echocombine [-h] [-p LABEL [LABEL ...]] [-o DESTINATION] [-a {PAID,TE,average}] + [-w [WEIGHT ...]] [-f] bidsfolder pattern A wrapper around the 'mecombine' multi-echo combination tool @@ -77,20 +75,20 @@ Before sharing or pre-processing their images, you may want to combine the separ options: -h, --help show this help message and exit - -p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...], --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...] + -p LABEL [LABEL ...], --participant LABEL [LABEL ...] Space separated list of sub-# identifiers to be processed (the sub-prefix can - be left out). If not specified then all participants will be processed will be - processed (default: None) - -o OUTPUT, --output OUTPUT + be left out). If not specified then all participants will be processed + (default: None) + -o DESTINATION, --output DESTINATION A string that determines where the output is saved. It can be the name of a - BIDS data type folder, such as 'func', or of the derivatives folder, i.e. - 'derivatives'. If output = [the name of the input data type folder] then the + BIDS datatype folder, such as 'func', or of the derivatives folder, i.e. + 'derivatives'. If output = [the name of the input datatype folder] then the original echo images are replaced by one combined image. If output is left - empty then the combined image is saved in the input data type folder and the + empty then the combined image is saved in the input datatype folder and the original echo images are moved to the 'extra_data' folder (default: ) -a {PAID,TE,average}, --algorithm {PAID,TE,average} Combination algorithm (default: TE) - -w [WEIGHTS ...], --weights [WEIGHTS ...] + -w [WEIGHT ...], --weights [WEIGHT ...] Weights for each echo (default: None) -f, --force Process all images, regardless whether target images already exist. Otherwise the echo-combination will be skipped (default: False) @@ -107,8 +105,7 @@ Defacing Before sharing or pre-processing your data, you may want to deface your anatomical MRI scans to protect the privacy of your participants. The ``deface``-tool is a wrapper around `pydeface `__ that writes BIDS valid defaced output images (NB: pydeface requires `FSL `__ to be installed on the system):: - usage: deface [-h] [-p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [-o OUTPUT] [-c] [-n NATIVESPEC] - [-a ARGS] [-f] + usage: deface [-h] [-p LABEL [LABEL ...]] [-o DESTINATION] [-c [SPECS]] [-a DICT] [-f] bidsfolder pattern A wrapper around the 'pydeface' defacing tool (https://github.com/poldracklab/pydeface). Pydeface @@ -129,22 +126,22 @@ Before sharing or pre-processing your data, you may want to deface your anatomic options: -h, --help show this help message and exit - -p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...], --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...] + -p LABEL [LABEL ...], --participant LABEL [LABEL ...] Space separated list of sub-# identifiers to be processed (the sub-prefix can - be left out). If not specified then all participants will be processed will be - processed (default: None) - -o OUTPUT, --output OUTPUT + be left out). If not specified then all participants will be processed + (default: None) + -o DESTINATION, --output DESTINATION A string that determines where the defaced images are saved. It can be the - name of a BIDS data type folder, such as 'anat', or of the derivatives folder, + name of a BIDS datatype folder, such as 'anat', or of the derivatives folder, i.e. 'derivatives'. If output is left empty then the original images are replaced by the defaced images (default: None) - -c, --cluster Use the DRMAA library to submit the deface jobs to a high-performance compute - (HPC) cluster (default: False) - -n NATIVESPEC, --nativespec NATIVESPEC - Opaque DRMAA argument with native specifications for submitting deface jobs - to the HPC cluster (NB: Use quotes and include at least one space character - to prevent premature parsing) (default: -l walltime=00:30:00,mem=2gb) - -a ARGS, --args ARGS Additional arguments (in dict/json-style) that are passed to pydeface (NB: + -c [SPECS], --cluster [SPECS] + Use the DRMAA library to submit the deface jobs to a high-performance compute + (HPC) cluster. You can add an opaque DRMAA argument with native + specifications for your HPC resource manager (NB: Use quotes and include at + least one space character to prevent premature parsing -- see examples) + (default: None) + -a DICT, --args DICT Additional arguments (in dict/json-style) that are passed to pydeface (NB: Use quotes). See examples for usage (default: {}) -f, --force Deface all images, regardless if they have already been defaced (i.e. if {"Defaced": True} in the json sidecar file) (default: False) @@ -160,8 +157,7 @@ Multi-echo defacing This utility is very similar to the `deface <#defacing>`__ utility above, except that it can handle multi-echo data:: - usage: medeface [-h] [-m MASKPATTERN] [-p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [-o OUTPUT] [-c] - [-n NATIVESPEC] [-a ARGS] [-f] + usage: medeface [-h] [-m PATTERN] [-p LABEL [LABEL ...]] [-o DESTINATION] [-c [SPECS]] [-a DICT] [-f] bidsfolder pattern A wrapper around the 'pydeface' defacing tool (https://github.com/poldracklab/pydeface) that @@ -183,26 +179,26 @@ This utility is very similar to the `deface <#defacing>`__ utility above, except options: -h, --help show this help message and exit - -m MASKPATTERN, --maskpattern MASKPATTERN + -m PATTERN, --maskpattern PATTERN Globlike search pattern (relative to the subject/session folder) to select the images from which the defacemask is computed, e.g. 'anat/*_part- mag_*_T2starw*'. If not given then 'pattern' is used (default: None) - -p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...], --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...] + -p LABEL [LABEL ...], --participant LABEL [LABEL ...] Space separated list of sub-# identifiers to be processed (the sub-prefix can - be left out). If not specified then all participants will be processed will be - processed (default: None) - -o OUTPUT, --output OUTPUT + be left out). If not specified then all participants will be processed + (default: None) + -o DESTINATION, --output DESTINATION A string that determines where the defaced images are saved. It can be the - name of a BIDS data type folder, such as 'anat', or of the derivatives folder, + name of a BIDS datatype folder, such as 'anat', or of the derivatives folder, i.e. 'derivatives'. If output is left empty then the original images are replaced by the defaced images (default: None) - -c, --cluster Use the DRMAA library to submit the deface jobs to a high-performance compute - (HPC) cluster (default: False) - -n NATIVESPEC, --nativespec NATIVESPEC - Opaque DRMAA argument with native specifications for submitting deface jobs - to the HPC cluster (NB: Use quotes and include at least one space character - to prevent premature parsing) (default: -l walltime=00:30:00,mem=2gb) - -a ARGS, --args ARGS Additional arguments (in dict/json-style) that are passed to pydeface (NB: + -c [SPECS], --cluster [SPECS] + Use the DRMAA library to submit the deface jobs to a high-performance compute + (HPC) cluster. You can add an opaque DRMAA argument with native + specifications for your HPC resource manager (NB: Use quotes and include at + least one space character to prevent premature parsing -- see examples) + (default: None) + -a DICT, --args DICT Additional arguments (in dict/json-style) that are passed to pydeface (NB: Use quotes). See examples for usage (default: {}) -f, --force Process all images, regardless if images have already been defaced (i.e. if {"Defaced": True} in the json sidecar file) (default: False) @@ -219,8 +215,8 @@ Skull-stripping The ``skullstrip``-tool is a wrapper around the synthstrip tool that writes BIDS valid brain extracted output data:: - usage: skullstrip [-h] [-p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [-m MASKED] - [-o OUTPUT [OUTPUT ...]] [-f] [-a ARGS] [-c] [-n NATIVESPEC] + usage: skullstrip [-h] [-p LABEL [LABEL ...]] [-m PATTERN] [-o DESTINATION [DESTINATION ...]] [-f] + [-a ARGS] [-c [SPECS]] bidsfolder pattern A wrapper around FreeSurfer's 'synthstrip' skull stripping tool @@ -238,32 +234,33 @@ The ``skullstrip``-tool is a wrapper around the synthstrip tool that writes BIDS options: -h, --help show this help message and exit - -p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...], --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...] + -p LABEL [LABEL ...], --participant LABEL [LABEL ...] Space separated list of sub-# identifiers to be processed (the sub-prefix can - be left out). If not specified then all participants will be processed will be - processed (default: None) - -m MASKED, --masked MASKED + be left out). If not specified then all participants will be processed + (default: None) + -m PATTERN, --masked PATTERN Globlike search pattern (relative to the subject/session folder) to select additional (3D/4D) images from the same space that need to be masked with the same mask, e.g. 'fmap/*_phasediff'. NB: This option can only be used if pattern yields a single file per session (default: None) - -o OUTPUT [OUTPUT ...], --output OUTPUT [OUTPUT ...] + -o DESTINATION [DESTINATION ...], --output DESTINATION [DESTINATION ...] One or two output strings that determine where the skullstripped + additional masked images are saved. Each output string can be the name of a BIDS - data type folder, such as 'anat', or of the derivatives folder, i.e. - 'derivatives' (default). If the output string is the same as the data type + datatype folder, such as 'anat', or of the derivatives folder, i.e. + 'derivatives' (default). If the output string is the same as the datatype then the original images are replaced by the skullstripped images (default: None) -f, --force Process images, regardless whether images have already been skullstripped (i.e. if {'SkullStripped': True} in the json sidecar file) (default: False) -a ARGS, --args ARGS Additional arguments that are passed to synthstrip (NB: Use quotes and - include at least one space character to prevent premature parsing) (default:) - -c, --cluster Use the DRMAA library to submit the skullstrip jobs to a high-performance - compute (HPC) cluster (default: False) - -n NATIVESPEC, --nativespec NATIVESPEC - Opaque DRMAA argument with native specifications for submitting skullstrip - jobs to the HPC cluster (NB: Use quotes and include at least one space - character to prevent premature parsing) (default: -l walltime=0:05:00,mem=8gb) + include at least one space character to prevent premature parsing) (default: + ) + -c [SPECS], --cluster [SPECS] + Use the DRMAA library to submit the skullstrip jobs to a high-performance + compute (HPC) cluster. You can add an opaque DRMAA argument with native + specifications for your HPC resource manager (NB: Use quotes and include at + least one space character to prevent premature parsing -- see examples) + (default: None) examples: skullstrip myproject/bids anat/*_T1w* @@ -276,13 +273,11 @@ Quality control ``Slicereport`` is a very flexible QC report generator for doing visual inspections on your BIDS data:: - usage: slicereport [-h] [-o OUTLINEPATTERN] [-i OUTLINEIMAGE] - [-p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [-r REPORTFOLDER] - [-x XLINKFOLDER [XLINKFOLDER ...]] [-q QCSCORES [QCSCORES ...]] - [-c {torque,slurm}] [-m MEM] [--operations OPERATIONS] - [--suboperations SUBOPERATIONS] [--options OPTIONS [OPTIONS ...]] - [--outputs OUTPUTS [OUTPUTS ...]] [--suboptions SUBOPTIONS [SUBOPTIONS ...]] - [--suboutputs SUBOUTPUTS [SUBOUTPUTS ...]] + usage: slicereport [-h] [-o PATTERN] [-i FILENAME] [-p LABEL [LABEL ...]] [-r FOLDER] + [-x FOLDER [FOLDER ...]] [-q NAME [NAME ...]] [-c [SPECS]] + [--operations OPERATIONS] [--suboperations OPERATIONS] + [--options OPTIONS [OPTIONS ...]] [--outputs OUTPUTS [OUTPUTS ...]] + [--suboptions OPTIONS [OPTIONS ...]] [--suboutputs OUTPUTS [OUTPUTS ...]] bidsfolder pattern A wrapper around the 'fslmaths' (https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/Fslutils) and 'slicer' @@ -304,37 +299,37 @@ Quality control options: -h, --help show this help message and exit - -o OUTLINEPATTERN, --outlinepattern OUTLINEPATTERN + -o PATTERN, --outlinepattern PATTERN Globlike search pattern to select red outline images that are projected on top of the reported images (i.e. 'outlinepattern' must yield the same number of images as 'pattern'. Prepend `outlinedir:` if your outline images are in `outlinedir` instead of `bidsdir` (see examples below)` - -i OUTLINEIMAGE, --outlineimage OUTLINEIMAGE + -i FILENAME, --outlineimage FILENAME A common red-outline image that is projected on top of all images - -p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...], --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...] + -p LABEL [LABEL ...], --participant LABEL [LABEL ...] Space separated list of sub-# identifiers to be processed (the sub-prefix can - be left out). If not specified then all participants will be processed will be - processed - -r REPORTFOLDER, --reportfolder REPORTFOLDER + be left out). If not specified then all participants will be processed + -r FOLDER, --reportfolder FOLDER The folder where the report is saved (default: bidsfolder/derivatives/slicereport) - -x XLINKFOLDER [XLINKFOLDER ...], --xlinkfolder XLINKFOLDER [XLINKFOLDER ...] + -x FOLDER [FOLDER ...], --xlinkfolder FOLDER [FOLDER ...] A (list of) QC report folder(s) with cross-linkable sub-reports, e.g. bidsfolder/derivatives/mriqc - -q QCSCORES [QCSCORES ...], --qcscores QCSCORES [QCSCORES ...] + -q NAME [NAME ...], --qcscores NAME [NAME ...] Column names for creating an accompanying tsv-file to store QC-rating scores (default: rating_overall) - -c {torque,slurm}, --cluster {torque,slurm} - Use `torque` or `slurm` to submit the slicereport jobs to a high-performance - compute (HPC) cluster - -m MEM, --mem MEM The amount of requested memory in GB for the cluster jobs + -c [SPECS], --cluster [SPECS] + Use the DRMAA library to submit the slicereport jobs to a high-performance + compute (HPC) cluster. You can add an opaque DRMAA argument with native + specifications for your HPC resource manager (NB: Use quotes and include at + least one space character to prevent premature parsing -- see examples) --operations OPERATIONS One or more fslmaths operations that are performed on the input image (before slicing it for the report). OPERATIONS is opaquely passed as is: `fslmaths inputimage OPERATIONS reportimage`. NB: Use quotes and include at least one space character to prevent premature parsing, e.g. " -Tmean" or "-Tstd -s 3" (default: -Tmean) - --suboperations SUBOPERATIONS + --suboperations OPERATIONS The same as OPERATIONS but then for the sub-report instead of the main report: `fslmaths inputimage SUBOPERATIONS subreportimage` (default: -Tmean) --options OPTIONS [OPTIONS ...] @@ -342,10 +337,10 @@ Quality control --outputs OUTPUTS [OUTPUTS ...] Output options of slicer (see below). (default: "x 0.4 x 0.5 x 0.6 y 0.4 y 0.5 y 0.6 z 0.4 z 0.5 z 0.6") - --suboptions SUBOPTIONS [SUBOPTIONS ...] + --suboptions OPTIONS [OPTIONS ...] Main options of slicer for creating the sub-reports (same as OPTIONS, see below). (default: OPTIONS) - --suboutputs SUBOUTPUTS [SUBOUTPUTS ...] + --suboutputs OUTPUTS [OUTPUTS ...] Output options of slicer for creating the sub-reports (same as OUTPUTS, see below). (default: "S 4 1600") @@ -372,7 +367,7 @@ Quality control examples: slicereport bids anat/*_T1w* slicereport bids anat/*_T2w* -r QC/slicereport_T2 -x QC/slicereport_T1 - slicereport bids fmap/*_phasediff* -o fmap/*_magnitude1* + slicereport bids fmap/*_phasediff* -o fmap/*_magnitude1* -c "--time=00:10:00 --mem=2000" slicereport bids/derivatives/fmriprep func/*desc-preproc_bold* --suboperations " -Tstd" slicereport bids/derivatives/fmriprep anat/*desc-preproc_T1w* -o anat/*label-GM* -x bids/derivatives/fmriprep slicereport bids/derivatives/deface anat/*_T1w* -o bids:anat/*_T1w* --options L e 0.05 diff --git a/docs/installation.rst b/docs/installation.rst index bc24a565..7ea651ff 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -42,11 +42,11 @@ If you do not have git (or any other version control system) installed you can ` $ pip install ./bidscoin[dcm2niix2bids] -If you are installing BIDScoin on an older system and you are getting Qt6 errors, you can try to install a ``+qt5`` build, e.g. for version 4.3.2: +If you are installing BIDScoin on an older system and you are getting Qt6 errors, you can try to install a ``+qt5`` build, e.g. for version 4.3.3: .. code-block:: console - $ pip install bidscoin[dcm2niix2bids]@git+https://github.com/Donders-Institute/bidscoin@v4.3.2+qt5 + $ pip install bidscoin[dcm2niix2bids]@git+https://github.com/Donders-Institute/bidscoin@v4.3.3+qt5 Updating BIDScoin ^^^^^^^^^^^^^^^^^ @@ -94,7 +94,7 @@ An alternative for installing Python, BIDScoin and it's dependencies yourself is The current Apptainer image includes: * Debian stable, -* The latest stable release (v4.3.2+qt5) of BIDScoin +* The latest stable release (v4.3.3+qt5) of BIDScoin * The latest versions of dcm2niix, pydeface, spec2nii This image does not include FreeSurfer/synthstrip (needed for ``skullstrip``) @@ -150,7 +150,7 @@ If the Apptainer container is not working for you, it is also possible to use a The current Docker image includes the same as the Apptainer image: * Debian stable, -* The latest stable release of BIDScoin (v4.3.2+qt5) +* The latest stable release of BIDScoin (v4.3.3+qt5) * The latest versions of dcm2niix, pydeface, spec2nii and some FSL tools Likewise, the current image does not include FreeSurfer/synthstrip (needed for ``skullstrip``) diff --git a/docs/troubleshooting.rst b/docs/troubleshooting.rst index 04311309..ba968d1a 100644 --- a/docs/troubleshooting.rst +++ b/docs/troubleshooting.rst @@ -95,7 +95,7 @@ You may get the error "Could not parse required sub- label from [..]". This erro I got an "Unexpected postfix / file conversion result" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -This bidscoiner warning message means that the source data was not properly recognized/converted by the plugin. Please search and/or report it on `Github issue `__ to resolve it. +This bidscoiner warning message means that the source data was not properly recognized/converted by the plugin. Please search and/or report it on `GitHub issue `__ to resolve it. I only see "_magnitude1" or "_magnitude2" run-items in my bidsmap ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -105,14 +105,6 @@ My source-files can no longer be found ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You may get the warning "Cannot reliably change the data type and/or suffix because the source file '..' can no longer be found". This warning is generated when (1) your source data moved to a different location, or (2) your data is zipped or in DICOMDIR format. This warning can be ignored if you do not need to change the data type of your run-items anymore (in the bidseditor), because in that case BIDScoin may need access to the source data (to read new properties or attributes). To restore data access for (1), move the data to it's original location and for (2) use the ``--store`` option of bidsmapper to store local copies of the source data samples in the bids output folder. -Some acquisitions went wrong and need to be excluded -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -BIDScoin plugins will skip (Linux-style hidden) files and folders of which the name starts with a ``.`` (dot) character. You can use this feature to flexibly omit subjects, sessions or runs from your bids repository, for instance when you restarted an MRI scan because something went wrong with the stimulus presentation and you don't want that data to be converted and enumerated as ``run-1``, ``run-2``. - -I have duplicated field maps because of an interrupted session -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -It may happen that due to irregularities during data acquisition you had to reacquire your field-map for part of your data. In that case the ``IntendedFor`` and ``B0FieldIdentifier``/``B0FieldSource`` semantics become ambiguous. To handle this situation, you can use json sidecar files to extend the source attributes (see below) or use the limited ``IntendedFor`` search as described `here <./bidsmap.html#intendedfor>`__ and `here `__. - The bidscoiner says that the IntendedFor search gave no results ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Even if you have specified the IntendedFor value in the bidseditor, you still get `"Empty 'IntendedFor' field map value in {..}: the search for {..} gave no results"`. This may be because you hardcoded the IntendedFor value instead of providing a search pattern. Or it may be that you provided a correct search pattern but that for some subjects the target images were not acquired or could not be found (e.g. due to irregularities in the acquisition). Check out the BIDS output session(s) mentioned in the warning(s) and see if and how you should update your IntendedFor search pattern accordingly. @@ -125,10 +117,6 @@ I use dynamic run-indices and now have 'orphan' run-indices in my BIDS directory ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ BIDScoin automatically increments the run-index based on existing files in the same directory. In rare cases, this procedure can fail, leading to 'orphan' run-indices, e.g. a ``run-2`` file without an accompanying ``run-1`` file. Most likely this is caused by underspecified run-items in the bidsmap, for instance when you have a magnitude as well as a phase item, but you left the ``part`` entity empty (instead of specifying ``part-mag`` and ``part-phase``), i.e. you gave them the same output name (which BIDScoin then has to fix post-hoc). In rare cases you cannot avoid this problem and then it is advised to use the more robust ``<<1>>`` index, instead of ``<<>>`` -The data of some subjects need to be treated (mapped) differently -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Sometimes you may have irregularities in your data that make that you would like make exceptions for run-items of certain subjects. There are different ways to do this but most likely the best way to do this is to add a json sidecar file to the source data of those run-items. In the json sidecar file you can store an attribute key-value pair to `overrule or extend the original attribute value of the source data <./bidsmap.html#structure-and-content>`__. For instance, if your fMRI run was acquired with the wrong task presentation, e.g. ``task2`` instead of ``task1``, you can add ``SeriesDescription: task2`` to the sidecar file to overrule ``SeriesDescription: task1`` in the DICOM header (to make a more specific exception that shows up as a new run-item in the bidsmap you can change it to e.g. ``task1_exception``). - I want to rename files or change some data in my existing BIDS directory ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You can simply use the ``bidseditor`` to make changes to your bidsmap, delete all subject folders in your BIDS output folder and then re-run ``bidscoiner``. However, sometimes you may no longer have access to your source data, or you may have downloaded a publicly shared BIDS dataset (without source data). In that case you can use ``bidscoiner`` in combination with the ``nibabel2bids`` plugin and the ``bidsmap_bids2bids`` bidsmap to create a new BIDS dataset, i.e. like this: @@ -138,6 +126,27 @@ You can simply use the ``bidseditor`` to make changes to your bidsmap, delete al $ bidsmapper bidsfolder bidsfolder_new -p nibabel2bids -t bidsmap_bids2bids $ bidscoiner bidsfolder bidsfolder_new +Irregular data acquisition +-------------------------- + +Some acquisitions went wrong and need to be excluded +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +BIDScoin plugins will skip (Linux-style hidden) files and folders of which the name starts with a ``.`` (dot) character. You can use this feature to flexibly omit subjects, sessions or runs from your bids repository, for instance when you restarted an MRI scan because something went wrong with the stimulus presentation and you don't want that data to be converted and enumerated as ``run-1``, ``run-2``. Alternatively, you can manually add these runs using the bidseditor context menu (see the section below) and set their data type to ``exclude``. + +The data of some subjects need to be treated (mapped) differently +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Sometimes you may have irregularities in your data that make that you would like make exceptions for run-items of certain subjects. There are different ways to do this but most likely the best way to do this is to add a json sidecar file to the source data of those run-items. In the json sidecar file you can store an attribute key-value pair to `overrule or extend the original attribute value of the source data <./bidsmap.html#structure-and-content>`__. For instance, if your fMRI run was acquired with the wrong task presentation, e.g. ``task2`` instead of ``task1``, you can add ``SeriesDescription: task2`` to the sidecar file to overrule ``SeriesDescription: task1`` in the DICOM header (to make a more specific exception that shows up as a new run-item in the bidsmap you can change it to e.g. ``task1_exception``). + +An alternative way to make exceptions is to manually insert run-items using the ``Add`` context menu-item in the main window of the bidseditor (right-click on the selected BIDS output names). After you selected the irregular source data files you can then set the data type and BIDS entities just for these data sources. The way this works is that, as opposed to regular run-items, the ``filepath`` and ``filename`` properties are explicitly specified (so they do not match with other data sources; surely you can still edit them and add e.g. regular expression patterns to tweak your results). You can see the explicit values in the properties table in the screenshot below, and when you edit your added run-items. Finally, the added run-items are put at the front of the lists, so they get (run-item matching) priority when mapping your source data to BIDS. + +.. figure:: ./_static/bidseditor_added_run.png + + The full filepath and filename values (in black) of the added run-item. Typically, these values are empty or contain (regular expression) wildcards, to make generalize them over subject and sessions. Note that, for reference, their values (in gray, next column) on the filesystem are always shown. + +I have duplicated field maps because of an interrupted session +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +It may happen that due to irregularities during data acquisition you had to reacquire your field-map for part of your data. In that case the ``IntendedFor`` and ``B0FieldIdentifier``/``B0FieldSource`` semantics become ambiguous. To handle this situation, you can use json sidecar files to extend the source attributes (see the section above) or use the limited ``IntendedFor`` search as described `here <./bidsmap.html#intendedfor>`__ and `here `__. + More help --------- If this guide does not help to solve your problem, then you can `search on github `__ for open and/or closed issues to see if anyone else has encountered similar problems before. If not, feel free to help yourself and others by opening a new github issue or post your question on `NeuroStars `__ (tag: #bidscoin) diff --git a/docs/utilities.rst b/docs/utilities.rst index 79b110d6..c45273e9 100644 --- a/docs/utilities.rst +++ b/docs/utilities.rst @@ -6,9 +6,9 @@ bidscoin The bidscoin command-line utility serves as a central starting point to test and manage your BIDScoin installation:: - usage: bidscoin [-h] [-l] [-p] [-i INSTALL [INSTALL ...]] [-u UNINSTALL [UNINSTALL ...]] - [-d DOWNLOAD] [-t [TEST]] [-b BIDSMAPTEST] [-c CREDITS [CREDITS ...]] - [--tracking {yes,no,show}] [-v] + usage: bidscoin [-h] [-l] [-p] [-i INSTALL [INSTALL ...]] [-u UNINSTALL [UNINSTALL ...]] [-d FOLDER] + [-t [TEMPLATE]] [-b BIDSMAP] [-c OPTIONS [OPTIONS ...]] [--tracking {yes,no,show}] + [-v] BIDScoin is a toolkit to convert raw data-sets according to the Brain Imaging Data Structure (BIDS) @@ -34,14 +34,14 @@ The bidscoin command-line utility serves as a central starting point to test and A list of template bidsmaps and/or bidscoin plugins to install -u UNINSTALL [UNINSTALL ...], --uninstall UNINSTALL [UNINSTALL ...] A list of template bidsmaps and/or bidscoin plugins to uninstall - -d DOWNLOAD, --download DOWNLOAD + -d FOLDER, --download FOLDER Download tutorial MRI data to the DOWNLOAD folder - -t [TEST], --test [TEST] + -t [TEMPLATE], --test [TEMPLATE] Test the bidscoin installation and template bidsmap - -b BIDSMAPTEST, --bidsmaptest BIDSMAPTEST + -b BIDSMAP, --bidsmaptest BIDSMAP Test the run-items and their bidsnames of all normal runs in the study bidsmap. Provide the bids-folder or the bidsmap filepath - -c CREDITS [CREDITS ...], --credits CREDITS [CREDITS ...] + -c OPTIONS [OPTIONS ...], --credits OPTIONS [OPTIONS ...] Show duecredit citations for your BIDS repository. You can also add duecredit summary arguments (without dashes), e.g. `style {apa,harvard1}` or `format {text,bibtex}`. @@ -65,9 +65,8 @@ dicomsort The ``dicomsort`` command-line tool is a utility to move your flat- or DICOMDIR-organized files (see `above <#required-source-data-structure>`__) into a 'seriesfolder' organization. This can be useful to organize your source data in a more convenient and human readable way (DICOMDIR or flat DICOM directories can often be hard to comprehend). The BIDScoin tools will run dicomsort in a temporary folder if your data is not already organized in series-folders, so in principle you don't really need to run it yourself (unless when you have a single multi-subject DICOMDIR file for your entire repository). Running dicomsort beforehand does, however, give you more flexibility in handling special cases that are not handled properly and it can also give you a speed benefit. If dicomsort do not satisfy your needs, then have a look at this `DICOM reorganize `__ tool:: - usage: dicomsort [-h] [-i SUBPREFIX] [-j SESPREFIX] [-f FOLDERSCHEME] [-n NAMESCHEME] [-p PATTERN] - [--force] [-d] - dicomsource + usage: dicomsort [-h] [-i PREFIX] [-j PREFIX] [-f SCHEME] [-n SCHEME] [-p PATTERN] [--force] [-d] + sourcefolder Sorts and/or renames DICOM files into local subfolders, e.g. with 3-digit SeriesNumber-SeriesDescription folder names (i.e. following the same listing as on the scanner console) @@ -75,25 +74,24 @@ The ``dicomsort`` command-line tool is a utility to move your flat- or DICOMDIR- Supports flat DICOM as well as multi-subject/session DICOMDIR file structures. positional arguments: - dicomsource The root folder containing the dicomsource/[sub/][ses/] dicomfiles or the - DICOMDIR file + sourcefolder The root folder containing the [sub/][ses/] dicomfiles or the DICOMDIR file options: -h, --help show this help message and exit - -i SUBPREFIX, --subprefix SUBPREFIX - Provide a prefix string to recursively sort dicomsource/subject subfolders + -i PREFIX, --subprefix PREFIX + Provide a prefix string to recursively sort sourcefolder/subject subfolders (e.g. "sub-" or "S_") (default: None) - -j SESPREFIX, --sesprefix SESPREFIX - Provide a prefix string to recursively sort dicomsource/subject/session + -j PREFIX, --sesprefix PREFIX + Provide a prefix string to recursively sort sourcefolder/subject/session subfolders (e.g. "ses-" or "T_") (default: None) - -f FOLDERSCHEME, --folderscheme FOLDERSCHEME + -f SCHEME, --folderscheme SCHEME Naming scheme for the sorted DICOM Series subfolders. Follows the Python string formatting syntax with DICOM field names in curly bracers with an optional number of digits for numeric fields. Sorting in subfolders is skipped when an empty folderscheme is given (but note that renaming the filenames can still be performed) (default: {SeriesNumber:03d}-{SeriesDescription}) - -n NAMESCHEME, --namescheme NAMESCHEME + -n SCHEME, --namescheme SCHEME Optional naming scheme that can be provided to rename the DICOM files. Follows the Python string formatting syntax with DICOM field names in curly bracers with an optional number of digits for numeric fields. Use e.g. "{Pati @@ -119,9 +117,9 @@ rawmapper Another command-line utility that can be helpful in organizing your source data is ``rawmapper``. This utility can show you an overview (map) of all the values of DICOM-attributes of interest in your data-set and, optionally, used to rename your source data sub-folders. The latter option can be handy e.g. if you manually entered subject-identifiers as [Additional info] at the scanner console and you want to use these to rename your subject folders:: - usage: rawmapper [-h] [-s SESSIONS [SESSIONS ...]] [-f FIELD [FIELD ...]] [-w WILDCARD] - [-o OUTFOLDER] [-r] [-c] [-n SUBPREFIX] [-m [SESPREFIX]] [-d] - sourcefolder + usage: rawmapper [-h] [-s SESSION [SESSION ...]] [-f NAME [NAME ...]] [-w PATTERN] [-o FOLDER] [-r] + [-c] [-n PREFIX] [-m [PREFIX]] [-d] + FOLDER Maps out the values of a DICOM attribute of all subjects in the sourcefolder, saves the result in a mapper-file and, optionally, uses the DICOM values to rename the sub-/ses-id's of the @@ -130,31 +128,31 @@ Another command-line utility that can be helpful in organizing your source data is stored in the DICOM attribute named 'PatientComments') positional arguments: - sourcefolder The source folder with the raw data in sub-#/ses-#/series organization + FOLDER The source folder with the raw data in sub-#/ses-#/series organization options: -h, --help show this help message and exit - -s SESSIONS [SESSIONS ...], --sessions SESSIONS [SESSIONS ...] + -s SESSION [SESSION ...], --sessions SESSION [SESSION ...] Space separated list of selected sub-#/ses-# names/folders to be processed. Otherwise all sessions in the bidsfolder will be processed (default: None) - -f FIELD [FIELD ...], --field FIELD [FIELD ...] + -f NAME [NAME ...], --field NAME [NAME ...] The fieldname(s) of the DICOM attribute(s) used to rename or map the subid/sesid foldernames (default: ['PatientComments', 'ImageComments']) - -w WILDCARD, --wildcard WILDCARD + -w PATTERN, --wildcard PATTERN The Unix style pathname pattern expansion that is used to select the series from which the dicomfield is being mapped (can contain wildcards) (default: *) - -o OUTFOLDER, --outfolder OUTFOLDER + -o FOLDER, --outfolder FOLDER The mapper-file is normally saved in sourcefolder or, when using this option, in outfolder (default: None) -r, --rename Rename sub-subid/ses-sesid directories in the sourcefolder to sub-dcmval/ses- dcmval (default: False) -c, --clobber Rename the sub/ses directories, even if the target-directory already exists (default: False) - -n SUBPREFIX, --subprefix SUBPREFIX + -n PREFIX, --subprefix PREFIX The prefix common for all the source subject-folders. Use a '*' wildcard if there is no prefix (default: sub-) - -m [SESPREFIX], --sesprefix [SESPREFIX] + -m [PREFIX], --sesprefix [PREFIX] The prefix common for all the source session-folders. Use a '*' wildcard if there is no prefix or an empty value if there are no sessions (default: ses-) -d, --dryrun Dryrun (test) the mapping or renaming of the sub-subid/ses-sesid directories @@ -174,7 +172,7 @@ bidsparticipants The bidsparticipants tool is useful for (re-)generating a participants.tsv file from your source data (without having to run bidscoiner):: - usage: bidsparticipants [-h] [-k KEYS [KEYS ...]] [-d] [-b BIDSMAP] sourcefolder bidsfolder + usage: bidsparticipants [-h] [-k KEY [KEY ...]] [-d] [-b NAME] sourcefolder bidsfolder (Re)scans data sets in the source folder for subject metadata to populate the participants.tsv file in the bids directory, e.g. after you renamed (be careful there!), added or deleted data @@ -189,11 +187,11 @@ The bidsparticipants tool is useful for (re-)generating a participants.tsv file options: -h, --help show this help message and exit - -k KEYS [KEYS ...], --keys KEYS [KEYS ...] + -k KEY [KEY ...], --keys KEY [KEY ...] Space separated list of the participants.tsv columns. Default: 'session_id' 'age' 'sex' 'size' 'weight' -d, --dryrun Do not save anything, only print the participants info on screen - -b BIDSMAP, --bidsmap BIDSMAP + -b NAME, --bidsmap NAME The study bidsmap file with the mapping heuristics. If the bidsmap filename is just the basename (i.e. no "/" in the name) then it is assumed to be located in the current directory or in bidsfolder/code/bidscoin. Default: diff --git a/docs/workflow.rst b/docs/workflow.rst index d5971b3a..798a8dfb 100644 --- a/docs/workflow.rst +++ b/docs/workflow.rst @@ -23,8 +23,8 @@ Step 1a: Running the bidsmapper ------------------------------- :: - usage: bidsmapper [-h] [-b BIDSMAP] [-t TEMPLATE] [-p PLUGINS [PLUGINS ...]] [-n SUBPREFIX] - [-m SESPREFIX] [-u UNZIP] [-s] [-a] [-f] [--no-update] + usage: bidsmapper [-h] [-b NAME] [-t NAME] [-p NAME [NAME ...]] [-n PREFIX] [-m PREFIX] [-u PATTERN] + [-s] [-a] [-f] [--no-update] sourcefolder bidsfolder The bidsmapper scans your source data repository to identify different data types by matching @@ -43,30 +43,30 @@ Step 1a: Running the bidsmapper options: -h, --help show this help message and exit - -b BIDSMAP, --bidsmap BIDSMAP + -b NAME, --bidsmap NAME The study bidsmap file with the mapping heuristics. If the bidsmap filename is just the basename (i.e. no '/' in the name) then it is assumed to be located in the current directory or in bidsfolder/code/bidscoin. Default: bidsmap.yaml - -t TEMPLATE, --template TEMPLATE + -t NAME, --template NAME The bidsmap template file with the default heuristics (this could be provided by your institute). If the bidsmap filename is just the basename (i.e. no '/' in the name) then it is assumed to be located in the bidscoin config folder. Default: bidsmap_dccn - -p PLUGINS [PLUGINS ...], --plugins PLUGINS [PLUGINS ...] + -p NAME [NAME ...], --plugins NAME [NAME ...] List of plugins to be used. Default: the plugin list of the study/template bidsmap) - -n SUBPREFIX, --subprefix SUBPREFIX + -n PREFIX, --subprefix PREFIX The prefix common for all the source subject-folders (e.g. 'Pt' is the subprefix if subject folders are named 'Pt018', 'Pt019', ...). Use '*' when your subject folders do not have a prefix. Default: the value of the study/template bidsmap, e.g. 'sub-' - -m SESPREFIX, --sesprefix SESPREFIX + -m PREFIX, --sesprefix PREFIX The prefix common for all the source session-folders (e.g. 'M_' is the subprefix if session folders are named 'M_pre', 'M_post', ..). Use '*' when your session folders do not have a prefix. Default: the value of the study/template bidsmap, e.g. 'ses-' - -u UNZIP, --unzip UNZIP + -u PATTERN, --unzip PATTERN Wildcard pattern to unpack tarball/zip-files in the sub/ses sourcefolder that need to be unzipped (in a tempdir) to make the data readable. Default: the value of the study/template bidsmap @@ -95,7 +95,7 @@ Step 1b: Running the bidseditor ------------------------------- :: - usage: bidseditor [-h] [-b BIDSMAP] [-t TEMPLATE] bidsfolder + usage: bidseditor [-h] [-b NAME] [-t NAME] bidsfolder This application launches a graphical user interface for editing the bidsmap that is produced by the bidsmapper. You can edit the BIDS data types and entities until all run-items have a @@ -109,12 +109,12 @@ Step 1b: Running the bidseditor options: -h, --help show this help message and exit - -b BIDSMAP, --bidsmap BIDSMAP + -b NAME, --bidsmap NAME The study bidsmap file with the mapping heuristics. If the bidsmap filename is just the basename (i.e. no "/" in the name) then it is assumed to be located in the current directory or in bidsfolder/code/bidscoin. Default: bidsmap.yaml - -t TEMPLATE, --template TEMPLATE + -t NAME, --template NAME The template bidsmap file with the default heuristics (this could be provided by your institute). If the bidsmap filename is just the basename (i.e. no "/" in the name) then it is assumed to be located in the bidscoin config folder. @@ -141,7 +141,7 @@ As shown below, the main window of the bidseditor opens with separate data mappi Clear the ``session`` label field if you have data with only one session. This will remove the optional session label from the BIDS output name .. tip:: - You can `compare <./screenshots.html>`__ or edit multiple run-items by right-clicking their selected BIDS output names (use shift-/control-click to select the run-items) + You can compare, edit or add multiple run-items by selecting and right-clicking BIDS output names (use shift-/control-click to select multiple run-items). Unlike regular run-items, added run-items are specific to single data sources and can be used to handle data acquisition exceptions (see the `troubleshooting <./troubleshooting.html#irregular-data-acquisition>`__ guide for more info) Edit window ^^^^^^^^^^^ @@ -176,9 +176,7 @@ Step 2: Running the bidscoiner ------------------------------ :: - usage: bidscoiner [-h] [-p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [-b BIDSMAP] [-f] [-c] - [-n NATIVESPEC] - sourcefolder bidsfolder + usage: bidscoiner [-h] [-p LABEL [LABEL ...]] [-b NAME] [-f] [-c [SPECS]] sourcefolder bidsfolder Converts ("coins") your source datasets to NIfTI/json/tsv BIDS datasets using the mapping information from the bidsmap.yaml file. Edit this bidsmap to your needs using the bidseditor @@ -199,28 +197,27 @@ Step 2: Running the bidscoiner options: -h, --help show this help message and exit - -p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...], --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...] + -p LABEL [LABEL ...], --participant LABEL [LABEL ...] Space separated list of selected sub-# names/folders to be processed (the - sub-prefix can be removed). Otherwise all participants in the sourcefolder will + sub-prefix can be omitted). Otherwise all subjects in the sourcefolder will be processed - -b BIDSMAP, --bidsmap BIDSMAP + -b NAME, --bidsmap NAME The study bidsmap file with the mapping heuristics. If the bidsmap filename is just the basename (i.e. no "/" in the name) then it is assumed to be located in the current directory or in bidsfolder/code/bidscoin. Default: bidsmap.yaml -f, --force Process all subjects, regardless of existing subject folders in the bidsfolder. Otherwise these subject folders will be skipped - -c, --cluster Use the DRMAA library to submit the bidscoiner jobs to a high-performance - compute (HPC) cluster - -n NATIVESPEC, --nativespec NATIVESPEC - Opaque DRMAA argument with native specifications for submitting bidscoiner - jobs to the HPC cluster. NB: Use quotes and include at least one space - character to prevent premature parsing (default: -l walltime=00:30:00,mem=4gb) + -c [SPECS], --cluster [SPECS] + Use the DRMAA library to submit the bidscoiner jobs to a high-performance + compute (HPC) cluster. You can add an opaque DRMAA argument with native + specifications for your HPC resource manager (NB: Use quotes and include at + least one space character to prevent premature parsing -- see examples) examples: bidscoiner myproject/raw myproject/bids bidscoiner -f myproject/raw myproject/bids -p sub-009 sub-030 - bidscoiner -f myproject/raw myproject/bids -c -n "--time=00:30:00 --mem=4000" + bidscoiner -f myproject/raw myproject/bids -c "--time=00:30:00 --mem=4000" .. tip:: * Always check the terminal output for possible warnings or errors (a summary of them is printed at the end) diff --git a/pyproject.toml b/pyproject.toml index 0bfd220d..c65fca27 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'bidscoin' description = 'Converts and organises raw MRI data-sets according to the Brain Imaging Data Structure (BIDS)' -version = '4.3.2' +version = '4.3.3' readme = 'README.rst' requires-python = '>= 3.8' license = {file = 'LICENSE.txt'} diff --git a/release_procedure.rst b/release_procedure.rst index b3a332c1..c2b895a1 100644 --- a/release_procedure.rst +++ b/release_procedure.rst @@ -2,17 +2,17 @@ Release procedure ================= -This document describes how to prepare a new BIDScoin release from within the DCCN + a Linux VM +This document describes how to prepare a new BIDScoin release from within the DCCN + from a Linux VM -1. Inspect the git history and update the release notes (including the links) -2. Delete the the bidscoin config folder +1. Inspect the git history and update the CHANGELOG (including the links) +2. Delete the ``.bidscoin`` config folder 3. Update the version string everywhere (i.e. search without word matching), COPYRIGHT and cli help texts 4. Add a git version tag 5. Backport to PyQt5 in a v4.#.#+qt5 branch 6. Manually run the bidscoin, bidsmapper, bidscoiner, bids-validator and other integration tests 7. Run tox@DCCN:: - VERSION="4.3.2" + VERSION="4.3.3" cd ~/python/bidscoin git checkout v${VERSION}+qt5 module load bidscoin/dev @@ -62,7 +62,7 @@ Dockerhub 1. In the VM, build, test and push a Docker image:: - VERSION="4.3.2" + VERSION="4.3.3" sudo docker build -t marcelzwiers/bidscoin:$VERSION . sudo docker run --rm marcelzwiers/bidscoin:$VERSION bidscoin -v sudo docker run --rm marcelzwiers/bidscoin:$VERSION pngappend @@ -70,7 +70,7 @@ Dockerhub sudo docker push marcelzwiers/bidscoin:$VERSION sudo docker system prune -a -Github +GitHub ------ 1. Publish a new release diff --git a/tests/test_data/bidsmap.yaml b/tests/test_data/bidsmap.yaml index 79e791fb..136cc66b 100644 --- a/tests/test_data/bidsmap.yaml +++ b/tests/test_data/bidsmap.yaml @@ -22,7 +22,7 @@ Options: # General options and plugins # -------------------------------------------------------------------------------- bidscoin: - version: 4.3.2 # BIDScoin version (should correspond with the version in pyproject.toml) + version: 4.3.3 # BIDScoin version (should correspond with the version in pyproject.toml) bidsignore: mrs/;extra_data/ # Semicolon-separated list of entries that are added to the .bidsignore file (for more info, see BIDS specifications), e.g. extra_data/;pet/;myfile.txt;yourfile.csv subprefix: sub- # The subject prefix of the source data sesprefix: ses- # The session prefix of the source data