Datasets¶
The SPECULAR project provides datasets for validation, benchmarking, and further research in medical simulation.
Available Datasets¶
Liver Geometry Dataset¶
Patient-specific liver meshes derived from anonymized CT scans.
- 10 Liver Meshes
Tetrahedral meshes (~5K-50K elements)
- Vessel Trees
Segmented hepatic vessels
- Tumor Models
Synthetic and patient-derived tumor geometries
Format: VTK, OBJ, STL
License: CC BY 4.0 (Attribution required)
Needle Insertion Experiments¶
Force and position data from experimental needle insertions.
- Phantom Liver Data
50+ insertion experiments on gelatin phantoms
- Ex-vivo Data
Insertions in porcine liver specimens
- In-vivo Data
Clinical insertion recordings (anonymized)
Contents: - Needle tip position (3D trajectory) - Insertion force (3D) - Timestamps - Tissue properties - Experimental conditions
Format: CSV, HDF5
Simulation Benchmarks¶
Reference solutions and performance metrics.
| Benchmark | Description | Size |
|---|---|---|
| Static deformation | Linear elasticity solutions | 100 MB |
| Dynamic response | Viscoelastic behavior | 200 MB |
| Contact validation | Analytical contact solutions | 50 MB |
| Haptic stability | Coupling stability tests | 25 MB |
Download All Benchmarks (375 MB)
Data Format¶
Mesh Files¶
liver_001.vtu
├── Points (vertices)
├── Cells (tetrahedra)
├── PointData
│ ├── displacement
│ └── force
└── CellData
├── stress
└── strain
Trajectory Files¶
Usage Examples¶
Loading Meshes¶
Python with meshio:
import meshio
# Load liver mesh
mesh = meshio.read("liver_001.vtu")
points = mesh.points
cells = mesh.cells_dict["tetra"]
MATLAB:
% Load trajectory data
data = readmatrix('insertion_001.csv');
time = data(:,1);
position = data(:,2:4);
force = data(:,5:7);
Data Processing¶
Preprocessing Scripts¶
Utilities for data preparation:
- Mesh cleaning: Remove duplicate vertices
- Smoothing: Laplacian smoothing
- Decimation: Reduce mesh complexity
- Registration: Align with reference frames
Visualization¶
Example scripts for plotting:
import matplotlib.pyplot as plt
import numpy as np
# Load and plot force data
data = np.loadtxt('insertion_001.csv', delimiter=',', skiprows=1)
time = data[:, 0]
force_magnitude = np.linalg.norm(data[:, 4:7], axis=1)
plt.plot(time, force_magnitude)
plt.xlabel('Time (s)')
plt.ylabel('Force (N)')
plt.title('Insertion Force Profile')
plt.show()
Validation¶
Ground Truth¶
Reference solutions for validation:
- Analytical solutions: Simple geometries
- High-fidelity FEM: Converged solutions
- Experimental data: Phantom measurements
Comparison Metrics¶
Common evaluation metrics:
| Metric | Description | Formula |
|---|---|---|
| RMSE | Root Mean Square Error | \(\sqrt{\frac{1}{N}\sum(u_i - \hat{u}_i)^2}\) |
| Correlation | Pearson correlation | \(r_{u,\hat{u}}\) |
| Hausdorff | Maximum distance | \(\max(d(A,B), d(B,A))\) |
Dataset Statistics¶
Liver Geometries¶
Dataset: Liver Meshes (n=10)
├── Mean volume: 1.45 L (±0.3)
├── Mean surface: 0.12 m² (±0.02)
├── Elements: 10K-50K tetrahedra
└── Quality: Minimum Jacobian > 0.1
Needle Insertions¶
Dataset: Phantom Insertions (n=50)
├── Mean depth: 80 mm (±20)
├── Max force: 5.2 N (±1.5)
├── Duration: 15-60 seconds
└── Velocity: 2-10 mm/s
Data Collection¶
Phantom Preparation¶
Gelatin phantoms mimicking liver tissue:
- Recipe: 8% gelatin, 92% water
- Additives: Graphite for US visibility
- Storage: 4°C, sealed containers
- Lifetime: 2 weeks
Experimental Setup¶
- Needle: 17G RFA needle (Covidien)
- Actuation: Linear stage (0.1 mm precision)
- Force sensor: ATI Nano17
- Tracking: Optical tracker (NDI Polaris)
License and Citation¶
License¶
All datasets are released under CC BY 4.0:
- Use for research and education
- Share and redistribute
- Create derivative works
- Required: Attribution
Citation¶
When using these datasets, please cite:
@dataset{specular2021,
title={SPECULAR: Needle Insertion Simulation Dataset},
author={SPECULAR Consortium},
year={2021},
url={https://specular-project.github.io/datasets}
}
Contributing Data¶
We welcome contributions from the community:
- Validation data: Comparison with your simulator
- New phantoms: Different tissue mimics
- Clinical data: Anonymized patient data
- Annotations: Expert segmentations
Contact: datasets@specular-project.fr
FAQ¶
Q: Can I use these datasets commercially? A: Yes, under CC BY 4.0 license with attribution.
Q: Are the patient datasets anonymized? A: Yes, all identifying information has been removed.
Q: How can I request additional data? A: Contact us with your specific requirements.
Q: What software can read these formats? A: ParaView, MATLAB, Python (meshio, pyvista), 3D Slicer.
Contact¶
For questions about datasets:
- Email: datasets@specular-project.fr
- Issues: GitHub repository