Veri Görselleştirme ve Paylaşım Data Visualization and Data Sharing

Veri görselleştirme; karmaşık genomik verileri insan beyninin anlayabileceği görsel formlara dönüştürme sanatıdır. İyi bir görselleştirme, binlerce satırlık veriyi tek bir bakışta anlaşılabilir kılar ve bilimsel bulgular için etkili bir iletişim aracıdır.


R ile Görselleştirme — ggplot2

ggplot2, R'ın en güçlü görselleştirme paketidir. "Grafik Grameri" (Grammar of Graphics) prensibine dayanır ve katman katman grafik oluşturmaya olanak tanır.

Temel Kullanım

library(ggplot2)

# Örnek veri
df <- data.frame(
  organizma = c("E. coli", "S. aureus", "K. pneumoniae", "P. aeruginosa"),
  gc_orani = c(50.8, 32.9, 57.2, 66.6),
  genom_boyu_mb = c(5.1, 2.8, 5.5, 6.3)
)

# Saçılım grafiği
ggplot(df, aes(x = gc_orani, y = genom_boyu_mb, label = organizma)) +
  geom_point(size = 4, color = "steelblue") +
  geom_text(vjust = -0.8, size = 3) +
  labs(
    title = "GC Oranı ile Genom Büyüklüğü İlişkisi",
    x = "GC Oranı (%)",
    y = "Genom Büyüklüğü (Mb)"
  ) +
  theme_minimal()

Isı Haritası (Heatmap)

library(pheatmap)

# Gen ifadesi matrisi
set.seed(42)
mat <- matrix(rnorm(100), nrow = 10,
              dimnames = list(paste0("Gen", 1:10),
                              paste0("Ornek", 1:10)))

pheatmap(mat,
         cluster_rows = TRUE,
         cluster_cols = TRUE,
         color = colorRampPalette(c("blue", "white", "red"))(50),
         main = "Gen İfadesi Isı Haritası")

Filogenetik Ağaç

library(ggtree)
library(ape)

# Newick formatında ağaç okuma
agac <- read.tree("core.tree")

# Görselleştirme
ggtree(agac, branch.length = "branch.length") +
  geom_tiplab(size = 3) +
  theme_tree2() +
  ggtitle("Core Genome Filogenetik Ağacı")

Python ile Görselleştirme

Matplotlib ve Seaborn

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

# Örnek veri
df = pd.DataFrame({
    'organizma': ['E. coli', 'S. aureus', 'K. pneumoniae'],
    'gc_orani': [50.8, 32.9, 57.2],
    'direnç_geni_sayısı': [5, 12, 8]
})

# Çubuk grafik
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))

ax1.bar(df['organizma'], df['gc_orani'], color='steelblue')
ax1.set_title('GC Oranı')
ax1.set_ylabel('GC (%)')
ax1.tick_params(axis='x', rotation=45)

sns.barplot(data=df, x='organizma', y='direnç_geni_sayısı',
            palette='viridis', ax=ax2)
ax2.set_title('Antimikrobiyal Direnç Geni Sayısı')
ax2.tick_params(axis='x', rotation=45)

plt.tight_layout()
plt.savefig('karsilastirma.png', dpi=300, bbox_inches='tight')
plt.show()

Circos Benzeri Genomik Görselleştirme

from pycirclize import Circos

# Genomik özellikler için Circos grafiği
circos = Circos.initialize_from_bed("genomik_ozellikler.bed")
fig = circos.plotfig()
fig.savefig("circos_grafik.png", dpi=300)

Özelleştirilmiş Genomik Görselleştirme Araçları

Bandage — Assembly Graf Görselleştirme

Genome assembly çıktısındaki contig bağlantı grafını (GFA formatı) görsel olarak inceler. Tekrarlayan bölgeleri ve bağlantısız contikleri tespit etmek için kullanılır.

IGV (Integrative Genomics Viewer)

BAM, VCF ve BED dosyalarını interaktif olarak görselleştirir. NGS okumalarının referans genoma hizalanmasını incelemek için idealdir.

  • Ücretsiz masaüstü uygulaması (igv.org)
  • SNP ve indelleri görsel olarak doğrulamak için kullanılır

Artemis — Genomik Anotasyon Görüntüleyici

GenBank ve GFF formatındaki anotasyonları interaktif olarak görüntüler ve düzenler.


FAIR Prensipleri

FAIR prensipleri, bilimsel verilerin maksimum fayda sağlayacak şekilde yönetilmesi için uluslararası bir çerçeve sunar. 2016'da Wilkinson ve ark. tarafından yayımlanmıştır.

PrensipAçıklama
F — Findable (Bulunabilir)Verilere kalıcı ve benzersiz tanımlayıcılar (DOI, accession number) atanmalıdır.
A — Accessible (Erişilebilir)Veriler standart protokollerle (HTTP, FTP) erişilebilir olmalıdır.
I — Interoperable (Birlikte Çalışabilir)Veriler standart formatlar ve kontrollü vokabüler kullanmalıdır.
R — Reusable (Yeniden Kullanılabilir)Veriler açık lisansla yayımlanmalı, metodoloji açık kaynak olmalıdır.

Veri Paylaşımı için Önerilen Platformlar

  • NCBI SRA: Ham NGS verilerinin paylaşımı
  • NCBI GenBank: Genom dizileri ve anotasyonların paylaşımı
  • Zenodo: Genel araştırma verisi arşivleme (DOI atar)
  • figshare: Figürler, tablolar ve veri setlerinin paylaşımı
  • GitHub: Analiz kodları ve pipeline'ların paylaşımı

Data visualization is the art of converting complex genomic data into visual forms that the human brain can understand. Good visualization makes thousands of rows of data comprehensible at a glance and is an effective communication tool for scientific findings.


Visualization with R — ggplot2

ggplot2 is R's most powerful visualization package. Based on the "Grammar of Graphics" principle, it enables layer-by-layer chart construction.

Basic Usage

library(ggplot2)

df <- data.frame(
  organism = c("E. coli", "S. aureus", "K. pneumoniae", "P. aeruginosa"),
  gc_ratio = c(50.8, 32.9, 57.2, 66.6),
  genome_size_mb = c(5.1, 2.8, 5.5, 6.3)
)

# Scatter plot
ggplot(df, aes(x = gc_ratio, y = genome_size_mb, label = organism)) +
  geom_point(size = 4, color = "steelblue") +
  geom_text(vjust = -0.8, size = 3) +
  labs(
    title = "GC Content vs Genome Size",
    x = "GC Content (%)",
    y = "Genome Size (Mb)"
  ) +
  theme_minimal()

Heatmap

library(pheatmap)

set.seed(42)
mat <- matrix(rnorm(100), nrow = 10,
              dimnames = list(paste0("Gene", 1:10),
                              paste0("Sample", 1:10)))

pheatmap(mat,
         cluster_rows = TRUE,
         cluster_cols = TRUE,
         color = colorRampPalette(c("blue", "white", "red"))(50),
         main = "Gene Expression Heatmap")

Phylogenetic Tree

library(ggtree)
library(ape)

tree <- read.tree("core.tree")

ggtree(tree, branch.length = "branch.length") +
  geom_tiplab(size = 3) +
  theme_tree2() +
  ggtitle("Core Genome Phylogenetic Tree")

Visualization with Python

Matplotlib and Seaborn

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

df = pd.DataFrame({
    'organism': ['E. coli', 'S. aureus', 'K. pneumoniae'],
    'gc_ratio': [50.8, 32.9, 57.2],
    'resistance_genes': [5, 12, 8]
})

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))

ax1.bar(df['organism'], df['gc_ratio'], color='steelblue')
ax1.set_title('GC Content')
ax1.set_ylabel('GC (%)')
ax1.tick_params(axis='x', rotation=45)

sns.barplot(data=df, x='organism', y='resistance_genes',
            palette='viridis', ax=ax2)
ax2.set_title('Antimicrobial Resistance Gene Count')
ax2.tick_params(axis='x', rotation=45)

plt.tight_layout()
plt.savefig('comparison.png', dpi=300, bbox_inches='tight')
plt.show()

Specialized Genomic Visualization Tools

Bandage — Assembly Graph Visualization

Visually inspects the contig connection graph (GFA format) from genome assembly output. Used to identify repetitive regions and disconnected contigs.

IGV (Integrative Genomics Viewer)

Interactively visualizes BAM, VCF, and BED files. Ideal for examining the alignment of NGS reads to a reference genome.

  • Free desktop application (igv.org)
  • Used to visually validate SNPs and indels

Artemis — Genomic Annotation Viewer

Interactively views and edits annotations in GenBank and GFF formats.


FAIR Principles

The FAIR principles provide an international framework for managing scientific data in a way that maximizes utility. Published in 2016 by Wilkinson et al.

PrincipleDescription
F — FindableData must be assigned persistent, unique identifiers (DOI, accession number).
A — AccessibleData should be accessible via standard protocols (HTTP, FTP).
I — InteroperableData should use standard formats and controlled vocabularies.
R — ReusableData should be published with an open license; methodology should be open-source.

Recommended Platforms for Data Sharing

  • NCBI SRA: Sharing raw NGS data
  • NCBI GenBank: Sharing genome sequences and annotations
  • Zenodo: General research data archiving (assigns DOI)
  • figshare: Sharing figures, tables, and datasets
  • GitHub: Sharing analysis code and pipelines