Skip to content

CreateZoom API app to handle pyramiding and tiles

License

Notifications You must be signed in to change notification settings

Neural-Systems-at-UIO/CreateZoom

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CreateZoom

Pyramiding

This application is an asynchronous endpoint for creating deep zoom image file formats for images, for use with QUINT online, LocaliView and other EBRAINS software. Main dependencies are asyncio, aiofiles, aiohttp ,fastapi and pyvips. The library libvips is installed in the image.

API Endpoints

  • GET /deepzoom/health - Service health status
  • POST /deepzoom - Submit image processing task
  • GET /deepzoom/status/{task_id} - Check task status

Access

Latest stable version

Documentation

Contributors

  • Programming: Arda Balkir
  • Conception, design, validation: Maja A Puchades, Sharon C Yates, Arda Balkir, Jan G Bjaalie.

Licence

MIT licence

Citation

CreateZoom (RRID:SCR_026625)

  • Puchades MA, Yates SC, Csucs G, Carey H, Balkir A, Leergaard TB, Bjaalie JG. Software and pipelines for registration and analyses of rodent brain image data in reference atlas space. Front Neuroinform. 2025 Sep 24;19:1629388. https://doi.org/10.3389/fninf.2025.1629388

Acknowledgements

CreateZoom is developed by the Neural Systems Laboratory at the Institute of Basic Medical Sciences, University of Oslo, Norway. CreateZoom was developed with support from the EBRAINS infrastructure, and funding from the European Union’s Horizon Europe Programme for Research Infrastructures Grant Agreement No. 101147319 (EBRAINS 2.0).

Contact us

Report issues here on github or email: support@ebrains.eu

Technical information

Deployment

to deploy, run build in docker and the image can be deployed anywhere. There are no secrets as the token is handled in memory.

docker build -t appname .

Usage

{
  "path": "str",
  "target_path": "str",
  "token": "str"
}

Files paths should be submitted individually, for each file you will be assigned a task_id. You can query your tasks status with the status endpoint.

sequenceDiagram
    participant Client
    participant API
    participant TaskManager
    participant TaskStore
    participant Storage
    participant Bucket

    Client->>API: POST /deepzoom
    API->>TaskManager: Create new task
    TaskManager->>TaskStore: Store task details
    API-->>Client: Return task_id

    Note over TaskManager: Async Processing
    Bucket->>TaskManager: Download image
    TaskManager->>Storage: Create DeepZoomImage
    TaskManager->>Storage: Zip store
    TaskManager->>Bucket: Upload result
    TaskManager->>TaskStore: Update status

    Client->>API: GET /deepzoom/status/{task_id}
    API->>TaskStore: Get task status
    API-->>Client: Return task details

Loading

About

CreateZoom API app to handle pyramiding and tiles

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 94.6%
  • Dockerfile 5.4%