Posts

Showing posts with the label Bioinformatics

H5N1 Update

Image
By Ahmed Mostafa, Elsayed M. Abdelwhab, Thomas C. Mettenleiter, and Stephan Pleschka - mdpi.com/1999-4915/10/9/497/htm, CC BY 4.0, https://commons.wikimedia.org/w/index.php?curid=92987475 H5N1, bird flu, continues to infect wild and domestic birds, cattle, cats, and humans. So far, luck has been with us and H5N1 hasn't become a serious threat to humans. That is unless you don't consider the price of eggs and the contribution that issue made to the current chaos and incompetence in Washington DC. On Feb. 28, 2025, I downloaded 6,623 H5N1 HA sequences in FASTA format from GISAID  in order to look at the current state of mutations in the virus data. The analysis below is similar to posts here and here . I read the sequences into a dataframe with the FASTA header information becoming the columns of the dataframe.  > df_2025_02_28 <- fasta2dataframe( "data/gisaid_epiflu_sequence_HA_2025_02_28.fasta" ) The fasta2dataframe function is described in this post ...

Boltz-1 H5N1 HA mutations

Image
This paper by Lin et al. from the Dec. 5 2024 issue of Science showed how a single mutation, a glutamine to leucine change (Q226L) in the H5N1 HA amino acid sequence could change HA binding specificity from avian to human binding. The specificity was enhanced when combined with an asparagine to lysine (N224K) change at a nearby position. Since I have been playing around with Boltz-1 , I thought it would be interesting to see what Boltz-1 would show about the protein structure with these changes. I could not find the unmodified amino acids at the positions listed. Rather than using sequential site numbering for positions (initial Met would be position 1), the authors use reference site numbering , called H3 numbering. This scheme puts sites into alignment with the ectodomain structure of the H3 subtype of HA. Figure 1 from the Lin et al. paper shows the subsequence "SQVNGQRG" where the target amino acids are found. I located this subsequence in the HA sequence. >>>...

Boltz-1 Democratizing Biomolecular Modeling

Image
 Boltz-1 is pretty cool. Boltz-1 is an open-source deep learning model for predicting biomolecular structures based on their sequences. According to the developers, Boltz-1 achieves AlphaFold3 level accuracy. They have released training and inference code, model weights, datasets, and benchmarks under the MIT open license. They're democratizing biomolecular modeling. You can read the introductory paper here  and a press article about it here . I just downloaded Boltz-1 two days ago, so this will not be an in depth look into Boltz-1. Maybe that will come later. Right now, I just wanted to try it out. Downloading and installing Boltz-1 was easy; clone the GitHub repo and you are ready to go. I used the reference H5N1 HA amino acid sequence that I used for this post . I extracted the sequence from the GenBank file for the Influenza A virus (A/cattle/Texas/24-008749-003/2024(H5N1) PP755589. #!/usr/bin/env python # -*- coding: utf-8 -*- """ aa_from_gb.py - extract ...

H5N1 Part 2

Image
  https://en.wikipedia.org/wiki/Hemagglutinin_(influenza)#/media/File:Flu_und_legende_color_c.jpg In a previous post , I looked at the countries posting H5N1 HA sequences to GISAID and the host species that the samples were drawn from. This time I want to look at the variation in the data to identify possible mutations. It has been reported that a glutamine to leucine mutation at residue 226 of the HA amino acid sequence increased specificity of host recognition from avian to human.  In order to get a sense of the current mutation landscape as reported to GISAID, I aligned 3,432 sequences from the time period January 1 2024 to December 12, 2024 using MAFFT . The sequences were aligned to a reference sequence,  PP755589  HA sequence from GenBank. See also this GitHub page . time mafft --6merpair --maxambiguous 0.05 --preservecase --thread -1 --addfragments data/gisaid_epiflu_sequence_HA_2024_12_12.fasta data/HA_reference.fasta > data/gisaid_HA_2024_12_12_aln.fa...

SARS-CoV-2 JN.1

Image
COVID-19 is still with us and it's underlying virus, SARS-CoV-2, is still evolving. The latest variant of concern is JN.1. As of February 2, 2024, the CDC estimates that JN.1 is the viral source of about 93% of all US COVID cases. JN.1 evolved from BA.2.86. BA.2.86 has a large number changes in the spike protein when compared to the original Wuhan sequence. The mutations gave BA.2.86 improved ability to evade the human immune system. In order to compare JN.1 changes to to BA.2.86, on January 22 I downloaded metadata for 16,460,375  sequences from GISAID . I also downloaded the full collection of FASTA SARS-CoV-2 sequences.  The analysis that follows is similar to this post . GISAID FASTA headers changed so I had to update some of code. I also wanted to add argument types to the Python code.  I used R to extract the BA.2.86 and JN.1 sequences from the metadata file. filter_chunk <- function (pango_lineage) { function (df, pos) { df <- suppressMess...

BA.2.86

Image
The SARS-CoV-2 variants BA.2.86 and its subvariant BA.2.86.1 have been showing up in the news over the last several weeks. The cause for concern is that the virus contains a number of new mutations in the spike protein compared to the Omicron variants. However, it's unclear what effect these mutations have on severity or disease transmission. I downloaded 105 FASTA sequences with Pango lineage of BA.2.86 or BA.2.86.1 and a metafile with 15,962,305 records from GISAID on September 11, 2023. After filtering to remove the sequences containing incomplete genomes, I was left with 98 sequences. The number of BA.2.86 and BA.2.86.1 sequences has been growing slowly over the past few months. The code for this plot can be found here . Mutation Pipeline To study the mutations in the BA.2.86 and BA.2.86.1 sequences compared to the Wuhan reference sequence, I used the following pipeline. It's not a fully automated pipeline, but a series of steps. First, the metafile was filtered to find ...

Protein Classification Using Compression

 A few days ago I saw this post on Hacker News,  Ziplm: Gzip-Backed Language Model . It described ziplm , a simple language model built using lossless compression. The Hacker news article led me to this paper, “Low-Resource” Text Classification: A Parameter-Free Classification Method with Compressors by Jiang et al. This paper describes a text classification model based on compression methods such as gzip . The authors claim that the results are competitive with non-pretrained deep learning methods on some datasets. It even outperforms BERT in tests.  The most interesting feature of the paper is that it contains Python code implementing the method in fourteen lines of code. When compared to the code of a deep learning language model like BERT, that is some impressive compression. Using a lossless compression method like gzip as a language model makes sense. Lossless compression implements a simple form of " understanding " of the text. It tries to reference ...