RAWR v1.0: a software suite for phylogenetic... | 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/15-260" }, "headline": "RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk...", "datePublished": "2026-02-14T13:37:35", "dateModified": "2026-02-14T13:37:35", "author": [ { "@type": "Person", "name": "Julia Zheng" }, { "@type": "Person", "name": "Wei Wang" }, { "@type": "Person", "name": "Byungho Lee" }, { "@type": "Person", "name": "Kevin J. Liu" } ], "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 Bootstrap resampling is used throughout biology to perform critical statistical tasks, including estimating confidence intervals as part of statistical inference and learning. A key assumption of bootstrap resampling is that data are independent and identically distributed (i.i.d.), but this assumption is at odds with the inherently sequential nature of biomolecular sequences. To relax this simplifying assumption, RAWR (“RAndom Walk Resampling”) was introduced as a technique for sequence-aware statistical resampling. RAWR has been applied to several different biomolecular sequence analysis tasks to date, including phylo- genetic tree support estimation. In each of these tasks, RAWR produces comparable or superior results to the bootstrap method and state-of-the-art resampling methods. Methods and Results A comprehensive software suite for RAWR resampling of unaligned biomolecular sequence data has been developed. Version 1.0 of the distribution focuses on two essential applications in computational biology and bioinformatics: (1) phylogenetic support estimation and (2) estimating confidence intervals on multiple sequence alignments (MSAs). The software implementation includes a local Galaxy client, a desktop PC client with a graphical user interface (GUI), and a standalone web server application. Access to software library functionality is provided via a developer-friendly application programming interface (API). User and developer documentation and tutorials are also provided. Availability and Implementation The software suite, documentation, and tutorials are publicly available under an open-source copyleft license at https://github.com/kjl-msu/RAWR-web-software. The software and API are implemented in Python for use on macOS, Linux, and Windows operating systems. " } { "@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/15-260", "name": "RAWR v1.0: a software suite for phylogenetic support estimation and..." } } ] } Home Browse RAWR v1.0: a software suite for phylogenetic support estimation and... ALL Metrics - Views Downloads Get PDF Get XML Cite How to cite this article Zheng J, Wang W, Lee B and J. Liu K. RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :260 ( https://doi.org/10.12688/f1000research.161945.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 RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] Julia Zheng 1 , Wei Wang 2 , Byungho Lee https://orcid.org/0009-0007-3153-3693 1 , Kevin J. Liu https://orcid.org/0000-0001-9890-3969 1 Julia Zheng 1 , Wei Wang 2 , Byungho Lee https://orcid.org/0009-0007-3153-3693 1 , Kevin J. Liu https://orcid.org/0000-0001-9890-3969 1 PUBLISHED 14 Feb 2026 Author details Author details 1 Michigan State University, East Lansing, Michigan, USA 2 Meta Corporation, Menlo Park, CA, USA Julia Zheng Roles: Data Curation, Formal Analysis, Investigation, Resources, Software, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Wei Wang Roles: Data Curation, Formal Analysis, Investigation, Resources, Software, Validation, Visualization Byungho Lee Roles: Software, Validation Kevin J. Liu Roles: Conceptualization, Funding Acquisition, Investigation, Methodology, Project Administration, Supervision, Writing – Review & Editing OPEN PEER REVIEW DETAILS REVIEWER STATUS This article is included in the Evolutionary Genomics collection. Abstract Background Bootstrap resampling is used throughout biology to perform critical statistical tasks, including estimating confidence intervals as part of statistical inference and learning. A key assumption of bootstrap resampling is that data are independent and identically distributed (i.i.d.), but this assumption is at odds with the inherently sequential nature of biomolecular sequences. To relax this simplifying assumption, RAWR (“RAndom Walk Resampling”) was introduced as a technique for sequence-aware statistical resampling. RAWR has been applied to several different biomolecular sequence analysis tasks to date, including phylo- genetic tree support estimation. In each of these tasks, RAWR produces comparable or superior results to the bootstrap method and state-of-the-art resampling methods. Methods and Results A comprehensive software suite for RAWR resampling of unaligned biomolecular sequence data has been developed. Version 1.0 of the distribution focuses on two essential applications in computational biology and bioinformatics: (1) phylogenetic support estimation and (2) estimating confidence intervals on multiple sequence alignments (MSAs). The software implementation includes a local Galaxy client, a desktop PC client with a graphical user interface (GUI), and a standalone web server application. Access to software library functionality is provided via a developer-friendly application programming interface (API). User and developer documentation and tutorials are also provided. Availability and Implementation The software suite, documentation, and tutorials are publicly available under an open-source copyleft license at https://github.com/kjl-msu/RAWR-web-software. The software and API are implemented in Python for use on macOS, Linux, and Windows operating systems. READ ALL READ LESS Keywords statistical resampling, RAWR, phylogenetic support estimation, phylogenetic tree, multiple sequence alignment, phylogenetics, GUI software, API Corresponding Author(s) Kevin J. Liu ( [email protected] ) Close Corresponding author: Kevin J. Liu Competing interests: No competing interests were disclosed. Grant information: Support was provided by the National Science Foundation (2144121, 2214038, 1828149, 1714417 and 1740874 to KJL) and Michigan State University (to all co-authors). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Copyright: © 2026 Zheng J 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: Zheng J, Wang W, Lee B and J. Liu K. RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :260 ( https://doi.org/10.12688/f1000research.161945.1 ) First published: 14 Feb 2026, 15 :260 ( https://doi.org/10.12688/f1000research.161945.1 ) Latest published: 14 Feb 2026, 15 :260 ( https://doi.org/10.12688/f1000research.161945.1 ) Introduction Statistical resampling has become an essential technique that is used in a wide variety of biomolecular sequence analysis tasks. The standard bootstrap method ( Efron, 1979 ) is among the most widely used general-purpose resampling methods. A particularly important application of bootstrap resampling is confidence interval estimation for phylogenetic reconstruction (also known as phylogenetic support estimation) ( Felsenstein, 1985 ). The original paper describing this application is the 41st most cited in history ( Van Noorden et al. , 2014 ). However, the bootstrap method make a crucial assumption that all sites in the input sequences are independent and identically distributed (i.i.d.). This assumption is an over-simplification for biomolecular sequence data due to evolutionary processes such as sequence insertions, deletions, and genetic recombination, as well as biomolecular structure and other factors – all of which can cause site dependencies within sequences. A sequence-aware statistical resampling method known as RAWR (“RAndom Walk Resampling”) ( Wang et al. , 2021 ) was introduced to relax this simplifying assumption. Using either unaligned or aligned sequence data as input, RAWR resamples data by conducting a random walk directly on the input sequences. RAWR-resampled sequences satisfy a “neighbor preservation” property: neighboring bases in a resampled sequence are guaranteed to also appear as neighbors in the original input’s corresponding sequence. The original study of RAWR focused on the application of statistical resampling to phylogenetic tree support estimation. On simulated and empirical benchmarks with a range of dataset sizes and evolutionary divergence, RAWR yielded comparable or superior type I and type II error versus the phylogenetic bootstrap and state-of-the-art methods such as aLRT ( Anisimova and Gascuel, 2006 ) and TBE ( Lemoine et al. , 2018 ). In this manuscript, we present the RAWR v1.0 software package for sequence-aware statistical resampling of biomolecular sequence data. The release includes applications to two essential tasks: support estimation for multiple sequence alignment and phylogenetic tree reconstruction. The software distribution includes user-friendly clients and developer-friendly software libraries. Highlights of the package include phylogeny visualization, asynchronous email delivery of results, parallel processing, and an Application Programming Interface (API) to integrate RAWR resampling into third-party software distributions in bioinformatics and beyond. Methods The RAWR version 1.0 software distribution enables sequence-aware statistical resampling of biomolecular sequence data. Resampling is performed using the RAWR technique, which resamples sites during a random walk along biological molecular sequences while preserving site neighbor relationships. Two main resampling tasks are supported: (1) phylogenetic tree support estimation and (2) MSA support estimation. The phylogenetic tree support estimation task is defined as follows: the input is a phylogenetic tree estimate on a set of unaligned sequence data, and the output consists of a set of support values. Each support value annotates a distinct edge in the input tree estimate based on the proportion of re-estimated trees that also display that edge, where re-estimation is performed on RAWR-resampled replicates. The MSA estimation task is similar, except that the annotation object and re-estimates are MSAs (rather than phylogenetic trees) and support values annotate nucleotide/residue pair homologies in an annotation MSA (rather than edges in an annotation tree). Implementation RAWR v1.0 contains three different Python implementations for end users: (1) a GUI desktop/PC client, (2) a local Galaxy client, and (3) a local web server. Detailed instructions for installing and using the three implementations are available in the Supplementary Appendix. In addition to the end user implementations, an application programming interface (API) is provided for developer access to software distribution functions. The API can be used to integrate RAWR resampling and support estimation into third-party software and software pipelines. GUI Desktop client. The GUI client provides a user-friendly window-based layout. Users interact with the GUI using drop down selection menus to configure analysis settings, buttons to choose file inputs, and a checkbox to enable parallelization ( Figure 1 ). The GUI desktop client is available for Windows, macOS, and Linux operating systems. Phylogeny visualization makes use of the ETE3 software library ( Huerta-Cepas et al. , 2016 ), and MSA support visualization is supported by JalView ( Waterhouse et al. , 2009 ). Multiprocessing is supported on computing architectures that are compatible with parallelization. Figure 1. RAWR v1.0 GUI desktop client. The client provides a user-friendly window-based interface for RAWR resampling analyses. Two primary resampling tasks are supported: phylogenetic tree support estimation and MSA support estimation. The main window provides user controls for resampling analysis parameters as follows. “Input 1” accepts a FASTA-formatted MSA. “Input 2” accepts a Newick-formatted phylogenetic tree. The first optional parameter determines the resampling task, where “tree” denotes phylogenetic tree support estimation and “msa” denotes MSA support estimation. The second optional parameter determines the resampling algorithm, where “rawr” denotes the RAWR algorithm and “seres” denotes the SERES algorithm. The third and fourth parameters describe the number of resampled replicates (“Sample Number”) and random walk reversal rate (“Reverse Rate”), respectively. Finally, the fifth and sixth parameters are reserved for the SERES algorithm only and describe number and length of anchor regions to place in the MSA (“Anchor Number” and “Anchor Length”, respectively). Parallelization (“Multiprocess”) is optionally available to speed up analyses using a user-specified number of computing cores, and is specified using a drop-down menu. Default values for parameters are configured as shown. As noted above, two primary resampling tasks are supported. In the phylogenetic tree support estimation task, the output is a Newick-formatted tree with phylogenetic support values. As an example, Figure 2 shows a phylogenetic tree with RAWR support values as visualized in the desktop client GUI. In the MSA support estimation task, the output is a text file annotating the original MSA with confidence intervals on nucleotide-nucleotide/residue-residue homologies as well as a JalView-compatible ( Waterhouse et al. , 2009 ) annotation file. Figure 3 provides an example visualization of the latter. Figure 2. Example visualization of RAWR tree support in the desktop GUI client. RAWR resampling was used to perform phylogenetic tree support estimation. The client utilizes the ETE ( Huerta-Cepas et al. , 2016 ) software package to perform the final tree visualization. Figure 3. Example visualization of RAWR MSA support in the desktop GUI client. The client utilizes the JalView v2.11.4.0 ( Waterhouse et al. , 2009 ) software package to display the annotation MSA and RAWR support values (“Support” row). Local Galaxy client. Galaxy ( Giardine et al. , 2005 ) is a popular open-source bioinformatics platform for both novice and experienced end users. The platform is developed for Linux and macOS operating systems. Many widely used bioinformatics algorithms, data processing procedures, and scientific workflows are included. RAWR v1.0 can be served in a local Galaxy instance ( Figure 4 ). Visualization of RAWR analyses is enabled using Phylocanvas.gl ( Abudahab et al. , 2021 ). In addition to open source code, the RAWR software distribution includes binary executables for Debian GNU/Linux and macOS that were compiled using Python 3.10. Figure 4. Serving RAWR v1.0 in a local Galaxy instance. Parameter descriptions follow that of Figure 1 . Web client. The web client features a web form-based user interface with drop-down menus for selecting random walk resampling algorithms, radial buttons to open file inputs, and text boxes for parameters ( Figure 5 ). The web server software can be hosted on a macOS or Linux server. The web application offers an asynchronous processing option: submitted jobs are processed offline, the user provides an e-mail address to receive a notification email when the results are ready, and the email includes results as file attachments. Phylogenetic visualization support is enabled using the ETE3 software library ( Huerta-Cepas et al. , 2016 ). Figure 5. RAWR v1.0 web server. RAWR method parameters are user configurable in the web client. The “Select Algorithm” form field allows selection of RAWR resampling or SERES resampling ( Wang et al. , 2020 ), an alternative resampling approach that is related to and superseded by RAWR. The “Select Support Type” form field configures the resampling task to be either phylogenetic or MSA support estimation task. RAWR method parameters consist of a random walk reversal probability and the number of resampled replicates, and both can be configured (“Reverse Rate” and “Sample Number”, respectively). The input annotation tree and MSA are uploaded using the “Phylogenetic Tree in Newick Format” and “FASTA File Input” form fields respectively, where the former is specified in Newick format and the latter is specified in FASTA format. Asynchronous execution is enabled by providing an email address in the “E-mail Address to Receive Results” form field, and results sent via email when ready. (Some user interface elements are dynamically configured depending on the choice of resampling algorithm.) Application programming interface (API). Developer access to and third-party software integration with the RAWR v1.0 software suite is enabled by an application programming interface (API). The RAWR API and software libraries are implemented in Python3. A Unified Modeling Language (UML) class diagram is shown in Figure 6 . Example code is provided at https://github.com/kjl-msu/RAWR-web-software/blob/main/RAWR-tutorial.md . Figure 6. A UML class diagram of the RAWR v1.0 software suite. Operation The RAWR v1.0 software suite includes a local Galaxy client, GUI desktop client, web server, and API. The minimum hardware requirements for the GUI desktop client and web server consist of a modern CPU with a minimum of 1 GB of RAM and file system storage of at least 150 MB. The minimum hardware requirements for the local Galaxy client are a modern CPU with a minimum of 4 GB of RAM and file system storage of at least 12 GB. The RAWR v1.0 software suite has been developed for and tested on several major operating systems, with minimum software requirements as follows. The software suite is implemented in Python, with a minimum recommended version of 3.8 or newer. Python 3.8 is available on macOS version 10.9 or later, Windows 7 or later, and most modern Linux distributions (such as Ubuntu, CentOS, and Fedora). RAWR v1.0 has been tested in Python 3.8 and Python 3.10 using Virtualenv v20.26.6, and Anaconda v24.5.0 was used to manage Python package dependencies. The GUI desktop client and API are supported on macOS, Windows, and Linux operating systems. The desktop client has been tested on macOS Sequoia 15.0, Ubuntu 22.04 LTS, and Windows 11. The Galaxy and web server software are supported on macOS and Linux operating systems, and have been tested on macOS Sequoia 15.0 and Ubuntu 22.04 LTS. The web application has been tested on major web browsers, including Mozilla Firefox version 131 and Google Chrome version 129. Windows support for Galaxy or web server instances is enabled via virtualization or other emulation software (e.g., Windows Subsystem for Linux, Microsoft Hyper-V, etc.). Use cases In this section, we walk through example use cases of the RAWR v1.0 software suite. The examples focus on two resampling tasks: phylogenetic tree support estimation and MSA support estimation. The walkthroughs utilize a simulated 10-taxon dataset from the performance study of Wang et al. (2021) , and the dataset files are provided in the RAWR v1.0 software distribution under the rawr-software/example/dataset-10taxa/ subdirectory. Note that, as a prerequisite for the walkthroughs, the RAWR v1.0 software suite must be installed first. See Supplementary Online Materials for detailed software installation instructions. Input files. An input MSA in FASTA format and an input annotation phylogeny in Newick format must be specified for RAWR analysis. The example dataset has these two inputs saved as the “alignment.fasta” file “infer.tree” file, respectively. Output files. The RAWR v1.0 GUI desktop client and web server provides results in the following output files. A “samples” subdirectory contains the following files for each RAWR-resampled replicate: a metadata file that lists resampled column numbers in the input MSA with ordering based on RAWR resampling order, the corresponding resampled MSA, and the final set of resampled unaligned sequences that was resampled. The result of phylogenetic support estimation is the input annotation phylogeny with RAWR support values annotating branches; the output is provided in machine-readable Newick format as well as an image in the “tree.support.txt” and “tree.support.png” files, respectively. The result of MSA support estimation are provided in the “MSA.support.csv” output file. The output file is a comma-delimited spreadsheet that contains the following columns: (1) the position of a residue pair in the input MSA, (2) the row index of residue one in the pair, (3) the row index of residue two in the pair, and (4) a RAWR support value for the residue pair that is in the range [0 , 1]. An accompanying feature annotation file “MSA.support.csv jalview annotation.txt” is generated alongside the MSA support output file. The RAWR v1.0 local Galaxy client provides outputs for phylogenetic support estimation in the following output files. The Newick-formatted input tree with annotated support values is contained in the “tree.support.txt” output file. The result of MSA support estimation is a feature annotation file “MSA.support.csv jalview annotation.txt”, which can be visualized in JalView ( Waterhouse et al. , 2009 ). GUI desktop client . We begin with a walkthrough for the GUI desktop client. A step-by-step description is provided for phylogenetic tree support estimation. 1. Assuming that the necessary Python dependencies have been installed in Anaconda, the conda environment is activated and the GUI client is then started. $ cd rawr-software $ conda activate python3.10 $ python main.py 2. The main window of the desktop client GUI appears ( Figure 7 ). Import input files using the “Select File” buttons. An example dataset is included in the RAWR v1.0 software distribution: to provide the dataset as input, select the “alignment.fasta” file for the “Input MSA” option and select the “infer.tree” file for the “Input Tree” option. Then, navigate to and/or create a new output folder by using the “Select Folder” button. We recommend that a new folder should be created for each RAWR analysis. 3. Optionally, edit the algorithm parameters on the lefthand side of the GUI client. Multiprocessing can also be enabled by checking the “Multiprocess” option. Default values for optional parameters are preset. 4. Run the analysis by selecting the “OK” button ( Figure 8 ). The progress bar will indicate the approximate percentage complete for the ongoing RAWR analysis. 5. Phylogenetic support estimation results are displayed in a new window ( Figure 2 ). 6. The output folder includes a “samples” subdirectory which contains RAWR-resampled replicates. If phylogenetic tree support estimation was the analysis task, a Newick file “tree.support.txt” and an image file “tree.support.png” will be located in the output folder. If MSA support estimation was selected, a MSA support result file “MSA.support.csv” and a feature annotation file “MSA.support.csv” jalview annotation will be located in the output folder. Figure 7. GUI desktop client: window dialogs for importing input files. After clicking the “Select File” button next to the “Input MSA” option, a window dialog appears to select an input MSA file. The RAWR v1.0 software suite includes an example dataset which has an input MSA saved as the “alignment.fasta” file. Figure 8. GUI desktop client: running a RAWR analysis. After selecting input files and method parameters using the main window, click the “OK” button to begin the RAWR analysis. A progress bar appears and reports the approximate percentage of the analysis that has completed. Local Galaxy client. The following walkthrough uses the local Galaxy client to perform phylogenetic tree support estimation. The input files used for the other walkthroughs can also be used for the this walkthrough. 1. Assuming that local Galaxy client has been set up in Virtualenv, we activate the Virtualenv environment and use Planemo to serve a Galaxy instance. $cd rawr-galaxy $. galaxy/.venv/bin/activate $planemo serve --galaxy_root galaxy 2. Import MSA and phylogeny files with the “Upload File” button on the left side of the GUI. Select file type “fasta” for the input MSA file and “newick” for the input tree file. Click “Start” to upload input files. The GUI dynamically updates as the upload proceeds ( Figure 9 ). 3. Navigate to “RAWR random sampler”, and the uploaded files will be automatically configured in the client window ( Figure 4 ). The default analysis configuration consists of a RAWR analysis to estimate phylogenetic tree support. Optional parameters are also prepopulated with default values (i.e., RAWR resampling is conducted with reversal probability γ = 0 . 1 to obtain a total of 10 RAWR replicates). 4. Click “Run Tool” to begin RAWR analysis. In the righthand bar, the submitted job will display green once the RAWR analysis has completed. A Newick tree with tree support values and/or MSA feature annotation text file will be saved as output, depending on the resampling task that was configured. 5. Other software tools in the Galaxy Tool Shed can be used to generate and display phylogenetic tree visualizations with support values. For example, the Newick Display tool can be downloaded and installed from the Galaxy Tool Shed (“Newick Display” under the repository name “newick utils”). Once installed, the Newick Display tool generates a phylogenetic tree visualization ( Figure 10 ). 6. After the visualization is generated, the “OpenSeadragon” tool can be used to display the image inside of Galaxy or saved to file. Figure 11 shows the relevant GUI workflow and Figure 12 provides an example of the resulting visualization within the Galaxy client. Figure 9. Local Galaxy client: configuring and uploading input files. Input files for phylogenetic tree support estimation – “alignment.fasta” and “infer.tree” in the example as shown – correspond to an input MSA and annotation tree. After clicking “Start”, the input file upload begins and the client GUI dynamically updates based on the upload progress. Figure 10. Local Galaxy client: generating visualization using Newick Display tool. After RAWR analysis has completed, click “Newick Display” in the Tools pane (annotated with red rectangle in upper left of figure) and select “Display branch support” in the Branch support field of the Tool Parameters pane (annotated with red rectangle in lower left of figure). Then click the “Run Tool” button (upper right of figure) to generate image. Figure 11. Local Galaxy client: displaying tree visualization using OpenSeadragon tool. After generating a tree visualization using the Newick Display tool, click the visualization button (annotated with red square in lower right window pane) and select the “OpenSeadragon” tool (annotated with red rectangle in upper left of figure) to display the visualization. Figure 12. Local Galaxy client: example tree visualization. The results from a RAWR tree support analysis – i.e., the input annotation tree with RAWR support values annotating its branches – are visualized in the Galaxy client. RAWR support values are shown in red. The visualization was generated using the Newick Display tool and then displayed using the OpenSeadragon tool. Web client . The following walkthrough uses the RAWR v1.0 web server to perform support estimation. RAWR analysis results are sent asynchronously via email. 1. Assuming that the web application has been set up in Anaconda, the conda environment is activated and the web server is started using the following commands. $cd rawr-web $conda activate python3.10 $python app.py 2. The web server will be available locally at http://10.0.2.15:5000/ . Any modern web browser can be used to access and interact with the web server. Figure 5 shows the main page of the web client. 3. Use the “Select Algorithm” drop-down menu to select an algorithm. By default, RAWR is chosen. Next, use the “Select Support Type” drop-down menu to configure the support estimation task – either phylogenetic tree support estimation or MSA support estimation. By default, phylogenetic tree support is selected. RAWR method parameters – i.e., the reversal probability γ and the number of resampled replicates – can be modified from default settings using the “Reverse Rate” and “Sample Number” fields, respectively. 4. Use a text editor to open an input file with a phylogenetic tree in Newick format, copy the tree’s Newick-formatted text string, and paste the text string into the “Phylogenetic Tree in Newick Format” text box. 5. Upload an MSA file using the “FASTA File Input” button. 6. Provide an email address in the “E-mail Address” field to receive results via email. 7. Click the “Submit” to execute the RAWR analysis. 8. Upon completion, the web page will be redirected to a download page. If phylogenetic support esti- mation is selected, a tree visualization will be provided ( Figure 13 ). 9. RAWR analysis results will also be sent asynchronously to the provided email address. Figure 13. Web client: RAWR analysis results. Once RAWR analysis concludes, the input annotation tree with RAWR support values is visualized. Output files can be downloaded. Results are also sent asynchronously via email if an email address was entered during analysis configuration. Visualizing MSA support estimation results. RAWR-estimated MSA support values can be visualized in JalView ( Waterhouse et al. , 2009 ). The RAWR v1.0 software suite produces a feature annotation file that annotates the input MSA with RAWR support values. By default, the feature annotation file is named “MSA.support.csv jalview annotation.txt”. A JalView visualization can be produced using the input MSA file and feature annotation file as follows. 1. The input MSA file is specified by navigating to “File > Input Alignment > From File” ( Figure 14 ). An MSA visualizer window then appears. 2. The RAWR feature annotation file is input by navigating to “File > Load Features/Annotations” ( Figure 15 ). 3. A visualization of the input MSA with RAWR support values annotating MSA columns is displayed ( Figure 3 ). Figure 14. MSA support visualization: specifying an input MSA file in JalView. The desktop GUI for JalView v2.11.4.0 ( Waterhouse et al. , 2009 ) is shown. Figure 15. MSA support visualization: specifying a feature annotation file in JalView. The desktop GUI for JalView v2.11.4.0 ( Waterhouse et al. , 2009 ) is shown. After an input MSA is loaded, the GUI updates with a dynamic MSA visualization. The RAWR-estimated feature annotation file is then loaded to annotate MSA columns with RAWR support values. Conclusions In summary, the RAWR v1.0 software distribution enables sequence-aware resampling of biomolecular and other sequence data, with applications to two primary resampling tasks – phylogenetic tree support estimation and MSA support estimation. User-friendly GUI clients are available for desktop PC, local Galaxy, and web software platforms. Developer support is also provided in the form of API access to software library functionality. Future releases of the RAWR software distribution are anticipated in parallel with ongoing methodological research on sequence-aware resampling ( Wang et al. , 2020, 2021 ). The new software versions may include algorithmic enhancements to sequence-aware resampling techniques, new applications to classical or emerging resampling tasks, and new clients on existing and future computing platforms. Ethics and consent Ethics and consent were not required. Software availability Source code available from: https://github.com/kjl-msu/RAWR-web-software . Archived software available from: https://www.doi.org/10.5281/zenodo.18132473 (DOI: 10.5281/zenodo.18132473). OSI approved open license software is provided under GNU General Public License version 3. Supplementary material Supplementary Online Material document is available from Zenodo at https://doi.org/10.5281/zenodo.15391775 (DOI: 10.5281/zenodo.15391775 ). Materials have been posted under OSI approved open licenses (GNU General Public License version 3 and Creative Commons Attribution 4.0 International license ). Acknowledgments The authors would like to acknowledge Meijun Gao’s assistance with software testing. This work was supported in part through computational resources and services provided by the Institute for Cyber-Enabled Research at Michigan State University. References Abudahab K, Underwood A, Taylor B, et al. : Phylocanvas.gl: A WebGL-powered JavaScript library for large tree visualisation.2021. Anisimova M, Gascuel O: Approximate likelihood-ratio test for branches: a fast, accurate, and powerful alternative. Syst. Biol. 2006; 55 (4): 539–552. PubMed Abstract Efron B: Bootstrap methods: Another look at the jackknife. Ann. Stat. 1979; 7 (1): 1–26. Felsenstein J: Confidence limits on phylogenies: an approach using the bootstrap. Evolution. 1985; 39 (4): 783–791. PubMed Abstract | Publisher Full Text Giardine B, Riemer C, Hardison RC, et al. : Galaxy: a platform for interactive large-scale genome analysis. Genome Res. 2005; 15 (10): 1451–1455. PubMed Abstract Huerta-Cepas J, Serra F, Bork P: Ete 3: reconstruction, analysis, and visualization of phylogenomic data. Mol. Biol. Evol. 2016; 33 (6): 1635–1638. PubMed Abstract | Publisher Full Text Lemoine F, Domelevo Entfellner J-B, Wilkinson E, et al. : Renewing Felsenstein’s phylogenetic bootstrap in the era of big data. Nature. 2018; 556 (7702): 452–456. PubMed Abstract | Publisher Full Text Van Noorden R, Maher B, Nuzzo R: The top 100 papers. Nature News. 2014; 514 (7524): 550. Wang W, Smith J, Hejase HA, et al. : Non-parametric and semi-parametric support estimation using sequential resampling random walks on biomolecular sequences. Algorithms for Molecular Biology. 2020; 15 : 1–15. Wang W, Hejasebazzi A, Zheng J, et al. : Build a better bootstrap and the RAWR shall beat a random path to your door: phylogenetic support estimation revisited. Bioinformatics. 2021; 37 : i111–i119. PubMed Abstract | Publisher Full Text Waterhouse A, Procter J, Martin D, et al. : Jalview version 2—a multiple sequence alignment editor and analysis workbench. Bioinformatics. 2009; 25 (9): 1189–1191. PubMed Abstract | Publisher Full Text Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 14 Feb 2026 ADD YOUR COMMENT Comment Author details Author details 1 Michigan State University, East Lansing, Michigan, USA 2 Meta Corporation, Menlo Park, CA, USA Julia Zheng Roles: Data Curation, Formal Analysis, Investigation, Resources, Software, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Wei Wang Roles: Data Curation, Formal Analysis, Investigation, Resources, Software, Validation, Visualization Byungho Lee Roles: Software, Validation Kevin J. Liu Roles: Conceptualization, Funding Acquisition, Investigation, Methodology, Project Administration, Supervision, Writing – Review & Editing Competing interests No competing interests were disclosed. Grant information Support was provided by the National Science Foundation (2144121, 2214038, 1828149, 1714417 and 1740874 to KJL) and Michigan State University (to all co-authors). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Article Versions (1) version 1 Published: 14 Feb 2026, 15:260 https://doi.org/10.12688/f1000research.161945.1 Copyright © 2026 Zheng J 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 Zheng J, Wang W, Lee B and J. Liu K. RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :260 ( https://doi.org/10.12688/f1000research.161945.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 14 Feb 2026 Views 0 Cite How to cite this report: Kong S. Reviewer Report For: RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :260 ( https://doi.org/10.5256/f1000research.178057.r475670 ) The direct URL for this report is: https://f1000research.com/articles/15-260/v1#referee-response-475670 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 28 Apr 2026 Sungsik Kong , University of Wisconsin-Madison, Madison, Wisconsin, USA; Center for Interdisciplinary Theoretical and Mathematical Sciences, Rikagaku Kenkyujo (Ringgold ID: 13593), Wako, Saitama Prefecture, Japan Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.178057.r475670 This manuscript provides a description of RAWR v1.0, a software suite that includes sequence-aware resampling of sequence data, with applications to phylogenetic and multiple sequence alignment (MSA) support estimation (plus other functions). The software includes several user-friendly implementations, including a ... Continue reading READ ALL This manuscript provides a description of RAWR v1.0, a software suite that includes sequence-aware resampling of sequence data, with applications to phylogenetic and multiple sequence alignment (MSA) support estimation (plus other functions). The software includes several user-friendly implementations, including a desktop GUI, a local Galaxy client, and a web server. These additions are expected to improve usability and make the framework easier to visualize and integrate into existing workflows. I am encouraged by the development of more user-friendly bioinformatics tools and support indexing of this article; however, several revisions are needed to improve clarity, reproducibility, and the overall user experience of RAWR v1.0. Major comments 1. Clarification of novelty in version 1.0: It is unclear what is new in version 1.0 relative to previous releases of RAWR. Is the primary update solely the improved user and developer interfaces? Were support estimation functionalities for phylogenetic trees and MSAs absent or implemented differently in earlier versions? One or two concise paragraphs clearly summarizing the key updates in RAWR version 1.0, along with the motivations for these developments, would greatly improve clarity. 2. Computational performance: The manuscript suggests that RAWR version 1.0 benefits from parallel processing, but not much quantitative information is provided. It would be helpful to include a small benchmarks or representative runtimes to illustrate computational performance and any improvements over previous versions. 3. Software dependencies and sustainability: It seems like RAWR version 1.0 relies on external tools such as ETE3 and JalView for visualization. A brief discussion of how the software will remain functional if these dependencies change, become unavailable, or are updated would strengthen the manuscript and the reliability of RAWR version 1.0. 4. Output description consistency: There is some inconsistency in how outputs are described. In the Methods (GUI Desktop Client), the output is described as a Newick file with support values, whereas in the Use Cases section, it is described as both a Newick string and an image. Please clarify what outputs are produced by each interface (GUI, Galaxy, web server) and in what formats, if they are different from each other. A summary table might be useful. 5. Interpretation and visualization of support values: Figure 2 and 13 show two values per branch; please clarify what each color represent. In Figure 12, it is unclear whether the red values correspond to branch (edge) support or node support. The number of displayed values appears inconsistent with the number of edges (but somewhat matches with the number of internal nodes). Either way, the current visualization is confusing and should be improved. Additionally, please describe what the scale bar represents in the caption. Minor comments 0. I am not sure if this is happening to only me but Figure 1 is not rendering correctly; the image is not visible and appears as a placeholder (question mark box). 1. Background: Correct ``phylo- genetic'' to ``phylogenetic'.' 2. Introduction: Define aLRT and TBE at first mention; revise ``the bootstrap method make'' to ``the bootstrap method makes''. 3. Ensure consistent use of ``RAWR v1.0,'' ``RAWR version 1.0'', etc; Please keep consistency with terminology (e.g., “Supplementary material” instead of “Supplementary Appendix” or “Supplementary Online Materials”; The term ``API'' is defined multiple times with inconsistent capitalization). 4. Based on the description in Methods section, ``edge (branch) support'' may be more accurate term than ``phylogenetic tree support'', in my opinion. 5. Please provide a clearer explanation (in a sentence or two) of the biological or statistical meaning of support values for both phylogenetic trees and MSAs. 6. Reproducibility details: In Use Cases (GUI desktop client, Step 1), please specify what is meant by “necessary Python dependencies.” Is the rationale for developing the new software tool clearly explained? Partly 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? Partly 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: phylogenetic methods 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 Kong S. Reviewer Report For: RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :260 ( https://doi.org/10.5256/f1000research.178057.r475670 ) The direct URL for this report is: https://f1000research.com/articles/15-260/v1#referee-response-475670 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: Tabatabaee Y. Reviewer Report For: RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :260 ( https://doi.org/10.5256/f1000research.178057.r462117 ) The direct URL for this report is: https://f1000research.com/articles/15-260/v1#referee-response-462117 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 19 Mar 2026 Yasamin Tabatabaee , University of Illinois Urbana-Champaign, Urbana, Illinois, USA Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.178057.r462117 Summary This manuscript presents RAWR v1.0, a software suite implementing sequence-aware random walk resampling for biomolecular sequence data, with applications to phylogenetic tree support and MSA support estimation. The package includes a GUI, Galaxy integration, web ... Continue reading READ ALL Summary This manuscript presents RAWR v1.0, a software suite implementing sequence-aware random walk resampling for biomolecular sequence data, with applications to phylogenetic tree support and MSA support estimation. The package includes a GUI, Galaxy integration, web server, and API, making the method accessible to a broad range of users. The software is open-source, well documented, and includes example datasets. The software is a useful and timely contribution, addressing limitations of the classical bootstrap method for sequence data. Major comments Positioning of contribution The methodological aspects of RAWR have been published previously. While the article appropriately summarizes this background, it would benefit from more clearly emphasizing what is new in this software release (e.g., engineering improvements, usability features, integration with existing platforms, or expanded functionality). Clarifying this distinction would help readers better understand the contribution of this work relative to prior publications. Parameter guidance Key parameters, such as the random walk reversal probability and number of replicates, are exposed to the user but are not well explained in the article. Providing practical guidance, recommended defaults, or a brief sensitivity discussion would improve usability, especially for non-expert users. MSA support interpretation The MSA support estimation functionality is a potentially valuable feature but is somewhat under-explained. Additional discussion on how to interpret these support values, and how they relate to existing alignment confidence methods, would make this component more accessible and useful. Lack of performance evaluation The paper does not include benchmarks such as runtime, scalability, or memory usage. Even a modest evaluation (e.g., runtime as a function of dataset size or number of replicates) would strengthen the article and help users assess practical applicability. Minor comments The UML diagram (Figure 6) could benefit from a short explanatory paragraph guiding readers through the architecture. The hardware requirements are minimal (1 GB RAM), but realistic large datasets likely require more; a more nuanced description would help. It would be helpful to clarify whether the web server implementation is intended for public deployment or local hosting. Comments on the writing The article was well-written and easy to read, but there are some minor typos, listed below: Introduction, second paragraph, “However, the bootstrap method make a crucial assumption”, “make” should be “makes” Page 6, description of input files, ‘alignment.fasta” file“infer.tree” file - there should be an “and” between these two Page 6, description of output files, “The RAWR v1.0 GUI desktop client and web server provides results”, “provides” should be “provide” Figure 5 caption, “and results sent via email when ready.” there should be an “are” between “results” and “sent” Page 8, bullet 6, “... a MSA support result…”, should be “an MSA” Page 8, description of local galaxy client, “...also be used for this walkthrough”, remove “the” “application programming interface” sometimes appear as upper-case and sometimes lower-case, it's better to use the same style throughout the paper Overall Assessment This is a useful and well-designed software package that improves accessibility of sequence-aware resampling methods. The article would benefit from clearer positioning of its contribution and modest additional evaluation, but overall, it represents a valuable resource for the community. Is the rationale for developing the new software tool clearly explained? Partly 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? Partly Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Partly Competing Interests: No competing interests were disclosed. Reviewer Expertise: computational biology; phylogenetics; species tree estimation; clustering; 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 Tabatabaee Y. Reviewer Report For: RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :260 ( https://doi.org/10.5256/f1000research.178057.r462117 ) The direct URL for this report is: https://f1000research.com/articles/15-260/v1#referee-response-462117 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 14 Feb 2026 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 14 Feb 26 read read Yasamin Tabatabaee , University of Illinois Urbana-Champaign, Urbana, USA Sungsik Kong , University of Wisconsin-Madison, Madison, USA; Rikagaku Kenkyujo (Ringgold ID: 13593), Wako, Japan 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 Kong S. 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. 28 Apr 2026 | for Version 1 Sungsik Kong , University of Wisconsin-Madison, Madison, Wisconsin, USA; Center for Interdisciplinary Theoretical and Mathematical Sciences, Rikagaku Kenkyujo (Ringgold ID: 13593), Wako, Saitama Prefecture, Japan 0 Views copyright © 2026 Kong S. 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 This manuscript provides a description of RAWR v1.0, a software suite that includes sequence-aware resampling of sequence data, with applications to phylogenetic and multiple sequence alignment (MSA) support estimation (plus other functions). The software includes several user-friendly implementations, including a desktop GUI, a local Galaxy client, and a web server. These additions are expected to improve usability and make the framework easier to visualize and integrate into existing workflows. I am encouraged by the development of more user-friendly bioinformatics tools and support indexing of this article; however, several revisions are needed to improve clarity, reproducibility, and the overall user experience of RAWR v1.0. Major comments 1. Clarification of novelty in version 1.0: It is unclear what is new in version 1.0 relative to previous releases of RAWR. Is the primary update solely the improved user and developer interfaces? Were support estimation functionalities for phylogenetic trees and MSAs absent or implemented differently in earlier versions? One or two concise paragraphs clearly summarizing the key updates in RAWR version 1.0, along with the motivations for these developments, would greatly improve clarity. 2. Computational performance: The manuscript suggests that RAWR version 1.0 benefits from parallel processing, but not much quantitative information is provided. It would be helpful to include a small benchmarks or representative runtimes to illustrate computational performance and any improvements over previous versions. 3. Software dependencies and sustainability: It seems like RAWR version 1.0 relies on external tools such as ETE3 and JalView for visualization. A brief discussion of how the software will remain functional if these dependencies change, become unavailable, or are updated would strengthen the manuscript and the reliability of RAWR version 1.0. 4. Output description consistency: There is some inconsistency in how outputs are described. In the Methods (GUI Desktop Client), the output is described as a Newick file with support values, whereas in the Use Cases section, it is described as both a Newick string and an image. Please clarify what outputs are produced by each interface (GUI, Galaxy, web server) and in what formats, if they are different from each other. A summary table might be useful. 5. Interpretation and visualization of support values: Figure 2 and 13 show two values per branch; please clarify what each color represent. In Figure 12, it is unclear whether the red values correspond to branch (edge) support or node support. The number of displayed values appears inconsistent with the number of edges (but somewhat matches with the number of internal nodes). Either way, the current visualization is confusing and should be improved. Additionally, please describe what the scale bar represents in the caption. Minor comments 0. I am not sure if this is happening to only me but Figure 1 is not rendering correctly; the image is not visible and appears as a placeholder (question mark box). 1. Background: Correct ``phylo- genetic'' to ``phylogenetic'.' 2. Introduction: Define aLRT and TBE at first mention; revise ``the bootstrap method make'' to ``the bootstrap method makes''. 3. Ensure consistent use of ``RAWR v1.0,'' ``RAWR version 1.0'', etc; Please keep consistency with terminology (e.g., “Supplementary material” instead of “Supplementary Appendix” or “Supplementary Online Materials”; The term ``API'' is defined multiple times with inconsistent capitalization). 4. Based on the description in Methods section, ``edge (branch) support'' may be more accurate term than ``phylogenetic tree support'', in my opinion. 5. Please provide a clearer explanation (in a sentence or two) of the biological or statistical meaning of support values for both phylogenetic trees and MSAs. 6. Reproducibility details: In Use Cases (GUI desktop client, Step 1), please specify what is meant by “necessary Python dependencies.” Is the rationale for developing the new software tool clearly explained? Partly 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? Partly 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 phylogenetic methods 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) Kong S. Peer Review Report For: RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :260 ( https://doi.org/10.5256/f1000research.178057.r475670) 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/15-260/v1#referee-response-475670 keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2026 Tabatabaee Y. 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. 19 Mar 2026 | for Version 1 Yasamin Tabatabaee , University of Illinois Urbana-Champaign, Urbana, Illinois, USA 0 Views copyright © 2026 Tabatabaee Y. 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 Summary This manuscript presents RAWR v1.0, a software suite implementing sequence-aware random walk resampling for biomolecular sequence data, with applications to phylogenetic tree support and MSA support estimation. The package includes a GUI, Galaxy integration, web server, and API, making the method accessible to a broad range of users. The software is open-source, well documented, and includes example datasets. The software is a useful and timely contribution, addressing limitations of the classical bootstrap method for sequence data. Major comments Positioning of contribution The methodological aspects of RAWR have been published previously. While the article appropriately summarizes this background, it would benefit from more clearly emphasizing what is new in this software release (e.g., engineering improvements, usability features, integration with existing platforms, or expanded functionality). Clarifying this distinction would help readers better understand the contribution of this work relative to prior publications. Parameter guidance Key parameters, such as the random walk reversal probability and number of replicates, are exposed to the user but are not well explained in the article. Providing practical guidance, recommended defaults, or a brief sensitivity discussion would improve usability, especially for non-expert users. MSA support interpretation The MSA support estimation functionality is a potentially valuable feature but is somewhat under-explained. Additional discussion on how to interpret these support values, and how they relate to existing alignment confidence methods, would make this component more accessible and useful. Lack of performance evaluation The paper does not include benchmarks such as runtime, scalability, or memory usage. Even a modest evaluation (e.g., runtime as a function of dataset size or number of replicates) would strengthen the article and help users assess practical applicability. Minor comments The UML diagram (Figure 6) could benefit from a short explanatory paragraph guiding readers through the architecture. The hardware requirements are minimal (1 GB RAM), but realistic large datasets likely require more; a more nuanced description would help. It would be helpful to clarify whether the web server implementation is intended for public deployment or local hosting. Comments on the writing The article was well-written and easy to read, but there are some minor typos, listed below: Introduction, second paragraph, “However, the bootstrap method make a crucial assumption”, “make” should be “makes” Page 6, description of input files, ‘alignment.fasta” file“infer.tree” file - there should be an “and” between these two Page 6, description of output files, “The RAWR v1.0 GUI desktop client and web server provides results”, “provides” should be “provide” Figure 5 caption, “and results sent via email when ready.” there should be an “are” between “results” and “sent” Page 8, bullet 6, “... a MSA support result…”, should be “an MSA” Page 8, description of local galaxy client, “...also be used for this walkthrough”, remove “the” “application programming interface” sometimes appear as upper-case and sometimes lower-case, it's better to use the same style throughout the paper Overall Assessment This is a useful and well-designed software package that improves accessibility of sequence-aware resampling methods. The article would benefit from clearer positioning of its contribution and modest additional evaluation, but overall, it represents a valuable resource for the community. Is the rationale for developing the new software tool clearly explained? Partly 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? Partly Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Partly Competing Interests No competing interests were disclosed. Reviewer Expertise computational biology; phylogenetics; species tree estimation; clustering; 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) Tabatabaee Y. Peer Review Report For: RAWR v1.0: a software suite for phylogenetic support estimation and other sequence-aware RAndom Walk Resampling tasks [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :260 ( https://doi.org/10.5256/f1000research.178057.r462117) 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/15-260/v1#referee-response-462117 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 = "RAWR v1.0: a software suite for phylogenetic...".replace("'", ''); var linkedInUrl = "http://www.linkedin.com/shareArticle?url=https://f1000research.com/articles/15-260/v1" + "&title=" + encodeURIComponent(lTitle) + "&summary=" + encodeURIComponent('Read the article by '); var deliciousUrl = "https://del.icio.us/post?url=https://f1000research.com/articles/15-260/v1&title=" + encodeURIComponent(lTitle); var redditUrl = "http://reddit.com/submit?url=https://f1000research.com/articles/15-260/v1" + "&title=" + encodeURIComponent(lTitle); linkedInUrl += encodeURIComponent('Zheng J 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/15-260/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/15-260", templates : { twitter : "RAWR v1.0: a software suite for phylogenetic support estimation.... Zheng J et al., published by " + "@F1000Research" + ", https://f1000research.com/articles/15-260/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/161945/178057") new F1000.Clipboard(); new F1000.ThesaurusTermsDisplay("articles", "article", "178057"); $(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 = { "475671": 0, "475670": 2, "475669": 0, "475668": 0, "475667": 0, "475666": 0, "462111": 0, "466335": 0, "474271": 0, "462110": 0, "466334": 0, "474270": 0, "474269": 0, "475675": 0, "475674": 0, "475673": 0, "475672": 0, "462119": 0, "466343": 0, "462118": 0, "466342": 0, "474278": 0, "462117": 2, "466341": 0, "474277": 0, "462116": 0, "466340": 0, "474276": 0, "462115": 0, "466339": 0, "474275": 0, "462114": 0, "466338": 0, "474274": 0, "462113": 0, "466337": 0, "474273": 0, "462112": 0, "466336": 0, "474272": 0, "464439": 0, "464438": 0, "464437": 0, "464446": 0, "464445": 0, "464444": 0, "464443": 0, "464442": 0, "464441": 0, "464440": 0, "459879": 0, "459878": 0, "459877": 0, "459876": 0, "459875": 0, "459874": 0, "459873": 0, "459882": 0, "459881": 0, "459880": 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 = "627f7131-09e3-44e6-8cfc-5aaa9913ca43"; 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.