Questão:
Como os algoritmos de pico estreito e de pico amplo do MACS2 são diferentes?
Ian Sudbery
2017-05-20 05:21:09 UTC
view on stackexchange narkive permalink

A ferramenta de chamada de pico MACS2 pode chamar picos no modo de pico estreito (para sinais focados, como fator de transcrição ChIPseq) ou no modo de pico amplo (para sinais mais difusos, como certas modificações de histonas).

O algoritmo para chamada de pico estreito é bem descrito na publicação MACS. Mas não encontro muita documentação sobre como as chamadas de pico são diferentes no modo de pico amplo. O manual contém apenas o seguinte:

--broad

Quando este sinalizador está ligado, o MACS tentará compor regiões amplas em BED12 (um formato de modelo genético ), colocando regiões altamente enriquecidas próximas em uma região ampla com corte frouxo. A região ampla é controlada por outro corte através de - corte amplo. O comprimento máximo do comprimento da região ampla é 4 vezes de d do MACS

Mas isso não descreve exatamente como isso é feito.

Então, qual é o algoritmo que o MACS usa para chamar picos amplos?

Encontrei o [algoritmo] (https://github.com/taoliu/MACS/blob/24a1eab9fe7e885c27a37dbac2efb99d6da8dc74/MACS2/IO/BedGraph.pyx#L594), mas honestamente não consegui realmente obter a construção try / except na linha 629. ..
Um responda:
Daniel Kim
2017-05-21 02:38:55 UTC
view on stackexchange narkive permalink

A função chave é call_broadpeaks :

A descrição anexada à função diz:

Esta função tente encontrar regiões enriquecidas dentro das quais as pontuações são continuamente mais altas do que um determinado corte para o nível 1 e vincule-as usando a lacuna acima do corte de nível 2 com um comprimento máximo de lvl2_max_gap.

scoring_function_s: símbolos de funções para calcular pontuação. 'p' para pscore, 'q' para qscore, 'f' para mudança de dobra, 's' para subtração. por exemplo: ['p', 'q']

lvl1_cutoff_s: lista de pontos de corte em regiões altamente enriquecidas, correspondendo a funções de pontuação.

lvl2_cutoff_s: lista de pontos de corte em regiões menos enriquecidas , correspondendo às funções de pontuação.

min_length: comprimento mínimo do pico, padrão 200.

lvl1_max_gap: intervalo máximo para mesclar picos enriquecidos próximos, padrão 50.

lvl2_max_gap : comprimento máximo das regiões de ligação, padrão 400.

Retorne o objeto PeakIO geral para regiões altamente enriquecidas e regiões amplas com lacunas em BroadPeakIO.

Para dar alguma explicação básica, o algoritmo (resumidamente) parece ser o seguinte:

  1. Dois níveis separados de picos são chamados, nível 1 (um pval mais alto, isto é, mais significativo) e nível 2 (um pval mais baixo ) O nível 1 é controlado por -p e o nível 2 é controlado por --broad-cutoff . Quando cada conjunto de picos é chamado, eles são imediatamente vinculados pelo parâmetro de intervalo máximo para cada conjunto.

  2. Então, assumindo que todos os picos de nível 1 devem estar dentro de picos de nível 2 (isto é uma suposição explícita de MACS2), o algoritmo agrupa picos de nível 1 dentro de picos de nível 2 para gerar um pico amplo.

...

algumas implicações:

  1. Os picos gerais de chamadas realmente vêm apenas dos picos de nível 2 (+ links). As chamadas de pico de nível 1 permitem distinguir sub-picos (para que você possa ter picos abertos).

  2. Além da vinculação, as chamadas de pico amplo seriam iguais às chamadas de pico estreito, se você chamasse ambas com o mesmo limite pval (por exemplo, se você definir --broad-cutoff 0.1 no modo de pico amplo e -p 0.1 para o modo de pico estreito)

Você poderia esclarecer em sua resposta que "pval mais alto" é na verdade um valor p "mais baixo" ou "mais significativo" e que "pval mais baixo" é na verdade um valor p "mais alto" ou "menos significativo"? Prevejo que alguém ficará confuso com o texto.
Adicionado um esclarecimento - obrigado pela pegadinha!


Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...