Phaeros — assistant d’analyse d’images biologiques en langage naturel

{{ t.heroSlogan }}

{{ t.heroSupport }}

{{ t.heroTitle }}

{{ t.statStepsNum }}
{{ t.statStepsLabel }}
{{ t.statCodeNum }}
{{ t.statCodeLabel }}
{{ t.statTrustNum }}
{{ t.statTrustLabel }}
{{ t.workflowKicker }}

{{ t.workflowH2 }}

{{ t.workflowP }}

01◎
{{ t.step1Title }}
{{ t.step1Body }}
02◉
{{ t.step2Title }}
{{ t.step2Body }}
03⟨⟩
{{ t.step3Title }}
{{ t.step3Body }}
04✓
{{ t.step4Title }}
{{ t.step4Body }}
{{ t.customTitle }}
{{ t.customBody }}
↓ analysis.py ↓ results.png ↓ session.zip
{{ t.diffKicker }}

{{ t.diffH2 }}

{{ t.diffP }}

{{ t.diff1Kicker }}

{{ t.diff1H3 }}

{{ t.diff1P }}

{{ t.diff2Kicker }}

{{ t.diff2H3 }}

{{ t.diff2P1 }}{{ t.diff2PBold }}{{ t.diff2P2 }}

{{ t.diffTag1 }} {{ t.diffTag2 }} {{ t.diffTag3 }}
{{ t.demoKicker }}

{{ t.demoH2 }}

{{ t.demoP }}

Phaeros
History ↺
{{ stepHint }}
✓ {{ imgName }}
✓ {{ v.name }}
{{ v.name }}
analysis.py
import numpy as np
from skimage import filters, measure, morphology

# Segmentation des noyaux — canal 2
nuclei = image[..., 2]
mask = nuclei > filters.threshold_otsu(nuclei)
mask = morphology.remove_small_objects(mask, 64)

# Mesures morphométriques
labels = measure.label(mask)
table = measure.regionprops_table(
    labels, nuclei,
    properties=("area", "circularity", "mean_intensity"),
)
Chat
{{ m.role }}
{{ m.body }}
{{ t.pourquiKicker }}

{{ t.pourquiH2 }}

◎

{{ t.pq1H3 }}

{{ t.pq1P }}

◉

{{ t.pq2H3 }}

{{ t.pq2P }}

{{ t.secKicker }}

{{ t.secH2 }}

{{ t.secP1 }}
{{ t.secP2 }}

✓{{ t.secItem1 }}
✓{{ t.secItem2 }}
✓{{ t.secItem3 }}
🔒{{ t.secDiagramMachine }}
{{ t.secDiagramImages }} {{ t.secDiagramCalc }} {{ t.secDiagramResults }}
{{ t.secDiagramOnlyConv1 }}
{{ t.secDiagramOnlyConv2 }}
⇄ {{ t.secDiagramTextOnly }}
{{ t.secDiagramLLM }}
{{ t.secDiagramLLMDesc }}
{{ t.fmtKicker }}

{{ t.fmtH2 }}

{{ t.fmtP }}

TIFF OME-TIFF OME-Zarr PNG / JPEG .czi .nd2 .lif
{{ t.faqKicker }}

{{ t.faqH2 }}

{{ t.faq1Q }}+

{{ t.faq1A }}

{{ t.faq2Q }}+

{{ t.faq2A }}

{{ t.faq3Q }}+

{{ t.faq3A }}

{{ t.faq4Q }}+

{{ t.faq4A }}

{{ t.faq5Q }}+

{{ t.faq5A }}

{{ t.faq6Q }}+

{{ t.faq6A }}

{{ t.contactKicker }}

{{ t.contactH2 }}

{{ t.contactP1 }}
{{ t.contactP2 }}

✓{{ t.contactItem1 }}
✓{{ t.contactItem2 }}
✓{{ t.contactItem3 }}
✓
{{ t.successTitle }}
{{ t.successBody }}
{{ t.disclaimerContact }}