Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Complex Structural Variant Interpretation with Graph Neural Networks

This repository contains the code for the project "Complex Structural Variant Interpretation with Graph Neural Networks" by Peter Youyun Zheng.

Abstract

Structural Variants (SVs) are large-scale mutations that happen frequently in cancer genomes. The majority of the SVs exist in clusters with a high degree of overlap, the complexity of which renders interpretation challenging. In addition, past efforts have failed to study SVs in a unified framework such that the high-dimensional orthogonal features of the genome are considered simultaneously. In this project, I overcome these two major challenges by recapitulating structural complexity through graph representation of SV clusters and applying state-of-the-art graph neural network (GNN) models that simultaneously model many biologically relevant genomic features of SVs to generate my graph embeddings. Specifically, I generated more than 10,000 SV cluster graphs (SCGs) from a dataset of over 800 cancer whole genome sequencing samples from a variety of common cancer types. I then utilized an unsupervised graph transformer model to perform clustering of SCGs. I identified a novel class of peri-centromeric, inversion-, and microhomologyenriched SV clusters. This proof-of-concept study demonstrates the utility of graph neural network models in cancer genomic interpretation and biological discovery.

Workflow

The conceptual workflow of this project is as follows:

  1. Data Preprocessing: The raw SV data is processed, clustered and annotated.

    1. vcf to bedpe: Convert the raw SV data in VCF format to BEDPE format.
    2. cluster SVs: BEDPE files are used for generating SV clusters.
    3. annotate SVs: Annotate the SV clusters with genomic features individually per sample.
  2. Graph Construction: The annotated SV clusters are used to generate the SV cluster graphs (SCGs).

    1. Feature Processing: All SV data in the cohort is aggregated to transform and scale features
    2. generate SCGs: Generate the SV cluster graphs (SCGs) from the annotated SV clusters.
  3. Graph Neural Network: The SCGs are used as input to the graph neural network models.

  4. Validating Clusters: The clusters generated by the GNN models are validated using the previous annotations.

Installation

This workflow involves shell scripts (submitting task arrays on SGE), R (step 1) and Python (step 2, 3, and 4) code. The following instructions will guide you through the installation of the required packages and dependencies.

conda create -n sv_gnn python=3.8
conda activate sv_gnn
conda install -c conda-forge r-base r-essentials r-optparse r-data.table r-stringr r-GenomicRanges r-ggplot2 r-knitr
pip install -q torch==2.0.1 'matplotlib<3.7' scikit-spatial networkx scikit-learn umap-learn pandas numpy torch_geometric

Usage

The workflow is divided into four steps, each with its own set of scripts. The scripts are located in their own directories.

  1. Data Preprocessing: The scripts for data preprocessing are located in the Preprocessing directory. The process_vcf.sh and process_large_vcf.sh are task array scripts to complete all steps within step 1 in a paralleled manner on the sample level.

  2. Graph Construction: The scripts for graph construction are located in the graph_construction directory. The graph_construction.py script pulls together all sample data from step 1 to do feature scaling and graph construction.

  3. Graph Neural Network: The scripts for the graph neural network are located in the model_training directory. The Data_Ingestion_And_Model_Training.ipynb notebook contains the code for training the graph neural network models and some visualizations of the graph embeddings

  4. Validating Clusters: The scripts for validating the clusters are located in the validating_clusters directory. The UMAP_vis.qmd quarto markdown file contains the code for visualizing the clusters generated by the GNN models and overlaying known annotations of chromothripsis with the clusters. You could either try to render the quarto markdown file or use the UMAP_vis.html file to view the results.

About

Complex Structural Variant Interpretation with Graph Neural Networks

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages