Protein-NLP: Sequence Embedding & Visualization This repository explores the application of Deep Learning Transformers to Bioinformatics. It provides a comparative analysis between traditional sequence encoding methods and state-of-the-art protein language models (ProtBERT) to visualize the biological "meaning" hidden in amino acid sequences.
🧬 Project Overview The goal of this project is to transform raw protein sequences into mathematical vectors (embeddings) and analyze how well these vectors capture biological characteristics. By using Principal Component Analysis (PCA), we visualize the high-dimensional data in 2D to observe clustering patterns.
🚀 Features FASTA Parsing: Efficiently loads and filters protein sequences using Biopython.
Traditional Encoding: Implements mean-pooled One-Hot Encoding as a baseline.
Transformer Embeddings: Leverages the ProtBERT model (Rostlab) via the HuggingFace transformers library to generate contextual embeddings.
Dimensionality Reduction: Uses Scikit-Learn PCA to reduce high-dimensional protein data for visualization.
Comparative Analysis: Provides a side-by-side visual comparison of how traditional vs. deep learning methods perceive protein similarity.
🛠️ Tech Stack Language: Python
Bioinformatics: Biopython (Bio.SeqIO)
Deep Learning: PyTorch, HuggingFace Transformers (ProtBERT)
Machine Learning: Scikit-learn (PCA)
Visualization: Matplotlib, Seaborn