From 0830148da22c99e38371046e2e41fede564bd858 Mon Sep 17 00:00:00 2001 From: WillHannon-MCB Date: Tue, 13 Feb 2024 22:35:12 +0000 Subject: [PATCH] deploy: dac1c84c4b05bc1e8566ad7363da4d4f0bceee9d --- 404.html | 4 ++-- README.html | 6 +++--- about.html | 6 +++--- assets/{app.exlaMXtI.js => app.O7VmKeu-.js} | 2 +- assets/chunks/{theme.uEQ0umWR.js => theme.HBrFSuTc.js} | 2 +- contributing.html | 6 +++--- experiments/h5n1/index.html | 6 +++--- experiments/hiv/index.html | 6 +++--- experiments/lassa/index.html | 6 +++--- experiments/nipah/index.html | 6 +++--- experiments/sars2/index.html | 6 +++--- experiments/sars2/posts/BA.2_ACE2_binding.html | 6 +++--- .../posts/XBB.1.5_ACE2_binding_serum_escape_cell_entry.html | 6 +++--- hashmap.json | 2 +- index.html | 6 +++--- methodology.html | 6 +++--- 16 files changed, 41 insertions(+), 41 deletions(-) rename assets/{app.exlaMXtI.js => app.O7VmKeu-.js} (95%) rename assets/chunks/{theme.uEQ0umWR.js => theme.HBrFSuTc.js} (98%) diff --git a/404.html b/404.html index 473ae65..670f99c 100644 --- a/404.html +++ b/404.html @@ -8,7 +8,7 @@ - + @@ -17,7 +17,7 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.

Released under the MIT License.

- + \ No newline at end of file diff --git a/README.html b/README.html index 6e05836..665acdc 100644 --- a/README.html +++ b/README.html @@ -8,10 +8,10 @@ - + - + @@ -21,7 +21,7 @@
Skip to content

dms-vep.org

Developing

First, clone the repository locally:

bash
git clone git@github.com:dms-vep/dms-vep.github.io.git
 cd dms-vep.github.io

To see a live preview of dms-vep.github.io, you must have node and npm installed on your machine. If you are missing one or both, follow the instructions here to install them.

This website is created using the static site generator VitePress. To spin up a local development server that provides a live preview of the site locally in your browser, simply run:

bash
npm run docs:dev

The dev server should now be running at http://localhost:5173. Visit this URL in your browser to see a preview of the site.

Deploying

The website is hosted on GitHub pages via a specific gh-pages branch and builds are automated using GitHub Actions via the deployment script /.github/workflows/deploy.yml. The website will build on pull requests and pushes to the main branch.

Released under the MIT License.

- + \ No newline at end of file diff --git a/about.html b/about.html index 52724f7..d826889 100644 --- a/about.html +++ b/about.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

About

dms-vep.github.io serves as a repository for deep mutational scanning (DMS) studies with a focus on viral entry proteins (VEPs). These studies offer insights into the impacts of mutations on immune evasion, viral fitness, and more. Traditionally, sharing the substantial amount of data generated from these experiments has posed significant challenges. Conventional methods of publication restrict the level of detail in which results can be conveyed, making it impossible to share the full breadth of our findings. dms-vep.github.io addresses this issue by offering a detailed overview of findings from DMS experiments. This includes expert interpretation and direct access to the underlying raw data, facilitating a deeper understanding and broader application of these studies.

On dms-vep.github.io you'll find detailed write-ups for DMS of multiple viral proteins that focus on the methodology, objectives, and findings of these experiments. These write-ups include both interactive and static data visualizations that help explore these large datasets. Finally, you'll find links to the raw and processed data used in each study along with a detailed description of the data's structure and purpose.

If you have questions about the experiments described on this website, feel free to ask them on our GitHub Discussions page.

Released under the MIT License.

- + \ No newline at end of file diff --git a/assets/app.exlaMXtI.js b/assets/app.O7VmKeu-.js similarity index 95% rename from assets/app.exlaMXtI.js rename to assets/app.O7VmKeu-.js index 57e02f5..ec3b111 100644 --- a/assets/app.exlaMXtI.js +++ b/assets/app.O7VmKeu-.js @@ -1,4 +1,4 @@ -import{j as o,a7 as p,a8 as u,a9 as c,aa as l,ab as f,ac as d,ad as m,ae as h,af as A,ag as g,ah as v,d as P,u as w,l as y,z as C,ai as R,aj as _,ak as b,a6 as E}from"./chunks/framework.1NCGK6sV.js";import{R as j}from"./chunks/theme.uEQ0umWR.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(j),D=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=w();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&R(),_(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function T(){const e=O(),a=L();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function L(){return h(D)}function O(){let e=o,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=v(()=>import(n),__vite__mapDeps([]))),o&&(e=!1),r},s.NotFound)}o&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{T as createApp}; +import{j as o,a7 as p,a8 as u,a9 as c,aa as l,ab as f,ac as d,ad as m,ae as h,af as A,ag as g,ah as v,d as P,u as w,l as y,z as C,ai as R,aj as _,ak as b,a6 as E}from"./chunks/framework.1NCGK6sV.js";import{R as j}from"./chunks/theme.HBrFSuTc.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(j),D=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=w();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&R(),_(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function T(){const e=O(),a=L();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function L(){return h(D)}function O(){let e=o,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=v(()=>import(n),__vite__mapDeps([]))),o&&(e=!1),r},s.NotFound)}o&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{T as createApp}; function __vite__mapDeps(indexes) { if (!__vite__mapDeps.viteFileDeps) { __vite__mapDeps.viteFileDeps = [] diff --git a/assets/chunks/theme.uEQ0umWR.js b/assets/chunks/theme.HBrFSuTc.js similarity index 98% rename from assets/chunks/theme.uEQ0umWR.js rename to assets/chunks/theme.HBrFSuTc.js index 93b52d2..8422b8f 100644 --- a/assets/chunks/theme.uEQ0umWR.js +++ b/assets/chunks/theme.HBrFSuTc.js @@ -198,6 +198,6 @@ import{d as ce,o as F,c as N,r as V,n as Ke,a as Wt,t as Ee,b as ye,w as J,T as -`,S2e="chart-wrapper";function E2e(e){return typeof e=="function"}function J5(e,t,n,i){const r=`${t}
`,s=`
${n}`,o=window.open("");o.document.write(r+e+s),o.document.title=`${Zc[i]} JSON Source`}function k2e(e,t){if(e.$schema){const n=tR(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${Zc[n.library]}, but mode argument sets ${Zc[t]??t}.`);const i=n.library;return uR(Og[i],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${Zc[i]} ${n.version}, but the current version of ${Zc[i]} is v${Og[i]}.`),i}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":t??"vega"}function fR(e){return!!(e&&"load"in e)}function Q5(e){return fR(e)?e:dr.loader(e)}function A2e(e){var n;const t=((n=e.usermeta)==null?void 0:n.embedOptions)??{};return te(t.defaultStyle)&&(t.defaultStyle=!1),t}async function C2e(e,t,n={}){let i,r;te(t)?(r=Q5(n.loader),i=JSON.parse(await r.load(t))):i=t;const s=A2e(i),o=s.loader;(!r||o)&&(r=Q5(n.loader??o));const a=await Z5(s,r),l=await Z5(n,r),u={...cR(l,a),config:Du(l.config??{},a.config??{})};return await F2e(e,i,u,r)}async function Z5(e,t){const n=te(e.config)?JSON.parse(await t.load(e.config)):e.config??{},i=te(e.patch)?JSON.parse(await t.load(e.patch)):e.patch;return{...e,...i?{patch:i}:{},...n?{config:n}:{}}}function M2e(e){const t=e.getRootNode?e.getRootNode():document;return t instanceof ShadowRoot?{root:t,rootContainer:t}:{root:document,rootContainer:document.head??document.body}}async function F2e(e,t,n={},i){const r=n.theme?Du(lve[n.theme],n.config??{}):n.config,s=Co(n.actions)?n.actions:cR({},x2e,n.actions??{}),o={..._2e,...n.i18n},a=n.renderer??"canvas",l=n.logLevel??dr.Warn,u=n.downloadFileName??"visualization",c=typeof e=="string"?document.querySelector(e):e;if(!c)throw new Error(`${e} does not exist`);if(n.defaultStyle!==!1){const _="vega-embed-style",{root:$,rootContainer:w}=M2e(c);if(!$.getElementById(_)){const S=document.createElement("style");S.id=_,S.innerHTML=n.defaultStyle===void 0||n.defaultStyle===!0?v2e.toString():n.defaultStyle,w.appendChild(S)}}const f=k2e(t,n.mode);let d=w2e[f](t,r);if(f==="vega-lite"&&d.$schema){const _=tR(d.$schema);uR(Og.vega,`^${_.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${_.version}, but current version is v${Og.vega}.`)}c.classList.add("vega-embed"),s&&c.classList.add("has-actions"),c.innerHTML="";let h=c;if(s){const _=document.createElement("div");_.classList.add(S2e),c.appendChild(_),h=_}const p=n.patch;if(p&&(d=p instanceof Function?p(d):Vm(d,p,!0,!1).newDocument),n.formatLocale&&dr.formatLocale(n.formatLocale),n.timeFormatLocale&&dr.timeFormatLocale(n.timeFormatLocale),n.expressionFunctions)for(const _ in n.expressionFunctions){const $=n.expressionFunctions[_];"fn"in $?dr.expressionFunction(_,$.fn,$.visitor):$ instanceof Function&&dr.expressionFunction(_,$)}const{ast:g}=n,m=dr.parse(d,f==="vega-lite"?{}:r,{ast:g}),y=new(n.viewClass||dr.View)(m,{loader:i,logLevel:l,renderer:a,...g?{expr:dr.expressionInterpreter??n.expr??aye}:{}});if(y.addSignalListener("autosize",(_,$)=>{const{type:w}=$;w=="fit-x"?(h.classList.add("fit-x"),h.classList.remove("fit-y")):w=="fit-y"?(h.classList.remove("fit-x"),h.classList.add("fit-y")):w=="fit"?h.classList.add("fit-x","fit-y"):h.classList.remove("fit-x","fit-y")}),n.tooltip!==!1){const{loader:_,tooltip:$}=n,w=_&&!fR(_)?_==null?void 0:_.baseURL:void 0,S=E2e($)?$:new mve({baseURL:w,...$===!0?{}:$}).call;y.tooltip(S)}let{hover:v}=n;if(v===void 0&&(v=f==="vega"),v){const{hoverSet:_,updateSet:$}=typeof v=="boolean"?{}:v;y.hover(_,$)}n&&(n.width!=null&&y.width(n.width),n.height!=null&&y.height(n.height),n.padding!=null&&y.padding(n.padding)),await y.initialize(h,n.bind).runAsync();let b;if(s!==!1){let _=c;if(n.defaultStyle!==!1||n.forceActionsMenu){const w=document.createElement("details");w.title=o.CLICK_TO_VIEW_ACTIONS,c.append(w),_=w;const S=document.createElement("summary");S.innerHTML=$2e,w.append(S),b=M=>{w.contains(M.target)||w.removeAttribute("open")},document.addEventListener("click",b)}const $=document.createElement("div");if(_.append($),$.classList.add("vega-actions"),s===!0||s.export!==!1){for(const w of["svg","png"])if(s===!0||s.export===!0||s.export[w]){const S=o[`${w.toUpperCase()}_ACTION`],M=document.createElement("a"),k=ne(n.scaleFactor)?n.scaleFactor[w]:n.scaleFactor;M.text=S,M.href="#",M.target="_blank",M.download=`${u}.${w}`,M.addEventListener("mousedown",async function(A){A.preventDefault();const P=await y.toImageURL(w,k);this.href=P}),$.append(M)}}if(s===!0||s.source!==!1){const w=document.createElement("a");w.text=o.SOURCE_ACTION,w.href="#",w.addEventListener("click",function(S){J5(cy(t),n.sourceHeader??"",n.sourceFooter??"",f),S.preventDefault()}),$.append(w)}if(f==="vega-lite"&&(s===!0||s.compiled!==!1)){const w=document.createElement("a");w.text=o.COMPILED_ACTION,w.href="#",w.addEventListener("click",function(S){J5(cy(d),n.sourceHeader??"",n.sourceFooter??"","vega"),S.preventDefault()}),$.append(w)}if(s===!0||s.editor!==!1){const w=n.editorUrl??"https://vega.github.io/editor/",S=document.createElement("a");S.text=o.EDITOR_ACTION,S.href="#",S.addEventListener("click",function(M){y2e(window,w,{config:r,mode:f,renderer:a,spec:cy(t)}),M.preventDefault()}),$.append(S)}}function x(){b&&document.removeEventListener("click",b),y.finalize()}return{view:y,spec:t,vgSpec:d,finalize:x,embedOptions:n}}async function T2e(e){const i=new DOMParser().parseFromString(e,"text/html").querySelectorAll("script");let r="";if(i.forEach(c=>{c.textContent.includes("var spec =")&&(r=c.textContent)}),!r)throw new Error("Vega spec not found in the HTML document.");const s=r.indexOf("var spec =")+10,o=r.indexOf("};",s)+1,l=r.substring(s,o).trim();let u;try{u=JSON.parse(l)}catch(c){throw console.log(l),new Error("Error parsing Vega spec JSON: "+c.message)}return u}const O2e={name:"VegaChart",props:{specUrl:{type:String,required:!0}},mounted(){this.loadChart(this.specUrl)},methods:{async loadChart(e){try{const t=await fetch(e);let n;if(e.endsWith(".html")){const i=await t.text();n=await T2e(i)}else if(e.endsWith(".json"))n=await t.json();else{console.error("Unsupported file format");return}this.renderChart(n)}catch(t){console.error("Error loading Vega spec:",t)}},renderChart(e){C2e(this.$refs.vegaContainer,e,{renderer:"canvas",vega:TO,vegaLite:JD,actions:!1}).then(t=>{}).catch(console.error)}}},N2e={class:"vega-chart-container",ref:"vegaContainer",style:{width:"100%",height:"100%"}};function D2e(e,t,n,i,r,s){return F(),N("div",N2e,null,512)}const R2e=oe(O2e,[["render",D2e]]),e4=JSON.parse('[{"title":"Effects of mutations on ACE2 binding, serum escape and cell entry","url":"/experiments/sars2/posts/XBB.1.5_ACE2_binding_serum_escape_cell_entry.html","keywords":["XBB.1.5","Spike","Lentiviral Pseudotyping","ACE2 binding","cell entry","serum escape"],"date":"2023-11-13T00:00:00.000Z"},{"title":"Effects of mutations in BA.2 spike on ACE2 binding","url":"/experiments/sars2/posts/BA.2_ACE2_binding.html","keywords":["BA.2","Spike","Lentiviral Pseudotyping","ACE2 binding"],"date":"2023-11-12T00:00:00.000Z"}]'),L2e=D("dt",{class:"sr-only"},"Published on",-1),P2e={class:"date text-base leading-6 font-medium"},I2e=["datetime"],z2e={__name:"Date",props:{dateString:String},setup(e){const t=e,n=qe(new Date(t.dateString).toISOString());Ao(()=>t.dateString,s=>{n.value=new Date(i(s)).toISOString()},{immediate:!0});function i(s){var o=s.split(/\D+/),a=new Date(Date.UTC(o[0],--o[1],o[2]));return new Date(a.getTime()+a.getTimezoneOffset()*6e4)}const r=ve(()=>{const s=new Date(i(t.dateString)),o={year:"numeric",month:"long",day:"numeric"};return s.toLocaleDateString(void 0,o)});return(s,o)=>(F(),N("dl",null,[L2e,D("dd",P2e,[D("time",{datetime:n.value},Ee(r.value),9,I2e)])]))}},B2e={components:{DateComponent:z2e},props:{currentDirectory:{type:String,required:!0}},setup(e){const{frontmatter:t}=I2(),n=qe([]),i=qe(!0),r=ve(()=>{const a=new Set;return e4.forEach(l=>{l.keywords&&l.keywords.forEach(u=>a.add(u))}),Array.from(a)}),s=()=>{i.value=!i.value},o=ve(()=>{const a=e.currentDirectory;return console.log(a),e4.filter(l=>{var d;const c=l.url.split("/").slice(-3,-2)[0]===a,f=n.value.length===0||((d=l.keywords)==null?void 0:d.some(h=>n.value.includes(h)));return c&&f})});return{frontmatter:t,selectedKeywords:n,allKeywords:r,filteredPosts:o,currentDirectory:e.currentDirectory,collapsed:i,toggleVisibility:s}}},pl=e=>(Si("data-v-2425968d"),e=e(),Ei(),e),U2e={class:"title-section"},j2e={key:0},V2e={key:1},q2e={key:2,class:"fill-current w-4 h-4 ml-1",version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 199.2 199.2","xml:space":"preserve",fill:"#000000"},H2e=pl(()=>D("g",{id:"SVGRepo_bgCarrier","stroke-width":"0"},null,-1)),W2e=pl(()=>D("g",{id:"SVGRepo_tracerCarrier","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)),G2e=pl(()=>D("g",{id:"SVGRepo_iconCarrier"},[D("g",null,[D("path",{d:"M173.811,119.9c-1.7-4.2-5.8-6.9-10.3-6.9h-22V11.1c0-6.1-4.9-11.1-11.1-11.1h-61.2 c-6.1,0-11.1,4.9-11.1,11.1V113h-22.4c-4.5,0-8.5,2.7-10.3,6.9c-1.7,4.2-0.8,8.9,2.4,12.1l63.9,63.9c2.2,2.2,5,3.3,7.9,3.3 c2.8,0,5.7-1.1,7.9-3.3l63.9-63.9C174.511,128.8,175.511,124,173.811,119.9z"})])],-1)),Y2e=[H2e,W2e,G2e],X2e={key:3,class:"fill-current w-4 h-4 ml-1",version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 199.2 199.2","xml:space":"preserve",fill:"#000000",transform:"rotate(180)"},K2e=pl(()=>D("g",{id:"SVGRepo_bgCarrier","stroke-width":"0"},null,-1)),J2e=pl(()=>D("g",{id:"SVGRepo_tracerCarrier","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)),Q2e=pl(()=>D("g",{id:"SVGRepo_iconCarrier"},[D("g",null,[D("path",{d:"M173.811,119.9c-1.7-4.2-5.8-6.9-10.3-6.9h-22V11.1c0-6.1-4.9-11.1-11.1-11.1h-61.2 c-6.1,0-11.1,4.9-11.1,11.1V113h-22.4c-4.5,0-8.5,2.7-10.3,6.9c-1.7,4.2-0.8,8.9,2.4,12.1l63.9,63.9c2.2,2.2,5,3.3,7.9,3.3 c2.8,0,5.7-1.1,7.9-3.3l63.9-63.9C174.511,128.8,175.511,124,173.811,119.9z"})])],-1)),Z2e=[K2e,J2e,Q2e],ebe={key:0},tbe={class:"divide-y divide-gray-200 dark:divide-slate-200/5"},nbe={class:"space-y-2 xl:grid xl:grid-cols-4 xl:space-y-0 xl:items-baseline"},ibe={class:"space-y-5 xl:col-span-3"},rbe={class:"space-y-6"},sbe={class:"text-2xl leading-8 font-bold tracking-tight"},obe=["href"],abe=["innerHTML"],lbe={key:1,class:"keywords"},ube=pl(()=>D("span",null,[D("strong",null,"Keywords: ")],-1)),cbe={key:0},fbe={class:"text-base leading-6 font-medium"},dbe=["href"];function hbe(e,t,n,i,r,s){const o=xs("v-select"),a=xs("DateComponent");return F(),N("div",null,[D("h2",U2e,"Explore all "+Ee(i.frontmatter.title)+" experiments",1),D("p",null,"See below to explore all experiments for "+Ee(i.frontmatter.title)+". You can use the select box to filter the experiments by keyword.",1),D("button",{class:"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-2 mb-4 rounded-full inline-flex items-center",onClick:t[0]||(t[0]=(...l)=>i.toggleVisibility&&i.toggleVisibility(...l))},[i.collapsed?(F(),N("span",j2e,"See experiments")):Z("",!0),i.collapsed?Z("",!0):(F(),N("span",V2e,"Hide experiments")),i.collapsed?(F(),N("svg",q2e,Y2e)):Z("",!0),i.collapsed?Z("",!0):(F(),N("svg",X2e,Z2e))]),i.collapsed?Z("",!0):(F(),N("div",ebe,[re(o,{class:"mt-4",modelValue:i.selectedKeywords,"onUpdate:modelValue":t[1]||(t[1]=l=>i.selectedKeywords=l),options:i.allKeywords,multiple:"",placeholder:"Filter experiments by keywords"},null,8,["modelValue","options"]),D("ul",tbe,[(F(!0),N(Le,null,mt(i.filteredPosts,(l,u)=>(F(),N("li",{class:"py-8",key:u},[D("article",nbe,[re(a,{dateString:l.date},null,8,["dateString"]),D("div",ibe,[D("div",rbe,[D("h2",sbe,[D("a",{href:l.url},Ee(l.title),9,obe)]),l.subtext?(F(),N("div",{key:0,class:"prose dark:prose-invert max-w-none",innerHTML:l.subtext},null,8,abe)):Z("",!0),l.keywords?(F(),N("div",lbe,[ube,(F(!0),N(Le,null,mt(l.keywords,(c,f)=>(F(),N("span",{key:f},[Wt(Ee(c),1),ft in e?xbe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Fl=(e,t)=>{for(var n in t||(t={}))$be.call(t,n)&&n4(e,n,t[n]);if(t4)for(var n of t4(t))Sbe.call(t,n)&&n4(e,n,t[n]);return e},i4=(e,t)=>_be(e,wbe(t));const Ebe={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(e){this.autoscroll&&e&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){var e;const t=((e=this.$refs.dropdownMenu)==null?void 0:e.children[this.typeAheadPointer])||!1;if(t){const n=this.getDropdownViewport(),{top:i,bottom:r,height:s}=t.getBoundingClientRect();if(in.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(n.height-s)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},kbe={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){for(let e=0;e=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown(){for(let e=this.typeAheadPointer+1;e{const n=e.__vccOpts||e;for(const[i,r]of t)n[i]=r;return n},Cbe={},Mbe={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"},Fbe=D("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1),Tbe=[Fbe];function Obe(e,t){return F(),N("svg",Mbe,Tbe)}const Nbe=bS(Cbe,[["render",Obe]]),Dbe={},Rbe={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"},Lbe=D("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1),Pbe=[Lbe];function Ibe(e,t){return F(),N("svg",Rbe,Pbe)}const zbe=bS(Dbe,[["render",Ibe]]),r4={Deselect:Nbe,OpenIndicator:zbe},Bbe={mounted(e,{instance:t}){if(t.appendToBody){const{height:n,top:i,left:r,width:s}=t.$refs.toggle.getBoundingClientRect();let o=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;e.unbindPosition=t.calculatePosition(e,t,{width:s+"px",left:o+r+"px",top:a+i+n+"px"}),document.body.appendChild(e)}},unmounted(e,{instance:t}){t.appendToBody&&(e.unbindPosition&&typeof e.unbindPosition=="function"&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}};function Ube(e){const t={};return Object.keys(e).sort().forEach(n=>{t[n]=e[n]}),JSON.stringify(t)}let jbe=0;function Vbe(){return++jbe}const qbe={components:Fl({},r4),directives:{appendToBody:Bbe},mixins:[Ebe,kbe,Abe],compatConfig:{MODE:3},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:e=>e},selectable:{type:Function,default:e=>!0},getOptionLabel:{type:Function,default(e){return typeof e=="object"?e.hasOwnProperty(this.label)?e[this.label]:console.warn(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(e)}. +`,S2e="chart-wrapper";function E2e(e){return typeof e=="function"}function J5(e,t,n,i){const r=`${t}
`,s=`
${n}`,o=window.open("");o.document.write(r+e+s),o.document.title=`${Zc[i]} JSON Source`}function k2e(e,t){if(e.$schema){const n=tR(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${Zc[n.library]}, but mode argument sets ${Zc[t]??t}.`);const i=n.library;return uR(Og[i],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${Zc[i]} ${n.version}, but the current version of ${Zc[i]} is v${Og[i]}.`),i}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":t??"vega"}function fR(e){return!!(e&&"load"in e)}function Q5(e){return fR(e)?e:dr.loader(e)}function A2e(e){var n;const t=((n=e.usermeta)==null?void 0:n.embedOptions)??{};return te(t.defaultStyle)&&(t.defaultStyle=!1),t}async function C2e(e,t,n={}){let i,r;te(t)?(r=Q5(n.loader),i=JSON.parse(await r.load(t))):i=t;const s=A2e(i),o=s.loader;(!r||o)&&(r=Q5(n.loader??o));const a=await Z5(s,r),l=await Z5(n,r),u={...cR(l,a),config:Du(l.config??{},a.config??{})};return await F2e(e,i,u,r)}async function Z5(e,t){const n=te(e.config)?JSON.parse(await t.load(e.config)):e.config??{},i=te(e.patch)?JSON.parse(await t.load(e.patch)):e.patch;return{...e,...i?{patch:i}:{},...n?{config:n}:{}}}function M2e(e){const t=e.getRootNode?e.getRootNode():document;return t instanceof ShadowRoot?{root:t,rootContainer:t}:{root:document,rootContainer:document.head??document.body}}async function F2e(e,t,n={},i){const r=n.theme?Du(lve[n.theme],n.config??{}):n.config,s=Co(n.actions)?n.actions:cR({},x2e,n.actions??{}),o={..._2e,...n.i18n},a=n.renderer??"canvas",l=n.logLevel??dr.Warn,u=n.downloadFileName??"visualization",c=typeof e=="string"?document.querySelector(e):e;if(!c)throw new Error(`${e} does not exist`);if(n.defaultStyle!==!1){const _="vega-embed-style",{root:$,rootContainer:w}=M2e(c);if(!$.getElementById(_)){const S=document.createElement("style");S.id=_,S.innerHTML=n.defaultStyle===void 0||n.defaultStyle===!0?v2e.toString():n.defaultStyle,w.appendChild(S)}}const f=k2e(t,n.mode);let d=w2e[f](t,r);if(f==="vega-lite"&&d.$schema){const _=tR(d.$schema);uR(Og.vega,`^${_.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${_.version}, but current version is v${Og.vega}.`)}c.classList.add("vega-embed"),s&&c.classList.add("has-actions"),c.innerHTML="";let h=c;if(s){const _=document.createElement("div");_.classList.add(S2e),c.appendChild(_),h=_}const p=n.patch;if(p&&(d=p instanceof Function?p(d):Vm(d,p,!0,!1).newDocument),n.formatLocale&&dr.formatLocale(n.formatLocale),n.timeFormatLocale&&dr.timeFormatLocale(n.timeFormatLocale),n.expressionFunctions)for(const _ in n.expressionFunctions){const $=n.expressionFunctions[_];"fn"in $?dr.expressionFunction(_,$.fn,$.visitor):$ instanceof Function&&dr.expressionFunction(_,$)}const{ast:g}=n,m=dr.parse(d,f==="vega-lite"?{}:r,{ast:g}),y=new(n.viewClass||dr.View)(m,{loader:i,logLevel:l,renderer:a,...g?{expr:dr.expressionInterpreter??n.expr??aye}:{}});if(y.addSignalListener("autosize",(_,$)=>{const{type:w}=$;w=="fit-x"?(h.classList.add("fit-x"),h.classList.remove("fit-y")):w=="fit-y"?(h.classList.remove("fit-x"),h.classList.add("fit-y")):w=="fit"?h.classList.add("fit-x","fit-y"):h.classList.remove("fit-x","fit-y")}),n.tooltip!==!1){const{loader:_,tooltip:$}=n,w=_&&!fR(_)?_==null?void 0:_.baseURL:void 0,S=E2e($)?$:new mve({baseURL:w,...$===!0?{}:$}).call;y.tooltip(S)}let{hover:v}=n;if(v===void 0&&(v=f==="vega"),v){const{hoverSet:_,updateSet:$}=typeof v=="boolean"?{}:v;y.hover(_,$)}n&&(n.width!=null&&y.width(n.width),n.height!=null&&y.height(n.height),n.padding!=null&&y.padding(n.padding)),await y.initialize(h,n.bind).runAsync();let b;if(s!==!1){let _=c;if(n.defaultStyle!==!1||n.forceActionsMenu){const w=document.createElement("details");w.title=o.CLICK_TO_VIEW_ACTIONS,c.append(w),_=w;const S=document.createElement("summary");S.innerHTML=$2e,w.append(S),b=M=>{w.contains(M.target)||w.removeAttribute("open")},document.addEventListener("click",b)}const $=document.createElement("div");if(_.append($),$.classList.add("vega-actions"),s===!0||s.export!==!1){for(const w of["svg","png"])if(s===!0||s.export===!0||s.export[w]){const S=o[`${w.toUpperCase()}_ACTION`],M=document.createElement("a"),k=ne(n.scaleFactor)?n.scaleFactor[w]:n.scaleFactor;M.text=S,M.href="#",M.target="_blank",M.download=`${u}.${w}`,M.addEventListener("mousedown",async function(A){A.preventDefault();const P=await y.toImageURL(w,k);this.href=P}),$.append(M)}}if(s===!0||s.source!==!1){const w=document.createElement("a");w.text=o.SOURCE_ACTION,w.href="#",w.addEventListener("click",function(S){J5(cy(t),n.sourceHeader??"",n.sourceFooter??"",f),S.preventDefault()}),$.append(w)}if(f==="vega-lite"&&(s===!0||s.compiled!==!1)){const w=document.createElement("a");w.text=o.COMPILED_ACTION,w.href="#",w.addEventListener("click",function(S){J5(cy(d),n.sourceHeader??"",n.sourceFooter??"","vega"),S.preventDefault()}),$.append(w)}if(s===!0||s.editor!==!1){const w=n.editorUrl??"https://vega.github.io/editor/",S=document.createElement("a");S.text=o.EDITOR_ACTION,S.href="#",S.addEventListener("click",function(M){y2e(window,w,{config:r,mode:f,renderer:a,spec:cy(t)}),M.preventDefault()}),$.append(S)}}function x(){b&&document.removeEventListener("click",b),y.finalize()}return{view:y,spec:t,vgSpec:d,finalize:x,embedOptions:n}}async function T2e(e){const i=new DOMParser().parseFromString(e,"text/html").querySelectorAll("script");let r="";if(i.forEach(c=>{c.textContent.includes("var spec =")&&(r=c.textContent)}),!r)throw new Error("Vega spec not found in the HTML document.");const s=r.indexOf("var spec =")+10,o=r.indexOf("};",s)+1,l=r.substring(s,o).trim();let u;try{u=JSON.parse(l)}catch(c){throw console.log(l),new Error("Error parsing Vega spec JSON: "+c.message)}return u}const O2e={name:"VegaChart",props:{specUrl:{type:String,required:!0}},mounted(){this.loadChart(this.specUrl)},methods:{async loadChart(e){try{const n=new URL(e).pathname,i=await fetch(e);let r;if(n.endsWith(".html")){const s=await i.text();r=await T2e(s)}else if(n.endsWith(".json"))r=await i.json();else{console.error("Unsupported file format");return}this.renderChart(r)}catch(t){console.error("Error loading Vega spec:",t)}},renderChart(e){C2e(this.$refs.vegaContainer,e,{renderer:"canvas",vega:TO,vegaLite:JD,actions:!1}).then(t=>{}).catch(console.error)}}},N2e={class:"vega-chart-container",ref:"vegaContainer",style:{width:"100%",height:"100%"}};function D2e(e,t,n,i,r,s){return F(),N("div",N2e,null,512)}const R2e=oe(O2e,[["render",D2e]]),e4=JSON.parse('[{"title":"Effects of mutations on ACE2 binding, serum escape and cell entry","url":"/experiments/sars2/posts/XBB.1.5_ACE2_binding_serum_escape_cell_entry.html","keywords":["XBB.1.5","Spike","Lentiviral Pseudotyping","ACE2 binding","cell entry","serum escape"],"date":"2023-11-13T00:00:00.000Z"},{"title":"Effects of mutations in BA.2 spike on ACE2 binding","url":"/experiments/sars2/posts/BA.2_ACE2_binding.html","keywords":["BA.2","Spike","Lentiviral Pseudotyping","ACE2 binding"],"date":"2023-11-12T00:00:00.000Z"}]'),L2e=D("dt",{class:"sr-only"},"Published on",-1),P2e={class:"date text-base leading-6 font-medium"},I2e=["datetime"],z2e={__name:"Date",props:{dateString:String},setup(e){const t=e,n=qe(new Date(t.dateString).toISOString());Ao(()=>t.dateString,s=>{n.value=new Date(i(s)).toISOString()},{immediate:!0});function i(s){var o=s.split(/\D+/),a=new Date(Date.UTC(o[0],--o[1],o[2]));return new Date(a.getTime()+a.getTimezoneOffset()*6e4)}const r=ve(()=>{const s=new Date(i(t.dateString)),o={year:"numeric",month:"long",day:"numeric"};return s.toLocaleDateString(void 0,o)});return(s,o)=>(F(),N("dl",null,[L2e,D("dd",P2e,[D("time",{datetime:n.value},Ee(r.value),9,I2e)])]))}},B2e={components:{DateComponent:z2e},props:{currentDirectory:{type:String,required:!0}},setup(e){const{frontmatter:t}=I2(),n=qe([]),i=qe(!0),r=ve(()=>{const a=new Set;return e4.forEach(l=>{l.keywords&&l.keywords.forEach(u=>a.add(u))}),Array.from(a)}),s=()=>{i.value=!i.value},o=ve(()=>{const a=e.currentDirectory;return console.log(a),e4.filter(l=>{var d;const c=l.url.split("/").slice(-3,-2)[0]===a,f=n.value.length===0||((d=l.keywords)==null?void 0:d.some(h=>n.value.includes(h)));return c&&f})});return{frontmatter:t,selectedKeywords:n,allKeywords:r,filteredPosts:o,currentDirectory:e.currentDirectory,collapsed:i,toggleVisibility:s}}},pl=e=>(Si("data-v-2425968d"),e=e(),Ei(),e),U2e={class:"title-section"},j2e={key:0},V2e={key:1},q2e={key:2,class:"fill-current w-4 h-4 ml-1",version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 199.2 199.2","xml:space":"preserve",fill:"#000000"},H2e=pl(()=>D("g",{id:"SVGRepo_bgCarrier","stroke-width":"0"},null,-1)),W2e=pl(()=>D("g",{id:"SVGRepo_tracerCarrier","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)),G2e=pl(()=>D("g",{id:"SVGRepo_iconCarrier"},[D("g",null,[D("path",{d:"M173.811,119.9c-1.7-4.2-5.8-6.9-10.3-6.9h-22V11.1c0-6.1-4.9-11.1-11.1-11.1h-61.2 c-6.1,0-11.1,4.9-11.1,11.1V113h-22.4c-4.5,0-8.5,2.7-10.3,6.9c-1.7,4.2-0.8,8.9,2.4,12.1l63.9,63.9c2.2,2.2,5,3.3,7.9,3.3 c2.8,0,5.7-1.1,7.9-3.3l63.9-63.9C174.511,128.8,175.511,124,173.811,119.9z"})])],-1)),Y2e=[H2e,W2e,G2e],X2e={key:3,class:"fill-current w-4 h-4 ml-1",version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 199.2 199.2","xml:space":"preserve",fill:"#000000",transform:"rotate(180)"},K2e=pl(()=>D("g",{id:"SVGRepo_bgCarrier","stroke-width":"0"},null,-1)),J2e=pl(()=>D("g",{id:"SVGRepo_tracerCarrier","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)),Q2e=pl(()=>D("g",{id:"SVGRepo_iconCarrier"},[D("g",null,[D("path",{d:"M173.811,119.9c-1.7-4.2-5.8-6.9-10.3-6.9h-22V11.1c0-6.1-4.9-11.1-11.1-11.1h-61.2 c-6.1,0-11.1,4.9-11.1,11.1V113h-22.4c-4.5,0-8.5,2.7-10.3,6.9c-1.7,4.2-0.8,8.9,2.4,12.1l63.9,63.9c2.2,2.2,5,3.3,7.9,3.3 c2.8,0,5.7-1.1,7.9-3.3l63.9-63.9C174.511,128.8,175.511,124,173.811,119.9z"})])],-1)),Z2e=[K2e,J2e,Q2e],ebe={key:0},tbe={class:"divide-y divide-gray-200 dark:divide-slate-200/5"},nbe={class:"space-y-2 xl:grid xl:grid-cols-4 xl:space-y-0 xl:items-baseline"},ibe={class:"space-y-5 xl:col-span-3"},rbe={class:"space-y-6"},sbe={class:"text-2xl leading-8 font-bold tracking-tight"},obe=["href"],abe=["innerHTML"],lbe={key:1,class:"keywords"},ube=pl(()=>D("span",null,[D("strong",null,"Keywords: ")],-1)),cbe={key:0},fbe={class:"text-base leading-6 font-medium"},dbe=["href"];function hbe(e,t,n,i,r,s){const o=xs("v-select"),a=xs("DateComponent");return F(),N("div",null,[D("h2",U2e,"Explore all "+Ee(i.frontmatter.title)+" experiments",1),D("p",null,"See below to explore all experiments for "+Ee(i.frontmatter.title)+". You can use the select box to filter the experiments by keyword.",1),D("button",{class:"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-2 mb-4 rounded-full inline-flex items-center",onClick:t[0]||(t[0]=(...l)=>i.toggleVisibility&&i.toggleVisibility(...l))},[i.collapsed?(F(),N("span",j2e,"See experiments")):Z("",!0),i.collapsed?Z("",!0):(F(),N("span",V2e,"Hide experiments")),i.collapsed?(F(),N("svg",q2e,Y2e)):Z("",!0),i.collapsed?Z("",!0):(F(),N("svg",X2e,Z2e))]),i.collapsed?Z("",!0):(F(),N("div",ebe,[re(o,{class:"mt-4",modelValue:i.selectedKeywords,"onUpdate:modelValue":t[1]||(t[1]=l=>i.selectedKeywords=l),options:i.allKeywords,multiple:"",placeholder:"Filter experiments by keywords"},null,8,["modelValue","options"]),D("ul",tbe,[(F(!0),N(Le,null,mt(i.filteredPosts,(l,u)=>(F(),N("li",{class:"py-8",key:u},[D("article",nbe,[re(a,{dateString:l.date},null,8,["dateString"]),D("div",ibe,[D("div",rbe,[D("h2",sbe,[D("a",{href:l.url},Ee(l.title),9,obe)]),l.subtext?(F(),N("div",{key:0,class:"prose dark:prose-invert max-w-none",innerHTML:l.subtext},null,8,abe)):Z("",!0),l.keywords?(F(),N("div",lbe,[ube,(F(!0),N(Le,null,mt(l.keywords,(c,f)=>(F(),N("span",{key:f},[Wt(Ee(c),1),ft in e?xbe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Fl=(e,t)=>{for(var n in t||(t={}))$be.call(t,n)&&n4(e,n,t[n]);if(t4)for(var n of t4(t))Sbe.call(t,n)&&n4(e,n,t[n]);return e},i4=(e,t)=>_be(e,wbe(t));const Ebe={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(e){this.autoscroll&&e&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){var e;const t=((e=this.$refs.dropdownMenu)==null?void 0:e.children[this.typeAheadPointer])||!1;if(t){const n=this.getDropdownViewport(),{top:i,bottom:r,height:s}=t.getBoundingClientRect();if(in.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(n.height-s)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},kbe={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){for(let e=0;e=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown(){for(let e=this.typeAheadPointer+1;e{const n=e.__vccOpts||e;for(const[i,r]of t)n[i]=r;return n},Cbe={},Mbe={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"},Fbe=D("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1),Tbe=[Fbe];function Obe(e,t){return F(),N("svg",Mbe,Tbe)}const Nbe=bS(Cbe,[["render",Obe]]),Dbe={},Rbe={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"},Lbe=D("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1),Pbe=[Lbe];function Ibe(e,t){return F(),N("svg",Rbe,Pbe)}const zbe=bS(Dbe,[["render",Ibe]]),r4={Deselect:Nbe,OpenIndicator:zbe},Bbe={mounted(e,{instance:t}){if(t.appendToBody){const{height:n,top:i,left:r,width:s}=t.$refs.toggle.getBoundingClientRect();let o=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;e.unbindPosition=t.calculatePosition(e,t,{width:s+"px",left:o+r+"px",top:a+i+n+"px"}),document.body.appendChild(e)}},unmounted(e,{instance:t}){t.appendToBody&&(e.unbindPosition&&typeof e.unbindPosition=="function"&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}};function Ube(e){const t={};return Object.keys(e).sort().forEach(n=>{t[n]=e[n]}),JSON.stringify(t)}let jbe=0;function Vbe(){return++jbe}const qbe={components:Fl({},r4),directives:{appendToBody:Bbe},mixins:[Ebe,kbe,Abe],compatConfig:{MODE:3},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:e=>e},selectable:{type:Function,default:e=>!0},getOptionLabel:{type:Function,default(e){return typeof e=="object"?e.hasOwnProperty(this.label)?e[this.label]:console.warn(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(e)}. https://vue-select.org/api/props.html#getoptionlabel`):e}},getOptionKey:{type:Function,default(e){if(typeof e!="object")return e;try{return e.hasOwnProperty("id")?e.id:Ube(e)}catch(t){return console.warn(`[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option. https://vue-select.org/api/props.html#getoptionkey`,e,t)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(e,t,n){return(t||"").toLocaleLowerCase().indexOf(n.toLocaleLowerCase())>-1}},filter:{type:Function,default(e,t){return e.filter(n=>{let i=this.getOptionLabel(n);return typeof i=="number"&&(i=i.toString()),this.filterBy(n,i,t)})}},createOption:{type:Function,default(e){return typeof this.optionList[0]=="object"?{[this.label]:e}:e}},resetOnOptionsChange:{default:!1,validator:e=>["function","boolean"].includes(typeof e)},clearSearchOnBlur:{type:Function,default:function({clearSearchOnSelect:e,multiple:t}){return e&&!t}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:(e,t)=>e},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(e,t,{width:n,top:i,left:r}){e.style.top=i,e.style.left=r,e.style.width=n}},dropdownShouldOpen:{type:Function,default({noDrop:e,open:t,mutableLoading:n}){return e?!1:t&&!n}},uid:{type:[String,Number],default:()=>Vbe()}},data(){return{search:"",open:!1,isComposing:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let e=this.modelValue;return this.isTrackingValues&&(e=this.$data._value),e!=null&&e!==""?[].concat(e):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const e={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:Fl({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,"aria-autocomplete":"list","aria-labelledby":`vs${this.uid}__combobox`,"aria-controls":`vs${this.uid}__listbox`,ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs${this.uid}__option-${this.typeAheadPointer}`}:{}),events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:t=>this.search=t.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:e,listFooter:e,header:i4(Fl({},e),{deselect:this.deselect}),footer:i4(Fl({},e),{deselect:this.deselect})}},childComponents(){return Fl(Fl({},r4),this.components)},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const e=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e;const t=this.search.length?this.filter(e,this.search,this):e;if(this.taggable&&this.search.length){const n=this.createOption(this.search);this.optionExists(n)||t.unshift(n)}return t},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(e,t){const n=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(e,t,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&n()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple(){this.clearSelection()},open(e){this.$emit(e?"open":"close")}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(e){Array.isArray(e)?this.$data._value=e.map(t=>this.findOptionFromReducedValue(t)):this.$data._value=this.findOptionFromReducedValue(e)},select(e){this.$emit("option:selecting",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&(this.$emit("option:created",e),this.pushTag(e)),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit("option:selected",e)),this.onAfterSelect(e)},deselect(e){this.$emit("option:deselecting",e),this.updateValue(this.selectedValue.filter(t=>!this.optionComparator(t,e))),this.$emit("option:deselected",e)},clearSelection(){this.updateValue(this.multiple?[]:null)},onAfterSelect(e){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search="")},updateValue(e){typeof this.modelValue>"u"&&(this.$data._value=e),e!==null&&(Array.isArray(e)?e=e.map(t=>this.reduce(t)):e=this.reduce(e)),this.$emit("update:modelValue",e)},toggleDropdown(e){const t=e.target!==this.searchEl;t&&e.preventDefault();const n=[...this.deselectButtons||[],this.$refs.clearButton];if(this.searchEl===void 0||n.filter(Boolean).some(i=>i.contains(e.target)||i===e.target)){e.preventDefault();return}this.open&&t?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(e){return this.selectedValue.some(t=>this.optionComparator(t,e))},isOptionDeselectable(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},optionComparator(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue(e){const t=i=>JSON.stringify(this.reduce(i))===JSON.stringify(e),n=[...this.options,...this.pushedTags].filter(t);return n.length===1?n[0]:n.find(i=>this.optionComparator(i,this.$data._value))||e},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let e=null;this.multiple&&(e=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(e)}},optionExists(e){return this.optionList.some(t=>this.optionComparator(t,e))},normalizeOptionForSlot(e){return typeof e=="object"?e:{[this.label]:e}},pushTag(e){this.pushedTags.push(e)},onEscape(){this.search.length?this.search="":this.searchEl.blur()},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:e,multiple:t}=this;this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=""),this.closeSearchOptions();return}if(this.search.length===0&&this.options.length===0){this.closeSearchOptions();return}},onSearchFocus(){this.open=!0,this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onSearchKeyDown(e){const t=r=>(r.preventDefault(),!this.isComposing&&this.typeAheadSelect()),n={8:r=>this.maybeDeleteValue(),9:r=>this.onTab(),27:r=>this.onEscape(),38:r=>(r.preventDefault(),this.typeAheadUp()),40:r=>(r.preventDefault(),this.typeAheadDown())};this.selectOnKeyCodes.forEach(r=>n[r]=t);const i=this.mapKeydown(n,this);if(typeof i[e.keyCode]=="function")return i[e.keyCode](e)}}},Hbe=["dir"],Wbe=["id","aria-expanded","aria-owns"],Gbe={ref:"selectedOptions",class:"vs__selected-options"},Ybe=["disabled","title","aria-label","onClick"],Xbe={ref:"actions",class:"vs__actions"},Kbe=["disabled"],Jbe={class:"vs__spinner"},Qbe=["id"],Zbe=["id","aria-selected","onMouseover","onClick"],exe={key:0,class:"vs__no-options"},txe=Wt(" Sorry, no matching options. "),nxe=["id"];function ixe(e,t,n,i,r,s){const o=wR("append-to-body");return F(),N("div",{dir:n.dir,class:Ke(["v-select",s.stateClasses])},[V(e.$slots,"header",Mi(ar(s.scope.header))),D("div",{id:`vs${n.uid}__combobox`,ref:"toggle",class:"vs__dropdown-toggle",role:"combobox","aria-expanded":s.dropdownOpen.toString(),"aria-owns":`vs${n.uid}__listbox`,"aria-label":"Search for option",onMousedown:t[1]||(t[1]=a=>s.toggleDropdown(a))},[D("div",Gbe,[(F(!0),N(Le,null,mt(s.selectedValue,(a,l)=>V(e.$slots,"selected-option-container",{option:s.normalizeOptionForSlot(a),deselect:s.deselect,multiple:n.multiple,disabled:n.disabled},()=>[(F(),N("span",{key:n.getOptionKey(a),class:"vs__selected"},[V(e.$slots,"selected-option",Mi(ar(s.normalizeOptionForSlot(a))),()=>[Wt(Ee(n.getOptionLabel(a)),1)]),n.multiple?(F(),N("button",{key:0,ref_for:!0,ref:u=>r.deselectButtons[l]=u,disabled:n.disabled,type:"button",class:"vs__deselect",title:`Deselect ${n.getOptionLabel(a)}`,"aria-label":`Deselect ${n.getOptionLabel(a)}`,onClick:u=>s.deselect(a)},[(F(),ye(xr(s.childComponents.Deselect)))],8,Ybe)):Z("",!0)]))])),256)),V(e.$slots,"search",Mi(ar(s.scope.search)),()=>[D("input",Bl({class:"vs__search"},s.scope.search.attributes,h4(s.scope.search.events)),null,16)])],512),D("div",Xbe,[Wm(D("button",{ref:"clearButton",disabled:n.disabled,type:"button",class:"vs__clear",title:"Clear Selected","aria-label":"Clear Selected",onClick:t[0]||(t[0]=(...a)=>s.clearSelection&&s.clearSelection(...a))},[(F(),ye(xr(s.childComponents.Deselect)))],8,Kbe),[[_S,s.showClearButton]]),V(e.$slots,"open-indicator",Mi(ar(s.scope.openIndicator)),()=>[n.noDrop?Z("",!0):(F(),ye(xr(s.childComponents.OpenIndicator),Mi(Bl({key:0},s.scope.openIndicator.attributes)),null,16))]),V(e.$slots,"spinner",Mi(ar(s.scope.spinner)),()=>[Wm(D("div",Jbe,"Loading...",512),[[_S,e.mutableLoading]])])],512)],40,Wbe),re(Ng,{name:n.transition},{default:J(()=>[s.dropdownOpen?Wm((F(),N("ul",{id:`vs${n.uid}__listbox`,ref:"dropdownMenu",key:`vs${n.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox",tabindex:"-1",onMousedown:t[2]||(t[2]=wy((...a)=>s.onMousedown&&s.onMousedown(...a),["prevent"])),onMouseup:t[3]||(t[3]=(...a)=>s.onMouseUp&&s.onMouseUp(...a))},[V(e.$slots,"list-header",Mi(ar(s.scope.listHeader))),(F(!0),N(Le,null,mt(s.filteredOptions,(a,l)=>(F(),N("li",{id:`vs${n.uid}__option-${l}`,key:n.getOptionKey(a),role:"option",class:Ke(["vs__dropdown-option",{"vs__dropdown-option--deselect":s.isOptionDeselectable(a)&&l===e.typeAheadPointer,"vs__dropdown-option--selected":s.isOptionSelected(a),"vs__dropdown-option--highlight":l===e.typeAheadPointer,"vs__dropdown-option--disabled":!n.selectable(a)}]),"aria-selected":l===e.typeAheadPointer?!0:null,onMouseover:u=>n.selectable(a)?e.typeAheadPointer=l:null,onClick:wy(u=>n.selectable(a)?s.select(a):null,["prevent","stop"])},[V(e.$slots,"option",Mi(ar(s.normalizeOptionForSlot(a))),()=>[Wt(Ee(n.getOptionLabel(a)),1)])],42,Zbe))),128)),s.filteredOptions.length===0?(F(),N("li",exe,[V(e.$slots,"no-options",Mi(ar(s.scope.noOptions)),()=>[txe])])):Z("",!0),V(e.$slots,"list-footer",Mi(ar(s.scope.listFooter)))],40,Qbe)),[[o]]):(F(),N("ul",{key:1,id:`vs${n.uid}__listbox`,role:"listbox",style:{display:"none",visibility:"hidden"}},null,8,nxe))]),_:3},8,["name"]),V(e.$slots,"footer",Mi(ar(s.scope.footer)))],10,Hbe)}const rxe=bS(qbe,[["render",ixe]]),sxe=e=>(Si("data-v-65f6c1c1"),e=e(),Ei(),e),oxe=["href"],axe={class:"box"},lxe=sxe(()=>D("i",{class:"bi bi-pin-angle pin-icon"},null,-1)),uxe=["innerHTML"],cxe=["innerHTML"],fxe={key:1,class:"link-text"},dxe={class:"link-text-value"},hxe={__name:"Pin",props:{title:String,details:String,link:String,linkText:String},setup(e){return(t,n)=>(F(),N("a",{href:e.link,class:"Pin"},[D("article",axe,[lxe,D("div",{class:"title",innerHTML:e.title},null,8,uxe),e.details?(F(),N("p",{key:0,class:"details",innerHTML:e.details},null,8,cxe)):Z("",!0),e.linkText?(F(),N("div",fxe,[D("p",dxe,Ee(e.linkText),1)])):Z("",!0)])],8,oxe))}},pxe=oe(hxe,[["__scopeId","data-v-65f6c1c1"]]),gxe={key:0,class:"Pins"},mxe={class:"container"},yxe={class:"items"},vxe={__name:"Pins",props:{pins:Array},setup(e){const t=e,n=ve(()=>{const i=t.pins.length;if(i){if(i===2)return"grid-2";if(i===3)return"grid-3";if(i%3===0)return"grid-6";if(i>3)return"grid-4"}else return});return(i,r)=>e.pins?(F(),N("div",gxe,[D("div",mxe,[D("div",yxe,[(F(!0),N(Le,null,mt(e.pins,s=>(F(),N("div",{key:s.title,class:Ke(["item",[n.value]])},[re(pxe,{icon:s.icon,title:s.title,details:s.details,link:s.link,"link-text":s.linkText,rel:s.rel,target:s.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):Z("",!0)}},bxe=oe(vxe,[["__scopeId","data-v-0342b00a"]]),xxe=D("h2",{class:"section-header"},"Key Experiments",-1),_xe={class:"template-container"},wxe=ce({__name:"PinnedExperiments",setup(e){const{frontmatter:t}=I2();return(n,i)=>(F(),N("div",null,[xxe,D("div",_xe,[R(t).pins?(F(),ye(bxe,{key:0,class:"VirusPins",pins:R(t).pins},null,8,["pins"])):Z("",!0)])]))}}),a_e={extends:ES,Layout:()=>wS(ES.Layout,null,{"home-features-after":()=>wS(kU)}),enhanceApp({app:e,router:t,siteData:n}){e.component("Altair",R2e),e.component("Experiments",pbe),e.component("Header",bbe),e.component("PinnedExperiments",wxe),e.component("v-select",rxe)}};export{a_e as R}; diff --git a/contributing.html b/contributing.html index fc4b1bc..83900bc 100644 --- a/contributing.html +++ b/contributing.html @@ -8,10 +8,10 @@ - + - + @@ -131,7 +131,7 @@ height="600px" style="border:0; margin: 0 auto; display: block; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);"> </iframe>

Which will result in a view of the URL provided to the src property of the iframe. The result looks like this:

You can simply copy this code and replace the URL with the URL to your website of choice.

Style Guide

In progress...

Released under the MIT License.

- + \ No newline at end of file diff --git a/experiments/h5n1/index.html b/experiments/h5n1/index.html index c08e08b..ff7c786 100644 --- a/experiments/h5n1/index.html +++ b/experiments/h5n1/index.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

Influenza H5N1

In Progress...

Released under the MIT License.

- + \ No newline at end of file diff --git a/experiments/hiv/index.html b/experiments/hiv/index.html index b7b51a3..7047048 100644 --- a/experiments/hiv/index.html +++ b/experiments/hiv/index.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

HIV

In Progress...

Released under the MIT License.

- + \ No newline at end of file diff --git a/experiments/lassa/index.html b/experiments/lassa/index.html index 2662056..b9578d8 100644 --- a/experiments/lassa/index.html +++ b/experiments/lassa/index.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

Lassa

In Progress...

Released under the MIT License.

- + \ No newline at end of file diff --git a/experiments/nipah/index.html b/experiments/nipah/index.html index 5788de3..225657a 100644 --- a/experiments/nipah/index.html +++ b/experiments/nipah/index.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

Nipah

In Progress...

Released under the MIT License.

- + \ No newline at end of file diff --git a/experiments/sars2/index.html b/experiments/sars2/index.html index e19f935..07626ec 100644 --- a/experiments/sars2/index.html +++ b/experiments/sars2/index.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

SARS-CoV-2

Deep mutational scanning of the SARS-CoV-2 spike.

SARS-CoV-2 lentiviral deep mutational scanning datasets

The pinned posts above include the most up to date data on the effects of mutations on various SARS-CoV-2 spike phenotypes. For datasets related to other studies using lentiviral deep mutational scanning system for spike see experiments section below.

Explore all SARS-CoV-2 experiments

See below to explore all experiments for SARS-CoV-2. You can use the select box to filter the experiments by keyword.

Released under the MIT License.

- + \ No newline at end of file diff --git a/experiments/sars2/posts/BA.2_ACE2_binding.html b/experiments/sars2/posts/BA.2_ACE2_binding.html index 22c6e2b..45acd23 100644 --- a/experiments/sars2/posts/BA.2_ACE2_binding.html +++ b/experiments/sars2/posts/BA.2_ACE2_binding.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

Effects of mutations in BA.2 spike on ACE2 binding

Study by Bernadeta Dadonaite, Jesse Bloom, et al. The pre-print for this study is here.

Effects of mutations to BA.2 spike on ACE2 binding

Plot below shows how mutations to BA.2 spike affect monomeric ACE2 binding.

This is is an interactive chart. Mouseover points for details and use the top zoom bar to zoom in on specific sites.

Analysis by Dadonaite et al., bioRxiv, DOI 10.1101/2023.11.13.566961 (2023).

See https://github.com/dms-vep/SARS-CoV-2_XBB.1.5_spike_DMS for code/data.

Data above was generated using lentiviral deep mutational scanning system described in Dadonaite et al., Cell, (2023).

Released under the MIT License.

- + \ No newline at end of file diff --git a/experiments/sars2/posts/XBB.1.5_ACE2_binding_serum_escape_cell_entry.html b/experiments/sars2/posts/XBB.1.5_ACE2_binding_serum_escape_cell_entry.html index 4bb14d1..d83025a 100644 --- a/experiments/sars2/posts/XBB.1.5_ACE2_binding_serum_escape_cell_entry.html +++ b/experiments/sars2/posts/XBB.1.5_ACE2_binding_serum_escape_cell_entry.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

Effects of mutations on ACE2 binding, serum escape and cell entry

Study by Bernadeta Dadonaite, Jesse Bloom, et al. The pre-print for this study is here.

Effects of mutations to XBB.1.5 spike on escape from serum antibodies, ACE2-mediated cell entry, and ACE2 binding

Plot below shows how mutations to XBB.1.5 spike affect ACE2 binding, XBB breakthrough sera escape, and ACE2-mediated cell entry. Serum escape data is and average escape of sera from 10 individual with who all had XBB* breakthrough infection. ACE2 binding experiments were done with monomeric ACE2. Cell entry experiments were performed using 293T cells overexpressing ACE2.

This is is an interactive chart. Mouseover points for details and measurements, and use the top zoom bar to zoom in on specific sites. The options at the bottom let you only show escape for sites with some minimal functional effect, choose the site summary metric, or floor the escape at zero.

The line plots at top show the escape at each site across all sera and for individual sera, and the heatmaps show the effects of individual mutations on sera escape or functions of the protein.

Analysis by Dadonaite et al., bioRxiv, DOI 10.1101/2023.11.13.566961 (2023).

See https://github.com/dms-vep/SARS-CoV-2_XBB.1.5_spike_DMS for code/data.

Data above was generated using lentiviral deep mutational scanning system described in Dadonaite et al., Cell, (2023).

Released under the MIT License.

- + \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index 88c716b..85499de 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"readme.md":"77v1-gTm","experiments_sars2_posts_ba.2_ace2_binding.md":"kym_gULL","experiments_hiv_index.md":"Ix2T0uYd","about.md":"1u4foWj9","experiments_nipah_index.md":"28FnAjgZ","methodology.md":"3Y_om8lb","experiments_sars2_index.md":"gLT0CT39","experiments_h5n1_index.md":"Q_ivMFOg","index.md":"hN7jdcBR","contributing.md":"Mcob93uJ","experiments_sars2_posts_xbb.1.5_ace2_binding_serum_escape_cell_entry.md":"ryANYvpj","experiments_lassa_index.md":"HpmMrbl9"} +{"experiments_sars2_posts_ba.2_ace2_binding.md":"kym_gULL","methodology.md":"3Y_om8lb","experiments_sars2_index.md":"gLT0CT39","experiments_hiv_index.md":"Ix2T0uYd","readme.md":"77v1-gTm","experiments_nipah_index.md":"28FnAjgZ","experiments_h5n1_index.md":"Q_ivMFOg","experiments_lassa_index.md":"HpmMrbl9","experiments_sars2_posts_xbb.1.5_ace2_binding_serum_escape_cell_entry.md":"ryANYvpj","about.md":"1u4foWj9","index.md":"hN7jdcBR","contributing.md":"Mcob93uJ"} diff --git a/index.html b/index.html index 5c723c3..bec8367 100644 --- a/index.html +++ b/index.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

DMS VEP

An archive of deep mutational scanning (DMS) experiments of viral entry proteins (VEPs)

Contributors

Released under the MIT License.

- + \ No newline at end of file diff --git a/methodology.html b/methodology.html index 8c42d88..850e478 100644 --- a/methodology.html +++ b/methodology.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@
Skip to content

Methodology

This page contains details on the methodologies used to generate the data in this website.

Released under the MIT License.

- + \ No newline at end of file