Domanda:
Come posso calcolare gene_length per il calcolo RPKM dai dati di conteggio?
stack_learner
2017-09-26 14:47:26 UTC
view on stackexchange narkive permalink

Ho letto i dati dei conteggi e desidero convertirli in valori RPKM. Per questa conversione ho bisogno della lunghezza del gene.

La lunghezza del gene deve essere calcolata in base alla somma delle lunghezze esoniche codificanti? O ci sono modi diversi per farlo?

So che la lunghezza del gene può essere presa dal file Gencode GTF v19. Potresti dirmi come viene calcolata la Gene_length ?

I dati che ho sono dati RNA-Seq. Non ho idea se devo includere UTR in questo calcolo o solo esoni?

In Github ho visto calcolo RPKM dai dati Counts con Gene_length dal file Gencode GTF. Pensi che questo sia il modo giusto di calcolo?

E perché RPKM è - Non è per l'analisi differenziale. Per la sottotipizzazione TNBC utilizzano dati di microarray. Vorrei provare con i dati RNA-Seq. Quindi per questo sto provando in modo diverso e nel modo giusto.

[Vedi qui] (https://bioinformatics.stackexchange.com/a/69/29) per sapere perché ** non ** vuoi utilizzare RPKM.
Due risposte:
Devon Ryan
2017-09-26 15:02:38 UTC
view on stackexchange narkive permalink

Qui puoi trovare un codice R di esempio per calcolare la lunghezza del gene dato un file GTF (calcola anche il contenuto GC, che non ti serve). Questo utilizza uno dei numerosi modi per calcolare la lunghezza del gene, in questo caso la lunghezza del "modello di gene union". In questo metodo, gli esoni non duplicati per ciascun gene vengono semplicemente sommati ("non duplicati" in quanto nessuna base genomica viene conteggiata due volte). Questo è un modo molto semplice per ottenere una lunghezza del gene.

Esistono metodi alternativi di cui dovresti essere a conoscenza, tra i quali:

  1. Lunghezza mediana della trascrizione: ovvero , le lunghezze esoniche in ciascuna trascrizione vengono sommate e viene utilizzata la mediana tra le trascrizioni. Questo è probabilmente un po 'più valido del codice a cui ho collegato.
  2. Lunghezze geniche effettive per campione: il metodo ottimale, sebbene richieda l'uso di qualcosa come RSEM, che ti darà una lunghezza genica effettiva.
  3. Usare la lunghezza dell '"isoforma maggiore" nel tessuto di interesse. Non è buono come il metodo 2, ma è più accurato di tutti gli altri.

Alla fine della giornata, stai solo elaborando un fattore di scala per ciascuno gene, quindi a meno che tu non intenda confrontare i valori tra i geni (questo è problematico per cominciare), è discutibile se usare alcuni dei metodi più corretti ma anche più impegnativi in ​​termini di tempo ti stia davvero ottenendo qualcosa.

strong> Modifica : Nota che se vuoi inserire questi valori in una sorta di strumento di sottotipizzazione (TNBC nel tuo caso), dovresti prima iniziare con alcuni esempi di cui conosci il sottotipo. Quindi puoi almeno vedere se stai ottenendo risultati ragionevoli. Dopodiché, leggi come funziona il metodo e vedi se c'è qualcosa su RNAseq che lo rende incompatibile.
Penso che il metodo utilizzato per calcolare la lunghezza del gene dovrebbe essere informato dal metodo di conteggio. Se le letture fossero contate su tutti gli esoni, ha molto senso utilizzare i metodi alternativi che hai menzionato?
Esistono metodi dipendenti dai dati (vale a dire l'opzione 2 e forse 3) e metodi indipendenti dai dati (tutto il resto). Il metodo di conteggio è irrilevante tranne con cose come RSEM che produrranno lunghezze effettive in base all'espressione di trascrizione relativa osservata in ciascun campione. Altrimenti, la lunghezza di un gene è solo una costante.
Sebastian Müller
2017-10-16 02:36:09 UTC
view on stackexchange narkive permalink

Presumo che tu stia mappando contro il genoma piuttosto che il trascrittoma, poiché per il secondo la lunghezza sarebbe banale.

Supponendo il primo, penso che non dovrebbero essere incluse solo le sezioni di codifica ma anche l'UTR , dal momento che le letture possono essere mappate rispetto ad esse, che è ciò che alla fine ci interessa.

In generale, ho scoperto che i file di annotazione genica (ad esempio gff o gtf) possono essere incoerenti in termini di denominazione, quindi è buona pratica ispezionare e ricontrolla. Di seguito è riportato del codice R per importare l'annotazione e calcolare le lunghezze delle isoforme:

  library (rtracklayer) # Reading into a GRanges objectanno <- import.gff3 ("annotation.gff") # Filtering exons and UTRsexons <- anno [anno @ elementMetadata $ type% in% c ("exon", "five_prime_UTR", "three_prime_UTR"),]  

A seconda dell'annotazione a portata di mano, la più sensata è probabilmente meglio contare la lunghezza di ciascuna isoforma che è spesso contenuta nella colonna "Parent" del file di annotazione:

  # dividere le isoforme come preparazione per il passaggio successivo <- split (esoni , as.character (exons $ Parent)) # per ogni isoforma, calcola la somma di tutti gli esoni ridotti Gene_length <- sum (width (reduce (tmp)))  

Nota, riduci le unioni che si sovrappongono intervalli insieme, poiché gli UTR possono "contenere" bit di esoni che altrimenti verrebbero contati due volte.

Questo codice può ovviamente essere adattato principalmente cambiando "Parent", "exon" ecc.

Se stai filtrando gli esoni, non è necessario includere gli UTR. Non stai ferendo nulla poiché li `riduci ()` comunque, ma avresti potuto liberare un po 'di memoria. Puoi anche filtrare direttamente in `import.gff3` (vedi il primo collegamento nella mia risposta).


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...