Phaeros, le copilot d'imagerie pour la recherche en biologie

{{ t.heroTitle }}

{{ t.heroP1 }}
{{ t.heroP2 }}

{{ 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 }}
+ paper.pdf + protocole.md + pipeline.py
{{ 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.secP }}

{{ 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 Zarr PDF .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.contactP }}

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