Domanda:
In che modo gli algoritmi di picco stretto e picco ampio di MACS2 sono diversi?
Ian Sudbery
2017-05-20 05:21:09 UTC
view on stackexchange narkive permalink

Lo strumento di chiamata dei picchi MACS2 può richiamare i picchi in modalità narrow peak (per segnali focalizzati come il fattore di trascrizione ChIPseq) o in modalità peak broad (per segnali più disinnescati, come alcune modifiche istoniche).

L'algoritmo per la chiamata narrow peak è ben descritto nella pubblicazione MACS. Ma non trovo molta documentazione su come le chiamate di picco siano diverse nella modalità di picco ampio. Il manuale contiene solo quanto segue:

--broad

Quando questo flag è attivo, MACS proverà a comporre ampie regioni in BED12 (un formato simile a un modello genetico ) inserendo regioni vicine altamente arricchite in una vasta regione con un taglio ampio. L'ampia regione è controllata da un'altra linea di demarcazione attraverso la linea di demarcazione. La lunghezza massima della lunghezza di una regione ampia è 4 volte di d da MACS

Ma questo non descrive esattamente come viene eseguita.

Quindi qual è l'algoritmo che MACS utilizza per chiamare i picchi ampi?

Ho trovato l '[algoritmo] (https://github.com/taoliu/MACS/blob/24a1eab9fe7e885c27a37dbac2efb99d6da8dc74/MACS2/IO/BedGraph.pyx#L594), ma onestamente non sono riuscito a ottenere la costruzione try / tranne sulla linea 629. ..
Una risposta:
#1
+10
Daniel Kim
2017-05-21 02:38:55 UTC
view on stackexchange narkive permalink

La funzione chiave è call_broadpeaks :

La descrizione allegata alla funzione dice:

Questa funzione prova a trovare regioni arricchite all'interno delle quali i punteggi sono continuamente superiori a un dato limite per il livello 1 e collegali utilizzando il divario sopra il livello 2 con una lunghezza massima di lvl2_max_gap.

scoring_function_s: simboli di funzioni per calcolare il punteggio. "p" per pscore, "q" per qscore, "f" per fold change, "s" per sottrazione. ad esempio: ['p', 'q']

lvl1_cutoff_s: elenco di valori limite nelle regioni altamente arricchite, corrispondenti a funzioni di punteggio.

lvl2_cutoff_s: elenco dei limiti nelle regioni meno arricchite , corrispondente alle funzioni di punteggio.

min_length: lunghezza del picco minimo, valore predefinito 200.

lvl1_max_gap: spazio massimo per unire i picchi arricchiti vicini, valore predefinito 50.

lvl2_max_gap : lunghezza massima delle regioni di collegamento, valore predefinito 400.

Restituisce sia l'oggetto PeakIO generale per le regioni altamente arricchite sia le regioni ampie con gap in BroadPeakIO.

Per fornire una spiegazione di base, l'algoritmo (brevemente) sembra essere il seguente:

  1. Vengono chiamati due livelli separati di picchi, livello 1 (un pval più alto, cioè più significativo) e livello 2 (un pval più basso ). Il livello 1 è controllato da -p e il livello 2 è controllato da --broad-cutoff . Quando ogni set di picchi viene chiamato, vengono immediatamente collegati dal parametro max gap per ciascun set.

  2. Quindi, supponendo che tutti i picchi di livello 1 dovrebbero essere all'interno di picchi di livello 2 un'ipotesi esplicita di MACS2), l'algoritmo raggruppa i picchi di livello 1 all'interno di picchi di livello 2 per produrre un picco ampio.

...

Questo ha alcune implicazioni:

  1. Le chiamate di picco generale provengono davvero dai soli picchi di livello 2 (+ collegamento). Le chiamate di picco di livello 1 consentono di distinguere i picchi secondari (in modo da poter avere picchi separati).

  2. A parte il collegamento, le chiamate a picco ampio sarebbero le stesse chiamate a picco stretto, se chiamate entrambe con la stessa soglia pval (ad esempio, se imposti --broad-cutoff 0.1 in modalità picco ampio e -p 0.1 per modalità picco stretto)

Potresti chiarire nella tua risposta che "pval più alto" è in realtà un valore p "più basso" o "più significativo" e che "pval più basso" è in realtà un valore p "più alto" o "meno significativo"? Prevedo che qualcuno si confonda con la formulazione.
Aggiunto un chiarimento: grazie per la cattura!


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...