CoolFace
Datasetpublic

KMH158/brats2020_shagufta

BraTS 2020 - Brain Tumor Radiology Report Generation Dataset Dataset Description This dataset contains paired brain MRI scans and radiology reports for training image-to-text models for automated radiology report generation. Dataset Summary Total Patients: 166 Total Images: 2080 Modalities: T1, T1ce, T2, FLAIR (4 modalities per frame) Frames per Patient: 10 (optimal slice ± neighbors) Image Size: 224x224 Source: BraTS 2020 Challenge… See the full description on the dataset page: https://huggingface.co/datasets/KMH158/brats2020_shagufta.

sourceHugging Facecc-by-nc-4.0updated 7mo agoView on Hugging Face
0likes33downloads
Dataset Card

BraTS 2020 - Brain Tumor Radiology Report Generation Dataset

Dataset Description

This dataset contains paired brain MRI scans and radiology reports for training image-to-text models for automated radiology report generation.

Dataset Summary

  • —Total Patients: 166
  • —Total Images: 2080
  • —Modalities: T1, T1ce, T2, FLAIR (4 modalities per frame)
  • —Frames per Patient: 10 (optimal slice ± neighbors)
  • —Image Size: 224x224
  • —Source: BraTS 2020 Challenge

Splits

SplitPatientsImages
Train1661660
Validation21210
Test21210

Dataset Structure

Data Fields

  • —patient_id (int): Unique patient identifier
  • —report_number (str): Original report number (TR001, TR002, etc.)
  • —report (str): Full radiology report text
  • —slice_index (int): Axial slice index in the MRI volume
  • —frame_index (int): Frame number (0-9, where frame ~5 is optimal)
  • —is_optimal (bool): Whether this is the optimal slice for this patient
  • —optimal_slice (int): The optimal slice index for this patient
  • —image_t1 (Image): T1-weighted MRI image
  • —image_t1ce (Image): T1 contrast-enhanced MRI image
  • —image_t2 (Image): T2-weighted MRI image
  • —image_flair (Image): FLAIR MRI image

Data Sample

python
from datasets import load_dataset

dataset = load_dataset("KMH158/brats2020_shagufta")

# Access a sample
sample = dataset['train'][0]

print("Patient ID:", sample['patient_id'])
print("Report:", sample['report'][:200])
print("Modalities available:", ['t1', 't1ce', 't2', 'flair'])

# Display images
from PIL import Image
import matplotlib.pyplot as plt

fig, axes = plt.subplots(1, 4, figsize=(16, 4))
for idx, modality in enumerate(['t1', 't1ce', 't2', 'flair']):
    axes[idx].imshow(sample[f'image_{modality}'], cmap='gray')
    axes[idx].set_title(modality.upper())
    axes[idx].axis('off')
plt.show()

Methodology

Slice Selection

The optimal slice for each patient was determined using a trained regression model that:

  1. 1.Predicts tumor burden based on image features
  2. 2.Uses weighted scoring: 3×Necrotic + 2×Edema + 1×Enhancing
  3. 3.Selects the slice with maximum tumor burden

Then, 5 slices before and 4 slices after the optimal slice are extracted for data augmentation.

Image Preprocessing

  1. 1.Normalization: Global min-max normalization to [0, 255]
  2. 2.CLAHE: Contrast Limited Adaptive Histogram Equalization
  3. 3.Resizing: Bicubic interpolation to 224x224
  4. 4.Format: RGB (3-channel grayscale)

Report Mapping

Reports were mapped from the original CSV using the "Number" column (TR001, TR002, etc.) to BraTS patient IDs.

Intended Use

Primary Use Case

Training vision-language models for:

  • —Automated radiology report generation
  • —Medical image captioning
  • —Clinical decision support

Example Models

  • —BLIP (Salesforce/blip-image-captioning-base)
  • —GIT (microsoft/git-base)
  • —ViT + GPT-2
  • —Custom vision-language architectures

Example Training Code

python
from datasets import load_dataset
from transformers import BlipProcessor, BlipForConditionalGeneration
from torch.utils.data import DataLoader

# Load dataset
dataset = load_dataset("KMH158/brats2020_shagufta")

# Initialize model
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")

# Create dataloader
def collate_fn(batch):
    # Use T1ce modality (or any other)
    images = [item['image_t1ce'] for item in batch]
    texts = [item['report'] for item in batch]
    
    return processor(images=images, text=texts, return_tensors="pt", padding=True)

train_loader = DataLoader(dataset['train'], batch_size=8, collate_fn=collate_fn)

# Training loop
for batch in train_loader:
    outputs = model(**batch, labels=batch['input_ids'])
    loss = outputs.loss
    # ... training code

Multi-Modal Usage

This dataset includes all 4 MRI modalities. You can:

  1. 1.Single modality: Use T1ce (shows enhancement best)
  2. 2.Multi-modal: Concatenate or ensemble all 4 modalities
  3. 3.Modality-specific: Train separate models per modality
python
# Example: Multi-modal input
sample = dataset['train'][0]

# Stack all modalities
import numpy as np
multi_modal = np.stack([
    np.array(sample['image_t1']),
    np.array(sample['image_t1ce']),
    np.array(sample['image_t2']),
    np.array(sample['image_flair'])
], axis=-1)  # Shape: (224, 224, 12) - 4 modalities × 3 RGB channels

Limitations

  • —Dataset size: 166 patients (relatively small for deep learning)
  • —Single institution/protocol
  • —Expert annotations needed for validation
  • —Bias towards GBM cases in BraTS dataset
  • —English reports only

Citation

If you use this dataset, please cite:

bibtex
@dataset{brats_radiology_reports_2024,
  title={BraTS 2020 Radiology Report Generation Dataset},
  author={Your Name},
  year={2024},
  publisher={HuggingFace},
  howpublished={\url{https://huggingface.co/datasets/KMH158/brats2020_shagufta}}
}

@article{menze2015multimodal,
  title={The multimodal brain tumor image segmentation benchmark (BRATS)},
  author={Menze, Bjoern H and Jakab, Andras and Bauer, Stefan and others},
  journal={IEEE transactions on medical imaging},
  volume={34},
  number={10},
  pages={1993--2024},
  year={2015},
  publisher={IEEE}
}

License

CC-BY-NC 4.0 (Non-commercial use only)

Acknowledgments

  • —BraTS Challenge organizers
  • —Original report annotators
  • —HuggingFace for dataset hosting