dataset
Dataset management operations.
dataset
Section titled “dataset”Usage: nemar dataset [options] [command]
Dataset management
Options: -h, --help display help for command
Commands: access Review and decide collaborator access requests (owner/admin) ci [dataset-id] Check BIDS validation CI status for the current dataset clone [options] <dataset-id> Clone a dataset from NEMAR collaborators [options] <dataset-id> List collaborators for a dataset commit [options] Stage and commit changes in the current dataset download [options] <dataset-id> Download a dataset from NEMAR or OpenNeuro drop [files...] Free local copies of annexed files (keeps remote copies) get [options] [files...] Download annexed data files for the current dataset help [command] display help for command invite <username> <dataset-id> Invite a user as collaborator to your dataset list [options] List datasets on NEMAR (full catalog) manifest [options] [version] View version manifests for a dataset publish Publication workflow management push [options] Push commits and data to remotes release [options] <dataset-id> Create a version bump PR for a dataset request-access <dataset-id> Request collaborator access to a dataset save [options] Stage and commit changes (alias for commit) search [options] <query> Search datasets using semantic matching status|view [options] <dataset-id> Check status of a dataset (alias: view) update [options] [path] Push local changes to a dataset via PR upload [options] <path> Upload a BIDS dataset to NEMAR validate [options] [path] Validate a BIDS dataset using the official BIDS validator (requires Deno)
Description: Manage BIDS datasets on NEMAR. Upload, download, validate, and version neurophysiology datasets in Brain Imaging Data Structure (BIDS) format.
Prerequisites: - git-annex (for upload/download) - Deno runtime (for BIDS validation) - NEMAR account (for upload)
Workflows: New dataset: nemar dataset upload <path> Edit (private): nemar dataset commit -> nemar dataset push Edit (public): nemar dataset update New version: nemar dataset release Download (one-shot): nemar dataset download <id> (clone + fetch data) Download (lazy): nemar dataset clone <id> (clone only, then 'cd' in) nemar dataset get [paths] (fetch data later) Request publication: nemar dataset publish request <id>
Note: 'download' runs OUTSIDE a dataset directory and clones + fetches in one step. 'get' runs INSIDE an already-cloned dataset directory and only fetches data. For NEMAR datasets (nm/on prefix), both default-skip content under stimuli/ and derivatives/ (large folders); pass --stimuli or --derivatives to include them. OpenNeuro datasets (ds prefix) ignore these flags and download the full tree.
Examples: $ nemar dataset validate ./my-dataset # Validate locally $ nemar dataset upload ./my-dataset # Upload to NEMAR $ nemar dataset download nm000104 # Download (skips stimuli/derivatives) $ nemar dataset download nm000104 --stimuli # Also fetch stimuli/ $ nemar dataset get --derivatives # Fetch derivatives/ in a clone $ nemar dataset list --mine # List your datasets $ nemar dataset status nm000104 # Check dataset status $ nemar dataset request-access nm000104 # Request collaborator access $ nemar dataset invite johndoe nm000104 # Invite user as collaborator
Learn More: https://nemar-cli.pages.dev/commands/dataset/dataset access
Section titled “dataset access”Usage: nemar dataset access [options] [command]
Review and decide collaborator access requests (owner/admin)
Options: -h, --help display help for command
Commands: approve <username> <dataset-id> Approve a pending access request deny <username> <dataset-id> Deny a pending access request help [command] display help for command list [options] <dataset-id> List access requests for a datasetdataset access approve
Section titled “dataset access approve”Usage: nemar dataset access approve [options] <username> <dataset-id>
Approve a pending access request
Arguments: username Username to approve dataset-id Dataset ID (e.g., nm000104)
Options: -h, --help display help for command
Description: Grant a user collaborator (write) access after they requested it. Only the dataset owner or an admin can approve.
Examples: $ nemar dataset access approve johndoe nm000104dataset access deny
Section titled “dataset access deny”Usage: nemar dataset access deny [options] <username> <dataset-id>
Deny a pending access request
Arguments: username Username to deny dataset-id Dataset ID (e.g., nm000104)
Options: -h, --help display help for command
Description: Reject a pending access request. The user is not granted access and may request again later. Only the dataset owner or an admin can deny.
Examples: $ nemar dataset access deny johndoe nm000104dataset access list
Section titled “dataset access list”Usage: nemar dataset access list [options] <dataset-id>
List access requests for a dataset
Arguments: dataset-id Dataset ID (e.g., nm000104)
Options: --status <status> Filter by status: pending, approved, or denied (default: "pending") --json Output as JSON for scripting -h, --help display help for command
Description: List users who have requested collaborator access to a private dataset. Only the dataset owner or an admin can view requests. Defaults to pending.
Examples: $ nemar dataset access list nm000104 $ nemar dataset access list nm000104 --status approveddataset ci
Section titled “dataset ci”Usage: nemar dataset ci [options] [dataset-id]
Check BIDS validation CI status for the current dataset
Arguments: dataset-id Dataset ID (auto-detected from git remote if omitted)
Options: -h, --help display help for command
Description: Show the status of the BIDS validation CI workflow for a dataset. When run inside a cloned dataset, the dataset ID is auto-detected from the git remote URL.
Examples: $ nemar dataset ci # Auto-detect from CWD $ nemar dataset ci nm000104 # Explicit dataset IDdataset clone
Section titled “dataset clone”Usage: nemar dataset clone [options] <dataset-id>
Clone a dataset from NEMAR
Arguments: dataset-id Dataset ID (e.g., nm000104)
Options: -o, --output <path> Output directory (default: ./<dataset-id>) -h, --help display help for command
Description: Clone a NEMAR dataset repository with git-annex initialized. Data files are not downloaded; use 'nemar dataset get' afterward.
Private datasets require authentication (nemar auth login) and are only accessible to the owner or designated collaborators.
Requirements: - git-annex installed - NEMAR account (for private datasets)
Examples: $ nemar dataset clone nm000104 $ nemar dataset clone nm000104 -o ./my-datasetdataset collaborators
Section titled “dataset collaborators”Usage: nemar dataset collaborators [options] <dataset-id>
List collaborators for a dataset
Arguments: dataset-id Dataset ID (e.g., nm000104)
Options: --json Output as JSON for scripting -h, --help display help for command
Description: List all collaborators who have access to a dataset. Only dataset owners and admins can view collaborators.
Examples: $ nemar dataset collaborators nm000104 $ nemar dataset collaborators nm000104 --jsondataset commit
Section titled “dataset commit”Usage: nemar dataset commit [options]
Stage and commit changes in the current dataset
Options: -m, --message <msg> Commit message (default: "Save changes") -h, --help display help for command
Description: Stage all changes (git add -A) and commit them. Large files are automatically handled by git-annex based on the dataset's largefiles config.
Tip: After committing, use 'nemar dataset push' for private datasets or 'nemar dataset update' for public datasets.
Examples: $ nemar dataset commit $ nemar dataset commit -m "Add new EEG recordings"dataset download
Section titled “dataset download”Usage: nemar dataset download [options] <dataset-id>
Download a dataset from NEMAR or OpenNeuro
Arguments: dataset-id Dataset ID (e.g., nm000104 or OpenNeuro ds000248)
Options: -o, --output <path> Output directory (default: ./<dataset-id>) -j, --jobs <number> Parallel download streams (default: 4) (default: "4") --no-data Download metadata only (skip large data files) --resume Resume a partial download into an existing clone --update Pull only the version diff into an existing clone --prune With --update, drop annex objects that no longer exist upstream --subjects <list> Comma-separated subjects (e.g. sub-01,02) --sessions <list> Comma-separated sessions (e.g. ses-pre,post) --tasks <list> Comma-separated tasks (e.g. rest,nback) --runs <list> Comma-separated runs (e.g. 1,2 — matches run-1 and run-01) --datatypes <list> Comma-separated BIDS datatypes (e.g. eeg,emg) --include <globs> Comma-separated extra include globs --exclude <globs> Comma-separated exclude globs (e.g. sourcedata/**) --stimuli Include stimuli/ content (skipped by default; can be large) --derivatives Include derivatives/ content (skipped by default; can be large) --skip-port-check Skip the porting-in-progress check (use if falsely blocked on an OpenNeuro-sourced dataset) --require-complete Exit non-zero if any file is unavailable from the archive (for strict pipelines) -h, --help display help for command
Description: Download a BIDS dataset from NEMAR or OpenNeuro.
NEMAR datasets (nm/on prefix) use git-annex for efficient data transfer with parallel streams and version tracking.
OpenNeuro datasets (ds prefix) are downloaded as plain files from OpenNeuro's public S3 bucket. No account or git-annex required.
For NEMAR datasets, content under stimuli/ and derivatives/ is skipped by default because these folders can be very large. The git-annex pointers are still cloned, so you can fetch them later with 'nemar dataset get --stimuli' or 'nemar dataset get --derivatives' from inside the dataset directory. (OpenNeuro datasets ignore these flags; the full tree is always downloaded.)
Requirements: - git-annex installed (NEMAR datasets only) - NEMAR account (for private datasets) - AWS CLI recommended for OpenNeuro downloads (falls back to HTTPS)
Examples: $ nemar dataset download nm000104 # Download NEMAR dataset (skips stimuli/derivatives) $ nemar dataset download nm000104 -o ./data # Custom output directory $ nemar dataset download nm000104 --no-data # Metadata only (fast) $ nemar dataset download nm000104 -j 8 # More parallel streams $ nemar dataset download nm000104 --resume # Resume partial download $ nemar dataset download nm000104 --update # Pull only the version diff $ nemar dataset download nm000104 --update --prune # Plus drop orphan objects $ nemar dataset download nm000104 --subjects sub-01,02 # Only these subjects $ nemar dataset download nm000104 --tasks rest --datatypes eeg # Subset $ nemar dataset download nm000104 --stimuli # Also download stimuli/ $ nemar dataset download nm000104 --stimuli --derivatives # Download everything $ nemar dataset download ds000248 # Download from OpenNeurodataset drop
Section titled “dataset drop”Usage: nemar dataset drop [options] [files...]
Free local copies of annexed files (keeps remote copies)
Arguments: files Specific files to drop (default: all)
Options: -h, --help display help for command
Description: Remove local copies of annexed data files. Git-annex verifies that remote copies exist before dropping. Use 'nemar dataset get' to re-download later.
Examples: $ nemar dataset drop # Drop all local data $ nemar dataset drop sub-01/eeg/ # Drop specific directory $ nemar dataset drop *.edf # Drop EDF filesdataset get
Section titled “dataset get”Usage: nemar dataset get [options] [files...]
Download annexed data files for the current dataset
Arguments: files Specific files/paths to get (default: all)
Options: -j, --jobs <number> Parallel download streams (default: "4") --stimuli Include stimuli/ content (skipped by default; can be large) --derivatives Include derivatives/ content (skipped by default; can be large) --skip-port-check Skip the porting-in-progress check (use if falsely blocked on an OpenNeuro-sourced dataset) --require-complete Exit non-zero if any file is unavailable from the archive (for strict pipelines) -h, --help display help for command
Description: Download data files from the remote for a cloned dataset. Must be run inside a git-annex dataset directory.
For private datasets, credentials are fetched automatically if you are logged in (nemar auth login).
By default, content under stimuli/ and derivatives/ is skipped because these folders can be very large. Pass --stimuli or --derivatives to fetch them. When you supply explicit file paths, the path itself is treated as the filter and the default-skip is not applied.
Examples: $ nemar dataset get # Get all files (skips stimuli/derivatives) $ nemar dataset get --stimuli # Get all files including stimuli/ $ nemar dataset get --stimuli --derivatives # Get everything $ nemar dataset get sub-01/eeg/ # Get specific directory $ nemar dataset get stimuli/ # Explicit path: fetches stimuli/ $ nemar dataset get *.edf -j 8 # Get EDF files with 8 streamsdataset invite
Section titled “dataset invite”Usage: nemar dataset invite [options] <username> <dataset-id>
Invite a user as collaborator to your dataset
Arguments: username Username to invite dataset-id Dataset ID (e.g., nm000104)
Options: -h, --help display help for command
Description: Invite a NEMAR user as a collaborator to your dataset. Only dataset owners and admins can invite collaborators.
Works for both public and private repositories.
Requirements: - NEMAR account (nemar auth login) - Dataset ownership or admin status
Examples: $ nemar dataset invite johndoe nm000104dataset list
Section titled “dataset list”Usage: nemar dataset list [options]
List datasets on NEMAR (full catalog)
Options: --mine List only your datasets (both private and public) --owner <username> List datasets owned by a specific user --search <query> Search by name, description, authors, or tasks --modality <type> Filter by modality (eeg, emg, meg, etc.) --author <name> Filter by author name --task <name> Filter by task name --license <tiers> Filter by license tier(s), comma-separated: public, attribution, sharealike, noncommercial, noderiv, unknown --doi Show only datasets with DOIs --hed Show only datasets with HED annotations --has-zarr Show only datasets with a ready Zarr copy (#1062) --has-zarr-verified Show only datasets whose Zarr copy passed fidelity verification (#1068) --complete Show only datasets verified data-complete (#970) --recent [days] Show recently published datasets --sort <order> Sort order (choices: "newest", "oldest", "name", "participants", "size", "citations", default: "newest") --include-unknown Include datasets with an unknown value for the active facet filter(s) --json Output as JSON for scripting -n, --limit <n> Results per page (default: 20, max: 200) (default: "20") --page <n> Page number (starts at 1) --offset <n> Skip this many results (alternative to --page) --all Show all results (up to 200) --subjects <range> Subject count (subjects) -- range (e.g. 10..50, 10.., ..50, or 10) --channels <range> Channel count (channels) -- range (e.g. 10..50, 10.., ..50, or 10) --sessions <range> Session count (sessions) -- range (e.g. 10..50, 10.., ..50, or 10) --size <range> Dataset size -- range with optional units (e.g. 10gb..2tb, 500mb.., ..1gb; bare = bytes) --files <range> File count (files) -- range (e.g. 10..50, 10.., ..50, or 10) --citations <range> Citation count (citations) -- range (e.g. 10..50, 10.., ..50, or 10) --duration <range> Total recording duration -- range with optional units (e.g. 30m..2h, 100h.., ..90s; bare = seconds) --recording-length <range> Per-recording duration -- range with optional units (e.g. 30m..2h, 100h.., ..90s; bare = seconds) --recordings <range> Recording count (recordings) -- range (e.g. 10..50, 10.., ..50, or 10) --unavailable <range> Unavailable recording count (recordings) -- range (e.g. 10..50, 10.., ..50, or 10) --age <range> Participant age (years) -- range (e.g. 10..50, 10.., ..50, or 10) --rate <range> Sampling rate (Hz) -- range (e.g. 10..50, 10.., ..50, or 10) --powerline <values> Power line frequency -- comma-separated, one or more of: 50, 60 --reference <text> EEG reference -- substring match --placement <text> Electrode placement scheme -- substring match --electrode-system <values> Electrode system -- comma-separated, one or more of: 10-05, 10-10, 10-20, biosemi, egi-geodesic, other --source <values> Source archive -- comma-separated, one or more of: openneuro, nemar, gin, other --zarr <values> Zarr conversion status -- comma-separated, one or more of: ready, pending, failed --bids-version <version> BIDS version -- exact or prefix match --hed-version <version> HED version -- exact or prefix match -h, --help display help for command
Description: Lists the full NEMAR catalog, including legacy datasets from nemar.org and datasets managed via nemar-cli. Shows 20 results per page by default. Run 'nemar dataset list --help' for the full list of facet filters (--subjects, --channels, --age, --source, ...).
With --mine: shows only YOUR datasets (requires authentication). With --owner <username>: shows datasets owned by a specific user.
Pagination: -n, --limit <n> Results per page (default: 20, max: 200) --page <n> Page number (e.g., --page 2 for results 21-40) --offset <n> Skip N results (e.g., --offset 40 for results 41+) --all Show all results (up to 200)
Display Indicators: cyan ID Managed dataset (on GitHub) dim ID Catalog-only (nemar.org, not on GitHub) * On GitHub but not synced to nemar.org ! Sync to nemar.org failed
Examples: $ nemar dataset list # First 20 datasets $ nemar dataset list --page 2 # Next 20 datasets $ nemar dataset list -n 50 # 50 per page $ nemar dataset list --all # All results (up to 200) $ nemar dataset list --mine # Your datasets $ nemar dataset list --owner yahya # Datasets by 'yahya' $ nemar dataset list --modality eeg # EEG datasets only $ nemar dataset list --license public,attribution # Permissive licenses $ nemar dataset list --search "motor" # Search by keyword $ nemar dataset list --doi --sort size # Published, by size $ nemar dataset list --subjects 20..50 --age 18.. # Facet filters $ nemar dataset search "resting state EEG" # Semantic searchdataset manifest
Section titled “dataset manifest”Usage: nemar dataset manifest [options] [version]
View version manifests for a dataset
Arguments: version Version to view (lists available if omitted)
Options: -d, --dataset <id> Dataset ID (auto-detected from git remote if omitted) --json Output raw JSON -h, --help display help for command
Description: View version manifests that map file paths to S3 annex keys. Manifests are generated when a version DOI is published.
When run inside a dataset directory, the dataset ID is auto-detected.
Examples: $ nemar dataset manifest # List available versions $ nemar dataset manifest v1.0.0 # View specific version $ nemar dataset manifest v1.0.0 --json # Raw JSON output $ nemar dataset manifest -d nm000104 # Explicit dataset IDdataset publish
Section titled “dataset publish”Usage: nemar dataset publish [options] [command]
Publication workflow management
Options: -h, --help display help for command
Commands: help [command] display help for command request <dataset-id> Request publication of a dataset resend <dataset-id> Resend publication request notification to admins status <dataset-id> Check publication status of a datasetdataset publish request
Section titled “dataset publish request”Usage: nemar dataset publish request [options] <dataset-id>
Request publication of a dataset
Arguments: dataset-id Dataset ID (e.g., nm000104)
Options: -h, --help display help for command
Description: Submit a publication request to make your private dataset publicly accessible. NEMAR admins will be notified and can approve or deny your request.
Once approved, your dataset will: - Become publicly visible on GitHub - Receive a permanent DOI via Zenodo - Have tag protection enabled (prevents version manipulation) - Have S3 Object Lock enabled (prevents data deletion)
You can only have one active publication request per dataset.
Status Flow: requested → approving → published (or denied)
Examples: $ nemar dataset publish request nm000104 $ nemar dataset publish status nm000104 # Check request statusdataset publish resend
Section titled “dataset publish resend”Usage: nemar dataset publish resend [options] <dataset-id>
Resend publication request notification to admins
Arguments: dataset-id Dataset ID (e.g., nm000104)
Options: -h, --help display help for command
Description: Resend the publication request notification email to all NEMAR admins. Use this if admins haven't responded to your original request.
This does NOT create a duplicate request - it only sends a reminder email for your existing publication request.
When to Use: - Admins haven't responded after several days - You want to remind admins about your pending request - Your request status is still "requested"
Examples: $ nemar dataset publish resend nm000104dataset publish status
Section titled “dataset publish status”Usage: nemar dataset publish status [options] <dataset-id>
Check publication status of a dataset
Arguments: dataset-id Dataset ID (e.g., nm000104)
Options: -h, --help display help for command
Description: Check the status of your publication request and see progress through the approval workflow.
Possible Statuses: requested - Waiting for admin review approving - Admin is running the publication process published - Dataset is now public with DOI denied - Request was denied (includes reason)
Steps in Approval Process: 1. CI check - Verify BIDS validation passes 2. Make public - Change repository visibility 3. S3 public read - Grant public read access to S3 data 4. Tag protection - Prevent version manipulation 5. Create DOI - Create concept DOI (EZID/Zenodo) 6. Update metadata - Update from BIDS description 7. Update README - Add DOI badge and citation 8. Create tag - Create version tag 9. Create release - Create GitHub release 10. Upload to Zenodo - Upload archive (if Zenodo provider) 11. Publish DOI - Make DOI public (permanent) 12. S3 lock - Enable Object Lock for data preservation 13. Generate archive - Create downloadable zip 14. Notify user - Send publication confirmation email
Examples: $ nemar dataset publish status nm000104dataset push
Section titled “dataset push”Usage: nemar dataset push [options]
Push commits and data to remotes
Options: -j, --jobs <number> Parallel upload streams for S3 (default: "4") --no-s3 Skip pushing data to S3 remote --pr Create a pull request after pushing -t, --title <title> Pull request title (with --pr) -b, --body <body> Pull request body (with --pr) -h, --help display help for command
Description: Push git commits to GitHub (main + git-annex branches) and optionally copy annexed data to the S3 remote.
With --pr, creates a pull request after pushing the current branch.
S3 push uses temporary credentials from the NEMAR API. Falls back to environment AWS credentials if not logged in.
Note: Direct push to main works for private datasets only. For public datasets with branch protection, use 'nemar dataset update' instead, or use 'push --pr' to push to a branch and create a PR.
Examples: $ nemar dataset push $ nemar dataset push --no-s3 # Git only, skip S3 $ nemar dataset push -j 8 # More parallel S3 streams $ nemar dataset push --pr -t "Add new recordings"dataset release
Section titled “dataset release”Usage: nemar dataset release [options] <dataset-id>
Create a version bump PR for a dataset
Arguments: dataset-id Dataset ID (e.g., nm000104)
Options: --type <type> Bump type: patch, minor, or major --version <version> Explicit version (e.g., 2.0.0) --dir <path> Use existing local clone instead of cloning --monitor Watch CI checks and offer to merge -y, --yes Skip confirmation and proceed -h, --help display help for command
Description: Create a pull request that bumps the dataset version in dataset_description.json. The PR triggers CI checks (BIDS validation, version check). On merge, GitHub Actions tags the release and publishes a version DOI (if a concept DOI exists).
Examples: $ nemar dataset release nm000104 --type patch $ nemar dataset release nm000104 --version 2.0.0 $ nemar dataset release nm000104 # interactive promptdataset request-access
Section titled “dataset request-access”Usage: nemar dataset request-access [options] <dataset-id>
Request collaborator access to a dataset
Arguments: dataset-id Dataset ID (e.g., nm000104)
Options: -h, --help display help for command
Description: Request collaborator access to a private NEMAR dataset. The owner is notified and can approve or deny; once approved you can push data via git-annex.
Public datasets grant no access here, because the repository is already open. Fork it and submit a pull request, or ask the owner for an invite if you need merge rights.
Requirements: - NEMAR account (nemar auth login) - Approved user status
Examples: $ nemar dataset request-access nm000104dataset save
Section titled “dataset save”Usage: nemar dataset save [options]
Stage and commit changes (alias for commit)
Options: -m, --message <msg> Commit message (default: "Save changes") -h, --help display help for command
Description: Stage all changes (git add -A) and commit them. Large files are automatically handled by git-annex based on the dataset's largefiles config.
This command is an alias for 'nemar dataset commit'.
Tip: After committing, use 'nemar dataset push' for private datasets or 'nemar dataset update' for public datasets.
Examples: $ nemar dataset save $ nemar dataset save -m "Add new EEG recordings"dataset search
Section titled “dataset search”Usage: nemar dataset search [options] <query>
Search datasets using semantic matching
Options: --modality <type> Filter by modality (eeg, emg, meg, etc.) --author <name> Filter by author name --task <name> Filter by task name --license <tiers> Filter by license tier(s), comma-separated: public, attribution, sharealike, noncommercial, noderiv, unknown --doi Show only datasets with DOIs --hed Show only datasets with HED annotations --has-zarr Show only datasets with a ready Zarr copy (#1062) --has-zarr-verified Show only datasets whose Zarr copy passed fidelity verification (#1068) --complete Show only datasets verified data-complete (#970) --recent [days] Show recently published datasets --include-unknown Include datasets with an unknown value for the active facet filter(s) --verbose Show a README snippet under each result (off by default) --json Output as JSON for scripting --limit <n> Limit results (default: 20) (default: "20") --subjects <range> Subject count (subjects) -- range (e.g. 10..50, 10.., ..50, or 10) --channels <range> Channel count (channels) -- range (e.g. 10..50, 10.., ..50, or 10) --sessions <range> Session count (sessions) -- range (e.g. 10..50, 10.., ..50, or 10) --size <range> Dataset size -- range with optional units (e.g. 10gb..2tb, 500mb.., ..1gb; bare = bytes) --files <range> File count (files) -- range (e.g. 10..50, 10.., ..50, or 10) --citations <range> Citation count (citations) -- range (e.g. 10..50, 10.., ..50, or 10) --duration <range> Total recording duration -- range with optional units (e.g. 30m..2h, 100h.., ..90s; bare = seconds) --recording-length <range> Per-recording duration -- range with optional units (e.g. 30m..2h, 100h.., ..90s; bare = seconds) --recordings <range> Recording count (recordings) -- range (e.g. 10..50, 10.., ..50, or 10) --unavailable <range> Unavailable recording count (recordings) -- range (e.g. 10..50, 10.., ..50, or 10) --age <range> Participant age (years) -- range (e.g. 10..50, 10.., ..50, or 10) --rate <range> Sampling rate (Hz) -- range (e.g. 10..50, 10.., ..50, or 10) --powerline <values> Power line frequency -- comma-separated, one or more of: 50, 60 --reference <text> EEG reference -- substring match --placement <text> Electrode placement scheme -- substring match --electrode-system <values> Electrode system -- comma-separated, one or more of: 10-05, 10-10, 10-20, biosemi, egi-geodesic, other --source <values> Source archive -- comma-separated, one or more of: openneuro, nemar, gin, other --zarr <values> Zarr conversion status -- comma-separated, one or more of: ready, pending, failed --bids-version <version> BIDS version -- exact or prefix match --hed-version <version> HED version -- exact or prefix match -h, --help display help for command
Description: Performs semantic search across the NEMAR dataset catalog. Unlike --search on the list command (which uses exact text matching), this uses AI embeddings to find conceptually similar datasets. The free-text query is always the <query> argument -- this command has no --search flag.
Accepts the same license/author/task/doi/complete/recent filters and facet flags (--subjects, --age, --source, ...) as 'nemar dataset list --help'.
For example, "brain signals during sleep" will match datasets about "EEG recordings in sleep studies" even if those exact words don't appear.
Examples: $ nemar dataset search "motor imagery EEG" $ nemar dataset search "resting state" --modality eeg $ nemar dataset search "sleep spindles" --json $ nemar dataset search "motor imagery" --license public --subjects 10.. $ nemar dataset search "P300 oddball" --verbose # Show README snippetsdataset update
Section titled “dataset update”Usage: nemar dataset update [options] [path]
Push local changes to a dataset via PR
Arguments: path Path to local dataset clone (default: current directory)
Options: --bump <type> Version bump type: patch, minor, or major (default: "patch") --branch <name> Custom branch name -m, --message <msg> Commit message --monitor Watch CI checks and offer to merge -y, --yes Skip confirmation and proceed -h, --help display help for command
Description: Push local changes (metadata or data files) to a dataset via a pull request. Automatically bumps the version, commits, pushes, and creates a PR. For data files (annexed), copies them to S3 via git-annex.
Run this from inside a dataset clone, or pass the path as an argument.
Note: This is the recommended way to update public datasets. It creates a PR that must be reviewed before merging. For private datasets, you can also use 'nemar dataset push' for direct updates.
Examples: $ cd nm000104 && nemar dataset update $ nemar dataset update ./nm000104 --bump minor -m "Add new subjects" $ nemar dataset update --branch fix/metadata -m "Fix participant ages"dataset upload
Section titled “dataset upload”Usage: nemar dataset upload [options] <path>
Upload a BIDS dataset to NEMAR
Arguments: path Path to BIDS dataset directory
Options: -n, --name <name> Dataset name (defaults to BIDS Name, then directory name) -d, --description <desc> Dataset description --skip-validation Skip BIDS validation (not recommended) --skip-orcid Skip co-author ORCID collection --dry-run Show what would be uploaded without doing it -j, --jobs <number> Parallel upload streams (default: 4) (default: "4") -y, --yes Skip confirmation and proceed --restart Clear upload progress and re-upload all files --no Skip confirmation and decline --deposit-type <type> Attestation: 'owner' or 'redistribution' (non-interactive) --key-status <status> Attestation: re-identification key 'destroyed' or 'retained' --confirm-deidentified Attestation: confirm the dataset contains no identifiable personal information --affirm-no-duplicate Attestation (redistribution only): affirm the dataset is not already archived in BIDS format --upstream-source <ref> Attestation (redistribution only): upstream release URL or accession -h, --help display help for command
Description: Upload a BIDS dataset to NEMAR. The dataset will be validated, assigned a unique ID (nm000XXX), and stored on GitHub (metadata) and S3 (data files).
Requirements: - NEMAR account (nemar auth login) - git-annex installed - GitHub CLI authenticated (gh auth login)
Process: 1. Validates BIDS format (unless --skip-validation) 2. Creates GitHub repository for metadata 3. Uploads large files to S3 in parallel 4. Enables PR-based versioning workflow
Note: This command is for initial dataset creation only. To update an existing dataset, use 'nemar dataset commit' + 'nemar dataset push' (private) or 'nemar dataset update' (public).
Examples: $ nemar dataset upload ./my-eeg-dataset $ nemar dataset upload ./ds -n "My EEG Study" -d "64-channel EEG data" $ nemar dataset upload ./ds --dry-run # Preview without uploading $ nemar dataset upload ./ds -j 16 # More parallel streamsdataset validate
Section titled “dataset validate”Usage: nemar dataset validate [options] [path]
Validate a BIDS dataset using the official BIDS validator (requires Deno)
Arguments: path Path to BIDS dataset directory (default: ".")
Options: --ignore-warnings Only report errors, not warnings -c, --config <file> Validation config file (.bidsvalidatorrc) -r, --recursive Validate derivatives subdirectories --prune Skip sourcedata and derivatives for faster validation -v, --verbose Show verbose output --json Output results as JSON (for scripting) --version-info Show BIDS validator version info --update Force update the BIDS validator to the latest version -h, --help display help for command
Extra flags after known options are passed through to the BIDS validator. See all validator flags: deno run jsr:@bids/validator --help
Examples: $ nemar dataset validate # Validate current directory $ nemar dataset validate ./ds --prune # Skip derivatives $ nemar dataset validate ./ds --json > out.json # JSON for scripting $ nemar dataset validate ./ds --ignoreNiftiHeaders # Pass-through flag $ nemar dataset validate ./ds --max-rows 0 # Headers only