4 dk okuma

R, biyolojik veri ve metadata

Biyolojik veri neden Excel tablosu gibi düşünülmemeli?

Bir biyolojik veri dosyasındaki düzgün satırlar, sütunlar ve sayılar verinin analize hazır veya bilimsel olarak anlaşılmış olduğu anlamına gelmez. Expression matrix'te satırlar genleri, sütunlar sample'ları temsil ediyor olabilir; başka bir dosyada bu yön tersine dönebilir. İlk soru “Dosya düzgün mü?” değil, “Her eksen ve her değer hangi biyolojik varlığı veya ölçümü temsil ediyor?” olmalıdır.

BİLİMSEL İNCELEME

Ölçüm matrisi size “ne kadar?”ı, sample metadata ise büyük ölçüde “hangi koşulda?”yı anlatır.

Solda genes × samples expression matrix; sağda samples × metadata tablosu: condition, batch, tissue
Ölçüm matrisi size “ne kadar?”ı, sample metadata ise büyük ölçüde “hangi koşulda?”yı anlatır.

Önce satırın ne olduğunu bilin

Bir dosyada şu satırı gördüğünüzü düşünün:

ENSG00000141510 | 128 | 93 | 157 | 81

Bu satır neyi temsil ediyor?

Bir gene mi?

Bir transcript’e mi?

Bir probe’a mı?

Bir genomic region’a mı?

Identifier’ın formatına bakmadan, annotation kaynağını bilmeden veya veri dosyasının nasıl üretildiğini anlamadan yalnız sayılara bakmanız yeterli değildir.

Biyolojik veri analizinde satırın kimliği, downstream analizin anlamını değiştirebilir.

Örneğin gene-level expression ile transcript-level expression aynı temsil seviyesi değildir.

Bir gene birden fazla transcript bağlanabildiği için transcript düzeyindeki satırları gene düzeyindeymiş gibi yorumlamak biyolojik bilgiyi değiştirebilir.

Identifier yalnız satır adı değildir. Hangi biyolojik nesneyi ölçtüğünüzün bir parçasıdır.

Sonra sütunun ne olduğunu bilin

Expression matrix’lerde yaygın yapı:

satırlar = features
sütunlar = samples

şeklindedir.

Modern Bioconductor SummarizedExperiment sınıfı da boyutları bu mantıkla, “features of interest × samples” biçiminde organize eder.

Ama her tablonun bu formatta olacağını varsaymamalısınız.

Örneğin sample metadata’da çoğunlukla:

satır = sample
sütun = sample variable

olabilir.

Dolayısıyla iki dosya yan yana açıldığında aynı satır/sütun mantığını taşımak zorunda değildir.

Analizin ilk görevlerinden biri bu iki veri yapısının nasıl bağlandığını çözmektir.

Observation ve variable kavramları neden yararlı?

“Tidy data” yaklaşımında temel zihinsel model:

  • her variable bir sütun,
  • her observation bir satır,
  • her observational unit türü ayrı tablo

olacak biçimde tanımlanır.

Bu, veri okuryazarlığı için yararlı bir çerçevedir.

Fakat burada önemli bir nüans vardır:

Her omics assay matrisini zorla tek bir tidy tabloya çevirmek analizin ön koşulu değildir.

Gen × sample count matrix gibi matrix tabanlı temsiller biyoinformatik yöntemlerde doğal ve yaygın yapılardır.

Asıl soru şudur:

Bu tabloda observational unit ne? Variable ne? Feature ne? Sample ne?

Bunu bilmiyorsanız bir data frame’in “temiz” görünmesi çok az şey söyler.

BİLİMSEL İNCELEME

Bir matrix'i anlamak için hücredeki sayının yanında iki eksenin neyi temsil ettiğini de bilmeniz gerekir.

Rows: Gene/features
Columns: Sample IDs
Cells: measurement/count/expression
Ayrı layer: sample metadata
Bir matrix'i anlamak için hücredeki sayının yanında iki eksenin neyi temsil ettiğini de bilmeniz gerekir.

Measurement ile metadata aynı şey değildir

Bir RNA-seq count matrix’te:

S1 sample’ındaki bir gene ait count değeri

measurement’dır.

S1 için:

  • control,
  • lung,
  • batch_2,
  • day_7

gibi bilgiler ise sample’ı deneysel bağlamına yerleştirir.

Bunlar ölçümün kendisi değildir.

Ama ölçümü yorumlamak için gereklidir.

Bioconductor’ın veri yapılarında bu ayrım özellikle korunur. assay() ölçüm matrisini, colData() sample-level açıklamaları ve rowData() feature-level açıklamaları yönetir.

Bunun pratik sonucu şudur:

Bir expression değeri, hangi sample’a ve hangi koşula ait olduğunu bilmiyorsanız bilimsel anlamının önemli bir bölümünü kaybeder.

Missing value sıfır değildir

Tablolarda kolay karıştırılan başka bir konu da eksik değerlerdir.

Bir hücrede 0 görmek ile değerin NA/missing olması aynı şey değildir.

Sıfır:

kullanılan veri üretim ve preprocessing bağlamına bağlı olarak ölçülen niceliğin sıfır değerini ifade ediyor olabilir.

Missing ise:

değerin mevcut olmadığını, ölçülmediğini, kaybolduğunu veya ilgili işleme göre tanımlanmadığını ifade edebilir.

Bu farkı görmeden:

  • missing değerleri sıfıra çevirmek,
  • sıfırları missing olarak silmek

analizi değiştirebilir.

Dolayısıyla “boş hücreleri temizlemek” gibi görünen bir işlem de biyolojik ve analitik karar taşıyabilir.

Tablo düzgün görünüyor ama identifier’lar ne?

Şöyle bir tablo düşünün:

IDS1S2S3
1001142112
1002847
10039110387

Teknik olarak son derece düzenli.

Ama 1001, 1002, 1003 nedir?

Gene ID?

Probe ID?

Transcript ID?

Internal feature number?

Bu bilgiyi bilmeden downstream annotation veya enrichment yapmak risklidir.

Tidy-looking data ≠ biologically interpretable data.

BİLİMSEL İNCELEME

Temiz görünen tablo, veri modelini bilmiyorsanız hâlâ belirsiz olabilir.

Solda düzgün ama başlıkları ID / S1 / S2; sağda aynı tabloya species, identifier type, feature level ve sample metadata bağlantısı eklenmiş
Temiz görünen tablo, veri modelini bilmiyorsanız hâlâ belirsiz olabilir.

Bu ne anlama geliyor?

Bir biyolojik veri dosyasını açtığınızda analize başlamadan önce şu sorulara cevap verin:

Satır ne?
Gene, transcript, protein, peak, hücre?

Sütun ne?
Sample, hücre, ölçüm değişkeni?

Hücredeki sayı ne?
Raw count, normalized expression, intensity, oran?

Identifier ne?
Hangi database ve hangi biyolojik seviye?

Eksik değer nasıl kodlanmış?

Sample bağlamı nerede?

Bu cevaplar olmadan tabloyu manipüle edebilirsiniz.

Ama henüz veriyi tam olarak okuyor sayılmazsınız.

BİR SONRAKİ UYGULAMA ADIMI

Sorunun kaynağını görmek başka, analizi doğru yönetmek başka.

R'da read.csv() çalıştırmak veya data frame oluşturmak veriyle çalışmanın teknik başlangıcıdır. Bilimsel çalışma ise bir katman daha gerektirir: - eksenleri tanımak, - identifier seviyesini çözmek, - measurement ile metadata'yı ayırmak, - missing değerleri doğru yorumlamak, - sample ve feature açıklamalarını analize taşımak. R'ın gücü burada yalnız dosya açmasında değil, bu farklı veri katmanlarını kontrollü biçimde ilişkilendirebilmesinde ortaya çıkar.

Biyolojik veriyi R ile daha bilinçli incelemeyi öğren

KAYNAKLAR

Bu yazıda yararlanılan kaynaklar

  1. Bioconductor — SummarizedExperiment: feature × sample assay, rowData, colData ve experiment metadata modeli.
  2. Bioconductor training — rows/features, columns/samples ve colData sample annotation yapısı.
  3. Wickham H. Tidy Data. Journal of Statistical Software, 2014.
  4. Bioconductor — ExpressionSet/SummarizedExperiment sample ve feature metadata ayrımı.
  5. R Foundation — R’ın data handling, calculation ve graphical facilities kapsamı.