{"id":13676405,"url":"https://github.com/bids-apps/nipypelines","last_synced_at":"2026-05-29T00:03:14.530Z","repository":{"id":73504562,"uuid":"64773190","full_name":"bids-apps/nipypelines","owner":"bids-apps","description":"Preprocess functional tasks in a BIDS dataset.","archived":false,"fork":false,"pushed_at":"2023-08-01T01:20:29.000Z","size":40,"stargazers_count":5,"open_issues_count":3,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-09T15:47:05.354Z","etag":null,"topics":["bids","bidsapp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bids-apps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-08-02T16:23:01.000Z","updated_at":"2024-01-12T18:08:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"7ad155d3-58ef-4244-adc6-9ac891adc26a","html_url":"https://github.com/bids-apps/nipypelines","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/bids-apps/nipypelines","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bids-apps%2Fnipypelines","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bids-apps%2Fnipypelines/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bids-apps%2Fnipypelines/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bids-apps%2Fnipypelines/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bids-apps","download_url":"https://codeload.github.com/bids-apps/nipypelines/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bids-apps%2Fnipypelines/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33631002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bids","bidsapp"],"created_at":"2024-08-02T13:00:25.741Z","updated_at":"2026-05-29T00:03:14.513Z","avatar_url":"https://github.com/bids-apps.png","language":"Python","funding_links":[],"categories":["BIDS Apps"],"sub_categories":["others"],"readme":"## Dataflows for the masses\n\n### Description\nThis app allows preprocessing functional tasks in a BIDs dataset.\n\nA preprocessing workflow for functional timeseries data.\n\nThis workflow makes use of ANTS, FreeSurfer, FSL, NiPy, and CompCor.\n\nThis workflow includes 2mm subcortical atlas and templates that are available from:\n\nhttp://mindboggle.info/data.html\n\nspecifically the 2mm versions of:\n\n- `Joint Fusion Atlas \u003chttp://mindboggle.info/data/atlases/jointfusion/OASIS-TRT-20_jointfusion_DKT31_CMA_labels_in_MNI152_2mm_v2.nii.gz\u003e`_\n- `MNI template \u003chttp://mindboggle.info/data/templates/ants/OASIS-30_Atropos_template_in_MNI152_2mm.nii.gz\u003e`_\n\nRequirements:\nCurrent dataflow requires freesurfer to have been run on a participant and stored in /bids_dataset/derivatives/freesurfer.\nThe docker container allows you to mount your own freesurfer directory and provide the path to it using the `--subjects_dir` \nflag.\n\n### How to report errors\nPlease create a new issue here: https://github.com/BIDS-Apps/nipypelines/issues/new\n\n### Acknowledgements\nPlease use the following zenodo citation when using this App.\n\n### Usage\nThis App has the following command line arguments:\n\n```\nusage: run.py [-h]\n              [--participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]]\n              [-t TARGET_FILE] [--subjects_dir FSDIR]\n              [--target_surfaces TARGET_SURFS [TARGET_SURFS ...]]\n              [--vol_fwhm VOL_FWHM] [--surf_fwhm SURF_FWHM] [-l LOWPASS_FREQ]\n              [-u HIGHPASS_FREQ] [-w WORK_DIR] [-p PLUGIN]\n              [--plugin_args PLUGIN_ARGS]\n              bids_dir output_dir {participant}\n\npositional arguments:\n  bids_dir              The directory with the input dataset formatted according to the BIDS standard.\n  output_dir            The directory where the output files should be stored. If you are running \n                        group level analysis this folder should be prepopulated with the results of \n\t\t\tthe participant level analysis.\n  {participant}         Level of the analysis that will be performed. Multiple participant level \n  \t\t\tanalyses can be run independently (in parallel) using the same output_dir.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]\n                        The label(s) of the participant(s) that should be analyzed. The label \n\t\t\tcorresponds to sub-\u003cparticipant_label\u003e from the BIDS spec (so it does not \n\t\t\tinclude \"sub-\"). If this parameter is not provided all subjects should be \n\t\t\tanalyzed. Multiple participants can be specified with a space separated list.\n  -t TARGET_FILE, --target TARGET_FILE\n                        Target in MNI space. Best to use the MindBoggle template - \n\t\t\tOASIS-30_Atropos_template_in_MNI152_2mm.nii.gz\n  --subjects_dir FSDIR  FreeSurfer subject directory\n  --target_surfaces TARGET_SURFS [TARGET_SURFS ...]\n                        FreeSurfer target surfaces (default ['fsaverage5'])\n  --vol_fwhm VOL_FWHM   Spatial FWHM (default 6.0)\n  --surf_fwhm SURF_FWHM\n                        Spatial FWHM (default 15.0)\n  -l LOWPASS_FREQ, --lowpass_freq LOWPASS_FREQ\n                        Cutoff frequency for low pass filter (Hz) (default 0.1)\n  -u HIGHPASS_FREQ, --highpass_freq HIGHPASS_FREQ\n                        Cutoff frequency for high pass filter (Hz) (default 0.01)\n  -w WORK_DIR, --work_dir WORK_DIR\n                        Work directory\n  -p PLUGIN, --plugin PLUGIN\n                        Plugin to use\n  --plugin_args PLUGIN_ARGS\n                        Plugin arguments\n```\n\nTo run it in participant level mode (for one participant):\n\n```\n    docker run -i --rm \\\n\t\t-v /path/to/ds005:/bids_dataset \\\n\t\t-v /path/to/outputs:/outputs \\\n\t\tbids/nipypelines \\\n\t\t/bids_dataset /outputs participant --participant_label 01\n```\n\n### Commercial use\n\nThe following **non-free** Debian packages are part of this BIDS App:\n\n    non-free/science        fsl-5.0-core\n    non-free/science        fsl-atlases\n\nIf you are considering commercial use of this App please consult the relevant licenses.\n\n### Using reprozip to minimize container size\n\nThis app compresses the FreeSurfer and FSL routines used in the Dockerfile to minimize size. This was carried \nout using (reprozip)[https://vida-nyu.github.io/reprozip/] inside a docker container. \n\n`reprozip trace --dir /outputs/trace python run.py /bids_dataset /outputs participant --participant_label 01`\n\nThis generates a `config.yml` containing all the necessary files used in running the software. The necessary \nfiles for running the app is generated using the following snippet of code after running `reprozip trace`.\n\n```\nfrom yaml import read\nimport yaml as yl\nimport os\nimport json\n\nwith open('config.yml', 'rt') as fp:\n    data = yl.load(fp)\n\npaths1 = [val['path'] for val in data['inputs_outputs'] if all([key not in val['path'] for key in ('bids_dataset', 'scratch', 'outputs', '/run')])]\npaths2 = [val for val in data['other_files'] if ('fsl' in val or 'opt' in val ) and ('miniconda' not in val and 'bids_dataset' not in val)]\n\npaths = [val for val in paths1 if val not in paths2] + paths2\nfiles = [val for val in paths if not os.path.isdir(val)]\n\nos.system('tar zcf files.tgz %s' % ' '.join(files))\n\nrel_env = dict([(k, v) for k, v in data['runs'][0]['environ'].items() if any([key in k.lower() or key in v.lower() for key in ('fsl', 'freesurfer')])])\ninfo = dict(files=files, environ=rel_env)\n\nwith open('appinfo.json', 'wt') as fp:\n    json.dump(info, fp, indent=2)\n```\n\n### TODO\n\n  - [ ] Add revised version with Topup processing\n  - [ ] Add CIFTI2 output using nibabel\n  - [ ] Allow custom ROIs to be processed\n  - [ ] Generate default seed-based connectomes \n  - [ ] Generate embedded maps\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbids-apps%2Fnipypelines","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbids-apps%2Fnipypelines","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbids-apps%2Fnipypelines/lists"}