Skip to main content

🧬 GeoVectorSearch

GeoVectorSearch is a lightweight Python SDK and command-line tool for discovering high-quality GEO gene expression datasets relevant to a disease or biological condition — optimized for differential expression (DE) analysis.

It combines semantic search using sentence embeddings with optional GPT-based filtering to help you rapidly identify suitable datasets for your research or pipeline.


🔍 Features

  • ✅ Natural language search for GEO datasets
  • ⚡ Fast vector search using FAISS and prebuilt sentence embeddings
  • 🧠 Optional GPT filtering to assess dataset quality for DE analysis - supports basic GPT filtering and enhanced GPT filtering which segregates the datasets into tiers: Tier 1: Highly suitable for DE studies, Tier 2: Suitable for DE studies but the samples come from cell lines/ organoids/ xenografts, and Tier 3: Not directly suitable for DE studies but can be used for exploratory studies
  • 🧬 Supports microarray and RNA-seq datasets
  • 🖥️ Interactive CLI for a smooth user experience
  • 🧩 Easy to integrate into larger pipelines or SDKs
  • 💾 Save results locally for downstream analysis

📦 Installation

Install using your preferred package manager:

uv pip install geo-pysearch

Or clone the repository and install locally:

git clone https://github.com/Tinfloz/geo-vector-search.git
cd geo-vector-search
uv pip install .

🧪 Example (Python SDK)

from geo_pysearch.sdk import search_datasets

results = search_datasets(
    query="duchenne muscular dystrophy",
    dataset_type="microarray",
    gpt_filter_type="enhanced",
    top_k=50,
    use_gpt_filter=True,
    return_all_gpt_results=True
)

print(results.head())

Convenience methods:

from geo_pysearch.sdk import search_microarray, search_rnaseq

search_microarray("breast cancer")
search_rnaseq("lung fibrosis", use_gpt_filter=True)

💻 Example (CLI)

Launch the interactive CLI:

geo-search
  • Use the arrow keys to select dataset type and filtering options
  • Enter your disease query
  • Results will be saved to a local CSV file in a new directory
  • Review and use the datasets for downstream DE analysis

🧠 GPT Filtering (Optional)

If enabled, the SDK uses GPT to evaluate whether each dataset is suitable for differential gene expression analysis. You can configure GPT behavior with:

  • Adjustable confidence thresholds

📁 Project Structure

gse-pysearch/
├── geo_pysearch/
│   ├── data/                # Prebuilt FAISS index, vectors, metadata
│   ├── vector_search/
│   │   ├── vector_search.py
│   │   ├── gpt_filter.py
│   │   ├── tiered_gpt_filter.py
│   ├── sdk.py               # Main SDK interface
│   └── cli.py               # CLI implementation
├── examples/                # Example usage scripts
├── .env                     # Optional environment variables


🛠️ Requirements

  • Python 3.12+
  • faiss-cpu, pandas, sentence-transformers

📖 License

GNU General Public License v3.0

This project is licensed under the GNU GPLv3, which guarantees end users the freedom to run, study, share, and modify the software.

If you redistribute or modify this software, your contributions must also be licensed under the same terms.


References

This project implements semantic query generation and evidence extraction strategies inspired by:

  1. Deka, P., Jurek-Loughrey, A., & others. (2022). Evidence Extraction to Validate Medical Claims in Fake News Detection. International Conference on Health Information Science, pp. 3–15.

  2. Deka, P., & Jurek-Loughrey, A. (2021). Unsupervised Keyword Combination Query Generation from Online Health Related Content for Evidence-Based Fact Checking. The 23rd International Conference on Information Integration and Web Intelligence, pp. 267–277.

Metadata

Release files for geo_pysearch 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for geo_pysearch 0.1.7
File Size Uploaded Provenance
geo_pysearch-0.1.7.tar.gz 45.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for geo_pysearch 0.1.7
File Interpreter ABI Platform
geo_pysearch-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 94.9 kB

Release files / geo_pysearch-0.1.7.tar.gz

Download URL geo_pysearch-0.1.7.tar.gz
Size 45.6 kB
Tags Source
SHA-256 checksum
How to use checksums
817c79452e65e3f0caf534a525403aedc24d7e47d186ee7239fdb6ec0de43376
BLAKE2b-256 checksum
How to use checksums
6b802b10ae649700c2b52337c757c23affbd93d35a20ad48bbf9096820ae6dd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.17

Release files / geo_pysearch-0.1.7-py3-none-any.whl

Download URL geo_pysearch-0.1.7-py3-none-any.whl
Size 49.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fcd18aff0d19d48e9c6a0fa3f1c3b5efbe91b5fffdb2e4e12336a447de61869e
BLAKE2b-256 checksum
How to use checksums
a01a0a3bbd02f3ecf9290189553f6b1534fd89e08b15f5dd085825d052acf917
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.17

Security for geo_pysearch 0.1.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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page