@fishka/seqio 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +104 -20
- package/dist/index.d.ts +104 -20
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
function U(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t}function $(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function C(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function T(e,t,n){return e.subarray(t,t+n)}function Ae(e){return String.fromCharCode(e>>>24&255,e>>>16&255,e>>>8&255,e&255)}var M=128,R=28;function ae(e){if(e.byteLength<M)throw new Error(`ABIF too small: ${e.byteLength} bytes`);let t=0;if(U(T(e,0,4))!=="ABIF")if(e.byteLength>=132&&U(T(e,128,4))==="ABIF")t=128;else throw new Error('Not an ABIF file: missing "ABIF" magic.');let n=t;if(e.byteLength-n<M)throw new Error(`ABIF too small: ${e.byteLength-n} bytes after offset ${n}`);let r=C(e),i=r.getInt16(n+4,false),o=ie(e,r,n+6,n);if(o.tagName!=="tdir")throw new Error(`Expected "tdir" header entry, got "${o.tagName}"`);if(o.elementSize!==R)throw new Error(`Expected dir element size ${R}, got ${o.elementSize}`);let a=o.raw?.elementCount??o.elementCount,s=Math.max(0,a),c=r.getInt32(n+6+20,false);if(c<0||c+s*R>e.byteLength-n)throw new Error(`Directory out of bounds: offset=${c}, entries=${s}, file=${e.byteLength-n}`);let m=[];for(let w=0;w<s;w++)m.push(ie(e,r,n+c+w*R,n));let d=o.raw?.dataSize??s*R,u=n+c+s*R,p=Math.min(Math.max(0,d-s*R),Math.max(0,e.byteLength-u)),l={entryCount:s,rawEntryCount:a,elementType:o.elementType,tagNumber:o.tagNumber,entrySize:o.elementSize,dataSize:d,dataOffset:c,dataOffsetBytes:o.raw?.dataOffsetBytes??new Uint8Array(4),dataHandle:o.dataHandle,paddingBytes:new Uint8Array(T(e,u,p))},h=new Uint8Array(T(e,n+6+R,M-6-R)),y=t===128?new Uint8Array(T(e,0,128)):void 0,S=ye(e,n,c,d,m,t);return {version:i,tdir:l,entries:m,macBinaryOffset:t,macBinaryHeader:y,headerReserved:h,unreferencedRanges:S}}function ye(e,t,n,r,i,o){let a=e.byteLength,s=[];o===128&&s.push([0,128]),s.push([t,t+M]);let c=Math.max(i.length*R,Math.max(0,r));s.push([t+n,t+n+c]);for(let l of i)if(l.raw&&!l.raw.inline){let h=t+l.raw.dataOffset;s.push([h,h+l.payload.byteLength]);}let m=s.map(([l,h])=>[Math.max(0,Math.min(l,a)),Math.max(0,Math.min(h,a))]).filter(([l,h])=>h>l).sort((l,h)=>l[0]-h[0]),d=[];for(let[l,h]of m){let y=d[d.length-1];y&&l<=y[1]?y[1]=Math.max(y[1],h):d.push([l,h]);}let u=[],p=0;for(let[l,h]of d)l>p&&u.push({offset:p,bytes:new Uint8Array(T(e,p,l-p))}),p=Math.max(p,h);return p<a&&u.push({offset:p,bytes:new Uint8Array(T(e,p,a-p))}),u}function ie(e,t,n,r){let i=U(T(e,n,4)),o=t.getInt32(n+4,false),a=t.getInt16(n+8,false),s=t.getInt16(n+10,false),c=t.getInt32(n+12,false),m=t.getInt32(n+16,false),d=t.getInt32(n+24,false),u=Math.max(0,c*Math.max(0,s)),p=m>=0?m:u,l=m>=0?m<=4:u<=4,h=Math.max(0,s>0?Math.min(c,Math.floor(p/s)):Math.min(c,p)),y,S;if(l)S=-1,y=new Uint8Array(T(e,n+20,Math.min(4,p)));else {S=t.getInt32(n+20,false);let f=r+S;if(S<0||f+p>e.byteLength)throw new Error(`Entry ${i}${o}: payload out of bounds (offset=${S}, size=${p})`);y=new Uint8Array(T(e,f,p));}let w=new Uint8Array(T(e,n+20,4));return {tagName:i,tagNumber:o,elementType:a,elementSize:s,elementCount:h,payload:y,dataHandle:d,raw:{elementCount:c,dataSize:m,dataOffset:S,inline:l,dataOffsetBytes:w}}}function Xe(e){let t=e.macBinaryOffset,n=e.entries.length,r=e.tdir.entryCount,i=e.entries.map(l=>l.raw&&l.payload.byteLength===l.raw.dataSize?l.raw:void 0),o=M;o=Math.max(o,e.tdir.dataOffset+Math.max(e.tdir.dataSize,r*R));for(let l of i)l&&!l.inline&&(o=Math.max(o,l.dataOffset+l.dataSize));for(let l of e.unreferencedRanges)o=Math.max(o,l.offset-t+l.bytes.length);let a=n>r,s=o,c=a?s:e.tdir.dataOffset,m=n===r?e.tdir.dataSize:n*R;a&&(s+=m);let d=new Array(n);for(let l=0;l<n;l++){let h=e.entries[l].payload.byteLength;if(i[l]||h<=4){d[l]=-1;continue}d[l]=s,s+=h;}let u=new Uint8Array(s),p=C(u);u.set($("ABIF"),0),p.setInt16(4,e.version,false),u.set(e.headerReserved,6+R),oe(u,p,6,{tagName:"tdir",tagNumber:e.tdir.tagNumber,elementType:e.tdir.elementType,elementSize:e.tdir.entrySize,elementCount:n,dataSize:m,dataHandle:e.tdir.dataHandle,offsetSlot:{kind:"external",value:c}}),n===r&&e.tdir.paddingBytes.length>0&&u.set(e.tdir.paddingBytes,c+n*R);for(let l=0;l<n;l++){let h=e.entries[l],y=i[l],S=c+l*R,w=h.payload.byteLength;oe(u,p,S,{tagName:h.tagName,tagNumber:h.tagNumber,elementType:h.elementType,elementSize:h.elementSize,elementCount:y?y.elementCount:h.elementCount,dataSize:y?y.dataSize:w,dataHandle:h.dataHandle,offsetSlot:w<=4?{kind:"inline",payload:h.payload,dataSize:w,staleTail:y?.dataOffsetBytes}:{kind:"external",value:y?y.dataOffset:d[l]}}),w>4&&u.set(h.payload,y?y.dataOffset:d[l]);}for(let l of e.unreferencedRanges)u.set(l.bytes,l.offset-t);return u}function oe(e,t,n,r){if(r.tagName.length!==4)throw new Error(`tagName must be 4 chars: "${r.tagName}"`);if(e.set($(r.tagName),n),t.setInt32(n+4,r.tagNumber,false),t.setInt16(n+8,r.elementType,false),t.setInt16(n+10,r.elementSize,false),t.setInt32(n+12,r.elementCount,false),t.setInt32(n+16,r.dataSize,false),r.offsetSlot.kind==="external")t.setInt32(n+20,r.offsetSlot.value,false);else {let{payload:i,dataSize:o,staleTail:a}=r.offsetSlot;e.fill(0,n+20,n+24),e.set(i.subarray(0,o),n+20),a&&o<4&&e.set(a.subarray(o,4),n+20+o);}t.setInt32(n+24,r.dataHandle,false);}function N(e,t,n){return e.entries.find(r=>r.tagName===t&&r.tagNumber===n)}function Ze(e,t){return e.entries.filter(n=>n.tagName===t)}function Se(e,t){return e.tagName!==t.tagName?e.tagName<t.tagName?-1:1:e.tagNumber-t.tagNumber}function Q(e,t){let n=e.findIndex(r=>Se(r,t)>0);e.splice(n<0?e.length:n,0,t);}function I(e,t,n,r,i){if(r.byteLength!==i.elementCount*i.elementSize)throw new Error(`upsertEntry ${t}${n}: payload length ${r.byteLength} != count*size`);let o=N(e,t,n);o?(o.elementType=i.elementType,o.elementSize=i.elementSize,o.elementCount=i.elementCount,o.payload=r,o.raw=void 0):Q(e.entries,{tagName:t,tagNumber:n,elementType:i.elementType,elementSize:i.elementSize,elementCount:i.elementCount,payload:r,dataHandle:0});}function nt(e,t){let n=N(e,"DATA",t);if(!n)return;if(n.elementSize!==2)throw new Error(`DATA${t}: expected elementSize=2, got ${n.elementSize}`);let r=new Int16Array(n.elementCount),i=C(n.payload);for(let o=0;o<n.elementCount;o++)r[o]=i.getInt16(o*2,false);return r}function K(e){let t=N(e,"FWO_",1);return t?U(t.payload.subarray(0,t.elementCount)):"GATC"}function X(e){return /^[ACGT]{4}$/.test(e)&&new Set(e).size===4}function B(e){return !!(N(e,"DATA",9)&&N(e,"DATA",10)&&N(e,"DATA",11)&&N(e,"DATA",12))}function rt(e){return e>=5&&e<=8?"telemetry":e>=1&&e<=4||e>=9&&e<=12||e===105||e===205?"trace":"other"}function it(e){let t=N(e,"RevC",1);if(!t)return;let n=C(t.payload);return t.payload.byteLength>=2?n.getInt16(0,false)!==0:t.payload.some(r=>r!==0)}function ot(e){let t=K(e);if(!X(t))throw new Error(`FWO_ is not a permutation of A/C/G/T: "${t}"`);return {[t[0]]:1,[t[1]]:2,[t[2]]:3,[t[3]]:4}}function at(e){return z(e,2)??z(e,1)}function z(e,t){let n=N(e,"PBAS",t);if(n)return U(n.payload.subarray(0,n.elementCount)).replace(/\0+$/g,"")}function st(e){return v(e,2)??v(e,1)}function v(e,t){let n=N(e,"PCON",t);if(!n)return;let r=new Array(n.elementCount);for(let i=0;i<n.elementCount;i++)r[i]=n.payload[i];return r}function ut(e){return P(e,2)??P(e,1)}function P(e,t){let n=N(e,"PLOC",t);if(!n)return;if(n.elementSize!==2)throw new Error(`PLOC${t}: expected elementSize=2, got ${n.elementSize}`);let r=C(n.payload),i=new Array(n.elementCount);for(let o=0;o<n.elementCount;o++)i[o]=r.getUint16(o*2,false);return i}function ct(e){let t=N(e,"SPAC",1);if(!t||t.elementSize!==4||t.payload.byteLength<4)return;let n=C(t.payload).getFloat32(0,false);return Number.isFinite(n)&&n>0?n:void 0}function gt(e,t,n={}){let{start:r,end:i}=t;if(!Number.isInteger(r)||!Number.isInteger(i)||r<0||i<=r)throw new Error(`cropAbif: invalid range [${r}, ${i})`);if(!B(e))throw new Error("cropAbif: no DATA9..12 block to crop \u2014 the range has nothing to apply to");let o=Math.min(G(e,9),G(e,10),G(e,11),G(e,12));if(i>o)throw new Error(`cropAbif: range end ${i} exceeds the processed trace length ${o}`);let a=n.rawTrace??"omit",s=[];for(let c of e.entries)c.tagName==="DATA"&&c.tagNumber>=9&&c.tagNumber<=12?s.push(xe(c,r,i)):c.tagName==="DATA"&&c.tagNumber>=1&&c.tagNumber<=8?a==="full"&&s.push({...c}):c.tagName==="PBAS"||c.tagName==="PCON"||c.tagName==="PLOC"||s.push({...c});for(let c of Ne(e))s.push(...Ce(e,c,r,i));return {version:e.version,tdir:e.tdir,entries:s,macBinaryOffset:0,macBinaryHeader:void 0,headerReserved:e.headerReserved,unreferencedRanges:[]}}function G(e,t){return N(e,"DATA",t)?.elementCount??0}function xe(e,t,n){if(e.elementSize!==2)throw new Error(`cropAbif: DATA${e.tagNumber} expected elementSize=2, got ${e.elementSize}`);let r=new Uint8Array(e.payload.subarray(t*2,n*2));return {tagName:"DATA",tagNumber:e.tagNumber,elementType:e.elementType,elementSize:2,elementCount:n-t,payload:r,dataHandle:e.dataHandle}}function Ne(e){let t=new Set;for(let n of e.entries)n.tagName==="PBAS"&&t.add(n.tagNumber);return Array.from(t).sort((n,r)=>n-r)}function Ce(e,t,n,r){let i=z(e,t);if(i===void 0)return [];let o=P(e,t);if(o===void 0)throw new Error(`cropAbif: PBAS${t} has no PLOC${t} to crop by`);if(o.length!==i.length)throw new Error(`cropAbif: PBAS${t}/PLOC${t} length mismatch (${i.length} vs ${o.length})`);let a=v(e,t);if(a!==void 0&&a.length!==i.length)throw new Error(`cropAbif: PBAS${t}/PCON${t} length mismatch`);let s=[];for(let u=0;u<o.length;u++)o[u]>=n&&o[u]<r&&s.push(u);let c=s.map(u=>i[u]).join(""),m=s.map(u=>o[u]-n),d=[{tagName:"PBAS",tagNumber:t,elementType:2,elementSize:1,elementCount:c.length,payload:$(c),dataHandle:0},{tagName:"PLOC",tagNumber:t,elementType:4,elementSize:2,elementCount:m.length,payload:we(m),dataHandle:0}];if(a!==void 0){let u=s.map(p=>a[p]);d.push({tagName:"PCON",tagNumber:t,elementType:2,elementSize:1,elementCount:u.length,payload:Uint8Array.from(u),dataHandle:0});}return d}function we(e){let t=new Uint8Array(e.length*2),n=C(t);for(let r=0;r<e.length;r++)n.setUint16(r*2,Math.max(0,Math.min(65535,e[r])),false);return t}var Re={1:"byte",2:"char",3:"word",4:"short",5:"long",7:"float",8:"double",10:"date",11:"time",12:"thumb",13:"bool",18:"pString",19:"cString",1023:"tdir"};function J(e){return Re[e]??(e>=1024?`user${e}`:`type${e}`)}function Fe(e,t=10){return e.length<=t?`[${e.join(", ")}]`:`[${e.slice(0,t).join(", ")}, \u2026 +${e.length-t}] (n=${e.length})`}function Te(e,t=80){return e.length>t?e.slice(0,t)+"\u2026":e}function se(e){let t=e.subarray(0,16),n=Array.from(t,r=>r.toString(16).padStart(2,"0")).join(" ");return `${e.byteLength}B [${n}${e.byteLength>16?" \u2026":""}]`}function Z(e){if(e.kind==="numbers")return e.value;if(e.kind==="number")return [e.value]}function q(e,t,n,r){let i=Math.max(0,Math.min(t,Math.floor(e/n))),o=[];for(let a=0;a<i;a++)o.push(r(a*n));return o.length===1?{kind:"number",value:o[0]}:{kind:"numbers",value:o}}function ue(e,t,n){let r=C(n);switch(e){case 1:return {kind:"numbers",value:Array.from(n.subarray(0,t))};case 2:case 19:return {kind:"string",value:U(n.subarray(0,t)).replace(/\0+$/g,"")};case 3:return q(n.byteLength,t,2,i=>r.getUint16(i,false));case 4:return q(n.byteLength,t,2,i=>r.getInt16(i,false));case 5:return q(n.byteLength,t,4,i=>r.getInt32(i,false));case 7:return q(n.byteLength,t,4,i=>r.getFloat32(i,false));case 8:return q(n.byteLength,t,8,i=>r.getFloat64(i,false));case 10:{if(n.byteLength<4)return {kind:"unknown",value:n};let i=r.getInt16(0,false),o=r.getUint8(2),a=r.getUint8(3);return {kind:"date",value:{year:i,month:o,day:a}}}case 11:return n.byteLength<4?{kind:"unknown",value:n}:{kind:"time",value:{hour:r.getUint8(0),minute:r.getUint8(1),second:r.getUint8(2),hsec:r.getUint8(3)}};case 13:{let i=[];for(let o=0;o<Math.min(t,n.byteLength);o++)i.push(r.getUint8(o)!==0);return {kind:"bools",value:i}}case 18:{if(n.byteLength<1)return {kind:"string",value:""};let i=r.getUint8(0);return {kind:"string",value:U(T(n,1,Math.min(i,Math.max(0,t-1))))}}default:return {kind:"unknown",value:n}}}function Ee(e,t){switch(e.kind){case "number":return String(e.value);case "numbers":return Fe(e.value);case "string":return Te(JSON.stringify(e.value));case "bools":return e.value.length===1?String(e.value[0]):`[${e.value.join(", ")}]`;case "date":{let{year:n,month:r,day:i}=e.value;return `${n}-${String(r).padStart(2,"0")}-${String(i).padStart(2,"0")}`}case "time":{let{hour:n,minute:r,second:i}=e.value;return `${String(n).padStart(2,"0")}:${String(r).padStart(2,"0")}:${String(i).padStart(2,"0")}`}case "bytes":return `${J(t)} ${se(e.value)}`;case "unknown":return `${J(t)} ${se(e.value)}`}}function yt(e,t=""){let n=e instanceof Uint8Array?e:new Uint8Array(e),r=ae(n),i=r.entries.map(f=>{let g=f.tagName==="PCON"&&f.elementSize===1?ue(1,f.elementCount,f.payload):ue(f.elementType,f.elementCount,f.payload);return {tag:f.tagName,tagNumber:f.tagNumber,elementType:f.elementType,elementTypeName:J(f.elementType),elementSize:f.elementSize,elementCount:f.elementCount,rawElementCount:f.raw?.elementCount??f.elementCount,dataSize:f.raw?.dataSize??f.elementCount*f.elementSize,dataOffset:f.raw?.dataOffset??-1,inline:f.raw?.inline??f.elementCount*f.elementSize<=4,decoded:g,preview:Ee(g,f.elementType)}}),o=K(r);X(o)||(o="GATC");let a={},s={A:[],C:[],G:[],T:[]},c={A:[],C:[],G:[],T:[]},m={comments:[]},d={},u={},p={},l=f=>o[f];for(let f=0;f<r.entries.length;f++){let g=r.entries[f],A=i[f].decoded;if(g.tagName==="DATA"){let b=Z(A);b&&(a[g.tagNumber]=b,g.tagNumber>=1&&g.tagNumber<=4?s[l(g.tagNumber-1)]=b:g.tagNumber>=9&&g.tagNumber<=12&&(c[l(g.tagNumber-9)]=b));}else if(g.tagName==="PBAS"&&A.kind==="string")d[g.tagNumber]=A.value;else if(g.tagName==="PCON"){let b=g.elementSize===1?Array.from(g.payload.subarray(0,g.elementCount)):Z(A);b&&(u[g.tagNumber]=b);}else if(g.tagName==="PLOC"){let b=Z(A);b&&(p[g.tagNumber]=b.map(Y=>Y<0?Y+65536:Y));}else if(g.tagName==="SPAC")if(g.elementSize===4&&g.payload.byteLength>=4){let b=C(g.payload).getFloat32(0,false);Number.isFinite(b)&&b>0&&(m.samplingRate=b);}else A.kind==="number"&&(m.samplingRate=A.value);else if(g.tagName==="SMPL"&&A.kind==="string")m.sampleName=A.value;else if(g.tagName==="LANE"&&A.kind==="number")m.laneNumber=A.value;else if(g.tagName==="TUBE"&&A.kind==="string")m.tube=A.value;else if(g.tagName==="MCHN"&&A.kind==="string")m.machineName=A.value;else if(g.tagName==="MODL"&&A.kind==="string")m.machineModel=A.value;else if(g.tagName==="RUND"&&A.kind==="date"){let b=A.value;m.runDate=`${b.year}-${String(b.month).padStart(2,"0")}-${String(b.day).padStart(2,"0")}`;}else if(g.tagName==="RUNT"&&A.kind==="time"){let b=A.value;m.runTime=`${String(b.hour).padStart(2,"0")}:${String(b.minute).padStart(2,"0")}:${String(b.second).padStart(2,"0")}`;}else g.tagName==="CMNT"&&A.kind==="string"?m.comments.push(A.value):g.tagName==="RevC"&&g.tagNumber===1&&(A.kind==="number"?m.reverseComplemented=A.value!==0:A.kind==="numbers"&&(m.reverseComplemented=A.value.some(b=>b!==0)));}let h=Object.keys(d).map(Number).sort((f,g)=>f-g).map(f=>({version:f,role:f===1?"edited":f===2?"called":"unknown",sequence:d[f],confidences:u[f]??[],positions:p[f]??[]})),y,S=2 in d?2:1 in d?1:Object.keys(d).map(Number)[0];if(S!==void 0&&d[S]!==void 0){let f=d[S].toUpperCase(),g=u[S]??[];g.length!==f.length&&(g=Object.keys(u).map(Number).map(b=>u[b]).find(b=>b.length===f.length)??[]);let A=p[S]??[];A.length!==f.length&&(A=Object.keys(p).map(Number).map(b=>p[b]).find(b=>b.length===f.length)??[]),y={sequence:f,confidences:g,positions:A,pbasVersion:S};}if(!Number.isFinite(m.samplingRate)||(m.samplingRate??0)<=0){let f=y?.positions,g=Math.max(c.A.length,c.C.length,c.G.length,c.T.length);f&&f.length>1?m.samplingRate=(f[f.length-1]-f[0])/(f.length-1):y&&y.sequence.length>0&&g>0&&(m.samplingRate=g/y.sequence.length);}let w={baseOrder:o,dataChannels:a,data1To4:s,data9To12:c};return {fileName:t,fileSize:n.byteLength,abifVersion:r.version,macBinaryOffset:r.macBinaryOffset,dirEntryCount:r.entries.length,metadata:m,chromatogram:w,baseCalls:y,baseCallVariants:h,entries:i}}function St(e){return e.A.length>0||e.C.length>0||e.G.length>0||e.T.length>0}function xt(e){return Math.max(e.A.length,e.C.length,e.G.length,e.T.length)}function Ft(e,t){I(e,"PBAS",2,$(t),{elementType:2,elementSize:1,elementCount:t.length});}function Tt(e,t){let n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=Math.max(0,Math.min(255,Math.round(t[r])));I(e,"PCON",2,n,{elementType:2,elementSize:1,elementCount:t.length});}function Et(e,t){let n=new Uint8Array(t.length*2),r=C(n);for(let i=0;i<t.length;i++)r.setUint16(i*2,Math.max(0,Math.min(65535,t[i])),false);I(e,"PLOC",2,n,{elementType:4,elementSize:2,elementCount:t.length});}function Lt(e,t,n){let r=new Uint8Array(4);C(r).setFloat32(0,t,false),I(e,"SPAC",1,r,{elementType:7,elementSize:4,elementCount:1});let i=$(n),o=Math.min(255,i.length),a=new Uint8Array(1+o);a[0]=o,a.set(i.subarray(0,o),1),I(e,"SPAC",2,a,{elementType:18,elementSize:1,elementCount:1+o});let s=new Uint8Array(4);C(s).setFloat32(0,t,false),I(e,"SPAC",3,s,{elementType:7,elementSize:4,elementCount:1});}function Ut(e){return e.length<2?0:(e[e.length-1]-e[0])/(e.length-1)}function $t(e){if(!B(e))for(let t=1;t<=4;t++){let n=N(e,"DATA",t);if(!n)continue;let r=8+t;N(e,"DATA",r)||Q(e.entries,{tagName:"DATA",tagNumber:r,elementType:n.elementType,elementSize:n.elementSize,elementCount:n.elementCount,payload:new Uint8Array(n.payload),dataHandle:0});}}function D(e){let t=typeof e=="string"?e:new TextDecoder().decode(e);return t.charCodeAt(0)===65279&&(t=t.slice(1)),t}function x(e){return D(e).split(/\r\n|\r|\n/)}function E(e){return e.replace(/\s+/g,"")}function L(e){return e.trim().length===0}function k(e){let t=e.trim(),n=t.search(/\s/);return n<0?t:t.slice(0,n)}var Le=128,_=8192;function Dt(e){if(V(e,0,"ABIF")||V(e,Le,"ABIF"))return "abif";if(V(e,0,".scf"))return "scf";if(V(e,0,"BAM"))return "bam";let t=ke(e);if(t===void 0)return "unknown";let n=$e(t),r=n==="clustal"&&!ce.test(t.trimStart());return (n==="unknown"||r)&&Ue(e)?"msf":n}function Ue(e){let t=e.length>_?e.subarray(0,_):e,n=D(t),r=/\bMSF:\s*\d+\b[^\n]*\bCheck:\s*\d/.test(n)&&/^\s*Name:\s+.*\bLen:\s*\d/im.test(n),i=/^\s*Name:\s+\S+\s+Len:\s*\d+\s+Check:\s*\d+\s+Weight:/im.test(n);return r||i}var ce=/^(CLUSTAL|MUSCLE|MAFFT|T-?COFFEE|PROBCONS|KALIGN|MVIEW|PROMALS)\b/i;function $e(e){let t=e.trimStart();if(/^LOCUS\s/.test(t))return "genbank";if(/^ID\s/.test(t))return /(Reviewed|Unreviewed);| AA\.\s*$/.test(t)?"swissprot":"embl";if(/^#\s*STOCKHOLM/i.test(t))return "stockholm";if(/^#NEXUS/i.test(t))return "nexus";if(ce.test(t)||/multiple (sequence )?alignment/i.test(t)&&!/^[>@#]/.test(t)&&!/genedoc/i.test(t))return "clustal";if(/^!!(NA|AA)_MULTIPLE_ALIGNMENT/i.test(t)||/\bMSF:\s*\d/.test(t))return "msf";if(/^\d+\s+\d+\s*$/.test(t))return "phylip";if(/^##gff-version/i.test(t))return "gff";if(/^H\t(?:[^\t]*\t)*VN:Z:[12]\./.test(t))return "gfa";if(/^@(HD|SQ|RG|PG|CO)\t/.test(t))return "sam";if(/^>(P1|F1|DL|DC|RL|RC|N1|N3|XX);/i.test(t))return "pir";switch(t.charCodeAt(0)){case 62:case 59:return "fasta";case 64:return "fastq"}return Ie(t)?"sam":/^S\t[!-~]+\t/.test(t)?"gfa":"unknown"}function Ie(e){let t=e.split(" ");if(t.length<11)return false;let[,n,,r,i,o]=t;return /^\d+$/.test(n)&&/^\d+$/.test(r)&&/^\d+$/.test(i)&&/^(\*|(\d+[MIDNSHPX=])+)$/.test(o)}function ke(e){let t=e.length>_?e.subarray(0,_):e;for(let n of D(t).split(/\r\n|\r|\n/))if(n.trim().length>0)return n}function V(e,t,n){if(e.length<t+n.length)return false;for(let r=0;r<n.length;r++)if(e[t+r]!==n.charCodeAt(r))return false;return true}function F(e,t,n){return t?{id:e,description:t,sequence:n}:{id:e,sequence:n}}function Bt(e){return le(e,"embl")}function Gt(e){return le(e,"swissprot")}function le(e,t){let n=x(e),r=[],i=false,o="",a="",s=[],c=[],m="header",d=()=>{i&&(r.push(F(Oe(t,o,a),s.join(" ").trim(),E(c.join("")))),i=false,o="",a="",s=[],c=[],m="header");};for(let u of n){if(u.startsWith("//")){d();continue}if(m==="sequence"){if(u.length===0||/^\s/.test(u)){c.push(u.replace(/[\s\d]/g,""));continue}m="header";}let p=u.slice(0,2);p==="ID"?(i&&d(),i=true,o=u.slice(2).trim()):p==="AC"?(a||(a=u.slice(2).split(";")[0].trim()),i=true):p==="DE"?(s.push(u.slice(2).trim()),i=true):p==="SQ"&&(m="sequence",i=true);}return d(),r}function Oe(e,t,n){if(e==="swissprot")return n||k(t);let r=t.split(";"),i=k(r[0]),o="";for(let a of r){let s=/^\s*SV\s+(\d+)/.exec(a);s&&(o=s[1]);}return (o?`${i}.${o}`:i)||n}var fe=93,ee=33,de=60,De=255;function ge(e){let t=x(e),n=[],r,i=[],o=()=>{r!==void 0&&n.push(Me(r,i.join("")));};for(let a of t)if(a[0]===">")o(),r=a.slice(1),i=[];else {if(L(a)||a[0]===";")continue;if(r===void 0)continue;i.push(a);}return o(),n}function Ht(e){let t=x(e),n=[],r=0;for(;r<t.length;){if(L(t[r])||t[r][0]!=="@"){r++;continue}let i=t[r].slice(1);r++;let o=[];for(;r<t.length&&t[r][0]!=="+"&&t[r][0]!=="@";)o.push(t[r]),r++;let a=E(o.join(""));if(r>=t.length||t[r][0]==="@"){n.push(me(i,a,""));continue}r++;let s="";for(;r<t.length&&s.length<a.length&&!(t[r][0]==="@"&&qe(t,r));)s+=E(t[r]),r++;n.push(me(i,a,s));}return n}function Wt(e,t){let n=t?.lineWidth??de;return re(e).map(r=>`${te(">",r.id,r.description)}
|
|
2
|
-
${
|
|
3
|
-
${
|
|
1
|
+
function U(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t}function I(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function w(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function F(e,t,n){return e.subarray(t,t+n)}function ye(e){return String.fromCharCode(e>>>24&255,e>>>16&255,e>>>8&255,e&255)}var M=128,E=28;function se(e){if(e.byteLength<M)throw new Error(`ABIF too small: ${e.byteLength} bytes`);let t=0;if(U(F(e,0,4))!=="ABIF")if(e.byteLength>=132&&U(F(e,128,4))==="ABIF")t=128;else throw new Error('Not an ABIF file: missing "ABIF" magic.');let n=t;if(e.byteLength-n<M)throw new Error(`ABIF too small: ${e.byteLength-n} bytes after offset ${n}`);let r=w(e),i=r.getInt16(n+4,false),o=ie(e,r,n+6,n);if(o.tagName!=="tdir")throw new Error(`Expected "tdir" header entry, got "${o.tagName}"`);if(o.elementSize!==E)throw new Error(`Expected dir element size ${E}, got ${o.elementSize}`);let s=o.raw?.elementCount??o.elementCount,a=Math.max(0,s),c=r.getInt32(n+6+20,false);if(c<0||c+a*E>e.byteLength-n)throw new Error(`Directory out of bounds: offset=${c}, entries=${a}, file=${e.byteLength-n}`);let u=[];for(let R=0;R<a;R++)u.push(ie(e,r,n+c+R*E,n));let d=o.raw?.dataSize??a*E,f=n+c+a*E,g=Math.min(Math.max(0,d-a*E),Math.max(0,e.byteLength-f)),l={entryCount:a,rawEntryCount:s,elementType:o.elementType,tagNumber:o.tagNumber,entrySize:o.elementSize,dataSize:d,dataOffset:c,dataOffsetBytes:o.raw?.dataOffsetBytes??new Uint8Array(4),dataHandle:o.dataHandle,paddingBytes:new Uint8Array(F(e,f,g))},h=new Uint8Array(F(e,n+6+E,M-6-E)),S=t===128?new Uint8Array(F(e,0,128)):void 0,C=Ce(e,n,c,d,u,t);return {version:i,tdir:l,entries:u,macBinaryOffset:t,macBinaryHeader:S,headerReserved:h,unreferencedRanges:C}}function Ce(e,t,n,r,i,o){let s=e.byteLength,a=[];o===128&&a.push([0,128]),a.push([t,t+M]);let c=Math.max(i.length*E,Math.max(0,r));a.push([t+n,t+n+c]);for(let l of i)if(l.raw&&!l.raw.inline){let h=t+l.raw.dataOffset;a.push([h,h+l.payload.byteLength]);}let u=a.map(([l,h])=>[Math.max(0,Math.min(l,s)),Math.max(0,Math.min(h,s))]).filter(([l,h])=>h>l).sort((l,h)=>l[0]-h[0]),d=[];for(let[l,h]of u){let S=d[d.length-1];S&&l<=S[1]?S[1]=Math.max(S[1],h):d.push([l,h]);}let f=[],g=0;for(let[l,h]of d)l>g&&f.push({offset:g,bytes:new Uint8Array(F(e,g,l-g))}),g=Math.max(g,h);return g<s&&f.push({offset:g,bytes:new Uint8Array(F(e,g,s-g))}),f}function ie(e,t,n,r){let i=U(F(e,n,4)),o=t.getInt32(n+4,false),s=t.getInt16(n+8,false),a=t.getInt16(n+10,false),c=t.getInt32(n+12,false),u=t.getInt32(n+16,false),d=t.getInt32(n+24,false),f=Math.max(0,c*Math.max(0,a)),g=u>=0?u:f,l=u>=0?u<=4:f<=4,h=Math.max(0,a>0?Math.min(c,Math.floor(g/a)):Math.min(c,g)),S,C;if(l)C=-1,S=new Uint8Array(F(e,n+20,Math.min(4,g)));else {C=t.getInt32(n+20,false);let m=r+C;if(C<0||m+g>e.byteLength)throw new Error(`Entry ${i}${o}: payload out of bounds (offset=${C}, size=${g})`);S=new Uint8Array(F(e,m,g));}let R=new Uint8Array(F(e,n+20,4));return {tagName:i,tagNumber:o,elementType:s,elementSize:a,elementCount:h,payload:S,dataHandle:d,raw:{elementCount:c,dataSize:u,dataOffset:C,inline:l,dataOffsetBytes:R}}}function it(e){let t=e.macBinaryOffset,n=e.entries.length,r=e.tdir.entryCount,i=e.entries.map(l=>l.raw&&l.payload.byteLength===l.raw.dataSize?l.raw:void 0),o=M;o=Math.max(o,e.tdir.dataOffset+Math.max(e.tdir.dataSize,r*E));for(let l of i)l&&!l.inline&&(o=Math.max(o,l.dataOffset+l.dataSize));for(let l of e.unreferencedRanges)o=Math.max(o,l.offset-t+l.bytes.length);let s=n>r,a=o,c=s?a:e.tdir.dataOffset,u=n===r?e.tdir.dataSize:n*E;s&&(a+=u);let d=new Array(n);for(let l=0;l<n;l++){let h=e.entries[l].payload.byteLength;if(i[l]||h<=4){d[l]=-1;continue}d[l]=a,a+=h;}let f=new Uint8Array(a),g=w(f);f.set(I("ABIF"),0),g.setInt16(4,e.version,false),f.set(e.headerReserved,6+E),oe(f,g,6,{tagName:"tdir",tagNumber:e.tdir.tagNumber,elementType:e.tdir.elementType,elementSize:e.tdir.entrySize,elementCount:n,dataSize:u,dataHandle:e.tdir.dataHandle,offsetSlot:{kind:"external",value:c}}),n===r&&e.tdir.paddingBytes.length>0&&f.set(e.tdir.paddingBytes,c+n*E);for(let l=0;l<n;l++){let h=e.entries[l],S=i[l],C=c+l*E,R=h.payload.byteLength;oe(f,g,C,{tagName:h.tagName,tagNumber:h.tagNumber,elementType:h.elementType,elementSize:h.elementSize,elementCount:S?S.elementCount:h.elementCount,dataSize:S?S.dataSize:R,dataHandle:h.dataHandle,offsetSlot:R<=4?{kind:"inline",payload:h.payload,dataSize:R,staleTail:S?.dataOffsetBytes}:{kind:"external",value:S?S.dataOffset:d[l]}}),R>4&&f.set(h.payload,S?S.dataOffset:d[l]);}for(let l of e.unreferencedRanges)f.set(l.bytes,l.offset-t);return f}function oe(e,t,n,r){if(r.tagName.length!==4)throw new Error(`tagName must be 4 chars: "${r.tagName}"`);if(e.set(I(r.tagName),n),t.setInt32(n+4,r.tagNumber,false),t.setInt16(n+8,r.elementType,false),t.setInt16(n+10,r.elementSize,false),t.setInt32(n+12,r.elementCount,false),t.setInt32(n+16,r.dataSize,false),r.offsetSlot.kind==="external")t.setInt32(n+20,r.offsetSlot.value,false);else {let{payload:i,dataSize:o,staleTail:s}=r.offsetSlot;e.fill(0,n+20,n+24),e.set(i.subarray(0,o),n+20),s&&o<4&&e.set(s.subarray(o,4),n+20+o);}t.setInt32(n+24,r.dataHandle,false);}function N(e,t,n){return e.entries.find(r=>r.tagName===t&&r.tagNumber===n)}function ot(e,t){return e.entries.filter(n=>n.tagName===t)}function xe(e,t){return e.tagName!==t.tagName?e.tagName<t.tagName?-1:1:e.tagNumber-t.tagNumber}function Q(e,t){let n=e.findIndex(r=>xe(r,t)>0);e.splice(n<0?e.length:n,0,t);}function k(e,t,n,r,i){if(r.byteLength!==i.elementCount*i.elementSize)throw new Error(`upsertEntry ${t}${n}: payload length ${r.byteLength} != count*size`);let o=N(e,t,n);o?(o.elementType=i.elementType,o.elementSize=i.elementSize,o.elementCount=i.elementCount,o.payload=r,o.raw=void 0):Q(e.entries,{tagName:t,tagNumber:n,elementType:i.elementType,elementSize:i.elementSize,elementCount:i.elementCount,payload:r,dataHandle:0});}function ut(e,t){let n=N(e,"DATA",t);if(!n)return;if(n.elementSize!==2)throw new Error(`DATA${t}: expected elementSize=2, got ${n.elementSize}`);let r=new Int16Array(n.elementCount),i=w(n.payload);for(let o=0;o<n.elementCount;o++)r[o]=i.getInt16(o*2,false);return r}function X(e){let t=N(e,"FWO_",1);return t?U(t.payload.subarray(0,t.elementCount)):"GATC"}function K(e){return /^[ACGT]{4}$/.test(e)&&new Set(e).size===4}function B(e){return !!(N(e,"DATA",9)&&N(e,"DATA",10)&&N(e,"DATA",11)&&N(e,"DATA",12))}function ft(e){return e>=5&&e<=8?"telemetry":e>=1&&e<=4||e>=9&&e<=12||e===105||e===205?"trace":"other"}function lt(e){let t=N(e,"RevC",1);if(!t)return;let n=w(t.payload);return t.payload.byteLength>=2?n.getInt16(0,false)!==0:t.payload.some(r=>r!==0)}function mt(e){let t=X(e);if(!K(t))throw new Error(`FWO_ is not a permutation of A/C/G/T: "${t}"`);return {[t[0]]:1,[t[1]]:2,[t[2]]:3,[t[3]]:4}}function dt(e){return P(e,2)??P(e,1)}function P(e,t){let n=N(e,"PBAS",t);if(n)return U(n.payload.subarray(0,n.elementCount)).replace(/\0+$/g,"")}function gt(e){return v(e,2)??v(e,1)}function v(e,t){let n=N(e,"PCON",t);if(!n)return;let r=new Array(n.elementCount);for(let i=0;i<n.elementCount;i++)r[i]=n.payload[i];return r}function pt(e){return z(e,2)??z(e,1)}function z(e,t){let n=N(e,"PLOC",t);if(!n)return;if(n.elementSize!==2)throw new Error(`PLOC${t}: expected elementSize=2, got ${n.elementSize}`);let r=w(n.payload),i=new Array(n.elementCount);for(let o=0;o<n.elementCount;o++)i[o]=r.getUint16(o*2,false);return i}function ht(e){let t=N(e,"SPAC",1);if(!t||t.elementSize!==4||t.payload.byteLength<4)return;let n=w(t.payload).getFloat32(0,false);return Number.isFinite(n)&&n>0?n:void 0}function Ct(e,t,n={}){let{start:r,end:i}=t;if(!Number.isInteger(r)||!Number.isInteger(i)||r<0||i<=r)throw new Error(`cropAbif: invalid range [${r}, ${i})`);if(!B(e))throw new Error("cropAbif: no DATA9..12 block to crop \u2014 the range has nothing to apply to");let o=Math.min(G(e,9),G(e,10),G(e,11),G(e,12));if(i>o)throw new Error(`cropAbif: range end ${i} exceeds the processed trace length ${o}`);let s=n.rawTrace??"omit",a=[];for(let c of e.entries)c.tagName==="DATA"&&c.tagNumber>=9&&c.tagNumber<=12?a.push(Ne(c,r,i)):c.tagName==="DATA"&&c.tagNumber>=1&&c.tagNumber<=8?s==="full"&&a.push({...c}):c.tagName==="PBAS"||c.tagName==="PCON"||c.tagName==="PLOC"||a.push({...c});for(let c of we(e))a.push(...Re(e,c,r,i));return {version:e.version,tdir:e.tdir,entries:a,macBinaryOffset:0,macBinaryHeader:void 0,headerReserved:e.headerReserved,unreferencedRanges:[]}}function G(e,t){return N(e,"DATA",t)?.elementCount??0}function Ne(e,t,n){if(e.elementSize!==2)throw new Error(`cropAbif: DATA${e.tagNumber} expected elementSize=2, got ${e.elementSize}`);let r=new Uint8Array(e.payload.subarray(t*2,n*2));return {tagName:"DATA",tagNumber:e.tagNumber,elementType:e.elementType,elementSize:2,elementCount:n-t,payload:r,dataHandle:e.dataHandle}}function we(e){let t=new Set;for(let n of e.entries)n.tagName==="PBAS"&&t.add(n.tagNumber);return Array.from(t).sort((n,r)=>n-r)}function Re(e,t,n,r){let i=P(e,t);if(i===void 0)return [];let o=z(e,t);if(o===void 0)throw new Error(`cropAbif: PBAS${t} has no PLOC${t} to crop by`);if(o.length!==i.length)throw new Error(`cropAbif: PBAS${t}/PLOC${t} length mismatch (${i.length} vs ${o.length})`);let s=v(e,t);if(s!==void 0&&s.length!==i.length)throw new Error(`cropAbif: PBAS${t}/PCON${t} length mismatch`);let a=[];for(let f=0;f<o.length;f++)o[f]>=n&&o[f]<r&&a.push(f);let c=a.map(f=>i[f]).join(""),u=a.map(f=>o[f]-n),d=[{tagName:"PBAS",tagNumber:t,elementType:2,elementSize:1,elementCount:c.length,payload:I(c),dataHandle:0},{tagName:"PLOC",tagNumber:t,elementType:4,elementSize:2,elementCount:u.length,payload:Ee(u),dataHandle:0}];if(s!==void 0){let f=a.map(g=>s[g]);d.push({tagName:"PCON",tagNumber:t,elementType:2,elementSize:1,elementCount:f.length,payload:Uint8Array.from(f),dataHandle:0});}return d}function Ee(e){let t=new Uint8Array(e.length*2),n=w(t);for(let r=0;r<e.length;r++)n.setUint16(r*2,Math.max(0,Math.min(65535,e[r])),false);return t}var Te={1:"byte",2:"char",3:"word",4:"short",5:"long",7:"float",8:"double",10:"date",11:"time",12:"thumb",13:"bool",18:"pString",19:"cString",1023:"tdir"};function J(e){return Te[e]??(e>=1024?`user${e}`:`type${e}`)}function Fe(e,t=10){return e.length<=t?`[${e.join(", ")}]`:`[${e.slice(0,t).join(", ")}, \u2026 +${e.length-t}] (n=${e.length})`}function Le(e,t=80){return e.length>t?e.slice(0,t)+"\u2026":e}function ae(e){let t=e.subarray(0,16),n=Array.from(t,r=>r.toString(16).padStart(2,"0")).join(" ");return `${e.byteLength}B [${n}${e.byteLength>16?" \u2026":""}]`}function Z(e){if(e.kind==="numbers")return e.value;if(e.kind==="number")return [e.value]}function q(e,t,n,r){let i=Math.max(0,Math.min(t,Math.floor(e/n))),o=[];for(let s=0;s<i;s++)o.push(r(s*n));return o.length===1?{kind:"number",value:o[0]}:{kind:"numbers",value:o}}function ce(e,t,n){let r=w(n);switch(e){case 1:return {kind:"numbers",value:Array.from(n.subarray(0,t))};case 2:case 19:return {kind:"string",value:U(n.subarray(0,t)).replace(/\0+$/g,"")};case 3:return q(n.byteLength,t,2,i=>r.getUint16(i,false));case 4:return q(n.byteLength,t,2,i=>r.getInt16(i,false));case 5:return q(n.byteLength,t,4,i=>r.getInt32(i,false));case 7:return q(n.byteLength,t,4,i=>r.getFloat32(i,false));case 8:return q(n.byteLength,t,8,i=>r.getFloat64(i,false));case 10:{if(n.byteLength<4)return {kind:"unknown",value:n};let i=r.getInt16(0,false),o=r.getUint8(2),s=r.getUint8(3);return {kind:"date",value:{year:i,month:o,day:s}}}case 11:return n.byteLength<4?{kind:"unknown",value:n}:{kind:"time",value:{hour:r.getUint8(0),minute:r.getUint8(1),second:r.getUint8(2),hsec:r.getUint8(3)}};case 13:{let i=[];for(let o=0;o<Math.min(t,n.byteLength);o++)i.push(r.getUint8(o)!==0);return {kind:"bools",value:i}}case 18:{if(n.byteLength<1)return {kind:"string",value:""};let i=r.getUint8(0);return {kind:"string",value:U(F(n,1,Math.min(i,Math.max(0,t-1))))}}default:return {kind:"unknown",value:n}}}function Ue(e,t){switch(e.kind){case "number":return String(e.value);case "numbers":return Fe(e.value);case "string":return Le(JSON.stringify(e.value));case "bools":return e.value.length===1?String(e.value[0]):`[${e.value.join(", ")}]`;case "date":{let{year:n,month:r,day:i}=e.value;return `${n}-${String(r).padStart(2,"0")}-${String(i).padStart(2,"0")}`}case "time":{let{hour:n,minute:r,second:i}=e.value;return `${String(n).padStart(2,"0")}:${String(r).padStart(2,"0")}:${String(i).padStart(2,"0")}`}case "bytes":return `${J(t)} ${ae(e.value)}`;case "unknown":return `${J(t)} ${ae(e.value)}`}}function Et(e,t=""){let n=e instanceof Uint8Array?e:new Uint8Array(e),r=se(n),i=r.entries.map(m=>{let p=m.tagName==="PCON"&&m.elementSize===1?ce(1,m.elementCount,m.payload):ce(m.elementType,m.elementCount,m.payload);return {tag:m.tagName,tagNumber:m.tagNumber,elementType:m.elementType,elementTypeName:J(m.elementType),elementSize:m.elementSize,elementCount:m.elementCount,rawElementCount:m.raw?.elementCount??m.elementCount,dataSize:m.raw?.dataSize??m.elementCount*m.elementSize,dataOffset:m.raw?.dataOffset??-1,inline:m.raw?.inline??m.elementCount*m.elementSize<=4,decoded:p,preview:Ue(p,m.elementType)}}),o=X(r);K(o)||(o="GATC");let s={},a={A:[],C:[],G:[],T:[]},c={A:[],C:[],G:[],T:[]},u={comments:[]},d={},f={},g={},l=m=>o[m];for(let m=0;m<r.entries.length;m++){let p=r.entries[m],A=i[m].decoded;if(p.tagName==="DATA"){let b=Z(A);b&&(s[p.tagNumber]=b,p.tagNumber>=1&&p.tagNumber<=4?a[l(p.tagNumber-1)]=b:p.tagNumber>=9&&p.tagNumber<=12&&(c[l(p.tagNumber-9)]=b));}else if(p.tagName==="PBAS"&&A.kind==="string")d[p.tagNumber]=A.value;else if(p.tagName==="PCON"){let b=p.elementSize===1?Array.from(p.payload.subarray(0,p.elementCount)):Z(A);b&&(f[p.tagNumber]=b);}else if(p.tagName==="PLOC"){let b=Z(A);b&&(g[p.tagNumber]=b.map(Y=>Y<0?Y+65536:Y));}else if(p.tagName==="SPAC")if(p.elementSize===4&&p.payload.byteLength>=4){let b=w(p.payload).getFloat32(0,false);Number.isFinite(b)&&b>0&&(u.samplingRate=b);}else A.kind==="number"&&(u.samplingRate=A.value);else if(p.tagName==="SMPL"&&A.kind==="string")u.sampleName=A.value;else if(p.tagName==="LANE"&&A.kind==="number")u.laneNumber=A.value;else if(p.tagName==="TUBE"&&A.kind==="string")u.tube=A.value;else if(p.tagName==="MCHN"&&A.kind==="string")u.machineName=A.value;else if(p.tagName==="MODL"&&A.kind==="string")u.machineModel=A.value;else if(p.tagName==="RUND"&&A.kind==="date"){let b=A.value;u.runDate=`${b.year}-${String(b.month).padStart(2,"0")}-${String(b.day).padStart(2,"0")}`;}else if(p.tagName==="RUNT"&&A.kind==="time"){let b=A.value;u.runTime=`${String(b.hour).padStart(2,"0")}:${String(b.minute).padStart(2,"0")}:${String(b.second).padStart(2,"0")}`;}else p.tagName==="CMNT"&&A.kind==="string"?u.comments.push(A.value):p.tagName==="RevC"&&p.tagNumber===1&&(A.kind==="number"?u.reverseComplemented=A.value!==0:A.kind==="numbers"&&(u.reverseComplemented=A.value.some(b=>b!==0)));}let h=Object.keys(d).map(Number).sort((m,p)=>m-p).map(m=>({version:m,role:m===1?"edited":m===2?"called":"unknown",sequence:d[m],confidences:f[m]??[],positions:g[m]??[]})),S,C=2 in d?2:1 in d?1:Object.keys(d).map(Number)[0];if(C!==void 0&&d[C]!==void 0){let m=d[C].toUpperCase(),p=f[C]??[];p.length!==m.length&&(p=Object.keys(f).map(Number).map(b=>f[b]).find(b=>b.length===m.length)??[]);let A=g[C]??[];A.length!==m.length&&(A=Object.keys(g).map(Number).map(b=>g[b]).find(b=>b.length===m.length)??[]),S={sequence:m,confidences:p,positions:A,pbasVersion:C};}if(!Number.isFinite(u.samplingRate)||(u.samplingRate??0)<=0){let m=S?.positions,p=Math.max(c.A.length,c.C.length,c.G.length,c.T.length);m&&m.length>1?u.samplingRate=(m[m.length-1]-m[0])/(m.length-1):S&&S.sequence.length>0&&p>0&&(u.samplingRate=p/S.sequence.length);}let R={baseOrder:o,dataChannels:s,data1To4:a,data9To12:c};return {fileName:t,fileSize:n.byteLength,abifVersion:r.version,macBinaryOffset:r.macBinaryOffset,dirEntryCount:r.entries.length,metadata:u,chromatogram:R,baseCalls:S,baseCallVariants:h,entries:i}}function Tt(e){return e.A.length>0||e.C.length>0||e.G.length>0||e.T.length>0}function Ft(e){return Math.max(e.A.length,e.C.length,e.G.length,e.T.length)}function kt(e,t){k(e,"PBAS",2,I(t),{elementType:2,elementSize:1,elementCount:t.length});}function Ot(e,t){let n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=Math.max(0,Math.min(255,Math.round(t[r])));k(e,"PCON",2,n,{elementType:2,elementSize:1,elementCount:t.length});}function Dt(e,t){let n=new Uint8Array(t.length*2),r=w(n);for(let i=0;i<t.length;i++)r.setUint16(i*2,Math.max(0,Math.min(65535,t[i])),false);k(e,"PLOC",2,n,{elementType:4,elementSize:2,elementCount:t.length});}function Mt(e,t,n){let r=new Uint8Array(4);w(r).setFloat32(0,t,false),k(e,"SPAC",1,r,{elementType:7,elementSize:4,elementCount:1});let i=I(n),o=Math.min(255,i.length),s=new Uint8Array(1+o);s[0]=o,s.set(i.subarray(0,o),1),k(e,"SPAC",2,s,{elementType:18,elementSize:1,elementCount:1+o});let a=new Uint8Array(4);w(a).setFloat32(0,t,false),k(e,"SPAC",3,a,{elementType:7,elementSize:4,elementCount:1});}function qt(e){return e.length<2?0:(e[e.length-1]-e[0])/(e.length-1)}function Pt(e){if(!B(e))for(let t=1;t<=4;t++){let n=N(e,"DATA",t);if(!n)continue;let r=8+t;N(e,"DATA",r)||Q(e.entries,{tagName:"DATA",tagNumber:r,elementType:n.elementType,elementSize:n.elementSize,elementCount:n.elementCount,payload:new Uint8Array(n.payload),dataHandle:0});}}function x(e,t,n){return t?{id:e,description:t,sequence:n}:{id:e,sequence:n}}function D(e){let t=typeof e=="string"?e:new TextDecoder().decode(e);return t.charCodeAt(0)===65279&&(t=t.slice(1)),t}function y(e){return D(e).split(/\r\n|\r|\n/)}function T(e){return e.replace(/\s+/g,"")}function L(e){return e.trim().length===0}function O(e){let t=e.trim(),n=t.search(/\s/);return n<0?t:t.slice(0,n)}function _t(e){let t=[],n=null,r="",i=[],o=0,s=0,a=()=>{n&&r&&i.length>0&&t.push(x(r,n,T(i.join("")))),n=null,r="",i=[],o=0,s=0;},c=(u,d,f)=>{a();let g=u.trim().split(/\s+/);n=d,r=f(g[1]??""),s=/^\d+$/.test(g[2]??"")?Number.parseInt(g[2],10):Number.POSITIVE_INFINITY;};for(let u of y(e)){if(/^CO\s/.test(u)){c(u,"consensus",f=>`Contig${f}`);continue}if(/^RD\s/.test(u)){c(u,"read",f=>f);continue}if(n===null)continue;if(L(u)||o>=s){a();continue}let d=T(u);i.push(d),o+=d.length,o>=s&&a();}return a(),t}var Ie=128,V=8192;function Yt(e){if(H(e,0,"ABIF")||H(e,Ie,"ABIF"))return "abif";if(H(e,0,".scf"))return "scf";if(H(e,0,"BAM"))return "bam";let t=De(e);if(t===void 0)return "unknown";let n=ke(t),r=n==="clustal"&&!ue.test(t.trimStart());return (n==="unknown"||r)&&$e(e)?"msf":n}function $e(e){let t=e.length>V?e.subarray(0,V):e,n=D(t),r=/\bMSF:\s*\d+\b[^\n]*\bCheck:\s*\d/.test(n)&&/^\s*Name:\s+.*\bLen:\s*\d/im.test(n),i=/^\s*Name:\s+\S+\s+Len:\s*\d+\s+Check:\s*\d+\s+Weight:/im.test(n);return r||i}var ue=/^(CLUSTAL|MUSCLE|MAFFT|T-?COFFEE|PROBCONS|KALIGN|MVIEW|PROMALS)\b/i;function ke(e){let t=e.trimStart();if(/^LOCUS\s/.test(t))return "genbank";if(/^ID\s/.test(t))return /(Reviewed|Unreviewed);| AA\.\s*$/.test(t)?"swissprot":"embl";if(/^#\s*STOCKHOLM/i.test(t))return "stockholm";if(/^#NEXUS/i.test(t))return "nexus";if(/^#mega\b/i.test(t))return "mega";if(/^HEADER\s{2,}/.test(t)||/^(ATOM|HETATM)\s+\d+\s/.test(t)||/^MODEL\s+\d/.test(t)||/^CRYST1\s/.test(t))return "pdb";if(/^AS\s+\d+\s+\d+\s*$/.test(t))return "ace";if(ue.test(t)||/multiple (sequence )?alignment/i.test(t)&&!/^[>@#]/.test(t)&&!/genedoc/i.test(t))return "clustal";if(/^!!(NA|AA)_MULTIPLE_ALIGNMENT/i.test(t)||/\bMSF:\s*\d/.test(t))return "msf";if(/^\d+\s+\d+\s*$/.test(t))return "phylip";if(/^##gff-version/i.test(t))return "gff";if(/^H\t(?:[^\t]*\t)*VN:Z:[12]\./.test(t))return "gfa";if(/^@(HD|SQ|RG|PG|CO)\t/.test(t))return "sam";if(/^>(P1|F1|DL|DC|RL|RC|N1|N3|XX);/i.test(t))return "pir";switch(t.charCodeAt(0)){case 62:case 59:return "fasta";case 64:return "fastq"}return Oe(t)?"sam":/^S\t[!-~]+\t/.test(t)?"gfa":"unknown"}function Oe(e){let t=e.split(" ");if(t.length<11)return false;let[,n,,r,i,o]=t;return /^\d+$/.test(n)&&/^\d+$/.test(r)&&/^\d+$/.test(i)&&/^(\*|(\d+[MIDNSHPX=])+)$/.test(o)}function De(e){let t=e.length>V?e.subarray(0,V):e;for(let n of D(t).split(/\r\n|\r|\n/))if(n.trim().length>0)return n}function H(e,t,n){if(e.length<t+n.length)return false;for(let r=0;r<n.length;r++)if(e[t+r]!==n.charCodeAt(r))return false;return true}function Jt(e){return fe(e,"embl")}function en(e){return fe(e,"swissprot")}function fe(e,t){let n=y(e),r=[],i=false,o="",s="",a=[],c=[],u="header",d=()=>{i&&(r.push(x(Me(t,o,s),a.join(" ").trim(),T(c.join("")))),i=false,o="",s="",a=[],c=[],u="header");};for(let f of n){if(f.startsWith("//")){d();continue}if(u==="sequence"){if(f.length===0||/^\s/.test(f)){c.push(f.replace(/[\s\d]/g,""));continue}u="header";}let g=f.slice(0,2);g==="ID"?(i&&d(),i=true,o=f.slice(2).trim()):g==="AC"?(s||(s=f.slice(2).split(";")[0].trim()),i=true):g==="DE"?(a.push(f.slice(2).trim()),i=true):g==="SQ"&&(u="sequence",i=true);}return d(),r}function Me(e,t,n){if(e==="swissprot")return n||O(t);let r=t.split(";"),i=O(r[0]),o="";for(let s of r){let a=/^\s*SV\s+(\d+)/.exec(s);a&&(o=a[1]);}return (o?`${i}.${o}`:i)||n}var le=93,ee=33,de=60,qe=255;function ge(e){let t=y(e),n=[],r,i=[],o=()=>{r!==void 0&&n.push(Pe(r,i.join("")));};for(let s of t)if(s[0]===">")o(),r=s.slice(1),i=[];else {if(L(s)||s[0]===";")continue;if(r===void 0)continue;i.push(s);}return o(),n}function rn(e){let t=y(e),n=[],r=0;for(;r<t.length;){if(L(t[r])||t[r][0]!=="@"){r++;continue}let i=t[r].slice(1);r++;let o=[];for(;r<t.length&&t[r][0]!=="+"&&t[r][0]!=="@";)o.push(t[r]),r++;let s=T(o.join(""));if(r>=t.length||t[r][0]==="@"){n.push(me(i,s,""));continue}r++;let a="";for(;r<t.length&&a.length<s.length&&!(t[r][0]==="@"&&ve(t,r));)a+=T(t[r]),r++;n.push(me(i,s,a));}return n}function on(e,t){let n=t?.lineWidth??de;return re(e).map(r=>`${te(">",r.id,r.description)}
|
|
2
|
+
${Be(r.sequence,n)}`).join("")}function sn(e){return re(e).map(ze).join("")}function an(e,t){let n=t?.lineWidth??de;return re(e).map(r=>`${te(">",r.id,r.description)}
|
|
3
|
+
${Ge(r.qualities,n)}`).join("")}function cn(e){return !!e&&e.length>0&&!e.every(t=>t===qe)}function Pe(e,t){let{id:n,description:r}=pe(e),i=T(t);return r===void 0?{id:n,sequence:i}:{id:n,description:r,sequence:i}}function me(e,t,n){let{id:r,description:i}=pe(e),o=new Array(t.length);for(let s=0;s<t.length;s++){let a=s<n.length?n.charCodeAt(s):ee;o[s]=ne(a-ee);}return i===void 0?{id:r,sequence:t,qualities:o}:{id:r,description:i,sequence:t,qualities:o}}function pe(e){let t=e.trim(),n=t.search(/\s/);return n<0?{id:t}:{id:t.slice(0,n),description:t.slice(n+1).trim()||void 0}}function ve(e,t){let n=t+1;for(;n<e.length&&e[n][0]!=="+"&&e[n][0]!=="@";)n++;return e[n]?.[0]==="+"}function ze(e){let{id:t,description:n,sequence:r,qualities:i}=e;if(i.length!==r.length)throw new Error(`FASTQ ${t}: ${i.length} quality scores for ${r.length} bases`);let o=i.map(He).join("");return `${te("@",t,n)}
|
|
4
4
|
${r}
|
|
5
5
|
+
|
|
6
6
|
${o}
|
|
7
7
|
`}function te(e,t,n){let r=n?`${t} ${n}`:t;if(r.includes(`
|
|
8
|
-
`))throw new Error("FASTX header must not contain a newline");return e+r}function
|
|
8
|
+
`))throw new Error("FASTX header must not contain a newline");return e+r}function Be(e,t){if(e.length===0)return "";if(t<=0||e.length<=t)return `${e}
|
|
9
9
|
`;let n="";for(let r=0;r<e.length;r+=t)n+=`${e.slice(r,r+t)}
|
|
10
|
-
`;return n}function
|
|
11
|
-
`;return i}function ne(e){let t=Math.round(e);return t<0?0:t>
|
|
12
|
-
`))}var
|
|
13
|
-
export{
|
|
10
|
+
`;return n}function Ge(e,t){if(e.length===0)return "";let n=e.map(ne),r=t<=0?n.length:t,i="";for(let o=0;o<n.length;o+=r)i+=`${n.slice(o,o+r).join(" ")}
|
|
11
|
+
`;return i}function ne(e){let t=Math.round(e);return t<0?0:t>le?le:t}function He(e){return String.fromCharCode(ne(e)+ee)}function re(e){return Array.isArray(e)?e:[e]}var Ve=/^([A-Za-z][A-Za-z0-9_]*)/;function dn(e){let t=y(e),n=[],r=false,i="",o="",s="",a=[],c=[],u="header",d=()=>{if(!r)return;let f=s||o||i;n.push(x(f,a.join(" ").trim(),T(c.join("")))),r=false,i=o=s="",a=[],c=[],u="header";};for(let f of t){if(f.startsWith("//")){d();continue}let g=f.length>0&&!/^\s/.test(f);if(u==="origin")if(g)u="header";else {c.push(f.replace(/[\s\d]/g,""));continue}if(u==="definition"&&!g){a.push(f.trim());continue}if(!g)continue;let l=(Ve.exec(f)?.[1]??"").toUpperCase(),h=f.slice(l.length).trim();l==="LOCUS"&&r&&d(),r=true,u="header",l==="LOCUS"?i=O(h):l==="ACCESSION"?o=O(h):l==="VERSION"?s=O(h):l==="DEFINITION"?(a=[h],u="definition"):l==="ORIGIN"&&(u="origin");}return d(),n}function _e(e){let t=[];for(let n of y(e)){if(n.charCodeAt(0)!==83||n.charCodeAt(1)!==9)continue;let r=n.split(" "),i=r[1];if(!i)continue;let o=/^\d+$/.test(r[2]??"")&&r[3]!==void 0?r[3]:r[2];!o||o==="*"||t.push(x(i,"",o));}return t}function Nn(e){let t=y(e),n=t.findIndex(r=>/^##FASTA\s*$/i.test(r.trim()));return n<0?[]:ge(t.slice(n+1).join(`
|
|
12
|
+
`))}var $=class{constructor(){this.order=[];this.blocks=new Map;}add(t,n){let r=this.blocks.get(t);r?r.push(n):(this.blocks.set(t,[n]),this.order.push(t));}toRecords(){return this.order.map(t=>x(t,"",T((this.blocks.get(t)??[]).join(""))))}},We=/^[A-Za-z0-9.*?~-]+$/;function Fn(e){let t=new $,n=false;for(let r of y(e)){if(L(r)||/^\s/.test(r)||!n&&(n=true,/multiple (sequence )?alignment/i.test(r)||/^(CLUSTAL|MUSCLE|MAFFT|T-?COFFEE|PROBCONS|KALIGN|MVIEW|PROMALS)/i.test(r)))continue;let i=/^(\S+)\s+(\S+)/.exec(r);i&&We.test(i[2])&&t.add(i[1],i[2]);}return t.toRecords()}function Ln(e){let t=[],n=new $;for(let r of y(e)){if(r.startsWith("//")){t.push(...n.toRecords()),n=new $;continue}if(L(r)||r.startsWith("#"))continue;let i=/^(\S+)\s+(\S+)/.exec(r);i&&n.add(i[1],i[2]);}return t.push(...n.toRecords()),t}function Un(e){let t=y(e),n=0;for(;n<t.length&&L(t[n]);)n++;let r=(t[n]??"").trim().split(/\s+/),i=Number.parseInt(r[0]??"",10),o=Number.parseInt(r[1]??"",10);if(!Number.isFinite(i)||i<=0)return [];n++;let s=[],a=[];for(;n<t.length&&s.length<i;n++){if(L(t[n]))continue;let d=/^(\S+)\s+(.*)$/.exec(t[n]);d&&(s.push(d[1]),a.push(d[2].replace(/\s+/g,"")));}let c=s.length;if(c===0)return [];let u=Number.isFinite(o)&&o>0?o:Number.POSITIVE_INFINITY;for(let d=0;n<t.length;n++){if(L(t[n]))continue;let f=d%c;a[f].length<u&&(a[f]+=t[n].replace(/\s+/g,"")),d++;}return s.map((d,f)=>x(d,"",u===Number.POSITIVE_INFINITY?a[f]:a[f].slice(0,u)))}function In(e){let t=D(e).replace(/\[[^\]]*\]/g,""),n=new $,r=false;for(let i of t.split(/\r\n|\r|\n/)){if(!r){/^\s*matrix\b/i.test(i)&&(r=true);continue}let o=i.trim();if(o===";")break;if(L(o))continue;let s=o.endsWith(";"),a=s?o.slice(0,-1).trim():o,c=/^("[^"]+"|'[^']+'|\S+)\s+(.+)$/.exec(a);if(c&&n.add(c[1].replace(/^['"]|['"]$/g,""),c[2].replace(/\s+/g,"")),s)break}return n.toRecords()}function $n(e){let t=new $,n=false;for(let r of y(e)){if(!n){r.trimStart().startsWith("//")&&(n=true);continue}if(L(r))continue;let i=/^\s*(\S+)\s+(.+)$/.exec(r);if(!i)continue;let o=i[2].replace(/\s+/g,"");/\d/.test(o)||t.add(i[1],o);}return t.toRecords()}function kn(e){let t=new $,n,r=false,i=false,o=s=>{let a="";for(let c of s)i?c==='"'&&(i=false):c==='"'?i=true:a+=c;return a.replace(/\s+/g,"")};for(let s of y(e)){if(i){let c=o(s);n!==void 0&&c&&t.add(n,c);continue}let a=s.trim();if(a.length!==0){if(r){a.includes(";")&&(r=false);continue}if(!/^#mega\b/i.test(a)){if(a.startsWith("!")){a.includes(";")||(r=true);continue}if(a.startsWith("#")){let c=/^#(\S+)\s*(.*)$/.exec(a);if(c){n=c[1];let u=o(c[2]);u&&t.add(n,u);}}else if(n!==void 0){let c=o(a);c&&t.add(n,c);}}}}return t.toRecords()}var be={ALA:"A",ARG:"R",ASN:"N",ASP:"D",CYS:"C",GLN:"Q",GLU:"E",GLY:"G",HIS:"H",ILE:"I",LEU:"L",LYS:"K",MET:"M",PHE:"F",PRO:"P",SER:"S",THR:"T",TRP:"W",TYR:"Y",VAL:"V",MSE:"M",SEC:"U",PYL:"O",ASX:"B",GLX:"Z",UNK:"X",DA:"A",DC:"C",DG:"G",DT:"T",DU:"U",DI:"I",A:"A",C:"C",G:"G",U:"U",T:"T",I:"I",N:"N"};function je(e){return be[e.toUpperCase()]??"X"}function Ye(e){return e.length>=2&&Object.prototype.hasOwnProperty.call(be,e.toUpperCase())}function Qe(e){if(e.length>=20&&/^\d+$/.test(e.slice(7,10).trim())&&/^\d+$/.test(e.slice(13,17).trim())){let r=e.slice(19).trim().split(/\s+/).filter(Boolean);if(r.length>0)return {chain:e[11],codes:r}}let n=e.trim().split(/\s+/);return n.length>=5?{chain:n[2],codes:n.slice(4)}:null}function he(e,t,n){let r=e.map.get(t);r||(e.map.set(t,r=[]),e.order.push(t)),r.push(n);}function Pn(e){let t=y(e),n={order:[],map:new Map},r={order:[],map:new Map},i=new Set,o=false;for(let a of t)if(a.startsWith("SEQRES")){let c=Qe(a);if(c)for(let u of c.codes)he(n,c.chain,u);}else if(a.startsWith("ENDMDL"))o=true;else if(!o&&a.length>=27&&(a.startsWith("ATOM")||a.startsWith("HETATM"))){let c=a.slice(17,20).trim();if(a.startsWith("ATOM")||Ye(c)){let u=a[21],d=`${u}|${a.slice(22,27)}`;i.has(d)||(i.add(d),he(r,u,c));}}return [...n.order,...r.order.filter(a=>!n.map.has(a))].map(a=>{let c=n.map.get(a)??r.map.get(a)??[];return x(a.trim(),"",c.map(je).join(""))})}function Hn(e){let t=[],n,r="",i=[],o=false,s=()=>{if(n===void 0)return;let a=T(i.join(""));a.endsWith("*")&&(a=a.slice(0,-1)),t.push(x(n,r,a)),n=void 0,r="",i=[],o=false;};for(let a of y(e))if(a.startsWith(">")){s();let c=a.slice(1),u=c.indexOf(";");n=(u>=0?c.slice(u+1):c).trim(),o=true;}else {if(n===void 0)continue;o?(r=a.trim(),o=false):i.push(a);}return s(),t}function _(e){return (e&2304)!==0}function W(e,t){if(t&1){if(t&64)return `${e}/1`;if(t&128)return `${e}/2`}return e}function j(e,t,n){return n&4||!e||e==="*"?"unmapped":`${e}:${t} (${n&16?"-":"+"})`}var Xe="=ACMGRSVTWYHKDBN",Ae=32;function Ke(e){let t=[];if(!(e[0]===66&&e[1]===65&&e[2]===77&&e[3]===1))return t;let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=new TextDecoder,i=(o,s)=>r.decode(e.subarray(o,o+Math.max(0,s-1)));try{let o=e.length,s=4;if(s+4>o)return t;let a=n.getInt32(s,!0);if(s+=4,a<0||s+a+4>o)return t;s+=a;let c=n.getInt32(s,!0);if(s+=4,c<0)return t;let u=[];for(let d=0;d<c;d++){if(s+4>o)return t;let f=n.getInt32(s,!0);if(s+=4,f<=0||s+f+4>o)return t;u.push(i(s,f)),s+=f+4;}for(;s+4<=e.length;){let d=n.getInt32(s,!0);if(s+=4,d<Ae||s+d>e.length)break;let f=s+d,g=n.getInt32(s,!0),l=n.getInt32(s+4,!0),h=n.getUint8(s+8),S=n.getUint16(s+12,!0),C=n.getUint16(s+14,!0),R=n.getInt32(s+16,!0),m=s+Ae,p=i(m,h);m+=h+S*4;let A=R+1>>1;if(R>0&&m+A<=f&&!_(C)){let b=g>=0&&g<u.length?u[g]:"*";t.push(x(W(p,C),j(b,l+1,C),Ze(e,m,R)));}s=f;}}catch{}return t}function Ze(e,t,n){let r="";for(let i=0;i<n;i++){let o=e[t+(i>>1)];r+=Xe[i&1?o&15:o>>4];}return r}function Je(e){let t=[];for(let n of y(e)){if(n.length===0||n.charCodeAt(0)===64)continue;let r=n.split(" ");if(r.length<11)continue;let i=r[9];if(!i||i==="*")continue;let o=Se(r[1]);_(o)||t.push(x(W(r[0],o),j(r[2],Se(r[3]),o),i));}return t}function Se(e){let t=Number.parseInt(e,10);return Number.isFinite(t)?t:0}var et=128;function sr(e){let t=typeof e=="string"?new TextEncoder().encode(e):e;if(t.length<et)return [];let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0,false)!==779314022)return [];let r=n.getUint32(12,false),i=n.getUint32(24,false),o=String.fromCharCode(t[36],t[37],t[38],t[39]);if(r===0||i===0)return [];let s=[];if(Number.parseFloat(o)>=3){let c=i+r*8;for(let u=0;u<r&&c+u<t.length;u++)s.push(t[c+u]);}else for(let c=0;c<r;c++){let u=i+c*12+8;if(u>=t.length)break;s.push(t[u]);}let a=s.filter(c=>c>32&&c<127).map(c=>String.fromCharCode(c)).join("");return a.length===0?[]:[x(tt(t,n),"",a)]}function tt(e,t){let n=t.getUint32(28,false),r=t.getUint32(32,false);if(n===0||r===0||r+n>e.length)return "scf";let i="";for(let s=r;s<r+n;s++)i+=String.fromCharCode(e[s]);let o=/^NAME=(.+)$/im.exec(i);return o&&o[1].trim()||"scf"}
|
|
13
|
+
export{E as ENTRY_SIZE,M as HEADER_SIZE,le as MAX_PHRED,qt as averagePeakSpacing,Ft as channelMaxLength,Ct as cropAbif,ft as dataChannelRole,Yt as detectFormat,Pt as ensureRawDataChannels,ot as findEntries,N as findEntry,on as formatFasta,sn as formatFastq,an as formatQual,mt as getChannelMap,gt as getConfidences,v as getConfidencesForVersion,ut as getDataChannel,X as getFwo,pt as getPositions,z as getPositionsForVersion,lt as getReverseComplemented,ht as getSamplingRate,dt as getSequence,P as getSequenceForVersion,B as hasData9To12Block,Tt as hasSignals,cn as hasUsableQuality,Q as insertEntrySorted,K as isFwoPermutation,x as makeSeqRecord,Et as parseAbif,_t as parseAce,Ke as parseBam,Fn as parseClustal,Jt as parseEmbl,ge as parseFasta,rn as parseFastq,dn as parseGenbank,_e as parseGfa,Nn as parseGff,kn as parseMega,$n as parseMsf,In as parseNexus,Pn as parsePdb,Un as parsePhylip,Hn as parsePir,Je as parseSam,sr as parseScf,Ln as parseStockholm,en as parseSwissprot,se as readAbif,Mt as setAveragePeakSpacing,Ot as setConfidences,Dt as setPositions,kt as setSequence,ye as tagNameFromInt32,k as upsertEntry,it as writeAbif};//# sourceMappingURL=index.mjs.map
|
|
14
14
|
//# sourceMappingURL=index.mjs.map
|