Picsha AI

Python SDK

The official picsha Python SDK is tailored specifically for data scientists, computational biologists, and ML engineers. It simplifies the integration of complex imaging datasets into Python machine learning pipelines.

Installation

We recommend using poetry:

poetry add picsha

Or pip:

pip install picsha

Quickstart (Synchronous)

import picsha

client = picsha.Client(api_key="sk_your_key_here")

# 1. Semantic Search for biological datasets
results = client.search(
    query="fluorescent cancer cell cultures", 
    mode="ai" 
)

# 2. Get transformed URLs for Pandas or PyTorch integration
for asset in results.assets:
    url = asset.generate_url(width=512, height=512, format="webp")
    print(url)

High-Throughput (Asynchronous)

For batch processing or uploading thousands of scientific imaging files in parallel, you can use the built-in AsyncClient powered by httpx and asyncio:

import picsha
import asyncio

async def main():
    async with picsha.AsyncClient(api_key="sk_your_key_here") as client:
        # Uploading large RAW/HEIC files asynchronously with content moderation bypassed
        upload_result = await client.upload(
            file_path="./data/sample_01.heic",
            tags=["assay:123", "cancer_cells"],
            ephemeral=True, # Automatically deletes the asset after 24 hours
            config={
                "content_moderation": False # Explicitly ensuring moderation is off (the default)
            }
        )
        print(f"Uploaded: {upload_result.asset.id}")

asyncio.run(main())

Key Use Cases

  • "Dark Data" Retrieval: Automatically encode heavy files (RAW, HEIC, TIFF) upon upload, extracting metadata so they can be discovered via natural language vector searches.
  • On-the-Fly ML Pre-Processing: Use asset.generate_url(width=512, height=512, format="webp") to have the Picsha edge servers standardize dimensions and formats before the byte stream hits your PyTorch/TensorFlow pipeline.