diff --git a/.mailmap b/.mailmap index ab924a2e42..4df0aff6e5 100644 --- a/.mailmap +++ b/.mailmap @@ -16,6 +16,7 @@ Andrey Chetverikov Anibal Sólon Heinsfeld Anisha Keshavan Anisha Keshavan +Anna Doll <45283972+AnnaD15@users.noreply.github.com> Ariel Rokem Ariel Rokem Arman Eshaghi @@ -36,9 +37,11 @@ Caroline Froehlich Christopher J. Markiewicz Christopher J. Markiewicz Christopher J. Markiewicz +Christopher John Steele Cindee Madison Colin Buchanan Colin Buchanan +Colin Buchanan Daniel Brenner Daniel Clark Daniel Geisler diff --git a/.zenodo.json b/.zenodo.json index b8f2c4fb67..8532823a5f 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -336,17 +336,21 @@ "orcid": "0000-0001-7221-9042" }, { - "name": "Kent, James" + "affiliation": "Neuroscience Program, University of Iowa", + "name": "Kent, James D.", + "orcid": "0000-0002-4892-2659" }, { "affiliation": "UniversityHospital Heidelberg, Germany", "name": "Kleesiek, Jens" }, { - "name": "Erickson, Drew" + "affiliation": "The University of Iowa", + "name": "Ghayoor, Ali", + "orcid": "0000-0002-8858-1254" }, { - "name": "Ghayoor, Ali" + "name": "Erickson, Drew" }, { "affiliation": "Child Mind Institute", @@ -392,6 +396,11 @@ "name": "Glen, Daniel", "orcid": "0000-0001-8456-5647" }, + { + "affiliation": "Department of Psychology, University of Bielefeld, Bielefeld, Germany.", + "name": "Doll, Anna", + "orcid": "0000-0002-0799-0831" + }, { "name": "Renfro, Mandy" }, @@ -455,11 +464,6 @@ { "name": "Park, Anne" }, - { - "affiliation": "Max Planck UCL Centre for Computational Psychiatry and Ageing Research, University College London", - "name": "Stojic, Hrvoje", - "orcid": "0000-0002-9699-9052" - }, { "affiliation": "Child Mind Institute", "name": "Craddock, R. Cameron", @@ -476,9 +480,9 @@ "name": "Perkins, L. Nathan" }, { - "affiliation": "University of Amsterdam", - "name": "Snoek, Lukas", - "orcid": "0000-0001-8972-204X" + "affiliation": "Max Planck UCL Centre for Computational Psychiatry and Ageing Research, University College London", + "name": "Stojic, Hrvoje", + "orcid": "0000-0002-9699-9052" }, { "affiliation": "Donders Institute for Brain, Cognition and Behavior, Center for Cognitive Neuroimaging", @@ -493,6 +497,11 @@ "name": "Grignard, Martin", "orcid": "0000-0001-5549-1861" }, + { + "affiliation": "University of Amsterdam", + "name": "Snoek, Lukas", + "orcid": "0000-0001-8972-204X" + }, { "affiliation": "Yale University; New Haven, CT, United States", "name": "Sisk, Lucinda M.", diff --git a/doc/about.rst b/doc/about.rst index 45a6e30229..8375c4e9e0 100644 --- a/doc/about.rst +++ b/doc/about.rst @@ -10,192 +10,21 @@ About Citation -------- -.. admonition:: Reference - - Gorgolewski, Krzysztof J.; Esteban, Oscar; Ellis, David Gage; Notter, - Michael Philipp; Ziegler, Erik; Johnson, Hans; Hamalainen, Carlo; - Yvernault, Benjamin; Burns, Christopher; Manhães-Savio, Alexandre; - Jarecka, Dorota; Markiewicz, Christopher J.; Salo, Taylor; Clark, Daniel; - Waskom, Michael; Wong, Jason; Modat, Marc; Dewey, Blake E; Clark, Michael G.; - Dayan, Michael; Loney, Fred; Madison, Cindee; Gramfort, Alexandre; - Keshavan, Anisha; Berleant, Shoshana; Pinsard, Basile; Goncalves, Mathias; - Clark, Dav; Cipollini, Ben; Varoquaux, Gael; Wassermann , Demian; - Rokem, Ariel; Halchenko, Yaroslav O.; Forbes, Jessica; Moloney, Brendan; - Malone, Ian B.; Hanke, Michael; Mordom, David; Buchanan, Colin; - PAULI, WOLFGANG M.; Huntenburg, Julia M.; Horea, Christian; Schwartz, - Yannick; Tungaraza, Rosalia; Iqbal, Shariq; Kleesiek, Jens; Sikka, Sharad; - Frohlich, Caroline; Kent, James; Perez-Guevara, Martin; Watanabe, Aimi; Welch, - David; Cumba, Chad; Ginsburg, Daniel; Eshaghi, Arman; Kastman, Erik; - Bougacha, Salma; Blair, Ross; Acland, Benjamin; Gillman, Ashley; Schaefer, - Alexander; Nichols, B. Nolan; Giavasis, Steven; Erickson, Drew; Correa, - Carlos; Ghayoor, Ali; Küttner, René; Haselgrove, Christian; Zhou, Dale; - Craddock, R. Cameron; Haehn, Daniel; Lampe, Leonie; Millman, Jarrod; Lai, Jeff; - Renfro, Mandy; Liu, Siqi; Stadler, Jörg; Glatard, Tristan; Kahn, Ari E.; - Kong, Xiang-Zhen; Triplett, William; Park, Anne; McDermottroe, Conor; - Hallquist, Michael; Poldrack, Russell; Perkins, L. Nathan; Noel, Maxime; - Gerhard, Stephan; Salvatore, John; Mertz, Fred; Broderick, William; - Inati, Souheil; Hinds, Oliver; Brett, Matthew; Durnez, Joke; Tambini, - Arielle; Rothmei, Simon; Andberg, Sami Kristian; Cooper, Gavin; Marina, - Ana; Mattfeld, Aaron; Urchs, Sebastian; Sharp, Paul; Matsubara, K; Geisler, - Daniel; Cheung, Brian; Floren, Andrew; Nickson, Thomas; Pannetier, Nicolas; - Weinstein, Alejandro; Dubois, Mathieu; Arias, Jaime; Tarbert, Claire; Schlamp, - Kai; Jordan, Kesshi; Liem, Franz; Saase, Victor; Harms, Robbert; Khanuja, - Ranjeet; Podranski, Kornelius; Flandin, Guillaume; Papadopoulos Orfanos, - Dimitri; Schwabacher, Isaac; McNamee, Daniel; Falkiewicz, Marcel; - Pellman, John; Linkersdörfer, Janosch; Varada, Jan; Pérez-García, Fernando; - Davison, Andrew; Shachnev, Dmitry; Ghosh, Satrajit (2017). Nipype: - a flexible, lightweight and extensible neuroimaging data processing framework in Python. - 0.13.0 Zenodo. `10.5281/zenodo.581704 `_ - -:: - - @misc{gorgolewski_krzysztof_j_2017_581704, - author = {Gorgolewski, Krzysztof J. and - Esteban, Oscar and - Ellis, David Gage and - Notter, Michael Philipp and - Ziegler, Erik and - Johnson, Hans and - Hamalainen, Carlo and - Yvernault, Benjamin and - Burns, Christopher and - Manhães-Savio, Alexandre and - Jarecka, Dorota and - Markiewicz, Christopher J. and - Salo, Taylor and - Clark, Daniel and - Waskom, Michael and - Wong, Jason and - Modat, Marc and - Dewey, Blake E and - Clark, Michael G. and - Dayan, Michael and - Loney, Fred and - Madison, Cindee and - Gramfort, Alexandre and - Keshavan, Anisha and - Berleant, Shoshana and - Pinsard, Basile and - Goncalves, Mathias and - Clark, Dav and - Cipollini, Ben and - Varoquaux, Gael and - Wassermann , Demian and - Rokem, Ariel and - Halchenko, Yaroslav O. and - Forbes, Jessica and - Moloney, Brendan and - Malone, Ian B. and - Hanke, Michael and - Mordom, David and - Buchanan, Colin and - PAULI, WOLFGANG M. and - Huntenburg, Julia M. and - Horea, Christian and - Schwartz, Yannick and - Tungaraza, Rosalia and - Iqbal, Shariq and - Kleesiek, Jens and - Sikka, Sharad and - Frohlich, Caroline and - Kent, James and - Perez-Guevara, Martin and - Watanabe, Aimi and - Welch, David and - Cumba, Chad and - Ginsburg, Daniel and - Eshaghi, Arman and - Kastman, Erik and - Bougacha, Salma and - Blair, Ross and - Acland, Benjamin and - Gillman, Ashley and - Schaefer, Alexander and - Nichols, B. Nolan and - Giavasis, Steven and - Erickson, Drew and - Correa, Carlos and - Ghayoor, Ali and - Küttner, René and - Haselgrove, Christian and - Zhou, Dale and - Craddock, R. Cameron and - Haehn, Daniel and - Lampe, Leonie and - Millman, Jarrod and - Lai, Jeff and - Renfro, Mandy and - Liu, Siqi and - Stadler, Jörg and - Glatard, Tristan and - Kahn, Ari E. and - Kong, Xiang-Zhen and - Triplett, William and - Park, Anne and - McDermottroe, Conor and - Hallquist, Michael and - Poldrack, Russell and - Perkins, L. Nathan and - Noel, Maxime and - Gerhard, Stephan and - Salvatore, John and - Mertz, Fred and - Broderick, William and - Inati, Souheil and - Hinds, Oliver and - Brett, Matthew and - Durnez, Joke and - Tambini, Arielle and - Rothmei, Simon and - Andberg, Sami Kristian and - Cooper, Gavin and - Marina, Ana and - Mattfeld, Aaron and - Urchs, Sebastian and - Sharp, Paul and - Matsubara, K and - Geisler, Daniel and - Cheung, Brian and - Floren, Andrew and - Nickson, Thomas and - Pannetier, Nicolas and - Weinstein, Alejandro and - Dubois, Mathieu and - Arias, Jaime and - Tarbert, Claire and - Schlamp, Kai and - Jordan, Kesshi and - Liem, Franz and - Saase, Victor and - Harms, Robbert and - Khanuja, Ranjeet and - Podranski, Kornelius and - Flandin, Guillaume and - Papadopoulos Orfanos, Dimitri and - Schwabacher, Isaac and - McNamee, Daniel and - Falkiewicz, Marcel and - Pellman, John and - Linkersdörfer, Janosch and - Varada, Jan and - Pérez-García, Fernando and - Davison, Andrew and - Shachnev, Dmitry and - Ghosh, Satrajit}, - title = {nipy/nipype: Release 0.13.1}, - month = may, - year = 2017, - doi = {10.5281/zenodo.581704}, - url = {https://doi.org/10.5281/zenodo.581704} - } - -If you are a Nipype contributor and your name is not mentioned above please submit -a Pull Request modifying `.zenodo.json` file. - -When publishing results obtained using Nipype we strongly encourage citing the above reference to give credit to all -Nipype contributors. However, if for some reason the journal you are publishing with does not allow you do cite software +Each Nipype release is archived on `Zenodo `__, which provides a +:abbr:`DOI (Digital Object Identifier)` for the project and each release, separately. +The project DOI (`10.5281/zenodo.596855 `__) will redirect +to the latest release archive, which contains all information needed to cite the release. + +If you are a Nipype contributor and your name is not mentioned in the latest release, please submit +a Pull Request modifying the `.zenodo.json +`__ file. + +When publishing results obtained using Nipype we strongly encourage citing the latest Zenodo +archive to give credit to all Nipype contributors. +However, if for some reason the journal you are publishing with does not allow you do cite software this way you can use the initial paper published in 2011 (see below). + .. admonition:: Reference Gorgolewski K, Burns CD, Madison C, Clark D, Halchenko YO, Waskom ML, diff --git a/doc/changelog/1.X.X-changelog.rst b/doc/changelog/1.X.X-changelog.rst index 1da7da60cb..802cb35f24 100644 --- a/doc/changelog/1.X.X-changelog.rst +++ b/doc/changelog/1.X.X-changelog.rst @@ -1,3 +1,11 @@ +1.4.2 (February 14, 2020) +========================= +(`Full changelog `__) + + * FIX: Allow ``fsl.MultipleRegressDesign`` to create multiple F-tests (https://github.com/nipy/nipype/pull/3166) + * FIX: Reliably parse SGE job IDs in the presence of warnings (https://github.com/nipy/nipype/pull/3168) + * FIX: Move TraitType import, handle API change for NoDefaultSpecified (https://github.com/nipy/nipype/pull/3159) + 1.4.1 (January 27, 2020) ======================== (`Full changelog `__) diff --git a/nipype/info.py b/nipype/info.py index 7331e5aaac..467dd6e239 100644 --- a/nipype/info.py +++ b/nipype/info.py @@ -5,7 +5,7 @@ # nipype version information # Remove -dev for release -__version__ = "1.4.2-dev" +__version__ = "1.4.2" def get_nipype_gitversion(): diff --git a/nipype/interfaces/fsl/model.py b/nipype/interfaces/fsl/model.py index b4e04c690e..e06377cb4d 100644 --- a/nipype/interfaces/fsl/model.py +++ b/nipype/interfaces/fsl/model.py @@ -1574,8 +1574,7 @@ def _run_interface(self, runtime): for tcon in con[2]: convals[tconmap[self.inputs.contrasts.index(tcon)]] = 1 fcon_txt.append(" ".join(["%d" % val for val in convals])) - fcon_txt = "\n".join(fcon_txt) - fcon_txt += "\n" + fcon_txt = "\n".join(fcon_txt) + "\n" # write group file grp_txt = ["/NumWaves 1", "/NumPoints %d" % npoints, "", "/Matrix"] for i in range(npoints): diff --git a/nipype/interfaces/fsl/tests/test_model.py b/nipype/interfaces/fsl/tests/test_model.py index ea86d8f628..456e7b6492 100644 --- a/nipype/interfaces/fsl/tests/test_model.py +++ b/nipype/interfaces/fsl/tests/test_model.py @@ -6,26 +6,28 @@ import pytest import nipype.interfaces.fsl.model as fsl from nipype.interfaces.fsl import no_fsl +from pathlib import Path +from ....pipeline import engine as pe @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") def test_MultipleRegressDesign(tmpdir): - tmpdir.chdir() - foo = fsl.MultipleRegressDesign() - foo.inputs.regressors = dict( + designer = pe.Node(fsl.MultipleRegressDesign(), name='designer', base_dir=str(tmpdir)) + designer.inputs.regressors = dict( voice_stenght=[1, 1, 1], age=[0.2, 0.4, 0.5], BMI=[1, -1, 2] ) con1 = ["voice_and_age", "T", ["age", "voice_stenght"], [0.5, 0.5]] con2 = ["just_BMI", "T", ["BMI"], [1]] - foo.inputs.contrasts = [con1, con2, ["con3", "F", [con1, con2]]] - res = foo.run() + designer.inputs.contrasts = [con1, con2, ["con3", "F", [con1, con2]], ["con4", "F", [con2]]] + res = designer.run() + outputs = res.outputs.get_traitsfree() - for ii in ["mat", "con", "fts", "grp"]: - assert ( - getattr(res.outputs, "design_" + ii) == tmpdir.join("design." + ii).strpath - ) + for ftype in ["mat", "con", "fts", "grp"]: + assert Path(outputs["design_" + ftype]).exists() - design_mat_expected_content = """/NumWaves 3 + expected_content = {} + + expected_content["design_mat"] = """/NumWaves 3 /NumPoints 3 /PPheights 3.000000e+00 5.000000e-01 1.000000e+00 @@ -35,7 +37,7 @@ def test_MultipleRegressDesign(tmpdir): 2.000000e+00 5.000000e-01 1.000000e+00 """ - design_con_expected_content = """/ContrastName1 voice_and_age + expected_content["design_con"] = """/ContrastName1 voice_and_age /ContrastName2 just_BMI /NumWaves 3 /NumContrasts 2 @@ -47,14 +49,15 @@ def test_MultipleRegressDesign(tmpdir): 1.000000e+00 0.000000e+00 0.000000e+00 """ - design_fts_expected_content = """/NumWaves 2 -/NumContrasts 1 + expected_content["design_fts"] = """/NumWaves 2 +/NumContrasts 2 /Matrix 1 1 +0 1 """ - design_grp_expected_content = """/NumWaves 1 + expected_content["design_grp"] = """/NumWaves 1 /NumPoints 3 /Matrix @@ -62,7 +65,6 @@ def test_MultipleRegressDesign(tmpdir): 1 1 """ - for ii in ["mat", "con", "fts", "grp"]: - assert tmpdir.join("design." + ii).read() == eval( - "design_" + ii + "_expected_content" - ) + for ftype in ["mat", "con", "fts", "grp"]: + outfile = "design_" + ftype + assert Path(outputs[outfile]).read_text() == expected_content[outfile] diff --git a/nipype/pipeline/plugins/sgegraph.py b/nipype/pipeline/plugins/sgegraph.py index 82d1cc0e58..489e48186c 100644 --- a/nipype/pipeline/plugins/sgegraph.py +++ b/nipype/pipeline/plugins/sgegraph.py @@ -148,7 +148,7 @@ def make_job_name(jobnumber, nodeslist): stdoutFile = "" if self._qsub_args.count("-o ") == 0: stdoutFile = "-o {outFile}".format(outFile=batchscriptoutfile) - full_line = "{jobNm}=$(qsub {outFileOption} {errFileOption} {extraQSubArgs} {dependantIndex} -N {jobNm} {batchscript} | awk '{{print $3}}')\n".format( + full_line = "{jobNm}=$(qsub {outFileOption} {errFileOption} {extraQSubArgs} {dependantIndex} -N {jobNm} {batchscript} | awk '/^Your job/{{print $3}}')\n".format( jobNm=jobname, outFileOption=stdoutFile, errFileOption=stderrFile,