Skip to content

BinZhang109/FRTSearch

Repository files navigation

FRTSearch: Fast Radio Transient Search

PyPI Paper Dataset Framework Python License Total Downloads

FRTSearch is an end-to-end framework for discovering Pulsars, Rotating Radio Transients (RRATs), and Fast Radio Bursts (FRBs) in radio astronomical observation data. Single-pulse emissions from these sources all exhibit consistent dispersive trajectories governed by the cold plasma dispersion relation ($t \propto \nu^{-2}$) in time-frequency dynamic spectra. This shared signature serves as a key beacon for identifying these astrophysical sources. FRTSearch leverages a Mask R-CNN instance segmentation model and the IMPIC algorithm to directly detect and characterize Fast Radio Transients (FRTs), infer their physical parameters (DM, ToA), and generate diagnostic plots and candidate catalogs for manual verification and scientific analysis.

FRTSearch Pipeline

Core Components:

  1. Mask R-CNN — Segments dispersive trajectories in time-frequency dynamic spectra, trained on the pixel-level annotated CRAFTS-FRT dataset.
  2. IMPIC — Iterative Mask-based Parameter Inference and Calibration: infers DM and ToA directly from segmentation masks.   Code | Docs | Example

Supported formats:

Format 1-bit 2-bit 4-bit 8-bit 32-bit
PSRFITS (.fits)
Sigproc Filterbank (.fil)

Installation

Option 1: pip install (Recommended)

Requires: Python 3.10+, CUDA 11.7+, PyTorch 2.0+, PRESTO, MMDetection

pip install FRTSearch

Option 2: From Source

git clone https://github.com/BinZhang109/FRTSearch.git && cd FRTSearch
pip install -r requirements.txt

Option 3: Docker

docker pull binzhang109/frtsearch:v1.0.0

Download Model Weights

Download from Hugging Face and place into models/:

FRTSearch/
├── models/
│   └── hrnet_epoch_36.pth
├── configs/
│   ├── detector_FAST.py
│   └── detector_SKA.py
└── ...

Usage

Full Pipeline

python FRTSearch.py <data.fits|data.fil> <config.py> [--slide-size 128]
Argument Description
data Observation file (.fits or .fil)
config Detector configuration file
--slide-size Subintegrations per sliding window (default: 128)

Example

Test data can be downloaded from Hugging Face.

# FAST FRB detection
python FRTSearch.py ./test_sample/FRB20121102_0038.fits ./configs/detector_FAST.py --slide-size 128

# SKA FRB detection
python FRTSearch.py ./test_sample/FRB20180119_SKA_1660_1710.fil ./configs/detector_SKA.py --slide-size 8

Training

Download the CRAFTS-FRT dataset and place it into CRAFTS_FRT_Dataset/ before training.

python train.py

Test Samples

python test_sample/test_samples.py --example FRB20121102

Available examples: FRB20121102, FRB20201124, FRB20180301, FRB20180119, FRB20180212

Dataset: CRAFTS-FRT

The first pixel-level annotated FRT dataset, derived from the Commensal Radio Astronomy FAST Survey (CRAFTS).

Instances Source Download
2,392 (2,115 Pulsars, 15 RRATs, 262 FRBs) FAST 19-beam L-band ScienceDB

Citation

@article{zhang2026frtsearch,
  title={FRTSearch: Unified Detection and Parameter Inference of Fast Radio Transients using Instance Segmentation },
  author={Zhang, Bin and Wang, Yabiao and Xie, Xiaoyao et al.}
  year={2026},
}

Test sample references: FAST — Guo et al. (2025)  |  SKA — Shannon et al. (2018)

Contributing

Open an Issue for bugs or questions. PRs welcome — see Contributing Guidelines.

License & Acknowledgments

This project is licensed under GPL-2.0.

Built upon: MMDetection | PRESTO

Exploring the dynamic universe with AI 🌌📡