{"version":3,"sources":["containers/engineeringGoldWhitePrimary.png","containers/gisaidLogo.png","containers/App/logo.svg","containers/drexelWhiteLogo.png","containers/App/App.js","configureApolloClient.js","serviceWorker.js","containers/map/map.js","time_series_analysis.js","index.js"],"names":["module","exports","GET_COUNTRIES","App","useState","name","countries","setCountries","useQuery","onCompleted","data","getCountries","loading","error","console","log","className","Typography","map","country","httpLink","HttpLink","uri","links","setContext","_","headers","token","sessionStorage","getItem","Subdomain","window","location","host","Authorization","onError","graphQLErrors","networkError","forEach","message","assign","client","ApolloClient","link","ApolloLink","from","cache","InMemoryCache","Boolean","hostname","match","region_pie_chart","require","color_codes","TCCGCCAGTGG","CCCGCCRGGGA","CCCGCCAGTGG","YCCGCCAGTGG","CCCGCCGGGGG","CCCTCCAAGTG","TCCTCCAGTGG","CCCGCCAGGGD","CTCDTCAAGTG","CCCDTCAAGTG","CCYGCCAGTGG","CCTTCCAAGGG","CCCTTCAAGTG","CCCDCCAAGGG","CCTGCCAAGGG","CCCTCCAAGGG","CCTGTCAAGGG","CCTGCTAAGGG","CCCGCCAAGGG","CCCGCCAGGGA","CCCGCCAGGGG","CCCTCCAGGGG","CTCTTCAAGTG","CCCGCCAAGTG","OTHER","dataset_template","label","fill","lineTension","backgroundColor","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","labels","datasets","pie_dataset_template","hoverBackgroundColor","data_pie","country_name_mapping","China","Czechia","ISMContainerStyle","marginTop","marginBottom","ISMLegend","Paper","elevation","align","variant","style","padding","Object","keys","colorKey","Card","margin","Grid","container","alignItems","justify","item","xs","height","width","marginLeft","fontSize","memo","setTooltipContent","setSelectedContent","React","open","setOpen","clickedCountry","setClickedCountry","data-tip","zoom","center","geography","geographies","geo","properties","NAME","stroke","key","rsmKey","onMouseEnter","POP_EST","onMouseLeave","onClick","ism_data","key2","region_data","i","length","region_isms","total_list","sum","push","parseInt","ism_pie","sub_total","counter","output","compute_time_series_ISM","num_to_display","Math","min","new_dataset","JSON","parse","stringify","ism_pie_keys","concat","hover","outline","pressed","Dialog","fullWidth","maxWidth","scroll","aria-labelledby","aria-describedby","DialogTitle","id","color","DialogContent","dividers","DialogContentText","DialogActions","Button","ReactDOM","render","StrictMode","document","getElementById","footnoteStyle","marginRight","mapDisclaimer","Webmap","tooltip","setTooltip","setSelected","spacing","href","target","rel","tabStyling","root","textTransform","titleStyle","fontWeight","placeholderStyle","StyledTabs","withStyles","indicator","props","Tabs","TabIndicatorProps","StyledTab","minWidth","Tab","AppTabs","selectedTab","setSelectedTab","minHeight","paddingTop","display","src","engineeringGoldWhitePrimary","value","onChange","event","newTab","disableRipple","gisaidLogo","type","navigator","serviceWorker","ready","then","registration","unregister","catch","createElement","body","appendChild","rootElement"],"mappings":"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","file":"static/js/main.8f6f4f17.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/engineeringGoldWhitePrimary.47413c96.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/logo.5d5d9eef.svg\";","module.exports = __webpack_public_path__ + \"static/media/drexelWhiteLogo.4d053fb5.png\";","import React, { useState } from 'react';\nimport logo from './logo.svg';\nimport './App.css';\nimport { gql } from 'graphql.macro';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst GET_COUNTRIES = gql`\n query Countries {\n getCountries {\n id\n name\n }\n }\n`;\n\nfunction App() {\n const [countries, setCountries] = useState([{ name: 'lol' }]);\n const { loading, error } = useQuery(GET_COUNTRIES, {\n onCompleted: data => {\n setCountries(data.getCountries);\n }\n });\n\n console.log(error);\n return (\n
\n {loading && Loading}\n {countries.map(country => {\n return {country.name};\n })}\n
\n );\n}\n\nexport default App;\n","import { ApolloClient } from 'apollo-client';\nimport { ApolloLink } from 'apollo-link';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { createUploadLink } from 'apollo-upload-client';\nimport { onError } from 'apollo-link-error';\nimport apolloLogger from 'apollo-link-logger';\nimport { HttpLink } from 'apollo-link-http';\n\nimport { setContext } from 'apollo-link-context';\n\nimport fetch from 'node-fetch';\n\nconst isProd = process.env.NODE_ENV === 'production';\n\nconst httpLink = new HttpLink({\n uri: 'http://localhost:4000/graphql'\n});\n\nconst authLink = setContext((_, { headers }) => {\n const token = sessionStorage.getItem('auth');\n return {\n headers: {\n ...headers,\n Subdomain: window.location.host,\n Authorization: token ? token : null\n }\n };\n});\n\nconst errorLink = onError(({ graphQLErrors, networkError }) => {\n if (graphQLErrors) {\n graphQLErrors.forEach(error => {\n if (error.message === 'Forbidden' || error.message === 'Invalid/expired authentication') {\n window.location.assign('/greenr/login');\n }\n });\n }\n});\n\nconst links = [authLink, errorLink, httpLink];\nexport const client = new ApolloClient({\n link: ApolloLink.from(isProd ? links : [apolloLogger, ...links]),\n cache: new InMemoryCache()\n});\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n );\n \n export function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n \n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n \n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n \n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n }\n \n function registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n \n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n \n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n }\n \n function checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n }\n \n export function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n }","import React, { memo } from 'react';\nimport ReactDOM from 'react-dom';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport Card from '@material-ui/core/Card';\nimport { compute_time_series_ISM } from '../../time_series_analysis';\nimport { Line, Pie } from 'react-chartjs-2';\nimport {\n ComposableMap,\n Geographies,\n Geography,\n Sphere,\n Graticule,\n ZoomableGroup\n} from 'react-simple-maps';\nimport './styles.css';\nimport { Typography } from '@material-ui/core';\nconst region_pie_chart = require('../../region_pie_chart.json');\n\n// ALL OF THIS DATA IS JUST PLACE HOLDER\nconst color_list = [\n 'rgba(75,192,192,1)',\n 'rgba(0,100,0,1)',\n 'rgba(100,0,0,1)',\n 'rgba(0,0,100,1)',\n 'rgba(255,127,80,1)',\n 'rgba(139,69,19,1)'\n];\nconst color_codes = {\n TCCGCCAGTGG: '#ffa500',\n CCCGCCRGGGA: '#800000',\n CCCGCCAGTGG: '#ffd700',\n YCCGCCAGTGG: '#008080',\n CCCGCCGGGGG: '#87cefa',\n CCCTCCAAGTG: '#bdb76b',\n TCCTCCAGTGG: '#ff4500',\n CCCGCCAGGGD: '#20b2aa',\n 'CCC-TCAAGTG': '#000000',\n CTCDTCAAGTG: '#00fa9a',\n CCCDTCAAGTG: '#b0c4de',\n CCYGCCAGTGG: '#add8e6',\n CCTTCCAAGGG: '#1e90ff',\n CCCTTCAAGTG: '#ffe4e1',\n CCCDCCAAGGG: '#7fffd4',\n CCTGCCAAGGG: '#bc8f8f',\n CCCTCCAAGGG: '#9370db',\n CCTGTCAAGGG: '#cd5c5c',\n CCTGCTAAGGG: '#a52a2a',\n CCCGCCAAGGG: '#0000ff',\n CCCGCCAGGGA: '#ff0000',\n CCCGCCAGGGG: '#008000',\n CCCTCCAGGGG: '#a0522d',\n CTCTTCAAGTG: '#ffc0cb',\n CCCGCCAAGTG: '#ffdead',\n OTHER: '#808080',\n};\nconst color_list_pie = ['#FF6384', '#36A2EB', '#FFCE56', '#FFCB56'];\nvar dataset_template = {\n label: 'My First dataset',\n fill: false,\n lineTension: 0.1,\n backgroundColor: 'rgba(75,192,192,0.4)',\n borderColor: 'rgba(75,192,192,1)',\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: 'miter',\n pointBorderColor: 'rgba(75,192,192,1)',\n pointBackgroundColor: '#fff',\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: 'rgba(75,192,192,1)',\n pointHoverBorderColor: 'rgba(220,220,220,1)',\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: []\n};\n\nvar data = {\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n datasets: []\n};\nvar pie_dataset_template = {\n data: [],\n backgroundColor: [],\n hoverBackgroundColor: []\n};\nvar data_pie = {\n labels: [],\n datasets: []\n};\n\nconst country_name_mapping = {\n 'United States of America': 'USA',\n China: 'Mainland China',\n Czechia: 'Czech Republic',\n 'Dem. Rep. Congo': 'Democratic Republic of the Congo'\n};\n\nconst geoUrl =\n 'https://raw.githubusercontent.com/zcreativelabs/react-simple-maps/master/topojson-maps/world-110m.json';\n\nconst ISMContainerStyle = { marginTop: '5px', marginBottom: '5px' };\nexport const ISMLegend = () => {\n return (\n \n \n ISM Legend\n \n {Object.keys(color_codes).map(colorKey => {\n return (\n \n \n \n \n \n \n {colorKey}\n \n \n \n );\n })}\n \n );\n};\nconst Map = ({ setTooltipContent, setSelectedContent }) => {\n const [open, setOpen] = React.useState(false);\n const [clickedCountry, setClickedCountry] = React.useState('');\n const scroll = 'body';\n\n const handleClose = () => {\n setOpen(false);\n data['labels'] = [];\n data['datasets'] = [];\n data_pie['labels'] = [];\n data_pie['datasets'] = [];\n };\n\n return (\n
\n \n \n \n {({ geographies }) =>\n geographies.map(geo => (\n {\n const { NAME, POP_EST } = geo.properties;\n setTooltipContent(`${NAME}`);\n }}\n onMouseLeave={() => {\n setTooltipContent('');\n }}\n onClick={() => {\n var { NAME } = geo.properties;\n if (NAME in country_name_mapping) {\n NAME = country_name_mapping[NAME];\n }\n var ism_data = compute_time_series_ISM(NAME);\n var num_to_display = Math.min(5, ism_data['num_ism']);\n data['labels'] = ism_data['labels'];\n for (var i = 0; i < num_to_display; i++) {\n var new_dataset = JSON.parse(JSON.stringify(dataset_template));\n data['datasets'].push(new_dataset);\n data['datasets'][i]['data'] = ism_data['data'][ism_data['isms'][i]];\n data['datasets'][i]['borderColor'] = color_codes[ism_data['isms'][i]];\n data['datasets'][i]['label'] = ism_data['isms'][i];\n }\n num_to_display = Math.min(4, ism_data['num_ism']);\n var new_dataset = JSON.parse(JSON.stringify(pie_dataset_template));\n data_pie['datasets'].push(new_dataset);\n var ism_pie_keys = Object.keys(ism_data['pie']);\n for (i = 0; i < num_to_display; i++) {\n data_pie['datasets'][0]['data'].push(ism_data['pie'][ism_pie_keys[i]][1]);\n data_pie['labels'].push(\n ism_pie_keys[i].concat(' ', ism_data['pie'][ism_pie_keys[i]][0])\n );\n data_pie['datasets'][0]['backgroundColor'].push(color_codes[ism_pie_keys[i]]);\n data_pie['datasets'][0]['hoverBackgroundColor'].push(\n color_codes[ism_pie_keys[i]]\n );\n }\n setSelectedContent(NAME);\n setOpen(true);\n setClickedCountry(NAME);\n console.log(data_pie);\n }}\n style={{\n hover: {\n fill: '#F53',\n outline: 'none'\n },\n pressed: {\n fill: '#E42',\n outline: 'none'\n }\n }}\n />\n ))\n }\n \n \n \n \n \n {clickedCountry}\n \n \n \n

Relative Abundance

\n \n\n

ISM Data

\n \n
\n
\n \n \n \n \n
\n );\n};\n\nexport default memo(Map);\n","function compute_time_series_ISM(country){\n //const fs = require('fs')\n const data = require('./region_time_series.json');\n const data_pie = require('./region_pie_chart.json')\n //const country = 'Mainland China';\n var keys = Object.keys(data);\n var region_data = {};\n var key;\n var key2;\n for (var i = 0; i < keys.length; i++) {\n region_data[keys[i]] = data[keys[i]][country];\n }\n\n var region_isms = {};\n var keys = Object.keys(region_data);\n\n for (key in region_data[keys[keys.length-1]]){\n region_isms[key] = [];\n }\n\n var total_list = []\n var sum;\n for (key in region_data){\n let item = region_data[key];\n sum = 0;\n for (key2 in region_isms){\n if (key2 in item){\n region_isms[key2].push(parseInt(item[key2]));\n sum = sum + parseInt(item[key2]);\n } else {\n region_isms[key2].push(0);\n }\n }\n total_list.push(sum);\n }\n // COMPUTE RELATIVE ABUNDANCES\n for (key in region_isms){\n for (var i = 0; i < keys.length; i++){\n region_isms[key][i] = region_isms[key][i] / total_list[i]\n }\n }\n\n\n// Parse pie chart\n var ism_pie = {}\n var sum = 0;\n var sub_total = 0;\n var limit = 3;\n var counter = 0;\n for (key in data_pie[country]){\n sum = sum + parseInt(data_pie[country][key][1]);\n if (counter < limit){\n ism_pie[key] = [data_pie[country][key][0], parseInt(data_pie[country][key][1])];\n sub_total = sub_total + parseInt(data_pie[country][key][1]);\n counter++;\n }\n }\n ism_pie[\"OTHER\"] = [\"-\", sum - sub_total]\n var output = {};\n output[\"labels\"] = keys;\n output[\"data\"] = region_isms;\n output[\"num_ism\"] = Object.keys(region_isms).length;\n output[\"isms\"] = Object.keys(region_isms);\n output['total'] = sum;\n output['pie'] = ism_pie\n return output;\n}\nexport {compute_time_series_ISM};","import React, { useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './containers/App/App';\nimport { ApolloProvider } from '@apollo/react-hooks';\nimport { client } from './configureApolloClient';\nimport * as serviceWorker from './serviceWorker';\nimport Map, { ISMLegend } from './containers/map/map';\nimport ReactTooltip from 'react-tooltip';\nimport Paper from '@material-ui/core/Paper';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport { Typography, Grid } from '@material-ui/core';\nimport drexelWhiteLogo from './containers/drexelWhiteLogo.png';\nimport engineeringGoldWhitePrimary from './containers/engineeringGoldWhitePrimary.png';\nimport gisaidLogo from './containers/gisaidLogo.png';\nimport { withStyles } from '@material-ui/styles';\nrequire('./containers/tabs/styles.css');\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\nconst footnoteStyle = {fontSize: '12px', marginLeft: '35px', marginRight: '35px'};\nconst mapDisclaimer = {fontSize: '10px', marginLeft: '15px', marginRight: '15px'};\nfunction Webmap() {\n const [tooltip, setTooltip] = useState('');\n const [selected, setSelected] = useState('');\n return (\n
\n \n \n \n \n \n \n \n {tooltip}\n \n

\n The world map is only for ISM distribution illustration purposes and does not\n imply the expression of any opinion whatsoever concerning the legal status of\n any country, area or territory or of its authorities, or concerning the\n delimitation of its borders.\n

\n

\n GISAID data provided on this website is subject to{' '}\n \n GISAID’s Terms and Conditions\n .\n

\n
\n
\n
\n );\n}\nconst tabStyling = {\n root: {\n textTransform: 'none',\n fontSize: '14px'\n },\n color: '#FFFFFF',\n '&:focus': {\n color: '#FFF'\n }\n};\n\nconst titleStyle = { fontSize: '16px', color: '#FFF', fontWeight: 500 };\nconst placeholderStyle = { fontSize: '16px', color: '#07294D', fontWeight: 500 };\nconst StyledTabs = withStyles({\n root: {\n marginLeft: '20px'\n },\n indicator: {\n '& > span': {\n width: '100%'\n }\n }\n})(props => );\n\nconst StyledTab = withStyles({\n root: {\n fontSize: '14px',\n minWidth: 72,\n '&:hover': {\n color: '#123456'\n },\n '&$selected': {\n color: '#123456',\n fontWeight: 700\n }\n }\n})(props => );\n\nfunction AppTabs() {\n const [selectedTab, setSelectedTab] = useState(0);\n\n const handleTabChange = (event, newTab) => {\n console.log(newTab);\n setSelectedTab(newTab);\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n \n \n COVID-19 World Map of\n \n \n Informative Subtype Marker\n \n \n \n \n \n \n \n \n \n \n \n ISM Map enabled data from\n \n \n \n \n ISM World Map\n \n \n enabled by data from\n \n \n \n \n \n \n \n \n
\n {selectedTab == 0 && }\n {selectedTab == 1 && (\n
\n

Acknowledgements

\n

\n

\n Informative Marker Subtyping (ISM) Platform is enabled by hCoV-19 genome sequence data\n from the GISAID EpiCoVTM database. The GISAID organisation{' '}\n \n promotes the rapid sharing of data whilst protecting the acknowledgement rights of data providers\n {' '}\n

\n

\n As per requirements from GISAID, if you intend to publish research using the sequence data from GISAID,\n or the derived data available from Informative Marker Subtyping (ISM) Platform, you must accept the{' '}\n \n GISAID Data Access Agreement\n {' '}\n and appropriately credit (e.g. by attaching as supplementary data) the data contributors.\n In academic publications, you should also cite the GISAID project itself.\n Details of how to give appropriate credit are available on the{' '}\n \n GISAID website\n .\n

\n

\n We also gratefully acknowledge the authors, originating and submitting laboratories\n of the sequences from GISAID’s EpiCoVTM Database on which this research is based.\n Access to the individual isolates is facilitated through{' '}\n \n GISAID\n . A full list of authors, originating laboratories, and submitting laboratories\n of sequences used in our research can be downloaded{' '}\n \n here\n .\n

\n

\n

\n

\n

\n

\n

\n GISAID data provided on this website is subject to{' '}\n \n GISAID’s Terms and Conditions\n .\n

\n
\n )}\n {selectedTab == 2 && (\n
\n

Project Information

\n\n

\n

\n \n Informative Subtype Markers:\n {' '}\n \n {' '}\n Source Code\n \n

\n

\n Informative Subtype Markers (ISM) is an efficient framework for genetic subtyping of a\n pandemic virus and is implemented for SARS-CoV-2 (hCoV-19/GISAID), the novel coronavirus that causes\n COVID-19. The use of ISMs permits subtyping individual SARS-CoV-2 (hCoV-19/GISAID) virus genomes, and in\n essence generating a signature that can be readily used to track viral evolution through\n geography and time. Please find the reference paper at:{' '}\n \n Characterizing geographical and temporal dynamics of novel coronavirus SARS-CoV-2 using informative subtype markers\n .\n

\n\n

\n

\n \n Website Development:\n {' '}\n \n {' '}\n Source Code\n \n

\n

\n The COVID-19 World Map is a website created to display SARS-CoV-2 (hCoV-19/GISAID) genotypes (ISMs) in an interactive way.\n This is done with the use of ISMs, which are described in the section below. The\n interactive ISM Map allows users to click on a certain country on the map, and visualize\n important ISMs regarding a specific country. This data includes relative\n abundance graphs and ISM pie charts. This website is maintained by {' '}\n \n EESI laboratory\n at Drexel University.\n

\n

Website contributors:

\n
    \n
  • Kleanthis Karavangelas
  • \n
  • Liam Shamir
  • \n
  • Dan Dunkers
  • \n
  • Karanveer Singh
  • \n
  • Dan Drzewicki
  • \n
  • Zhengqiao Zhao
  • \n
  • Bahrad A. Sokhansanj
  • \n
  • Gail L. Rosen
  • \n
\n

\n\n

\n

\n \n Contact\n {' '}\n

\n

\n This website is offered under the auspices of the College of Engineering, Drexel University\n

\n

IT Support:

\n
    \n
  • Andrew Marx, marx@drexel.edu
  • \n
  • Paul Dempsey, pfd36@drexel.edu
  • \n
\n

\n

\n GISAID data provided on this website is subject to{' '}\n \n GISAID’s Terms and Conditions\n .\n

\n
\n )}\n \n );\n}\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n\nconst container = document.createElement('div');\ndocument.body.appendChild(container);\n\nconst rootElement = document.getElementById('root');\nReactDOM.render(, rootElement);\n"],"sourceRoot":""}