BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis

preprint OA: closed CC-BY-4.0

Abstract

Background: Segmentation in microscopy images is a critical task in bioimage analysis, with many deep learning models available (e.g., Cellpose, Omnipose, StarDist, SAM-based models). However, researchers often face challenges in choosing the most suitable model for their data, as quantitative metrics do not always reflect the biological relevance of segmentation results. Methods We developed BISCUIT (BioImage Segmentation Comparison Utility and Interactive Tool), an open-source platform that enables users to run multiple state-of-the-art segmentation algorithms on the same images and visually compare their outputs side-by-side. BISCUIT is implemented as an interactive Jupyter Notebook pipeline, leveraging existing segmentation libraries, and can be executed either via a zero-installation cloud environment (Google Colab) or on local high-performance computing resources. Results Using BISCUIT, we demonstrate how visual inspection of segmentation outputs can reveal qualitative differences between algorithms that may be overlooked by abstract performance metrics. For example, in a fluorescence microscopy image dataset, BISCUIT allowed direct comparison of segmentations from Cellpose, Omnipose, and StarDist, highlighting differences in how each algorithm delineated cell boundaries. This visual approach helped identify the model that produced the most biologically plausible segmentation for the dataset. Conclusions BISCUIT provides an intuitive platform for bioimage analysts and life scientists to evaluate and “see what really works” on their data. The platform is openly available and extensible, lowering the barrier for researchers to perform rapid, interactive benchmarking of segmentation models on their own microscopy data.
Full text 123,795 characters · extracted from preprint-html · click to expand
BISCUIT: An Open-Source Platform for Visual... | F1000Research "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r 3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}(); dataLayer = dataLayer || []; // Standard GTM initialization - Google Consent Mode handles consent automatically (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_auth=hzk0Vc3qFsQYhCrIoHz68A>m_preview=env-1>m_cookies_win=x';f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MWFK8L5J'); ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}}; ;NREUM.loader_config={accountID:"438030",trustKey:"438030",agentID:"772317073",licenseKey:"97f8f67f26",applicationID:"772317073"} ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"97f8f67f26",applicationID:"772317073",sa:1} ;/*! For license information please see nr-loader-spa-1.236.0.min.js.LICENSE.txt */ (()=>{"use strict";var e,t,r={5763:(e,t,r)=>{r.d(t,{P_:()=>l,Mt:()=>g,C5:()=>s,DL:()=>v,OP:()=>T,lF:()=>D,Yu:()=>y,Dg:()=>h,CX:()=>c,GE:()=>b,sU:()=>_});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o),(0,n.Qy)(e,a[e],"info")}var u=r(7056);const d=()=>{const e={blockSelector:"[data-nr-block]",maskInputOptions:{password:!0}};return{allow_bfcache:!0,privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,enabled:!0,harvestTimeSeconds:10},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:u.oD,inactiveMs:u.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10},metrics:{enabled:!0},page_action:{enabled:!0,harvestTimeSeconds:30},page_view_event:{enabled:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1},session_trace:{enabled:!0,harvestTimeSeconds:10},harvest:{tooManyRequestsDelay:60},session_replay:{enabled:!1,harvestTimeSeconds:60,sampleRate:.1,errorSampleRate:.1,maskTextSelector:"*",maskAllInputs:!0,get blockClass(){return"nr-block"},get ignoreClass(){return"nr-ignore"},get maskTextClass(){return"nr-mask"},get blockSelector(){return e.blockSelector},set blockSelector(t){e.blockSelector+=",".concat(t)},get maskInputOptions(){return e.maskInputOptions},set maskInputOptions(t){e.maskInputOptions={...t,password:!0}}},spa:{enabled:!0,harvestTimeSeconds:10}}},f={};function l(e){if(!e)throw new Error("All configuration objects require an agent identifier!");if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function h(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");f[e]=(0,i.D)(t,d()),(0,n.Qy)(e,f[e],"config")}function g(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");var r=l(e);if(r){for(var n=t.split("."),i=0;i {r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{r.d(t,{Re:()=>i,gF:()=>o,q4:()=>n});const n="1.236.0",i="PROD",o="CDN"},385:(e,t,r)=>{r.d(t,{FN:()=>a,IF:()=>u,Nk:()=>f,Tt:()=>s,_A:()=>o,il:()=>n,pL:()=>c,v6:()=>i,w1:()=>d});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=""+o?.location,s=/iPad|iPhone|iPod/.test(navigator.userAgent),c=s&&"undefined"==typeof SharedWorker,u=(()=>{const e=navigator.userAgent.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),d=Boolean(n&&window.document.documentMode),f=!!navigator.sendBeacon},1117:(e,t,r)=>{r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{r.d(t,{L:()=>d,R:()=>c});var n=r(2177),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=[...s[e]];function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u {let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((e=>{let[t]=e;a(t)})))}function f(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},2177:(e,t,r)=>{r.d(t,{c:()=>f,ee:()=>u});var n=r(8632),i=r(2210),o=r(1284),a=r(5763),s="nr@context";let c=(0,n.fP)();var u;function d(){}function f(e){return(0,i.X)(e,s,l)}function l(){return new d}function h(){u.aborted=!0,u.backlog={}}c.ee?u=c.ee:(u=function e(t,r){var n={},c={},f={},g=!1;try{g=16===r.length&&(0,a.OP)(r).isolatedBacklog}catch(e){}var p={on:b,addEventListener:b,removeEventListener:y,emit:v,get:x,listeners:w,context:m,buffer:A,abort:h,aborted:!1,isBuffering:E,debugId:r,backlog:g?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return p;function m(e){return e&&e instanceof d?e:e?(0,i.X)(e,s,l):l()}function v(e,r,n,i,o){if(!1!==o&&(o=!0),!u.aborted||i){t&&o&&t.emit(e,r,n);for(var a=m(n),s=w(e),d=s.length,f=0;fn,p:()=>i});var n=r(2177).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},4402:(e,t,r)=>{r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?o(t,++r).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s {r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{r.d(t,{e:()=>o});var n=r(385),i={};function o(e){if(e in i)return i[e];if(0===(e||"").indexOf("data:"))return{protocol:"data"};let t;var r=n._A?.location,o={};if(n.il)t=document.createElement("a"),t.href=e;else try{t=new URL(e,r.href)}catch(e){return o}o.port=t.port;var a=t.href.split("://");!o.port&&a[1]&&(o.port=a[1].split("/")[0].split("@").pop().split(":")[1]),o.port&&"0"!==o.port||(o.port="https"===a[0]?"443":"80"),o.hostname=t.hostname||r.hostname,o.pathname=t.pathname,o.protocol=a[0],"/"!==o.pathname.charAt(0)&&(o.pathname="/"+o.pathname);var s=!t.protocol||":"===t.protocol||t.protocol===r.protocol,c=t.hostname===r.hostname&&t.port===r.port;return o.sameOrigin=s&&(!t.hostname||c),"/"===o.pathname&&(i[e]=o),o}},50:(e,t,r)=>{function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2587:(e,t,r)=>{r.d(t,{N:()=>c,T:()=>u});var n=r(2177),i=r(5546),o=r(8e3),a=r(3325);const s={stn:[a.D.sessionTrace],err:[a.D.jserrors,a.D.metrics],ins:[a.D.pageAction],spa:[a.D.spa],sr:[a.D.sessionReplay,a.D.sessionTrace]};function c(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(Object.entries(e).forEach((e=>{let[t,n]=e;void 0===u[t]&&(s[t]?s[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),u[t]=Boolean(n))})),Object.keys(s).forEach((e=>{void 0===u[e]&&(s[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),u[e]=!1)})),(0,o.L)(t,a.D.pageViewEvent))}const u={}},2210:(e,t,r)=>{r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{r.d(t,{P:()=>o});var n=r(2177);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{r.d(t,{K:()=>a,b:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.z)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;return void(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"==document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{r.d(t,{em:()=>v,u5:()=>N,QU:()=>S,_L:()=>I,Gm:()=>L,Lg:()=>M,gy:()=>U,BV:()=>Q,Kf:()=>ee});var n=r(2177);const i="nr@original";var o=Object.prototype.hasOwnProperty,a=!1;function s(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");var a,s,c,u="-"===n.charAt(0);for(c=0;c 2?n-2:0),o=2;o {r(A[T],e,w),r(E[T],e,w)})),r(l._A,"fetch",y),t.on(y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(y+"done",[null,r],n)}else t.emit(y+"done",[e],n)})),t}const O={},j=["pushState","replaceState"];function S(e){const t=function(e){return(e||n.ee).get("history")}(e);return!l.il||O[t.debugId]++||(O[t.debugId]=1,s(t).inPlace(window.history,j,"-")),t}var P=r(3239);const C={},R=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!l.il||C[t.debugId])return t;C[t.debugId]=!0;var r=s(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function c(e,t){var r=e.match(a),n=r[1],i=r[3];return i?c(i,t[n]):t[n]}return r.inPlace(Node.prototype,R,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,s=a.match(i),s?s[1]:null);var a,s;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:c(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function f(){t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}function l(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",f,(0,P.m$)(!1)),e.addEventListener("error",l,(0,P.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}var k=r(5763);const H={};function L(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!l.il||H[t.debugId])return t;H[t.debugId]=!0;var r=s(t),i=k.Yu.MO;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const z={};function M(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(z[t.debugId])return t;z[t.debugId]=!0;var r=n.c,o=s(t),a=k.Yu.PR;return a&&function(){function e(r){var n=t.context(),i=o(r,"executor-",n,null,!1);const s=Reflect.construct(a,[i],e);return t.context(s).getCtx=function(){return n},s}l._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,i=r(e);i.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c e())),t};function m(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}function b(){var e=this,t=r.context(e);e.readyState>3&&!t.resolved&&(t.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,f,"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,J,"-xhr-",E),r.on("send-xhr-start",(function(e,t){m(e,t),function(e){h.push(e),a&&(y?y.then(A):u?u(A):(w=-w,x.data=w))}(t)})),r.on("open-xhr-start",m),a){var y=c&&c.resolve();if(!u&&!c){var w=1,x=document.createTextNode(w);new a(A).observe(x,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e {r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{r.d(t,{A:()=>i,t:()=>n});const n=r(3325).D.jserrors,i="nr@seenError"},3081:(e,t,r)=>{r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{r.d(t,{Dz:()=>i,OJ:()=>a,qw:()=>o,t9:()=>n});const n=r(3325).D.pageViewEvent,i="firstbyte",o="domcontent",a="windowload"},9251:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},3614:(e,t,r)=>{r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{r.d(t,{BODY:()=>A,CB_END:()=>E,CB_START:()=>u,END:()=>x,FEATURE_NAME:()=>i,FETCH:()=>_,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>p,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>l,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>g,JS_TIME:()=>T,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>f,SPA_NODE:()=>h,START:()=>w,originalSetTimeout:()=>y});var n=r(5763);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",f="remaining",l="interaction",h="spaNode",g="jsonpNode",p="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,w="-start",x="-end",A="-body",E="cb"+x,T="jsTime",_="fetch"},5938:(e,t,r)=>{r.d(t,{W:()=>o});var n=r(5763),i=r(2177);class o{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=i.ee.get(e,(0,n.OP)(this.agentIdentifier).isolatedBacklog),this.featureName=r,this.blocked=!1}}},9144:(e,t,r)=>{r.d(t,{j:()=>m});var n=r(3325),i=r(5763),o=r(5546),a=r(2177),s=r(7894),c=r(8e3),u=r(3960),d=r(385),f=r(50),l=r(3081),h=r(8632);function g(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","inlineHit","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i 1?r-1:0),i=1;i {e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var p=r(2587);function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=arguments.length>2?arguments[2]:void 0,v=arguments.length>3?arguments[3]:void 0,{init:b,info:y,loader_config:w,runtime:x={loaderType:m},exposed:A=!0}=t;const E=(0,h.gG)();y||(b=E.init,y=E.info,w=E.loader_config),(0,i.Dg)(e,b||{}),(0,i.GE)(e,w||{}),(0,i.sU)(e,x),y.jsAttributes??={},d.v6&&(y.jsAttributes.isWorker=!0),(0,i.CX)(e,y),g();const T=function(e,t){t||(0,c.R)(e,"api");const h={};var g=a.ee.get(e),p=g.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),x(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","inlineHit","addRelease"].forEach((e=>h[e]=x(m,e,!0,"api"))),h.addPageAction=x(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=x(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,x(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,f.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string or number type, but a type of was provided."))}else(0,f.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,f.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of was provided."))},h.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,g),function(){if(p.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw p.emit("fn-err",[arguments,this,"string"==typeof e?new Error(e):e],r),e}finally{p.emit("fn-end",[(0,s.z)()],r)}}}};function x(e,t,r,i){return function(){return(0,o.p)(l.xS,["API/"+t+"/called"],void 0,n.D.metrics,g),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,g),r?void 0:this}}function A(){r.e(439).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>(0,f.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{w[e]=x(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(l.xS,["API/noticeError/called"],void 0,n.D.metrics,g),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,g)},d.il?(0,u.b)((()=>A()),!0):A(),h}(e,v);return(0,h.Qy)(e,T,"api"),(0,h.Qy)(e,A,"exposed"),(0,h.EZ)("activatedFeatures",p.T),T}},3325:(e,t,r)=>{r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>(({78:"page_action-aggregate",147:"metrics-aggregate",242:"session-manager",317:"jserrors-aggregate",348:"page_view_timing-aggregate",412:"lazy-feature-loader",439:"async-api",538:"recorder",590:"session_replay-aggregate",675:"compressor",733:"session_trace-aggregate",786:"page_view_event-aggregate",873:"spa-aggregate",898:"ajax-aggregate"}[e]||e)+"."+{78:"ac76d497",147:"3dc53903",148:"1a20d5fe",242:"2a64278a",317:"49e41428",348:"bd6de33a",412:"2f55ce66",439:"30bd804e",538:"1b18459f",590:"cf0efb30",675:"ae9f91a8",733:"83105561",786:"06482edd",860:"03a8b7a5",873:"e6b09d52",898:"998ef92b"}[e]+"-1.236.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d {s.onerror=s.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},h=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.j=364,i.p="https://js-agent.newrelic.com/",(()=>{var e={364:0,953:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u {i.r(o);var e=i(3325),t=i(5763);const r=Object.values(e.D);function n(e){const n={};return r.forEach((r=>{n[r]=function(e,r){return!1!==(0,t.Mt)(r,"".concat(e,".enabled"))}(r,e)})),n}var a=i(9144);var s=i(5546),c=i(385),u=i(8e3),d=i(5938),f=i(3960),l=i(50);class h extends d.W{constructor(e,t,r){let n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=n,this.abortHandler,this.featAggregate,this.onAggregateImported,n&&(0,u.R)(e,r)}importAggregator(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate||!this.auto)return;const r=c.il&&!0===(0,t.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let t;try{if(r){const{setupAgentSession:e}=await Promise.all([i.e(860),i.e(242)]).then(i.bind(i,3228));t=e(this.agentIdentifier)}}catch(e){(0,l.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",e)}try{if(!this.shouldImportAgg(this.featureName,t))return void(0,u.L)(this.agentIdentifier,this.featureName);const{lazyFeatureLoader:r}=await i.e(412).then(i.bind(i,8582)),{Aggregate:o}=await r(this.featureName,"aggregate");this.featAggregate=new o(this.agentIdentifier,this.aggregator,e),n(!0)}catch(e){(0,l.Z)("Downloading and initializing ".concat(this.featureName," failed..."),e),this.abortHandler?.(),n(!1)}};c.il?(0,f.b)((()=>o()),!0):o()}shouldImportAgg(r,n){return r!==e.D.sessionReplay||!1!==(0,t.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!n?.isNew||!!n?.state.sessionReplay)}}var g=i(7633),p=i(7894);class m extends h{static featureName=g.t9;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(r,n,g.t9,i),("undefined"==typeof PerformanceNavigationTiming||c.Tt)&&"undefined"!=typeof PerformanceTiming){const n=(0,t.OP)(r);n[g.Dz]=Math.max(Date.now()-n.offset,0),(0,f.K)((()=>n[g.qw]=Math.max((0,p.z)()-n[g.Dz],0))),(0,f.b)((()=>{const t=(0,p.z)();n[g.OJ]=Math.max(t-n[g.Dz],0),(0,s.p)("timing",["load",t],void 0,e.D.pageViewTiming,this.ee)}))}this.importAggregator()}}var v=i(1117),b=i(1284);class y extends v.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,b.D)(e,(function(e,r){t[e]=w(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,b.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=w(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=x(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=w(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i t.max&&(t.max=e),e 2&&void 0!==arguments[2])||arguments[2];super(e,r,j.t,n),c.il&&((0,t.OP)(e).initHidden=Boolean("hidden"===document.visibilityState),(0,N.N)((()=>(0,s.p)("docHidden",[(0,p.z)()],void 0,j.t,this.ee)),!0),(0,O.bP)("pagehide",(()=>(0,s.p)("winPagehide",[(0,p.z)()],void 0,j.t,this.ee))),this.importAggregator())}}var P=i(3081);class C extends h{static featureName=P.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,P.t9,r),this.importAggregator()}}var R,I=i(2210),k=i(1214),H=i(2177),L={};try{R=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(L.console=!0,-1!==R.indexOf("dev")&&(L.dev=!0),-1!==R.indexOf("nr_dev")&&(L.nrDev=!0))}catch(e){}function z(e){try{L.console&&z(e)}catch(e){}}L.nrDev&&H.ee.on("internal-error",(function(e){z(e.stack)})),L.dev&&H.ee.on("fn-err",(function(e,t,r){z(r.stack)})),L.dev&&(z("NR AGENT IN DEVELOPMENT MODE"),z("flags: "+(0,b.D)(L,(function(e,t){return e})).join(", ")));var M=i(6660);class B extends h{static featureName=M.t;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(r,n,M.t,i),this.skipNext=0;try{this.removeOnAbort=new AbortController}catch(e){}const o=this;o.ee.on("fn-start",(function(e,t,r){o.abortHandler&&(o.skipNext+=1)})),o.ee.on("fn-err",(function(t,r,n){o.abortHandler&&!n[M.A]&&((0,I.X)(n,M.A,(function(){return!0})),this.thrown=!0,(0,s.p)("err",[n,(0,p.z)()],void 0,e.D.jserrors,o.ee))})),o.ee.on("fn-end",(function(){o.abortHandler&&!this.thrown&&o.skipNext>0&&(o.skipNext-=1)})),o.ee.on("internal-error",(function(t){(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,o.ee)})),this.origOnerror=c._A.onerror,c._A.onerror=this.onerrorHandler.bind(this),c._A.addEventListener("unhandledrejection",(t=>{const r=function(e){let t="Unhandled Promise Rejection: ";if(e instanceof Error)try{return e.message=t+e.message,e}catch(t){return e}if(void 0===e)return new Error(t);try{return new Error(t+(0,D.P)(e))}catch(e){return new Error(t)}}(t.reason);(0,s.p)("err",[r,(0,p.z)(),!1,{unhandledPromiseRejection:1}],void 0,e.D.jserrors,this.ee)}),(0,O.m$)(!1,this.removeOnAbort?.signal)),(0,k.gy)(this.ee),(0,k.BV)(this.ee),(0,k.em)(this.ee),(0,t.OP)(r).xhrWrappable&&(0,k.Kf)(this.ee),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}onerrorHandler(t,r,n,i,o){"function"==typeof this.origOnerror&&this.origOnerror(...arguments);try{this.skipNext?this.skipNext-=1:(0,s.p)("err",[o||new F(t,r,n),(0,p.z)()],void 0,e.D.jserrors,this.ee)}catch(t){try{(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,this.ee)}catch(e){}}return!1}}function F(e,t,r){this.message=e||"Uncaught error with no additional information",this.sourceURL=t,this.line=r}let U=1;const q="nr@id";function G(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===c._A?0:(0,I.X)(e,q,(function(){return U++}))}function V(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,D.P)(e).length}catch(e){return}}}var X=i(7243);class W{constructor(e){this.agentIdentifier=e,this.generateTracePayload=this.generateTracePayload.bind(this),this.shouldGenerateTrace=this.shouldGenerateTrace.bind(this)}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var r=(0,t.DL)(this.agentIdentifier);if(!r)return null;var n=(r.accountID||"").toString()||null,i=(r.agentID||"").toString()||null,o=(r.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,_.M)(),s=(0,_.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof c._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,D.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var r=!1,n={};if((0,t.Mt)(this.agentIdentifier,"distributed_tracing")&&(n=(0,t.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)r=!0;else if(n.allowed_origins instanceof Array)for(var i=0;i 2&&void 0!==arguments[2])||arguments[2];super(r,n,Z.t,i),(0,t.OP)(r).xhrWrappable&&(this.dt=new W(r),this.handler=(e,t,r,n)=>(0,s.p)(e,t,r,n,this.ee),(0,k.u5)(this.ee),(0,k.Kf)(this.ee),function(r,n,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=E,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){_(t,e)}),(0,O.m$)(!1)),c.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,O.m$)(!1))}function s(e){this.params={method:e[0]},T(this,e[1]),this.metrics={}}function u(e,n){var i=(0,t.DL)(r);i.xpid&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(n.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(n.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&n.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function d(e,t){var r=this.metrics,i=e[0],o=this;if(r&&i){var a=V(i);a&&(r.txSize=a)}this.startTime=(0,p.z)(),this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof o.end)&&o.end(t)}catch(e){try{n.emit("internal-error",[e])}catch(e){}}};for(var s=0;s 1?e[1]=i:e.push(i)}else e[0]&&e[0].headers&&s(e[0].headers,n)&&(this.dt=n);function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function x(e,t){this.params={},this.metrics={},this.startTime=(0,p.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof Y?r=i.url:c._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),T(this,r);var o=(""+(i&&i instanceof Y&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.txSize=V(n.body)||0}function A(t,r){var n;this.endTime=(0,p.z)(),this.params||(this.params={}),this.params.status=r?r.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,p.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,e.D.ajax)}function E(t){var r=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o 2&&void 0!==arguments[2])||arguments[2];super(e,t,we.t,r),this.importAggregator()}}new class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,_.ky)(16);c._A?(this.agentIdentifier=t,this.sharedAggregator=new y({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(m),Object.assign(this,(0,a.j)(this.agentIdentifier,e,e.loaderType||"agent")),this.start()):(0,l.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,t.C5)(this.agentIdentifier),init:(0,t.P_)(this.agentIdentifier),loader_config:(0,t.DL)(this.agentIdentifier),runtime:(0,t.OP)(this.agentIdentifier)}}start(){const t="features";try{const r=n(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((t,r)=>e.p[t.featureName]-e.p[r.featureName])),i.forEach((t=>{if(r[t.featureName]||t.featureName===e.D.pageViewEvent){const n=function(t){switch(t){case e.D.ajax:return[e.D.jserrors];case e.D.sessionTrace:return[e.D.ajax,e.D.pageViewEvent];case e.D.sessionReplay:return[e.D.sessionTrace];case e.D.pageViewTiming:return[e.D.pageViewEvent];default:return[]}}(t.featureName);n.every((e=>r[e]))||(0,l.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,D.P)(n),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,T.Qy)(this.agentIdentifier,this.features,t)}catch(e){(0,l.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",e);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,T.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,r.ee?.abort(),delete r.ee?.get(this.agentIdentifier),!1}}}({features:[J,m,S,class extends h{static featureName=oe;constructor(t,r){if(super(t,r,oe,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;const n=this.ee;let i;(0,k.QU)(n),this.eventsEE=(0,k.em)(n),this.eventsEE.on(se,(function(e,t){this.bstStart=(0,p.z)()})),this.eventsEE.on(ae,(function(t,r){(0,s.p)("bst",[t[0],r,this.bstStart,(0,p.z)()],void 0,e.D.sessionTrace,n)})),n.on(ce+ne,(function(e){this.time=(0,p.z)(),this.startPath=location.pathname+location.hash})),n.on(ce+ie,(function(t){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,e.D.sessionTrace,n)}));try{i=new PerformanceObserver((t=>{const r=t.getEntries();(0,s.p)(te,[r],void 0,e.D.sessionTrace,n)})),i.observe({type:re,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},C,xe,B,class extends h{static featureName=de;constructor(e,r){if(super(e,r,de,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;if(!(0,t.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let n,i=0;const o=this.ee.get("tracer"),a=(0,k._L)(this.ee),s=(0,k.Lg)(this.ee),u=(0,k.BV)(this.ee),d=(0,k.Kf)(this.ee),f=this.ee.get("events"),l=(0,k.u5)(this.ee),h=(0,k.QU)(this.ee),g=(0,k.Gm)(this.ee);function m(e,t){h.emit("newURL",[""+window.location,t])}function v(){i++,n=window.location.hash,this[ve]=(0,p.z)()}function b(){i--,window.location.hash!==n&&m(0,!0);var e=(0,p.z)();this[pe]=~~this[pe]+e-this[ve],this[ye]=e}function y(e,t){e.on(t,(function(){this[t]=(0,p.z)()}))}this.ee.on(ve,v),s.on(be,v),a.on(be,v),this.ee.on(ye,b),s.on(ge,b),a.on(ge,b),this.ee.buffer([ve,ye,"xhr-resolved"],this.featureName),f.buffer([ve],this.featureName),u.buffer(["setTimeout"+le,"clearTimeout"+fe,ve],this.featureName),d.buffer([ve,"new-xhr","send-xhr"+fe],this.featureName),l.buffer([me+fe,me+"-done",me+he+fe,me+he+le],this.featureName),h.buffer(["newURL"],this.featureName),g.buffer([ve],this.featureName),s.buffer(["propagate",be,ge,"executor-err","resolve"+fe],this.featureName),o.buffer([ve,"no-"+ve],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),y(l,me+fe),y(l,me+"-done"),y(a,"new-jsonp"),y(a,"jsonp-end"),y(a,"cb-start"),h.on("pushState-end",m),h.on("replaceState-end",m),window.addEventListener("hashchange",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){m(0,i>1)}),(0,O.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})(),window.NRBA=o})(); window.jQuery || document.write(' ') CKEDITOR_BASEPATH='https://f1000research.com/js/vendor/ckeditor/' window.reactTheme = 'research'; window.MathJax = { CommonHTML: { linebreaks: { automatic: true } }, 'HTML-CSS': { linebreaks: { automatic: true } }, SVG: { linebreaks: { automatic: true } }, AuthorInit: function() { MathJax.Hub.Register.MessageHook('End Process', function () { let timeout = false; // holder for timeout id const delay = 250; // delay after event is "complete" to run callback const reflowMath = function() { const dispFormulas = document.querySelectorAll('.disp-formula.panel'); if (!dispFormulas) { return; } for (const dispFormula of dispFormulas) { const child = dispFormula.querySelector('.MathJax_Preview').nextSibling.firstChild; const isMultiline = MathJax.Hub.getAllJax(dispFormula)[0].root.isMultiline; if (dispFormula.offsetWidth < child.offsetWidth || isMultiline) { MathJax.Hub.Queue(['Rerender', MathJax.Hub, dispFormula]); } } }; window.addEventListener('resize', function() { clearTimeout(timeout); // clear the timeout timeout = setTimeout(reflowMath, delay); // start timing for event "completion" }); }); }, }; if (window.location.hash == '#_=_'){ window.location = window.location.href.split('#')[0] } !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function() {n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)} ;if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1641728616063202'); fbq('track', "PixelInitialized", {}); (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:2318163,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); search file_upload Submit your research search menu close search Browse Gateways & Collections How to Publish Submit your Research My Submissions Article Guidelines Article Guidelines (New Versions) Open Data, Software and Code Guidelines Open Data and Accessible Source Materials Guidelines (HSS) Open Data, Software and Code Guidelines (PSE) Prepublication Checks Production Process Posters and Slides Guidelines Document Guidelines Article Processing Charges Peer Review Finding Article Reviewers About How it Works For Reviewers Our Advisors Policies Glossary FAQs For Developers Newsroom Contact My Research Submissions Content and Tracking Alerts My Details Sign In file_upload Submit your research { "@context": "https://schema.org", "@type": "ScholarlyArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://f1000research.com/articles/14-1277" }, "headline": "BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis", "datePublished": "2025-11-18T16:15:25", "dateModified": "2025-11-18T16:15:25", "author": [ { "@type": "Person", "name": "Emmanouela Rantsiou" }, { "@type": "Person", "name": "Franziska Oschmann" }, { "@type": "Person", "name": "Lukas von Ziegler" }, { "@type": "Person", "name": "Thomas Wüst" }, { "@type": "Person", "name": "Andrzej J. Rzepiela" }, { "@type": "Person", "name": "Szymon Stoma" } ], "publisher": { "@type": "Organization", "name": "F1000Research", "logo": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 480, "width": 60 } }, "image": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 1200, "width": 150 }, "description": " Background Segmentation in microscopy images is a critical task in bioimage analysis, with many deep learning models available (e.g., Cellpose, Omnipose, StarDist, SAM-based models). However, researchers often face challenges in choosing the most suitable model for their data, as quantitative metrics do not always reflect the biological relevance of segmentation results. Methods We developed BISCUIT (BioImage Segmentation Comparison Utility and Interactive Tool), an open-source platform that enables users to run multiple state-of-the-art segmentation algorithms on the same images and visually compare their outputs side-by-side. BISCUIT is implemented as an interactive Jupyter Notebook pipeline, leveraging existing segmentation libraries, and can be executed either via a zero-installation cloud environment (Google Colab) or on local high-performance computing resources. Results Using BISCUIT, we demonstrate how visual inspection of segmentation outputs can reveal qualitative differences between algorithms that may be overlooked by abstract performance metrics. For example, in a fluorescence microscopy image dataset, BISCUIT allowed direct comparison of segmentations from Cellpose, Omnipose, and StarDist, highlighting differences in how each algorithm delineated cell boundaries. This visual approach helped identify the model that produced the most biologically plausible segmentation for the dataset. Conclusions BISCUIT provides an intuitive platform for bioimage analysts and life scientists to evaluate and “see what really works” on their data. The platform is openly available and extensible, lowering the barrier for researchers to perform rapid, interactive benchmarking of segmentation models on their own microscopy data. " } { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": "1", "item": { "@id": "https://f1000research.com/", "name": "Home" } }, { "@type": "ListItem", "position": "2", "item": { "@id": "https://f1000research.com/browse/articles", "name": "Browse" } }, { "@type": "ListItem", "position": "3", "item": { "@id": "https://f1000research.com/articles/14-1277/v1", "name": "BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation..." } } ] } Home Browse BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation... ALL Metrics - Views Downloads Get PDF Get XML Cite How to cite this article Rantsiou E, Oschmann F, von Ziegler L et al. BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] . F1000Research 2025, 14 :1277 ( https://doi.org/10.12688/f1000research.171889.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. Close Copy Citation Details Export Export Citation Sciwheel EndNote Ref. Manager Bibtex ProCite Sente EXPORT Select a format first Track Share ▬ ✚ Software Tool Article BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] Emmanouela Rantsiou https://orcid.org/0000-0002-4208-237X 1 , Franziska Oschmann 2 , Lukas von Ziegler 2 , Thomas Wüst 2 , Andrzej J. Rzepiela 3 , Szymon Stoma https://orcid.org/0000-0001-5127-8553 3 Emmanouela Rantsiou https://orcid.org/0000-0002-4208-237X 1 , Franziska Oschmann 2 , [...] Lukas von Ziegler 2 , Thomas Wüst 2 , Andrzej J. Rzepiela 3 , Szymon Stoma https://orcid.org/0000-0001-5127-8553 3 PUBLISHED 18 Nov 2025 Author details Author details 1 Histopixel, Wrocław, Poland 2 SIS, Scientific IT Services, ETH Zurich, Zurich, Switzerland 3 ScopeM, ETH Zurich Scientific Center for Optical and Electron Microscopy, Zurich, Switzerland Emmanouela Rantsiou Roles: Data Curation, Methodology, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Franziska Oschmann Roles: Conceptualization, Methodology, Software Lukas von Ziegler Roles: Conceptualization, Methodology, Software Thomas Wüst Roles: Conceptualization, Funding Acquisition, Methodology, Supervision Andrzej J. Rzepiela Roles: Conceptualization, Data Curation, Formal Analysis, Methodology, Software, Supervision, Writing – Review & Editing Szymon Stoma Roles: Conceptualization, Data Curation, Funding Acquisition, Methodology, Project Administration, Software, Supervision, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing OPEN PEER REVIEW DETAILS REVIEWER STATUS This article is included in the NEUBIAS - the Bioimage Analysts Network gateway. Abstract Background Segmentation in microscopy images is a critical task in bioimage analysis, with many deep learning models available (e.g., Cellpose, Omnipose, StarDist, SAM-based models). However, researchers often face challenges in choosing the most suitable model for their data, as quantitative metrics do not always reflect the biological relevance of segmentation results. Methods We developed BISCUIT (BioImage Segmentation Comparison Utility and Interactive Tool), an open-source platform that enables users to run multiple state-of-the-art segmentation algorithms on the same images and visually compare their outputs side-by-side. BISCUIT is implemented as an interactive Jupyter Notebook pipeline, leveraging existing segmentation libraries, and can be executed either via a zero-installation cloud environment (Google Colab) or on local high-performance computing resources. Results Using BISCUIT, we demonstrate how visual inspection of segmentation outputs can reveal qualitative differences between algorithms that may be overlooked by abstract performance metrics. For example, in a fluorescence microscopy image dataset, BISCUIT allowed direct comparison of segmentations from Cellpose, Omnipose, and StarDist, highlighting differences in how each algorithm delineated cell boundaries. This visual approach helped identify the model that produced the most biologically plausible segmentation for the dataset. Conclusions BISCUIT provides an intuitive platform for bioimage analysts and life scientists to evaluate and “see what really works” on their data. The platform is openly available and extensible, lowering the barrier for researchers to perform rapid, interactive benchmarking of segmentation models on their own microscopy data. READ ALL READ LESS Keywords Bioimage segmentation, Deep learning, Model comparison, Microscopy, Cellpose, StarDist, Visual assessment, Open source tool Corresponding Author(s) Andrzej J. Rzepiela ( [email protected] ) Szymon Stoma ( [email protected] ) Close Corresponding authors: Andrzej J. Rzepiela, Szymon Stoma Competing interests: No competing interests were disclosed. Grant information: The author(s) declared that no grants were involved in supporting this work. Copyright: © 2025 Rantsiou E et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. How to cite: Rantsiou E, Oschmann F, von Ziegler L et al. BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] . F1000Research 2025, 14 :1277 ( https://doi.org/10.12688/f1000research.171889.1 ) First published: 18 Nov 2025, 14 :1277 ( https://doi.org/10.12688/f1000research.171889.1 ) Latest published: 18 Nov 2025, 14 :1277 ( https://doi.org/10.12688/f1000research.171889.1 ) Introduction Accurate segmentation in microscopy images is a foundational step in many biological studies, 1 , 2 enabling quantitative analysis of morphology, distribution, and behavior. In recent years, deep learning methods have achieved state-of-the-art performance in cell segmentation. 3 – 11 Notably, generalist frameworks like Cellpose 12 , 13 and its variants (e.g. Omnipose 14 , 15 for complex bacterial shapes) can segment a wide range of cell types without retraining, and specialized methods like StarDist excel at nuclei segmentation by representing objects as star-convex polygons. 16 – 19 With such a diverse toolkit of algorithms available, a new challenge arises 20 , 21 : how to determine which segmentation method works best for a given dataset or experimental context, in a fast, user-friendly, and easily repeatable manner. Traditionally, researchers compare algorithms using quantitative metrics, such as Intersection-over-Union (IoU) or Dice scores, against a ground-truth segmentation. 3 , 22 – 28 However, this approach is problematic because it requires the availability of ground truth, which is often difficult and time-consuming to obtain in practice. 20 Different tools may expect ground-truth in different ways, adding further complexity. As a result, despite the lack of formal rigor, many researchers often rely on visual inspection of segmentation results to assess quality. In everyday practice, this “looking at the images” approach becomes the decisive step, as it directly reflects biological plausibility. BISCUIT 29 is designed precisely around this idea: instead of requiring ground truth, it enables side-by-side visual comparison of outputs from multiple segmentation methods. Currently, there is a lack of user-friendly tools for directly comparing multiple segmentation algorithms on the same images in a visual, interactive manner. Researchers often need to run each algorithm separately and manually overlay or juxtapose results, which is time-consuming and requires technical scripting skills. To address this gap, we present BISCUIT, the BioImage Segmentation Comparison Utility and Interactive Tool. 29 BISCUIT is an open-source platform for visually comparing state-of-the-art segmentation models on microscopy images. It was designed with bioimage analysts and life scientists in mind, providing an intuitive way to evaluate segmentation quality across different algorithms without deep expertise in each algorithm’s code or parameters. By facilitating side-by-side visualization of segmentation outputs, BISCUIT enables users to leverage their domain knowledge and visual intuition when selecting a model, rather than relying solely on summary statistics. By enabling rapid, visual benchmarking, BISCUIT complements existing evaluation methods and lowers the barrier for scientists to adopt the most suitable segmentation tools. Methods Implementation BISCUIT is implemented as an interactive Jupyter Notebook pipeline written in Python. The core functionality of BISCUIT centers on running multiple segmentation algorithms on the same input images and aggregating their outputs for side-by-side visualization. To achieve this, BISCUIT interfaces with open-source segmentation libraries and pretrained models. In the current version, three state-of-the-art families of cell segmentation models are integrated by default: Cellpose, Omnipose, and StarDist. These models were chosen because they represent widely-used and complementary approaches to segmentation: Cellpose for general-purpose cell and nucleus segmentation, 12 Omnipose as an extension 14 of Cellpose tailored to handle challenging morphologies like elongated or branched cells, 15 and StarDist for precise nuclear segmentation using shape priors. 16 In addition, several models from the BioImage Model Zoo, a community repository of pretrained models for bioimage analysis, 30 have been included, further broadening the range of available approaches. BISCUIT’s modular architecture enables the addition of new models, ensuring the platform can further evolve. Under the hood, BISCUIT applies each selected model to the input dataset and collects the results. Users provide microscopy images (e.g., TIFF or PNG or any other general format supported by the Pillow Python library), which are processed through each model’s Python API with the pre-trained weights. For example, Cellpose and StarDist are invoked via their respective Python libraries to segment images. Most of the computations can leverage GPU acceleration, making the prediction fast (with multiple models and multiple images). After segmentation, BISCUIT focuses on the visualization and comparison of results. Segmentation outputs from each model are typically instance labels, binary masks, or probability maps. BISCUIT renders these outputs in an interactive manner, for example by overlaying colored segmentation masks on the original images, or by showing side-by-side panels (original image next to the segmentation result from each model). The interactive notebook allows users to scroll through image sets. This design was informed by the principle of “visual first” evaluation, prioritizing clear visualization of segmentation boundaries, differences in object counts, and other qualitative features across models. From a technical standpoint, BISCUIT requires a Python 3 environment with several key libraries installed. These include the deep learning frameworks and model-specific dependencies (e.g., TensorFlow or PyTorch for StarDist and Cellpose, respectively, as well as the Cellpose/Omnipose and StarDist packages themselves), and common image processing libraries such as NumPy , OpenCV, and scikit-image. The Jupyter notebook environment also uses matplotlib for plotting and image display. We have provided an environment configuration (e.g., a requirements.txt and Conda environment file in the repository) to ensure that users can install all necessary packages. Because deep learning models are computationally intensive, a machine with a modern GPU and sufficient memory is recommended for local execution of BISCUIT, especially on large collections of images. Operation The operation of BISCUIT is designed to be straightforward for end-users, requiring minimal software installation or configuration. We offer two primary modes of use: 1. Zero-Installation via Browser Users can run BISCUIT directly in their web browser using Google Colab. A one-click link (Run BISCUIT Now!) is provided on the project website, 29 which opens the BISCUIT Google Colab Notebook. In this mode, all necessary dependencies and model weights are automatically fetched within the Colab environment. No local installation is needed, and the user is only required to have a Google account and an internet connection. Once the notebook is open, the BISCUIT interface guides the user through each step. The workflow in the notebook is as follows: • Setup: The notebook will first install required libraries (such as the segmentation model packages) in the Colab session. • Input Data: Example microscopy images are provided within the notebook, allowing users to get started immediately. Users can upload their own images (Colab provides an upload widget). In subsequent steps, users specify the channel to be analyzed and define the region of interest within the images. • Model Selection: The notebook interface allows users to select segmentation models from a searchable table (see Figure 1 ) that provides details such as model family, architecture, version, target, modality, dimensionality, training data, strengths/limitations, expected channels, and documentation links. Users can currently choose from 11 available models. • Running Segmentation: After selection, the user executes the notebook cell to run the segmentation. BISCUIT will process the images with each selected model sequentially and store the results. • Visualization of Results: Once processing is complete, BISCUIT provides an interactive interface to inspect and compare model outputs (see Figure 2 ). For each selected image, the notebook displays a panel that includes the raw image, an overlap map highlighting agreements and disagreements between models, individual instance masks, and outline overlays on the raw data. Models are compared in pairs, and a bar plot summarizes per-model disagreement scores (mean ± SD), offering a quantitative complement to the visual inspection. The mean disagreement score (for a given model) is calculated as the mean of all model-pair segmentation pixel-based differences over all analysed images. Assuming that model prediction inaccuracies are uncorrelated between models, the model with the lowest score yields predictions closest to the ground truth. 31 – 35 Users can switch between models and images using dropdown menus and sliders, enabling fast, side-by-side evaluation of segmentation performance. • Segmentation output: Based on the comparison plots and visual inspection, select the best-performing model from an interactive list, then apply it to segment the entire image stack. Users may also upload additional files for processing, and the resulting segmented images are saved for downstream analysis or storage. 2. Local or HPC Installation Figure 1. Model selection interface in BISCUIT. The searchable table enables users to filter models by various parameters (e.g., target, modality, or model family) and find the segmentation tools best suited to their data. Once selected, models can be applied directly within the notebook environment. Figure 2. Example of pairwise comparison of segmentation models in BISCUIT. For a selected image, the interface displays the raw input, an overlap map indicating agreements and disagreements between two models, individual instance segmentations, and outline overlays on the raw data. A summary bar plot further shows mean semantic disagreement (±SD) across all models, enabling both qualitative and quantitative comparison. This figure compares Model 1 (nuclei, left; lowest mean semantic difference) with Model 2 (worm_omni, right; highest mean semantic difference). For users requiring more control or aiming to run large-scale analyses, BISCUIT can be installed on local machines or HPC clusters. The software is open-source and available in a GitHub repository, which includes documentation for installation. Installing BISCUIT involves setting up the Python environment with the required libraries and downloading the pre-trained weights for the segmentation models (the repository provides instructions to fetch these assets). The minimal system requirements for running BISCUIT locally include a Python 3.8+ environment, approximately 4–8 GB of RAM (depending on image sizes), and CUDA-compatible GPU with at least 16 GB of GPU memory to accelerate model inference. The package dependencies include the main deep learning frameworks (TensorFlow 2.x for StarDist and PyTorch for Cellpose/Omnipose). When running locally, users can either launch the Jupyter Notebook interface or integrate BISCUIT’s components into their own pipelines. For instance, an imaging core facility might deploy BISCUIT on a server and run the notebook for various user projects, possibly connecting to a web interface for uploading images. The workflow overview remains similar in the local scenario: load images, run the selected models, and then review the outputs. On an HPC cluster, one might use JupyterLab to provide the same notebook experience to users. A key feature of BISCUIT is its scalability, following a ‘prototype then scale’ approach. Users can rapidly test models on a few images in the browser and then move to an HPC deployment to process hundreds or thousands. Because the same model versions are used across environments, results remain consistent, enabling researchers to progress seamlessly from exploration to full dataset analysis without switching tools. Conclusions/Discussion We have introduced BISCUIT, an open-source interactive platform to compare and evaluate bioimage segmentation models visually, and illustrated how it can assist researchers in selecting the most appropriate segmentation model for their bioimage analysis needs. In doing so, we address a critical gap in the bioimage analysis workflow: the ability to benchmark segmentation algorithms based on qualitative output characteristics and biological plausibility, not only numerical performance metrics. Side-by-side visualization of segmentation results can reveal strengths and weaknesses of algorithms that aggregate metrics might hide. BISCUIT puts the expert “in the loop” by enabling direct visual inspection, thus empowering users to apply their biological knowledge when evaluating models. This approach aligns with the way many image scientists inherently validate results - by looking at overlays and pictures - and BISCUIT formalizes and streamlines that process. Benefits and Unique Features: The advantages of BISCUIT can be summarized in three main points, echoing the design principles outlined on the project’s website: Zero Setup, Scalable by Design, and Visual-First. Zero Setup refers to the ease of use via a web browser with no installation, which lowers the entry barrier for non-technical users. Scalable by Design means that BISCUIT can be run on modest datasets in the cloud or scaled to large datasets on HPC, providing a continuum from quick testing to large-scale application Visual-First emphasizes the focus on qualitative, image-level assessment, which is the core of what BISCUIT offers. To our knowledge, BISCUIT is one of the first tools specifically catering to interactive model output comparison in the context of bioimage segmentation. While some existing software (e.g., image analysis platforms like Ilastik, 36 Napari, 37 or Fiji 38 ), allow running multiple algorithms or plugins on images, they often do not provide an integrated side-by-side comparison workflow or require substantial user setup. BISCUIT’s contribution is in unifying multiple segmentation approaches under one roof. Limitations: Despite its utility, BISCUIT has some limitations that we aim to address in future work. First, the platform currently supports a defined set of models (11 in total). If users need to compare other algorithms (for example, Ilastik classical segmentation, or proprietary software outputs), they may need to invest some effort to integrate those into the BISCUIT framework. Second, complementary scores, on top of the mean model disagreement, could be implemented. For instance, if ground truth is available, showing the metric scores for each model, or if not, perhaps asking the user to flag preferred segmentation in images and tallying a “preference count”. The development of BISCUIT also opens up community-driven possibilities. For example, the platform can be extended to compare other classes of image-processing models. That includes object detection models, denoising models, or image classification models. In each class, numerous models are developed, and visual inspection can bring similar benefits as in the case of segmentation. Another exciting direction is using BISCUIT in educational settings : for teaching microscopy image analysis, instructors could use BISCUIT to demonstrate how different algorithms behave on the same data, helping students visually grasp concepts like under- vs over-segmentation, false positives vs false negatives, etc. In conclusion, BISCUIT addresses an important need in the era of diverse AI-driven image analysis methods: it helps bridge the gap between algorithm developers and end-users by providing a simple yet powerful means for straightforward comparison of segmentation approaches. We believe this approach will contribute to more reliable and reproducible image analyses, as the human expert remains engaged in the validation loop rather than deferring entirely to automated metrics. As bioimage informatics advances, tools like BISCUIT will be essential for helping researchers leverage computational methods to extract accurate biological insights. Software availability • Software available from: BISCUIT project website – https://biscuit.let-your-data-speak.com Source code available from: GitHub – https://github.com/ScopeM/biscuit • License: MIT License (open-source software). Declaration of AI-assisted writing During the preparation of this manuscript, the authors used ChatGPT (GPT-5, OpenAI, 2025) to assist in improving phrasing, grammar, and clarity, as well as for help with summarizing/shortening and rewording text sections. All scientific content, interpretations, and conclusions were written, reviewed, and approved by the authors, who take full responsibility for the final manuscript. Data availability Underlying data: No new primary datasets were generated for this Software Tool article. All example images used to demonstrate BISCUIT’s functionality are publicly available and redistributed within the BISCUIT repository. The example image subsets included are as follows: • TEM connectomics datasets: Two 256 × 256 cutouts were derived from 1,024 × 1,024 original images available at https://sites.google.com/view/connectomics . The samples correspond to image mask1079 from the Kasthuri++ dataset (folder Test_In ) and image mask0114 from the Lucchi++ dataset (folder Test_In ). • DeepBacs dataset (E. coli brightfield images): Two 256 × 256 cutouts were derived from 1,024 × 1,024 original test images in the DeepBacs training dataset at https://zenodo.org/records/5550935 . The samples correspond to images pos2_fr1 and pos7_fr80 from the test/brightfield folder. • DeepBacs dataset (Bacillus subtilis fluorescence images): Two 256 × 256 cutouts were derived from 1,024 × 1,024 original test images in the DeepBacs training dataset at https://zenodo.org/records/5639253 . The samples correspond to images test_2 and test_9 from the test/instance_segmentation_GT folder. • Data Science Bowl dataset: Four 256 × 256 cutouts were derived from fluorescent nuclei images from the Data Science Bowl 2018 Kaggle competition https://www.kaggle.com/competitions/data-science-bowl-2018 . Acknowledgments The authors thank all members of the ETH Zurich Scientific IT Services (SIS) teams who contributed to the development and testing of BISCUIT. Community beta-testers are acknowledged for their insightful suggestions, which helped improve BISCUIT’s features and documentation. References 1. Carpenter AE, Jones TR, Lamprecht MR, et al. : CellProfiler: image analysis software for identifying and quantifying cell phenotypes. Genome Biol. 2006; 7 : R100. PubMed Abstract | Publisher Full Text | Free Full Text 2. Meijering E: A bird’s-eye view of deep learning in bioimage analysis. Comput. Struct. Biotechnol. J. 2020; 18 : 2312–2325. PubMed Abstract | Publisher Full Text | Free Full Text 3. Ronneberger O, Fischer P, Brox T: U-Net: Convolutional Networks for Biomedical Image Segmentation. Lecture Notes in Computer Science. Cham: Springer International Publishing; 2015; pp. 234–241. Publisher Full Text 4. Moen E, Bannon D, Kudo T, et al. : Deep learning for cellular image analysis. Nat. Methods. 2019; 16 : 1233–1246. PubMed Abstract | Publisher Full Text | Free Full Text 5. Xu J, Zhou D, Deng D, et al. : Deep learning in cell image analysis. Intell Comput. 2022; 2022 : 1–15. Publisher Full Text 6. Woodhams B, Uhlmann V: From images to understanding: Advances in deep learning for cellular dynamics analysis. Curr. Opin. Cell Biol. 2025; 97 : 102585. Publisher Full Text 7. Archit A, Freckmann L, Nair S, et al. : Segment Anything for microscopy. Nat. Methods. 2025; 22 : 579–591. PubMed Abstract | Publisher Full Text | Free Full Text 8. Cao J, Wenzel J, Zhang S, et al. : Rethinking deep learning in bioimaging through a data centric lens. Npj Imaging. 2025; 3 : 29. PubMed Abstract | Publisher Full Text | Free Full Text 9. Virdi AJ, Joglekar AP: Cell-APP: A generalizable method for cell annotation and cell-segmentation model training. Mol. Biol. Cell. 2025; mbcE25020076. PubMed Abstract | Publisher Full Text 10. Achard C, Kousi T, Frey M, et al. : CellSeg3D, Self-supervised 3D cell segmentation for fluorescence microscopy. elife. 2025; 13 : 13. Publisher Full Text 11. Pang M, Roy TK, Wu X, et al. : CelloType: a unified model for segmentation and classification of tissue images. Nat. Methods. 2025; 22 : 348–357. PubMed Abstract | Publisher Full Text | Free Full Text 12. Stringer C, Wang T, Michaelos M, et al. : Cellpose: a generalist algorithm for cellular segmentation. Nat. Methods. 2021; 18 : 100–106. PubMed Abstract | Publisher Full Text 13. Pachitariu M, Rariden M, Stringer C: Cellpose-SAM: superhuman generalization for cellular segmentation. bioRxiv. 2025. Publisher Full Text 14. Lab B: TrackMate-Omnipose. ImageJ Wiki. Reference Source 15. Cutler KJ, Stringer C, Lo TW, et al. : Omnipose: a high-precision morphology-independent solution for bacterial cell segmentation. Nat. Methods. 2022; 19 : 1438–1448. PubMed Abstract | Publisher Full Text | Free Full Text 16. stardist: StarDist - Object Detection with Star-convex Shapes. Github. Reference Source 17. Schmidt U, Weigert M, Broaddus C, et al. : Cell detection with star-convex polygons. arXiv [cs.CV]. 2018. Reference Source 18. Weigert M, Schmidt U, Haase R, et al. : Star-convex polyhedra for 3D object detection and segmentation in microscopy. 2020 IEEE Winter Conference on Applications of Computer Vision (WACV). IEEE; 2020. Publisher Full Text 19. Weigert M, Schmidt U: Nuclei instance segmentation and classification in histopathology images with StarDist. arXiv [cs.CV]. 2022. Reference Source 20. Caicedo JC, Goodman A, Karhohs KW, et al. : Nucleus segmentation across imaging experiments: the 2018 Data Science Bowl. Nat. Methods. 2019; 16 : 1247–1253. PubMed Abstract | Publisher Full Text | Free Full Text 21. Ulman V, Maška M, Magnusson KEG, et al. : An objective comparison of cell-tracking algorithms. Nat. Methods. 2017; 14 : 1141–1152. PubMed Abstract | Publisher Full Text | Free Full Text 22. Dice LR: Measures of the amount of ecologic association between species. Ecology. 1945; 26 : 297–302. Publisher Full Text 23. Caicedo JC, Roth J, Goodman A, et al. : Evaluation of deep learning strategies for nucleus segmentation in fluorescence images. Cytometry A. 2019; 95 : 952–965. PubMed Abstract | Publisher Full Text | Free Full Text 24. Hirling D, Tasnadi E, Caicedo J, et al. : Segmentation metric misinterpretations in bioimage analysis. Nat. Methods. 2024; 21 : 213–216. PubMed Abstract | Publisher Full Text | Free Full Text 25. Maier-Hein L, Eisenmann M, Reinke A, et al. : Author Correction: Why rankings of biomedical image analysis competitions should be interpreted with care. Nat. Commun. 2019; 10 : 588. PubMed Abstract | Publisher Full Text | Free Full Text 26. Müller D, Soto-Rey I, Kramer F: Towards a guideline for evaluation metrics in medical image segmentation. BMC. Res. Notes. 2022; 15 : 210. PubMed Abstract | Publisher Full Text | Free Full Text 27. Maier-Hein L, Reinke A, Godau P, et al. : Metrics reloaded: recommendations for image analysis validation. Nat. Methods. 2024; 21 : 195–212. PubMed Abstract | Publisher Full Text | Free Full Text 28. Karmakar R, Nørrelykke SF: SoftPQ: Robust instance segmentation evaluation via soft matching and tunable thresholds. arXiv [cs.CV]. 2025. Reference Source 29. BISCUIT: BISCUIT. Reference Source 30. Ouyang W, Beuttenmueller F, Gómez-de-Mariscal E, et al. : BioImage Model Zoo: A community-driven resource for accessible deep learning in BioImage analysis. bioRxiv. 2022. Publisher Full Text 31. Sims Z, Strgar L, Thirumalaisamy D, et al. : SEG: Segmentation Evaluation in absence of Ground truth labels. bioRxivorg. 2023. Publisher Full Text 32. Warfield SK, Zou KH, Wells WM: Simultaneous truth and performance level estimation (STAPLE): an algorithm for the validation of image segmentation. IEEE Trans. Med. Imaging. 2004; 23 : 903–921. PubMed Abstract | Publisher Full Text | Free Full Text 33. Kohlberger T, Singh V, Alvino C, et al. : Evaluating segmentation error without ground truth. Med. Image Comput. Comput. Assist Interv. 2012; 7510 : 528–536. Publisher Full Text 34. Faska Z, Khrissi L, Haddouch K, et al. : A robust and consistent stack generalized ensemble-learning framework for image segmentation. J. Eng. Appl. Sci. 2023; 70 : 70. Publisher Full Text 35. Lehtinen J, Munkberg J, Hasselgren J, et al. : Noise2Noise: Learning image restoration without clean data. arXiv [cs.CV]. 2018. Publisher Full Text 36. Berg S, Kutra D, Kroeger T, et al. : Ilastik: Interactive machine learning for (bio)image analysis. Nat. Methods. 2019; 16 : 1226–1232. PubMed Abstract | Publisher Full Text 37. napari: a fast, interactive viewer for multi-dimensional images in Python. yesnapari. . http 38. Schindelin J, Arganda-Carreras I, Frise E, et al. : Fiji: an open-source platform for biological-image analysis. Nat. Methods. 2012; 9 : 676–682. PubMed Abstract | Publisher Full Text | Free Full Text Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 18 Nov 2025 ADD YOUR COMMENT Comment Author details Author details 1 Histopixel, Wrocław, Poland 2 SIS, Scientific IT Services, ETH Zurich, Zurich, Switzerland 3 ScopeM, ETH Zurich Scientific Center for Optical and Electron Microscopy, Zurich, Switzerland Emmanouela Rantsiou Roles: Data Curation, Methodology, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Franziska Oschmann Roles: Conceptualization, Methodology, Software Lukas von Ziegler Roles: Conceptualization, Methodology, Software Thomas Wüst Roles: Conceptualization, Funding Acquisition, Methodology, Supervision Andrzej J. Rzepiela Roles: Conceptualization, Data Curation, Formal Analysis, Methodology, Software, Supervision, Writing – Review & Editing Szymon Stoma Roles: Conceptualization, Data Curation, Funding Acquisition, Methodology, Project Administration, Software, Supervision, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Competing interests No competing interests were disclosed. Grant information The author(s) declared that no grants were involved in supporting this work. Article Versions (1) version 1 Published: 18 Nov 2025, 14:1277 https://doi.org/10.12688/f1000research.171889.1 Copyright © 2025 Rantsiou E et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Download Export To Sciwheel Bibtex EndNote ProCite Ref. Manager (RIS) Sente metrics Views Downloads F1000Research - - PubMed Central info_outline Data from PMC are received and updated monthly. - - Citations open_in_new 0 open_in_new 0 open_in_new SEE MORE DETAILS CITE how to cite this article Rantsiou E, Oschmann F, von Ziegler L et al. BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] . F1000Research 2025, 14 :1277 ( https://doi.org/10.12688/f1000research.171889.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS track receive updates on this article Track an article to receive email alerts on any updates to this article. TRACK THIS ARTICLE Share Open Peer Review Current Reviewer Status: ? Key to Reviewer Statuses VIEW HIDE Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Version 1 VERSION 1 PUBLISHED 18 Nov 2025 Views 0 Cite How to cite this report: Bankhead P and Nicolás-Sáenz L. Reviewer Report For: BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] . F1000Research 2025, 14 :1277 ( https://doi.org/10.5256/f1000research.189551.r434689 ) The direct URL for this report is: https://f1000research.com/articles/14-1277/v1#referee-response-434689 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 05 Jan 2026 Peter Bankhead , Institute of Genetics and Cancer, University of Edinburgh, Edinburgh, Scotland, UK Laura Nicolás-Sáenz , Institute of Genetics and Cancer, University of Edinburgh, Edinburgh, Scotland, UK Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.189551.r434689 BISCUIT is a tool to streamline the comparison of different segmentation methods for bioimage analysis. In its current form, BISCUIT focuses primarily on comparing several popular deep learning methods and models for cell segmentation. Choosing a cell ... Continue reading READ ALL BISCUIT is a tool to streamline the comparison of different segmentation methods for bioimage analysis. In its current form, BISCUIT focuses primarily on comparing several popular deep learning methods and models for cell segmentation. Choosing a cell segmentation method is an extremely common challenge in bioimage analysis. Visual inspection is inevitably required at some stage, but it can be time-consuming to set up environments and test segmentations for new image sets. Tools that enable more methods to be compared more quickly could be very useful. BISCUIT is very well documented through the landing page, the main Jupyter notebook, and within the GitHub repository. Paper feedback - In the methods subsection of the abstract, the last sentence verges on too technical, and may discourage rather than encourage use. --- If the purpose is to express that BISCUIT is easy to run in different ways, we think ‘zero-installation cloud environment’ and ‘local high-performance computing resources’ would not convey that to potential users who are not already very comfortable with these terms. - While we agree that looking at the images is very important, the limitations/subjectivity of this should be more clearly acknowledged. In practice, are there any steps beyond visual inspection that you would expect / recommend to support making a final choice? --- Complementary methods are alluded to (e.g., ‘relying solely on summary statistics’) but I am not certain what is meant. Are these statistics generated from some manual annotations of the dataset, or taken from papers describing the methods/models? --- One value of BISCUIT might be in triaging: a quick visual inspection may identify models that are definitely not worth exploring, so that further attention is given to a few models that are promising. - The images BISCUIT is designed to support should be clearly described. --- For example, does the visualization scale to images with a high dynamic range and/or many channels? Effective visualization often involves toggling channels and/or modifying lookup tables. It is not clear to me how BISCUIT could facilitate this. If it is a limitation, this should be mentioned. - The paper remarks that BISCUIT is interactive/provides an interactive interface. However, this is not shown and it is not clear what ‘interactive’ means in this context (e.g., it seems to be related to interactively selecting images/plots, not interactively panning/zooming within images). - Regarding the use of the ‘mean disagreement score’, it is stated ‘Assuming that model prediction inaccuracies are uncorrelated between models, the model with the lowest score yields predictions closest to the ground truth’. --- Is that assumption likely to be true – or is there any way to assess whether it is true? Intuitively, I would not necessarily expect it to be true whenever comparisons are made between overlapping methods, trained on overlapping training sets. Therefore, I think this requires a little more discussion. --- Additional measurements could be easily provided for comparison, e.g. number of objects may help identify cases of over or under-segmentation. Software feedback - What is the version of CellPose being used? It looks like the code is taken from the main branch of the CellPose repo, but I presume this is subject to change. - I tested the notebook only through colab with the provided example images. While it is possible to upload different images, I think there should be a statement regarding permission/privacy implications (if there are any). - I find the way results are displayed (‘sj.compare_and_plot_segmentations()’) slightly awkward. --- Results are shown with ‘Model 1’ and ‘Model 2’ – not the names of the models. When I first ran it, I used two models but by default the same model was selected for 1 and 2. --- The image is adjusted with an ‘Image ID’ slider, rather than allowing me to select an image by name. A slider would be justifiable if it moves smoothly and the image name is still displayed, but for me (macOS, Chrome) the plot size jumps between lower and higher resolution. When I move the slider, and I do not see an image name. - The model/method table is very useful; I think it should also provide citation information for the methods, or a link to where this can be found. - Further plans are unclear. The paper suggests plans to increase supported models, while https://biscuit.let-your-data-speak.com states ‘BISCUIT does not aim to provide ongoing model maintenance or continuous expansion of supported segmentation methods’ , although also that ‘External contributions are welcome’ . Do the authors plan to maintain the software and integrate more algorithms, or is expansion intended primary by external contributors? If the latter, consider adding contributing guidelines to the repo. License & reuse - BISCUIT is described as ‘open-source’, but the main notebook is licensed under ‘CC BY-NC 4.0’ – different from the MIT license on the GitHub repo. Why this discrepancy? The non-commercial limitation is incompatible with the OSI’s definition of open source. This makes the actual terms of use confusing. If a key component is non-commercial, BISCUIT should not be described as open source. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Yes Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Yes Competing Interests: No competing interests were disclosed. Reviewer Expertise: bioimage analysis, open-source software, digital pathology We confirm that we have read this submission and believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however we have significant reservations, as outlined above. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Bankhead P and Nicolás-Sáenz L. Reviewer Report For: BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] . F1000Research 2025, 14 :1277 ( https://doi.org/10.5256/f1000research.189551.r434689 ) The direct URL for this report is: https://f1000research.com/articles/14-1277/v1#referee-response-434689 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Respond or Comment COMMENT ON THIS REPORT Views 0 Cite How to cite this report: Pape CP. Reviewer Report For: BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] . F1000Research 2025, 14 :1277 ( https://doi.org/10.5256/f1000research.189551.r434691 ) The direct URL for this report is: https://f1000research.com/articles/14-1277/v1#referee-response-434691 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 24 Nov 2025 Constantin Pape Pape , University of Göttingen, Göttingen, Germany Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.189551.r434691 BISCUIT is a tool for comparing the instance segmentation results from different tools for microscopy data. It's main feature is a side-by-side comparison of different method's outputs and a pre-configured google colab notebook to run the tool. ... Continue reading READ ALL BISCUIT is a tool for comparing the instance segmentation results from different tools for microscopy data. It's main feature is a side-by-side comparison of different method's outputs and a pre-configured google colab notebook to run the tool. The functionality offered by the tool is relatively limited and simple, but could be useful to users without extensive experience in coding or a good overview of segmentation methodology. #Feedback - Given the availability of other segmentation tools not supported by the tool, including quite popular ones like microSAM, how do you plan to extend the tool / enable external contributions to extend it? - Which CellPose versions are supported? - Do you enable selecting parameters of the segmentation methods? If yes, is there explanations for users on the influence of the parameters? - "The mean disagreement score (for a given model) is calculated as the mean of all model-pair segmentation pixel-based differences over all analysed images." Reporting object-level difference (e.g. based on IoU) rather than pixel-level difference would likely be more meaningful and more interpretable. I tried running the tool in google colab, but it failed for me as the cell for loading the data (The first cell in "2. Upload of Images") did not terminate. (I let it run for > 20 minutes but nothing happened). Please improve the reliability of the notebook. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Yes Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Yes Competing Interests: No competing interests were disclosed. Reviewer Expertise: Deep Learning, Microscopy Image Analysis I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Pape CP. Reviewer Report For: BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] . F1000Research 2025, 14 :1277 ( https://doi.org/10.5256/f1000research.189551.r434691 ) The direct URL for this report is: https://f1000research.com/articles/14-1277/v1#referee-response-434691 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Respond or Comment COMMENT ON THIS REPORT Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 18 Nov 2025 ADD YOUR COMMENT Comment keyboard_arrow_left keyboard_arrow_right Open Peer Review Reviewer Status info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Reviewer Reports Invited Reviewers 1 2 Version 1 18 Nov 25 read read Constantin Pape Pape , University of Göttingen, Göttingen, Germany Peter Bankhead , University of Edinburgh, Edinburgh, UK Laura Nicolás-Sáenz , University of Edinburgh, Edinburgh, UK Comments on this article All Comments (0) Add a comment Sign up for content alerts Sign Up You are now signed up to receive this alert Browse by related subjects keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2026 Bankhead P et al. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. 05 Jan 2026 | for Version 1 Peter Bankhead , Institute of Genetics and Cancer, University of Edinburgh, Edinburgh, Scotland, UK Laura Nicolás-Sáenz , Institute of Genetics and Cancer, University of Edinburgh, Edinburgh, Scotland, UK 0 Views copyright © 2026 Bankhead P et al. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. format_quote Cite this report speaker_notes Responses (0) Approved With Reservations info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions BISCUIT is a tool to streamline the comparison of different segmentation methods for bioimage analysis. In its current form, BISCUIT focuses primarily on comparing several popular deep learning methods and models for cell segmentation. Choosing a cell segmentation method is an extremely common challenge in bioimage analysis. Visual inspection is inevitably required at some stage, but it can be time-consuming to set up environments and test segmentations for new image sets. Tools that enable more methods to be compared more quickly could be very useful. BISCUIT is very well documented through the landing page, the main Jupyter notebook, and within the GitHub repository. Paper feedback - In the methods subsection of the abstract, the last sentence verges on too technical, and may discourage rather than encourage use. --- If the purpose is to express that BISCUIT is easy to run in different ways, we think ‘zero-installation cloud environment’ and ‘local high-performance computing resources’ would not convey that to potential users who are not already very comfortable with these terms. - While we agree that looking at the images is very important, the limitations/subjectivity of this should be more clearly acknowledged. In practice, are there any steps beyond visual inspection that you would expect / recommend to support making a final choice? --- Complementary methods are alluded to (e.g., ‘relying solely on summary statistics’) but I am not certain what is meant. Are these statistics generated from some manual annotations of the dataset, or taken from papers describing the methods/models? --- One value of BISCUIT might be in triaging: a quick visual inspection may identify models that are definitely not worth exploring, so that further attention is given to a few models that are promising. - The images BISCUIT is designed to support should be clearly described. --- For example, does the visualization scale to images with a high dynamic range and/or many channels? Effective visualization often involves toggling channels and/or modifying lookup tables. It is not clear to me how BISCUIT could facilitate this. If it is a limitation, this should be mentioned. - The paper remarks that BISCUIT is interactive/provides an interactive interface. However, this is not shown and it is not clear what ‘interactive’ means in this context (e.g., it seems to be related to interactively selecting images/plots, not interactively panning/zooming within images). - Regarding the use of the ‘mean disagreement score’, it is stated ‘Assuming that model prediction inaccuracies are uncorrelated between models, the model with the lowest score yields predictions closest to the ground truth’. --- Is that assumption likely to be true – or is there any way to assess whether it is true? Intuitively, I would not necessarily expect it to be true whenever comparisons are made between overlapping methods, trained on overlapping training sets. Therefore, I think this requires a little more discussion. --- Additional measurements could be easily provided for comparison, e.g. number of objects may help identify cases of over or under-segmentation. Software feedback - What is the version of CellPose being used? It looks like the code is taken from the main branch of the CellPose repo, but I presume this is subject to change. - I tested the notebook only through colab with the provided example images. While it is possible to upload different images, I think there should be a statement regarding permission/privacy implications (if there are any). - I find the way results are displayed (‘sj.compare_and_plot_segmentations()’) slightly awkward. --- Results are shown with ‘Model 1’ and ‘Model 2’ – not the names of the models. When I first ran it, I used two models but by default the same model was selected for 1 and 2. --- The image is adjusted with an ‘Image ID’ slider, rather than allowing me to select an image by name. A slider would be justifiable if it moves smoothly and the image name is still displayed, but for me (macOS, Chrome) the plot size jumps between lower and higher resolution. When I move the slider, and I do not see an image name. - The model/method table is very useful; I think it should also provide citation information for the methods, or a link to where this can be found. - Further plans are unclear. The paper suggests plans to increase supported models, while https://biscuit.let-your-data-speak.com states ‘BISCUIT does not aim to provide ongoing model maintenance or continuous expansion of supported segmentation methods’ , although also that ‘External contributions are welcome’ . Do the authors plan to maintain the software and integrate more algorithms, or is expansion intended primary by external contributors? If the latter, consider adding contributing guidelines to the repo. License & reuse - BISCUIT is described as ‘open-source’, but the main notebook is licensed under ‘CC BY-NC 4.0’ – different from the MIT license on the GitHub repo. Why this discrepancy? The non-commercial limitation is incompatible with the OSI’s definition of open source. This makes the actual terms of use confusing. If a key component is non-commercial, BISCUIT should not be described as open source. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Yes Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Yes Competing Interests No competing interests were disclosed. Reviewer Expertise bioimage analysis, open-source software, digital pathology We confirm that we have read this submission and believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however we have significant reservations, as outlined above. reply Respond to this report Responses (0) Bankhead P and Nicolás-Sáenz L. Peer Review Report For: BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] . F1000Research 2025, 14 :1277 ( https://doi.org/10.5256/f1000research.189551.r434689) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://f1000research.com/articles/14-1277/v1#referee-response-434689 keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2025 Pape C. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. 24 Nov 2025 | for Version 1 Constantin Pape Pape , University of Göttingen, Göttingen, Germany 0 Views copyright © 2025 Pape C. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. format_quote Cite this report speaker_notes Responses (0) Approved With Reservations info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions BISCUIT is a tool for comparing the instance segmentation results from different tools for microscopy data. It's main feature is a side-by-side comparison of different method's outputs and a pre-configured google colab notebook to run the tool. The functionality offered by the tool is relatively limited and simple, but could be useful to users without extensive experience in coding or a good overview of segmentation methodology. #Feedback - Given the availability of other segmentation tools not supported by the tool, including quite popular ones like microSAM, how do you plan to extend the tool / enable external contributions to extend it? - Which CellPose versions are supported? - Do you enable selecting parameters of the segmentation methods? If yes, is there explanations for users on the influence of the parameters? - "The mean disagreement score (for a given model) is calculated as the mean of all model-pair segmentation pixel-based differences over all analysed images." Reporting object-level difference (e.g. based on IoU) rather than pixel-level difference would likely be more meaningful and more interpretable. I tried running the tool in google colab, but it failed for me as the cell for loading the data (The first cell in "2. Upload of Images") did not terminate. (I let it run for > 20 minutes but nothing happened). Please improve the reliability of the notebook. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Yes Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Yes Competing Interests No competing interests were disclosed. Reviewer Expertise Deep Learning, Microscopy Image Analysis I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. reply Respond to this report Responses (0) Pape CP. Peer Review Report For: BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation Models in Bioimage Analysis [version 1; peer review: 2 approved with reservations] . F1000Research 2025, 14 :1277 ( https://doi.org/10.5256/f1000research.189551.r434691) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://f1000research.com/articles/14-1277/v1#referee-response-434691 Alongside their report, reviewers assign a status to the article: Approved - the paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations - A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved - fundamental flaws in the paper seriously undermine the findings and conclusions Adjust parameters to alter display View on desktop for interactive features Includes Interactive Elements View on desktop for interactive features Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Stay Updated Sign up for content alerts and receive a weekly or monthly email with all newly published articles Register with F1000Research Already registered? Sign in Not now, thanks close PLEASE NOTE If you are an AUTHOR of this article, please check that you signed in with the account associated with this article otherwise we cannot automatically identify your role as an author and your comment will be labelled as a “User Comment”. If you are a REVIEWER of this article, please check that you have signed in with the account associated with this article and then go to your account to submit your report, please do not post your review here. If you do not have access to your original account, please contact us . All commenters must hold a formal affiliation as per our Policies . The information that you give us will be displayed next to your comment. User comments must be in English, comprehensible and relevant to the article under discussion. We reserve the right to remove any comments that we consider to be inappropriate, offensive or otherwise in breach of the User Comment Terms and Conditions . Commenters must not use a comment for personal attacks. When criticisms of the article are based on unpublished data, the data should be made available. I accept the User Comment Terms and Conditions Please confirm that you accept the User Comment Terms and Conditions. Affiliation ✕ refresh Please enter your institution. Note: To add your institution or organisation, start typing the name and then select the correct name from the list. Where applicable, the name will appear in both the original language and in English. Do not paste in the name. If the name does not appear in the drop-down list, we will display the information you have entered. ✕ refresh Country/Region * USA UK Canada China France Germany Afghanistan Aland Islands Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia and Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory British Virgin Islands Brunei Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Cook Islands Costa Rica Cote d'Ivoire Croatia Cuba Cyprus Czech Republic Democratic Republic of the Congo Denmark Djibouti Dominica Dominican Republic Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Ethiopia Falkland Islands Faroe Islands Federated States of Micronesia Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Heard Island and Mcdonald Islands Holy See (Vatican City State) Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Kosovo (Serbia and Montenegro) Kuwait Kyrgyzstan Lao People's Democratic Republic Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macao Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Minor Outlying Islands of the United States Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands Antilles New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island North Korea North Macedonia Northern Mariana Islands Norway Oman Pakistan Palau Palestinian Territory Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Reunion Romania Russian Federation Rwanda Saint Helena Saint Kitts and Nevis Saint Lucia Saint Pierre and Miquelon Saint Vincent and the Grenadines Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Slovakia Slovenia Solomon Islands Somalia South Africa South Georgia and the South Sandwich Is South Korea South Sudan Spain Sri Lanka Sudan Suriname Svalbard and Jan Mayen Swaziland Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand The Gambia The Netherlands Timor-Leste Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu UK USA Uganda Ukraine United Arab Emirates United States Virgin Islands Uruguay Uzbekistan Vanuatu Venezuela Vietnam Wallis and Futuna West Bank and Gaza Strip Western Sahara Yemen Zambia Zimbabwe Please select your country/region. You must enter a comment. Competing Interests Please disclose any competing interests that might be construed to influence your judgment of the article's or peer review report's validity or importance. Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Please state your competing interests The comment has been saved. An error has occurred. Please try again. Cancel Post var lTitle = "BISCUIT: An Open-Source Platform for Visual...".replace("'", ''); var linkedInUrl = "http://www.linkedin.com/shareArticle?url=https://f1000research.com/articles/14-1277/v1" + "&title=" + encodeURIComponent(lTitle) + "&summary=" + encodeURIComponent('Read the article by '); var deliciousUrl = "https://del.icio.us/post?url=https://f1000research.com/articles/14-1277/v1&title=" + encodeURIComponent(lTitle); var redditUrl = "http://reddit.com/submit?url=https://f1000research.com/articles/14-1277/v1" + "&title=" + encodeURIComponent(lTitle); linkedInUrl += encodeURIComponent('Rantsiou E et al.'); var offsetTop = /chrome/i.test( navigator.userAgent ) ? 4 : -10; var addthis_config = { ui_offset_top: offsetTop, services_compact : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_expanded : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_custom : [ { name: "LinkedIn", url: linkedInUrl, icon:"/img/icon/at_linkedin.svg" }, { name: "Mendeley", url: "http://www.mendeley.com/import/?url=https://f1000research.com/articles/14-1277/v1/mendeley", icon:"/img/icon/at_mendeley.svg" }, { name: "Reddit", url: redditUrl, icon:"/img/icon/at_reddit.svg" }, ] }; var addthis_share = { url: "https://f1000research.com/articles/14-1277", templates : { twitter : "BISCUIT: An Open-Source Platform for Visual Comparison of Segmentation.... Rantsiou E et al., published by " + "@F1000Research" + ", https://f1000research.com/articles/14-1277/v1" } }; if (typeof(addthis) != "undefined"){ addthis.addEventListener('addthis.ready', checkCount); addthis.addEventListener('addthis.menu.share', checkCount); } $(".f1r-shares-twitter").attr("href", "https://twitter.com/intent/tweet?text=" + addthis_share.templates.twitter); $(".f1r-shares-facebook").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + addthis_share.url); $(".f1r-shares-linkedin").attr("href", addthis_config.services_custom[0].url); $(".f1r-shares-reddit").attr("href", addthis_config.services_custom[2].url); $(".f1r-shares-mendelay").attr("href", addthis_config.services_custom[1].url); function checkCount(){ setTimeout(function(){ $(".addthis_button_expanded").each(function(){ var count = $(this).text(); if (count !== "" && count != "0") $(this).removeClass("is-hidden"); else $(this).addClass("is-hidden"); }); }, 1000); } close How to cite this report {{reportCitation}} Cancel Copy Citation Details $(function(){R.ui.buttonDropdowns('.dropdown-for-downloads');}); $(function(){R.ui.toolbarDropdowns('.toolbar-dropdown-for-downloads');}); $.get("/articles/acj/171889/189551") new F1000.Clipboard(); new F1000.ThesaurusTermsDisplay("articles", "article", "189551"); $(document).ready(function() { $( "#frame1" ).on('load', function() { var mydiv = $(this).contents().find("div"); var h = mydiv.height(); console.log(h) }); var tooltipLivingFigure = jQuery(".interactive-living-figure-label .icon-more-info"), titleLivingFigure = tooltipLivingFigure.attr("title"); tooltipLivingFigure.simpletip({ fixed: true, position: ["-115", "30"], baseClass: 'small-tooltip', content:titleLivingFigure + " " }); tooltipLivingFigure.removeAttr("title"); $("body").on("click", ".cite-living-figure", function(e) { e.preventDefault(); var ref = $(this).attr("data-ref"); $(this).closest(".living-figure-list-container").find("#" + ref).fadeIn(200); }); $("body").on("click", ".close-cite-living-figure", function(e) { e.preventDefault(); $(this).closest(".popup-window-wrapper").fadeOut(200); }); $(document).on("mouseup", function(e) { var metricsContainer = $(".article-metrics-popover-wrapper"); if (!metricsContainer.is(e.target) && metricsContainer.has(e.target).length === 0) { $(".article-metrics-close-button").click(); } }); var articleId = $('#articleId').val(); if($("#main-article-count-box").attachArticleMetrics) { $("#main-article-count-box").attachArticleMetrics(articleId, { articleMetricsView: true }); } }); var figshareWidget = $(".new_figshare_widget"); if (figshareWidget.length > 0) { window.figshare.load("f1000", function(Widget) { // Select a tag/tags defined in your page. In this tag we will place the widget. _.map(figshareWidget, function(el){ var widget = new Widget({ articleId: $(el).attr("figshare_articleId") //height:300 // this is the height of the viewer part. [Default: 550] }); widget.initialize(); // initialize the widget widget.mount(el); // mount it in a tag that's on your page // this will save the widget on the global scope for later use from // your JS scripts. This line is optional. //window.widget = widget; }); }); } close Error Close Add Reset F1000.MICROSERVICES.AFFILIATION = ''; $(document).ready(function () { $('.js-affiliations-form').each((index, form) => { new AffiliationForm({ formId: form.id, institutionErrorSelector: '.comment-enter-institution', departmentErrorSelector: '.comment-enter-department', placeSelector: '.js-add-comment-place', stateSelector: '.js-add-comment-state', zipCodeSelector: '.js-add-comment-zipcode', countrySelector: '.js-add-comment-country', countryErrorSelector: '.comment-enter-country', }); }); }); $(document).ready(function () { var reportIds = { "434694": 0, "434695": 0, "434692": 0, "434693": 0, "434690": 0, "434691": 44, "434688": 0, "434689": 15, "434696": 0, "446998": 0, "446999": 0, "447006": 0, "434687": 0, "447007": 0, "447004": 0, "447005": 0, "447002": 0, "447003": 0, "447000": 0, "447001": 0, }; $(".referee-response-container,.js-referee-report").each(function(index, el) { var reportId = $(el).attr("data-reportid"), reportCount = reportIds[reportId] || 0; $(el).find(".comments-count-container,.js-referee-report-views").html(reportCount); }); var uuidInput = $("#article_uuid"), oldUUId = uuidInput.val(), newUUId = "a224f149-3dc8-46da-b4b5-4916575ee7a3"; uuidInput.val(newUUId); $("a[href*='article_uuid=']").each(function(index, el) { var newHref = $(el).attr("href").replace(oldUUId, newUUId); $(el).attr("href", newHref); }); }); An innovative open access publishing platform offering rapid publication and open peer review, whilst supporting data deposition and sharing. Browse Gateways Collections How it Works Contact For Developers Cookie Notice Privacy Notice RSS Submit Your Research Follow us © 2012-2026 F1000 Research Ltd. ISSN 2046-1402 | Legal | Partner of Research4Life • CrossRef • ORCID • FAIRSharing R.templateTests.simpleTemplate = R.template(' $text $text $text $text $text '); R.templateTests.runTests(); var F1000platform = new F1000.Platform({ name: "f1000research", displayName: "F1000Research", hostName: "f1000research.com", id: "1", editorialEmail: "[email protected]", infoEmail: "[email protected]", usePmcStats: true }); $(function(){R.ui.dropdowns('.dropdown-for-authors, .dropdown-for-about, .dropdown-for-myresearch');}); // $(function(){R.ui.dropdowns('.dropdown-for-referees');}); $(document).ready(function () { if ($(".cookie-warning").is(":visible")) { $(".sticky").css("margin-bottom", "35px"); $(".devices").addClass("devices-and-cookie-warning"); } $(".cookie-warning .close-button").click(function (e) { $(".devices").removeClass("devices-and-cookie-warning"); $(".sticky").css("margin-bottom", "0"); }); $("#tweeter-feed .tweet-message").each(function (i, message) { var self = $(message); self.html(linkify(self.html())); }); $(".partner").on("mouseenter mouseleave", function() { $(this).find(".gray-scale, .colour").toggleClass("is-hidden"); }); }); Sign In Remember me Forgotten your password? Sign In Cancel Email or password not correct. Please try again Please wait... $(function(){ // Note: All the setup needs to run against a name attribute and *not* the id due the clonish // nature of facebox... $("a[id=googleSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("GOOGLE"); $("form[id=oAuthForm]").submit(); }); $("a[id=facebookSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("FACEBOOK"); $("form[id=oAuthForm]").submit(); }); $("a[id=orcidSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("ORCID"); $("form[id=oAuthForm]").submit(); }); }); If you've forgotten your password, please enter your email address below and we'll send you instructions on how to reset your password. The email address should be the one you originally registered with F1000. Email address not valid, please try again You registered with F1000 via Google, so we cannot reset your password. To sign in, please click here . If you still need help with your Google account password, please click here . You registered with F1000 via Facebook, so we cannot reset your password. To sign in, please click here . If you still need help with your Facebook account password, please click here . Code not correct, please try again Reset password Cancel Email us for further assistance. Server error, please try again. If your email address is registered with us, we will email you instructions to reset your password. If you think you should have received this email but it has not arrived, please check your spam filters and/or contact for further assistance. Please wait... Register $(document).ready(function () { signIn.createSignInAsRow($("#sign-in-form-gfb-popup")); $(".target-field").each(function () { var uris = $(this).val().split("/"); if (uris.pop() === "login") { $(this).val(uris.toString().replace(",","/")); } }); });

Text is read by the "Ask this paper" AI Q&A widget below. Extraction quality varies by source — PMC NXML preserves structure cleanly, OA-HTML may include some navigation residue, and OA-PDF can have broken hyphenation. The publisher copy (via DOI) is the canonical version.

My notes (saved in your browser only)

Ask this paper AI returns verbatim quotes from the full text · source: preprint-html

Answers must be backed by verbatim quotes from this paper's full text. Hallucinated quotes are dropped automatically; if no verbatim passage answers the question, we say so. How this works

Citation neighborhood (no data yet)

We don't have any in-corpus citations linked to this paper yet. This is a recent paper (2025) — citers typically take a year or two to land, and the OpenAlex reference graph may still be filling in.

Source provenance

europepmc
last seen: 2026-05-20T01:45:00.602351+00:00
unpaywall
last seen: 2026-05-22T02:00:06.705733+00:00
License: CC-BY-4.0