Capítulo 9.1: CNVs

Como executar a análise de variação do número de cópias (CNV)

Título: Como executar a análise de variação do número de cópias (CNV)

Apresentador(es): Daniel Howrigan, Broad Institute

Olá, meu nome é Daniel Howrigan e hoje falarei sobre como executar análise de variação de número de cópias. Na palestra de hoje, abordarei algumas questões, a saber: o que é uma variante de número de cópias e como a detectamos com dados genotípicos? Qual é a aparência do formato do arquivo CNV e como é o resultado da análise CNV? Finalmente, como posso usar isso para executar testes de carga e associação de CNV?

Então, o que é uma variante de número de cópia? Bem, eu defino aqui como um subconjunto de variação estrutural envolvendo um ganho ou duplicação ou uma perda/deleção da sequência genômica. Agora, eu chamo isso de subconjunto de variação estrutural porque a variação estrutural pode abranger basicamente qualquer mudança no comprimento de uma sequência genômica, que pode ser tão pequena quanto a inserção ou deleção de um único par de bases. Agora, a maioria dos SNPs que pensamos são apenas substituições, de modo que o tamanho real do genoma não é alterado com um polimorfismo de um único nucleotídeo. Mas uma variante estrutural pode abranger desde cromossomos muito pequenos até cromossomos inteiros.

O que chamamos de CNVs, bem, sendo um nome genérico, cai na categoria de aproximadamente, pelo menos definida aqui, de no mínimo um quilobase a submicroscópico. Com dados de array, geralmente dizemos algo em torno de 10 a 100 quilobases, dada a nossa sensibilidade para detectar essas CNVs, enquanto CNVs maiores geralmente são superiores a 500 quilobases até múltiplas megabases, e então entramos em eventos muito maiores. Agora, não vou entrar em detalhes sobre os mecanismos que causam isso. Listei alguns aqui; você pode procurá-los. Mas existem diferentes pontos críticos no genoma que são mais propensos a essas variantes no número de cópias devido a regiões repetidas ou muitas vezes formas no maquinário que podem cometer erros e levar a esses ganhos ou perdas de sequência genômica.

Como podemos detectá-lo usando dados genotípicos? Então, quando percorremos o genoma coletando um monte de SNPs… Eu mostro aqui o mecanismo básico, ou pelo menos uma figura mostrando como tiramos a intensidade da luz de diferentes experimentos procurando capturar ou você conhece o alelo A, eu tenho um A como alelo A, ou o alelo B sendo TT aqui, e então um heterozigoto , você pode ver uma mistura de vermelho e verde. Agora podemos aproveitar essas frequências alélicas no que chamamos de frequência do alelo B, ou pelo menos a frequência do T neste caso. Agora, normalmente, quando não há variante de número de cópias, estes serão aproximadamente iguais e, portanto, em torno de 50%. Quando vemos algo como uma deleção grande ou qualquer tipo de deleção, devemos ver uma perda de heterozigosidade e, portanto, veremos uma lacuna nesses alelos B, pelo menos em qualquer local onde você normalmente seria heterozigoto. Com a duplicação, elas ficariam um pouco afastadas, então seriam mais como dois terços-um terço, e você veria talvez um movimento semelhante ao para onde essas linhas rosa podem estar indo, embora não seja bem definido que você veria em uma duplicação que as frequências do alelo B se afastam de 50%, mas não para um e zero.

Agora, olhando para os alelos B, a outra coisa que usamos para detectá-lo é a razão log R (LRR) e isso basicamente mede a intensidade da luz e quando você vê uma queda aqui, onde veríamos talvez em todas essas chamadas, você deverá ver uma queda de 50% quando tivermos uma deleção e, posteriormente, verá um aumento de cerca de 33% para uma duplicação. Agora não vou entrar em detalhes sobre os softwares usados ​​para detectar essas variantes de número de cópias, basta dizer que esta é a base sobre a qual foi construído. 

O que vou falar a seguir é que, como você executou chamadas de variantes de número de cópia, aqui estão os tipos de chamadas de controle de qualidade que você está movendo para o estágio de análise. Eu uso o plink para analisar os dados CNV, para que você possa obter vários formatos de arquivo diferentes, copiar variantes de números de diferentes softwares.Se quiser usar o plink, você converteria isso para este formato de arquivo específico, é definitivamente qual é o arquivo .cnv, e são basicamente identificadores individuais, o cromossomo, a posição inicial e final desta CNV, o tipo um sendo uma deleção, três sendo uma duplicação, e também há alguns outros campos aqui, o campo de pontuação e sites. Neste exemplo, eu uso a pontuação sendo o número de softwares que concordaram em ignorar e chamar, e pode variar até seis; e sites aqui sendo o número de SNPs usados ​​para chamar a CNV. Agora, observo aqui que a pontuação e os sites não são forçados a uma convenção específica. Você poderia dizer, substitua a pontuação pelo número de genes que se sobrepõem ao CNV ou o site é alguma outra variável que você estaria interessado em medir. Agora, junto com esse arquivo, o plink cria um arquivo cnv.map, que basicamente divide os pontos de interrupção de cada CNV em um arquivo de mapa, semelhante ao que temos para dados SNP. E você pode ver aqui, observo que cada posição diferente é mapeada, até mesmo a posição final, mas também talvez uma única posição após esse final, porque você pode querer fazer um teste adicional após o final de uma CNV para ver como as coisas mudaram. Observe que os comandos de formato de arquivo .cnv não estão disponíveis no plink 1.9, mas os atalhos garantidos da versão inicial que você obtém usando a versão mais recente do plink não são tão aplicáveis ​​aqui porque geralmente estamos lidando com variações raras e assim esses tamanhos de arquivo geralmente não são muito grandes e os tipos de computação que você usa não são muito pesados.

Então, como é o output da análise CNV? Normalmente, sempre que você executa um comando no plink olhando seus arquivos de CNV, você obtém o arquivo cnv.indiv, então este é um arquivo por amostra onde você diz o número de segmentos CNV que este indivíduo possui, o número de quilobases que estes cobertura dos segmentos e a média de quilobases cobertas por segmento. Você também obtém um arquivo cnv.summary, semelhante ao arquivo cnv.map que resume o número de indivíduos afetados e não afetados em qualquer ponto de interrupção ou início e fim mais um de uma CNV. E esta é basicamente, você sabe, o output aqui, bem, parece bem simples. Mostrarei como com esses arquivos você pode fazer análises bastante sofisticadas usando vários filtros diferentes.

Portanto, grande parte da mágica do plink são todos os sinalizadores que você pode usar para subdividir sua lista de CNVs. O que tenho aqui é um comando detalhado apenas para mostrar as opcionalidades disponíveis no plink e, para cada um deles, descrevo o que essa função está fazendo. Então, com o plink, você tem `–cfile`, que pode ser lido nos arquivos .cnv.map e .cnv. Quero selecionar apenas exclusões, quero selecionar CNVs com pelo menos 100 quilobases de comprimento, quero CNVs com pontuação quatro ou superior e pelo menos 50 sites. Quero excluir CNVs que se sobrepõem a uma região específica, para poder inserir um arquivo de texto diferente com uma lista de cromossomos e posições iniciais e finais aqui, e quero ter certeza nesta exclusão de que os CNVs devem se sobrepor em pelo menos 50 por cento ser excluído. Também posso observar a frequência em que pelo menos 10 CNVs se sobrepõem. Gostaria de excluí-los porque talvez esteja mais interessado em CNVs muito raros. Também posso escrever as frequências dessas CNVs apenas para garantir quais CNVs estão sendo descartadas, quais CNVs estão sendo mantidas, e então posso executar um teste de carga básico usando um modelo de permutação, e aqui apenas defino o número de permutações é dez mil. Então você pode ver que há muitos sinalizadores diferentes aqui, e a manipulação de muitos desses sinalizadores pode fornecer exatamente o que você gostaria em termos de sua análise.Agora concedido, o uso dos testes de carga no plink não lida com covariáveis, basicamente apenas olha para algo como status de controle de caso, e então o que eu recomendo é pegar a saída, particularmente o arquivo .cnv and .cnd.indiv, e ler isso em, digamos, Python ou R. Eu prefiro R para executar modelos mais sofisticados.

E então você pode ver quando você coloca mais filtros aqui, se eu voltar, o número de segmentos mudará dependendo de quais filtros e, obviamente, subsequentemente, o número de quilobases cobertas por esses segmentos mudará como uma função, e é uma espécie de leitura iterativa desses arquivos em diferentes etapas de filtragem que podem produzir uma ampla variedade de testes.

Então, mostrei aqui alguns números que publicamos ao analisar a carga da CNV na esquizofrenia do PGC. Então, coloquei esses arquivos .cnv.indiv em R, executei uma regressão logística prevendo o status de esquizofrenia e adicionando uma série de covariáveis, como componentes principais, plataformas de genótipo e, basicamente, enquanto executava interativamente diferentes comandos no plink para examinar Kb, contagens de CNV, comprimentos, frequências, se estão ou não em uma região específica… você pode construir uma série de testes de carga geral. Então, neste exemplo aqui, seriam todas as CNVs, deleções e duplicações estratificadas por diferentes plataformas de genotipagem, e então todas juntas, e então no painel B aqui, estou estratificando por diferentes frequências, e digo CNVs previamente implicados como regiões. Quero dizer nas barras azuis que estamos vendo o enriquecimento aqui nas barras verdes e azuis, mas você pode ver o grande desvio aqui. Há muito enriquecimento quando falamos de CNVs nesse tamanho ou pelo menos nessa frequência. Quero dizer, e eles vão embora porque a maioria deles está implicada. Então, excluí essas regiões, executei novamente o teste de carga e você pode ver que já capturamos grande parte do sinal com CNVs previamente implicados.

Então, como usamos isso para executar testes de associação de CNV em loci de CNV individuais ou em pontos de quebra individuais de CNVs? Basicamente, eu executaria um comando muito semelhante. Eu poderia usar todos os mesmos filtros, basicamente me livrar de uma série de comandos, em particular, você está se livrando desse CNV na etapa indiv.perm, mas ainda executa um teste de permutação, e o que você obterá é um arquivo .cmd.summary.mperm e, em cada posição base, você pode executar um teste de associação aqui usando permutação. Este seria o valor de permutação pontual, mas também há um p-valor de permutação familiar que corrige todos os testes aqui. Então, essa associação é executada em todas as posições iniciais e finais mais um possíveis, e uma das coisas que você pode fazer se quiser incluir covariáveis ​​em seus dados, pelo menos o que fiz no passado, é talvez executar seu modelo de regressão logística com muitas de suas covariáveis, retire os resíduos e, em seguida, use isso como uma característica quantitativa, e você pode executar o mapeamento de associação no plink para obter p-valores dessa forma.

Então, como é isso? Acho que ter uma figura é instrutivo aqui. Então, plotei através de um navegador. Vou detalhar isso: este é o nosso sinal no gene NRXN1, em vermelho, temos nossas deleções, deleções em vermelho claro em nossos casos de esquizofrenia, deleções em vermelho escuro em nossos controles de esquizofrenia. Também tenho duplicações em azul, que não representam grande parte do sinal aqui. Mas, como você pode ver, também plotei o p-valor do log 10 negativo e, se você olhar com atenção, poderá ver cada pequeno ponto de quebra. Você pode ver um teste diferente sendo executado, e você pode ver um local como este, onde há muitos pontos de quebra diferentes, muita granularidade, você pode executar muitos testes diferentes e obter uma forma da associação em torno deste gene. Agora, você também pode entrar em colapso. Outro teste que fizemos foi o colapso de todos os exons desse gene, e isso seria mais parecido com um teste de carga genética onde você colapsa essa região e depois testa a sobreposição nessa região, executa um modelo semelhante, e então você pode agregar todos os CNVs e casos e controles para relatar, digamos, um p-valor baseado em gene.

Então, essa é uma visão geral muito rápida de como executar carga e associação com dados CNV, e algumas considerações são que uma das coisas às quais você não tem acesso quando olha para CNVs é a imputação. E então, é uma consideração a se pensar, você sabe, não há nenhum tipo de referência, você sabe, haplótipos de referência ou um conjunto de dados maior para fazer controle de qualidade adicional. Portanto, pode haver desafios adicionais, especialmente com dados abaixo da média, que não podem ser resgatados da mesma forma que a imputação pode resgatar genótipos de SNP. E por falar nisso, você sabe, o chip de genotipagem é muito importante porque você não pode imputar um monte de novos sítios diferentes. A variabilidade em termos do número de SNPs, especialmente para CNVs menores, é uma consideração muito importante. E assim, você pode pensar que, em um chip de genotipagem específico, se você não tiver um bom equilíbrio de caso-controle, poderá não ter a sensibilidade para detectar CNVs adequadamente. Portanto, há muito trabalho para determinar em que comprimento de CNVs, ou pelo menos em quais saldos de controle de caso, dado o seu chip de genotipagem, você tem a quantidade certa de poder e sensibilidade para fazer um teste de associação de caso-controle adequado. 

Outra coisa também é que os PCs ancestrais, a maioria dos hotspots de CNV e CNVs associados que vemos em doenças psiquiátricas não são muito afetados, principalmente porque são áreas de CNV recorrentes de novo, onde há uma taxa de mutação mais alta. Mas isso não é realmente ancestral, definido em termos do fato de que não há uma grande diferença na frequência alélica entre diferentes ancestrais. Mas ainda é útil incluir, especialmente quando você atinge frequências mais altas e obtém mais CNVs herdados. Finalmente, a permutação de correção de múltiplos testes é mais uma das formas mais robustas de contabilizar os múltiplos testes porque a natureza dos dados CNV é tal que, dado o tipo de chip de genotipagem que você usa, o tamanho do seu conjunto de dados, nenhum estudo específico será muito semelhante, semelhante a outro estudo, e que aproveitar a estrutura de correlação dentro do seu próprio conjunto de dados, dado que você conhece sua capacidade de detectar CNVs em vários, de vários tamanhos e frequências, usar a permutação é geralmente a melhor maneira de faça testes adequados para Associação.

Então, se você tiver alguma dúvida, sinta-se à vontade para me enviar um e-mail. Também coloquei alguns sites onde você pode pesquisar aqui o artigo PGC CNV que fizemos em 2017, e também acho que o artigo e o link sobre como fazer isso são realmente bons e muito descritivos de todas as suas funcionalidades. Obrigado.