Fluorescent in situ Hybridization Probe Design Tool
A comprehensive Python package for designing custom fluorescent in situ hybridization (FISH) probes.
- Multi-species support: Works with any organism with genome and transcriptome annotations
- Compatible probe design: Probes are compatible with Molecular Instruments HCR v3.0 B-system amplification
- Facilitates Multiplexing: Probes can be ordered with B1-B5 amplifier recognition motifs
- BLAST-based specificity: Ensures unique binding by blasting against the transcriptome
- Comprehensive visualization: Generate publication-ready plots showing probe locations on gene structures
- Flexible output formats: Export probes in IDT-compatible Excel format for direct ordering
git clone https://github.com/Social-Evolution-and-Behavior/ProbePy.git
cd ProbePy
poetry installRequirements: Python 3.11+, Poetry, NCBI BLAST+ command line tools
The package facilitates the installation of NCBI BLAST+ command line tools.
import probepy
probepy.install_blast_tools()Alternatively, you can install it yourself:
- macOS:
brew install blast - Ubuntu/Debian:
sudo apt-get install ncbi-blast+ - Windows: Download from NCBI BLAST+
import probepy
# Check BLAST tools availability
probepy.check_blast_tools()
# Load transcriptome object (pre-built or create new)
transcriptome = probepy.load_transcriptome_object("species_transcriptome")
# Get gene of interest
gene = transcriptome.get_gene("Or9a")
transcript = gene.get_transcript_longest_cds()
# Design HCR probes
sequence = transcript.mrna_sequence
probes, regions, positions = probepy.design_hcr_probes(sequence, "B3")
print(f"Designed {len(probes)} probe pairs for {gene.name}")Visit the docs for a complete walkthrough including:
- Downloading data with rsync
- Building BLAST databases
- Transcriptome loading and gene selection
- BLAST-based specificity checking
- Probe design and filtering
- Visualization and export
The probe design follows these key principles:
- Target sequence processing: Uses mature mRNA (exons only, no introns)
- Probe pair generation: Designs complementary 25-nt probe pairs with optimal spacing
- Quality filtering:
- GC content between 25-75%
- No homopolymer runs >4 bases
- No gaps from unique region masking
- Specificity verification: BLAST against transcriptome with/without introns
- Visualization: Maps probe locations to genomic coordinates
- Excel format compatible with IDT oPools bulk ordering
- Includes pool names and probe sequences
- Ready for direct upload to IDT website
- Detailed information about where each probe binds
- Useful for troubleshooting and analysis
- Gene structure plots with probe locations
- HCR v3.0 system developed by Molecular Instruments
- Built with Python scientific computing stack (NumPy, Pandas, Matplotlib)
- BLAST integration via NCBI BLAST+ suite
- Visualization powered by pygenomeviz