Sample Python Project for creating a new Python Module
Project description
Skullduggery
Skullduggery is a BIDS app for automated defacing of anatomical MRI images. It removes identifiable facial features from anatomical neuroimaging data while preserving brain tissue, protecting participant privacy in neuroimaging studies.
Features
- Automated defacing - Uses template-based registration and hard-coded anatomical markers
- Age-specific templates - Supports pediatric cohorts with age-based template selection from TemplateFlow
- BIDS-compatible - Full integration with BIDS datasets and metadata
- Multi-series support - Process multiple anatomical series in a single run
- Quality assurance - Generates HTML reports with mosaic visualizations
- DataLad integration - Optional support for git-annex metadata tracking
- Flexible filtering - Select specific participants/sessions with BIDS filters
Installation
Basic Installation
pip install skullduggery
With DataLad Support
For optional git-annex metadata tracking:
pip install skullduggery[datalad]
Development Installation
pip install -e ".[test]"
Quick Start
Deface Your First Dataset
skullduggery /path/to/bids/dataset --participant-label 01 --report-dir ./reports
Process Multiple Participants
skullduggery /path/to/bids/dataset \
--participant-label 01 02 03 \
--save-all-masks \
--report-dir ./defacing_reports
For Pediatric Data
skullduggery /path/to/bids/dataset \
--template MNIInfant:cohort-06m09m \
--report-dir ./pediatric_reports
Documentation
Complete command-line documentation is available in the Usage Guide and Examples.
- Getting Started - Quick overview and your first command
- Usage Guide - All command-line options explained
- Command Reference - Quick lookup for flags and arguments
- Examples - 12 real-world scenarios with complete commands
View the full documentation at: docs/ or online
Command-Line Options
Required Arguments
BIDS_PATH: Path to the BIDS dataset directory
Optional Arguments
--participant-label- Process specific participants (space-separated IDs, prefix 'sub-' optional)--session-label- Process specific sessions (space-separated IDs, prefix 'ses-' optional)--template- TemplateFlow template name (default:MNI152NLin6Asym)--default-age VALUE:UNIT- Fallback age for participants missing age data (e.g.,5:years)--save-all-masks- Save defacing masks for all series (default: only reference series)--report-dir DIR- Directory for HTML reports and visualizations--ref-bids-filters JSON- BIDS filters for selecting reference image (default:{"suffix": "T1w", "datatype": "anat"})--other-bids-filters JSON- BIDS filters for images to deface (default:[{"datatype": "anat"}])--datalad- Enable DataLad integration for metadata tracking--deface-sensitive- Only deface images marked with distribution-restrictions metadata--force-reindex- Force pyBIDS database reindexing--debug LEVEL- Set logging level (default:info)
How It Works
The defacing pipeline follows these steps:
- Template Selection - Loads appropriate template from TemplateFlow (age-specific if available)
- Reference Registration - Registers participant's reference image to template space
- Mask Warping - Warps template-space defacing mask to participant's native space
- Series Defacing - Applies mask to all anatomical series for the participant
- Report Generation - Creates HTML reports with QA visualizations
- Optional Commit - Saves changes to DataLad repository if enabled
Preprocessing Requirements
Before running skullduggery, ensure your dataset:
- Follows the BIDS standard
- Contains valid
participants.tsv(with optional age column for pediatric templates) - Has anatomical images in proper BIDS format
Output Files
Skullduggery creates:
- Defaced images - In-place modification of anatomical NIfTI files
- Defacing masks -
*desc-deface_mask.nii.gzfiles (if requested) - Transformation matrices -
*_from-T1w_to-<template>_xfm.matfiles - HTML reports - With registration and defacing visualizations
- Metadata - DataLad metadata updates (if enabled)
Examples
Process All Participants
skullduggery /data/mybids
Process Specific Pediatric Cohort
skullduggery /data/mybids \
--participant-label 001 002 003 \
--template MNIInfant \
--default-age 6:months
Generate Detailed Reports
skullduggery /data/mybids \
--save-all-masks \
--report-dir ./qa_reports \
--debug debug
With Distribution Restrictions Filtering
skullduggery /data/mybids \
--deface-sensitive \
--datalad
Documentation
- Developer Guide - Development setup and guidelines
- VSCode Setup - Visual Studio Code configuration
- API Documentation - Detailed API reference
Contributing
See CONTRIBUTING.md for guidelines on reporting issues and contributing code.
License
This project is licensed under the MIT License. See LICENSE for details.
Citation
If you use Skullduggery in your research, please cite:
@software{skullduggery,
title={Skullduggery: Automated Defacing of Neuroimaging Data},
author={Pinsard, Basile},
url={https://github.com/UNFmontreal/skullduggery},
year={2024}
}
Support
For issues, questions, or suggestions, please open an issue on GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skullduggery-0.0.2rc110.post1.tar.gz.
File metadata
- Download URL: skullduggery-0.0.2rc110.post1.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.33.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88b6b2a3cc7f50a08c144f11fba33d6dabc1f59be0de6434f828ce3357d51623
|
|
| MD5 |
1ab50536a87a4858c59268e57758a6ed
|
|
| BLAKE2b-256 |
f1e9f57437a391e5ed6b6e354e0e2657da76daafac2ac9522c8e4c1cf677e35a
|
File details
Details for the file skullduggery-0.0.2rc110.post1-py3-none-any.whl.
File metadata
- Download URL: skullduggery-0.0.2rc110.post1-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.33.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
943174ce978717b61c5cb06c468edc327d0746aa66717cd1a2218fdddcc7316a
|
|
| MD5 |
3eabdbf8308b9b1665d0e1a0e790a1bd
|
|
| BLAKE2b-256 |
b486054ebfa48702217502b0c8f5278527581a4faccbefd96c0411d5c773847f
|