Consulte o Catálogo GWAS NHGRI-EBI para associações SNP-traço. Pesquise variantes por ID rs, doença/traço, gene, recupere valores de p e estatísticas resumidas, para epidemiologia genética e escores de risco poligênico.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Gwas Database?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/artubss-gwas-database)
---
name: gwas-database
description: "Consulte o Catálogo GWAS NHGRI-EBI para associações SNP-traço. Pesquise variantes por ID rs, doença/traço, gene, recupere valores de p e estatísticas resumidas, para epidemiologia genética e escores de risco poligênico."
---
# Banco de Dados do Catálogo GWAS
## Visão Geral
O Catálogo GWAS é um repositório abrangente de estudos de associação genômica ampla publicados, mantido pelo Instituto Nacional de Pesquisa do Genoma Humano (NHGRI) e pelo Instituto Europeu de Bioinformática (EBI). O catálogo contém associações SNP-traço curadas de milhares de publicações GWAS, incluindo variantes genéticas, doenças e traços associados, valores de p, tamanhos de efeito e estatísticas resumidas completas para muitos estudos.
## Quando Usar Esta Competência
Esta competência deve ser usada quando as consultas envolvem:
- **Associações de variantes genéticas**: Encontrando SNPs associados a doenças ou traços
- **Buscas de SNP**: Recuperando informações sobre variantes genéticas específicas (IDs rs)
- **Pesquisas de traço/doença**: Descobrindo associações genéticas para fenótipos
- **Associações de genes**: Encontrando variantes em ou perto de genes específicos
- **Estatísticas resumidas de GWAS**: Acessando dados completos de associação genômica ampla
- **Metadados de estudos**: Recuperando informações de publicação e coorte
- **Genética populacional**: Explorando associações específicas de ancestralidade
- **Escores de risco poligênico**: Identificando variantes para modelos de predição de risco
- **Genômica funcional**: Entendendo efeitos de variantes e contexto genômico
- **Revisões sistemáticas**: Síntese abrangente de literatura sobre associações genéticas
## Funcionalidades Principais
### 1. Compreendendo a Estrutura de Dados do Catálogo GWAS
O Catálogo GWAS é organizado em torno de quatro entidades principais:
- **Estudos**: Publicações GWAS com metadados (PMID, autor, detalhes da coorte)
- **Associações**: Associações SNP-traço com evidência estatística (p ≤ 5×10⁻⁸)
- **Variantes**: Marcadores genéticos (SNPs) com coordenadas genômicas e alelos
- **Traços**: Fenótipos e doenças (mapeados para termos de ontologia EFO)
**Identificadores-chave:**
- Acessos de estudos: IDs `GCST` (ex: GCST001234)
- IDs de variantes: números `rs` (ex: rs7903146) ou formato `variant_id`
- IDs de traços: termos EFO (ex: EFO_0001360 para diabetes tipo 2)
- Símbolos de genes: nomes aprovados HGNC (ex: TCF7L2)
### 2. Pesquisas na Interface Web
A interface web em https://www.ebi.ac.uk/gwas/ suporta múltiplos modos de busca:
**Por Variante (ID rs):**
```
rs7903146
```
Retorna todas as associações de traço para este SNP.
**Por Doença/Traço:**
```
type 2 diabetes
Parkinson disease
body mass index
```
Retorna todas as variantes genéticas associadas.
**Por Gene:**
```
APOE
TCF7L2
```
Retorna variantes na região do gene ou próximas.
**Por Região Cromossômica:**
```
10:114000000-115000000
```
Retorna variantes no intervalo genômico especificado.
**Por Publicação:**
```
PMID:20581827
Author: McCarthy MI
GCST001234
```
Retorna detalhes do estudo e todas as associações reportadas.
### 3. Acesso via REST API
O Catálogo GWAS fornece duas APIs REST para acesso programático:
**URLs Base:**
- API do Catálogo GWAS: `https://www.ebi.ac.uk/gwas/rest/api`
- API de Estatísticas Resumidas: `https://www.ebi.ac.uk/gwas/summary-statistics/api`
**Documentação da API:**
- Documentação da API principal: https://www.ebi.ac.uk/gwas/rest/docs/api
- Documentação de estatísticas resumidas: https://www.ebi.ac.uk/gwas/summary-statistics/docs/
**Endpoints Principais:**
1. **Endpoint de estudos** - `/studies/{accessionID}`
```python
import requests
# Obter um estudo específico
url = "https://www.ebi.ac.uk/gwas/rest/api/studies/GCST001795"
response = requests.get(url, headers={"Content-Type": "application/json"})
study = response.json()
```
2. **Endpoint de associações** - `/associations`
```python
# Encontrar associações para uma variante
variant = "rs7903146"
url = f"https://www.ebi.ac.uk/gwas/rest/api/singleNucleotidePolymorphisms/{variant}/associations"
params = {"projection": "associationBySnp"}
response = requests.get(url, params=params, headers={"Content-Type": "application/json"})
associations = response.json()
```
3. **Endpoint de variantes** - `/singleNucleotidePolymorphisms/{rsID}`
```python
# Obter detalhes da variante
url = "https://www.ebi.ac.uk/gwas/rest/api/singleNucleotidePolymorphisms/rs7903146"
response = requests.get(url, headers={"Content-Type": "application/json"})
variant_info = response.json()
```
4. **Endpoint de traços** - `/efoTraits/{efoID}`
```python
# Obter informações do traço
url = "https://www.ebi.ac.uk/gwas/rest/api/efoTraits/EFO_0001360"
response = requests.get(url, headers={"Content-Type": "application/json"})
trait_info = response.json()
```
### 4. Exemplos de Consultas e Padrões
**Exemplo 1: Encontrar todas as associações para uma doença**
```python
import requests
trait = "EFO_0001360" # Diabetes tipo 2
base_url = "https://www.ebi.ac.uk/gwas/rest/api"
# Consultar associações para este traço
url = f"{base_url}/efoTraits/{trait}/associations"
response = requests.get(url, headers={"Content-Type": "application/json"})
associations = response.json()
# Processar resultados
for assoc in associations.get('_embedded', {}).get('associations', []):
variant = assoc.get('rsId')
pvalue = assoc.get('pvalue')
risk_allele = assoc.get('strongestAllele')
print(f"{variant}: p={pvalue}, alelo de risco={risk_allele}")
```
**Exemplo 2: Obter informações de variante e todas as associações de traço**
```python
import requests
variant = "rs7903146"
base_url = "https://www.ebi.ac.uk/gwas/rest/api"
# Obter detalhes da variante
url = f"{base_url}/singleNucleotidePolymorphisms/{variant}"
response = requests.get(url, headers={"Content-Type": "application/json"})
variant_data = response.json()
# Obter todas as associações para esta variante
url = f"{base_url}/singleNucleotidePolymorphisms/{variant}/associations"
params = {"projection": "associationBySnp"}
response = requests.get(url, params=params, headers={"Content-Type": "application/json"})
associations = response.json()
# Extrair nomes de traços e valores de p
for assoc in associations.get('_embedded', {}).get('associations', []):
trait = assoc.get('efoTrait')
pvalue = assoc.get('pvalue')
print(f"Traço: {trait}, valor de p: {pvalue}")
```
**Exemplo 3: Acessar estatísticas resumidas**
```python
import requests
# Consultar API de estatísticas resumidas
base_url = "https://www.ebi.ac.uk/gwas/summary-statistics/api"
# Encontrar associações por traço com limiar de valor de p
trait = "EFO_0001360" # Diabetes tipo 2
p_upper = "0.000000001" # p < 1e-9
url = f"{base_url}/traits/{trait}/associations"
params = {
"p_upper": p_upper,
"size": 100 # Número de resultados
}
response = requests.get(url, params=params)
results = response.json()
# Processar achados genômica-ampla significantes
for hit in results.get('_embedded', {}).get('associations', []):
variant_id = hit.get('variant_id')
chromosome = hit.get('chromosome')
position = hit.get('base_pair_location')
pvalue = hit.get('p_value')
print(f"{chromosome}:{position} ({variant_id}): p={pvalue}")
```
**Exemplo 4: Consultar por região cromossômica**
```python
import requests
# Encontrar variantes em uma região genômica específica
chromosome = "10"
start_pos = 114000000
end_pos = 115000000
base_url = "https://www.ebi.ac.uk/gwas/rest/api"
url = f"{base_url}/singleNucleotidePolymorphisms/search/findByChromBpLocationRange"
params = {
"chrom": chromosome,
"bpStart": start_pos,
"bpEnd": end_pos
}
response = requests.get(url, params=params, headers={"Content-Type": "application/json"})
variants_in_region = response.json()
```
### 5. Trabalhar com Estatísticas Resumidas
O Catálogo GWAS hospeda estatísticas resumidas completas para muitos estudos, fornecendo acesso a todas as variantes testadas (não apenas achados genômica-ampla significantes).
**Métodos de Acesso:**
1. **Download FTP**: http://ftp.ebi.ac.uk/pub/databases/gwas/summary_statistics/
2. **REST API**: Acesso baseado em consulta a estatísticas resumidas
3. **Interface web**: Navegue e baixe pelo site
**Características da API de Estatísticas Resumidas:**
- Filtrar por cromossomo, posição, valor de p
- Consultar variantes específicas em estudos
- Recuperar tamanhos de efeito e frequências de alelos
- Acessar dados harmonizados e padronizados
**Exemplo: Baixar estatísticas resumidas para um estudo**
```python
import requests
import gzip
# Obter estatísticas resumidas disponíveis
base_url = "https://www.ebi.ac.uk/gwas/summary-statistics/api"
url = f"{base_url}/studies/GCST001234"
response = requests.get(url)
study_info = response.json()
# O link de download é fornecido na resposta
# Alternativamente, use FTP:
# ftp://ftp.ebi.ac.uk/pub/databases/gwas/summary_statistics/GCSTXXXXXX/
```
### 6. Integração de Dados e Referência Cruzada
O Catálogo GWAS fornece links para recursos externos:
**Bancos de Dados Genômicos:**
- Ensembl: Anotações de genes e consequências de variantes
- dbSNP: Identificadores de variantes e frequências populacionais
- gnomAD: Frequências de alelos populacionais
**Recursos Funcionais:**
- Open Targets: Associações alvo-doença
- PGS Catalog: Escores de risco poligênico
- UCSC Genome Browser: Contexto genômico
**Recursos de Fenótipo:**
- EFO (Experimental Factor Ontology): Termos de traço padronizados
- OMIM: Relações doença-gene
- Disease Ontology: Hierarquias de doenças
**Seguindo Links em Respostas da API:**
```python
import requests
# As respostas da API incluem _links para recursos relacionados
response = requests.get("https://www.ebi.ac.uk/gwas/rest/api/studies/GCST001234")
study = response.json()
# Seguir link para associações
associations_url = study['_links']['associations']['href']
associations_response = requests.get(associations_url)
```
## Fluxos de Trabalho de Consulta
### Fluxo de Trabalho 1: Explorando Associações Genéticas para uma Doença
1. **Identificar o traço** usando termos EFO ou texto livre:
- Pesquisar na interface web por nome da doença
- Observar o ID EFO (ex: EFO_0001360 para diabetes tipo 2)
2. **Consultar associações via API:**
```python
url = f"https://www.ebi.ac.uk/gwas/rest/api/efoTraits/{efo_id}/associations"
```
3. **Filtrar por significância e população:**
- Verificar valores de p (genômica-ampla significante: p ≤ 5×10⁻⁸)
- Revisar informações de ancestralidade nos metadados de estudo
- Filtrar por tamanho de amostra ou status descoberta/replicação
4. **Extrair detalhes de variante:**
- IDs rs para cada associação
- Alelos de efeito e direções
- Tamanhos de efeito (odds ratios, coeficientes beta)
- Frequências de alelos populacionais
5. **Referência cruzada com outros bancos de dados:**
- Pesquisar consequências de variante em Ensembl
- Verificar frequências populacionais em gnomAD
- Explorar função e vias de genes
### Fluxo de Trabalho 2: Investigando uma Variante Genética Específica
1. **Consultar a variante:**
```python
url = f"https://www.ebi.ac.uk/gwas/rest/api/singleNucleotidePolymorphisms/{rs_id}"
```
2. **Recuperar todas as associações de traço:**
```python
url = f"https://www.ebi.ac.uk/gwas/rest/api/singleNucleotidePolymorphisms/{rs_id}/associations"
```
3. **Analisar pleiotropia:**
- Identificar todos os traços associados com esta variante
- Revisar direções de efeito em traços
- Procurar vias biológicas compartilhadas
4. **Verificar contexto genômico:**
- Determinar genes próximos
- Identificar se variante está em regiões codificadoras/regulatórias
- Revisar desequilíbrio de ligação com outras variantes
### Fluxo de Trabalho 3: Análise de Associação Centrada em Gene
1. **Pesquisar por símbolo de gene** na interface web ou:
```python
url = f"https://www.ebi.ac.uk/gwas/rest/api/singleNucleotidePolymorphisms/search/findByGene"
params = {"geneName": gene_symbol}
```
2. **Recuperar variantes em região de gene:**
- Obter coordenadas cromossômicas para gene
- Consultar variantes em região
- Incluir promotor e regiões regulatórias (estender limites)
3. **Analisar padrões de associação:**
- Identificar traços associados com variantes neste gene
- Procurar associações consistentes em estudos
- Revisar tamanhos de efeito e direções
4. **Interpretação funcional:**
- Determinar consequências de variante (missense, regulatória, etc)
- Verificar dados de QTL de expressão (eQTL)
- Revisar contexto de via e rede
### Fluxo de Trabalho 4: Revisão Sistemática de Evidência Genética
1. **Definir questão de pesquisa:**
- Traço ou doença específica de interesse
- Considerações populacionais
- Requisitos de desenho de estudo
2. **Extração abrangente de variante:**
- Consultar todas as associações para traço
- Estabelecer limiar de significância
- Observar estudos de descoberta e replicação
3. **Avaliação de qualidade:**
- Revisar tamanhos de amostra de estudo
- Verificar diversidade populacional
- Avaliar heterogeneidade em estudos
- Identificar potenciais vieses
4. **Síntese de dados:**
- Agregar associações em estudos
- Realizar meta-análise se aplicável
- Criar tabelas resumidas
- Gerar gráficos de Manhattan ou forest plots
5. **Exportação e documentação:**
- Baixar dados completos de associação
- Exportar estatísticas resumidas se necessário
- Documentar estratégia de busca e data
- Criar scripts de análise reproduzíveis
### Fluxo de Trabalho 5: Acessando e Analisando Estatísticas Resumidas
1. **Identificar estudos com estatísticas resumidas:**
- Navegar pelo portal de estatísticas resumidas
- Verificar listagens de diretório FTP
- Consultar API para estudos disponíveis
2. **Baixar estatísticas resumidas:**
```bash
# Via FTP
wget ftp://ftp.ebi.ac.uk/pub/databases/gwas/summary_statistics/GCSTXXXXXX/harmonised/GCSTXXXXXX-harmonised.tsv.gz
```
3. **Consultar via API para variantes específicas:**
```python
url = f"https://www.ebi.ac.uk/gwas/summary-statistics/api/chromosomes/{chrom}/associations"
params = {"start": start_pos, "end": end_pos}
```
4. **Processar e analisar:**
- Filtrar por limiares de valor de p
- Extrair tamanhos de efeito e intervalos de confiança
- Realizar análises posteriores (fine-mapping, colocalization, etc)
## Formatos de Resposta e Campos de Dados
**Campos-chave em Registros de Associação:**
- `rsId`: Identificador de variante (número rs)
- `strongestAllele`: Alelo de risco para a associação
- `pvalue`: Valor de p da associação
- `pvalueText`: Valor de p como texto (pode incluir desigualdade)
- `orPerCopyNum`: Odds ratio ou coeficiente beta
- `betaNum`: Tamanho de efeito (para traços quantitativos)
- `betaUnit`: Unidade de medida para beta
- `range`: Intervalo de confiança
- `efoTrait`: Nome do traço associado
- `mappedLabel`: Termo de traço mapeado em EFO
**Campos de Metadados de Estudo:**
- `accessionId`: Identificador de estudo GCST
- `pubmedId`: ID do PubMed
- `author`: Primeiro autor
- `publicationDate`: Data de publicação
- `ancestryInitial`: Ancestralidade de população de descoberta
- `ancestryReplication`: Ancestralidade de população de replicação
- `sampleSize`: Tamanho total da amostra
**Paginação:**
Os resultados são paginados (padrão 20 itens por página). Navegue usando:
- Parâmetro `size`: Número de resultados por página
- Parâmetro `page`: Número da página (indexado em 0)
- `_links` em resposta: URLs para páginas anterior/próxima
## Melhores Práticas
### Estratégia de Consulta
- Começar com interface web para identificar termos EFO relevantes e acessos de estudo
- Usar API para extração de dados em massa e análises automatizadas
- Implementar tratamento de paginação para grandes conjuntos de resultados
- Cachear respostas da API para minimizar requisições redundantes
### Interpretação de Dados
- Sempre verificar limiares de valor de p (genômica-ampla: 5×10⁻⁸)
- Revisar informações de ancestralidade para aplicabilidade populacional
- Considerar tamanho de amostra ao avaliar força de evidência
- Verificar replicação em estudos independentes
- Estar ciente de viés do vencedor em estimativas de tamanho de efeito
### Limitação de Taxa e Ética
- Respeitar diretrizes de uso de API (sem requisições excessivas)
- Usar downloads de estatísticas resumidas para análises genômica-ampla
- Implementar atrasos apropriados entre chamadas de API
- Cachear resultados localmente ao executar análises iterativas
- Citar o Catálogo GWAS em publicações
### Considerações de Qualidade de Dados
- O Catálogo GWAS cura associações publicadas (pode conter inconsistências)
- Tamanhos de efeito reportados conforme publicado (pode necessitar harmonização)
- Alguns estudos reportam associações condicionais ou conjuntas
- Verificar sobreposição de estudos ao combinar resultados
- Estar ciente de vieses de seleção e ascertainment
## Exemplo de Integração em Python
Fluxo de trabalho completo para consultar e analisar dados GWAS:
```python
import requests
import pandas as pd
from time import sleep
def query_gwas_catalog(trait_id, p_threshold=5e-8):
"""
Consultar o Catálogo GWAS para associações de traço
Args:
trait_id: Identificador de traço EFO (ex: 'EFO_0001360')
p_threshold: Limiar de valor de p para filtragem
Returns:
pandas DataFrame com resultados de associação
"""
base_url = "https://www.ebi.ac.uk/gwas/rest/api"
url = f"{base_url}/efoTraits/{trait_id}/associations"
headers = {"Content-Type": "application/json"}
results = []
page = 0
while True:
params = {"page": page, "size": 100}
response = requests.get(url, params=params, headers=headers)
if response.status_code != 200:
break
data = response.json()
associations = data.get('_embedded', {}).get('associations', [])
if not associations:
break
for assoc in associations:
pvalue = assoc.get('pvalue')
if pvalue and float(pvalue) <= p_threshold:
results.append({
'variant': assoc.get('rsId'),
'pvalue': pvalue,
'risk_allele': assoc.get('strongestAllele'),
'or_beta': assoc.get('orPerCopyNum') or assoc.get('betaNum'),
'trait': assoc.get('efoTrait'),
'pubmed_id': assoc.get('pubmedId')
})
page += 1
sleep(0.1) # Limitação de taxa
return pd.DataFrame(results)
# Exemplo de uso
df = query_gwas_catalog('EFO_0001360') # Diabetes tipo 2
print(df.head())
print(f"\nTotal de associações: {len(df)}")
print(f"Variantes únicas: {df['variant'].nunique()}")
```
## Recursos
### references/api_reference.md
Documentação abrangente de API incluindo:
- Especificações de endpoint detalhadas para ambas as APIs
- Lista completa de parâmetros de consulta e filtros
- Especificações de formato de resposta e descrições de campos
- Exemplos de consulta avançada e padrões
- Tratamento de erros e solução de problemas
- Integração com bancos de dados externos
Consulte esta referência quando:
- Construir consultas de API complexas
- Compreender estruturas de resposta
- Implementar paginação ou operações em lote
- Solucionar problemas de erros da API
- Explorar opções de filtragem avançada
### Materiais de Treinamento
A equipe do Catálogo GWAS fornece materiais de workshop:
- Repositório GitHub: https://github.com/EBISPOT/GWAS_Catalog-workshop
- Notebooks Jupyter com consultas de exemplo
- Integração Google Colab para execução em nuvem
## Notas Importantes
### Atualizações de Dados
- O Catálogo GWAS é atualizado regularmente com novas publicações
- Re-executar consultas periodicamente para cobertura abrangente
- Estatísticas resumidas são adicionadas conforme estudos lançam dados
- Mapeamentos de EFO podem ser atualizados ao longo do tempo
### Requisitos de Citação
Ao usar dados do Catálogo GWAS, cite:
- Sollis E, et al. (2023) The NHGRI-EBI GWAS Catalog: knowledgebase and deposition resource. Nucleic Acids Research. PMID: 37953337
- Inclua data de acesso e versão quando disponível
- Cite estudos originais ao discutir descobertas específicas
### Limitações
- Nem todas as publicações GWAS estão incluídas (critérios de curação aplicáveis)
- Estatísticas resumidas completas disponíveis para subconjunto de estudos
- Tamanhos de efeito podem exigir harmonização em estudos
- Diversidade populacional está crescendo, mas historicamente limitada
- Algumas associações representam efeitos condicionais ou conjuntos
### Acesso a Dados
- Interface web: Livre, sem registro necessário
- APIs REST: Livre, sem chave API necessária
- Downloads FTP: Acesso aberto
- Limitação de taxa aplica-se a API (seja respeitoso)
## Recursos Adicionais
- **Site do Catálogo GWAS**: https://www.ebi.ac.uk/gwas/
- **Documentação**: https://www.ebi.ac.uk/gwas/docs
- **Documentação de API**: https://www.ebi.ac.uk/gwas/rest/docs/api
- **API de Estatísticas Resumidas**: https://www.ebi.ac.uk/gwas/summary-statistics/docs/
- **Site FTP**: http://ftp.ebi.ac.uk/pub/databases/gwas/
- **Materiais de treinamento**: https://github.com/EBISPOT/GWAS_Catalog-workshop
- **PGS Catalog** (escores poligênicos): https://www.pgscatalog.org/
- **Ajuda e suporte**: gwas-info@ebi.ac.uk