{"id":13554417,"url":"https://github.com/geohot/corona","last_synced_at":"2026-10-19T08:04:48.190Z","repository":{"id":37489530,"uuid":"249301266","full_name":"geohot/corona","owner":"geohot","description":"Reverse engineering SARS-CoV-2","archived":false,"fork":false,"pushed_at":"2024-03-24T17:40:48.000Z","size":638,"stargazers_count":2508,"open_issues_count":52,"forks_count":478,"subscribers_count":170,"default_branch":"master","last_synced_at":"2026-10-16T23:41:27.428Z","etag":null,"topics":["covid-19"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geohot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-23T00:41:49.000Z","updated_at":"2026-10-15T03:02:07.000Z","dependencies_parsed_at":"2023-01-24T17:31:44.773Z","dependency_job_id":"b29321b2-90bf-4345-b26d-044dffd6bbf8","html_url":"https://github.com/geohot/corona","commit_stats":{"total_commits":71,"total_committers":8,"mean_commits":8.875,"dds":"0.21126760563380287","last_synced_commit":"7d082ab4f39a92993543aa262913a519f148eb99"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/geohot/corona","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geohot%2Fcorona","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geohot%2Fcorona/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geohot%2Fcorona/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geohot%2Fcorona/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geohot","download_url":"https://codeload.github.com/geohot/corona/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geohot%2Fcorona/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38351733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-19T02:00:06.414Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["covid-19"],"created_at":"2024-08-01T12:02:47.482Z","updated_at":"2026-10-19T08:04:47.729Z","avatar_url":"https://github.com/geohot.png","language":"Python","funding_links":[],"categories":["Python","Python (144)","Languages"],"sub_categories":["Python"],"readme":"# Reverse engineering the coronavirus (SARS-CoV-2)\n\n**Start here**: [`corona.py`](corona.py)\n\n## :thought_balloon: Background\nThis project applies techniques from [reverse engineering](https://en.wikipedia.org/wiki/Reverse_engineering) to understand the [SARS-CoV-2](https://en.wikipedia.org/wiki/Severe_acute_respiratory_syndrome_coronavirus_2) virus. The goal here is simply to build an understanding of the virus from first principles.\n\n### Biology vs. software\nBiological systems are fundamentally [information processing systems](https://en.wikipedia.org/wiki/Information_processor). While not a perfect analogy, software provides a useful framework for thinking about biology. The table below provides a rough outline of this analogy.\n\n:microscope: Biology | :computer: Software | Notes\n------- | -------- | -----\n[nucleotide](https://en.wikipedia.org/wiki/Nucleotide) | [byte](https://en.wikipedia.org/wiki/Byte) |\n[genome](https://en.wikipedia.org/wiki/Genome) | [bytecode](https://en.wikipedia.org/wiki/Bytecode) |\n[translation](https://en.wikipedia.org/wiki/Translation_(biology)) | [disassembly](https://en.wikipedia.org/wiki/Disassembler) | 3 byte wide instruction set with arbitrary \"[reading frames](https://en.wikipedia.org/wiki/Reading_frame)\"\n[protein](https://en.wikipedia.org/wiki/Protein) | [function](https://en.wikipedia.org/wiki/Function_(computer_science)) | a polyprotein is a function with multiple pieces\n[protein secondary structure](https://en.wikipedia.org/wiki/Protein_secondary_structure) | [basic blocks](https://en.wikipedia.org/wiki/Basic_block) | 80% accuracy in [prediction](https://en.wikipedia.org/wiki/Protein_structure_prediction#Secondary_structure)\n[protein tertiary structure](https://en.wikipedia.org/wiki/Protein_tertiary_structure) | | This seems like the hard one to predict: https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0205819\n[quaternary structure](https://en.wikipedia.org/wiki/Protein_quaternary_structure) | [compiled function with inlining](https://en.wikipedia.org/wiki/Inline_expansion) | https://en.wikipedia.org/wiki/Protein%E2%80%93protein_interaction_prediction\n[gene](https://en.wikipedia.org/wiki/Gene) | [library](https://en.wikipedia.org/wiki/Library_(computing)) | bacteria are statically linked, viruses are dynamically linked\n[transcription](https://en.wikipedia.org/wiki/Transcription_(biology)) | [loading](https://en.wikipedia.org/wiki/Loader_(computing))\n[protein structure prediction](https://en.wikipedia.org/wiki/Protein_structure_prediction) | [library identification](https://www.hex-rays.com/products/ida/tech/flirt/in_depth/)\n[genome analysis](https://en.wikipedia.org/wiki/Genomics#Genome_analysis) | [static analysis](https://en.wikipedia.org/wiki/Static_program_analysis) |\n[molecular dynamics](https://en.wikipedia.org/wiki/Molecular_dynamics) simulations of [protein folding](https://en.wikipedia.org/wiki/Protein_folding) | [dynamic analysis](https://en.wikipedia.org/wiki/Dynamic_program_analysis) | Simulation doesn't seem to work yet. Constrained by tooling and compute.\nno equivalent | [execution](https://en.wikipedia.org/wiki/Execution_(computing)) | We are reverse engineering a CAD format. Runs more like FPGA code, all at once. No serial execution. (What are the FPGA reverse engineering tools?)\n\n## :wrench: Progress\n### Downloading the SARS-CoV-2 genome\n[GenBank](https://www.ncbi.nlm.nih.gov/genbank/) is the NIH genetic sequence database, an annotated collection of all publicly available DNA and RNA sequences. The SARS-CoV-2 sequences available in GenBank have been downloaded in [`download_sequences.py`](download_sequences.py).\n\n### Translating RNA to proteins\n[`lib.py`](lib.py) contains a function `translate` that converts an RNA sequence to a chain of [amino acids](https://en.wikipedia.org/wiki/Amino_acid). This function is used in [`corona.py`](corona.py).\n\n### Annotating functions\nThe `translate` function is used in [`corona.py`](corona.py) to identify and annotate functions for all proteins encoded by the genome.\n\n### Folding proteins\nThe [OpenMM](http://openmm.org/) toolkit is used for molecular simulation of protein folding in [`fold.py`](fold.py).\n\n## :bulb: Work to be done\n- Automatic extraction of genes from different coronaviruses\n- Good multisequence compare tool\n- Molecular dynamics?\n- Secondary Structure prediction on orf1a?\n\n## :question: Open questions\n- How is orf1ab cleaved into polypeptides? Can we predict this from the sequence?\n- How do the researchers know (guess?) where orf1ab cleaves?\n  - nsp3 and nsp5 do it -- https://www.pnas.org/content/pnas/103/15/5717.full.pdf\n- Which protein is the immune system responding to?\n  - \"spike\" and \"nucleocapsid\" -- http://www.cmi.ustc.edu.cn/1/3/193.pdf\n  - Are some people already immune from exposure to other coronavirus?\n- Find the \"furin cleavage site\" in the \"spike glycoprotein\"\n  - It might be at the \"PRRA\" -- https://www.sciencedirect.com/science/article/pii/S0166354220300528\n  - Use ProP or PiTou to predict? -- https://en.wikipedia.org/wiki/Furin\n- How similar are the other coronaviruses? (causes colds, not either SARS or MERS)\n  - alpha\n    - https://en.wikipedia.org/wiki/Human_coronavirus_229E (simpler, though targets APN)\n    - https://en.wikipedia.org/wiki/Human_coronavirus_NL63 (targets ACE2!)\n      - https://www.ncbi.nlm.nih.gov/nuccore/MG772808\n  - beta\n    - https://en.wikipedia.org/wiki/Human_coronavirus_OC43 (targets Neu5Ac)\n      - https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2095096/pdf/JIDMM17330.pdf\n      - Specifically, how similar is the N protein OC43, SARS v1, and SARS v2?\n    - https://en.wikipedia.org/wiki/Human_coronavirus_HKU1 (targets Neu5Ac)\n    - MERS-CoV\n    - SARS-CoV\n    - SARS-CoV-2\n- What adds the phosphate group to the N protein? Kinase?\n\n## :droplet: Testing\n### How tests work\n- All based on https://en.wikipedia.org/wiki/Reverse_transcription_polymerase_chain_reaction\n- USA -- https://www.fda.gov/media/134922/download\n  - selected from regions of the virus nucleocapsid (N) gene\n  - 28286---28308--28332---28358\n  - 29163---29187--29210---29230\n  - https://biosearchtech.a.bigcontent.io/v1/static/coa_KIT-NCOV-PP1-1000_Lot-No-143503\n- South Korea -- http://www.kogene.co.kr/eng/about_us/news/listbody.php?h_gcode=board\u0026h_code=7\u0026po_no=288\n  - E gene detection (same for all coronavirus)\n  - specific RdRp detection\n\n### Homemade test?\n- Isolation of viral RNA (no matter what)\n  - https://www.qiagen.com/us/products/diagnostics-and-clinical-research/sample-processing/qiaamp-viral-rna-mini-kit/#orderinginformation\n- Primers and probes (to detect SARS-CoV-2)\n  - https://www.biosearchtech.com/products/pcr-kits-and-reagents/pathogen-detection/2019-ncov-cdc-probe-and-primer-kit-for-sars-cov-2\n  - Wouldn't need if using a nanopore sequencer (nanopore MinION)\n- RT-qPCR Master Mix (to PCR)\n  - https://www.thermofisher.com/order/catalog/product/A15300#/A15300\n  - Probably wouldn't need if using a nanopore sequencer\n- All in one?\n  - https://www.chaibio.com/coronavirus\n  - Open qPCR, understand https://www.chaibio.com/openqpcr\n  - FAM and HEX fluorophores?\n\n## :pill: Possible treatments and prophylactics\n:warning: **Disclaimer**: The information in this repository is for informational purposes only. It is *not* medical advice.\n\n### Hydroxychloroquine + zinc\n- Zinc blocks RdRp\n- https://jvi.asm.org/content/91/21/e00754-17 -- how similar is Hep E RdRp?\n- https://www.ncbi.nlm.nih.gov/pubmed/21079686\n- Chloroquine Is a Zinc Ionophore (allows zinc into the cell)\n- https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4182877/\n- Without zinc (seems ineffective)\n  - https://www.recoverytrial.net/files/hcq-recovery-statement-050620-final-002.pdf (where is study?)\n- With zinc\n  - https://www.infezmed.it/media/journal/Vol_28_2_2020_9.pdf\n  - https://www.sciencedirect.com/science/article/pii/S0306987720306435\n  - No results yet: https://www.clinicaltrials.gov/ct2/show/NCT04377646\n\n### [RdRP](https://en.wikipedia.org/wiki/RNA-dependent_RNA_polymerase) inhibitors\n- Favipiravir (prodrug for favipiravir-RTP)\n- Adenosine Analog\n  - Remdesivir (prodrug for GS-441524)\n    - https://www.nejm.org/doi/pdf/10.1056/NEJMoa2007764?articleTools=true\n  - Galidesivir\n\n### Dexamethasone\n- corticosteroid = anti-inflammatory + immunosuppressant\n- https://www.medrxiv.org/content/10.1101/2020.06.22.20137273v1.full.pdf\n- Effects in late stage (blocking immune response?)\n\n### Lopinavir-Ritonavir (AIDS cocktail)\n- Both drugs are protease inhibitors\n- Wouldn't expect it to work, don't think covid has protease\n- No effect: https://www.recoverytrial.net/files/lopinavir-ritonavir-recovery-statement-29062020_final.pdf\n\n## :books: Resources\n### Coronavirus-related publications \n- Chapter 4 - Coronavirus Pathogenesis -- https://www.sciencedirect.com/science/article/pii/B9780123858856000092\n- https://www.futuremedicine.com/doi/pdf/10.2217/fvl-2018-0008\n- https://www.sciencedirect.com/science/article/pii/S2095177920302045\n- http://korkinlab.org/wuhan\n- https://github.com/mattroconnor/deep_learning_coronavirus_cure\n\n### Biology\n- textbooks\n  - Molecular Biology of the Cell\n- classes \n  - better tests - https://ocw.mit.edu/courses/biology/7-012-introduction-to-biology-fall-2004/index.htm\n  - suspected better lectures - https://ocw.mit.edu/courses/biology/7-014-introductory-biology-spring-2005/index.htm\n  - alternative lectures - https://youtube.com/playlist?list=PLGhmZX2NKiNldpyRUBBEzNoWL0Cso1jip\n  - basics - https://www.khanacademy.org/science/biology\n\n### Bioinformatics\n- Nextstrain\n  - https://nextstrain.org/ncov\n  - https://github.com/nextstrain/ncov\n  - https://github.com/nextstrain/augur\n- https://biopython.org/\n- https://github.com/cogent3/cogent3\n- https://www.reddit.com/r/bioinformatics/comments/191ykr/resources_for_learning_bioinformatics/\n- https://en.wikipedia.org/wiki/Bioinformatics\n\n### Epidemic modeling\n- https://gabgoh.github.io/COVID/index.html\n- http://epidemicforecasting.org\n\n### Antibodies\n- https://www.medrxiv.org/content/10.1101/2020.07.09.20148429v1.full.pdf\n- https://www.medrxiv.org/content/10.1101/2020.05.11.20086439v2.full.pdf\n\n### Masks\n- Looking for large controlled studies measuring infection rate with/without wearing mask\n- https://bmjopen.bmj.com/content/bmjopen/5/4/e006577.full.pdf -- cloth masks bad surgical masks nothing\n- https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2662657/pdf/08-1167_finalRCME.pdf -- unclear, low adherence\n- https://sci-hub.tw/10.1001/archpedi.1987.04460060111049 -- masks + goggles help, unclear on mask type\n- https://onlinelibrary.wiley.com/doi/epdf/10.1111/j.1750-2659.2011.00198.X -- N95 ~2x more effective than medical masks\n- https://jamanetwork.com/journals/jama/article-abstract/184819 -- N95 and surgical similar in effectiveness\n\n### Vaccines\n- https://en.wikipedia.org/wiki/COVID-19_vaccine\n- https://www.nytimes.com/interactive/2020/science/coronavirus-vaccine-tracker.html\n- generic vaccine types -- https://www.niaid.nih.gov/research/vaccine-types\n- Nucleic Acid Vaccines (none are currently used)\n  - Use mRNA to produce viral proteins\n    - \"It's a very unique way of making a vaccine and, so far, no (such) vaccine has been licenced for infectious disease\"\n    - Moderna, mRNA-1273 -- https://clinicaltrials.gov/ct2/show/NCT04283461\n    - https://www.biorxiv.org/content/10.1101/2020.04.22.055608v1.full.pdf\n    - https://www.medrxiv.org/content/10.1101/2020.06.30.20142570v1.full.pdf\n  - DNA vaccine\n    - \"No DNA vaccines have been approved for human use in the United States\"\n    - Based on injecting DNA (plasmid) that expresses the spike protein\n    - https://siasky.net/bACLKGmcmX4NCp47WwOOJf0lU666VLeT5HRWpWVtqZPjEA\n  - Viral Vector Vaccines\n    - \"There are no viral vector vaccines currently on market for use in humans.\"\n    - adenovirus vector, AZD1222\n    - recombinant adenovirus type 5 vector, Ad5-nCoV\n- Protein-Based Vaccines (subunit vaccines?)\n- Whole-Virus Vaccines (inactivated vs live-attenuated)\n  - Like old vaccines (live attenuated?)\n  - In phase 3 already, Sinopharm = 15,000 people\n- Nanoparticle vaccine?\n  - https://www.ipd.uw.edu/2019/03/ipds-first-nanoparticle-vaccine/\n- Reverse Engineering\n  - https://berthub.eu/articles/posts/reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/\n  - https://berthub.eu/articles/posts/part-2-reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/\n\n### Genome studies (what genes = bad covid)\n- https://www.nejm.org/doi/full/10.1056/NEJMoa2020283?source=nejmtwitter\u0026medium=organic-social\n\n### DNA Synthesis\n- Produce \"oligos\" of around 170-200 bp\n  - \"Phosphoramidite chemistry\" -- it's a chemical process\n  - Size limited by 0.99^n -\u003e 13% yield on 200bp if the process is 99% good\n  - Column based / Array based\n  - https://www.nature.com/articles/nmeth.2918\n- Then assemble them\n  - https://en.wikipedia.org/wiki/Gibson_assembly\n  - 20-40 bp overlap\n  - 5-15 oligos can be combined at once (~2 kb produced)\n- New technologies\n  - https://static1.squarespace.com/static/5c981af7ebfc7fc8528d6564/t/5f4048cda662a571341b9a60/1598048462430/Alix+-+MDD+DNA+Writing.pdf\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeohot%2Fcorona","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeohot%2Fcorona","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeohot%2Fcorona/lists"}