CINXE.COM
Submission portal | Pathoplexus
<!DOCTYPE html><html lang="en"> <head><meta charset="utf-8"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="preload" as="image" href="/favicon.svg"><meta name="viewport" content="width=device-width"><meta name="generator" content="Astro v4.16.7"><meta property="og:url" content="https://pathoplexus.org/cchf/submission"><meta property="og:title" content="Pathoplexus | Submission portal"><meta property="twitter:url" content="https://pathoplexus.org/cchf/submission"><meta property="twitter:title" content="Pathoplexus | Submission portal"><title>Submission portal | Pathoplexus</title><script defer data-domain="pathoplexus.org" src="https://plausible.io/js/script.file-downloads.hash.outbound-links.js"></script><script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script><meta property="og:type" content="website" /><meta property="og:image" content="https://pathoplexus.org/images/pathoplexus-preview.png" /><meta property="og:description" content="Pathoplexus is a new, open-source database dedicated to the efficient sharing of human viral pathogen genomic data, fostering global collaboration and public health response." /><link rel="stylesheet" href="/_astro/index.D6vbhmQH.css"> <link rel="stylesheet" href="/_astro/index.BBas0nkL.css"></head> <body> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();;(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="14XKQ5" prefix="r0" component-url="/_astro/Banner._VYySrz3.js" component-export="Banner" renderer-url="/_astro/client.CManSo_T.js" props="{"message":[0],"lastTimeBannerWasClosed":[0],"serverTime":[0,1732736290675]}" ssr="" client="load" opts="{"name":"Banner","value":true}"></astro-island> <div class="flex flex-col min-h-screen w-11/12 mx-auto"> <astro-island uid="ZW749X" prefix="r1" component-url="/_astro/_astro-entry_react-toastify.BtmXnCde.js" component-export="ToastContainer" renderer-url="/_astro/client.CManSo_T.js" props="{}" ssr="" client="load" opts="{"name":"ToastContainer","value":true}" await-children=""><div class="Toastify"></div><!--astro:end--></astro-island> <header class="bg-white h-fit z-30"> <nav class="flex justify-between items-center p-4"> <div class="flex justify-start"> <div class="flex flex-col"> <div class="flex flex-row pb-3"> <a href="/"><img class="h-8 mr-4" src="/favicon.svg" alt="icon" style="aspect-ratio:100/100"></a> <a href="/" class="fancytitle mr-4">Pathoplexus</a> </div> <div class="dropdown dropdown-hover flex relative"> <label tabindex="0" class="py-1 block text-primary-1500 cursor-pointer"> Crimean-Congo Hemorrhagic Fever Virus <span class="text-primary"> <svg viewBox="0 0 40 40" width="1.2em" height="1.2em" class="inline-block -mt-1 ml-1 h-4 w-4"><path fill="currentColor" d="M4.659 11.833h30.682L20 32.167z"></path></svg></span> </label> <ul tabindex="0" class="dropdown-content z-20 menu p-1 shadow bg-base-100 rounded-btn absolute top-full -left-4"> <li> <a href="/cchf/submission" class="text-primary-1500"> Crimean-Congo Hemorrhagic Fever Virus </a> </li><li> <a href="/ebola-sudan/submission" class="text-primary-1500"> Ebola Sudan </a> </li><li> <a href="/ebola-zaire/submission" class="text-primary-1500"> Ebola Zaire </a> </li><li> <a href="/west-nile/submission" class="text-primary-1500"> West Nile Virus </a> </li> </ul> </div> </div> </div> <div class="flex justify-end relative"> <div class="subtitle hidden md:flex md:z-6 gap-4"> <a href="/cchf/search">Browse</a><a href="/cchf/submission">Submit</a><a href="/seqsets">SeqSets</a><a href="/news">News</a><a href="/about">About</a><a href="/docs/">Docs</a><a href="https://authentication.pathoplexus.org/realms/loculus/protocol/openid-connect/auth?client_id=backend-client&scope=openid&response_type=code&redirect_uri=https%3A%2F%2Fpathoplexus.org%2Fcchf%2Fsubmission">Login</a> </div> <div class="md:hidden z-0" style="position:absolute;right:1.5rem;top:-2rem"> <astro-island uid="ZXtlT5" prefix="r3" component-url="/_astro/SandwichMenu.Dx3CfgfB.js" component-export="SandwichMenu" renderer-url="/_astro/client.CManSo_T.js" props="{"topNavigationItems":[1,[[0,{"text":[0,"Browse"],"path":[0,"/cchf/search"]}],[0,{"text":[0,"Submit"],"path":[0,"/cchf/submission"]}],[0,{"text":[0,"SeqSets"],"path":[0,"/seqsets"]}],[0,{"text":[0,"News"],"path":[0,"/news"]}],[0,{"text":[0,"About"],"path":[0,"/about"]}],[0,{"text":[0,"Docs"],"path":[0,"/docs/"]}],[0,{"text":[0,"Login"],"path":[0,"https://authentication.pathoplexus.org/realms/loculus/protocol/openid-connect/auth?client_id=backend-client&scope=openid&response_type=code&redirect_uri=https%3A%2F%2Fpathoplexus.org%2Fcchf%2Fsubmission"]}]]],"gitHubMainUrl":[0,"https://github.com/loculus-project/loculus"]}" ssr="" client="load" opts="{"name":"SandwichMenu","value":true}" await-children=""><div class="relative"><button class="absolute z-50 bg-transparent border-none cursor-pointer"><div class="relative" aria-label="main menu"><div class="hamburger"><div class="burger bg-primary-600 burger1--closed"></div><div class="burger bg-primary-600 burger2--closed"></div><div class="burger bg-primary-600 burger3--closed"></div></div><style> .hamburger { width: 2rem; height: 2rem; display: flex; justify-content: space-around; flex-flow: column nowrap; z-index: 1001; } .burger { width: 2rem; height: 0.25rem; border-radius: 10px; transform-origin: 1px; transition: all 0.3s linear; } .burger1--open { transform: rotate(45deg); } .burger1--closed { transform: rotate(0); } .burger2--open { opacity: 0; } .burger2--closed { opacity: 1; } .burger3--open { transform: rotate(-45deg); } .burger3--closed { transform: rotate(0); } </style></div></button><div class="fixed top-0 right-0 bg-white w-64 min-h-screen flex flex-col offCanvasTransform translate-x-full"><button class="absolute z-50 bg-transparent border-none cursor-pointer right-3 top-4"><div class="relative" aria-label="main menu"><div class="hamburger"><div class="burger bg-primary-600 burger1--closed"></div><div class="burger bg-primary-600 burger2--closed"></div><div class="burger bg-primary-600 burger3--closed"></div></div><style> .hamburger { width: 2rem; height: 2rem; display: flex; justify-content: space-around; flex-flow: column nowrap; z-index: 1001; } .burger { width: 2rem; height: 0.25rem; border-radius: 10px; transform-origin: 1px; transition: all 0.3s linear; } .burger1--open { transform: rotate(45deg); } .burger1--closed { transform: rotate(0); } .burger2--open { opacity: 0; } .burger2--closed { opacity: 1; } .burger3--open { transform: rotate(-45deg); } .burger3--closed { transform: rotate(0); } </style></div></button><div class="font-bold p-5 flex flex-col justify-between min-h-screen max-h-screen overflow-y-auto"><div><div class="h-10"><a href="/">Loculus</a></div><div class="flex-grow divide-y-2 divide-gray-300 divide-solid border-t-2 border-b-2 border-gray-300 border-solid "><div><div class="flex items-center"><div class="ml-4 py-3"><a href="/cchf/search"> <!-- -->Browse</a></div></div></div><div><div class="flex items-center"><div class="ml-4 py-3"><a href="/cchf/submission"> <!-- -->Submit</a></div></div></div><div><div class="flex items-center"><div class="ml-4 py-3"><a href="/seqsets"> <!-- -->SeqSets</a></div></div></div><div><div class="flex items-center"><div class="ml-4 py-3"><a href="/news"> <!-- -->News</a></div></div></div><div><div class="flex items-center"><div class="ml-4 py-3"><a href="/about"> <!-- -->About</a></div></div></div><div><div class="flex items-center"><div class="ml-4 py-3"><a href="/docs/"> <!-- -->Docs</a></div></div></div><div><div class="flex items-center"><div class="ml-4 py-3"><a href="https://authentication.pathoplexus.org/realms/loculus/protocol/openid-connect/auth?client_id=backend-client&scope=openid&response_type=code&redirect_uri=https%3A%2F%2Fpathoplexus.org%2Fcchf%2Fsubmission"> <!-- -->Login</a></div></div></div></div></div><div class="mt-auto mb-10"><div class="flex justify-end items-center py-5"><a href="https://github.com/loculus-project/loculus"><img src="/github-mark.svg" class="w-8" alt="GitHub logo"/></a></div><div class="font-light divide-y-2 divide-gray-300 divide-solid border-t-2 border-b-2 border-gray-300 border-solid "><div><div class="flex items-center"><div class="ml-4 py-1"><a href="/api-documentation"> <!-- -->API docs</a></div></div></div><div><div class="flex items-center"><div class="ml-4 py-1"><a href="/about/governance"> <!-- -->Governance</a></div></div></div><div><div class="flex items-center"><div class="ml-4 py-1"><a href="/contact"> <!-- -->Contact</a></div></div></div><div><div class="flex items-center"><div class="ml-4 py-1"><a href="https://status.pathoplexus.org/"> <!-- -->Status</a></div></div></div></div></div></div></div></div><!--astro:end--></astro-island> </div> </div> </nav> <hr class="border-t border-gray-1000"> </header> <div class="flex-grow mt-3 mb-5 px-4"> <h1 class="title">Submission portal</h1> <div class="mt-6 message max-w-4xl mx-auto"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em" class="w-12 h-12 inline-block mr-2"><path fill="currentColor" d="M11 7L9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8z"></path></svg> <div> <p>You need to be logged in to access the submission portal.</p> <a href="https://authentication.pathoplexus.org/realms/loculus/protocol/openid-connect/auth?client_id=backend-client&scope=openid&response_type=code&redirect_uri=https%3A%2F%2Fpathoplexus.org%2Fcchf%2Fsubmission" class="btn mt-3 bg-white hover:bg-gray-50">Login or register</a> <p class="mt-1"></p> </div> </div> </div> <hr class="border-t border-gray-1000"> <footer class="hidden sm:flex sm:z-6 sm:z-6 flex justify-between items-center h-20"> <div class="flex gap-5"> <a href="/api-documentation" class="text-gray-600"> API docs </a><a href="/about/governance" class="text-gray-600"> Governance </a><a href="/contact" class="text-gray-600"> Contact </a><a href="https://status.pathoplexus.org/" class="text-gray-600"> Status </a> </div> <a href="https://github.com/loculus-project/loculus" class="h-full py-6"> <img src="/github-mark.svg" class="h-full object-scale-down" alt="github-icon"> </a> </footer> </div> </body></html>