Generare raises €20M to decode the 97% of microbial chemistry
Back to Tutorials
bioTutorialbeginner

Generare raises €20M to decode the 97% of microbial chemistry

April 1, 20262 views5 min read

Learn how to analyze microbial genome data using Python to identify potential novel small molecules - a technique similar to what companies like Generare are using to decode the 97% of microbial chemistry that's still unknown to science.

Introduction

In this tutorial, you'll learn how to analyze microbial genome data using Python to identify potential novel small molecules - a technique similar to what companies like Generare are using to decode the 97% of microbial chemistry that's still unknown to science. This is a beginner-friendly guide that walks you through setting up your environment, downloading sample data, and performing basic sequence analysis to find interesting molecular patterns.

Understanding microbial genomes can lead to discovering new antibiotics, enzymes, or other valuable compounds that nature has been producing for billions of years. We'll use open-source tools and Python libraries to explore how bioinformatics can help us unlock these secrets.

Prerequisites

Before starting this tutorial, you'll need:

  • A computer with internet access
  • Basic knowledge of Python (you don't need to be an expert, just comfortable with variables and simple functions)
  • Python 3.7 or higher installed on your system
  • Access to a terminal or command prompt

Step-by-Step Instructions

1. Set Up Your Python Environment

First, we need to create a clean working environment for our bioinformatics project. Open your terminal and run:

mkdir microbial_analysis
 cd microbial_analysis
 python -m venv bio_env
 source bio_env/bin/activate   # On Windows: bio_env\Scripts\activate

This creates a new folder called 'microbial_analysis' and sets up a virtual environment called 'bio_env' to keep our project dependencies isolated from your system.

2. Install Required Libraries

Now we'll install the essential Python packages for working with biological data:

pip install biopython pandas numpy

These libraries are crucial:

  • biopython: For handling biological sequences and genome data
  • pandas: For organizing and analyzing our data
  • numpy: For numerical operations and calculations

3. Download Sample Microbial Data

For this tutorial, we'll use a small sample genome file. Create a data directory and download sample data:

mkdir data
cd data
wget https://raw.githubusercontent.com/biopython/biopython/master/Tests/GenBank/NC_005816.gb

This downloads a sample bacterial genome file (NC_005816.gb) which is a common test dataset in bioinformatics. This file contains genetic information about a bacterium.

4. Create Your Analysis Script

Now let's create our main Python script to analyze the genome:

cd ..
 nano genome_analyzer.py

Then paste this code:

from Bio import SeqIO
import pandas as pd
import re

# Load the genome sequence
print("Loading genome data...")
record = SeqIO.read("data/NC_005816.gb", "genbank")

# Display basic information
print(f"Genome name: {record.id}")
print(f"Length: {len(record)} base pairs")
print(f"Description: {record.description}")

# Extract features (genes and other elements)
features = []
for feature in record.features:
    if feature.type == "CDS":  # CDS = Coding Sequence
        gene_info = {
            "type": feature.type,
            "location": str(feature.location),
            "strand": feature.location.strand,
            "gene": feature.qualifiers.get("gene", ["unknown"])[0],
            "product": feature.qualifiers.get("product", ["unknown"])[0]
        }
        features.append(gene_info)

# Convert to DataFrame for easier analysis
df = pd.DataFrame(features)
print("\nFound genes:")
print(df.head())

# Count genes by product type
product_counts = df["product"].value_counts()
print("\nGene product distribution:")
print(product_counts.head())

5. Run Your Analysis

Save and close the file (in nano: Ctrl+X, then Y, then Enter), then run the script:

python genome_analyzer.py

This will load the genome data and display information about the genes it contains. You'll see output showing gene locations, strand orientation, and product types.

6. Explore Protein Sequences

Let's also extract and examine the actual protein sequences from the genes:

# Add this code to your existing script
print("\nAnalyzing protein sequences...")

# Get protein sequences from CDS features
protein_sequences = []
for feature in record.features:
    if feature.type == "CDS" and "translation" in feature.qualifiers:
        protein_seq = feature.qualifiers["translation"][0]
        protein_sequences.append({
            "gene": feature.qualifiers.get("gene", ["unknown"])[0],
            "sequence": protein_seq,
            "length": len(protein_seq)
        })

# Create DataFrame
protein_df = pd.DataFrame(protein_sequences)
print("\nProtein sequences:")
print(protein_df.head())

# Find longest proteins
longest_proteins = protein_df.sort_values("length", ascending=False).head(5)
print("\n5 longest proteins:")
print(longest_proteins)

7. Save Your Results

Finally, let's save our analysis results for later use:

# Add this at the end of your script
protein_df.to_csv("protein_analysis.csv", index=False)
print("\nResults saved to protein_analysis.csv")

8. Interpret Your Findings

After running your script, examine the output. You've now:

  • Loaded a microbial genome file
  • Identified genes and their locations
  • Extracted protein sequences
  • Ranked proteins by length

This is similar to what companies like Generare do when they screen microbial genomes - they're looking for these molecular signatures that evolution has naturally produced. The genes with unique protein sequences might be candidates for novel drug compounds.

Summary

In this beginner-friendly tutorial, you've learned how to analyze microbial genome data using Python. You set up a bioinformatics environment, downloaded sample genome data, and performed basic sequence analysis to identify genes and proteins. This foundational knowledge is what companies like Generare use to discover the 97% of microbial chemistry that's still unknown to science.

While this example uses a simple bacterial genome, real-world applications involve analyzing thousands of genomes to find molecules that could lead to new antibiotics, enzymes, or other valuable compounds. The key is that evolution has already done the hard work of creating billions of years of molecular experimentation - we just need to find the right tools to read and understand these natural libraries.

Remember, this is just the beginning. As you progress, you can add more sophisticated analysis techniques like BLAST searches, motif identification, or machine learning models to predict molecular function from sequence data.

Source: TNW Neural