ZARP: A user-friendly and versatile RNA-seq analysis workflow

preprint OA: closed
Full text JSON View at publisher
Full text 153,614 characters · extracted from preprint-html · click to expand
ZARP: A user-friendly and versatile RNA-seq... | 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/13-533" }, "headline": "ZARP: A user-friendly and versatile RNA-seq analysis workflow", "datePublished": "2024-05-24T14:15:04", "dateModified": "2024-05-24T14:15:04", "author": [ { "@type": "Person", "name": "Maria Katsantoni" }, { "@type": "Person", "name": "Foivos Gypas" }, { "@type": "Person", "name": "Christina J Herrmann" }, { "@type": "Person", "name": "Dominik Burri" }, { "@type": "Person", "name": "Maciej Bąk" }, { "@type": "Person", "name": "Paula Iborra" }, { "@type": "Person", "name": "Krish Agarwal" }, { "@type": "Person", "name": "Meriç Ataman" }, { "@type": "Person", "name": "Máté Balajti" }, { "@type": "Person", "name": "Noè Pozzan" }, { "@type": "Person", "name": "Niels Schlusser" }, { "@type": "Person", "name": "Youngbin Moon" }, { "@type": "Person", "name": "Aleksei Mironov" }, { "@type": "Person", "name": "Anastasiya Börsch" }, { "@type": "Person", "name": "Mihaela Zavolan" }, { "@type": "Person", "name": "Alexander Kanitz" } ], "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 RNA sequencing (RNA-seq) is a widely used technique in many scientific studies. Given the plethora of models and software packages that have been developed for processing and analyzing RNA-seq datasets, choosing the most appropriate ones is a time-consuming process that requires an in-depth understanding of the data, as well as of the principles and parameters of each tool. In addition, packages designed for individual tasks are developed in different programming languages and have dependencies of various degrees of complexity, which renders their installation and execution challenging for users with limited computational expertise. Workflow languages and execution engines with support for virtualization and encapsulation options such as containers and Conda environments facilitate these tasks considerably. The resulting computational workflows can then be reliably shared with the scientific community, enhancing reusability and the reproducibility of results as individual analysis steps are becoming more transparent and portable. Methods Here we present ZARP, a general purpose RNA-seq analysis workflow that builds on state-of-the-art software in the field to facilitate the analysis of RNA-seq datasets. ZARP is developed in the Snakemake workflow language and can run locally or in a cluster environment, generating extensive reports not only of the data but also of the options utilized. It is built using modern technologies with the ultimate goal to reduce the hands-on time for bioinformaticians and non-expert users and serve as a template for future workflow development. To this end, we also provide ZARP-cli, a dedicated command-line interface that may make running ZARP on an RNA-seq library of interest as easy as executing a single two-word command. Conclusions ZARP is a powerful RNA-seq analysis workflow that is easy to use even for beginners, built using best software development practices, available under a permissive Open Source license and open to contributions by the scientific community. " } { "@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/13-533/v1", "name": "ZARP: A user-friendly and versatile RNA-seq analysis workflow" } } ] } Home Browse ZARP: A user-friendly and versatile RNA-seq analysis workflow ALL Metrics - Views Downloads Get PDF Get XML Cite How to cite this article Katsantoni M, Gypas F, Herrmann CJ et al. ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] . F1000Research 2024, 13 :533 ( https://doi.org/10.12688/f1000research.149237.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 ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] Maria Katsantoni https://orcid.org/0000-0003-1961-0223 1,2 , Foivos Gypas 1-3 , Christina J Herrmann https://orcid.org/0000-0003-1649-3463 1,2 , [...] Dominik Burri https://orcid.org/0000-0002-8131-9309 1,2 , Maciej Bąk 1,2 , Paula Iborra 1,2 , Krish Agarwal 1 , Meriç Ataman 1,2 , Máté Balajti https://orcid.org/0009-0000-3932-3964 1,2 , Noè Pozzan 1,2 , Niels Schlusser 1,2 , Youngbin Moon https://orcid.org/0009-0001-5728-3959 1,2 , Aleksei Mironov 1 , Anastasiya Börsch 1,2 , Mihaela Zavolan 1,2 , Alexander Kanitz https://orcid.org/0000-0002-3468-0652 1,2 Maria Katsantoni https://orcid.org/0000-0003-1961-0223 1,2 , Foivos Gypas 1-3 , [...] Christina J Herrmann https://orcid.org/0000-0003-1649-3463 1,2 , Dominik Burri https://orcid.org/0000-0002-8131-9309 1,2 , Maciej Bąk 1,2 , Paula Iborra 1,2 , Krish Agarwal 1 , Meriç Ataman 1,2 , Máté Balajti https://orcid.org/0009-0000-3932-3964 1,2 , Noè Pozzan 1,2 , Niels Schlusser 1,2 , Youngbin Moon https://orcid.org/0009-0001-5728-3959 1,2 , Aleksei Mironov 1 , Anastasiya Börsch 1,2 , Mihaela Zavolan 1,2 , Alexander Kanitz https://orcid.org/0000-0002-3468-0652 1,2 PUBLISHED 24 May 2024 Author details Author details 1 Biozentrum, University of Basel, Basel, Basel-Stadt, 4056, Switzerland 2 Swiss Institute of Bioinformatics, Lausanne, Vaud, 1015, Switzerland 3 Friedrich Miescher Institute for Biomedical Research, Basel, Basel-Stadt, 4058, Switzerland Maria Katsantoni Roles: Conceptualization, Project Administration, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Foivos Gypas Roles: Conceptualization, Data Curation, Project Administration, Software, Writing – Original Draft Preparation, Writing – Review & Editing Christina J Herrmann Roles: Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Dominik Burri Roles: Software, Writing – Original Draft Preparation, Writing – Review & Editing Maciej Bąk Roles: Data Curation, Project Administration, Software, Writing – Original Draft Preparation Paula Iborra Roles: Software, Writing – Original Draft Preparation, Writing – Review & Editing Krish Agarwal Roles: Software, Writing – Review & Editing Meriç Ataman Roles: Data Curation, Validation, Writing – Original Draft Preparation Máté Balajti Roles: Software, Writing – Review & Editing Noè Pozzan Roles: Validation, Writing – Review & Editing Niels Schlusser Roles: Validation, Writing – Review & Editing Youngbin Moon Roles: Validation, Writing – Review & Editing Aleksei Mironov Roles: Validation, Writing – Review & Editing Anastasiya Börsch Roles: Validation, Writing – Original Draft Preparation Mihaela Zavolan Roles: Conceptualization, Funding Acquisition, Project Administration, Resources, Software, Supervision, Writing – Original Draft Preparation, Writing – Review & Editing Alexander Kanitz Roles: Conceptualization, Data Curation, Project Administration, Software, Supervision, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing OPEN PEER REVIEW DETAILS REVIEWER STATUS This article is included in the Bioinformatics gateway. Abstract Background RNA sequencing (RNA-seq) is a widely used technique in many scientific studies. Given the plethora of models and software packages that have been developed for processing and analyzing RNA-seq datasets, choosing the most appropriate ones is a time-consuming process that requires an in-depth understanding of the data, as well as of the principles and parameters of each tool. In addition, packages designed for individual tasks are developed in different programming languages and have dependencies of various degrees of complexity, which renders their installation and execution challenging for users with limited computational expertise. Workflow languages and execution engines with support for virtualization and encapsulation options such as containers and Conda environments facilitate these tasks considerably. The resulting computational workflows can then be reliably shared with the scientific community, enhancing reusability and the reproducibility of results as individual analysis steps are becoming more transparent and portable. Methods Here we present ZARP, a general purpose RNA-seq analysis workflow that builds on state-of-the-art software in the field to facilitate the analysis of RNA-seq datasets. ZARP is developed in the Snakemake workflow language and can run locally or in a cluster environment, generating extensive reports not only of the data but also of the options utilized. It is built using modern technologies with the ultimate goal to reduce the hands-on time for bioinformaticians and non-expert users and serve as a template for future workflow development. To this end, we also provide ZARP-cli, a dedicated command-line interface that may make running ZARP on an RNA-seq library of interest as easy as executing a single two-word command. Conclusions ZARP is a powerful RNA-seq analysis workflow that is easy to use even for beginners, built using best software development practices, available under a permissive Open Source license and open to contributions by the scientific community. READ ALL READ LESS Keywords bioinformatics, data analysis, high-throughput, transcriptomics, RNA-seq, computational workflow, reproducibility, usability Corresponding Author(s) Mihaela Zavolan ( [email protected] ) Alexander Kanitz ( [email protected] ) Close Corresponding authors: Mihaela Zavolan, Alexander Kanitz Competing interests: No competing interests were disclosed. Grant information: The work was supported by Swiss National Science Foundation grant #189063 to MZ and by the NCCR RNA & Disease (grant #182880) funding to MZ. MK, DB and MBak were supported by the "Biozentrum PhD Fellowships" program of the University of Basel. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Copyright: © 2024 Katsantoni M 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: Katsantoni M, Gypas F, Herrmann CJ et al. ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] . F1000Research 2024, 13 :533 ( https://doi.org/10.12688/f1000research.149237.1 ) First published: 24 May 2024, 13 :533 ( https://doi.org/10.12688/f1000research.149237.1 ) Latest published: 24 May 2024, 13 :533 ( https://doi.org/10.12688/f1000research.149237.1 ) Introduction Recent years have seen an exponential growth in new bioinformatics tools, 1 a large proportion of which are dedicated to High Throughput Sequencing (HTS) data analysis. For example, there are tools to quantify the expression level of transcripts and genes from RNA-seq data, 2 , 3 identify RNA-binding protein (RBP) binding sites from crosslinking and immunoprecipitation (CLIP) data, 4 identify alternative polyadenylation sites and/or quantify their usage, 5 , 6 or analyze single cell RNA-seq data. 7 Such tools are written in different programming languages (e.g., Python, R, C, Rust) and have distinct library requirements and dependencies. In most cases, the tools expect the input to be in one of the widely used genomics file formats (e.g., FASTQ, 8 BAM 9 ), but custom formats are also frequently used. Combining such tools into an analysis protocol is a time-consuming and error-prone process. But as the analysis of HTS data (and other Big Data in the life sciences) has become such a common problem, 10 , 11 and as the datasets continue to increase in size and complexity, there is an urgent need for expertly curated, well-tested, maintained and easy-to-use reusable computational workflows and registries to share and access them. 12 – 14 A number of modern, feature-rich workflow specification languages and corresponding management systems, 15 , 16 like Snakemake 17 and Nextflow, 18 are now gaining popularity in the life sciences, as they make the analyses easier to develop, test, share, deploy and execute. To facilitate the installation and execution of workflows across different hardware architectures and host operating systems, modern workflow management systems make use of virtualization and encapsulation techniques relying on containers (e.g., Docker 19 and Singularity/Apptainer 20 ) and/or package managers, Conda in particular. An added advantage of using workflow specification languages is that the metadata and general provenance information is stored along with the main outcomes. These may be invaluable for a more fine-grained attribution of researcher contributions, reproducibility of analysis results and insights, and cost optimization of computing resources. Ongoing work at formalizing these metadata artifacts and adding support for such standardized schemas in workflow management systems 21 is very much in line with current efforts to FAIRify research data and software. 22 , 23 All of these advantages ultimately lead to more reusable code and reproducible results, while fostering cooperativity and collaboration, both on scientific projects and on the development of Open Source Software. A number of workflows for the analysis of bulk RNA-seq data have been developed by the community. 24 – 30 However, out of these, some are too complex for many users to deploy, run and/or interpret, while others do not easily allow customizations and/or the analyses of large numbers of samples. Here we present ZARP, a flexible, easy-to-use workflow for bulk RNA-seq data processing that enables rapid initial insights into the data. The inclusion of the most widely used and best performing tools for the various processing steps minimizes time spent by users on making tool choices. The implementation in a widely used workflow language ensures reproducibility and reliable execution of each analysis and facilitates (meta) data management and reporting. A dedicated command-line interface tool (ZARP-cli) allows for even easier execution of the workflow and management of ZARP runs. ZARP is useful to experimental biologists who want to rapidly assess the results of their high-throughput sequencing experiments and to bioinformaticians who can not only use the preliminary results in their downstream analyses, but also adapt the analysis workflow according to their needs. Note that a preprint of this article is deposited at BioRxiv. 31 Methods Implementation ZARP ( Z avolan-Lab’s A utomated R NA-seq P ipeline) is a general purpose RNA-seq analysis workflow that allows users to carry out the most common steps in the analysis of Illumina RNA-seq libraries with minimum effort. The workflow is developed in Snakemake, 17 a widely used workflow language, 15 and follows best practice recommendations for workflow development. 32 Importantly, ZARP relies on publicly available bioinformatics tools that each can be considered state-of-the-art in their specific tool class, 33 and it handles bulk, stranded, single- or paired-ended RNA-seq data. Workflow inputs ZARP requires two distinct inputs: (i) A “sample table”, a tab-delimited file with sample-specific information, such as paths to the sequencing data (FASTQ format), reference genome sequence (FASTA format), transcriptome annotation (GTF format) and additional experiment protocol- and library-preparation specifications like adapter sequences or fragment size; (ii) A configuration file in YAML format containing workflow-related parameters, such as results and log directory paths, as well as user-related information, like a contact email address. Advanced users can take advantage of ZARP’s flexible design to provide tool-specific configuration parameters via an optional third input file, which allows for adjusting the behavior of the workflow to their specific needs. Detailed information on the input files can be found in the documentation available in the ZARP repository on GitHub. Analysis steps and workflow outputs A general schema of the ZARP workflow in its current version is presented in Figure 1 . For a more comprehensive representation that includes all steps, see Figure 2 . Table 1 below lists the main functionalities of ZARP and the tools that provide these functionalities, roughly in the order in which they are executed: Figure 1. Schematic overview of the ZARP workflow. Given the input files specified in a sample table, ZARP preprocesses and maps RNA-seq reads, quantifies RNA expression levels, assesses the quality, and returns various outputs. Color legend: inputs - yellow, outputs - blue, analysis tools - gray, tools for quality control - turquoise. Figure 2. ZARP workflow schema. Graph-based representation of the ZARP workflow, including all of its steps (“rules”), as produced by running Snakemake with the --rulegraph option. Steps for both the single- and the paired-ended workflows are shown. Table 1. ZARP functionalities and the tools providing them. See main text for more information on use cases for each tool and why we chose those tools to be included in ZARP and ZARP-cli. Versions at time of writing are indicated. Tool Description Reference FastQC 0.12.1 Generates quality control metrics from raw FASTQ data. GitHub Cutadapt 4.6 Trims 5’ and 3’ adapter sequences, as well as poly(A) and/or poly(T) tails/stretches. 35 STAR 2.7.11b Aligns reads to the reference genome. 36 tin-score-calculation 0.6.3 Calculates a transcript integrity number (TIN) for each transcript, a measure to reflect the degree of RNA degradation, based on aligned reads. GitHub ALFA 1.1.1 Provides functional annotation information for the sample based on read alignments and gene/transcript annotations. 41 kallisto 0.48.0 Estimates gene/transcript expression levels. 43 Salmon 1.10.2 Estimates gene/transcript expression levels. 44 zpca 0.8.3.post1 Performs principal component analyses of gene/transcript expression level estimates across samples included in a given workflow run. GitHub MultiQC 1.10.1 Aggregates tool results and generates interactive reports. 46 SRA Toolkit 3.0.10 (ZARP-cli) Fetches sequencing libraries from the Sequence Read Archive (47 ) and converts them to FASTQ GitHub HTSinfer 0.11.0 (ZARP-cli) Infers sample metadata from RNA-seq libraries GitHub genomepy 0.16.1 (ZARP-cli) Fetches genomes and gene model annotations 49 Per-sample statistics obtained by applying FastQC directly to the input files (FASTQ format) provide a quick assessment of the overall sample quality. Statistics include GC content, overrepresented sequences, and adapter content. An excessive bias in GC content may affect downstream analyses and may have to be corrected for. 34 Overrepresented sequences may reflect contamination or PCR duplication artifacts, which, if excessive, could lead to sparse coverage and skewed expression estimates of the transcripts of interest. Information about adapter content can help identify issues that may occur during sample preparation. For more information on the metrics that FastQC reports and how they can be interpreted, please refer to the FastQC documentation . Trimming of 5’ and/or 3’ adapters as well as poly(A/T) stretches with Cutadapt 35 helps determine the proportion of informative sequences in the library and ensures a more reliable alignment of reads to a set of reference sequences to determine their biological origin. The adapters and poly(A/T) stretches to be removed need to be provided by the user as part of the sample table. STAR 36 infers the genomic origin of the reads by aligning them against an appropriate reference genome and a database of splice junctions that STAR prepares based on the corresponding gene model annotations. The reference genome and gene annotations need to be provided by the user as part of the sample table. STAR has been chosen for its very competitive performance in terms of accuracy, compared to other aligners, 37 as well as for its extensive feature set and documentation. For enabling fast random access of the resulting Binary Alignment Map (BAM) alignment files, e.g., to explore them in genome browsers, ZARP then uses SAMtools 9 to sort alignments by their genomic position and index them. The sorted, indexed BAM files are further converted into the BigWig format with BedGraphtoBigWig from the UCSC tools suite. 38 BigWig files allow for easy library normalization and are considerably smaller than the corresponding BAM files, thus making them convenient for visualizing and comparing coverages across multiple samples. The aligned reads are also used to calculate per-transcript transcript integrity numbers (TIN), 39 a metric to assess the degree of RNA degradation in the sample, on a per-transcript basis. This is done with tin-score-calculation , which is based on a script originally included in the RSeQC package, 40 but modified by us to enable multiprocessing for increased performance. To provide a high-level topographical and functional annotation of the gene segments (e.g., coding regions, untranslated regions, intergenic) and biotypes (e.g., protein coding genes, rRNA) that are represented by the reads in a given sample, ZARP includes ALFA. 41 Estimating transcript abundances from RNA-seq data not only allows for subsequent differential analysis on the transcript level but also improves gene level inferences 42 and is preferable to counting read alignments. 2 Out of the various tools developed for that purpose, 2 , 3 the alignment-free or “pseudoalignment”-based tools kallisto 43 and Salmon 44 have emerged as the state of the art for the inference of transcript abundance, due to their similarly compelling performance, ease of use, fast runtimes and memory efficiency. 3 As both tools are widely used and are fairly low on resource requirements, we have decided to include both for the quantification of transcript and gene level expression. The main output metrics provided by either tool are estimates of normalized transcript/gene expression, in Transcripts Per Million (TPM), 45 as well as raw read counts. For convenience, ZARP aggregates transcript and gene expression estimates across all samples with the aid of Salmon and merge_kallisto , generating summary tables that can be plugged into a variety of available tools, e.g., for differential gene/transcript expression, differential transcript usage or gene set enrichment analyses. Within ZARP, TPM estimates are used for performing principal component analyses (PCA) with the help of zpca , a tool we created for use in ZARP, but packaged separately so that it can be easily used on its own or as part of other workflows. PCAs on gene/transcript expression levels can help users assess the relationship between samples, to detect batch effects and inform the way in which samples should be compared in downstream analyses. Quality assessments, read alignments, genome coverages, and transcript and gene abundances can be used in downstream applications in a myriad ways, particularly when different cohorts are compared, e.g., in differential gene expression analyses. But given that such analyses require more complex inputs (e.g., experiment design tables) and are difficult to configure generically for a wide range of experiments, we deliberately decided not to include these in ZARP. ZARP produces two user-friendly, browser-based, interactive reports: one with a summary of sample-related information generated by MultiQC, 46 the other with estimates of utilized computational resources generated by Snakemake itself. Note that for the tin-score-calculation, ALFA and zpca tools, we have created plugins that enable the interactive exploration of their respective results through MultiQC. The ZARP command line interface ZARP comes with ZARP-cli, a dedicated command line interface to further simplify its usage by giving it the look and feel of a single executable. 47 See Figure 3 for a general schematic outline of its functionalities and Table 1 for a list of the core tools providing them. Figure 3. Schematic overview of the ZARP-cli functionalities. ZARP-cli consolidates different input references and compiles a sample table and a configuration file, i.e., the inputs to ZARP. Along the way, where necessary, it fetches remote libraries, attempts to infer sample metadata, including the sample source organism, and downloads the corresponding genome resources. At the core of ZARP-cli lies its cascading configuration management: Upon first use, users set up default parameters that include sample metadata to be used if no better source is provided (or can be inferred). Configuration parameters can be overridden, on a per-run basis, with command line arguments, which in turn can be overridden, on a per-sample basis, by entries in a sample table. This design ensures that the most accurate information can be easily passed and consumed. Once configured, ZARP-cli compiles the set of samples to analyze from the positional command line arguments specified by the user. These “sample references” can point to sequencing libraries available either locally or on the Sequence Read Archive, 48 or they can point to partially or fully complete ZARP sample tables. Figure 4 illustrates all of the different ways that sample references can be passed to ZARP-cli. Figure 4. ZARP-cli example calls. Once the sample set has been assembled, ZARP-cli iteratively completes a sample table by filling in any missing information. To that effect, ZARP-cli first makes use of the SRA Toolkit to fetch any remote sequencing libraries from the Sequence Read Archive 48 and convert them to FASTQ, yielding the local paths for both single- and paired-ended libraries. Next, ZARP-cli triggers HTSinfer , a tool developed by us for the inference of RNA-seq metadata that is important for downstream analyses from the sequencing data itself. While still in an experimental/pre-release stage, HTSinfer is often able to extract, infer or assert the following: (i) whether two FASTQ files contain “mate pairs” of the same paired-ended sequencing library, (ii) the source organism from which the library is derived (out of currently more than 400 supported organisms), (iii) the relative orientation of reads with respect to the RNA transcript from which they originate and, for paired-ended libraries, one another, (iv) the frequency of commonly encountered 3’ adapters, and (v) read length statistics. Importantly, ZARP-cli uses the derived information only where such metadata is not provided by the user as part of the configuration or sample table. Of note, both the SRA download and metadata inference steps are packaged as independent Snakemake workflows that are currently available along with the main ZARP workflow in the same GitHub repository . After inferring sample metadata, ZARP-cli uses genomepy 49 to fetch the genomes and gene model annotations from Ensembl. 50 The genome version to be fetched for a given organism is pre-configured in a data file shipped with ZARP-cli; it can be easily updated or amended manually, via a text editor. To ensure consistent use of the same gene annotation version in all analyses of RNA-seq libraries within a given group, time frame or project, a default gene model annotation version can be pre-configured during ZARP-cli initialization. If no default version is set, genome resources (annotations and genomes!) are always fetched (and never reused across runs). Gene model annotation versions can also be set via a dedicated command line argument, overriding any default version set in the user configuration. Finally, ZARP-cli assembles a sample table and a configuration file and triggers the ZARP run. In extreme cases, a ZARP-cli command can be as short as two words, zarp (the name of the program) and a single sample reference. However, making it easier to start ZARP runs is not the only benefit of using the command line interface: ZARP-cli also enforces a file and directory structure that makes it easy to find information from older ZARP runs and prevents accidental workflow re-runs for samples that have already been analyzed. Likewise, genome resources and remote libraries can be configured to be fetched only once. Finally, group- or project-specific ZARP configurations can be easily enforced, e.g., to make sure that sequencing libraries are consistently analyzed with the same set of genome resources. Development principles and best practices ZARP development follows best practices for scientific analysis workflows. 32 First of all, we chose to develop the workflow in Snakemake, 17 a widely adopted workflow management system 16 that allows for robust and scalable execution of computational analyses. To further enhance reusability and portability of the workflow, i.e., that it can be deployed in various scenarios, such as “on premise” High Performance/Throughput Computing (HPC/HTC) clusters or in the cloud, 51 for each step (referred to as “rule” in Snakemake) of the workflow we have defined both a “rule-specific” Conda environment recipe file and a container image. The corresponding tool binaries and images are primarily hosted by the Bioconda 52 and BioContainers 53 registries for improved access metrics and long term preservation plans. For container images, Snakemake converts the indicated Docker images to the Singularity Image Format 20 on the fly, where needed, enabling seamless execution of the workflow in environments with limited privileges (e.g., HPC/HTC clusters). Users can choose between Conda- and container-based 54 execution by selecting or preparing an appropriate profile when/before running a workflow. In the current version, we include profiles only for the Slurm job scheduler. However, we will gladly accept new profiles provided by the community, and therefore we encourage users to propose the addition of their own profiles back to the original ZARP repository via raising pull requests. To reduce the storage footprint of data generated by ZARP, intermediate files can be optionally cleaned up. On the other hand, as they use a Snakemake workflow, ZARP runs generate extensive log files and workflow run metadata. This information is relevant for accounting, telemetry and provenance purposes, with current efforts ongoing at standardizing such information for improved reproducibility of workflow runs. 21 The software described here follows the 4OSS Recommendations 55 : ZARP and ZARP-cli are hosted in their own GitHub repositories, are published under the permissive Apache, Version 2.0 free and open source software license, and follow Semantic Versioning , with each release accompanied by extensive, up-to-date documentation. We have deposited ZARP at the WorkflowHub , a registry specialized in hosting computational analysis workflows. 13 It is also available in the “Standardized Usage” section of the Snakemake Workflow Catalog . ZARP-cli and any custom tools/scripts that may be useful beyond the scope of ZARP, have been largely developed according to best practice recommendations 56 and deposited at Bioconda, 52 which ensures that they are also available on BioContainers. 53 We embrace community contributions to all of our software and try our best to ensure that all contributions are duly acknowledged in our communication. Finally, to facilitate attribution and guard against software regression and degradation, we are committed to software development best practices, such as the use of version control systems and automated continuous integration, testing and deployment workflows. In particular, for both ZARP-cli and ZARP, we provide and routinely execute extensive sets of unit and integration tests. Operation ZARP and ZARP-cli require a Linux operating system (tested with CentOS 8, Debian 11, 12; Ubuntu 20.4, 22.4). To install dependencies, we strongly recommend installing a flavor of Conda , e.g., Miniforge . See the installation instructions for ZARP and ZARP-cli for further details. Of note, the current ZARP version is not compatible with Snakemake 8+, because the latest Snakemake major version introduced a number of breaking changes that we are not yet supporting. For running individual workflow steps with Conda, we further recommend installing Mamba , in line with Snakemake recommendations . Conversely, for running workflow steps inside containers, SingularityCE or Apptainer is required. For analyzing large numbers of samples of any size and from any source, we strongly recommend running ZARP on an HPC/HTC, as the horizontal scaling and extensive multithreading will significantly reduce the wall clock time. A standard laptop or desktop machine (8 GB RAM, 4-core CPU) will be sufficient for small to medium runs (<100 samples) if only used as a Snakemake “head node”, i.e., the machine that coordinates the execution of workflow runs but leaves demanding computations to an HPC/HTC or the cloud (untested). If run entirely on a single machine, we recommend at least 32 GB (processing samples derived from certain organisms may not be possible), but preferably 128+ GB of RAM. But even then, the throughput will be limited due to reduced potential for horizontal scaling and multithreading. See section “Use Cases” below for further details on performance. Use cases ZARP is very well suited to analyze large RNA-seq experiments or even run meta-analyses across multiple different experiments. To demonstrate how ZARP can be used to gain meaningful insights into typical RNA-seq experiments, we tested it on an RNA-seq dataset that was generated by Ham et al. (GEO accession number GSE139213) while analyzing the role of mTORC1 signaling in the age-related loss of muscle mass and function in mice. 57 The dataset consists of 20 single-ended RNA-seq libraries (read length: 101 nt, gzipped FASTQ file sizes ranging from 0.8 to 3.2 Gb; library sizes ranging from 18.5 to 75.3 million reads), corresponding to four cohorts of 5 biological replicates each of muscle tissue from 3-months old mice: (i) wild-type, (ii) rapamycin-treated, (iii) tuberous sclerosis complex 1 (TSC1) knockout and (iv) rapamycin-treated TSC1 knockout. The reads were mapped against Ensembl’s 50 GRCm39 genome primary assembly and corresponding gene annotations (release: 111) for standard mouse chromosomes. Other parameters for populating the ZARP sample table were mined from the metadata provided in the GEO accession entry for the sample set. Sample tables, instructions on how to start the ZARP run either via a Snakemake call or via the ZARP-cli command line interface, and select results for the test run are publicly available. 58 In Figure 5 , we present a subset of the outputs that ZARP generated for this dataset. One observation is the presence of slightly AU-rich reads ( Figure 5A ), although all samples pass the FastQC-defined threshold for GC bias, and the GC content does not exhibit a strong bias across samples. Transcript integrity across samples is also uniform and high ( Figure 5B ), with the highest density of expressed transcripts at TIN scores of 75 to 85. There is also no evidence of extensive sequencing of residual adapters (“adapter contamination”; Figure 5C ), as less than 1% of reads in each sample have been discarded for being too short after adapter trimming. Similarly, alignment statistics as reported by STAR are also consistently high ( Figure 5D ), with rates of reads mapped uniquely against the mouse genome of more than 72% across all samples (<4% unmapped), irrespective of sequencing depth. As expected, ALFA analysis of transcript categories shows that uniquely mapped reads overwhelmingly originated from protein-coding genes (over 86% for all samples) ( Figure 5E ). Taken together, these metrics indicate that all samples are of sufficiently high quality for downstream analysis. Figure 5. Selection of metrics reported by ZARP. Shown are (A) GC content, (B) Transcript integrity numbers (TIN), (C) adapter removal report, (D) alignment statistics, and (E) biotypes for the test run described in the main text. Figures have been slightly edited for visibility and accessibility: some labels have been increased, cohort names have been simplified, samples have been grouped according to cohorts, and cohorts are highlighted in different colors via the MultiQC “Highlight” functionality. Additionally, some biotypes have been omitted from (E) as they are not meaningfully represented. Note that in (B), transcripts that are not expressed are assigned a TIN score of 0. The complete raw HTML report can be found at Zenodo. 58 Cohort names correspond to the mouse sample cohorts described above as follows, CTRL: wild-type, CTRL RAPA: rapamycin-treated, TSCmKO: tuberous sclerosis complex 1 (TSC1) knockout, TSCmKO RAPA: rapamycin-treated TSC1 knockout. In addition to sample-specific metrics, ZARP also performs principal component analyses across samples ( Figure 6 ). For the test run, the distribution of samples in the space of the first two principal components shows a clustering by condition, with a clear separation between knockout and wild type, as well as between the untreated and rapamycin-treated TSC1 knockout mice. This separation is more pronounced at the gene expression level ( Figure 6A ), but is also present at the transcript level ( Figure 6B ). This shows that the differences across conditions are more pronounced than any replicate biases (multiplicative noise, sequencing errors), which strongly increases the likelihood that any subsequent analyses (e.g., differential gene/transcript expression analysis) will provide targets of biological importance. Figure 6. Principal component analysis. PCA at the (A) gene and (B) transcript level. PC1 and PC2 correspond to the first and second principal components, respectively. Variances explained by each of them are stated in the parentheses of the corresponding axes labels. Expression levels used in this figure are those reported by kallisto, but ZARP also generates corresponding PCA plots for Salmon-based quantifications. The figure has been slightly edited for visibility and accessibility: some labels have been increased, cohort names have been simplified and different colors for cohorts have been chosen via MultiQC’s “Highlight” functionality. The total wall clock time to execute the entire test run was over one hour (1 h 12 min; see Figure 7 ) for all 20 samples on our institution’s Slurm-managed HPC cluster , where we could make heavy use of ZARP’s parallelization capabilities. This translates to a total CPU time of 71.65 h, out of which 8.32h were not sample-specific, i.e., jobs that had to be executed only once for all samples. The accumulated sample-specific CPU time used for each sample varied between 1.6h and 5h (mean: 3.2h). While the actual runtime may differ considerably across different compute environments, we project that most users would be able to run even large-scale analyses with dozens to hundreds of samples in less than a day on an HPC/HTC cluster or in the cloud, with very little hands-on time. Maximum memory usage for any of the steps and across all samples was 30.2 Gb for rule map_genome_star , which is in accordance with STAR requirements. 36 With <32 Gb, this indicates that ZARP is suitable for execution on state of the art desktop and and even laptop computers, albeit at considerably higher runtimes due to the need for serial execution of individual steps and limited use of multithreading. Also, steps requiring a lot of memory are typically those that index or otherwise process genomes and/or gene annotations, so that memory requirements are higher for samples sourced from organisms with larger genomes or higher resolution annotations. None of the jobs took longer than ~35 min (wall clock time) for any of the samples ( Figure 7 ). Among the most time-consuming steps are the creation of indices for STAR, Salmon, and kallisto (from 10min to 35 min), which, however, typically have to be performed only once per set of genome resources - and would be reused across additional runs if the same working directory is used (use ZARP-cli to enforce the consistent use of the same directory for your ZARP runs). Among the sample-specific steps, the calculation of the transcript integrity number (TIN) was the most time-consuming. However, we had already considerably reduced its runtime by adding parallelization capabilities to the original script (see Methods for further details). Figure 7. Runtime statistics. Left: Creation date of the files of each of the rules as generated by Snakemake’s reporting functionality. Right: Runtime (in seconds; wall clock time) of the different steps (“rules”) of the workflow run are depicted for each sample, as generated by Snakemake’s reporting functionality. Axis sizes were modified using Vega Editor , a functionality available directly from the Snakemake report. Differences observed across samples are a function of sample sizes, but also include sources of variation such as the time that individual jobs spent queuing on our Slurm-managed HPC cluster, as well as the hardware specifications of the cluster nodes these jobs eventually ended up on. Triggering the test case run with an appropriate Snakemake call is easy enough, yet still requires users to fetch sample libraries and genome resources manually, from the Sequence Read Archive 48 and Ensembl, 50 respectively. These steps can be automated by passing the sample table to ZARP-cli instead – slightly modified to replace sample names with SRA run identifiers, and leaving the sample library and genome resource path columns empty. The modified sample table for use with ZARP-cli is also provided in our example data repository. 58 Preparing a sample table is straightforward when the necessary metadata is readily available. However, in our own experience, due to a lack of widely adopted reporting standards that would reliably enable at least the most common types of downstream analyses for RNA-seq data, this is rarely the case when data is fetched from external sources. Especially for large sample sets from different cohorts, preparing a correct sample table will at the very least require painstaking literature mining. To address this issue, and to make ZARP even more accessible, we have included in ZARP-cli our RNA-seq “metadata sniffer” HTSinfer, which attempts to infer important (and widely underreported) metadata, such as the read orientation and 3’ adapters, from the sample libraries themselves. Our supplementary data repository 58 includes an example of how this functionality allows ZARP users to work with a sparse sample table with parts or even all of the metadata missing, across samples from multiple organisms and prepared according to different protocols, in a single run. For quick checks, and in its most simple invocation, ZARP-cli can be called with a “two word” command like zarp SRR23590181 . Examples of how ZARP-cli can be called are summarized in Figure 4 . We note that HTSinfer is still experimental, as its attempts at inferring metadata will often fail, most commonly because the data is compatible with more than one outcome and there is insufficient resolution in our inference metrics to distinguish them (e.g., a sample is compatible with two or more source organisms). Nevertheless, even the partial information that HTSinfer does provide saves substantial time on the part of the user. Moreover, ZARP(-cli) will continuously be updated with the latest version of HTSinfer to ensure that the most accurate metadata inference is made available to its users. In summary, our test cases demonstrate how ZARP can be used to quickly gain informative insights ( Figures 5 & 6 ) from non-trivial real-world RNA-seq datasets in a reasonable timeframe ( Figure 7 ) and how the dedicated ZARP command line interface can be used to trigger RNA-seq analyses with unprecedented ease ( Figure 4 ). Conclusions/Discussion ZARP is a general purpose, easy-to-use, reliable and efficient RNA-seq processing workflow that can be used by molecular biologists with minimal programming experience and bioinformatics experts alike. Scientists with access to a UNIX-based computer with at least 32 GB RAM (Linux and 128+ GB RAM preferred), or to a computing cluster or commercial cloud service, can run the workflow to get an initial view of their data on a relatively short time scale. For laboratories frequently generating RNA-seq data, running ZARP on incoming data can be easily incorporated into an automated data acquisition workflow through ZARP-cli’s Python API. Similarly, ZARP-cli is particularly well suited for analyzing large-scale systematic studies that rely on hundreds or even thousands of sequencing libraries. ZARP has been specifically fine-tuned to process bulk RNA-seq datasets, allowing users to run it out of the box with default parameters. At the same time, ZARP allows advanced users to customize workflow behavior, thereby making it a helpful and flexible tool for edge cases, where a more generic analysis with default settings is unsuitable. The outputs that ZARP provides can serve as entry points for other project-specific analyses, such as differential gene and transcript expression analyses. ZARP and ZARP-cli are publicly available under a permissive open source license (Apache License, Version 2.0), and contributions from the bioinformatics community are welcome. Please address all development-related inquiries as issues at the official GitHub repositories for ZARP and ZARP-cli . ZARP’s ease of use, coupled with its versatility, the use of state-of-the-art tools and modern technologies, its high level of adherence to best software development, Open Source and Open Science practices, and its strict focus on a well defined problem make it stand out among its competition, in particular with respect to analyzing large numbers of samples in a reproducible manner. Ethics and consent Ethical approval and written informed consent were not required. Data and software availability Underlying data • Gene Expression Omnibus 59 : The neuromuscular junction is a focal point of mTORC1 signaling in sarcopenia [TSCmKO data set] ( Mus musculus ; samples: GSM4134108 to GSM4134127). Accession number GSE139213; https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE139213 . 60 • Gene Expression Omnibus: SM_STG1_T0_2 ( Zea mays ; series: Nitrogen fixation and mucilage production on maize aerial roots is controlled by aerial root development and border cell functions). Accession number GSM5137669; https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM5137669 . 61 • Gene Expression Omnibus: Naive_Propy_20uM_Myeloid TAGCGCTC_ATAGCCTT ( Danio rerio ; series: RNAseq analysis of the herbicide propyzamide on a pre-clinical model of IBD on Danio rerio model). Accession number GSM5835373; https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM5835373 . 62 • Gene Expression Omnibus: C. elegans, with bacteria, 0h, rep1 ( Caenorhabditis elegans ; series: Long-term imaging reveals behavioral plasticity during C. elegans dauer exit). Accession number GSM6601040; https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM6601040 . 63 • Gene Expression Omnibus: 95Cb.del_rep2 ( Drosophila melanogaster ; series: Deletions of singular U1 snRNA gene significantly interfere with transcription and 3′-end mRNA formation rather than pre-mRNA splicing). Accession number GSM7051046; https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM7051046 . 64 • Gene Expression Omnibus: B-P-D6-1h-9_S36 ( Mus musculus ; series: Transmission of stimulus-induced epigentic changes through cell division are coupled to changes in transcription factor activity). Accession number GSM7058404; https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM7058404 . 65 Extended data Zenodo. 66 ZARP: Supplementary materials. 10.5281/zenodo.10797372 . 58 This project contains the following extended data: • zarp_use_cases.zip : Includes instructions, convenience scripts and input data required to reproduce the use cases described in this article. • mouse_sarcopenia_example_outputs.zip : Contains the cross-sample outputs (gene/transcript expression tables, PCA, MultiQC report and Snakemake report) produced by a ZARP run for the described mouse sarcopenia RNA-seq experiment (not including indexes), as well as the sample-specific outputs for the smallest of the 20 samples. • zarp_cli_example_outputs.zip : Contains a representative fraction of the outputs produced by the described ZARP-cli runs; in particular, it contains the artifacts generated by the SRA download workflow for a single C. elegans sample (SRR21711080), the outputs produced by the HTSinfer workflow for all 25 samples (20 from the mouse sarcopenia dataset and 5 from the metadata inference demonstration run), the genome resources created by genomepy for the C. elegans genome WBcel235, and the C. elegans -specific ZARP workflow results, including indexes. Data and code/scripts are available under the terms of the CC-BY 4.0 and Apache License, Version 2.0 licenses, respectively. More detailed license information is provided in the record itself. Software Source code available from : https://github.com/zavolanlab/zarp (ZARP) and https://github.com/zavolanlab/zarp-cli (ZARP-cli) Archived source code at time of publication: 10.5281/zenodo.10797025 (ZARP v1.0.0-rc.1) 67 and 10.5281/zenodo.10789819 (ZARP-cli v1.0.0-rc.1) 68 License: Apache License, Version 2.0. On both GitHub (source code) and Zenodo (code archives), the software is accessible for anyone to download without prior registration. For most purposes, we recommend fetching the software from GitHub, as it will host the most up-to-date code. Acknowledgements Calculations were performed at the sciCORE scientific computing center at the University of Basel. We would like to thank the sciCORE team for their time and efforts to aid us in this project. We would also like to express our deepest gratitude towards all members of the Zavolan Lab who contributed to this work with numerous pieces of advice and feedback, during the initial development, as well as by testing the workflow in later stages. Finally, we would like to thank the Bioconda community for helping us package and distribute some of the custom tools we developed. References 1. Levin C, Dynomant E, Gonzalez BJ, et al. : A data-supported history of bioinformatics tools. arXiv [cs. DL]. 2018 Jul. Publisher Full Text 2. Kanitz A, Gypas F, Gruber AJ, et al. : Comparative assessment of methods for the computational inference of transcript isoform abundance from RNA-seq data. Genome Biol. 2015 Jul 23; 16 : 150. PubMed Abstract | Publisher Full Text | Free Full Text 3. Teng M, Love MI, Davis CA, et al. : A benchmark for RNA-seq quantification pipelines. Genome Biol. 2016 Apr 23; 17 : 74. PubMed Abstract | Publisher Full Text | Free Full Text 4. Hafner M, Katsantoni M, Köster T, et al. : CLIP and complementary methods. Nat. Rev. Methods Primers. 2021 Mar 4; 1 (1): 1–23. Publisher Full Text 5. Herrmann CJ, Schmidt R, Kanitz A, et al. : PolyASite 2.0: a consolidated atlas of polyadenylation sites from 3′ end sequencing. Nucleic Acids Res. 2019 Oct 16; 48 (D1): D174–D179. PubMed Abstract | Publisher Full Text | Free Full Text 6. Bryce-Smith S, Burri D, Gazzara MR, et al. : Extensible benchmarking of methods that identify and quantify polyadenylation sites from RNA-seq data. RNA. 2023 Dec; 29 (12): 1839–1855. PubMed Abstract | Publisher Full Text | Free Full Text 7. Zappia L, Theis FJ: Over 1000 tools reveal trends in the single-cell RNA-seq analysis landscape. Genome Biol. 2021 Oct 29; 22 (1): 301. PubMed Abstract | Publisher Full Text | Free Full Text 8. Cock PJA, Fields CJ, Goto N, et al. : The Sanger FASTQ file format for sequences with quality scores, and the Solexa/Illumina FASTQ variants. Nucleic Acids Res. 2009 Dec 16; 38 (6): 1767–1771. PubMed Abstract | Publisher Full Text | Free Full Text 9. Li H, Handsaker B, Wysoker A, et al. : The Sequence Alignment/Map format and SAMtools. Bioinformatics. 2009 Aug 15; 25 (16): 2078–2079. PubMed Abstract | Publisher Full Text | Free Full Text 10. Muir P, Li S, Lou S, et al. : Erratum to: The real cost of sequencing: scaling computation to keep pace with data generation. Genome Biol. 2016 Apr 28; 17 : 78. PubMed Abstract | Publisher Full Text | Free Full Text 11. Fillinger S, de la Garza L , Peltzer A, et al. : Challenges of big data integration in the life sciences. Anal. Bioanal. Chem. 2019 Oct; 411 (26): 6791–6800. Publisher Full Text 12. Ewels PA, Peltzer A, Fillinger S, et al. : The nf-core framework for community-curated bioinformatics pipelines. Nat. Biotechnol. 2020 Mar; 38 (3): 276–278. PubMed Abstract | Publisher Full Text 13. Goble C, Soiland-Reyes S, Bacall F, et al. : Implementing FAIR Digital Objects in the EOSC-Life workflow collaboratory. Zenodo. 2021 Mar 12. Publisher Full Text 14. Yuen D, Cabansay L, Duncan A, et al. : The Dockstore: enhancing a community platform for sharing reproducible and accessible computational protocols. Nucleic Acids Res. 2021 Jul 2; 49 (W1): W624–W632. PubMed Abstract | Publisher Full Text | Free Full Text 15. Perkel JM: Workflow systems turn raw data into scientific knowledge. Nature. 2019 Sep; 573 (7772): 149–150. PubMed Abstract | Publisher Full Text 16. Wratten L, Wilm A, Göke J: Reproducible, scalable, and shareable analysis pipelines with bioinformatics workflow managers. Nat. Methods. 2021 Sep 23; 18 : 1161–1168. PubMed Abstract | Publisher Full Text 17. Mölder F, Jablonski KP, Letcher B, et al. : Sustainable data analysis with Snakemake. F1000Res. 2021 Jan 18; 10 (33): 33. PubMed Abstract | Publisher Full Text | Free Full Text 18. Di Tommaso P, Chatzou M, Floden EW, et al. : Nextflow enables reproducible computational workflows. Nat. Biotechnol. 2017 Apr 11; 35 (4): 316–319. PubMed Abstract | Publisher Full Text 19. Boettiger C: An introduction to Docker for reproducible research. Oper Syst Rev. 2015 Jan 20; 49 (1): 71–79. Publisher Full Text 20. Kurtzer GM, Sochat V, Bauer MW: Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11; 12 (5): e0177459. PubMed Abstract | Publisher Full Text | Free Full Text 21. Leo S, Crusoe MR, Rodríguez-Navas L, et al. : Recording provenance of workflow runs with RO-Crate. arXiv [cs. DL]. 2023 Dec. Publisher Full Text 22. Wilkinson MD, Dumontier M, Aalbersberg IJJ, et al. : The FAIR Guiding Principles for scientific data management and stewardship. Sci. Data. 2016 Mar 15; 3 : 160018. PubMed Abstract | Publisher Full Text | Free Full Text 23. Barker M, Chue Hong NP, Katz DS, et al. : Introducing the FAIR Principles for research software. Sci. Data. 2022 Oct 14; 9 (1): 622. PubMed Abstract | Publisher Full Text | Free Full Text 24. Sahraeian SME, Mohiyuddin M, Sebra R, et al. : Gaining comprehensive biological insight into the transcriptome by performing a broad-spectrum RNA-seq analysis. Nat. Commun. 2017 Jul 5; 8 (1): 59. PubMed Abstract | Publisher Full Text | Free Full Text 25. Cornwell M, Vangala M, Taing L, et al. : VIPER: Visualization Pipeline for RNA-seq, a Snakemake workflow for efficient and complete RNA-seq analysis. BMC Bioinformatics. 2018 Apr 12; 19 (1): 135. PubMed Abstract | Publisher Full Text | Free Full Text 26. Orjuela S, Huang R, Hembach KM, et al. : ARMOR: An Automated Reproducible MOdular Workflow for Preprocessing and Differential Analysis of RNA-seq Data. G3. 2019 Jul 9; 9 (7): 2089–2096. PubMed Abstract | Publisher Full Text | Free Full Text 27. Sundararajan Z, Knoll R, Hombach P, et al. : Shiny-Seq: advanced guided transcriptome analysis. BMC. Res. Notes. 2019 Jul 18; 12 (1): 432. PubMed Abstract | Publisher Full Text | Free Full Text 28. Kohen R, Barlev J, Hornung G, et al. : UTAP: User-friendly Transcriptome Analysis Pipeline. BMC Bioinformatics. 2019 Mar 25; 20 (1): 154. PubMed Abstract | Publisher Full Text | Free Full Text 29. Zhang X, Jonassen I: RASflow: an RNA-Seq analysis workflow with Snakemake. BMC Bioinformatics. 2020 Mar 18; 21 (1): 110. PubMed Abstract | Publisher Full Text | Free Full Text 30. Sun S, Xu L, Zou Q, et al. : BP4RNAseq: a babysitter package for retrospective and newly generated RNA-seq data analyses using both alignment-based and alignment-free quantification method. Bioinformatics. 2021 Jun 9; 37 (9): 1319–1321. PubMed Abstract | Publisher Full Text 31. Katsantoni M, Gypas F, Herrmann CJ, et al. : ZARP: An automated workflow for processing of RNA-seq data. BioRxiv. 2021. 2021.11.18.469017. Publisher Full Text 32. de Visser C , Johansson LF, Kulkarni P, et al. : Ten quick tips for building FAIR workflows. PLoS Comput. Biol. 2023 Sep; 19 (9): e1011369. PubMed Abstract | Publisher Full Text | Free Full Text 33. Conesa A, Madrigal P, Tarazona S, et al. : A survey of best practices for RNA-seq data analysis. Genome Biol. 2016 Jan 26; 17 : 13. PubMed Abstract | Publisher Full Text | Free Full Text 34. Benjamini Y, Speed TP: Summarizing and correcting the GC content bias in high-throughput sequencing. Nucleic Acids Res. 2012 May; 40 (10): e72. PubMed Abstract | Publisher Full Text | Free Full Text 35. Martin M: Cutadapt removes adapter sequences from high-throughput sequencing reads. EMBnet.journal. 2011 May 2; 17 (1): 10–2. Publisher Full Text 36. Dobin A, Davis CA, Schlesinger F, et al. : STAR: ultrafast universal RNA-seq aligner. Bioinformatics. 2013 Jan 1; 29 (1): 15–21. PubMed Abstract | Publisher Full Text | Free Full Text 37. Baruzzo G, Hayer KE, Kim EJ, et al. : Simulation-based comprehensive benchmarking of RNA-seq aligners. Nat. Methods. 2016 Dec 12; 14 (2): 135–139. PubMed Abstract | Publisher Full Text | Free Full Text 38. Kuhn RM, Haussler D, Kent WJ: The UCSC genome browser and associated tools. Brief. Bioinform. 2013 Mar; 14 (2): 144–161. PubMed Abstract | Publisher Full Text | Free Full Text 39. Wang L, Nie J, Sicotte H, et al. : Measure transcript integrity using RNA-seq data. BMC Bioinformatics. 2016 Feb 3; 17 : 58. PubMed Abstract | Publisher Full Text | Free Full Text 40. Wang L, Wang S, Li W: RSeQC: quality control of RNA-seq experiments. Bioinformatics. 2012 Aug 15; 28 (16): 2184–2185. PubMed Abstract | Publisher Full Text 41. Bahin M, Noël BF, Murigneux V, et al. : ALFA: annotation landscape for aligned reads. BMC Genomics. 2019 Mar 29; 20 (1): 250. PubMed Abstract | Publisher Full Text | Free Full Text 42. Soneson C, Love MI, Robinson MD: Differential analyses for RNA-seq: transcript-level estimates improve gene-level inferences. F1000Res. 2015 Dec 30; 4 : 1521. Publisher Full Text 43. Bray NL, Pimentel H, Melsted P, et al. : Near-optimal probabilistic RNA-seq quantification. Nat. Biotechnol. 2016 May; 34 (5): 525–527. PubMed Abstract | Publisher Full Text 44. Patro R, Duggal G, Love MI, et al. : Salmon provides fast and bias-aware quantification of transcript expression. Nat. Methods. 2017 Mar 6; 14 : 417–419. PubMed Abstract | Publisher Full Text | Free Full Text 45. Wagner GP, Kin K, Lynch VJ: Measurement of mRNA abundance using RNA-seq data: RPKM measure is inconsistent among samples. Theory Biosci. 2012 Dec; 131 (4): 281–285. PubMed Abstract | Publisher Full Text 46. Ewels P, Magnusson M, Lundin S, et al. : MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1; 32 (19): 3047–3048. PubMed Abstract | Publisher Full Text | Free Full Text 47. Roach MJ, Pierce-Ward NT, Suchecki R, et al. : Ten simple rules and a template for creating workflows-as-applications. PLoS Comput. Biol. 2022 Dec; 18 (12): e1010705. PubMed Abstract | Publisher Full Text | Free Full Text 48. Katz K, Shutov O, Lapoint R, et al. : The Sequence Read Archive: a decade more of explosive growth. Nucleic Acids Res. 2022 Jan 7; 50 (D1): D387–D390. PubMed Abstract | Publisher Full Text | Free Full Text 49. Frölich S, van der Sande M , Schäfers T, et al. : genomepy: genes and genomes at your fingertips. Bioinformatics. 2023 Mar 1; 39 (3). PubMed Abstract | Publisher Full Text | Free Full Text 50. Howe KL, Achuthan P, Allen J, et al. : Ensembl 2021. Nucleic Acids Res. 2021 Jan 8; 49 (D1): D884–D891. PubMed Abstract | Publisher Full Text | Free Full Text 51. Kensche PR, Kanitz A, Topolsky I, et al. : Executing workflows in the cloud with WESkit. BioHackrXiv. 2023 Feb 20. Publisher Full Text 52. Grüning B, Dale R, Sjödin A, et al. : Bioconda: sustainable and comprehensive software distribution for the life sciences. Nat. Methods. 2018 Jul; 15 (7): 475–476. PubMed Abstract | Publisher Full Text | Free Full Text 53. Bai J, Bandla C, Guo J, et al. : BioContainers Registry: Searching Bioinformatics and Proteomics Tools, Packages, and Containers. J. Proteome Res. 2021 Apr 2; 20 (4): 2056–2061. PubMed Abstract | Publisher Full Text | Free Full Text 54. Moreau D, Wiebels K, Boettiger C: Containers for computational reproducibility. Nat. Rev. Methods Primers. 2023 Jul 13; 3 (1): 1–16. Publisher Full Text 55. Jiménez RC, Kuzak M, Alhamdoosh M, et al. : Four simple recommendations to encourage best practices in research software. F1000Res. 2017 Jun 13; 6 : 876. PubMed Abstract | Publisher Full Text | Free Full Text 56. Brack P, Crowther P, Soiland-Reyes S, et al. : Ten simple rules for making a software tool workflow-ready. PLoS Comput. Biol. 2022 Mar; 18 (3): e1009823. PubMed Abstract | Publisher Full Text | Free Full Text 57. Ham DJ, Börsch A, Lin S, et al. : The neuromuscular junction is a focal point of mTORC1 signaling in sarcopenia. Nat. Commun. 2020 Sep 9; 11 (1): 4510. PubMed Abstract | Publisher Full Text | Free Full Text 58. Katsantoni M, Bąk M, Ataman M, et al. : ZARP: Supplementary materials (v2.0.0). Zenodo. 2024 Mar 8. Publisher Full Text 59. Barrett T, Wilhite SE, Ledoux P, et al. : NCBI GEO: archive for functional genomics data sets--update. Nucleic Acids Res. 2013 Jan; 41 (Database issue): D991–D995. PubMed Abstract | Publisher Full Text | Free Full Text 60. Tintignac L, Mittal N, Guridi M, et al. : The neuromuscular junction is a focal point of mTORC1 signaling in sarcopenia. [TSCmKO data set]. Gene Expression Omnibus. 2020. Reference Source 61. Pankievicz V: SM_STG1_T0_2. Gene Expression Omnibus. 2022. Reference Source 62. Li Z: Naive_Propy_20uM_Myeloid TAGCGCTC_ATAGCCTT. Gene Expression Omnibus. 2022. Reference Source 63. Preusser F: C. elegans, with bacteria, 0h, rep1. Gene Expression Omnibus. 2022. Reference Source 64. Liang AM: 95Cb.del_rep2. Gene Expression Omnibus. 2023. Reference Source 65. Sun SJ: B-P-D6-1h-9_S36. Gene Expression Omnibus. 2023. Reference Source 66. European Organization For Nuclear Research, OpenAIRE. Zenodo. CERN.2013. Publisher Full Text 67. Katsantoni M, Kanitz A, Herrmann CJ, et al. : ZARP: The Zavolab Automated RNA-seq Pipeline (v1.0.0-rc.1). Zenodo. 2024 Mar 6. Publisher Full Text 68. Kanitz A, Herrmann CJ, Katsantoni M, et al. : ZARP-cli: A user-friendly command-line interface for the ZARP RNA-seq analysis workflow (v1.0.0-rc.1). Zenodo. 2024 Mar 6. Publisher Full Text Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 24 May 2024 ADD YOUR COMMENT Comment Author details Author details 1 Biozentrum, University of Basel, Basel, Basel-Stadt, 4056, Switzerland 2 Swiss Institute of Bioinformatics, Lausanne, Vaud, 1015, Switzerland 3 Friedrich Miescher Institute for Biomedical Research, Basel, Basel-Stadt, 4058, Switzerland Maria Katsantoni Roles: Conceptualization, Project Administration, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Foivos Gypas Roles: Conceptualization, Data Curation, Project Administration, Software, Writing – Original Draft Preparation, Writing – Review & Editing Christina J Herrmann Roles: Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Dominik Burri Roles: Software, Writing – Original Draft Preparation, Writing – Review & Editing Maciej Bąk Roles: Data Curation, Project Administration, Software, Writing – Original Draft Preparation Paula Iborra Roles: Software, Writing – Original Draft Preparation, Writing – Review & Editing Krish Agarwal Roles: Software, Writing – Review & Editing Meriç Ataman Roles: Data Curation, Validation, Writing – Original Draft Preparation Máté Balajti Roles: Software, Writing – Review & Editing Noè Pozzan Roles: Validation, Writing – Review & Editing Niels Schlusser Roles: Validation, Writing – Review & Editing Youngbin Moon Roles: Validation, Writing – Review & Editing Aleksei Mironov Roles: Validation, Writing – Review & Editing Anastasiya Börsch Roles: Validation, Writing – Original Draft Preparation Mihaela Zavolan Roles: Conceptualization, Funding Acquisition, Project Administration, Resources, Software, Supervision, Writing – Original Draft Preparation, Writing – Review & Editing Alexander Kanitz Roles: Conceptualization, Data Curation, Project Administration, Software, Supervision, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Competing interests No competing interests were disclosed. Grant information The work was supported by Swiss National Science Foundation grant #189063 to MZ and by the NCCR RNA & Disease (grant #182880) funding to MZ. MK, DB and MBak were supported by the "Biozentrum PhD Fellowships" program of the University of Basel. 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: 24 May 2024, 13:533 https://doi.org/10.12688/f1000research.149237.1 Copyright © 2024 Katsantoni M 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 Katsantoni M, Gypas F, Herrmann CJ et al. ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] . F1000Research 2024, 13 :533 ( https://doi.org/10.12688/f1000research.149237.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 24 May 2024 Views 0 Cite How to cite this report: Li B. Reviewer Report For: ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] . F1000Research 2024, 13 :533 ( https://doi.org/10.5256/f1000research.163676.r293730 ) The direct URL for this report is: https://f1000research.com/articles/13-533/v1#referee-response-293730 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 15 Jul 2024 Bo Li , Chongqing Normal University, Chongqing, China Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.163676.r293730 The manuscript titled "ZARP: A User-Friendly and Versatile RNA-seq Analysis Workflow" presents ZARP, an RNA-seq analysis workflow developed to streamline the process of RNA-seq data analysis. The authors emphasize ZARP's ease of use, flexibility, and integration of state-of-the-art tools, aiming ... Continue reading READ ALL The manuscript titled "ZARP: A User-Friendly and Versatile RNA-seq Analysis Workflow" presents ZARP, an RNA-seq analysis workflow developed to streamline the process of RNA-seq data analysis. The authors emphasize ZARP's ease of use, flexibility, and integration of state-of-the-art tools, aiming to minimize hands-on time for both bioinformaticians and non-experts. Major Comments: (1) The manuscript highlights the challenges in RNA-seq data analysis, particularly the complexities of tool dependencies and the need for user-friendly workflows. The development of ZARP in Snakemake, with a command-line interface, is a significant contribution to the field. However, it would be beneficial to include a comparative analysis with other existing workflows to quantitatively demonstrate ZARP's improvements in usability and performance. (2) The author mentions that among the many published workflows, some are too complex for users to deploy, run, and/or interpret, while others are not easy to customize and/or analyze large numbers of samples. Please specify which workflows exhibit these characteristics. (3) The description of the methods is comprehensive, detailing each step of the workflow from quality control to expression quantification. However, the manuscript would benefit from a more detailed explanation of the modifications made to the tin-score-calculation script for multiprocessing. Additionally, providing benchmarking results for ZARP's performance on different hardware configurations could enhance the manuscript's impact. (4) The authors have made commendable efforts to ensure reproducibility and accessibility through the use of containers and Conda environments. But, providing a detailed user guide that includes information about the installation process, potential pitfalls, and troubleshooting tips is essential for users to successfully deploy ZARP. (5) The manuscript provides an overview of ZARP's functionalities and the tools integrated within the workflow. However, the authors should enrich their manuscript with more comprehensive case studies or real-world applications to strengthen the validation of the workflow. Furthermore, applying the workflow to diverse RNA-seq datasets, including single-cell RNA-seq, would enhance its utility and appeal. (6) It would be better to provide a detailed table in the operation section of the manuscript, including minimum specifications, recommended configurations, and installation guidelines for different environments to improve user-friendliness. (7) The figures and tables included are informative but could be improved for clarity. For instance, Figure 1 provides a schematic overview of the workflow, but a more detailed flowchart with step-by-step annotations would be beneficial. Tables listing the tools and their versions are helpful, but adding columns for the specific tasks each tool performs and any dependencies would provide a more comprehensive overview. Minor Comments: (1) The abstract is well-written but could be more concise. Reducing redundancy and focusing on the key contributions of ZARP would make it more impactful. (2) I suggest splitting the first column (tool) in Table 1 into two columns, namely the software (tool) and version (version) columns, which is clearer. (3) The references are appropriate and cover relevant literature. Ensuring all references are up-to-date and including any recently published related works would be beneficial. (4) When authors cite datasets stored on Zenodo in their paper and provide corresponding reference information (such as reference 58), please indicate the DOI number to facilitate readers to search and repeat experiments. (5) I strongly suggest that the author give more example codes, such as the installation of ZARP and each subsequent step of operation, which is very important for beginners. Only by doing this can it be called truly easy-to-use. Overall, the manuscript presents a valuable tool for RNA-seq data analysis. Addressing the comments above will strengthen the manuscript, making it more robust and impactful. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Partly 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: Single-cell and spatial transcriptomics data analysis methodology, Bioinformatics algorithm evaluation and software development, Computational drug repurposing 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 Li B. Reviewer Report For: ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] . F1000Research 2024, 13 :533 ( https://doi.org/10.5256/f1000research.163676.r293730 ) The direct URL for this report is: https://f1000research.com/articles/13-533/v1#referee-response-293730 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: Liu S. Reviewer Report For: ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] . F1000Research 2024, 13 :533 ( https://doi.org/10.5256/f1000research.163676.r293726 ) The direct URL for this report is: https://f1000research.com/articles/13-533/v1#referee-response-293726 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 10 Jul 2024 Silvia Liu , University of Pittsburgh, Pittsburgh, USA Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.163676.r293726 The authors have established an RNA-seq workflow by integrating several state-of-the-art software in the field. This workflow is designed for easy install and compatible with multiple running environments and large sample size. However, here are some major concerns. ... Continue reading READ ALL The authors have established an RNA-seq workflow by integrating several state-of-the-art software in the field. This workflow is designed for easy install and compatible with multiple running environments and large sample size. However, here are some major concerns. 1. In the background introduction, the author described that: “A number of workflows for the analysis of bulk RNA-seq data have been developed by the community. (citation 24–30).” The rational is unclear and weak. The authors didn’t list some existing platforms/ workflows and pinpoint their detailed limitations. Besides the RNA workflows listed in citation 24-30, there are a lot of popular platforms, such as nf-core ( https://nf-co.re/rnaseq/3.14.0/ ), Illumina Engine, CLC Genomics Workbench (QIAGEN), Partek Flow (Partek), etc. Most of these platforms provide both graphical user interface and command-line interface for both biologists and bioinformaticians. Besides, these platforms will provide more tool options. For example, only Cutadapt is embedded in ZARP for data trimming and only STAR is integrated for reference-based alignment, but no other alternative popular tools are available. In addition, in the result section, there is no comparison with the current workflows. What’s the rationale and advantages of the proposed ZARP workflow over the existing ones? Version control. If some tools embedded with the ZARP workflow are updated to the new version, can it be easily updated in the ZARP workflow? In case the users want to apply some customized versions of the tools, is it easy to select? Parameter adjustment. Will the workflow only run on default parameter settings of each tool, or the users can customize the settings? Do the users have to run all the tools in the workflow, or optional? For example, can users only run reference-based analysis (STAR), but not run the other branch (Salmon/ Kallisko)? Or the other way around? Can the authors specify computing sources (such as number of cores/ CPUs, maximum memory usage, etc) to be applied? 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? 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: Genomic data analysis I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Liu S. Reviewer Report For: ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] . F1000Research 2024, 13 :533 ( https://doi.org/10.5256/f1000research.163676.r293726 ) The direct URL for this report is: https://f1000research.com/articles/13-533/v1#referee-response-293726 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 24 May 2024 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 24 May 24 read read Silvia Liu , University of Pittsburgh, Pittsburgh, USA Bo Li , Chongqing Normal University, Chongqing, China 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 © 2024 Li B. 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. 15 Jul 2024 | for Version 1 Bo Li , Chongqing Normal University, Chongqing, China 0 Views copyright © 2024 Li B. 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 The manuscript titled "ZARP: A User-Friendly and Versatile RNA-seq Analysis Workflow" presents ZARP, an RNA-seq analysis workflow developed to streamline the process of RNA-seq data analysis. The authors emphasize ZARP's ease of use, flexibility, and integration of state-of-the-art tools, aiming to minimize hands-on time for both bioinformaticians and non-experts. Major Comments: (1) The manuscript highlights the challenges in RNA-seq data analysis, particularly the complexities of tool dependencies and the need for user-friendly workflows. The development of ZARP in Snakemake, with a command-line interface, is a significant contribution to the field. However, it would be beneficial to include a comparative analysis with other existing workflows to quantitatively demonstrate ZARP's improvements in usability and performance. (2) The author mentions that among the many published workflows, some are too complex for users to deploy, run, and/or interpret, while others are not easy to customize and/or analyze large numbers of samples. Please specify which workflows exhibit these characteristics. (3) The description of the methods is comprehensive, detailing each step of the workflow from quality control to expression quantification. However, the manuscript would benefit from a more detailed explanation of the modifications made to the tin-score-calculation script for multiprocessing. Additionally, providing benchmarking results for ZARP's performance on different hardware configurations could enhance the manuscript's impact. (4) The authors have made commendable efforts to ensure reproducibility and accessibility through the use of containers and Conda environments. But, providing a detailed user guide that includes information about the installation process, potential pitfalls, and troubleshooting tips is essential for users to successfully deploy ZARP. (5) The manuscript provides an overview of ZARP's functionalities and the tools integrated within the workflow. However, the authors should enrich their manuscript with more comprehensive case studies or real-world applications to strengthen the validation of the workflow. Furthermore, applying the workflow to diverse RNA-seq datasets, including single-cell RNA-seq, would enhance its utility and appeal. (6) It would be better to provide a detailed table in the operation section of the manuscript, including minimum specifications, recommended configurations, and installation guidelines for different environments to improve user-friendliness. (7) The figures and tables included are informative but could be improved for clarity. For instance, Figure 1 provides a schematic overview of the workflow, but a more detailed flowchart with step-by-step annotations would be beneficial. Tables listing the tools and their versions are helpful, but adding columns for the specific tasks each tool performs and any dependencies would provide a more comprehensive overview. Minor Comments: (1) The abstract is well-written but could be more concise. Reducing redundancy and focusing on the key contributions of ZARP would make it more impactful. (2) I suggest splitting the first column (tool) in Table 1 into two columns, namely the software (tool) and version (version) columns, which is clearer. (3) The references are appropriate and cover relevant literature. Ensuring all references are up-to-date and including any recently published related works would be beneficial. (4) When authors cite datasets stored on Zenodo in their paper and provide corresponding reference information (such as reference 58), please indicate the DOI number to facilitate readers to search and repeat experiments. (5) I strongly suggest that the author give more example codes, such as the installation of ZARP and each subsequent step of operation, which is very important for beginners. Only by doing this can it be called truly easy-to-use. Overall, the manuscript presents a valuable tool for RNA-seq data analysis. Addressing the comments above will strengthen the manuscript, making it more robust and impactful. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Partly 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 Single-cell and spatial transcriptomics data analysis methodology, Bioinformatics algorithm evaluation and software development, Computational drug repurposing 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) Li B. Peer Review Report For: ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] . F1000Research 2024, 13 :533 ( https://doi.org/10.5256/f1000research.163676.r293730) 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/13-533/v1#referee-response-293730 keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2024 Liu 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. 10 Jul 2024 | for Version 1 Silvia Liu , University of Pittsburgh, Pittsburgh, USA 0 Views copyright © 2024 Liu 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 The authors have established an RNA-seq workflow by integrating several state-of-the-art software in the field. This workflow is designed for easy install and compatible with multiple running environments and large sample size. However, here are some major concerns. 1. In the background introduction, the author described that: “A number of workflows for the analysis of bulk RNA-seq data have been developed by the community. (citation 24–30).” The rational is unclear and weak. The authors didn’t list some existing platforms/ workflows and pinpoint their detailed limitations. Besides the RNA workflows listed in citation 24-30, there are a lot of popular platforms, such as nf-core ( https://nf-co.re/rnaseq/3.14.0/ ), Illumina Engine, CLC Genomics Workbench (QIAGEN), Partek Flow (Partek), etc. Most of these platforms provide both graphical user interface and command-line interface for both biologists and bioinformaticians. Besides, these platforms will provide more tool options. For example, only Cutadapt is embedded in ZARP for data trimming and only STAR is integrated for reference-based alignment, but no other alternative popular tools are available. In addition, in the result section, there is no comparison with the current workflows. What’s the rationale and advantages of the proposed ZARP workflow over the existing ones? Version control. If some tools embedded with the ZARP workflow are updated to the new version, can it be easily updated in the ZARP workflow? In case the users want to apply some customized versions of the tools, is it easy to select? Parameter adjustment. Will the workflow only run on default parameter settings of each tool, or the users can customize the settings? Do the users have to run all the tools in the workflow, or optional? For example, can users only run reference-based analysis (STAR), but not run the other branch (Salmon/ Kallisko)? Or the other way around? Can the authors specify computing sources (such as number of cores/ CPUs, maximum memory usage, etc) to be applied? 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? 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 Genomic data analysis I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. reply Respond to this report Responses (0) Liu S. Peer Review Report For: ZARP: A user-friendly and versatile RNA-seq analysis workflow [version 1; peer review: 2 approved with reservations] . F1000Research 2024, 13 :533 ( https://doi.org/10.5256/f1000research.163676.r293726) 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/13-533/v1#referee-response-293726 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 = "ZARP: A user-friendly and versatile RNA-seq...".replace("'", ''); var linkedInUrl = "http://www.linkedin.com/shareArticle?url=https://f1000research.com/articles/13-533/v1" + "&title=" + encodeURIComponent(lTitle) + "&summary=" + encodeURIComponent('Read the article by '); var deliciousUrl = "https://del.icio.us/post?url=https://f1000research.com/articles/13-533/v1&title=" + encodeURIComponent(lTitle); var redditUrl = "http://reddit.com/submit?url=https://f1000research.com/articles/13-533/v1" + "&title=" + encodeURIComponent(lTitle); linkedInUrl += encodeURIComponent('Katsantoni M 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/13-533/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/13-533", templates : { twitter : "ZARP: A user-friendly and versatile RNA-seq analysis workflow. Katsantoni M et al., published by " + "@F1000Research" + ", https://f1000research.com/articles/13-533/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/149237/163676") new F1000.Clipboard(); new F1000.ThesaurusTermsDisplay("articles", "article", "163676"); $(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 = { "293732": 0, "293733": 0, "289477": 0, "293734": 0, "289478": 0, "293735": 0, "289479": 0, "293728": 0, "293729": 0, "293730": 32, "293731": 0, "289484": 0, "289485": 0, "289486": 0, "289480": 0, "289481": 0, "289482": 0, "289483": 0, "293726": 34, "293727": 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 = "4ff293c1-a911-42ee-a2ba-9f7e9b855aef"; uuidInput.val(newUUId); $("a[href*='article_uuid=']").each(function(index, el) { var newHref = $(el).attr("href").replace(oldUUId, newUUId); $(el).attr("href", newHref); }); }); An innovative open access publishing platform offering rapid publication and open peer review, whilst supporting data deposition and sharing. Browse Gateways Collections How it Works Contact For Developers Cookie Notice Privacy Notice RSS Submit Your Research Follow us © 2012-2026 F1000 Research Ltd. ISSN 2046-1402 | Legal | Partner of Research4Life • CrossRef • ORCID • FAIRSharing R.templateTests.simpleTemplate = R.template(' $text $text $text $text $text '); R.templateTests.runTests(); var F1000platform = new F1000.Platform({ name: "f1000research", displayName: "F1000Research", hostName: "f1000research.com", id: "1", editorialEmail: "[email protected]", infoEmail: "[email protected]", usePmcStats: true }); $(function(){R.ui.dropdowns('.dropdown-for-authors, .dropdown-for-about, .dropdown-for-myresearch');}); // $(function(){R.ui.dropdowns('.dropdown-for-referees');}); $(document).ready(function () { if ($(".cookie-warning").is(":visible")) { $(".sticky").css("margin-bottom", "35px"); $(".devices").addClass("devices-and-cookie-warning"); } $(".cookie-warning .close-button").click(function (e) { $(".devices").removeClass("devices-and-cookie-warning"); $(".sticky").css("margin-bottom", "0"); }); $("#tweeter-feed .tweet-message").each(function (i, message) { var self = $(message); self.html(linkify(self.html())); }); $(".partner").on("mouseenter mouseleave", function() { $(this).find(".gray-scale, .colour").toggleClass("is-hidden"); }); }); Sign In Remember me Forgotten your password? Sign In Cancel Email or password not correct. Please try again Please wait... $(function(){ // Note: All the setup needs to run against a name attribute and *not* the id due the clonish // nature of facebox... $("a[id=googleSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("GOOGLE"); $("form[id=oAuthForm]").submit(); }); $("a[id=facebookSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("FACEBOOK"); $("form[id=oAuthForm]").submit(); }); $("a[id=orcidSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("ORCID"); $("form[id=oAuthForm]").submit(); }); }); If you've forgotten your password, please enter your email address below and we'll send you instructions on how to reset your password. The email address should be the one you originally registered with F1000. Email address not valid, please try again You registered with F1000 via Google, so we cannot reset your password. To sign in, please click here . If you still need help with your Google account password, please click here . You registered with F1000 via Facebook, so we cannot reset your password. To sign in, please click here . If you still need help with your Facebook account password, please click here . Code not correct, please try again Reset password Cancel Email us for further assistance. Server error, please try again. If your email address is registered with us, we will email you instructions to reset your password. If you think you should have received this email but it has not arrived, please check your spam filters and/or contact for further assistance. Please wait... Register $(document).ready(function () { signIn.createSignInAsRow($("#sign-in-form-gfb-popup")); $(".target-field").each(function () { var uris = $(this).val().split("/"); if (uris.pop() === "login") { $(this).val(uris.toString().replace(",","/")); } }); });

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

My notes (saved in your browser only)

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

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

Citation neighborhood (no data yet)

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

Source provenance

europepmc
last seen: 2026-05-20T01:45:00.602351+00:00