From 06c228ee9c6c29c052765fe7a842d40d48f4caee Mon Sep 17 00:00:00 2001 From: Nick Rosenau Date: Mon, 27 Nov 2023 14:33:53 -0500 Subject: [PATCH 1/7] Upgrade annotation feature. --- README.md | 29 ++++++++ src/Linear/Annotations.tsx | 64 ++++++++++++++++-- src/assets/aptamer.png | Bin 0 -> 691 bytes src/assets/assembly-scar.png | Bin 0 -> 224 bytes src/assets/association.png | Bin 0 -> 427 bytes src/assets/blunt-restriction-site.png | Bin 0 -> 255 bytes src/assets/cds-arrow.png | Bin 0 -> 528 bytes src/assets/cds.png | Bin 0 -> 401 bytes src/assets/chromosomal-locus.png | Bin 0 -> 611 bytes src/assets/circular-plasmid.png | Bin 0 -> 470 bytes src/assets/complex-sbgn.png | Bin 0 -> 268 bytes src/assets/composite.png | Bin 0 -> 296 bytes src/assets/control.png | Bin 0 -> 273 bytes src/assets/degradation.png | Bin 0 -> 478 bytes src/assets/dissociation.png | Bin 0 -> 781 bytes src/assets/dna-stability-element.png | Bin 0 -> 415 bytes src/assets/dsNA.png | Bin 0 -> 388 bytes src/assets/engineered-region.png | Bin 0 -> 266 bytes src/assets/five-prime-overhang.png | Bin 0 -> 213 bytes .../five-prime-sticky-restriction-site.png | Bin 0 -> 267 bytes src/assets/generic-sbgn.png | Bin 0 -> 567 bytes src/assets/halfround-rectangle.png | Bin 0 -> 378 bytes src/assets/inert-dna-spacer.png | Bin 0 -> 720 bytes src/assets/inhibition.png | Bin 0 -> 204 bytes src/assets/insulator.png | Bin 0 -> 399 bytes src/assets/intron.png | Bin 0 -> 788 bytes src/assets/location-dna-no-top.png | Bin 0 -> 201 bytes src/assets/location-dna.png | Bin 0 -> 565 bytes src/assets/location-protein-no-top.png | Bin 0 -> 605 bytes src/assets/location-protein.png | Bin 0 -> 817 bytes src/assets/location-rna-no-top.png | Bin 0 -> 467 bytes src/assets/location-rna.png | Bin 0 -> 705 bytes src/assets/macromolecule.png | Bin 0 -> 568 bytes src/assets/na-sbgn.png | Bin 0 -> 378 bytes src/assets/ncrna.png | Bin 0 -> 507 bytes src/assets/no-glyph-assigned.png | Bin 0 -> 228 bytes src/assets/nuclease-site.png | Bin 0 -> 441 bytes src/assets/omitted-detail.png | Bin 0 -> 149 bytes src/assets/operator.png | Bin 0 -> 258 bytes src/assets/origin-of-replication.png | Bin 0 -> 654 bytes src/assets/origin-of-transfer.png | Bin 0 -> 821 bytes src/assets/polyA.png | Bin 0 -> 309 bytes src/assets/polypeptide-region.png | Bin 0 -> 662 bytes src/assets/primer-binding-site.png | Bin 0 -> 293 bytes src/assets/process.png | Bin 0 -> 259 bytes src/assets/promoter.png | Bin 0 -> 470 bytes src/assets/protease-site.png | Bin 0 -> 723 bytes src/assets/protein-stability-element.png | Bin 0 -> 638 bytes src/assets/protein.png | Bin 0 -> 438 bytes src/assets/replacement-glyph.png | Bin 0 -> 511 bytes src/assets/ribonuclease-site.png | Bin 0 -> 591 bytes src/assets/ribosome-entry-site.png | Bin 0 -> 571 bytes src/assets/rna-stability-element.png | Bin 0 -> 534 bytes src/assets/signature.png | Bin 0 -> 596 bytes src/assets/simple-chemical-circle.png | Bin 0 -> 287 bytes src/assets/simple-chemical-hexagon.png | Bin 0 -> 225 bytes src/assets/simple-chemical-pentagon.png | Bin 0 -> 239 bytes src/assets/simple-chemical-triangle.png | Bin 0 -> 255 bytes src/assets/specific-recombination-site.png | Bin 0 -> 283 bytes src/assets/ssNA.png | Bin 0 -> 684 bytes src/assets/stimulation.png | Bin 0 -> 267 bytes src/assets/terminator.png | Bin 0 -> 249 bytes src/assets/three-prime-overhang.png | Bin 0 -> 207 bytes .../three-prime-sticky-restriction-site.png | Bin 0 -> 267 bytes src/assets/transcription-end.png | Bin 0 -> 640 bytes src/assets/translation-end.png | Bin 0 -> 784 bytes src/assets/unspecified-glyph.png | Bin 0 -> 511 bytes src/elements.ts | 20 ++++++ src/style.ts | 9 ++- 69 files changed, 115 insertions(+), 7 deletions(-) create mode 100644 src/assets/aptamer.png create mode 100644 src/assets/assembly-scar.png create mode 100644 src/assets/association.png create mode 100644 src/assets/blunt-restriction-site.png create mode 100644 src/assets/cds-arrow.png create mode 100644 src/assets/cds.png create mode 100644 src/assets/chromosomal-locus.png create mode 100644 src/assets/circular-plasmid.png create mode 100644 src/assets/complex-sbgn.png create mode 100644 src/assets/composite.png create mode 100644 src/assets/control.png create mode 100644 src/assets/degradation.png create mode 100644 src/assets/dissociation.png create mode 100644 src/assets/dna-stability-element.png create mode 100644 src/assets/dsNA.png create mode 100644 src/assets/engineered-region.png create mode 100644 src/assets/five-prime-overhang.png create mode 100644 src/assets/five-prime-sticky-restriction-site.png create mode 100644 src/assets/generic-sbgn.png create mode 100644 src/assets/halfround-rectangle.png create mode 100644 src/assets/inert-dna-spacer.png create mode 100644 src/assets/inhibition.png create mode 100644 src/assets/insulator.png create mode 100644 src/assets/intron.png create mode 100644 src/assets/location-dna-no-top.png create mode 100644 src/assets/location-dna.png create mode 100644 src/assets/location-protein-no-top.png create mode 100644 src/assets/location-protein.png create mode 100644 src/assets/location-rna-no-top.png create mode 100644 src/assets/location-rna.png create mode 100644 src/assets/macromolecule.png create mode 100644 src/assets/na-sbgn.png create mode 100644 src/assets/ncrna.png create mode 100644 src/assets/no-glyph-assigned.png create mode 100644 src/assets/nuclease-site.png create mode 100644 src/assets/omitted-detail.png create mode 100644 src/assets/operator.png create mode 100644 src/assets/origin-of-replication.png create mode 100644 src/assets/origin-of-transfer.png create mode 100644 src/assets/polyA.png create mode 100644 src/assets/polypeptide-region.png create mode 100644 src/assets/primer-binding-site.png create mode 100644 src/assets/process.png create mode 100644 src/assets/promoter.png create mode 100644 src/assets/protease-site.png create mode 100644 src/assets/protein-stability-element.png create mode 100644 src/assets/protein.png create mode 100644 src/assets/replacement-glyph.png create mode 100644 src/assets/ribonuclease-site.png create mode 100644 src/assets/ribosome-entry-site.png create mode 100644 src/assets/rna-stability-element.png create mode 100644 src/assets/signature.png create mode 100644 src/assets/simple-chemical-circle.png create mode 100644 src/assets/simple-chemical-hexagon.png create mode 100644 src/assets/simple-chemical-pentagon.png create mode 100644 src/assets/simple-chemical-triangle.png create mode 100644 src/assets/specific-recombination-site.png create mode 100644 src/assets/ssNA.png create mode 100644 src/assets/stimulation.png create mode 100644 src/assets/terminator.png create mode 100644 src/assets/three-prime-overhang.png create mode 100644 src/assets/three-prime-sticky-restriction-site.png create mode 100644 src/assets/transcription-end.png create mode 100644 src/assets/translation-end.png create mode 100644 src/assets/unspecified-glyph.png diff --git a/README.md b/README.md index 7377fc72a..1df4a05fe 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,35 @@ The name of the sequence/plasmid. Shown at the center of the circular viewer. An array of `Annotation`s to render. Each `Annotation` requires 0-based start (inclusive) and end (exclusive) indexes. `name`s are rendered on top of the annotations. Set the annotation's direction to `1` for forward arrows and `-1` for reverse arrows. +Optional Parameters: + - Annotation border styling: `"dashed" | "dotted" | "bold"` + ```js +annotations = [ + { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed"}, +]; +``` + - Annotation font styling; user can change font family, font weight, or font color: + ```js +annotations = [ + { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {"fontFamily": "Times New Roman", "fontWeight": 800, "fontSize": 17, "fontColor": "red"}}, +]; +``` + - Adding an svg icon to annotation; the available icons are part of the SBOL library and can be viewed in the `assets` folder under `src/assets/`, the name of the desired icon must exactly match the filename of the icon in the `assets` folder: + ```js +annotations = [ + { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {"fontFamily": "Times New Roman", "fontWeight": 800, "fontSize": 17, "fontColor": "red"}}, + svg: 'promoter' +]; +``` + here `promoter` matches the name of the promoter icon file `promoter.png` + - Annotation background color gradient. User can enter a starting color and stopping color: +```js +annotations = [ + { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {"fontFamily": "Times New Roman", "fontWeight": 800, "fontSize": 17, "fontColor": "red"}}, + svg: 'promoter', gradient: {start: 'lightblue', stop: 'green'} +]; +``` + ```js annotations = [ { start: 0, end: 22, name: "Strong promoter", direction: 1 }, // [0, 22) diff --git a/src/Linear/Annotations.tsx b/src/Linear/Annotations.tsx index 6e3607eb6..39700ea5a 100644 --- a/src/Linear/Annotations.tsx +++ b/src/Linear/Annotations.tsx @@ -182,7 +182,10 @@ const SingleNamedElement = (props: { } // 0.591 is our best approximation of Roboto Mono's aspect ratio (width / height). - const fontSize = 12; + let fontSize = 12; + if (element.font?.fontSize) { + fontSize = element.font.fontSize; + } const annotationCharacterWidth = 0.591 * fontSize; const availableCharacters = Math.floor((width - 40) / annotationCharacterWidth); @@ -198,10 +201,54 @@ const SingleNamedElement = (props: { } } + let strokeVal: string | null = null; + let strokeWidth: string | null = null; + + if (element.border) { + switch (element.border) { + case "dashed": + strokeVal = "5, 5"; + break; + case "dotted": + strokeVal = "1, 5"; + break; + case "bold": + strokeWidth = "2"; + break; + } + } + + let fontFamily: string | undefined = undefined; + let fontWeight: number = 400; + let fontColor: string = "rgb(42, 42, 42)"; + + if (element.font?.fontFamily) { + fontFamily = element.font.fontFamily; + } + if (element.font?.fontWeight) { + fontWeight = element.font.fontWeight; + } + if (element.font?.fontColor) { + fontColor = element.font.fontColor; + } + + let svg: any = null; + if (element.svg) { + svg = require(`../assets/${element.svg}.png`); + } + return ( {/* provides a hover tooltip on most browsers */} <title>{name} + {element.gradient && ( + + + + + + + )} { // do nothing }} @@ -227,13 +276,20 @@ const SingleNamedElement = (props: { onMouseOut={() => hoverOtherAnnotationRows(element.id, 0.7)} onMouseOver={() => hoverOtherAnnotationRows(element.id, 1.0)} /> + q>*@ehaVk;i}mDcq7mCh{tDi{uWJu9=ZAmH`9Z z0VxIsl!3y)GZ`^J8F&>21~QR>SD`$v2_anfatzkK-4o7fpY5Ep$^O>qocgcz|Nqwh zuf5hf6ciK`tD)yR;<9H}u=55KIWn2)q)=<`>AJ4J8hTRl#3uS!6 zu|(_uBSbJCL~uO@Z}1& zOun;r#@iT!#~J-=k|ux&qBMTac*a|d)`ZGJx&YpZnPp_gGbV_V*_YA3CTRk=CpzS! zjAtxP_Q;KPgAJ)(R)_-7-B3jtI44qIejPr;aaT0JiOmpI57Wgw^9<8c*q3lZJpC=r zlT{y`q8s;!xu_a540he4;{Ew+=)g-M?ml)^tgXT&5oCX|*0OP-9>$9Cw?~Wz0~`^7 zotAxOYAGlEK7f{{%wKuM^-u(mH$?z>Qv{GVMF4s8&j&E<4}7nSzlsCg6r)5zK|#TP Z#1Cw(hrfRyVY2`L002ovPDHLkV1gwjL^1#X literal 0 HcmV?d00001 diff --git a/src/assets/assembly-scar.png b/src/assets/assembly-scar.png new file mode 100644 index 0000000000000000000000000000000000000000..1be25133f36231fab19b24d04fceb2bf6688c014 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}~*o-U3d z8I5nR8FDchinv}}ZP2@ehns!Nh63?*NeSPc#;sYKv*u2#SX4&tcef;$XL26jJ?fke z@q0{C@tjnbEcEQz0l6DB>!+BrFJPBjs`jQK{pm(;uGwwU7J(m3n9Lu{VY#f$a)D`e z|0&6L95GsJRsU|iX!A(7V0j$>4yNuU8@BMTX;eEi&478DXMssPrzgcYI TtPzd|I*`HB)z4*}Q$iB}*p^eZ literal 0 HcmV?d00001 diff --git a/src/assets/association.png b/src/assets/association.png new file mode 100644 index 0000000000000000000000000000000000000000..3de9545c7381cba5de2254f41c1cc91fef340e55 GIT binary patch literal 427 zcmV;c0aX5pP)F-MLIy?2ITm@7O#ILuu<5A)~D%()LCgb+dqA%s5lAgz1l z12%DtPFlyz}H^Ouh3AP0Ck_hfBZN5D_c`DyB#(v9J(DVnl`7#X$#Q`gGSKKD)aZ}6(bMPzz6SkoEM)(s*Gjx7OJ5m=ajfLKWc!^LxSN;9 z@EWIr=Qr>yA|^7|{oD(U+u_aJn?4)3E}P%Ox;tgX77d{jvIXQw$ryi>A7&dom2CoH z6-R?-(|8aWukUF3i5JV6J1@U$~28A<6R?cmm-I4jj!m_*b%=<7iJM+F|GMP*!lc|oOf@dq(#aM*? z&v1aZGDUCEjCh@5q)Y>i$Of7?Q9K(uGTPz&5w80Y?t*p9f8TH72|Hy7ha)gohTt!Z z`&t9xNF0_S9LoSq;9R?j{Xs=z8h}Y$YB#Yrh+u33Fomn2-w$l}D^`U8n8uBE6I=ZV zRb>EXa2NFdj*VVLsx$zzxDR4@!D=r8RU3dsJO*(*VX523bua+Scn)HDz(O|->tX=b z@TwKh#m^6hV@DK&x{N^5Qz+?0ob+!r>5VMuqeRk&xulQNNhdU=q?ARKfQHr%9V@Aa vV}Fp;*S@S$L{f#Ve_2}0WHOmdCKHQKTwnD_%k z!jzGLfkfg@5QZj(WrTqUNvUWDv>p*9@v3{%lGI?I>e0Hl_nv#}bg;k4&e=JSy?$$- zwbxoiB9TZW5{X12kw_#GiR3{`4mOuyC03vlckm_aV$F7-RS>rZtCKNx-ah4<9vsSQ zur1?vE!c={*n-W;*nmQvYyHZo0ku0Y4|}m6d$1cz>#$SCD-7X1-eEYo_SCV?G-e8+ zwK#(lLcCUD9D{g)m&tr68H0(~|ITrYB;wLz3=eS?C$SUr^AK2#0^XVw{Ti2Xz#J3X zTH$`XknSdUhJGO&O0%q~X#ZeJ)s7}$8c82K-J#;jy^m^Z|eHF z2^y&_K%SV*C}uvKj-_zfQ8J|5r^M(dYZnXJFQ1KZJUvY2(7xi*Xn&fLOv4YUxm zMG;4EUJ%$TRN8-?rEkf5xt*U{StNwtMcl-w6H)R>=#1)ec3^cM>)@H6A3RovJ ze>-px`%=$8HnMmY2Nnp`cwsUo=F6}gT|%$lh4n%UUCB-#PG`{Yhx7p|;u=<^?zN>v zc3^QM#uCc7ha0%5!L*v*nNvdHY8EA-_2?Jkd;rh!L=$U4`VVXpb|t;bWB4KLT3N{3 xrDXm!c~%lC@h73p7#4c|k!FdEL?V&7%Wn}|b(3}6@YVnT002ovPDHLkV1kAn6Tbie literal 0 HcmV?d00001 diff --git a/src/assets/circular-plasmid.png b/src/assets/circular-plasmid.png new file mode 100644 index 0000000000000000000000000000000000000000..eac55785f1a32e87b3f8691f1024cad041bae1e3 GIT binary patch literal 470 zcmV;{0V)28P)ZGk8|z z{0hEe9t-%6W$a`PEUTM%kHZsf4R7%Zow-FCH)uu;ivAG1CF z|BWlppZVhg0!Q}F5;?cE;^-s!&2xSqFy6P0cbZ7X$2R{p?N7C~9Tc9%<@F_V<6*JQ z4|jH%RveV;-@kWB*pJBvRl_R6)&HDab9%!r6N9&wcOEo6mT%v6bmQp@F;XwI4Y)J| zqPebI3x6P8{B{1t%IQzj_}%_Z3|#M0_~W8}@#6U9%1S`+sO~SrTNS01-sz^zK+iCE My85}Sb4q9e0JZya&;S4c literal 0 HcmV?d00001 diff --git a/src/assets/composite.png b/src/assets/composite.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0ad13f06419fe3a9884b03698ed262d297330c GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v~02o-U3d z8I5nR?A2p+lwf6rsjQ{+sw^0^1H@*{)F5Meqd9WxxG5W?^?KKB9 z#g6et9yr@knWXz z^KjFL1L83m|CF?69Mip4(9GD!W&DsKz2e8eqzjuKdfh#{pZ9vXP4=-5!u^Mz%kNly k!uELf(S02dQ2&~H^)~UH#{)GjfgWY>boFyt=akR{07y%I{r~^~ literal 0 HcmV?d00001 diff --git a/src/assets/control.png b/src/assets/control.png new file mode 100644 index 0000000000000000000000000000000000000000..5c63da9498828bec30f3d515ae3bcff9bd56a10d GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}~o-U3d z8I5nR8G0QKkU9R5|Ek=A**iRBiyNKhR&(oLSZQAH!DMescwkJdi`9;@ssJx(-^|}a zKWevqVEXy*p=zZI81P*2ecPZc)w6M>Y*Cl`p9jqRQ=_eBKbAgUaa3JywOHu}>3E*B z4(E@q@7puF_51h=cbDHyDBZSYzwd?vLa(R&jx#tUo%TbE`#1BSM}PP9u6?)e$C~b! zn_8EJYg!$wk9&0Qn0W5|i}#L;x7VdKcj~j%PSKFMbG@$v40f#0t+rH&HLbjQ80aGg MPgg&ebxsLQ0R6{wp#T5? literal 0 HcmV?d00001 diff --git a/src/assets/degradation.png b/src/assets/degradation.png new file mode 100644 index 0000000000000000000000000000000000000000..74f7e7d7caad7f2fb39232edb2f64e9b53c7fa7c GIT binary patch literal 478 zcmV<40U`d0P)p~)-#M2M zLI@#*5JCw5M_Wa|(}}bAc!)La7{(Az;tL+5mJh1JO}xjVw3+=}#yc#aCz~6_8{9=l z2|2bjh0ScNV*za_dUhs)U}SFN-^8w}eh$O*)D4rg5*_ zl=o`Z#6^wx1hZJeQ;lVQDqA~JR;-&Y7&2N$H6YL zOH#vrk}kh_tm3y+Qacw}m9G+A_;83d?YM@k(yK&GDzC3com>bZgb+dqA%uVN7x!pb U%x7ppyZ`_I07*qoM6N<$g7x9sWB>pF literal 0 HcmV?d00001 diff --git a/src/assets/dissociation.png b/src/assets/dissociation.png new file mode 100644 index 0000000000000000000000000000000000000000..b4f3e4e9e3f840007ce5dc118412a6e716f59ea6 GIT binary patch literal 781 zcmV+o1M>WdP)Vi|K~!jg?bg3b8(|y<@W=e{a+eF|AYv9ls{p*VCArMf5%`WK{#MIn<$QwgMW2&F9!LOUoicY3+JPnRl1amq;s-_LgN z@;=YY`{j56Ns=Tv|c0r`hEJ;B{wbXVq~W zo}8S}Fbp0X9NZhBLZQI6wl?PTc{+~6a5#JkAkpmd@cDf2$H&KOBsn%V#_8$ld*yFr zG8vAJj*=uNCMIfrzkjjO{D!YE7!3ACA`u?|6bc25jEp?EHjzl+`1lwA(AU@J3kHLI zjpjFe0Ft#@tp)&46a|)LJ-F7gEGUWs0I+QvB<)7?8$Q70<>i-rK7S1W!^6Ya-rjz2 z?bg=T?F}6r9bH!{l|rNWZs=E4_3HfmoM&fe?C9v=($dns`CnUGV|#l$Pft&IadAOS z)2;x#Xm)u3KqwT-CX>nQo4-wWcQ<3P7-wc?I6FJbp`jsmb#?LZ@Q@^#N~LUF*FQD8 z_y0OoRsEgGWE>#`Ez9EO<|fnWG}GxcH#RnCnkI!1oSU0-R8{>0Al&TIclBzT_9GsT zo4H($LWtY(5kfGR%P}60o0_Km1Q2m6)a}Qd*4oqGB^qcW9T*= z-J8UK^a!bA0kp9I+E@T>EP%uE7`4>``-(WnAI#c7Ekm;nbR5lVNP}5y0PpxA9)QM> z+A7c@IgK7q#AynPz%9P14`9owSq1K6HCYvX$HF_ z&Bj-Ye{_k5u?{?uG~OY)z@=awc*dXk>#B}&aLOP+GgOn1Z{oi5{1vK+jS|{e0BtOQ zHWok|3!se!(8dC!@G|1LP^Lp|4BQco)Yn9R9zFy1G7O`v`~V}wW6{1^xOD&k002ov JPDHLkV1kz@vReQE literal 0 HcmV?d00001 diff --git a/src/assets/dsNA.png b/src/assets/dsNA.png new file mode 100644 index 0000000000000000000000000000000000000000..17aa1f93ee0a525b8985295544b089dde4800116 GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$qWpPmYyz- zAsLNtFYoo1ag<cyGt<8ReXH~S%^4vl4n>jomTFd6{vRaW zEBe`UZwhSN&@ZKxd((MM^2!xyyCaWP%FX`1{L-PgN9=w@-#GRc^knXFbN^U(a+?iBxz?Dz9#-ag=%zVZD! ztJi^|?Gdjh?VTWIp!3#acj%uZ7R$PFKA5G}95C~`arAc0-S+Yw2X*#6Vw!x(vVL;5 za)gU)|NG596JMUGpCZP@e5rE(5z~FiYU!$PJnV~PrGLu$a{p*bcQwDa`qO`TPQ?}h fppRfg#!v1}4#UOqVQnVBU}f-h^>bP0l+XkKXy2+E literal 0 HcmV?d00001 diff --git a/src/assets/engineered-region.png b/src/assets/engineered-region.png new file mode 100644 index 0000000000000000000000000000000000000000..bfe655413bbea1e3a686a7a4d62a459de9740775 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v~0)o-U3d z8I5mm81gk4NF4pRzp1%x;_erWUlwh$E@FG1bmi!ggC@JCh+H{nwnSd-{d9o^B^CXf z0t5sF1wG9^KWDnZ;C)!f@ZAByg1ZOgD*oNP=n&B;9MJzM?~^5S>C61Cd(F}xPRxI< z&b{E%^}lCgIJ`HXmeD#kZNg_R1M^;ECeaPcn68B!n8g(l%$Ti};LEyZWy97_r*AZ7 z{tx0SVU5XOQ#IctknfQC6)85)tA`4bvw7E?d35CGjT=HB7kpsy-Q#pM{L55ppjQ|? MUHx3vIVCg!0MpHH7XSbN literal 0 HcmV?d00001 diff --git a/src/assets/five-prime-overhang.png b/src/assets/five-prime-overhang.png new file mode 100644 index 0000000000000000000000000000000000000000..e748408d512c3e33c13e513abf90f7e832cf486e GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}VPZ!6K zjK;Uu4)V4r2sm7P|1I%NB7Zcu`R|R~w?A&MmEgX}bzp^p%s+1n!2}PsG>1tlo|8h{ zr_XrZC@B%wrJBa-mauzQ0n<0PVE#cbOC6>`recgveIB`h6@;HCQ8DyJ+{+2|yE7rj{_sXFJa9SoWd_=qd(JS3j3^ HP60FM;VUl?(tos5xkN@?;P{6mTN4E*;byZvBKP^Z5;(=PeqD_2kAGT`Q0@Qfh~N^Cn7bDbgg zq@z&Y0nQ!$rp3%ThZlch=u7UsqFthEd^+50qgxjHIUdIAllvzxcijEjKD+X7fb0JK yH|IMc8xvOC;Ju`7@~*h>*?+(8n>lmpcNWfQ;k<7e+~GjKFnGH9xvXBbhU4D9j(u;t=L}pP7@Hc^@*FOeT}b zWHNJ>d5QHFVKo+`UOe!%cs}AezNac!b^RuOCzCVF(6+3YQ?{FHG z1iJsQ7WZ%mjnv|Q(I{%%#ZW5It(d}D^raGQLtjyA3eB=&8}J#s$_hoW2cIw!D^SA( z4yJMx!6D(;joRGDg=4PQ+{9?iz%lGk>m`Zm`a|Jc${2RJa{`&26FW=$I;A2uE43ID%(Nv@9dSWwJMwqYl_t)Lvg!s3~0Q z=X9aTnuZF_3mw4bRHB1IgEfvVsYIutS=1QEn$+SIoD%MbTS9-7qJOVpx3F0!aZ;DR zbic5<9^eNq74HqL2-%Lh@Yfi{QD3SPw;NFC}InmN>e(F*lH6W7gTGMP*!lgZ3QegUaRSkH8Id3gW;002ovPDHLk FV1lP>{TcuO literal 0 HcmV?d00001 diff --git a/src/assets/halfround-rectangle.png b/src/assets/halfround-rectangle.png new file mode 100644 index 0000000000000000000000000000000000000000..079b86709eedb138621d867480e0a460027c170c GIT binary patch literal 378 zcmV-=0fqjFP)L6Lgu2fA%qY@_`mv6UB*5JGxpMr z7p&u`TsXk{FB=Ci(3b2FyITu=lbnh|M5t;!mQ=O~4o$gJhde^!*k2l5V*~VDK zO?9G%6*Lq_ewF5>9`>-2o}Y1sb6n#}5$*{OJvK0e(JtQ^#{_1vfT^^8j3v#Zk0Q(# zF66(ke>NJ}Y2Ap{FHq`N{0obi!E_omz3pP@UfYg!;1)NEd+>?kzTWEz2qA0x$iEP)C@R529Ce=|%V6E`fC!JWjH&~aSJhrxyK;75EJGKnjJ zr!Y~GjFDkbpFjiXMiW6-0*P_q$D(a0y{C6N&|X8*U(y8HbI@ekX`|W@^AZunK$!{(9OsU0;pqJ8Zx(5_zY zF%94`eu0O;d)*F8?7G@lrAz|rf|w29J}@ObGo{D+!gDXR&q`=e6u*sH*P$!`I~0?s zWG19#GXO4(;G+rj1V7!VN(DMXP}A15uwgV&zqZfM_1K~fHBMHWZQ!{R{59n>A&KvC zayh*rQHh;*0?z>xz|+7aB=Kg}Zae+6DH2$<0&H0QAxV^pH*8vC%dy3ep-xc~;GQ#H zmPCknfQQ!jzK$7LEtJ zCF}36C3e4nyQu2q(gW@QKTDpseM_@kAT$A+VI{5(j0^qar;HZ`dkGzs*bO_RhMg1k zOW%z%tF~}AaZ9j~#IFO-2uos`gqygIx=|VD4+6xS4I6scJ+j94NU+>itN{H$@rIBj z2G-b<*y5r1DzOkKJ|u}nr~g)p1Zt>jpb4@Ayb2Uwmc#(~Wc|NI!uxXD2|kK=LsQ%O z{9KE!+Mz21?GYy4Faf*}{47OP>Y+h#-S47ai9=ZgK2n^)$}abl$OqOY>a9{bC#Ln- zKzMGA3NQ7B2J&(;?Fjgw+fj+#693_|icK4J4fF~0wJj>xu%XmY*T7}eWyB|XA9YC0 z5~)sXp6ZIzwz_p}phf534ZrzV5MZ%4p2FzhKyj91_W_{=Sw0_z<) zrm>KF34u|r@jnvHav*H*2rO)}i0Odwwv(g+3t&=*X< zB5ai^v;qU*4!F=R{DV1gMc6X4(2mdD}iUDKG|qTXl0tBpr=;g z4R}!2{>44;t|`=x(3t_G}002ovPDHLkV1ints3!mb literal 0 HcmV?d00001 diff --git a/src/assets/intron.png b/src/assets/intron.png new file mode 100644 index 0000000000000000000000000000000000000000..67b0784709e6fdb463dcce55f10be14c6cb06462 GIT binary patch literal 788 zcmV+v1MB>WP)Uft-s9%>t^0QN1#I?%n0Cm6`%;W4(UVzO@;0drd(|-Zy zfuF*r71$pd@F4l)dha+tB+kzRo7IBuGYbLJ*`jq}I zUIPz=-V3Y_b=DT}4Hyyn5n!t_hKp{@@BwJV-1Q)|1pr(FrZTyf@<$%SIB-ws$3q=s z3RsmLCFUYxxL7CT@1agH1)K%yGkG4k5fQ_tg<_|<8tSMmU=zh5GX_j5W4O3XzABgi zZihN*3+N~B5Hl$5l!rY)o6vj6U+9Wx3fKZ17Wy!GORa`MA-@6cYn(L&bO0+dc?#2w zs-+FsA@nZHq!x^(0BKvAIjhCa|GU}%K1PU~Y&<;0tcOZmqV7}l@{g=SRqv*fsxM-|w zQefKt!}V!#0JBDS4X;Ju6=nwhp-k?g7Bhr)WwMV+%<^R^nnog#NF)-8CE+iLa-8&U Sk5dr<0000e0MRuN^@U`U7-cb2`gX7*2JX2-z&!iBq+bLRfeowH}oC6P$% zXj(Nqb05y(4Cb=6FL;6HSgT>rN|?kvR`91_tl%>CG^DYR8R2w`g!hh@n5|;tDpF`a z7I8dUTNhGhIosnX&SH0D^F~Os)e1C};*R|3KE~lK?2h0`kL~U8NG#?UHgpBu$3!3d z2|S4GH-xv-7`GxZAB74uh$(!E{BG2yZV28*LavVBw-EWgtwGmNw1k@85prq--_w!b zZzYOJzkD6Ulu-LSd>_I0TQuLBJ!@N(31Ah!qTh2xhFfqjn*UUyl$HsAeEyyv!S6ye zUoNSk6xVcf`G@?;7I8>8^^V^{ZR&<#7VSvPD@^yXpT<&T-^PKOH4fy8{MYq8F3SJG zCvgcMdTi&%s9{IOnYYV5nB>$E=Q6|qU>i6DrTjfK6S zAcB8@on=~EOVNM{+L_YALO2L$Pz!&62r4AOV3Lc)@}Dk>@}wk+Ec#=eX?j$s%pc#CN~z5mQ2fd+Qsolq|K@dQ6`TqxaL_=)F`gup75CW3M(q|DPBUoMuI5Ct4QP!=~h^?l!uHXJrVbS_5+h=A6g5SfNy%xDR)5 z3NZjr`}Rz%WEMvSTAgJD096U8!V-b_Tw;42wiy(E(&GUqLENPitA|V z?n0|Jv5n5jx6!GdWmkZ^@*kjy)3HJ+4>X4`E_CHZyvD5HLI>C9OyFk19FmZIJCm`& zHrhsOLI-Z~IW}NQ8y&-09KoPaMo0Z=qmL8nM{z^`BA!&j8cbC};|1n46KR*i8N3mi zRqG$07ivEH7V5o9uqZVg5VjEm!V&U?_5)1B3Z!eU(UZ8E zxu1;nH!-H50QvErhjh|of@6>J4dG#ZU2UEB$CC(X=z$(@_2 zIA3`1-psl8{O-Hwo_p>LZQ8VXr|HPh=Nx>EFR`fd*&|%T6}-yevnkBNK0Lu_o$Cqq zqN_z3>(VW}-Fm{uUpKIz8IGF~LLcHfzKA{>7DDE3#m8s(3Ns^{J3^SfXo7|$PN;pm zKVr!Qc1v+-oNfQ~NUYE2c%v%lBxW?QpMg`6{TpF+TE?+R%qI!lC@JV$4TtX^M8348MyLA%nzKQPdCTd9HkZLSHQ~PG?u~>NPW9@pgsVl(( z3`AmXVO|6KdH6Z9AHe*~8Vfm~c6a?1->NR~9xTT${5H;Z-*k(ehz^|f--2ye?Jhn3 zIxSB*KP5Wx14fjqMu)JiB}xlekDu^X@gSaKMXJMGQ`n6iScS)UfIqNF$XsI^S3h=V z(vXe)stDT zE^LXOAEkDfGmWkm&dHw&W%Qu1Gp~(oE@bqd#P^D`&_zvHgSkRzQwf`qOun1KdZB=e ztI}se%*V5^xm5zo(j}aMKN8m49NbhLKwqkZ+*xQ?D5IYWr?Vm4j=pbnelEpyr_nXo z89gWete9&jUML*cJMgz~fLSNRd}qaGNGRt1%%mZS^NQ=B?^-3U4CmAr{}9`oj$#0uB?;ZaFt!498iG1f)00000NkvXXu0mjfLeGf- literal 0 HcmV?d00001 diff --git a/src/assets/location-rna-no-top.png b/src/assets/location-rna-no-top.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9ab66209037598900337110d69053859a44446 GIT binary patch literal 467 zcmV;^0WAKBP))y6J7l09?95cp9 z4{vi9Zh(G^pe~C=fimeKo^QP8fEsXYlxM~UvI`H+EZ_w; z0H`AJ39#sDq~wUKe92cwPX&=L1Kn0ZR)ef{-7C^UZN)j+uh5pSj-GL{lQ;q9T#W)) z0_sSC3tycu_K*S}&MrYbA_bl;0<3<80M1AUT9X6AtY0Tj_5fFb9#1w{Jc{3Sp->KDer(+WcucS7vRJw&x}oE7cMOVEaw2gb<4Ba zUur9cNvCgf2ey56^sFKB6=2j?M^6zcumWV|DGvApzY#b{5*D)=Dv0 zNU*m^v`eFf5G7ay8xgdz&{PJjj1l|*5j+CHk5hxEF3 zHqri0hNU!10^rWy6CQpiMSC`*hD=<+&gE~oJ)6XKOs~g&BWmi}paRr{m}fw_iG3NE z5%x7;tFp$HT*BR5-vXy`Kk#ng4DhbOc6e2lCQt$<`M+SRVS0N8ca-Am4m#z0D%Jtl zfMr@&qRYT&z10DrJayaqOF1k$R> ztC*jd}M{P)~VBzSW(yOX;X^EDSPJ7<5( z%pT5?Wm%SGS@vJ+tU5r9HVon-#_b*Til-!c&~acC5rAtik|BF@amy zR7uJPPT?bt3cE0yTK)RZI5N+<=Hx7%p*M2fHoV7B>Oe8}<1N+{T;DJ3#O73iVl2ih z94J}m1ny!%=|qu+g_p6c4!pqL1ht~v!J$O8&IqlyWjgT#U5V;#5sqWa^d-Jw4bxZ> zyRcc$Ze*FzJyMy%B$mf6EcyUbLKjM^>5W$DI%AzVpRYtDM`6&p*|8N?fD->IhBF(w?P;SzPa@e+qqgo<$z59$Gm z>Jnz4u_TEivFmz5+J06hG^~ z|8foA@CEmA9S?+Q1Q!|O8Gx!bM#K?^Q`*0iUgn@6ZaMs@mUu~}o-Y>ZgLI)bb zYOD}O>j@mMFjtiIxGEftY23rXN)wgP@=lUvS(as4mcSoR=TYP4guHS90000L6Lgu2fA%qY@_`mv6UB*5JGxpMr z7p&u`TsXk{FB=Ci(3b2FyITu=lbnh|M5t;!mQ=O~4o$gJhde^!*k2l5V*~VDK zO?9G%6*Lq_ewF5>9`>-2o}Y1sb6n#}5$*{OJvK0e(JtQ^#{_1vfT^^8j3v#Zk0Q(# zF66(ke>NJ}Y2Ap{FHq`N{0obi!E_omz3pP@UfYg!;1)NEd+>?kzTWEz2qA!BrM2K<87rZq_B{e4Jiv{Wo6~=EoEV$ zWaXv&0}?A`VI$3y6eXFJDK=gfB1{NHlksvbo@aEO&Y5#=b2s$+?9T6eJJ0WVp5MKM z5JCtcgb>0%s@*WR3j6RK9~+(_Q?)iJJUL{LJ}LEUCy1 z;~Bo>>}9kD(C=TC;VtfBEl%gfj#lJ5`TZ#z!e@+?G&Y2rc!%{kEN!~(aQb#mI-!xC z+6Cz*4i>UoF@=jgwf*>oYtEZ$mZjC!`w~E7aRqI_PGyU3tw-O~Q3I@ERM; xKHoFC_|#<48dG>afbWD5LI@#*5JCw5wcoB%SA`;Ms3HIW002ovPDHLkV1h()?qdJ| literal 0 HcmV?d00001 diff --git a/src/assets/no-glyph-assigned.png b/src/assets/no-glyph-assigned.png new file mode 100644 index 0000000000000000000000000000000000000000..853d305b397f794313c438ca3737324a93467538 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}~ro-U3d z8I5nR8*&|T5O90g-nDe<(p0}Em2WRsF!WD2Ueifg`Tx?pKD@d!^ey8}Gsg5U2NqsA>~df5#Lg%PE*x$lFHI5##Q=qpT(mC RqJWNM@O1TaS?83{1OO;=St|el literal 0 HcmV?d00001 diff --git a/src/assets/nuclease-site.png b/src/assets/nuclease-site.png new file mode 100644 index 0000000000000000000000000000000000000000..915977dc07cb6cc1f046df262354d481119ffe8a GIT binary patch literal 441 zcmV;q0Y?6bP)l%H!y>!{ z){p`zDUyIlOpzI3$DeoxJ2OV_NRjL$@A@8TG-FT{#g_^228{oZF*X^KRvI}l0=|G0 z*Z|^@A!ar;S)-P^HDUnF%)@;ogx~V1$r`lUumR`5N2bIUxNk5g2%Wf(j##KUy zsJx}Agb-nQ%OMFN;_{X%384q&EoBm0dQ#r9FVU;=mIsOgk0A@WAmrD)>p2k=p}c%A zB!qnV&&>6j$R&j0R{5H_f5Gpy<0uH_`}{QX-4y?Kr%n;752<|th)m*+`V+QH0P~-D z=C_T>Ix1(tit6%EEdWJ{mC1DG#AgWjX1B8dEP!huahOlc%);ESO{O!aK109~xB_l~ zXW-o<=^rHikH2T*R#M~00000NkvXXu0mjfe(b>w literal 0 HcmV?d00001 diff --git a/src/assets/omitted-detail.png b/src/assets/omitted-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..621a828d54b9ed0b24092b215baf71fd47337bc9 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v_b=PZ!6K zjK;U;9l06|cvudE3fMnQu1)QKwN&4uHE2eoL&OaSA)vYh&)W(AeTu&9Rjus$X;MCE p`+3s|)8E$1%*_1B4wPol_{s3(E#DMj_LbW}Tu)a&mvv4FO#sDgG6Mhr literal 0 HcmV?d00001 diff --git a/src/assets/operator.png b/src/assets/operator.png new file mode 100644 index 0000000000000000000000000000000000000000..7823ce94bdde38a5be83594dfdaa636a4a5c8678 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v~0qo-U3d z8I5mm81fx55OBFD@8e%1W@TleHK#p$38SK(z|3Q4avAY(@LshP|dq@USYKIs-JFg&wYZ0GM;2ScB_CO)zWFV4$t zoWGdqUdVyjTou8L`C1QrS@*1LFcenwX}s{p;g;OXk;vd$@?2>^9N BVIBYg literal 0 HcmV?d00001 diff --git a/src/assets/origin-of-replication.png b/src/assets/origin-of-replication.png new file mode 100644 index 0000000000000000000000000000000000000000..ae30432827ed32eaf86a9bd696ae6f90a1240130 GIT binary patch literal 654 zcmV;90&)F`P)C@)j$--f4y|6;j$Ah>>#`Z+^~}m!(#}UO&h+%moI)fLi9{j~m?VJa5HJNi z0Xq8H8E^%B1AYgvS(^k{1h#=6K+ke~2eyC(!c1Nz=73Mwowgkxfo}8e-jMzssJwP%2{^$FqLDXIOq(5G zxPnd_*u_kzpv)BvzDAYJs-&1f%+_$mjSK; z$ee$SV}1_EIPl0~voWSl^j`(gH?|T>9<`SX z+D|=d-;$u(z|6=AewvUGRI{Jyz9(R%>yn?TUFtOSHQ z*+16jw&&LQ2ftM$T~r(B`a?@ro8TX;D+#I%+(b1aHm9#qi_|=xN@a+8+X5z0KX)he owNvhX?*0j2GZKkJB9Vv5U&qqz;+>^DbpQYW07*qoM6N<$f)->k*#H0l literal 0 HcmV?d00001 diff --git a/src/assets/origin-of-transfer.png b/src/assets/origin-of-transfer.png new file mode 100644 index 0000000000000000000000000000000000000000..61421a2f854415676ba9799a22c5b9b739971a24 GIT binary patch literal 821 zcmV-51Iqk~P)TeF zo0y8(cpX!42ZOkdzdH2YhO;S8Cu;VW$(#5b7x2Ha(Tm&2sJX3pHAm;GRG)iT+)Lvx z;~PB4F`d``#+P_8(%K#U-x6kP5R-akei3fv7<`BuxP+U+=x4=U$Ga)>BUq0G_`X-> z*I_ti<}SX)67;9yCt)e}3Ckkx_g{wjp0Yxi;yCFZVL27yH5~Bdv(hpS=I06Px1Dqd z%PVRfk-UK+%&fsZBjo!ztYlx^|kwFHw@y z6*aQnHvK8>Q{5WPVvgh}EvlfAWxmbI)PK{uF`LDXD8cU)`ajJ)Ve4==irHA%X%0U{ z;@_3*+sS;JLs8rhWfDv%5HmfxzEVPaH+GF)w}g>Bm=pV3bp1w&9EJG9*yyY(*yl6J zkzdy#ep3{Gv5dJQGf;*1M}J$`fFFC5r%*jGC~TQ2KD}QE#mUb&ULZc!y;(2^ir+w+ zIR$mEVsi-}bEE50H&BFa#@6RR-QvP-_0K5Br*$Vtf5_^tl2+;Qhm261w3D2vQMVtL zBkhwlYA0ANISU(V(%qiYT~d?o6ZGL+lxSGBJyFa@lI7;nF7-O{j!<~S#rcYgS|3Xu z2He71HF)gEa>H?!Ck z3xy9(R%tjQd92dPiMxjR<83_VC47y4WgEZ_{v^X%c@onD%00000NkvXXu0mjfCr*;s literal 0 HcmV?d00001 diff --git a/src/assets/polyA.png b/src/assets/polyA.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9044930cad5cfc7dd271cb9e4a9eaf7c47b0ff GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}};o-U3d z8I5nR7-lgAinKnA7vNS*m>DuHvU!5)4HoI$OT4rrQW+ziq{J0oZeln+g-eR5>=BcY zhia0d;aS1>g-3Jm&3;rnj0Rc?Iy+f z@6|1sYAJt-p>FFN=^r7wmbE4PlAja5pIqc^dU6K8^}g=Q#+&!0RX;rC}6WeNT2rpMJs8uu$OPi;dp9Tg~Kk+l$?wm1YF+(cQ*9@MnelF{r5}E)v>UeGd literal 0 HcmV?d00001 diff --git a/src/assets/polypeptide-region.png b/src/assets/polypeptide-region.png new file mode 100644 index 0000000000000000000000000000000000000000..10bcc004206fd69e6f259b6313c820b9e8238784 GIT binary patch literal 662 zcmV;H0%`q;P)ap*x9|ZLiiMBlES6|)=E%)HxHR*HD{k4}{eHjQ zy_wk|lgVTgg=3HyjUIB_R{b3N~8P+6dhs7nXmJLw1 z0L3i+BnUF0`|J)Qfv%-k86?w00a%5nL6ApSk)XX2=;m-b)wrnwuoja+nEU=ul#6j& zT;f=YX_EzD16~JVE+uNm0^N`Bgp?~$m+#`qX-A@VHu#>jUTXRdT+lwUd_jML?xy$= zI+0@7WPvlicC4T@IuB>-ff3@zie6L9JcZ7 zzub++2m2n?o-~ zd%O3s%yhM-bx#hw3D(b&J;%L0Bp_kwlBe=BtIPK%oZvOvuzJmh{2xb{ h*NKojf4mFKy?$xWlR3$= zmMyw9MM#lla`9QFGoO3D?^{tO!M2%UZTJdn))&5vRlyDSL>8ED)-UXtIHx!;*X!h~ z8)@OM;uq~N{rUR}xAJ`T!tKw$ysFP|0fDeLydt`8Q=7_<-Us@D!PC{xWt~$(696&v BY~26= literal 0 HcmV?d00001 diff --git a/src/assets/promoter.png b/src/assets/promoter.png new file mode 100644 index 0000000000000000000000000000000000000000..7ea4efc0fe006101413ca2e25b2b7fb93d8c8840 GIT binary patch literal 470 zcmV;{0V)28P)ncbaHbBNprF3jA^9NuT{xxVFM2$LzU$fe#lFF#7JbQ zvea-YFR_nDk)g`+3`g=3UojpTsw@w&D=%@5>8b^%T;JM=af#m=1tS};fX9{ckkEn zvfqP)?!a9#DQl7LgZd5gIP3RtuQTv3n8BfZ_&v-TAUv@G3$nI(+BLT&I|DxlEfOWL zh))=6-?#8y_UUexDHL@E=5=0P18?!UN};G7_<#$X$o@zxg(q$Y4&{5lGSOe58G6wH`$paGdsJme>kwqp7XxX zJM*4r&MaNJblEK9c#g3x#2AZWjOU_g1B_r1t5`;`i5Nk&b~TDMl9RSf3}8A+zL_Ed zRq?A)tbtq=W?&REH6m7UBg48tQv5tl79%m8jTRATBk?g=iwLx#_?WaJ0&OflX1yW; z9Uwktts+)*i1?WLB05TZ%%sKwo|Y+SBLtE?Upro5duhrt5J-xz?f-bZEK6J(fkwAE zC3K=C$s+ESBXNBK&8_l`#}UyrY(9TqvVg2-r$Pxdioc2{_=s=#j?eg_aX*w= z#C2<5`Cl4^){ljn&&yG)mNJBjM)7^tcAon2B3cuFuS79h#vo?v#K%lxPV(;5Z{QVN zQY~UOirG?*M`Dkz^LwxGHF3A_;dM^3h>2+JWE89I>BT?Q0v_fOwCKlrzpynbcvhG1 zb-}qe%_OGq+xnaMCwfZK*OWcd9cUF7^GcZaRag)@Od1#RO4yrMpom4h#eV!1w$YTZ z-{){3ns*EjqB$MIPW(}Aqg>w3TDg%1CGYrB9zlz;(H#0-!8_d6#{Rz+!`LNspDtb6mH&atGraoGMmGQe002ovPDHLk FV1h<~QWF3G literal 0 HcmV?d00001 diff --git a/src/assets/protein-stability-element.png b/src/assets/protein-stability-element.png new file mode 100644 index 0000000000000000000000000000000000000000..065a5ec9c98ced1333ab25df68f107e0afd0210a GIT binary patch literal 638 zcmV-^0)hRBP)&|*e`6c%X>4w zH@ulQGfP21!MtWcr2jfx#_~4(%eaWgkviJu2L41ouVMuB#5iLh(m%S5MI8_@!zk{z zXuA=|JJ@&I+*L`1v$OEqpYZz>BOo?~a;FF&Z;Al&rU)Q!iU1O9n1yX$2m6iUmgjzwa)~u3a7cQWCz|#KZ*Uok(@N9vO;~%H+rVA zH7AX!^ayic82f}eu?y#fG@1$GT3!NUIIj}GSWH8mJQFu!Kp6EwtQ1zJNt{a9yvbNY z+Z@AB&F8?BP$RmMQR$QTnJ(T?9@4lbOx3&}%u8S^^a^)CdxZM19*glnC4fsY9b`R; z%NVcuwoLVHTsdP6ZL>-k-Fw32)wHmU{-QdCcIKonl{?ZW@y*yyvRna{v|zJWULQF$>6p;fMO1!^|X)N{^Q!|Ee2EXu8 zSUv}_DPdE>T71n=N85}`KMQnq6&~|{@lS;tjcBq=p{2rpXpK;LOTtR@NZ7;`6cluT YzuObbW$7&DJpcdz07*qoM6N<$f@8WN$^ZZW literal 0 HcmV?d00001 diff --git a/src/assets/protein.png b/src/assets/protein.png new file mode 100644 index 0000000000000000000000000000000000000000..1c841d46b90e6796a5059c1217f070aafddf3b81 GIT binary patch literal 438 zcmV;n0ZIOeP)i}l)2{+iq0sggKoWl?%u!I$S!v|dC2!GKE zTE&ALfnAK^Gk#&bYS<*s@v3T2K?A7cJBF(S?P4=Wk4mWFC)UdbjNnp+-&nyjoJoTz z?4|St`t3KKx4YSCQBL9{dv}UE!gRZvod(cU^4Dc{qeDMC4d7VX|NCtUf66qhNyX}E z*6tMZSlUP)mJQgD7IMF)(l&Og1Pn{Xq^{VxDTlYx449}IG%l6(FH)JmYlB#mjxUSd z9`5z4j$upMk9Y7De{of=kN>Gjr`rX*YvnGZ(XC<8X)%xYn8OqK)<#pRxDD)KU)nxH g2qAjNl@PG~#i_qmisaQk}xWt#f1IB@Sb>3Cu))JNjYrrTLMMTLTsPnj^3yfhwM3nrJCi(-M1KYp}@THBdQ}Wj-?mOSp zB%7f*4Q;HWu9Xszv|-!8F>u7+KdotkfE(?4p%JFPHc{*l1nh;z3W>-oKLBjt?+Fih z!r#PU`Wm4>+uULw6B%+e?g2{uN!{Kl^91cer`~o}8$>bn%FtGpt002ovPDHLkV1nZH B;Pn6i literal 0 HcmV?d00001 diff --git a/src/assets/ribonuclease-site.png b/src/assets/ribonuclease-site.png new file mode 100644 index 0000000000000000000000000000000000000000..61825a964636110b80160c8aa110093e79202f11 GIT binary patch literal 591 zcmV-V0|!&a!(piOFnsG8@#l!5gI zu2V?)7huwkVtq_QC{iTv(`X1q3gvz3g;1ne-ltXwMH|TbR0~n2P2_!|A=*mbXN$@J zn@)`kP{_x|v`;uiAzxT8vY+Y@ib{F^_esh_C@Mdd$H)+Gq%?%0`gcALT!fC_6L0Ng z6~+HeYJgzb?dkEU39(B34m*bYA`R;?FQH>4U8|+!fDitcpGC@F1D*O@G{lFl*)n>7 zCu+;*kdKZBEJenILpzzpzD{t+fTOD)y zfOCQXR|M}x+fYQ_g+kI3*m{Y5CPLdk$W?0UDIh!XzFQr07766vfg!g#=H!4w;EumA d85tQC_yrka{97|9;AsE=002ovPDHLkV1lwY2bKT; literal 0 HcmV?d00001 diff --git a/src/assets/ribosome-entry-site.png b/src/assets/ribosome-entry-site.png new file mode 100644 index 0000000000000000000000000000000000000000..22d00945e433b6235899789a213f363fd8b2ef3a GIT binary patch literal 571 zcmV-B0>u4^P)Mi3Pdn-D}T1Qo1Ip`ew8z4#Im zu(z=gUxS5>)`DFyzJwGKLBuGih@_B2C4Vej;_R_|H@lg;D9jfIes}!ld7jxjW_HMA zGMP*!lWEORpLF-)Fvg3|pYR#Wee&BfJ28bvc!Q0au~76}#g1)BTER`ss}Ef_=5b>i z@@{env$}`;S&VKyvp71?d;uiWYVM+jNyHU@qO)fvmwl2J)ca$H<;{=+OT{u)lE6u%dUFJd^Qc)>6}20k+} zlVXqa>p}e#tBss zHICDqA3?pRS98n)!WXrT#&Mbxdh~or{AaFpZTasP(Db0VqQBcH>}%2-vw*dr9?|Cu zM;GtboL7F87}QuPyt@*66+DL1k-e!{@aOuP$z(E_OeWJWegj+Qu^X4b+i(B?002ov JPDHLkV1k=54iW$W literal 0 HcmV?d00001 diff --git a/src/assets/rna-stability-element.png b/src/assets/rna-stability-element.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9c130fe9d9082d3c35b8ddc2a0aada65d03eb7 GIT binary patch literal 534 zcmV+x0_pvUP)gsgdkH!B_BNZqJ~%kSPUcN+hTFS?LgK&MVHFsK=?{TeQQ2|t)`kbAO;*D3;y7>R2EOx z{|qo`#Wa9TYGwULh87y)dQ1aP)QXq!2DmNABg@|bV^)n6xknz>0aJ-g-H8u{^B8ag z#0}*#hIkb!z?EGcb>hGSauMmMlbGDhy#p)0&*lu~i<~Z?gnR{ttr{tkLzd6k)lp*} zS^k^gU1}&y&4AeZMZDH|Gm*$t0cGL52S^#pV~iBuFJ5h-5-?@eC$p;b>KU Y0Y@T{A~AjloB#j-07*qoM6N<$f?;vr?EnA( literal 0 HcmV?d00001 diff --git a/src/assets/signature.png b/src/assets/signature.png new file mode 100644 index 0000000000000000000000000000000000000000..60d5bb9a1d8534166ca34006316c29d3b835d4a1 GIT binary patch literal 596 zcmV-a0;~OrP);s{9@yFng7*S^z)sXg6bq44(4baY>@JyPCl7ncCKuT+44M7UWcdAdX8yCg zR8&+{R8-6`we30~s*` zuz=@XA|GMDxcEVPWmF0qAa3G^$%|)`28f%Ow0K4^07oTRCKUfh{4_6%LRl!Jfya_8 z6LJ_2v29EO3p0#?2A<(S5c?9;m$7C_CI%UZiErWvUIekJnjpRhmgG}qQ+vbil|Lu$ zm8`SSCcdG!_>7o|GM|TX2Kr@?_d&ghOX(j&zT%|h{oxo|_$*1gSFvvlqCemoe)j9s zD~+B>%OG~+EDojDt2$?8)N&;qx6lm0lOe>D+?}v7U^ys{3V>yqU)t|fG*S7TWQ z{@`{=V|Os~uavPFI4+-UwhFlvo#pinN$Q&=zGERDc@iFUT1CTo`(fq zdGTB0r2kt5GC!|4c+uqz!}%RCCtP^vJQPjt`Ow!b)N7^Mb?w@P@V}cC>$tvkb%4Q) a>+%xoWaKYe?KT4XkHOQ`&t;ucLK6TPCwYDV literal 0 HcmV?d00001 diff --git a/src/assets/simple-chemical-hexagon.png b/src/assets/simple-chemical-hexagon.png new file mode 100644 index 0000000000000000000000000000000000000000..793cff43167fe31e0754bef4b2f5d25d4f97621e GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}~5o-U3d z8I5nxFXTNGAma9rIb^~H=kf#B9|gv?EIA!w=q{en!o|a^pj|LSTcE>CbISyLTPEzrlv_$7^($Sj?x&{4PFLqsEFi&7Px6v?a@`rUd)gCZ~$gk}(Q{9=dP&}ai zW$B)^S-Zcn|9=~9Uohk5rYp?;3z)xc)VpQ+Ft%H!k+I@PTgFk#qd+57JWrjKj^G!O U4o=*j2y`KXr>mdKI;Vst0IpM3+5i9m literal 0 HcmV?d00001 diff --git a/src/assets/simple-chemical-pentagon.png b/src/assets/simple-chemical-pentagon.png new file mode 100644 index 0000000000000000000000000000000000000000..a5bf278cc8ef5d0704c7be83c2a701cc27cefd92 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}Mo-U3d z8I5l*Z{$4WAkp?v{3zoZrbdy*oCVq`jK(p`3OHwTaNTsOW)GOXf5HSej}w~jnd3kI zJ$_fTT)}gaif7QIYZK>(Ff8{lyso%<<~Lgg+k(C?7gh6_w;YgNVgJi&m)SKHZT5K% zmPXpi)BGzRT=9Rw7Snk5L=JyU(%F<}KbYMYNWPpsLv=lqoC8~qa%9QXrtiPJ*!Qr# h6x%yd1!P10GhTsPlKI{<9YJ1W@O1TaS?83{1OUB8S>gZy literal 0 HcmV?d00001 diff --git a/src/assets/simple-chemical-triangle.png b/src/assets/simple-chemical-triangle.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a63eea52425d83ec7cbce6eb68fe8afea8d99c GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}Uo-U3d z8I5nR7-lsYO0Yd}*SX5gap@$tMac&y+XnHBa&FrOTd$82whhhAO9>o>`K`{7e|5fX~`9bbq;=kf6j;srN5W2Rvi+Nea(O=Q;`95!Y z=3jllnr-ea(|ZN~wbg$ulrxJc%Q}B!)&G>)JCCa8860Cz(`|~ncY^Eiq{2gs62pX* sWll?ML0)AiyQWcJTf*Ik1CUlh+{6X&2iJ%MHtA6Z`LfEl+#)mDgbB z1a1S}oflRd@0jrKo3_X|wKC&7A^)A9mF-yh?tILQhs#zm`>uGX_Gh8ppKMW%e@Wgh dE-osC?7f@Ms&)7j*aH2=;OXk;vd$@?2>?hTa@_y` literal 0 HcmV?d00001 diff --git a/src/assets/ssNA.png b/src/assets/ssNA.png new file mode 100644 index 0000000000000000000000000000000000000000..937f09e0f753670b5fa7e0bb1ff5eb707c99fe18 GIT binary patch literal 684 zcmV;d0#p5oP)mUSPJtT~n5bO|ii4GDNW5OWl)Flf#6jVwxv}h#q?tQ;q9L&@utK;*5 z_x9!c{C+=Pz_KjMvMkH8EX%U~kD;NVbFS-NXc0N7lzObSegPnJfXWnr0)Q-lLoISg zMC7S4<|}~v0MvnpZf1;mn@*<#k{cvnkt~wDM{=xCC|owitoQczddXzc2S5OKTh!eI z5cK!=d&U@FL|y_2?~zj?vJ{C#ys4=vDy0IYRKBeR0NfH0e{F4ze;OSf^+lwb%jHg! zyp&3%o&g9ZCMIS{4v=iV@Oh=w*5u@55Cj1$l?ppLI_gTP`90pe<2X*RxVT7?oSU2D z_HnMYv%pcMRDF7SddKkPa=B4@y(#M`r5=fhUn-SI(kJ<`TCJ8Mk;r;H9{*CS)t-}l zPtwch^No(NrjDfJIQ48cyW>6Ab$zY%cL1?=mY5BP!}XPw6_VuU<|Y$~glCL-jotrd zNJPqAU0vSt@-j&>lgR{H>l%RLjSxvg@>E}6-;y!r*TTX=u2?LNi^#_C@NnJpyd4Xy zuCB7Pv$GE1VLJ;%MdaJy;GkD3l{hjo;wz=L0G!2$hrgRg`f?)9fI>*^dim!G#w7SQLo(uB6y{j>LPeNneMVI?qau@Wzopr E03QHxX8-^I literal 0 HcmV?d00001 diff --git a/src/assets/terminator.png b/src/assets/terminator.png new file mode 100644 index 0000000000000000000000000000000000000000..fc26c68c1a536af907176f89fee64e021d11ff01 GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}~Ho-U3d z8I5l*8FC$R5OBD-{<}c;gUlS;4sp&K&-k`|n|AM@+XtR9A>B<0kM&e0_%QuHc*x1a zNS;l_GipQV!<&2-%(FYwPF6CpKe+e(sML=$Pp<4#yx!WNec@ZSoU6C_>G-9hO?kcB znCoj;zP+qt^kd%lkxlNU&$@@(na)PoYp%VZBq4CNA%o4uSYa09MV^i{2NUK+k`N(j q;|EiB>btStxwNt=eWFU{ynRV`OlRsj9Nh8`EaUs0oPd_0`jJuR<0_pLwje0>AZFqM^Q<_fNkGjHz_I0JMKgQu&X%Q~loCIFid BPEG&- literal 0 HcmV?d00001 diff --git a/src/assets/three-prime-sticky-restriction-site.png b/src/assets/three-prime-sticky-restriction-site.png new file mode 100644 index 0000000000000000000000000000000000000000..527db15fa70097c172ddb19a68223165b02243b4 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}|IjhXq-z3)!-t7xeigq-y#JaR;yXQ72saOs#7FtApN! z{DR#LGiUzY>}0DDz;OCk4TILhY5i+<_O5&N*?aN1XIsqu=g5DtTp-B4!qVX^V-{aP zalj`qdpUk}#bGc(?NznoR%g@CxdT-`mOUl=@H{an^L HB{Ts5$-Zj! literal 0 HcmV?d00001 diff --git a/src/assets/transcription-end.png b/src/assets/transcription-end.png new file mode 100644 index 0000000000000000000000000000000000000000..826f5635fb242c04a666260cf27d741b91ec66ad GIT binary patch literal 640 zcmV-`0)PF9P)>q}mJ$q*7 zIrDO6my(i_6-`S6-nkY>aTuGUZ4~`@fvE=cSr^*Si!uDEQpRu*YYNg>l@4Kas|l|x zuhChLj_a|6)?)zs65F(}WQJlNyKw}o6Q2*lGW%5r4Y{~0JGxJ>Z4tj7JgxA((;SJ_ z*@GGLf*zo?hJPy_CjK+R>=eeWM9fzq1Eq|_XD1TdIt(Z6ZsZYAYqb7_Q%U_cCWUM? z$B&9@8-7RM#on=O@&wR=?a6(Ayj~DC=s8S8TMr%ynF?Md?RIF)d9)<$vKw+&w7*e1 zg>H?$sja=4!c!&^5yzsf8|Q^wpB`YBv0s?=_k@1yj)=NS$ZrfwN@;J$hB_oA)t<)H0000w#0K~!jg?U+4i6hRcne-|~H*ocBBnrI@3q9O!E45Ec7el%hs77{GA z5XB%CVlR?t7X&Q?jbb4-B50!+gM|?*V+21yA~^y<^bDHQm{`17_U$Emac_5SvT#3G zc6Rpd&i~EKdo#OGrAn1lld}LWRVsV{d?>+!l zO=H&tJS?)kRvC%mYy`&f1>FQ{O4!!`x0L-jGCIz0%J%v^7vMCt_6M>+v(mBnK%w)fM#{wW6md$06hwfnz|<7Hj=3To~h?n zV`n{@k$Qpwx!%;jpmYjdX>4^}eI4$$U>I`UI7yX=Y4-n4Y9aDuqRgli+}-B*9{yrp5jyb?(BtU1{iB13==9yW?HsCSA{gK}HJOZ{lQx}1Y1jTnC zsWdfsX><~a4{LKh?m`wuohpAo97z?O1cSECt(@p&k*$O0L;+aqR8bkU0N?SQ=yEHk zJWk;|@Ww_1wu0E>kSY&bZYy!_5?l+8yOk4-R)X7#9JBCmTq*A3i~o&mF;c}ld0Pt@EsUNJ}*_C(j`tG5gH*Vq{V4wbY(9y6{KA%HIdu3)z4w z&$rxG;xq$a@kii>TRG9uf36F_I=6D7(}wTB3CCK>rj?X@#8;`3R{jADz3E}YpH|)g O0000jNl@PG~#i_qmisaQk}xWt#f1IB@Sb>3Cu))JNjYrrTLMMTLTsPnj^3yfhwM3nrJCi(-M1KYp}@THBdQ}Wj-?mOSp zB%7f*4Q;HWu9Xszv|-!8F>u7+KdotkfE(?4p%JFPHc{*l1nh;z3W>-oKLBjt?+Fih z!r#PU`Wm4>+uULw6B%+e?g2{uN!{Kl^91cer`~o}8$>bn%FtGpt002ovPDHLkV1nZH B;Pn6i literal 0 HcmV?d00001 diff --git a/src/elements.ts b/src/elements.ts index c81b327e9..be06715da 100644 --- a/src/elements.ts +++ b/src/elements.ts @@ -10,11 +10,31 @@ export interface NameRange extends Range { color?: string; id: string; name: string; + border?: "dashed" | "dotted" | "bold"; + font?: Font; + svg?: string; + gradient?: Gradient; +} + +interface Font { + fontFamily?: string; + fontSize: number; + fontWeight: number; + fontColor: string; +} + +interface Gradient { + start: string; + stop: string; } /** AnnotationProp is an annotation provided to SeqViz via the annotations prop. */ export interface AnnotationProp { color?: string; + border?: "dashed" | "dotted" | "bold"; + font?: Font; + svg?: string; + gradient?: Gradient; direction?: number | string; end: number; name: string; diff --git a/src/style.ts b/src/style.ts index 797dd2fe1..90d0e80c5 100644 --- a/src/style.ts +++ b/src/style.ts @@ -24,7 +24,6 @@ export const svgText: CSS.Properties = { MozUserSelect: "none", WebkitUserSelect: "none", background: "none", - fill: "rgb(42, 42, 42)", fontFamily: "Roboto Mono, Monaco, monospace", msUserSelect: "none", userSelect: "none", @@ -98,8 +97,6 @@ export const annotation: CSS.Properties = { export const annotationLabel: CSS.Properties = { ...svgText, - color: "rgb(42, 42, 42)", - fontWeight: 400, shapeRendering: "geometricPrecision", strokeLinejoin: "round", textRendering: "optimizeLegibility", @@ -151,3 +148,9 @@ export const seqBlock: CSS.Properties = { padding: 0, width: "100%", }; + +export const iconStyle: CSS.Properties = { + width: "25px", + height: "25px", + zIndex: 100, +}; From 2eac8a2bfb676aaa1d1d2d7b3f42701f39739641 Mon Sep 17 00:00:00 2001 From: Nick Rosenau Date: Mon, 27 Nov 2023 14:36:08 -0500 Subject: [PATCH 2/7] Update webpack to allow file imports. --- webpack.config.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/webpack.config.js b/webpack.config.js index 87e4b36d6..07e4c4037 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -15,6 +15,13 @@ const cdnBuild = { rules: [ { test: /\.(t|j)sx?$/, loader: "ts-loader", exclude: /node_modules/ }, { test: /\.js$/, enforce: "pre", loader: "source-map-loader", exclude: /node_modules/ }, + { + test: /\.(png|jpe?g|gif|jp2|webp)$/, + loader: 'file-loader', + options: { + name: '[name].[ext]', + }, + }, ], }, optimization: { From aaf559d8b9f4b385a85c6bc2a21edfd9df80f65c Mon Sep 17 00:00:00 2001 From: Nick Rosenau Date: Mon, 27 Nov 2023 14:40:43 -0500 Subject: [PATCH 3/7] update readme some more. --- README.md | 3 +++ demo/public/annotations-example.png | Bin 0 -> 43782 bytes 2 files changed, 3 insertions(+) create mode 100644 demo/public/annotations-example.png diff --git a/README.md b/README.md index 1df4a05fe..cf975f361 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,9 @@ annotations = [ ]; ``` +Example result of using optional annotation paramters: + + ```js annotations = [ { start: 0, end: 22, name: "Strong promoter", direction: 1 }, // [0, 22) diff --git a/demo/public/annotations-example.png b/demo/public/annotations-example.png new file mode 100644 index 0000000000000000000000000000000000000000..db532fb160bd71b9d04c442fd56834858bb297e4 GIT binary patch literal 43782 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 Date: Mon, 27 Nov 2023 14:48:05 -0500 Subject: [PATCH 4/7] more updating. --- README.md | 29 +++++++++++++++++----------- demo/public/annotations-example.png | Bin 43782 -> 57750 bytes 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cf975f361..9617a9394 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,17 @@ The name of the sequence/plasmid. Shown at the center of the circular viewer. An array of `Annotation`s to render. Each `Annotation` requires 0-based start (inclusive) and end (exclusive) indexes. `name`s are rendered on top of the annotations. Set the annotation's direction to `1` for forward arrows and `-1` for reverse arrows. -Optional Parameters: +```js +annotations = [ + { start: 0, end: 22, name: "Strong promoter", direction: 1 }, // [0, 22) + { start: 23, end: 273, name: "GFP" }, + { start: 300, end: 325, name: "Weak promoter", direction: -1, color: "#FAA887" }, +]; +``` + +In the example above, the "Strong promoter" would span the first to twenty-second base pair. + +Optional Annotation Parameters: - Annotation border styling: `"dashed" | "dotted" | "bold"` ```js annotations = [ @@ -172,18 +182,15 @@ annotations = [ ]; ``` -Example result of using optional annotation paramters: - - +Example result of using optional annotation parameters: ```js -annotations = [ - { start: 0, end: 22, name: "Strong promoter", direction: 1 }, // [0, 22) - { start: 23, end: 273, name: "GFP" }, - { start: 300, end: 325, name: "Weak promoter", direction: -1, color: "#FAA887" }, -]; +annotation['border'] = 'dashed'; +annotation['font'] = {"fontFamily": "Times New Roman", "fontWeight": 800, "fontSize": 17, "fontColor": 'blue'} +annotation['svg'] = 'promoter' +annotation['gradient'] = {start: 'lightblue', stop: 'green'} ``` - -In the example above, the "Strong promoter" would span the first to twenty-second base pair. +

+ #### `primers (=[])` diff --git a/demo/public/annotations-example.png b/demo/public/annotations-example.png index db532fb160bd71b9d04c442fd56834858bb297e4..4a253478273cb0e00f593f3f7a49e363baa18122 100644 GIT binary patch delta 54402 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%0D4xS99 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 delta 40324 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 Date: Mon, 27 Nov 2023 14:56:08 -0500 Subject: [PATCH 5/7] more updating. --- README.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9617a9394..8a705c2fe 100644 --- a/README.md +++ b/README.md @@ -163,21 +163,20 @@ annotations = [ - Annotation font styling; user can change font family, font weight, or font color: ```js annotations = [ - { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {"fontFamily": "Times New Roman", "fontWeight": 800, "fontSize": 17, "fontColor": "red"}}, + { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {fontFamily: "Times New Roman", fontWeight: 800, fontSize: 17, fontColor: 'blue'}}, ]; ``` - - Adding an svg icon to annotation; the available icons are part of the SBOL library and can be viewed in the `assets` folder under `src/assets/`, the name of the desired icon must exactly match the filename of the icon in the `assets` folder: + - Adding an svg icon to annotation; the available icons are part of the SBOL library and can be viewed in the `assets` folder under `src/assets/`, the name of the desired icon must exactly match the filename of the icon in the `assets` folder. In this example `promoter` matches the name of the promoter icon file `promoter.png`: ```js annotations = [ - { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {"fontFamily": "Times New Roman", "fontWeight": 800, "fontSize": 17, "fontColor": "red"}}, + { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {fontFamily: "Times New Roman", fontWeight: 800, fontSize: 17, fontColor: 'blue'}}, svg: 'promoter' ]; ``` - here `promoter` matches the name of the promoter icon file `promoter.png` - Annotation background color gradient. User can enter a starting color and stopping color: ```js annotations = [ - { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {"fontFamily": "Times New Roman", "fontWeight": 800, "fontSize": 17, "fontColor": "red"}}, + { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {fontFamily: "Times New Roman", fontWeight: 800, fontSize: 17, fontColor: 'blue'}}, svg: 'promoter', gradient: {start: 'lightblue', stop: 'green'} ]; ``` @@ -185,11 +184,10 @@ annotations = [ Example result of using optional annotation parameters: ```js annotation['border'] = 'dashed'; -annotation['font'] = {"fontFamily": "Times New Roman", "fontWeight": 800, "fontSize": 17, "fontColor": 'blue'} +annotation['font'] = {fontFamily: "Times New Roman", fontWeight: 800, fontSize: 17, fontColor: 'blue'} annotation['svg'] = 'promoter' annotation['gradient'] = {start: 'lightblue', stop: 'green'} ``` -

#### `primers (=[])` From 728e8546cad66086d5ef1c73b98e11fe68598a50 Mon Sep 17 00:00:00 2001 From: Nick Rosenau Date: Wed, 29 Nov 2023 17:52:37 -0500 Subject: [PATCH 6/7] removed svg feature for annotions. Added borderColor parameter for annotations, updated README and updated webpack since we won't need to import images anymore. --- README.md | 22 +++---------- src/Linear/Annotations.tsx | 30 ++++++++---------- src/assets/aptamer.png | Bin 691 -> 0 bytes src/assets/assembly-scar.png | Bin 224 -> 0 bytes src/assets/association.png | Bin 427 -> 0 bytes src/assets/blunt-restriction-site.png | Bin 255 -> 0 bytes src/assets/cds-arrow.png | Bin 528 -> 0 bytes src/assets/cds.png | Bin 401 -> 0 bytes src/assets/chromosomal-locus.png | Bin 611 -> 0 bytes src/assets/circular-plasmid.png | Bin 470 -> 0 bytes src/assets/complex-sbgn.png | Bin 268 -> 0 bytes src/assets/composite.png | Bin 296 -> 0 bytes src/assets/control.png | Bin 273 -> 0 bytes src/assets/degradation.png | Bin 478 -> 0 bytes src/assets/dissociation.png | Bin 781 -> 0 bytes src/assets/dna-stability-element.png | Bin 415 -> 0 bytes src/assets/dsNA.png | Bin 388 -> 0 bytes src/assets/engineered-region.png | Bin 266 -> 0 bytes src/assets/five-prime-overhang.png | Bin 213 -> 0 bytes .../five-prime-sticky-restriction-site.png | Bin 267 -> 0 bytes src/assets/generic-sbgn.png | Bin 567 -> 0 bytes src/assets/halfround-rectangle.png | Bin 378 -> 0 bytes src/assets/inert-dna-spacer.png | Bin 720 -> 0 bytes src/assets/inhibition.png | Bin 204 -> 0 bytes src/assets/insulator.png | Bin 399 -> 0 bytes src/assets/intron.png | Bin 788 -> 0 bytes src/assets/location-dna-no-top.png | Bin 201 -> 0 bytes src/assets/location-dna.png | Bin 565 -> 0 bytes src/assets/location-protein-no-top.png | Bin 605 -> 0 bytes src/assets/location-protein.png | Bin 817 -> 0 bytes src/assets/location-rna-no-top.png | Bin 467 -> 0 bytes src/assets/location-rna.png | Bin 705 -> 0 bytes src/assets/macromolecule.png | Bin 568 -> 0 bytes src/assets/na-sbgn.png | Bin 378 -> 0 bytes src/assets/ncrna.png | Bin 507 -> 0 bytes src/assets/no-glyph-assigned.png | Bin 228 -> 0 bytes src/assets/nuclease-site.png | Bin 441 -> 0 bytes src/assets/omitted-detail.png | Bin 149 -> 0 bytes src/assets/operator.png | Bin 258 -> 0 bytes src/assets/origin-of-replication.png | Bin 654 -> 0 bytes src/assets/origin-of-transfer.png | Bin 821 -> 0 bytes src/assets/polyA.png | Bin 309 -> 0 bytes src/assets/polypeptide-region.png | Bin 662 -> 0 bytes src/assets/primer-binding-site.png | Bin 293 -> 0 bytes src/assets/process.png | Bin 259 -> 0 bytes src/assets/promoter.png | Bin 470 -> 0 bytes src/assets/protease-site.png | Bin 723 -> 0 bytes src/assets/protein-stability-element.png | Bin 638 -> 0 bytes src/assets/protein.png | Bin 438 -> 0 bytes src/assets/replacement-glyph.png | Bin 511 -> 0 bytes src/assets/ribonuclease-site.png | Bin 591 -> 0 bytes src/assets/ribosome-entry-site.png | Bin 571 -> 0 bytes src/assets/rna-stability-element.png | Bin 534 -> 0 bytes src/assets/signature.png | Bin 596 -> 0 bytes src/assets/simple-chemical-circle.png | Bin 287 -> 0 bytes src/assets/simple-chemical-hexagon.png | Bin 225 -> 0 bytes src/assets/simple-chemical-pentagon.png | Bin 239 -> 0 bytes src/assets/simple-chemical-triangle.png | Bin 255 -> 0 bytes src/assets/specific-recombination-site.png | Bin 283 -> 0 bytes src/assets/ssNA.png | Bin 684 -> 0 bytes src/assets/stimulation.png | Bin 267 -> 0 bytes src/assets/terminator.png | Bin 249 -> 0 bytes src/assets/three-prime-overhang.png | Bin 207 -> 0 bytes .../three-prime-sticky-restriction-site.png | Bin 267 -> 0 bytes src/assets/transcription-end.png | Bin 640 -> 0 bytes src/assets/translation-end.png | Bin 784 -> 0 bytes src/assets/unspecified-glyph.png | Bin 511 -> 0 bytes src/elements.ts | 17 ++++++---- webpack.config.js | 9 +----- 69 files changed, 29 insertions(+), 49 deletions(-) delete mode 100644 src/assets/aptamer.png delete mode 100644 src/assets/assembly-scar.png delete mode 100644 src/assets/association.png delete mode 100644 src/assets/blunt-restriction-site.png delete mode 100644 src/assets/cds-arrow.png delete mode 100644 src/assets/cds.png delete mode 100644 src/assets/chromosomal-locus.png delete mode 100644 src/assets/circular-plasmid.png delete mode 100644 src/assets/complex-sbgn.png delete mode 100644 src/assets/composite.png delete mode 100644 src/assets/control.png delete mode 100644 src/assets/degradation.png delete mode 100644 src/assets/dissociation.png delete mode 100644 src/assets/dna-stability-element.png delete mode 100644 src/assets/dsNA.png delete mode 100644 src/assets/engineered-region.png delete mode 100644 src/assets/five-prime-overhang.png delete mode 100644 src/assets/five-prime-sticky-restriction-site.png delete mode 100644 src/assets/generic-sbgn.png delete mode 100644 src/assets/halfround-rectangle.png delete mode 100644 src/assets/inert-dna-spacer.png delete mode 100644 src/assets/inhibition.png delete mode 100644 src/assets/insulator.png delete mode 100644 src/assets/intron.png delete mode 100644 src/assets/location-dna-no-top.png delete mode 100644 src/assets/location-dna.png delete mode 100644 src/assets/location-protein-no-top.png delete mode 100644 src/assets/location-protein.png delete mode 100644 src/assets/location-rna-no-top.png delete mode 100644 src/assets/location-rna.png delete mode 100644 src/assets/macromolecule.png delete mode 100644 src/assets/na-sbgn.png delete mode 100644 src/assets/ncrna.png delete mode 100644 src/assets/no-glyph-assigned.png delete mode 100644 src/assets/nuclease-site.png delete mode 100644 src/assets/omitted-detail.png delete mode 100644 src/assets/operator.png delete mode 100644 src/assets/origin-of-replication.png delete mode 100644 src/assets/origin-of-transfer.png delete mode 100644 src/assets/polyA.png delete mode 100644 src/assets/polypeptide-region.png delete mode 100644 src/assets/primer-binding-site.png delete mode 100644 src/assets/process.png delete mode 100644 src/assets/promoter.png delete mode 100644 src/assets/protease-site.png delete mode 100644 src/assets/protein-stability-element.png delete mode 100644 src/assets/protein.png delete mode 100644 src/assets/replacement-glyph.png delete mode 100644 src/assets/ribonuclease-site.png delete mode 100644 src/assets/ribosome-entry-site.png delete mode 100644 src/assets/rna-stability-element.png delete mode 100644 src/assets/signature.png delete mode 100644 src/assets/simple-chemical-circle.png delete mode 100644 src/assets/simple-chemical-hexagon.png delete mode 100644 src/assets/simple-chemical-pentagon.png delete mode 100644 src/assets/simple-chemical-triangle.png delete mode 100644 src/assets/specific-recombination-site.png delete mode 100644 src/assets/ssNA.png delete mode 100644 src/assets/stimulation.png delete mode 100644 src/assets/terminator.png delete mode 100644 src/assets/three-prime-overhang.png delete mode 100644 src/assets/three-prime-sticky-restriction-site.png delete mode 100644 src/assets/transcription-end.png delete mode 100644 src/assets/translation-end.png delete mode 100644 src/assets/unspecified-glyph.png diff --git a/README.md b/README.md index 8a705c2fe..0307bee11 100644 --- a/README.md +++ b/README.md @@ -154,10 +154,10 @@ annotations = [ In the example above, the "Strong promoter" would span the first to twenty-second base pair. Optional Annotation Parameters: - - Annotation border styling: `"dashed" | "dotted" | "bold"` + - Annotation border styling; user can customize border style and border color: ```js annotations = [ - { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed"}, + { start: 0, end: 22, name: "Strong promoter", direction: 1, border: {style: "dashed", borderColor: 'purple'}, ]; ``` - Annotation font styling; user can change font family, font weight, or font color: @@ -166,13 +166,8 @@ annotations = [ { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {fontFamily: "Times New Roman", fontWeight: 800, fontSize: 17, fontColor: 'blue'}}, ]; ``` - - Adding an svg icon to annotation; the available icons are part of the SBOL library and can be viewed in the `assets` folder under `src/assets/`, the name of the desired icon must exactly match the filename of the icon in the `assets` folder. In this example `promoter` matches the name of the promoter icon file `promoter.png`: - ```js -annotations = [ - { start: 0, end: 22, name: "Strong promoter", direction: 1, border: "dashed", font: {fontFamily: "Times New Roman", fontWeight: 800, fontSize: 17, fontColor: 'blue'}}, - svg: 'promoter' -]; -``` + - Adding an svg icon to annotation: WIP + - Annotation background color gradient. User can enter a starting color and stopping color: ```js annotations = [ @@ -181,15 +176,6 @@ annotations = [ ]; ``` -Example result of using optional annotation parameters: -```js -annotation['border'] = 'dashed'; -annotation['font'] = {fontFamily: "Times New Roman", fontWeight: 800, fontSize: 17, fontColor: 'blue'} -annotation['svg'] = 'promoter' -annotation['gradient'] = {start: 'lightblue', stop: 'green'} -``` - - #### `primers (=[])` An array of `Primer`s to render. Each `Primer` requires 0-based start (inclusive) and end (exclusive) indexes. `name`s are rendered on top of the primers. Set the primer's direction to `1` for forward primer and `-1` for reverse primer. diff --git a/src/Linear/Annotations.tsx b/src/Linear/Annotations.tsx index 39700ea5a..c877882b8 100644 --- a/src/Linear/Annotations.tsx +++ b/src/Linear/Annotations.tsx @@ -184,7 +184,13 @@ const SingleNamedElement = (props: { // 0.591 is our best approximation of Roboto Mono's aspect ratio (width / height). let fontSize = 12; if (element.font?.fontSize) { - fontSize = element.font.fontSize; + // 19 is a subjective limit to fontSize that will fit inside bounds of annotation. If larger than 19, cap it. + if(element.font.fontSize > 19){ + fontSize = 19; + } + else{ + fontSize = element.font.fontSize; + } } const annotationCharacterWidth = 0.591 * fontSize; const availableCharacters = Math.floor((width - 40) / annotationCharacterWidth); @@ -204,8 +210,8 @@ const SingleNamedElement = (props: { let strokeVal: string | null = null; let strokeWidth: string | null = null; - if (element.border) { - switch (element.border) { + if (element.border?.style) { + switch (element.border.style) { case "dashed": strokeVal = "5, 5"; break; @@ -217,6 +223,10 @@ const SingleNamedElement = (props: { break; } } + let borderColor:string | null = null + if (element.border?.borderColor) { + borderColor = element.border.borderColor + } let fontFamily: string | undefined = undefined; let fontWeight: number = 400; @@ -232,11 +242,6 @@ const SingleNamedElement = (props: { fontColor = element.font.fontColor; } - let svg: any = null; - if (element.svg) { - svg = require(`../assets/${element.svg}.png`); - } - return ( {/* provides a hover tooltip on most browsers */} @@ -263,7 +268,7 @@ const SingleNamedElement = (props: { d={linePath} fill={element.gradient ? "url(#myGradient)" : color} id={element.id} - stroke={color ? COLOR_BORDER_MAP[color] || darkerColor(color) : "gray"} + stroke={borderColor ? borderColor : color ? COLOR_BORDER_MAP[color] || darkerColor(color) : "gray"} style={{ annotation }} stroke-dasharray={strokeVal} stroke-width={strokeWidth} @@ -276,13 +281,6 @@ const SingleNamedElement = (props: { onMouseOut={() => hoverOtherAnnotationRows(element.id, 0.7)} onMouseOver={() => hoverOtherAnnotationRows(element.id, 1.0)} /> - <image - href={svg ? String(svg.default.src) : undefined} - x={width / 2 - (width / 2) * 0.6} - y={height / 2 - 8} - width="15px" - height="15px" - /> <text className="la-vz-annotation-label" cursor="pointer" diff --git a/src/assets/aptamer.png b/src/assets/aptamer.png deleted file mode 100644 index 71027e0e0171558ba69e7f4e9a074eb05d432a44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0%%D@K~!jg?bl1FO>q>*@ehaVk;i}mDcq7mCh{tDi{uWJu9=ZAmH`9Z z0VxIsl!3y)GZ`^J8F&>21~QR>SD`$v2_anfatzkK-4o7fpY5Ep$^O>qocgcz|Nqwh zuf5hf6ciK`<Vh)S0ho<7ScIW?k*}QejK^7&fBM|Q)EsrCqJ$gxjzd_61=xeHc!Y7e zsY}5+@w9i;SliiBMRjr-pD?P*`UBi)ot*TH!(Q~_Sq;0(c-m|+CCn2QWF0zG&)cEc zgx4ZHu3~N#+cxyzS|i0)G7<am#;+Bm7Z<Ux!hWephccd^tH$0#us^Zg&}iY%iMIyJ z-Bzr|O035zk=x&K0B4fl@39>tD)yR;<9H}u=55KIWn2)q)=<`>AJ4J8hTRl#3uS!6 zu|(_uBSbJCL~uO@Z}1&<V|atLn}v^}K2J(vUqZL2?Ui(iG%Aa<T9Vkdi;mpZAickE zUNo3F8U5$tiV*$^8#N(Cs?nYtd^m$|2?x=KFQSCDyu)r50W8bt|5W7pj7ABnB+WI> zOun;r#@iT!#~J-=k|ux&qBMTac*a|d)`ZGJx&YpZnPp_gGbV_V*_YA3CTRk=CpzS! zjAtxP_Q;KPgAJ)(R)_-7-B3jtI44qIejPr;aaT0JiOmpI57Wgw^9<8c*q3lZJpC=r zlT{y`q8s;!xu_a540he4;{Ew+=)g-M?ml)^tgXT&5oCX|*0OP-9>$9Cw?~Wz0~`^7 zotAxOYAGlEK7f{{%wKuM^-u(mH$?z>Qv{GVMF4s8&j&E<4}7nSzlsCg6r)5zK|#TP Z#1Cw(hrfRyVY2`L002ovPDHLkV1gwjL^1#X diff --git a/src/assets/assembly-scar.png b/src/assets/assembly-scar.png deleted file mode 100644 index 1be25133f36231fab19b24d04fceb2bf6688c014..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}~*o-U3d z8I5nR8FDchinv}}ZP2@ehns!Nh63?*NeSPc#;sYKv*u2#SX4&tcef;$XL26jJ?fke z@q0{C@tjnbEcEQz0l6DB>!+BrFJPBjs`jQK{pm(;uGwwU7J(m3n9Lu{VY#f$a)D`e z|0&6L95GsJRsU|iX!A(7V0j$>4yNuU8@BMTX;eEi&478DXMssPrzg<ZpiKSX6>cYI TtPzd|I*`HB)z4*}Q$iB}*p^eZ diff --git a/src/assets/association.png b/src/assets/association.png deleted file mode 100644 index 3de9545c7381cba5de2254f41c1cc91fef340e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmV;c0aX5pP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0bof)K~!jg?bc086;T)m@Sm=H3EG4it)ub_glL3C(po491^reo+zX;2 z5)`-)C8W;~wNDUg7vkG>F-MLIy?2ITm@7O#ILuu<5A)~D%()LCgb+dqA%s5lAgz1l z12%DtPFly<z-)`TdU}jqIrLrY8^&77c&DfMtq6Fb*zGwyPiqcaxJ)&_Fy2biTMXh* z5$rE!y41c+H60wJ-qtND0-a&9MEx|*Q_trHbCq_z`zsZCR#VS@6M?E2m3Q-1g}&+3 zbBf^xa+UT%K3zsD^gX=M_pDBUe)xzwZQguDeuc_>z}H^Ouh3AP0Ck_hfBZ<lmn!rv zr|Th3YG$ZyK|V&OO4PrRpW3GebCouT@A4nnyDqh}_?K$;Fwl6qlAb8WgN|Zc*v3b^ z#02KCBaae4_2E1;hOc@Lb6@bNrHrM#$2yMW(0{O|n1$|@5jBs=5JCtcgb+ewt^leW VTxxwRYsdfq002ovPDHLkV1jcpzR3Up diff --git a/src/assets/blunt-restriction-site.png b/src/assets/blunt-restriction-site.png deleted file mode 100644 index ef594ff35b665d41be6b55bc487f1f7bd0079c08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}Uo-U3d z8I5nR8G1202(Vsg7o4oN!qv+0(o-qRrsEqvuzZ{6y1_qNA^ih`rK5o0#t9KQT?vBX zCO)6zw@07(cizPN$b6oz`|^*u(krfi@+s`QekkUy*o{ZQ+Qr+g^9zG#tiEk3x8;EF zoyW|@x!U`!Y@@c=W$*d3<M*NB_YITldxI5NS1oneDzai4)74ence4J^uXVObx@Np! s*8$dhA6j_BA|44X-W4H;0PQu*``Sd7=O)O$2fClZ)78&qol`;+0Gq93XaE2J diff --git a/src/assets/cds-arrow.png b/src/assets/cds-arrow.png deleted file mode 100644 index 2c060d12366776f7b279fb528eb1eaa303300b92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0mVr~K~!jg?btDB6hRn<;m2r1P!xh-8x+!nfQ5yY7FHH^iV)CFZ0%xU z(9T9HJ0XpY2(b>N5D_c`DyB#(v9J(DVnl<Nv)Bzcm#o~*Cb_*$=7oiw*`0sBkAHS% zc1R==i9{l?{}{(hJj8I#S}HMzc78p_!FuJyv!G+3jTs!MRZ%4GbQ@^nNv(<^`CzMo zHXhe0Du$0bqSthrxEB-XP(j^k+{ED$?SEiBro)_*!Tl6&<4j(@kDqu{Aud={oZj8K zu3{9Qg1U9ws%oIsX9E}We#h`7sBdAim)N4ItA(NbejeX@#5k_{JpLBbGQlu`R~X65 ze{l`7F+sx&oU15oJDkP0K*Jg?#{{U`09?RIpyQX$Q0vJc7=TOo9cWp>`7#X$#Q<E< zy-qA|eqm^H#a>`gGSKKD)aZ}6(bMPzz6SkoEM)(s*Gjx7OJ5m=ajfLKWc!^LxSN;9 z@EWIr=Qr>yA|^7|{oD(U+u_aJn?4)3E}P%Ox;tgX77d{jvIXQw$ryi>A7&dom2CoH z6-R?-(|8aWukU<ToQ=l(QZCslzEMB*?{$lx(XeBc#vg1o{%A3gNF)-81pEU_LJAbk SsF|h!0000<MNUMnLSTZ9dhcog diff --git a/src/assets/cds.png b/src/assets/cds.png deleted file mode 100644 index 15a88d4bf58daac7c68c7709e457a967cc35c46b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 401 zcmV;C0dD?@P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0Y*tgK~!jg?bs_z1wk0b@t?PBG6^=LK~MyfNrS;4*fkjhlTAN^MXT8_ zV>F3i5JV6J1@U$~28A<6R?cmm-I4jj!m_*b%=<7iJM+F|GMP*!lc|oOf@dq(#aM*? z&v1aZGDUCEjCh@5q)Y>i$Of7?Q9K(uGTPz&5w80Y?t*p9f8TH72|Hy7ha)gohTt!Z z`&t9xNF0_S9LoSq;9R?j{Xs=z8h}Y$YB#Yrh+u33Fomn2-w$l}D^`U8n8uBE6I=ZV zRb>EXa2NFdj*VVLsx$zzxDR4@!D=r8RU3dsJO*(*VX523bua+Scn)HDz(O|->tX=b z@TwKh#m^6hV@DK&x{N^5Qz+?0ob+!r>5VMuqeRk&xulQNNhdU=q?ARKfQHr%9V@Aa vV}Fp;*S@S$L{f#Ve_2}0WHOmdCKHQKT<j5%{MlH700000NkvXXu0mjflB=gs diff --git a/src/assets/chromosomal-locus.png b/src/assets/chromosomal-locus.png deleted file mode 100644 index 8fb4875c0e35d9e916db4816bad8f44e18b9b631..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XJcP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0vJg|K~!jg?bge0O;Hrb@lUI{X^BTPs5|hC5RZmPgb++HGLV>wnD_%k z!jzGLfkfg@5QZj(WrTqUNvUWDv>p*9@v3{%lGI?I>e0Hl_nv#}bg;k4&e=JSy?$$- zwbxoiB9TZW5{X12kw_#GiR3{`4mOuyC03vlckm_aV$F7-RS>rZtCKNx-ah4<9vsSQ zur1?vE!c={*n-W;*nmQvYyHZo0ku0Y4|}m6d$1cz>#$SCD-7X1-eEYo_SCV?G-e8+ zwK#(lLcCUD9D{g)m&tr68H0(~|ITrYB;wLz3=eS?C$SUr^AK2#0^XVw{Ti2Xz#J3X zTH$`XknSdUhJGO&O0%q~X<RZre8%wsw{ZbSg>#ZeJ)s7}$8c82K-J#;jy^m^Z|eHF z2^y<X>&_K%SV*C}uvKj-_zfQ8J|5r^M(dYZnXJFQ1KZJUvY2(7xi*Xn&fLOv4YUxm zMG;4EUJ%$TRN8-?rEkf5xt*U{StNwtMcl<te>-w6H)R>=#1)ec3^cM>)@H6A3RovJ ze>-px`%=$8HnMmY2Nnp`cwsUo=F6}gT|%$lh4n%UUCB-#PG`{Yhx7p|;u=<^?zN>v zc3^QM#uCc7ha0%5!L*v*nNvdHY8EA-_2?Jkd;rh!L=$U4`VVXpb|t;bWB4KLT3N{3 xrDXm!c~%lC@h73p7#4c|k!FdEL?V&7%Wn}|b(3}6@YVnT002ovPDHLkV1kAn6Tbie diff --git a/src/assets/circular-plasmid.png b/src/assets/circular-plasmid.png deleted file mode 100644 index eac55785f1a32e87b3f8691f1024cad041bae1e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0gFjQK~!jg?bl696;T)f;Kz?Z=t4+Pnz{%CxwWcIDY=jW!<BBrg@3?} zKfsM^=@$eo3tC6e&V3LBZj^#l3PB}55H}*};#|2G^?L12I#+lfILt7^%z4kunfJUy z2qA<JLI@#*5JDcBuAq-*wBr^ExKXkFgKt@G{yzp#KoNcD#eMXk19x!yoNGU0BunS5 zbzIYjAq?P&6m)ZzAhNjV03KliW6~3@WgDy5z#6tn$M&#~T^!)oKgN4Xtts>ZGk8|z z{0hEe9t-%6W$a`PEUTM%kHZsf4R7%Zow-F<Lks4VgZ_(8cv(8v@FtXl|Ec=)X;^QR z2T;s8mYU8=f2$SyQ|e2#x$2VA-tk+Q$EX~0eLV)HWxg^4tzZ`YuF1#TjSo^5I+;#4 z@e$J)mSal2NG<dblNfh?U9*iJSdv!Q-&ilTFVgCpt5!V6Yiad8aQe+uYfmpLs4UfJ zL8_4+<AHKDdhd+;7O|M2uc|KNf1pjuWSvqueHZUEz!VB0gb*6e5l@p=I(YZFzW@LL M07*qoM6N<$f`&TIWdHyG diff --git a/src/assets/complex-sbgn.png b/src/assets/complex-sbgn.png deleted file mode 100644 index 6bb3ee61de8c4e1523f9d416a9b708f9a15c8cb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}~Vo-U3d z8I5nRDdsUbO0YiQ7rX20AJF|!W=C9m0h3-(`|8!Jjy%ZPVC!V-n>CH)uu;ivAG1CF z|BWlppZVhg0!Q}F5;?cE;^-s!&2xSqFy6P0cbZ7X$2R{p?N7C~9Tc9%<@F_V<6*JQ z4|jH%RveV;-@kWB*pJBvRl_R6)&HDab9%!r6N9&wcOEo6mT%v6bmQp@F;XwI4Y)J| zqPebI3x6P8{B{1t%IQzj_}%_Z3|#M0_~W8}@#6U9%1S`+sO~SrTNS01-sz^zK+iCE My85}Sb4q9e0JZya&;S4c diff --git a/src/assets/composite.png b/src/assets/composite.png deleted file mode 100644 index 8e0ad13f06419fe3a9884b03698ed262d297330c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v~02o-U3d z8I5nR?A2p+lwf<n?!Lms!(@?otD6YdRF_2`C+}eIJ+gF%?Dhqd0y2;A3MdKn&QJ1p z{dQyK=D-ubO(wso`+RQuWPNWJ2>6rsjQ{+sw^0^1H@*{)F5Meqd9WxxG5W?^?KKB9 z#g6et9<ozAmbd(lOke5zN%G4~78~CWcNe|3(Q;M7mFu~W<@{~ULS9L&j>yr@knWXz z^KjFL1L83m|CF?69Mip4(9GD!W&DsKz2e8eqzjuKdfh#{pZ9vXP4=-5!u^Mz%kNly k!uELf(S02dQ2&~H^)~UH#{)GjfgWY>boFyt=akR{07y%I{r~^~ diff --git a/src/assets/control.png b/src/assets/control.png deleted file mode 100644 index 5c63da9498828bec30f3d515ae3bcff9bd56a10d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}~o-U3d z8I5nR8G0QKkU9R5|Ek=A**iRBiyNKhR&(oLSZQAH!DMescwkJdi`9;@ssJx(-^|}a zKWevqVEXy*p=zZI81P*2ecPZc)w6M>Y*Cl`p9jqRQ=_eBKbAgUaa3JywOHu}>3E*B z4(E@q@7puF_51h=cbDHyDBZSYzwd?vLa(R&jx#tUo%TbE`#1BSM}PP9u6?)e$C~b! zn_8EJYg!$wk9&0Qn0W5|i}#L;x7VdKcj~j%PSKFMbG@$v40f#0t+rH&HLbjQ80aGg MPgg&ebxsLQ0R6{wp#T5? diff --git a/src/assets/degradation.png b/src/assets/degradation.png deleted file mode 100644 index 74f7e7d7caad7f2fb39232edb2f64e9b53c7fa7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0h38YK~!jg?bbg?RZ$oK@Sjo`6hUSpO@cI}i&S81Ac$^_L7UK~I4Xg& zI64`$6o}*^H1rRGhQP51il~TJLt7Cg;u1ETt3L0$@2TOvE#D6gJkI+L?>p~)-#M2M zLI@#*5JCw5M_Wa|(}}bAc!)La7{(Az;tL+5mJh1JO}xjVw3+=}#yc#aCz~6_8{9=l z2|2bjh0ScNV*<yT#17y)ZfUHL2l$4Sa?)&W3LDtU#=2AzV+FC#aJyiB8lTZCmC<Mk zc{Y{b!1mb0OI*z2y0f^`x%FfCAw3<^X71DY7%yP_XmbZwaJ*o?Lu%63n3Mkf8h+Kq z3}P8K@HU%!h3iz;#I0=QKG)ZM4<2F$kLu>za_dUhs)U}SFN-^8w}eh$O*)D4rg5*_ zl=o`Z#6^wx1hZJeQ;lVQDqA~JR<cF%$LM51V%z%hQ|g5?x$n;7g>;-&Y7&2N$H6YL zOH#vrk}kh_tm3y+Qacw}m9G+A_;83d?YM@k(yK&GDzC3com>bZgb+dqA%uVN7x!pb U%x7ppyZ`_I07*qoM6N<$g7x9sWB>pF diff --git a/src/assets/dissociation.png b/src/assets/dissociation.png deleted file mode 100644 index b4f3e4e9e3f840007ce5dc118412a6e716f59ea6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmV+o1M>WdP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0>Vi|K~!jg?bg3b8(|y<@W=e{a+eF|AYv9ls<B9^1RPQ!AU1zNJ2?u0 zOc4i*gXj>{p*VCArMf5%`WK{#MIn<$QwgMW2&F9!LOUoicY3+JPnRl1amq;s-_LgN z@;=YY`{j56Ns=T<k|arzo~o8d+P5FTh~Mw;t=H?e5aJhr&j7x<9pv@_UWP)UkM(*z znn)y^fq?<daU7INC3AOo*X#9qi<L?x383h5t}EUsiek;r&)2KfD(^B)lM4$AbwyDu z0B@UJ_O4hU5V+dg+apPqN+qUJDMq7F4h{}7nM|@+ERrPm_xBkH1g-$QYIf-xExN9k zmzS3XNv^N2(=ZH9PEK-XXNTErmQzzxGz^2QtE(i*m6a8t>v|c0r`hEJ;B{wbXVq~W zo}8S}Fbp0X9NZhBLZQI6wl?PTc{+~6a5#JkAkpmd@cDf2$H&KOBsn%V#_8$ld*yFr zG8vAJj*=uNCMIfrzkjjO{D!YE7!3ACA`u?|6bc25jEp?EHjzl+`1lwA(AU@J3kHLI zjpjFe0Ft#@tp)&46a|)LJ-F7gEGUWs0I+QvB<)7?8$Q70<>i-rK7S1W!^6Ya-rjz2 z?bg=T?F}6r9bH!{l|rNWZs=E4_3HfmoM&fe?C9v=($dns`CnUGV|#l$Pft&IadAOS z)2;x#Xm)u3KqwT-CX>nQo4-wWcQ<3P7-wc?I6FJbp`jsmb#?LZ@Q@^#N~LUF*FQD8 z_y0OoRsEgGWE>#`Ez9EO<|fnWG}GxcH#RnCnkI!1oSU0-R8{>0Al&TIclBzT_9GsT zo4H($LWtY(5kfGR%P}60o0_Km1Q2m6)a}Qd*4o<o&gb)udpw?CPfyP^0F=w+Rw0Dt zIL-&#wif}IZUsKpbGik<a{$l&eSZh=4S;y0JV}xyNs=T<lAfTyEl;B^S8IqU00000 LNkvXXu0mjfWRYd8 diff --git a/src/assets/dna-stability-element.png b/src/assets/dna-stability-element.png deleted file mode 100644 index b371b92b7be77a69fad02280452d19f20addb983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmV;Q0bu@#P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0aQsuK~!jg?U=Dj13?gmKcj_^Gzyj$B9UNWW8)+E1U7bJFIe~rB38B% z(#F=x%0dLe!b-FiL~O(+772*P;*jj#C3oiLHsis3uyDovJO2;6+}wd-7^P-Ps9yq( zfVrId9&iZU2z}({4Co8jqr^Z(A_f+Odhs4J1sM3{0=W8P?Fz6{VDH>qGB^qcW9T*= z-J8UK^a!bA0kp9I+E@T>EP%uE7`4>``-(WnAI#c7Ekm;nbR5lVNP}5y0PpxA9)QM> z+A7c@IgK7q#AynPz%9P14`9owSq1K6HC<qDqE1to1)BH<zkw5ApU7<d8(>YvX$HF_ z&Bj-Ye{_k5u?{?uG~OY)z@=awc*dXk>#B}&aLOP+GgOn1Z{oi5{1vK+jS|{e0BtOQ zHWok|3!se!(8dC!@G|1LP^Lp|4BQco)Yn9R9zFy1G7O`v`~V}wW6{1^xOD&k002ov JPDHLkV1kz@vReQE diff --git a/src/assets/dsNA.png b/src/assets/dsNA.png deleted file mode 100644 index 17aa1f93ee0a525b8985295544b089dde4800116..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$qWpPmYyz- zAsLNtFYoo1ag<<xpf0!E)#ahq{w@!l$^Q@hVC<SPAtIx?-dSO8<~okfCH}MBHeB@! zc(cZ(n8jwxr74}Q6HE@OO-OpS<FUnL?U>cyGt<8ReXH~S%^4vl4n>jomTFd6{vRaW zEBe`UZwhSN&@ZKxd((MM^2!xyyCaWP%FX`1{L-PgN9=w@-#GRc^knXFbN<CJHD-O{ zhq|bI$-|OyPYbu`zCJE$_q1?x^1H4r($y=(?!B}>^U(a+?iBxz?Dz9#-ag=%zVZD! ztJi^|?Gdjh?VTWIp!3#acj%uZ7R$PFKA5G}95C~`arAc0-S+Yw2X*#6Vw!x(vVL;5 za)gU)|NG596JMUGpCZP@e5rE(5z~FiYU!$PJnV~PrGLu$a{p*bcQwDa`qO`TPQ?}h fppRfg#!v1}4#UOqVQnVBU}f-h^>bP0l+XkKXy2+E diff --git a/src/assets/engineered-region.png b/src/assets/engineered-region.png deleted file mode 100644 index bfe655413bbea1e3a686a7a4d62a459de9740775..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v~0)o-U3d z8I5mm81gk4NF4pRzp1%x;_erWUlwh$E@FG1bmi!ggC@JCh+H{nwnSd-{d9o^B^CXf z0t5sF1wG9^KWDnZ;C)!f@ZAByg1ZOgD*oNP=n&B;9MJzM?~^5S>C61Cd(F}xPRxI< z&b{E%^}lCgIJ`HXmeD#kZNg_R1M^;ECeaPcn68B!n8g(l%$Ti};LEyZWy97_r*AZ7 z{tx0SVU5XOQ#IctknfQC6)85)tA`4bvw7E?d35CGjT=HB7kpsy-Q#pM{L55ppjQ|? MUHx3vIVCg!0MpHH7XSbN diff --git a/src/assets/five-prime-overhang.png b/src/assets/five-prime-overhang.png deleted file mode 100644 index e748408d512c3e33c13e513abf90f7e832cf486e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}VPZ!6K zjK;Uu4)V4r2sm7P|1I%NB7Zcu`R|R~w?A&MmEgX}bzp^p%s+1n!2}PsG>1tlo|8h{ zr_XrZC@B%wrJBa-mauzQ0n<0PV<Oz2Chs`#|5Yz{*Re@niVgC)OD+UivaO6v@Bgt< zX1>E#cbOC6>`recgveIB`h6@;HCQ8DyJ+{+2|yE7rj{_sXFJa9SoWd_=qd(JS3j3^ HP6<r_Sp!fL diff --git a/src/assets/five-prime-sticky-restriction-site.png b/src/assets/five-prime-sticky-restriction-site.png deleted file mode 100644 index 178080674e1f4affbed425bc61db43079b948e83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}|<o-U3d z8I5mm9OOJ?AaV5L{zr0;E>0FM;VUl?(tos5xkN@?;P{6mTN4E*;byZvBKP^Z<ZCQz z`nNQ)ojLPnzOLPuZwucw?E7PJ*~)<DZu>5;(=PeqD_2kAGT`Q0@Qfh~N^Cn7bDbgg zq@z&Y0nQ!$rp3%ThZlch=u7UsqFthEd^+50qgxjHIUdIAllvzxcijEjKD+X7fb0JK yH|IMc8xvOC;Ju`7@~*h>*?+(8n>lmpcNWfQ;k<7e+~GjKFnGH9xvX<aXaWGKz-wp# diff --git a/src/assets/generic-sbgn.png b/src/assets/generic-sbgn.png deleted file mode 100644 index 887ee627fbd6e29cfb240e2f620d8406db7365b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 zcmV-70?7S|P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0qjXcK~!jg?bl0dQ$ZNU@t-zA6Kz(C;6hYHS{E*CQKJF<1S;MZ;!Z^C zW#<J!Kav-8E%k;JQ9(sFY6U^-y?9-_n4?i>BbhU4D9j(u;t=L}pP7@Hc^@*FOeT}b zWHNJ>d5QHFVKo+`UOe!%cs}AezNac!b^<H09ow)DEASfc@l7yIn8*N@Vi{iIF~)GU zc%L<DIDtpPN?yQWY!tr0{}{lgV$8)t;~|cr+6BLVSb#Ia>RuOCzCVF(6+3YQ?{FHG z1iJsQ7WZ%mjnv|Q(I{%%#ZW5It(d}D^raGQLtjyA3eB=&8}J#s$_hoW2cIw!D^SA( z4yJMx!6D(;joRGDg=4PQ+{9?iz%lGk>m`Z<xE3?;Ee6wiiDC$oGyOP!7LCNxwp(a7 zfu|Tw>m`a|Jc${2RJa{`&26FW=$I;A2uE43ID%(Nv@9dSWwJMwqYl_t)Lvg!s3~0Q z=X9aTnuZF_3mw4bRHB1IgEfvVsYIutS=1QEn$+SIoD%MbTS9-7qJOVpx3F0!aZ;DR zbic5<9^eNq74HqL2-%Lh@Yfi{<wE1WaME<VS<6Ps<=CMWDOceQK4|6O-=^zWB1Fmw zA<>QD3SPw;NFC}InmN>e(F*lH6W7gTGMP*!lgZ3QegUaRSkH8Id3gW;002ovPDHLk FV1lP>{TcuO diff --git a/src/assets/halfround-rectangle.png b/src/assets/halfround-rectangle.png deleted file mode 100644 index 079b86709eedb138621d867480e0a460027c170c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmV-=0fqjFP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0WV2JK~!jg?bkU<1VI!A;LlNU3ludrFcS>L6L<mxBLh=KF!2)RieTgk zyo8|`7#eCafr5;vxZo0WH8TtdGoy65ybp@kRnYMM>gu2fA%qY@_`mv6UB*5JGxpMr z7p&u`TsXk{FB=Ci(3b2FyI<Lw3T$GnoU{k1<Fv|ddQfkj)N*z4T_Qkk5g@k+kXr=E zEdt~g0dgw?ytmDNve#7mX*T?v>Tu=lbnh|M5t;!mQ=O~4o$gJhde^!*k2l5V*~VDK zO?9G%6*Lq_ewF5>9`>-2o}Y1sb6n#}5$*{OJvK0e(JtQ^#{_1vfT^^8j3v#Zk0Q(# zF66(ke>NJ}Y2Ap{FHq`N{0obi!E_omz3pP@UfYg!;1)NEd+>?kzTWEz2qA<JLilq& Y0Epvz-BDC|n*aa+07*qoM6N<$g7k@^+yDRo diff --git a/src/assets/inert-dna-spacer.png b/src/assets/inert-dna-spacer.png deleted file mode 100644 index 86497831eb211ef038b3777e8ceed58c1b9d5398..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmV;>0x$iEP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0)<ILK~!jg?U>C@R529Ce=|%V6E`fC!JWjH&~aSJhrxyK;75EJGKnjJ zr!Y~GjFDkbpFjiXMiW6-0*P_q$D(a0y{C6N&|X8*U(y8HbI<voX?uEmA(P2uGMRHs zErHK5U<SAdv~=GWU=P>@ekX`|W@^AZunK$!{(9OsU<H^X&5w5~I>0;pqJ8Zx(5_zY zF%94`eu0O;d)*F8?7G@lrAz|rf|w29J}@ObGo{D+!gDXR&q`=e6u*sH*P$!`I~0?s zWG19#GXO4(;G+rj1V7!VN(DMXP}A15uwgV&zqZfM_1K~fHBMHWZQ!{R{59n>A&KvC zayh*rQHh;*0?z>xz|+7aB=Kg}Zae+6DH2$<0&H0QAxV^pH*8vC%dy3ep-xc~;GQ#H zmPCknfQQ!jzK$7<tBwGv&Pz%3DOMZbW^XxmGcgmmX*vE;VkadrN~JomY&#*s>LEtJ zCF}36C3e4nyQu2q(gW@QKTDpseM_@kAT$A+VI{5(j0^qar;HZ`dkGzs*bO_RhMg1k zOW%z%tF~}AaZ9j~#IFO-2uos`gqygIx=|VD4+6xS4I6scJ+j94NU+>itN{H$@rIBj z2G-b<*y5r1DzOkKJ|u}nr~g)p1Zt>jpb4@Ayb2Uwmc#(~Wc|NI!uxXD2|kK=LsQ%O z{9KE!+Mz21?GYy4Faf*}{47OP>Y+h#-S47ai9=ZgK2n^)$}abl$OqOY>a9{bC#Ln- zKzMGA3NQ7B2J&(;?Fjgw+fj+#693_|icK4J4fF~0wJj>xu%XmY*T7}eWyB|XA9YC0 z5~)<CsJC_C3hLwTW!?9g<Bz+462#18GMP-~eDV)Zt9Cs5_!=Dm0000<MNUMnLSTZ{ CO-gzI diff --git a/src/assets/inhibition.png b/src/assets/inhibition.png deleted file mode 100644 index 965474997605f3db98b52888a482cb0d7a6875dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}tPZ!6K zjK;T@H}WzW3b<U<-_dbL^9i5cvWC|$RxRMXwUCKxVKeuM34UhN#ByHluUImdQ%uEk zl8R?m(Vy~0SxF1V^+6l1Gny+f_6L0sxUYKc1M{*|cX(oyyK8nZoS&8Ow!wIV$@QOc zzaFj?C{I|+$@ic6F#n6tXMaxs&6uR(dXwRz4(pjj#{L^X$1r%h`njxgN@xNAz7S3M diff --git a/src/assets/insulator.png b/src/assets/insulator.png deleted file mode 100644 index be7c50803e13f321a389662b30091d05e50e473a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmV;A0dW3_P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0YpheK~!jg?U_AJ12GUrU-%I%^q?qoImEUgPLc!A<Ps<~Hz82w5LAE= z^rS@*3Wb#hurnSH>sXp6ZIzwz_p}phf534ZrzV5MZ%4p2FzhKyj91_W_{=Sw0_z<) zrm>KF34u|r@jnvHav*H*2rO)}i0Odwwv(g+3t&<dC!bpc0;v&dg60LJBNSr@>=*X< zB5ai^v;qU*4!F=R{DV1gMc6X4(2md<cHsdofm2PPR^U)sXWp~)Kd|8(SZ3Co08gb0 zTL~<IkIb6XeVCZ$w^0|UjSJMq1#060wQ+&kSltU9_f+!>D}iUDKG|qTXl0tBpr=;g z4R}!2{>44;t|`=x(3<c_+3Z982KB;LG{22DFCZPEj_|IsPddp-Qh_mo7p*l&jnGSP tDYg^MlDYyjg5WNEVwzRX;5d#G;Tx@ML#1#T>t_G}002ovPDHLkV1ints3!mb diff --git a/src/assets/intron.png b/src/assets/intron.png deleted file mode 100644 index 67b0784709e6fdb463dcce55f10be14c6cb06462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmV+v1MB>WP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0?A24K~!jg?U+4i6+sYyzZeBIn24Yf!O~!56N3;CB_K9pAy^992o_O^ zXbkx=CTi3Wh!GS!e_F-HLJP6cMzpa}62U59)QBO`K>Uft-s9%>t^0QN1#I?%<ITLA zpPReA+1-OgB9TZW6911Hhu#b9^!U65I)V8m$X^Q#0xbcyGe8$G;WOF|ECw9?kr!;U zFEC%}cxVS$X6fq#6L%<VeSA{dm*rgUF`fp7g<b>n0Cm6`%;W4(UVzO@;0drd(|-Zy zfuF*r71$pd@F4l)dha+tB+kzRo7I<GPBZXF#64!6Zx`pD+s^h7s>BuGYbLJ*`jq}I zUIPz=-V3Y_b=DT}4Hyyn5n!t_hKp{@@BwJV-1Q)|1pr(FrZTyf@<$%SIB-ws$3q=s z3RsmLCFUYxxL7CT@1agH1)K%yGkG4k5fQ_tg<_|<8tSMmU=zh5GX_j5W4O3XzABgi zZihN*3+N~B5Hl$5l!rY)o6vj6U+9Wx3fKZ17Wy!GORa`MA-@6cYn(L&bO0+dc?#2w zs-+FsA@nZHq!x^(0BKvAIjhCa|GU}%K1PU~Y&<;0tcOZmq<o3*MN_~ya98M^6nl3J zi@-UdHv<PW0kmDHk9;Gu7C5E!ckvi_CiF}ASIGsm1xy0Bgnk0psEpyFSIAAkp-{(| znRp18&Ez`ZWJC;`7r-N-cZWL06fj3|{nHQ;!^KA-*Z<SXBBp?LOcw&v_QoP&*fdd` zBu7IXwFNW)XM}zSc&CivVu1X`{R~_Wb<`Gcn!I%`02h@0F1BH|vLyz{-?57L+EqPp zROrhvU8lrN;6rF44@2ZPav}Sbd0REX<fh(t%mN#tFF9v>V7}l@{g=SRqv*fsxM-|w zQefKt!}V!#0JBDS4X;Ju6=nwhp-k?g7Bhr)WwMV+%<^R^nnog#NF)-8CE+iLa-8&U Sk5dr<0000<MNUMnLSTXvO<p1Z diff --git a/src/assets/location-dna-no-top.png b/src/assets/location-dna-no-top.png deleted file mode 100644 index 57ba93e001894813c7d95b485eb48601bd0a35ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}hPZ!6K zjK;U;H*y|!5MaG{km=~VXR`v`wN7u`UGR=c#N*`B=N_-mAGC?MkujaobCODC!dv5| zY&E~PtWxh^b@%|A&F`F0e=X)~2kTa!YS?d}aJIpO`4W$ZF*@VNL*pCyTSH{o?j7LV i(;#cXRqr|LD(jza&ft=;n%6*=FnGH9xvX<aXaWH9Ax%pF diff --git a/src/assets/location-dna.png b/src/assets/location-dna.png deleted file mode 100644 index 390c140bfb0d192cbf6f1f9bbb0217f992bdc6a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0qRLaK~!jg?bp9*6j2n%@y|w$2D=0dL_vFPY(x|-?6lYSFjz?N4gB)} z+V~G&Km=_pjFmyVh>e0MRuN^@U`U7-cb2`gX7*2JX2-z&!iBq+bLRfeowH}oC6P$% zXj(Nqb05y(4Cb=6FL;6HSgT>rN|?kvR`91_tl%>CG^DYR8R2w`g!hh@n5|;tDpF`a z7I8dUTNhGhIosnX&SH0D^F~Os)e1C};*R|3KE~lK?2h0`kL~U8NG#?UHgpBu$3!3d z2|S4GH-xv-7`GxZAB74uh$(!E{BG2yZV28*LavVBw-EWgtwGmNw1k@85prq--_w!b zZzYOJzkD6Ulu-LSd>_I0TQuLBJ!@N(31Ah!qTh2xhFfqjn*UUyl$HsAeEyyv!S6ye zUoNSk6xVcf`G@?;7I8>8^^V^{ZR&<#7VSvPD@^yXpT<&T-^PKOH4fy8{MYq8F3SJG zCvgcMdTi&%s<eO>9{IOnYYV5nB>$E=<Dq)m`E9WaH?e7OC%TF2na_X6Nj#J9kK(@P zDNZz|ZUkm<PgnfiY^`$2eg}&9Dzpe4*0QzAsVji7kpgI%6hPCY0GcKR&@?H4rbz)b zO$wlCQUHDUTrjVcIxp6*h3n*^aEV{9aj!%ou~YdAwy2N=<pvI800000NkvXXu0mjf DnR^Oq diff --git a/src/assets/location-protein-no-top.png b/src/assets/location-protein-no-top.png deleted file mode 100644 index eb9e804fff5a0cfeb91b86f45775405db1129270..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0uo6?K~!jg?byF-6hRoq@sCLkR0J`Bs30Mrg<2>Q6|qU>i6DrTjfK6S zAcB8@on=~EOVNM{+L_YALO2L$Pz!&62r4AOV3Lc)<hT{Q+r`<*CAeQW*ky+IdH436 z=bc$9Dk>@}Dk>@}wk+Ec#=eX?j$s%pc#CN~z<fgOXs%$b%kMqL$`I-+BgkLan=?L& zsRHwI>5mQ2fd+Qsolq|K@dQ6`TqxaL_=)F<a!AHK?NXYF4VJ2ey747*y*)PAKx}{l zj9>`gup75CW3M(q|DPBUoMuI5Ct4QP!=~h^?l!uHXJrVbS_5+h=A6g5SfNy%xDR)5 z3N<VUmbniXGV>Zjr`}Rz%WEMvSTAgJD096U8!V-b_Tw;42wiy(E(&GUqLENPitA|V z?n0|Jv5n5jx6!GdWmkZ^@*kjy)3HJ+4>X4`E_CHZyvD5HLI>C9OyFk19FmZIJCm`& zHrhsOLI-Z~IW}NQ8y&-09KoPaMo0Z=qmL8nM{z^`BA!&j8cbC};|1n46KR*i8N3mi zRqG$07ivEH7V5o9uqZVg5VjEm!V&U?_5)1B3Z!<SWqibU;dHiymznXwSb>eU(UZ8E zxu1;<n5q-+$F24FU$H~jHq^DhMJ);4`ctADqIe{KA9Sr($ra(D&dGnkrLu%lmC&$I rLZiY7Y*9#jM)<_|E0JzR#ec_d$Vr;|DBY5800000NkvXXu0mjfyfzU? diff --git a/src/assets/location-protein.png b/src/assets/location-protein.png deleted file mode 100644 index ae32b406c824a2c1680d730580adfbe188648516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 817 zcmV-11J3-3P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0_I6XK~!jg?b%OgR96(o@lTBLPrIsV6s@43h_&4m{~$^$bfH)TSH+D; zckU|wSx9grZmo-Kgt+tHN>nH!-H50QvErhjh|of@6>J4dG#ZU2UEB$CC(X=z$(@_2 zIA3`1-psl8{O-Hwo_p>LZQ8VXr|HPh=Nx>EFR`fd*&|%T6}-yevnkBNK0Lu_o$Cqq zqN_z3>(VW}-Fm{uUpKIz8IGF~LLcHfzKA{>7DDE3#m8s(3Ns^{J3^SfXo7|$PN;pm zKVr!Qc1v+-oNfQ~NUYE2c%v%lBxW?QpMg`6{TpF+TE?+R%<n=5Dq=1kM(vJfQ&)of zk&uIvXxAIHyO%*%DLRClJ|<+tB-(C_+6_raCXM2?h`B=UALE}%w0#=g&#v?}B~k|P z0)x@>qI!lC@JV$4TtX^M8348MyLA%nzKQPdCTd9HkZLSHQ~PG?u~>NPW9@pgsVl(( z3`AmXVO|6KdH6Z9AHe*~8Vfm~c6a?1->NR~9xTT${5H;Z-*k(ehz^|f--2ye?Jhn3 zIxSB*KP5Wx14fjqMu)JiB}xlekDu^X@gSaKMXJMGQ`n6iScS)UfIqNF$XsI^S3h=V z(vXe)s<ZG*YG<h%S*p*`)XruWn@pKbtQ1aa9|-HB8;2vC8yWp4u@--6yod*c{o#Mf zam88aOv}`jU@Km0Jb)3bOLdfUC;V8*^F4Segw!A|V_C(f4|_6d$iflTS-6<m*>tDT zE^LXOAEkDfGmWkm&dHw&W%Qu1Gp~(oE@bqd#P^D`&_zvHgSkRzQwf`qOun1KdZB=e ztI}se%*V5^xm5zo(j}aMKN8m49NbhLKwqkZ+*xQ?D5IYWr?Vm4j=pbnelEpyr_nXo z89gWete9&jUML*cJMgz~fLSNRd}qaGNGRt1%%mZS^NQ=B?^-3U4CmAr{}9`o<tSGO v%@;ywsc?uH6og+D{=s>j$#0uB?;ZaFt!498iG1f)00000NkvXXu0mjfLeGf- diff --git a/src/assets/location-rna-no-top.png b/src/assets/location-rna-no-top.png deleted file mode 100644 index ab9ab66209037598900337110d69053859a44446..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0f<RNK~!jg?U%nVLs1mRKNutyQa^Tsgv3N5=_C<@SPYgLy4(C0Mq!ZH zj24Ur36n&`C}?6b2}**2R`nTPo6{H5xp8t-?k8#T-g3X6Z*Ff-FGM1dNF)-8{8@T| zL2rprrhzx$3n)0ds2KvDfTZ!+@zv3@ipYNgGrl@{4v_-umO-6H>)y6J7l09?95cp9 z4{vi9Zh(G^pe~C=fimeKo^QP8fEsXYlxM~UvI`H+E<wy91!_Qtua1rh;2kM&>Z_w; z0H`AJ39#sDq~wUKe92cwPX&=L1Kn0ZR)ef{-7C^UZN)j+uh5pSj-GL{lQ;q9T#W)) z0_sSC3tycu_K*S}&MrYbA_bl;0<3<80M1AUT9X6AtY0Tj_5fFb9#<nJ`-prUSn$=+ zQ$h-?IJ*R~ixjx04X>1w{Jc{3Sp->KDer(+WcucS7vRJw&x}oE7cMOVEaw2gb<4Ba zUur9cNvCgf2ey56^sFKB6=2j?M^6zcu<Yy-Odgo>mWV|DGvApzY#<Gvh{^x}002ov JPDHLkV1ioX!bJc8 diff --git a/src/assets/location-rna.png b/src/assets/location-rna.png deleted file mode 100644 index 6e7f49c35940e5ea26ebd0e53b45f356e4cbd0c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 zcmV;y0zUnTP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0(MD6K~!jg?U+4i6hRcne-|||*vJVUL_sY?L7O0mF=%0>b{5*D)=Dv0 zNU*m^v`eFf5G7ay8xgdz&{PJjj1l|*5j+CHk5hxEF<Q(n^XAOn-R$nmWZ{0WFuT0B z@Be0IXWkBU=+L3iloZ~%5jX}M0s5k6AAu*pW1y}OGZ(snVPFCHn{X`v7l93dG$yhI z)4NH+8?R}gl1Jb?rqCwfDbO#T{l-k0*(k<7;3%+O*gVHfv&9@VWa1`n@7@P?tYEhj zc+g;bV|64ZvmaQ(3Yq}An%H*%w}t%@W^{saU5I&)S%F&73w#iMV`}Q!;FS<^*~4!{ z_`Oun)fOepnjQ-|?BP2o{C<*QF=;kmThWVI`(wU%_<k1cp6Fev$dbS!@I&19B^j>3 zHqri0hNU!10^rWy6CQpiMSC`*hD=<+&gE~oJ)6XKOs~g&BWmi}paRr{m}fw_iG3NE z5%x7;tFp$HT*BR5-vXy`Kk#ng4DhbOc6e2lCQt$<`M+SRVS0N8ca-Am4m#z0D%Jtl zfMr@&qRYT&<g?~D1U$m6k7V8R5I7i2od;KO#gAhC84AN3R{SK2b3N-umV_(~-e3|b z6l1s_?NC@b{#1Y}Hi<g0C#a$n^aEe9NsNb;laBM)1YT$a(E5mDPKoxsa;)6Bi@O(` z4J*fw0o<~p${IY4YsNjS_+OY3qfp4xiVK0Yq+$x2z&x-!tQ>z10DrJayaqOF1k$R> ztC*jd<I#N?v#Cuh#ZzM(I|?eN584~qoM`tb$I6{uz$feo+zKnlA9-?J2lj@Q<IfN_ nfpdYiq-KDE{KR+YP*nZ_y~oC8+oIzu00000NkvXXu0mjfn&CwL diff --git a/src/assets/macromolecule.png b/src/assets/macromolecule.png deleted file mode 100644 index 0c1a492f23fd8365061507e08a44b562bb6fb3da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmV-80>}M{P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0qsddK~!jg?bo|&6+sjS;LpU!m53UNAZZkd7NP+`gRjB}7AX|5(n3<$ z1hKSH5flRX4}^5u2@1A?79t`RYN6O@L`5a|!WV@2AX>~VBzSW(yOX;X^EDSPJ7<5( z%pT5?Wm%SGS@vJ+tU5r9HVon-#_<ck@g0wG9y=>b*Til-!c&~acC5rAtik|BF@amy zR7uJPPT?bt3cE0yTK)RZI5N+<=Hx7%p*M2fHoV7B>Oe8}<1N+{T;DJ3#O73iVl2ih z94J}m1ny!%=|qu+g_p6c4!pqL1ht~v!J$O8&IqlyWjgT#U5V;#5sqWa^d-Jw4bxZ> zyRcc$Ze*FzJyMy%B$mf6EcyUbLKjM<UD$=mgf(Z?EzCEyMD=<V+|i;t@Bz=UtKj;X z286B_t>^>5W$DI%AzVpRYtDM`6&p*|8N?fD->IhBF(w?P;SzPa@e+qqgo<$z59$Gm z>Jnz4u_TEiv<YMI))F=P@dOvJFhQm$Jwm^3G(GOa4&j*ntpj^-37>Fmz5+J06hG^~ z|8foA@CEmA9S?<v9>+Q1Q!|O8Gx!bM#K?^Q`*0iUgn@6ZaMs@mUu~}o-Y>ZgLI)bb zYOD}O>j@mMFjtiIxGEftY23rXN)wgP@=lUvS(as4mcSoR=TYP4guHS90000<MNUMn GLSTY~rvMB9 diff --git a/src/assets/na-sbgn.png b/src/assets/na-sbgn.png deleted file mode 100644 index 079b86709eedb138621d867480e0a460027c170c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmV-=0fqjFP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0WV2JK~!jg?bkU<1VI!A;LlNU3ludrFcS>L6L<mxBLh=KF!2)RieTgk zyo8|`7#eCafr5;vxZo0WH8TtdGoy65ybp@kRnYMM>gu2fA%qY@_`mv6UB*5JGxpMr z7p&u`TsXk{FB=Ci(3b2FyI<Lw3T$GnoU{k1<Fv|ddQfkj)N*z4T_Qkk5g@k+kXr=E zEdt~g0dgw?ytmDNve#7mX*T?v>Tu=lbnh|M5t;!mQ=O~4o$gJhde^!*k2l5V*~VDK zO?9G%6*Lq_ewF5>9`>-2o}Y1sb6n#}5$*{OJvK0e(JtQ^#{_1vfT^^8j3v#Zk0Q(# zF66(ke>NJ}Y2Ap{FHq`N{0obi!E_omz3pP@UfYg!;1)NEd+>?kzTWEz2qA<JLilq& Y0Epvz-BDC|n*aa+07*qoM6N<$g7k@^+yDRo diff --git a/src/assets/ncrna.png b/src/assets/ncrna.png deleted file mode 100644 index a7bd969b6c19c9b3e72bb850614dc7a1a539eb28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 507 zcmV<X0R;YuP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0kBC#K~!jg?bOYSO<^1d@Xy>!BrM2K<87rZq_B{e4Jiv{Wo6~=EoEV$ zWaXv&0}?A`VI$3y6eXFJDK=gfB1{NHlksvbo@aEO&Y5#=b2s$+?9T6eJJ0WVp5MKM z5JCtcgb>0%s@*WR3j6RK9~<V^;6qJr1v(hP6LcH))0f>+(_Q?)iJJUL{LJ}LEUCy1 z;~Bo>>}9kD(C=TC;VtfBEl%gfj#lJ5`TZ#z!e@+?G&Y2rc!%{kEN!~(aQb#mI-!xC z+6Cz*4i>UoF@=jgwf*>o<Av<8TtCoLJA-L#nRC}Y?%`^o*1~mZW7~3Vu{6UEv9ORo zn;YAapZ7|?rSpZ{0zAe8101FMxKdJIgmJvVc3i_(Y%Iyn&)<28BY2Nnm{*eBBaL8Z zu8q$a$EAvQEAc2VI4#Y5mDQNY**jQ1OZJ9z3yqYWLa&xIt7Rsox!;MW(g|02h0W5Y zCu`Pxfps;RKk7Enmi`^8e8cUgi>YtEZ$mZjC!`w~E7aRqI_PGyU3tw-O~Q3I@ERM; xKHoFC_|#<48dG>afbWD5LI@#*5JCw5wcoB%SA`;Ms3HIW002ovPDHLkV1h()?qdJ| diff --git a/src/assets/no-glyph-assigned.png b/src/assets/no-glyph-assigned.png deleted file mode 100644 index 853d305b397f794313c438ca3737324a93467538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}~ro-U3d z8I5nR8*&|T5O90g-nDe<(p0}Em2WRsF!WD2<n)F~Fjq`zk>U<!=LfYL-iRDN_ius{ z_aqh1U&kdY>eifg`Tx?pKD@d!^ey8}Gsg5U2NqsA>~df5#<X3mvl?zHGBT_)u6mdM zRXO9`CwoQa6k`W7II-<0d&jT2_omk}<k?r1^}KH^y>Lg%PE*x$lFHI5##Q=qpT(mC RqJWNM@O1TaS?83{1OO;=St|el diff --git a/src/assets/nuclease-site.png b/src/assets/nuclease-site.png deleted file mode 100644 index 915977dc07cb6cc1f046df262354d481119ffe8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmV;q0Y?6bP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0d7e|K~!jg?Up-E!$1^8j}S#Fl&pmUN;=xmk&4%`4NA5Uu>l%H!y>!{ z){p`zDUyIlOpzI3$DeoxJ2OV_NRjL$@A@8TG-FT{#g_^228{oZF*X^KRvI}l0=|G0 z*Z|^@A!ar;S)-P^HDUnF%)@;ogx~V1$r`lUumR`5N2bIUxNk5g<jc>2%Wf(j##KUy zsJx}Agb-nQ%OMFN;_{X%384q&EoBm0dQ#r9FVU;=mIsOgk0A@WAmrD)>p2k=p}c%A zB!qnV&&>6j$R&j0R{5H_f5Gpy<0uH_`}{QX-4y?Kr%n;752<|th)m*+`V+QH0P~-D z=C_T>Ix1(tit6%EEdWJ{mC1DG#AgWjX1B8dEP!huahOlc%);ESO{O!aK109~xB_l~ zXW-o<BLOaeTXs9v(z8ov)GeXb@LfXDpaP*$fzYTxXjC9HDi9hK2#pGaMg?k^Rb2Om jA@F2A!@yk><=^rHikH2T*R#M~00000NkvXXu0mjfe(b>w diff --git a/src/assets/omitted-detail.png b/src/assets/omitted-detail.png deleted file mode 100644 index 621a828d54b9ed0b24092b215baf71fd47337bc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v_b=PZ!6K zjK;U;9l06|cvudE3fMnQu1)QKwN&4uHE2eoL&OaSA)vYh&)W(AeTu&9Rjus$X;MCE p`+3s|)8E$1%*_1B4wPol_{s3(E#DMj_LbW}Tu)a&mvv4FO#sDgG6Mhr diff --git a/src/assets/operator.png b/src/assets/operator.png deleted file mode 100644 index 7823ce94bdde38a5be83594dfdaa636a4a5c8678..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v~0qo-U3d z8I5mm81fx55OBFD@8e%1W@TleHK#p$38SK(z|3Q<svIZIwXtT-6FKQx_9j!@1qk+O zF<C1}q_xeF<TZ}(I>4avAY(@LshP|dq@USYKIs-JFg&wYZ0GM;2ScB_CO)zWFV4$t zoWGdqUdVyjTou8L`C1QrS@*1LFc<ys?K|r=<Fx7rX<zz$Unk@?ZnP-Z*~}(s|Nqju znAJKTL)VAyY7?^EkUOVVoiY7E-W+WuB_*S$jFrw>enwX}s{p;g;OXk;vd$@?2>^9N BVIBYg diff --git a/src/assets/origin-of-replication.png b/src/assets/origin-of-replication.png deleted file mode 100644 index ae30432827ed32eaf86a9bd696ae6f90a1240130..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmV;90&)F`P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0z*keK~!jg?U>C@)j$--f4y|6;j$Ah>>#`Z+^~}m!(#}<mmwss1Rets zUGd?^6Nu=JZ{3Moy)I@7r=8AaZaY&YnP1YRX*>UO&h+%moI)fLi9{j~m?VJa5HJNi z0Xq8H8E^%B1AYgvS(^k{1h#=6K+ke~2eyC(!c1Nz=73Mwowgkxfo}8e-jM<?u{(GJ zeAdTJpXWBTR-?3mcO}m311rE-$(S*H@1SJdTdmm$DW>zssJwP%2{^$FqLDXIOq(5G zxPnd_*u_kzpv)BvzDAYJs-&1f%+_<!PC~xge4*OR7ip7Erw;@wv5VwqYLJ}2k7ot# zd5_w+YzqVX0rU@r{-$s7A=E0G8F=p70I(+Xuc`NK8BCLZ#btHAE}epnDVISlM{()! zPvBx8*W5Tqt=JhI+k+C<07k|6rK?93klIdf*);&kf3u4O_W<O~j9Q<nkDT>$mjSK; z$ee$SV}1_EIPl0~vo<YMN0n8GRiEOT7efDvYU$mVEn(omw>WSl^j`(gH?|T>9<`SX z+D|=d-;$u(z|6=AewvUGRI{Jyz9(R%>yn?TUFtO<De$JCIaAZed)dGYqRN{X!E}Dz zlaGB#QSF~J{1vq&c4e7-+Vp@u8f@;{m_hVVTjDj!*NJg`@2F(l9t}4287XEu$>SHQ z*+16jw&&LQ2ftM$T~r(B`a?@ro8TX;D+#I%+(b1aHm9#qi_|=xN@a+8+X5z0KX)he owNvhX?*0j2GZKkJB9Vv5U&qqz;+>^DbpQYW07*qoM6N<$f)->k*#H0l diff --git a/src/assets/origin-of-transfer.png b/src/assets/origin-of-transfer.png deleted file mode 100644 index 61421a2f854415676ba9799a22c5b9b739971a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 821 zcmV-51Iqk~P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0_sUbK~!jg?bt!66;&L^@z3+=##&TrWm2XaF{Pbgnzax&i74XEwA8Hx zBB&*{kQR|4fe1!BLvSUDE&@^1h3HB!g9NolpidNwmzghoH(i`}d1uBM@66n}&xP}a z!yUN)^ZWnioHH}$e`siEXlTgiZS*~B6J?l&wK#?W+{X*g(oh*r;5HuO(P;a%Q>TeF zo0y8(cpX!42ZOkdzdH2YhO;S8Cu;VW$(#5b7x2Ha(Tm&2sJX3pHAm;GRG)iT+)Lvx z;~PB4F`d``#+P_8(%K#U-x6kP5R-akei3fv7<`BuxP+U+=x4=U$Ga)>BUq0G_`X-> z*I_ti<}SX)67;9yCt)e}3Ckkx_g{wjp0Yxi;yCFZVL27yH5~Bdv(hpS=I06Px1Dqd z%PVRfk-UK+%&fs<E`2y3C47MQDr&`RK5oalx0%nHRI*Ph>ZBjo!ztYlx^|kwFHw@y z6*aQnHvK8>Q{5WPVvgh}EvlfAWxmbI)PK{uF`LDXD8cU)`ajJ)Ve4==irHA%X%0U{ z;@_3*+sS;JLs8rhWfDv%5HmfxzEVPaH+GF)w}g>Bm=pV3bp1w&9EJG9*yyY(*yl6J zkzdy#ep3{Gv5dJQGf;*1M}J$`fFFC5r%*jGC~TQ2KD}QE#mUb&ULZc!y;(2^ir+w+ zIR$mEVsi-}bEE50H&BFa#@6RR-QvP-_0K5Br*$Vtf5_^tl2+;Qhm261w3D2vQMVtL zBkhwlYA0ANISU(V(%qiYT~d?o6ZGL+lxSGBJyFa@lI7;nF7-O{j!<~S#rcYgS|3Xu z2He71HF)gEa><gig}r#CVE^gDUMF5Q!+Lytk|sTRkA!28z4%aeQNIlP@lUE>H?!Ck z3xy9(R%tjQd92dPiMxjR<83_VC47y4WgE<EL)eMQ<8L{e8N%!Eocz%q5lYc5YW`5w zefB;DvxJ9rs&Ke_L)e0JI^1n&XlQ6?c>Z_{v^X%c@onD%00000NkvXXu0mjfCr*;s diff --git a/src/assets/polyA.png b/src/assets/polyA.png deleted file mode 100644 index 0f9044930cad5cfc7dd271cb9e4a9eaf7c47b0ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}};o-U3d z8I5nR7-lgAinKnA7vNS*m>DuHvU!5)4HoI$OT4rrQW+ziq{J0oZeln+g-eR5>=BcY zhia0d;aS1>g-3Jm&3;r<Fmq-#e|f?TNdsdL*!)VGf&J<#rk@)ki<+4)XwKo^=_{sR zQlmSAzxv`O{Re^1?H%?8*ezjOv-OK)2BURsIro#p@3y?*&shC^-M#3>nj0Rc?Iy+f z@6|1sYAJt-p>FFN=^r7wmbE4PlAja5pIqc^dU6K8^}g=Q#+&!0RX<P*wo~~l&2#R| y>;rC}6WeNT2rpMJs8uu$OPi;dp9Tg~Kk+l$?wm1YF+(cQ*9@MnelF{r5}E)v>UeGd diff --git a/src/assets/polypeptide-region.png b/src/assets/polypeptide-region.png deleted file mode 100644 index 10bcc004206fd69e6f259b6313c820b9e8238784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmV;H0%`q;P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0!v9mK~!jg?by3(6hQ#T@lSl?0}&hl04*YDqasKwR4_rTL@l+7iU_8# z5DRTAR1lk3n93r8g<wFi5NskwD>ap*x9|ZLiiMBlES6|)=E%)HxHR*HD{k4}{eHjQ zy_wk|lgVT<natAB*WuV8E@EXD?J{h|`WpVz7{ad_zY*~XtsZ{fV|kMWW_w(qg*Q4s z4PEIZnpHd=Fp3Y0=np6!xp`Wc!nXwPgIK-b`%4TY=(@7-4(v`i|GM_8IfE?;y6yNG zXrEWe8&S3Z+z5h9V{?LTFMbEw$0hSdR4LGhyFrk**p#3>gg=3Hyj<jVsuZ9oaW4om zC2g1;5)U4uCA{0HT7cruKOO{mfprPmlb8#%w@Uh>UIB_R{b3N~8P+6dhs7nXmJLw1 z0L3i+BnUF0`|J)Qfv%-k86?w00a%5nL6ApSk)XX2=;m-b)wrnwuoja+nEU=ul#6j& zT;f=YX_EzD16~JVE+uNm0^N`Bgp?~$m+#`qX-A@VHu#>jUTXRdT+lwUd_jML?xy$= zI+0@7WPvl<!+*uD1l?tE_~BI3rV5-@E&O@y;aiHKHJK&~R1JShJds^1YhJfN82&SM zCg_ff!{4dkU#q}5arl%GXHdMD8!PGkkE#VmR13dfyqtbe!Z)HyfvVy6h+k+XO6H9y zTOeF~rH1bpzfw+?4O{o6egH><V^jE;;C)2<68jbQCFr`c6x%BARNPkSM6WltX4Kf& ws=Kwg4I3+Z&tLh&8s1vWWHOmdCetha0!qzzq3mQ^IsgCw07*qoM6N<$g8FGK2mk;8 diff --git a/src/assets/primer-binding-site.png b/src/assets/primer-binding-site.png deleted file mode 100644 index 534556b22df4160251f5c35337d04d28cc6701c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}?o-U3d z8I5l*8|oc#lwp04f74~*t*#EQqns+UEt*_ZtvU~>icC4T@IuB>-ff3@zie6L9JcZ7 zzub++2m2n?o-~<!GXLJ`lnyYc&uehs^N{Cs?&B-ghbppqH(WIdT<UA{dRoO%&(i^0 zuNAD0PU^8<V}2%dX?yVG{RXj*Sby^thu%K8_vZB-hq4aGg#OxbpgpfsoyWWV3)gv> z<lR<DGZnw>d%O3s%yhM-bx#hw3D(b&J;%L0Bp_kwlBe=BtIPK%oZvOvuzJmh{2xb{ h*NK<JyFkHGeaD3!&c-1vJwRVFc)I$ztaD0e0syuff#U!G diff --git a/src/assets/process.png b/src/assets/process.png deleted file mode 100644 index 886b96dcc98f23f127c95616d54bcc0a26cc44dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}Eo-U3d z8I5nR8*(uj3ba0qpSV`^&b4#S8n<(2AAVAhdHJczwx(+<w*(}fp1`y0#&^eEGgIVP z%(#_6ASg3=!*Px|TGjan?k2QlDSu#zoBEnjCYtTWHWTLbg!>ojf4mFKy?$xWlR3$= zmMyw9MM#lla`9QFGoO3D?^{tO!M2%UZTJdn))&5vRlyDSL>8ED)-UXtIHx!;*X!h~ z8)@OM;uq~N{rUR}xAJ`T!tKw$ysFP|0fDeLydt`8Q=7_<-Us@D!PC{xWt~$(696&v BY~26= diff --git a/src/assets/promoter.png b/src/assets/promoter.png deleted file mode 100644 index 7ea4efc0fe006101413ca2e25b2b7fb93d8c8840..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0gFjQK~!jg?bbg_98na8@n1wiBqXE?0TC?2ibYabS)`O$`KL&cD*6%9 z+4=!24I-otA(dDtwssatWn)le3!4~1*ucV?VitA>ncbaHbBNprF3jA^9NuT{xx<i1 zBqEqW9mjYPoTU=mxN47In2U{5o@KOjB${{^ny3OxXy`~>VFM2$LzU$fe#lFF#7JbQ zvea-YFR_nDk)g`+3`g=3UojpTsw@w&D=%@5>8b^%T;JM=af#<eA%}VhtYV_1^j+{6 zD@BXF1V(Q^OC?&^DOwyJu*esz-%6ZfMzDt0U30(j1_xCNZtC>m=1tS};fX9{ckkEn zvfqP)?!a9#DQl7LgZd5gIP3RtuQTv3n8BfZ_&v-TAUv@G3$nI(+BLT&I|DxlEfOWL zh))=6-?#8y_UUexDHL@E=5=0P18?!UN};G7_<#$X$o@zxg(q$Y4&{5lGSOe58<Pa0 zNdnO%foPIIG)W+uBoIv!h$aa{bFT&d6kPu|)bPDMYQb3&i9`W^0XPY3N;|q3(*OVf M07*qoM6N<$f|@_X#{d8T diff --git a/src/assets/protease-site.png b/src/assets/protease-site.png deleted file mode 100644 index 906b81ba0d99e255e24ccf6b4bf0ab4523f87fb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbQBP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0*FaOK~!jg?bthO6j2z)@t=tyF-Sr{6udTqR$9bD@B$XvD4ND1SU8<v z<tGSf)I#jU4`62@g4l^z*ouXqg$RO@CTK2RvKn)-m>G6wH`$paGdsJme>kwqp7XxX zJM*4r&MaNJblEK9c#g3x#2AZWjOU_g1B_r1t5`;`i5Nk&b~TDMl9RSf3}8A+zL_Ed zRq?A)tbtq=W?&REH6m7UBg48tQv5tl79%m8jTRATBk?g=iwLx#_?WaJ0&OflX1yW; z9Uwktts+)*i1?WLB05TZ%%sKwo|Y+SBLtE?Upro5duhrt5J-xz?f-bZEK6J(fkwAE zC3K=C$s+ESBXNBK&8_l`#<t3G>}UyrY(9TqvVg2-r$Pxdioc2{_=s=#j?eg_aX*w= z#C2<5`Cl4^){ljn&&yG)mNJBjM)7^tcAon2B3cuFuS79h#vo?v#K%lxPV(;5Z{QVN zQY~UOirG?*M`Dkz^LwxGHF3A_;dM^3h>2+JWE89I>BT?Q0v_fOwCKlrzpynbcvhG1 zb-}qe%_OGq+xnaMCwfZK*OWcd9cUF7^GcZaRag)@Od1#RO4yrMpom4h#eV!1w$YTZ z-{){3ns*EjqB$MIPW(}Aqg>w3TDg%1CGYrB9zlz;(H<PZKI{-aaqraRo5TBpa&MV? z_@TKAO_ZiCg+tOUv?8?Iwxl1Qq!;lxuY}w33RJ@o&f=iZd1mkd*KjkMvm`v^%@&Zq zF#05q)uVX?ZKaK#ugf=`N6;c{bQp()2eu0K;tFon%z1;a1?1i`!$M)rHt-@&mnATb z6Pk;k$K}%0WuOO-B>#0-!8_d6#{Rz+!`LNspDtb6mH&atGraoGMmGQe002ovPDHLk FV1h<~QWF3G diff --git a/src/assets/protein-stability-element.png b/src/assets/protein-stability-element.png deleted file mode 100644 index 065a5ec9c98ced1333ab25df68f107e0afd0210a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmV-^0)hRBP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0y9ZOK~!jg?b$zQ6hRcn@sCk7kf5jpEAbzwDA7XjPot1Zu&@y=#73+v zv=PBtLB&?ALRz&Hl#oL34+<8dAX-F01QA43a-umB{}p4ny+7VwZf>&|*e`6c%X>4w zH@ulQGfP21!MtWcr2jfx#_~4(%eaWgkviJu2L41ouVMuB#5iLh(m%S5MI8_@!zk{z zXuA=|JJ@&I+*L`1v$OEqpYZz>BOo?~a;FF&Z;Al&rU)Q!iU1O9n1yX$2m6iUmg<e! zb@ZqB97QSN^C3%tY3#;l)j_<(<_5NX7*W3)y)q|Co3I*BREzqC!wH)$cu`|BiPLkc zv<bZ!RxR+iFuErNv9)J_ZMi5-;e>jzwa)~u3a7cQWCz|#KZ*Uok(@N9vO;~%H+rVA zH7AX!^ayic82f}eu?y#fG@1$GT3!NUIIj}GSWH8mJQFu!Kp6EwtQ1zJNt{a9yvbNY z+Z@AB&F8?BP$RmMQR$QTnJ(T?9@4lbOx3&}%u8S^^a^)CdxZM19*glnC4fsY9b`R; z%NVcuwoLVHTsdP6ZL>-k-Fw32)wHmU{-QdCcIKonl{?ZW@y*yyvRna{v|zJW<mqf- zjB^SPg&-#I9q;j6n84eG!RyECf8Xa7w^h>ULQF$>6p;fMO1!^|X)N{^Q!|Ee2EXu8 zSUv}_DPdE>T71n=N85}`KMQnq6&~|{@lS;tjcBq=p{2rpXpK;LOTtR@NZ7;`6cluT YzuObbW$7&DJpcdz07*qoM6N<$f@8WN$^ZZW diff --git a/src/assets/protein.png b/src/assets/protein.png deleted file mode 100644 index 1c841d46b90e6796a5059c1217f070aafddf3b81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmV;n0ZIOeP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0c%M_K~!jg?bf|d6hRmV;0HM<h0qwpP|=Xk&=AmqXy}a}HJZ?v&;b7m zIp~N)EeZdCg^e0QL2@y{g33sN6qFQjgkr8U_p!S}uHb#j-JRdg?9R+Pgb+dqA%qa_ ztAPT~4&pW5U<Qv`*K)YVDGu=wKYDH0>i}l)2{+iq0sggKoWl?%u!I$S!v|dC2!GKE zTE&ALfnAK^Gk#&bYS<*s@v3T2K?A7cJBF(S?P4=Wk4mWFC)UdbjNnp+-&nyjoJoTz z?4|St`t3KKx4YSCQBL9{dv}UE!gRZvod(cU^4Dc{qeDMC4d7VX|NCtUf66qhNyX}E z*6tMZSlUP)mJQgD7IMF)(l&Og1Pn{Xq^{VxDTlYx449}IG%l6(FH)JmYlB#mjxUSd z9`5z4j$upMk9Y7De{of=kN>Gjr`rX*YvnGZ(XC<8X)%xYn8OqK)<#pRxDD)KU)nxH g2qA<JLI|O)TjUQnqC{^*1^@s607*qoM6N<$f{Vw;KL7v# diff --git a/src/assets/replacement-glyph.png b/src/assets/replacement-glyph.png deleted file mode 100644 index 3d8ca5941a4341e08874f5119ba23cf0bc2dece5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV<b0RaAqP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0kla(K~!jg?Uubu!$2HBpMzipDTt$v4h{~2;N;}w=HlYy;8JktPzMDE zT?BFLAn2mA;3AabM;Ar$pKuqyMo};hxgR-VJ}!YK7r6%+lFMD+YkO_L;cz(qGc{lr z7%E#N4>jNl@PG~#i_qmisaQk}xWt#f1IB@Sb>3Cu))JN<QP=BKAR<m)usR}5Ua&GE zN`4Wz0G@$w;0@>jYrrTLMMTLTsPnj^3yfhwM3nrJCi(-M1KYp}@THBdQ}Wj-?mOSp zB%7f*4Q;HWu9Xszv|-!8F>u7+KdotkfE(?4p%JFPHc{*l1nh;z3W>-oKLBjt?+Fih z!r#PU`Wm4>+uUL<KMb4^yz`I1M8f@b;DJ6oJFRFE^BLxyYV!_(L4!F9+MMNVn#r`( zqVK@0!TnR3$hF~X%mA-y&SnnBRI)@&s{32OoWa_Cmlv{r5+)QTFPKC$fDd)-C#+St zypR^rB-jJ(m^Dh17m^~<0!o(`^6Uv~<b^B|*2xPd5!T8JNfFk|3sDi3kr%e`WnX|* z{1^{Et};l39F>w6B%+e?g2{uN!{Kl^91cer`~o}8$>bn%FtGpt002ovPDHLkV1nZH B;Pn6i diff --git a/src/assets/ribonuclease-site.png b/src/assets/ribonuclease-site.png deleted file mode 100644 index 61825a964636110b80160c8aa110093e79202f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0<iswP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0t87!K~!jg?UuVr13?sqKeZ8&U^=UaT^cWFp@^+$DHe)0P9gXjmii37 zfW2a6B_b$TsbHxff)?Ju3u>|!&a!(piOFnsG8@<r0(+S~^ZnV&8OX@Uh|4mt2h2B7 zV_w%-PQ=K7Jn#j0KnYMWYAAiJr)%XCa%+fg;6YCwCxjx9_jIl9L=78Y9C!>#l!5gI zu2V?)7huwkVtq_QC{iTv(`X1q3gvz3g;1ne-ltXwMH|TbR0~n2P2_!|A=*mbXN$@J zn@)`kP{_x|v`;uiAzxT8vY+Y@ib{F^_esh_C@Mdd$H)+Gq%?%0`gcALT!fC_6L0Ng z6~+HeYJgzb?dkEU39(B34m*bYA`R;?FQH>4U8|+!fDitcpGC@F1D*O@G{lFl*)n>7 zCu+;*kdKZBEJenILp<r4EoB7Q0E$)4?I7hZYt$&}8Y9W;HOCEs{H@K2I_nRK#dB!8 zADFT<k2Pkf?8Jjkjbd<s3~}OCCmxr`rq%0K$D9S^T^MkyV@4P7N+AF3R>zzp<iEe` zR>zD{<TBzLOP$tMA6Nl8^!6t(4ZPc!$X0;x!t4|{vow!2=8(_-wp*QeL>t+fTOD)y zfOCQXR|M}x+fYQ_g+kI3*m{Y5CPLdk$W?0UDIh!XzFQr07766vfg!g#=H!4w;EumA d85tQC_yrka{97|9;AsE=002ovPDHLkV1lwY2bKT; diff --git a/src/assets/ribosome-entry-site.png b/src/assets/ribosome-entry-site.png deleted file mode 100644 index 22d00945e433b6235899789a213f363fd8b2ef3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmV-B0>u4^P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0q{vgK~!jg?bknR6hR!u@lQ0tKe5q>Mi3Pdn-D}T1Qo1Ip`ew8z4#Im zu(z=gUxS5>)`DFyzJwGKLBuGih@_B2C4Vej;_R_|H@lg;D9jfIes}!ld7jxjW_HMA zGMP*!lWEORpLF-)Fvg3|pYR#Wee&BfJ28bvc!Q0au~76}#g1)BTER`ss}Ef_=5b>i z@@{env$}`;S&VKyvp71?<e0$QiZCxRjk6dF`p1gzrZHDB?+eZiD7!OQstA6ufyQOL z>d;uiWYVM+jNyHU@qO)fvmwl2J<xiG{V9Uh@gy)?$K3>)ca$H<;{=+OT<S1-kWl-f z@`JgMP<xXXfyry^N~pbC`TTgEP#c_5{;%FjZGhW>{u)lE6u%dUFJd^Qc)>6}20k+} zlVXqa>p}e#tBs<?v5IFko?BuBEB-#2sZ_!hTnl`bCHkc&m3N2(DMV{HsJzon^qLU! z7djEtU-7L?vPe4hkN27ovw-oS{?Ig03l@X=NU!FY1&jvu_r`IW6MBr+b```dAUv>s zHICDqA3?pRS98n)!WXrT#&Mbxdh~or{AaFpZTasP(Db0VqQBcH>}%2-vw*dr9?|Cu zM;GtboL7F87}QuPyt@*66+DL1k-e!{@aOuP$z(E_OeWJWegj+Qu^X4b+i(B?002ov JPDHLkV1k=54iW$W diff --git a/src/assets/rna-stability-element.png b/src/assets/rna-stability-element.png deleted file mode 100644 index 0f9c130fe9d9082d3c35b8ddc2a0aada65d03eb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0n155K~!jg?U_AG13?f#pI;D@Ac)umL_`!xA%cxqSXtO8h+w0Y*jwpe z5b-ZaD#5f?Rth$P0V_@HY!nfLDWdpQ7>gsgdkH!B_BNZqJ~%kSPUcN+hTFS<!{KOa zIyB=)fIXl;Wc(+v3tVV=geD7AG>?LgK&MVHFsK=?{T<yA2vj)%&i}b~9N363cW6%e zYlR(!xCJ4us3V};Le_Bw*v1uL8&`mBTmb^33TqP)=GEdDd1H12Bm-jBfU*$tXi_kU z8Q=xEh&(V+XKez=P`ex5Z;ELHhJZ_CsaIfCSd#{>eQQ2|t)`kbAO;*D3;y7>R2EOx z{|qo`#Wa9TYGwULh87y)dQ1aP)QXq!2DmNABg@|bV^)n6xknz>0aJ-g-H8u{^B8ag z#0}*#hIkb!z?EGcb>hGSauMmMlbGDhy#p)0&*lu~i<~Z?gnR{ttr{tkLzd6k)lp*} zS^k^gU1}&y&4AeZMZDH|Gm*$t0cGL52S^#pV~iBuFJ5h-5-?@eC<IHu7xIlv_y35d zvy42<vr#87{Z`@@PrORZaK1=M;yrnZuhDz08Y!}f+&=4eb=2tt&VXlN+p>$p;b>KU Y0Y@T{A~AjloB#j-07*qoM6N<$f?;vr?EnA( diff --git a/src/assets/signature.png b/src/assets/signature.png deleted file mode 100644 index 60d5bb9a1d8534166ca34006316c29d3b835d4a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0trb(K~!jg?btnw6G0ru@lQ@c^la|5I7z_92gE}3EvWbwt`M;nY;1%p zL_rj*i>;s{9@yFng7*S^z)sXg6bq44(4baY>@JyPCl7ncCKuT+44M7UWcdAdX8yCg zR8&+{R8-6`we<HKZer&YwG`nOR`4JTe8k@wE1zI4H84M(8#7VnVSA+EGG0zr%g~&_ ztuPQX@Cr{SB4-TD4eqkF`L7Msu$-1!pMJ0h7bR<SDr{({r_*WdLJ+&Jx7j-0ru}}S zQKHUMfu?Wzh=Qe{ejaxt{p(oA!Ss3u7Dv}voY)L3;<e7hBb<pk-gULFmaH>30~s*` zuz=@XA|GMDxcEVPWmF0qAa3G^$%|)`28f%Ow0K4^07oTRCKUfh{4_6%LRl!Jfya_8 z6LJ_2v29EO3p0#?2A<(S5c?9;m$7C_CI%UZiErWvUIekJnjpRhmgG}qQ+vbil|Lu$ zm8`SSCcdG!_>7o|GM|TX2Kr@?_d&ghOX(j&zT%|h{oxo|_$*1gSFvvlqCemoe)j9s zD~+B>%OG~+EDojDt2$?8)N&;qx6lm0lOe>D+?}<q>v7U^ys{3V>yqU)t|fG*S7TWQ z{@`{=V|Os~uavPFI4+-UwhFlvo#pinN$Q&=zGER<Lak{k*(5F6OK3&%ad+3$<P;<O ixLZ+CQBhGb+x!Ev5as_vNzk$Y0000<MNUMnLSTY!oeoU^ diff --git a/src/assets/simple-chemical-circle.png b/src/assets/simple-chemical-circle.png deleted file mode 100644 index b059033b8e4e386bbff24832d959e4f506286076..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}So-U3d z8I5l*D|$Nzim-pUKZm0&(WomSXo9L?$JIyTf|E~X7<S$F;yH9lU~=*eS3yyoriXhs z7_e3Ec`f#De~IPuqH_<6^aLTGw}kuJy(668J~Xax+8cHC;MS}M)pxEwk4}|eV;Wv@ z<eW<mH}f5xltq?bK6KvI+?iXmIxIU=_Hm}$KgQ*`W-*zYCF(X>Dc@iFUT1CTo`(fq zdGTB0r2kt5GC!|4c+uqz!}%RCCtP^vJQPjt`Ow!b)N7^Mb?w@P@V}cC>$tvkb%4Q) a>+%xoWaKYe?KT4XkHOQ`&t;ucLK6TPCwYDV diff --git a/src/assets/simple-chemical-hexagon.png b/src/assets/simple-chemical-hexagon.png deleted file mode 100644 index 793cff43167fe31e0754bef4b2f5d25d4f97621e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}~5o-U3d z8I5nxFXTNGAma9rIb^~H=kf#B9|gv?EIA!w=q{en!o|a^pj|LSTcE>CbI<olpH=r; z>SyLTPEzrlv_$7^($Sj?x&{4PFLqsEFi&7Px6v?a@`rUd)gCZ~$gk}(Q{9=dP&}ai zW$B)^S-Zcn|9=~9Uohk5rYp?;3z)xc)VpQ+Ft%H!k+I@PTgFk#qd+57JWrjKj^G!O U4o=*j2y`KXr>mdKI;Vst0IpM3+5i9m diff --git a/src/assets/simple-chemical-pentagon.png b/src/assets/simple-chemical-pentagon.png deleted file mode 100644 index a5bf278cc8ef5d0704c7be83c2a701cc27cefd92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}Mo-U3d z8I5l*Z{$4WAkp?v{3zoZrbdy*oCVq`jK(p`3OHwTaNTsOW)GOXf5HSej}w~jnd3kI zJ$_fTT)}gaif7QIYZK>(Ff8{lyso%<<~Lgg+k(C?7gh6_w;YgNVgJi&m)SKHZT5K% zmPXpi)BGzRT=9Rw7Snk5L=JyU(%F<}KbYMYNWPpsLv=lqoC8~qa%9QXrtiPJ*!Qr# h6x%yd1!P10GhTsPlKI{<9YJ1W@O1TaS?83{1OUB8S>gZy diff --git a/src/assets/simple-chemical-triangle.png b/src/assets/simple-chemical-triangle.png deleted file mode 100644 index a9a63eea52425d83ec7cbce6eb68fe8afea8d99c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}Uo-U3d z8I5nR7-lsYO0Yd}*SX5gap@$tMac&y+XnHBa&FrOTd$82whhhA<r*ag;W_Hto4niR zH#sXVY~9Dta_D>O9>o>`K`{7e|5fX~`9bbq;=kf6j;srN5W2Rvi+Nea(O=Q;`95!Y z=3jllnr-ea(|ZN~wbg$ulrxJc%Q}B!)&G>)JCCa8860Cz(`|~ncY^Eiq{2gs62pX* sWll?M<y!fdyY%hHD>L0)Aiy<!nWe~q+_lSq&SzloboFyt=akR{01upG6aWAK diff --git a/src/assets/specific-recombination-site.png b/src/assets/specific-recombination-site.png deleted file mode 100644 index 038f2e4bbfdef5e96e2ab10df0e291f73efc9f6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}|{o-U3d z8I5mm*m50m5OICjysPoe!CU8!1r;#s9k_Hfa<`PUwRiage?@+_#|tKRROauIztL8G zz(rj_NlEEbFz*J2W6u097cu%B;I&|oPB410$jMvo@n!!N6GY!O1Sn=6nA!j&Bxf*M z#~qhx)IH}kkJ)F&gqVgx`A>QWcJTf*Ik1CUlh+{6X&2iJ%MHtA6Z`LfEl+#)mDgbB z1a1S}oflRd@0jrKo3_X|wKC&7A^)A9mF-yh?tILQhs#zm`>uGX_Gh8ppKMW%e@Wgh dE-osC?7f@Ms&)7j*aH2=;OXk;vd$@?2>?hTa@_y` diff --git a/src/assets/ssNA.png b/src/assets/ssNA.png deleted file mode 100644 index 937f09e0f753670b5fa7e0bb1ff5eb707c99fe18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmV;d0#p5oP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0%1u+K~!jg?b5+ZlVKbO@bCLPzh}loR?I;LL#YT{Vi0x7NZ4Uef-i$c zq7d0X;3XJQ>mUSPJtT~n5bO|ii4GDNW5OWl)Flf#6jVwxv}h#q?tQ;q9L&@utK;*5 z_x9!c{C+=Pz_KjMvMkH8EX%U~kD;NVbFS-NXc0N7lzObSegPnJfXWnr0)Q-lLoISg zMC7S4<|}~v0MvnpZf1;mn@*<#k{cvnkt~wDM{=xCC|owitoQczddXzc2S5OKTh!eI z5cK!=d&U@FL|y_2?~zj?vJ{C#ys4=vDy0IYRKBeR0NfH0e{F4ze;OSf^+lwb%jHg! zyp&3%o&g9ZCMIS{4v=iV@Oh=w*5u@55Cj1$l?ppLI_gTP`90pe<2X*RxVT7?oSU2D z_HnMYv%pcMRDF7SddKkPa=B4@y(#M`r5=fhUn-SI(kJ<`TCJ8Mk;r;H9{*CS)t-}l zPtwch^No(NrjDfJIQ48cyW>6Ab$zY%cL1?=mY5BP!}XPw6_VuU<|Y$~glCL-jotrd zNJPqAU0vSt@-j&>lgR{H>l%RLjSxvg@>E}6-;y!r*TTX=u2?LNi^#_C@NnJpyd4Xy zuCB7Pv$GE1VLJ;%MdaJy;GkD3l{hjo;wz=L0G!<?f7lrFE*6V<>2$hr<?(&85o64U z?(S|c8jX4)^2v4GILR|4uadk?a-L*mW@hH6<2XKm6YVT9AR?auP;31Iz?Hw`k7=!+ zghHV=0B-yx+XLXi_Se%QXJWC~#e)vK7X=^zAoMRKmStI%Wm%SGS(as4yZi=~)+w|5 S@SC&%0000<MNUMnLSTX+3qx%H diff --git a/src/assets/stimulation.png b/src/assets/stimulation.png deleted file mode 100644 index a792447da085fc1fbc25100ec7bab693fcec597a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}|<o-U3d z8I5nR8u~doim+Z_?sdqBU{FnDz41bBMMmb0MzwVZn@SIG-Dy3&0SGq#5phuQ5ZSNR zT;cz@%Tw*U>gRg`f?)9fI>*^dim!G#w7SQLo(uB6y{j>LPeNneMVI?qau@W<z5BRp z<=v*8ecNsyxF*0~aY&^1yxt9anS^iMjQcMgkhQ9~Z7rSLm+oWswK;g+zf~m-$$x%u zPAxNYu1VhOHvQiXsocu{C)RPNuY7wcQ-5*?7+7SmhE0*3H~nT`5zsFTp00i_>zopr E03QHxX8-^I diff --git a/src/assets/terminator.png b/src/assets/terminator.png deleted file mode 100644 index fc26c68c1a536af907176f89fee64e021d11ff01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}~Ho-U3d z8I5l*8FC$R5OBD-{<}c;gUlS;4sp&K&-k`|n|AM@+XtR9A>B<0kM&e0_%QuHc*x1a zNS;l_GipQV!<&2-%(FYwPF6CpKe+e(sML=$Pp<4#yx!WNec@ZSoU6C_>G-9hO?kcB znCoj;zP+qt^kd%lkxlNU&$@@(na)PoYp%VZBq4CNA%o4uSYa09MV^i{2NUK+k`N(j q;|EiB>btStxwNt=eWFU{ynRV`OlRsj9Nh<WIfJLGpUXO@geCw{Z()M~ diff --git a/src/assets/three-prime-overhang.png b/src/assets/three-prime-overhang.png deleted file mode 100644 index bc2bebb03823ecaf655820bb60e5eb51368288a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}7PZ!6K zjK;Uu_VP9;h`3!`T`f_*p+L;~dm;DrjRowF6{4aY7CA21p}tV*z;~g44wF<oCxy5P zzkJ;w`ocJs)3QO*;yzzY!|F-fTAa2`Wcs#U^uNXo)orZ|Zm(`QML*;T+FB&@D5<?b z>8`EaUs0oPd_0`jJuR<0_pLwje0>AZFqM^Q<_fNkGjHz_I0JMKgQu&X%Q~loCIFid BPEG&- diff --git a/src/assets/three-prime-sticky-restriction-site.png b/src/assets/three-prime-sticky-restriction-site.png deleted file mode 100644 index 527db15fa70097c172ddb19a68223165b02243b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}|<o-U3d z8I5mmY~(x?AmRE@SWw1!&H>IjhXq-z3)!-t7xeigq-y#JaR;yXQ72saOs#7FtApN! z{DR#LGiUzY>}0DDz;OCk4TILhY5i+<_O5&N*?aN1XIsqu=g5DtTp-B4!qVX^V-{aP zal<W(9kUst6K-9cmfo$#@5(5hFg^YBcNhDGk?Gp^te5L8GB0?~GNp3cmNLd~D^D+D zRNZjONPY9c|J-mBW-(t`)R6q>j`qdpUk}#bGc(?NznoR%g@CxdT-`mOUl=@H{an^L HB{Ts5$-Zj! diff --git a/src/assets/transcription-end.png b/src/assets/transcription-end.png deleted file mode 100644 index 826f5635fb242c04a666260cf27d741b91ec66ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmV-`0)PF9P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0yRlQK~!jg?bkhP6+sln@n50_jg1g6qKQVqMnw=r1kpki(Z)(FEc^mC z2C)#ofcVl1+V~Rv0wQRmn23c@yJ)2#39*SFF=#?Uw3rE*y~({X?7epl>>q}mJ$q*7 zIrDO6my(i_6-`S6-nkY>aTuGUZ4~`@fvE=cSr^*Si!uDEQpRu*YYNg>l@4Kas|l|x zuhChLj_a|6)?)zs65F(}WQJlNyKw}o6Q2*lGW%5r4Y{~0JGxJ>Z4tj7JgxA((;SJ_ z*@GGLf*zo?hJPy_CjK+R>=eeWM9fzq1Eq|_XD1TdIt(Z6ZsZYAYqb7_Q%U_cCWUM? z$B&9@8-7RM#on=O@&wR=?a6(Ayj~DC=s8S8TMr%ynF?Md?RIF)d9)<$vKw+&w7*e1 zg>H?$sja=4!c!&^5yzsf8|Q^wpB`YBv0s?=<H@t1c?9I$10R$6$#@+WmeWo_;HYrW zeZxD<%C7sNoEma*Rdyt|U;{oyTOUrx`XmmaOLpe2G+lK<C&m*oZ?Os21d-j*?`14| zF_`#|V`FnAFXWQ!hWv~(!e*VL3up1A!ne1nN~_R<#};OrabdIvWoK!w^eHHPF2*X{ z6gKEmU!t?P9^3qP9K>_k@1yj)=NS$ZrfwN@;J$hB_oA)t<UI$f@m)xpb4*2B-Dy++ zO`{B;XvzSJrVOBH$^eR{44`Pr0E(szplHefYA{lzURN6VWBp$Eog5H;;-?$fS4m09 aO64yFp0fZ^R><)H0000<MNUMnLSTY?F(NAf diff --git a/src/assets/translation-end.png b/src/assets/translation-end.png deleted file mode 100644 index b05b93a607bf6c5f154785cbdfb090afd3cc5549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmEaP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0>w#0K~!jg?U+4i6hRcne-|~H*ocBBnrI@3q9O!E45Ec7el%hs77{GA z5XB%CVlR?t7X&Q?jbb4-B50!+gM|?*V+21yA~^y<^bDHQm{`17_U$Emac_5SvT#3G zc6Rpd&i~EKdo#OGrAn1lld<s51;8#~2e91K4FNsC6QE$B%|xgL+JO;ZGUONm&H(cq zX$)lv(z{{8i;rF)n?%D&OreFqbD%}l{XwQoziDFwuoIZ8Y+fVN>}LWRVsV{d?>+!l zO=H&tJS?)kRvC%mYy`&f1>FQ{O4!!`x0L-jGCIz<qQrbgGLYtrxwlu<)d7R*xz0EO zO7+(Na6px>0%J%v^7vMCt_6M>+v(mBnK%w)fM#{wW6md$06hwfnz|<7Hj=3To~h?n zV`n{@k$Qpwx!%;jpmYjdX>4^}eI<o!MwN)&rmhh<hU9v^fSm)jAfvuV-TM(oK-?I3 ztIGS$c@UXSYY>4$$U>I`UI7yX=Y4-n4Y9aDuqRgli+}-B*9{yr<uPD8&_HnH&R1Nu zA`9e|n3upZ;1VLT(bzpT$0ndp+2?_!m6be|vjhY3BXAfAR*weY2=J-Mw!NZCL&yMk zn3`?!NN@KM93}7Q#!>p5jyb?(BtU1{iB13==9yW?HsCSA{gK}HJOZ{lQx}1Y1jTnC zsWdfsX><~a4{LKh?m`wuohpAo97z?O1cSECt(@p&k*$O0L;+aqR8bkU0N?SQ=yEHk zJWk;|@Ww_1wu0E>kSY&bZYy!_5?l+8yOk4-R)X7#9JBCmTq*A3i~o&mF;c}ld<RZD z)>0Pt@EsUNJ}*<nX5cTr6Yr5v&BU>_C(j`tG5gH*Vq{V4wbY(9y6{KA%HIdu3)z4w z&$rxG;xq$a@kii>TRG9uf36F_I=6D7(}wTB3CCK>rj?X@#8;`3R{jADz3E}YpH|)g O0000<MNUMnLSTY<GGCkk diff --git a/src/assets/unspecified-glyph.png b/src/assets/unspecified-glyph.png deleted file mode 100644 index 3d8ca5941a4341e08874f5119ba23cf0bc2dece5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV<b0RaAqP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0kla(K~!jg?Uubu!$2HBpMzipDTt$v4h{~2;N;}w=HlYy;8JktPzMDE zT?BFLAn2mA;3AabM;Ar$pKuqyMo};hxgR-VJ}!YK7r6%+lFMD+YkO_L;cz(qGc{lr z7%E#N4>jNl@PG~#i_qmisaQk}xWt#f1IB@Sb>3Cu))JN<QP=BKAR<m)usR}5Ua&GE zN`4Wz0G@$w;0@>jYrrTLMMTLTsPnj^3yfhwM3nrJCi(-M1KYp}@THBdQ}Wj-?mOSp zB%7f*4Q;HWu9Xszv|-!8F>u7+KdotkfE(?4p%JFPHc{*l1nh;z3W>-oKLBjt?+Fih z!r#PU`Wm4>+uUL<KMb4^yz`I1M8f@b;DJ6oJFRFE^BLxyYV!_(L4!F9+MMNVn#r`( zqVK@0!TnR3$hF~X%mA-y&SnnBRI)@&s{32OoWa_Cmlv{r5+)QTFPKC$fDd)-C#+St zypR^rB-jJ(m^Dh17m^~<0!o(`^6Uv~<b^B|*2xPd5!T8JNfFk|3sDi3kr%e`WnX|* z{1^{Et};l39F>w6B%+e?g2{uN!{Kl^91cer`~o}8$>bn%FtGpt002ovPDHLkV1nZH B;Pn6i diff --git a/src/elements.ts b/src/elements.ts index be06715da..bc84eabbc 100644 --- a/src/elements.ts +++ b/src/elements.ts @@ -10,17 +10,21 @@ export interface NameRange extends Range { color?: string; id: string; name: string; - border?: "dashed" | "dotted" | "bold"; + border?: Border; font?: Font; - svg?: string; gradient?: Gradient; } interface Font { fontFamily?: string; - fontSize: number; - fontWeight: number; - fontColor: string; + fontSize?: number; + fontWeight?: number; + fontColor?: string; +} + +interface Border { + style?: "dashed" | "dotted" | "bold" + borderColor?: string; } interface Gradient { @@ -31,9 +35,8 @@ interface Gradient { /** AnnotationProp is an annotation provided to SeqViz via the annotations prop. */ export interface AnnotationProp { color?: string; - border?: "dashed" | "dotted" | "bold"; + border?: Border; font?: Font; - svg?: string; gradient?: Gradient; direction?: number | string; end: number; diff --git a/webpack.config.js b/webpack.config.js index 07e4c4037..2feafa870 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -14,14 +14,7 @@ const cdnBuild = { module: { rules: [ { test: /\.(t|j)sx?$/, loader: "ts-loader", exclude: /node_modules/ }, - { test: /\.js$/, enforce: "pre", loader: "source-map-loader", exclude: /node_modules/ }, - { - test: /\.(png|jpe?g|gif|jp2|webp)$/, - loader: 'file-loader', - options: { - name: '[name].[ext]', - }, - }, + { test: /\.js$/, enforce: "pre", loader: "source-map-loader", exclude: /node_modules/ } ], }, optimization: { From 4283977d57fbd6a7373729a1b5737df0bf496c37 Mon Sep 17 00:00:00 2001 From: Nick Rosenau <nickrosenau@Nicks-MBP.lan> Date: Wed, 29 Nov 2023 17:55:57 -0500 Subject: [PATCH 7/7] prettier. --- src/Linear/Annotations.tsx | 9 ++++----- src/elements.ts | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Linear/Annotations.tsx b/src/Linear/Annotations.tsx index c877882b8..6b0f00e14 100644 --- a/src/Linear/Annotations.tsx +++ b/src/Linear/Annotations.tsx @@ -185,10 +185,9 @@ const SingleNamedElement = (props: { let fontSize = 12; if (element.font?.fontSize) { // 19 is a subjective limit to fontSize that will fit inside bounds of annotation. If larger than 19, cap it. - if(element.font.fontSize > 19){ + if (element.font.fontSize > 19) { fontSize = 19; - } - else{ + } else { fontSize = element.font.fontSize; } } @@ -223,9 +222,9 @@ const SingleNamedElement = (props: { break; } } - let borderColor:string | null = null + let borderColor: string | null = null; if (element.border?.borderColor) { - borderColor = element.border.borderColor + borderColor = element.border.borderColor; } let fontFamily: string | undefined = undefined; diff --git a/src/elements.ts b/src/elements.ts index bc84eabbc..5e3b07744 100644 --- a/src/elements.ts +++ b/src/elements.ts @@ -23,7 +23,7 @@ interface Font { } interface Border { - style?: "dashed" | "dotted" | "bold" + style?: "dashed" | "dotted" | "bold"; borderColor?: string; }