AstroFlow is an end-to-end search pipeline for radio single pulses and fast radio bursts (FRBs). It combines CUDA-accelerated dedispersion, RFI mitigation, AI-assisted candidate detection, and publication-ready candidate visualization in a YAML-configured command-line workflow. The pipeline supports FILTERBANK (.fil) and PSRFITS (.fits) observations and is designed for high-throughput offline or near-real-time searches.
Documentation: https://lintian233.github.io/astroflow/
Preview
Installation
Python 3.10 to 3.12 is recommended.
pip install pulseflow
Read the full documentation: https://lintian233.github.io/astroflow/
Source Build
Source builds require CUDA Toolkit 12.6 or newer, GCC/G++ 11.4 or compatible, CMake 3.22 or newer, Conan 2.x, Ninja, and Python 3.10 to 3.12.
git clone https://github.com/lintian233/astroflow
cd astroflow
bash configure.sh
conda activate dev-astroflow-ml
bash build.sh
pip install -e .
Development builds are also published to TestPyPI:
pip install --pre -i https://test.pypi.org/simple/ pulseflow --extra-index-url https://pypi.org/simple
Citation
If AstroFlow is useful in your research, please cite:
ASTROFLOW: A Real-Time End-to-End Pipeline for Radio Single-Pulse Searches
https://doi.org/10.3847/1538-4365/ae4a26
Limitations
- For best throughput, keep individual observations below roughly 300 seconds and below 5 GB per input file. Larger files may become I/O-bound and increase memory pressure.
- When a file produces more than roughly 50 candidates, Python-side candidate object construction and plotting can become the dominant runtime cost.
Roadmap
- Add PSRDADA ingestion and zero-copy memory mapping for high-throughput streaming.
- Reuse dedispersed data products across multi-parameter searches.
- Complete the injection-pulse and model fine-tuning workflow.
- Expand automated test coverage.
Community
Star History
Metadata
Release files for pulseflow 0.1.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pulseflow-0.1.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details for pulseflow-0.1.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
| pulseflow-0.1.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details for pulseflow-0.1.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
| pulseflow-0.1.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details for pulseflow-0.1.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
Total release size: 14.5 MB
Release files / pulseflow-0.1.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pulseflow-0.1.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.8 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6143c2a9e9e983d180f9d7df1bc645577c08c060166cadef9fde3b60e47b6a63
|
|
BLAKE2b-256 checksum How to use checksums |
eb6ccc49f4f2b0714e7120ffbe74679e61590a5b896319cd706e05f95b9cb001
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 31, 2026.
Transparency logRelease files / pulseflow-0.1.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pulseflow-0.1.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.8 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a9092dd306350ddbe81b96fb7527d85d94f88176c14ba8877401d4b54228f11c
|
|
BLAKE2b-256 checksum How to use checksums |
eb2455b53379b75e6f8536b42277bdef6c72d3dedd140e15cbbde85fbdc41596
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 31, 2026.
Transparency logRelease files / pulseflow-0.1.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pulseflow-0.1.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.8 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c25ab67aa2a54a35a9fc414095ebb85e66e17eb5c36edfa29613b14b9c8d8774
|
|
BLAKE2b-256 checksum How to use checksums |
e2e15cdb8cda0bc76c7d4579ad0c38900dbad023558e7ab95631f2be7cf80229
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 31, 2026.
Transparency logSecurity for pulseflow 0.1.12
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.
Full provenance
All 3 files in this release have been uploaded with provenance metadata.
Attestation for pulseflow-0.1.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
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 May 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.