Análise de enriquecimento por nível de duplicação de genes


11

Antecedentes Biológicos

Com o tempo, algumas espécies de plantas tendem a duplicar todo o seu genoma, ganhando uma cópia adicional de cada gene. Devido à instabilidade dessa configuração, muitos desses genes são excluídos e o genoma se rearranja e se estabiliza, pronto para duplicar novamente. Esses eventos de duplicação estão associados a eventos de especiação e invasão, e a teoria é que a duplicação ajuda as plantas a se adaptarem mais rapidamente aos novos ambientes.

Lupinus, um gênero de planta com flores, invadiu os Andes em um dos eventos de especiação mais rápidos já detectados e, além disso, parece ter mais cópias duplicadas em seu genoma do que o gênero mais relacionado, Baptisia.

E agora o problema matemático:

Os genomas de um membro de Lupinus e um membro de Baptisia foram seqüenciados, fornecendo dados brutos de cerca de 25.000 genes em cada espécie. Ao consultar um banco de dados de genes de função conhecida, agora tenho um "melhor palpite" para quais funções esse gene pode desempenhar - por exemplo, Gene1298 pode estar associado a "metabolismo da frutose, resposta ao estresse salino, resposta ao estresse frio". Quero saber, se houve um evento de duplicação entre Baptisia e Lupinus, se a perda de genes ocorreu aleatoriamente ou se os genes que desempenham funções específicas têm maior probabilidade de serem mantidos ou excluídos.

Eu tenho um script que produzirá uma tabela como a mostrada abaixo. L * é uma contagem de todos os genes de Lupinus associados à função. L 1+ é uma contagem de genes de lupino associados à função em que existe pelo menos uma cópia duplicada. Posso produzir L 2+, L 3+ etc., embora o L 1+ seja um grupo muito mais confiável que o L 2+ devido ao processo de sequenciamento.

Function            | L *  | L 1+ | B *  | B 1+ |
fructose metabolism | 1000 | 994  | 1290 | 876  |
salt stress         | 56   | 45   | 90   | 54   |
etc.

O que eu gostaria de fazer é testar, para cada função gênica, se há mais ou menos genes duplicados do que se poderia esperar puramente por acaso no Lupinus e no Baptisia, e se o Lupinus difere do Baptisia na proporção observada para o esperado.

A melhor coisa que tenho até agora

Estudos anteriores em diferentes espécies usaram a Análise de Enriquecimento, com Teste Exato de Fisher e correção de FDR para amostragem múltipla, para fazer um teste de contingência em cada linha.

Seria bom melhorar isso; Não sei se isso parece a melhor maneira de fazê-lo.

Glen_b sugeriu o uso de um GLM para analisar os dados; Eu brinquei com os GLMs no JMP8, o que tem sido interessante, mas admito que realmente não os entendo.

Dito isto, estou tentando usar o R ​​agora.

Para que estou usando isso?

Originalmente, isso deveria ser parte de um pequeno projeto de pesquisa que estou fazendo na universidade, mas agora se transformou em um enorme projeto de anotação de genoma. Por quê? Porque a bioinformática é legal. Ser capaz de pegar uma série de A, T, C e G e usá-la para inferir informações sobre eventos que ocorreram milhões de anos atrás é incrível.

Desnecessário dizer que não tentarei enviar nenhuma resposta gentilmente fornecida como meu próprio trabalho. Ficaria feliz em incluir um reconhecimento no trabalho se eu usar um método sugerido aqui no trabalho enviado.


1
Observe o problema que mencionei na minha resposta anterior à sua outra pergunta - sobre testar apenas uma variável quando houver outras variáveis ​​importantes (apontei para o artigo da Wikipedia no Paradox de Simpson) - o teste exato de Fisher não contorna isso.
Glen_b -Reinstala Monica

Bioinformática é legal !! Bem vindo ao site!
Kyle.

Voltarei e darei respostas mais extensas em breve, mas as funções apropriadas no R para examinar serão loglin, loglm (no pacote MASS, que vem com R, mas não está instalado por padrão) e o próprio glm. A compreensão destes modelos terão muita semelhança com o entendimento de regressão múltipla e ANOVA - com as exceções que as distribuições não são normais, e os meios toras de-é o que os modelos são lineares no.
Glen_b -Reinstate Monica

Respostas:


1

Embora eu concorde que o teste de Fisher (ou algo semelhante) possa ser a abordagem mais natural aqui, que tal isso:

  1. Para cada gene único, você determina a diferença no número de duplicações em L e B
  2. Ordene os genes por essa diferença. Agora, os genes que mostram muitas diferenças entre as espécies estarão no topo da sua lista.
  3. Aplique um teste de enriquecimento de conjunto de genes à lista ordenada de genes. Por exemplo, você pode usar um método de Fisher modificado do meu pacote tmod , para o qual você teria que definir seus conjuntos de genes (deve ser bem direto). Observe que o método de Fisher não está relacionado ao teste de Fisher.

O teste de Fisher modificado (apelidado de CERNO pelos autores que o descreveram pela primeira vez nesse contexto) leva como entrada qualquer lista ordenada de genes, desde que você possa agrupá-los em algumas categorias úteis.

A vantagem dessa abordagem é que, além de um valor-p, você pode facilmente calcular o tamanho do efeito do enriquecimento e visualizá-lo (por exemplo, como uma curva ROC sobre a lista ordenada de genes). Isso dá uma idéia muito melhor do quanto o que você observa realmente importa para a biologia que você estuda.


0

Como você diz, você está fazendo duas perguntas distintas.

Questão 1 "é a razão L * / L1 + diferente de B * / B1 + para uma dada função genética"

isso pode ser melhor respondido com o teste exato de Fisher usando dados na linha, como você encontrou anteriormente.

A questão 2 "é a razão: genes em que há uma única cópia / genes em que há mais de uma cópia, diferentes entre as funções dos genes?"

Eu acho que isso também pode ser melhor respondido com o teste exato de Fisher. Você testaria a proporção de L * / L1 + para a função do gene 1 contra L * / L1 + para a função do gene 2. Em seguida, a função do gene 1 Vs a função do gene 3, etc.

Nenhum desses conjuntos de perguntas aborda se elas estão sendo mantidas / excluídas mais rapidamente do que o esperado, apenas por acaso, apenas se elas estão sendo excluídas / mantidas em taxas diferentes umas das outras. Para saber se eles estavam sendo excluídos / mantidos a uma taxa diferente do acaso, você precisaria saber a proporção de singlecopy / multiplecopies para muitas regiões de DNA que estão sendo afetadas apenas por acaso. Se você pudesse encontrar essas regiões, acabaria com um "Grupo de funções" em que a função é "Nenhuma". Você compararia isso com seus outros grupos funcionais de genes da mesma maneira que descrevi na pergunta 2.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.