FRTSearch: Fast Radio Transient Search
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.
Core Components:
- Mask R-CNN — Segments dispersive trajectories in time-frequency dynamic spectra, trained on the pixel-level annotated CRAFTS-FRT dataset.
- 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, 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 binzhang/frtsearch
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
FRTSearch <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
FRTSearch ./test_sample/FRB20121102_0038.fits ./configs/detector_FAST.py --slide-size 128
# SKA FRB detection
FRTSearch ./test_sample/FRB20180119_SKA_1660_1710.fil ./configs/detector_SKA.py --slide-size 8
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
Metadata
Release files for FRTSearch 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| frtsearch-1.0.1.tar.gz | 52.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| frtsearch-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 109.7 kB
Release files / frtsearch-1.0.1.tar.gz
| Download URL | frtsearch-1.0.1.tar.gz |
|---|---|
| Size | 52.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8d1b3743bc711c2be033525bad908b197a970ab3ada75be90d351ba423bca3f9
|
|
BLAKE2b-256 checksum How to use checksums |
f6f1033c9c1d107003da1827005a0cd81a53f48c98e485758e01e2a0c429f200
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 5, 2026.
Transparency logRelease files / frtsearch-1.0.1-py3-none-any.whl
| Download URL | frtsearch-1.0.1-py3-none-any.whl |
|---|---|
| Size | 57.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d5232b6e9184b430954459e80028f0f3d5b5d701a564694032f73a112cac106c
|
|
BLAKE2b-256 checksum How to use checksums |
8dc78725716d1f97e66a3deeba00e61c0fb3d1d5c3db02c27d3fd8b61c4e41b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 5, 2026.
Transparency log