Soru:
Okuma eşlemesini birden çok lokusla ölçmek
rightskewed
2017-05-30 14:05:01 UTC
view on stackexchange narkive permalink

RNA-Seq örneklerimiz için STAR kullanıyorum. final.out günlük dosyası, benzersiz şekilde eşlenen okumaların yüzdesinin yanı sıra birden çok lokasyona (10'dan küçük veya eşit) eşlenen okumaların yüzdesini ve okuma eşleme yüzdesini bildirir çok fazla lokus (10'dan büyük). Bununla birlikte, çoklu konum bölümünü ayrı sayımlara ayırmak istiyorum: 2 konum, 3 konum, 4 konum için eşlemeyi okur .. 10 konum.

NH etiketi, STAR tarafından kullanılıyor gibi görünüyor. Bununla birlikte, saf bir okuma sayma yaklaşımı, toplam okumalardan daha fazla sayıda okuma raporlamasına neden olur.

Örneğin, final.out şu şekilde görünür:

  Haritalama hızı, Saatte Milyon okuma | 1403.36 Giriş okuma sayısı | 53015978 Ortalama giriş okuma uzunluğu | 26 EŞSİZ OKUMALAR: Eşsiz haritalanmış okuma sayısı | 368916 Benzersiz şekilde eşlenen okuma% | 0.70% Ortalama haritalanan uzunluk | 26.45 Ek sayısı: Toplam | 1057 Ek sayısı: Açıklamalı (sjdb) | 0 Ek yeri sayısı: GT / AG | 802 Ek sayısı: GC / AG | 1 Ek yeri sayısı: AT / AC | 0 Ek sayısı: Standart olmayan | 254 Baz başına uyuşmazlık oranı,% | Baz başına% 0,31 Silme oranı | % 0.00 Silme ortalama uzunluğu | 1.45 Baz başına ekleme oranı | % 0.00 Ekleme ortalama uzunluğu | 1.00 ÇOKLU EŞLEME OKUMALARI: Birden çok konuma eşlenen okuma sayısı 45766732% çoklu lokuslarla eşleştirilen okumalar | 86.33% Çok fazla lokusa eşlenen okuma sayısı | 3757890
Okumaların% 'si çok fazla lokasyona eşlendi | % 7,09 EŞLENMEYEN OKUMALAR: Eşlenmemiş okumaların yüzdesi: çok fazla uyuşmazlık | Eşlenmemiş okumaların% 0,00'ü: çok kısa | Eşlenmemiş okumaların% 5.89'u: diğer | % 0,00  

pysam :

  def get_reads_hist (bam) kullanarak okunan haritaların bulunduğu konumların histogramını sayma: bam = pysam.AlignmentFile (bam, 'rb') counts = bam.fetch () içindeki sorgu için Sayaç (): nh_count = Sayaç (dict (query.get_tags ()) ['NH']) sayılar + = nh_count dönüş sayıları  

  Sayaç ({1: 330606, 2: 86772164, 3: 329, 4: 38083, 5: 31, 6: 1094, 7) ile sonuçlanır : 129, 8: 50, 10: 50})  

1 sayımları finaldeki sayılarla eşleşmeseler bile sorun değil. belirli bir okuma kategorisini saydığım için (yalnızca tRNA ile eşleştirenleri söyleyin), ancak okumaların 2 konumla eşleştirilmesi çok fazla tahmin edildiğinden. Neden böyle?

Bir cevap:
#1
+9
Devon Ryan
2017-05-30 14:08:12 UTC
view on stackexchange narkive permalink

Neredeyse doğru python kodunu zaten almıştınız, yalnızca ikincil hizalamaları filtrelemeniz gerekiyor:

  def get_reads_hist (bam): bam = pysam.AlignmentFile (bam, 'rb') sayıları = Bam.fetch () içindeki sorgu için Sayaç (): query.is_secondary: devam nh_count = Sayaç (dict (query.get_tags ()) ['NH']) sayılar + = nh_count dönüş sayıları  


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...