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.
| Prensip | Açı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.
| Principle | Description |
|---|---|
| F — Findable | Data must be assigned persistent, unique identifiers (DOI, accession number). |
| A — Accessible | Data should be accessible via standard protocols (HTTP, FTP). |
| I — Interoperable | Data should use standard formats and controlled vocabularies. |
| R — Reusable | Data 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