Consulta a API STRING para interações proteína-proteína (59M proteínas, 20B interações). Análise de redes, enriquecimento GO/KEGG, descoberta de interações, 5000+ espécies, para biologia de sistemas.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add artubss/SKILLS-CLAUDE-CODE --skill string-database --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of String Database?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/artubss-string-database)More formats (shields.io, HTML) on the badges page.
---
name: string-database
description: "Consulta a API STRING para interações proteína-proteína (59M proteínas, 20B interações). Análise de redes, enriquecimento GO/KEGG, descoberta de interações, 5000+ espécies, para biologia de sistemas."
---
# Banco de Dados STRING
## Visão Geral
STRING é um banco de dados abrangente de interações proteína-proteína conhecidas e preditas, cobrindo 59M proteínas e 20B+ interações em 5000+ organismos. Consulte redes de interação, execute análise de enriquecimento funcional, descubra parceiros via REST API para biologia de sistemas e análise de vias.
## Quando Usar Esta Habilidade
Esta habilidade deve ser usada quando:
- Recuperar redes de interação proteína-proteína para uma ou múltiplas proteínas
- Executar análise de enriquecimento funcional (GO, KEGG, Pfam) em listas de proteínas
- Descobrir parceiros de interação e expandir redes de proteínas
- Testar se proteínas formam módulos funcionais significativamente enriquecidos
- Gerar visualizações de rede com coloração baseada em evidência
- Analisar homologia e relações de família de proteínas
- Conduzir comparações de interação proteína entre espécies
- Identificar proteínas hub e padrões de conectividade de rede
## Início Rápido
A habilidade fornece:
1. Funções auxiliares Python (`scripts/string_api.py`) para todas as operações REST API do STRING
2. Documentação de referência abrangente (`references/string_reference.md`) com especificações detalhadas de API
Quando usuários solicitarem dados STRING, determine qual operação é necessária e use a função apropriada de `scripts/string_api.py`.
## Operações Principais
### 1. Mapeamento de Identificadores (`string_map_ids`)
Converta nomes de genes, nomes de proteínas e IDs externos para identificadores STRING.
**Quando usar**: Iniciando qualquer análise STRING, validando nomes de proteínas, encontrando identificadores canônicos.
**Uso**:
```python
from scripts.string_api import string_map_ids
# Mapear proteína única
result = string_map_ids('TP53', species=9606)
# Mapear múltiplas proteínas
result = string_map_ids(['TP53', 'BRCA1', 'EGFR', 'MDM2'], species=9606)
# Mapear com múltiplas correspondências por consulta
result = string_map_ids('p53', species=9606, limit=5)
```
**Parâmetros**:
- `species`: ID de táxon NCBI (9606 = humano, 10090 = camundongo, 7227 = mosca)
- `limit`: Número de correspondências por identificador (padrão: 1)
- `echo_query`: Incluir termo de consulta na saída (padrão: 1)
**Melhor prática**: Sempre mapeie identificadores primeiro para consultas subsequentes mais rápidas.
### 2. Recuperação de Rede (`string_network`)
Obtenha dados de rede de interação proteína-proteína em formato tabular.
**Quando usar**: Construindo redes de interação, analisando conectividade, recuperando evidência de interação.
**Uso**:
```python
from scripts.string_api import string_network
# Obter rede para proteína única
network = string_network('9606.ENSP00000269305', species=9606)
# Obter rede com múltiplas proteínas
proteins = ['9606.ENSP00000269305', '9606.ENSP00000275493']
network = string_network(proteins, required_score=700)
# Expandir rede com interatores adicionais
network = string_network('TP53', species=9606, add_nodes=10, required_score=400)
# Apenas interações físicas
network = string_network('TP53', species=9606, network_type='physical')
```
**Parâmetros**:
- `required_score`: Limiar de confiança (0-1000)
- 150: confiança baixa (exploratória)
- 400: confiança média (padrão, análise padrão)
- 700: confiança alta (conservadora)
- 900: confiança mais alta (muito rigorosa)
- `network_type`: `'functional'` (todas as evidências, padrão) ou `'physical'` (apenas ligação direta)
- `add_nodes`: Adicionar N proteínas mais conectadas (0-10)
**Colunas de saída**: Pares de interação, pontuações de confiança e pontuações de evidência individual (vizinhança, fusão, coexpressão, experimental, banco de dados, mineração de texto).
### 3. Visualização de Rede (`string_network_image`)
Gere visualização de rede como imagem PNG.
**Quando usar**: Criando figuras, exploração visual, apresentações.
**Uso**:
```python
from scripts.string_api import string_network_image
# Obter imagem de rede
proteins = ['TP53', 'MDM2', 'ATM', 'CHEK2', 'BRCA1']
img_data = string_network_image(proteins, species=9606, required_score=700)
# Salvar imagem
with open('network.png', 'wb') as f:
f.write(img_data)
# Rede colorida por evidência
img = string_network_image(proteins, species=9606, network_flavor='evidence')
# Visualização baseada em confiança
img = string_network_image(proteins, species=9606, network_flavor='confidence')
# Rede de ações (ativação/inibição)
img = string_network_image(proteins, species=9606, network_flavor='actions')
```
**Sabores de rede**:
- `'evidence'`: Linhas coloridas mostram tipos de evidência (padrão)
- `'confidence'`: A espessura da linha representa confiança
- `'actions'`: Mostra relações de ativação/inibição
### 4. Parceiros de Interação (`string_interaction_partners`)
Encontre todas as proteínas que interagem com proteína(s) fornecida(s).
**Quando usar**: Descobrindo novas interações, encontrando proteínas hub, expandindo redes.
**Uso**:
```python
from scripts.string_api import string_interaction_partners
# Obter top 10 interatores de TP53
partners = string_interaction_partners('TP53', species=9606, limit=10)
# Obter interatores de alta confiança
partners = string_interaction_partners('TP53', species=9606,
limit=20, required_score=700)
# Encontrar interatores para múltiplas proteínas
partners = string_interaction_partners(['TP53', 'MDM2'],
species=9606, limit=15)
```
**Parâmetros**:
- `limit`: Número máximo de parceiros a retornar (padrão: 10)
- `required_score`: Limiar de confiança (0-1000)
**Casos de uso**:
- Identificação de proteína hub
- Expansão de rede a partir de proteínas sementes
- Descoberta de conexões indiretas
### 5. Enriquecimento Funcional (`string_enrichment`)
Execute análise de enriquecimento em Gene Ontology, vias KEGG, domínios Pfam e mais.
**Quando usar**: Interpretando listas de proteínas, análise de vias, caracterização funcional, entendendo processos biológicos.
**Uso**:
```python
from scripts.string_enrichment import string_enrichment
# Enriquecimento para lista de proteínas
proteins = ['TP53', 'MDM2', 'ATM', 'CHEK2', 'BRCA1', 'ATR', 'TP73']
enrichment = string_enrichment(proteins, species=9606)
# Analisar resultados para encontrar termos significativos
import pandas as pd
df = pd.read_csv(io.StringIO(enrichment), sep='\t')
significant = df[df['fdr'] < 0.05]
```
**Categorias de enriquecimento**:
- **Gene Ontology**: Processo Biológico, Função Molecular, Componente Celular
- **Vias KEGG**: Vias metabólicas e de sinalização
- **Pfam**: Domínios de proteína
- **InterPro**: Famílias e domínios de proteína
- **SMART**: Arquitetura de domínio
- **Palavras-chave UniProt**: Palavras-chave funcionais curadas
**Colunas de saída**:
- `category`: Banco de dados de anotação (ex.: "KEGG Pathways", "GO Biological Process")
- `term`: Identificador de termo
- `description`: Descrição legível do termo
- `number_of_genes`: Proteínas de entrada com esta anotação
- `p_value`: Valor p de enriquecimento não corrigido
- `fdr`: Taxa de descoberta falsa (valor p corrigido)
**Método estatístico**: Teste exato de Fisher com correção FDR de Benjamini-Hochberg.
**Interpretação**: FDR < 0,05 indica enriquecimento estatisticamente significativo.
### 6. Enriquecimento de PPI (`string_ppi_enrichment`)
Teste se uma rede de proteína tem significativamente mais interações do que o esperado pelo acaso.
**Quando usar**: Validando se proteínas formam módulo funcional, testando conectividade de rede.
**Uso**:
```python
from scripts.string_api import string_ppi_enrichment
import json
# Testar conectividade de rede
proteins = ['TP53', 'MDM2', 'ATM', 'CHEK2', 'BRCA1']
result = string_ppi_enrichment(proteins, species=9606, required_score=400)
# Analisar resultado JSON
data = json.loads(result)
print(f"Arestas observadas: {data['number_of_edges']}")
print(f"Arestas esperadas: {data['expected_number_of_edges']}")
print(f"Valor p: {data['p_value']}")
```
**Campos de saída**:
- `number_of_nodes`: Proteínas na rede
- `number_of_edges`: Interações observadas
- `expected_number_of_edges`: Esperadas em rede aleatória
- `p_value`: Significância estatística
**Interpretação**:
- valor p < 0,05: Rede é significativamente enriquecida (proteínas provavelmente formam módulo funcional)
- valor p ≥ 0,05: Sem enriquecimento significativo (proteínas podem ser não relacionadas)
### 7. Pontuações de Homologia (`string_homology`)
Recupere informações de similaridade de proteína e homologia.
**Quando usar**: Identificando famílias de proteínas, análise de paráloga, comparações entre espécies.
**Uso**:
```python
from scripts.string_api import string_homology
# Obter homologia entre proteínas
proteins = ['TP53', 'TP63', 'TP73'] # família p53
homology = string_homology(proteins, species=9606)
```
**Casos de uso**:
- Identificação de família de proteína
- Descoberta de paráloga
- Análise evolutiva
### 8. Informações de Versão (`string_version`)
Obtenha versão atual do banco de dados STRING.
**Quando usar**: Garantindo reprodutibilidade, documentando métodos.
**Uso**:
```python
from scripts.string_api import string_version
version = string_version()
print(f"Versão STRING: {version}")
```
## Fluxos de Trabalho Comuns
### Fluxo de Trabalho 1: Análise de Lista de Proteínas (Fluxo de Trabalho Padrão)
**Caso de uso**: Analisar lista de proteínas de experimento (ex.: expressão diferencial, proteômica).
```python
from scripts.string_api import (string_map_ids, string_network,
string_enrichment, string_ppi_enrichment,
string_network_image)
# Etapa 1: Mapear nomes de genes para IDs STRING
gene_list = ['TP53', 'BRCA1', 'ATM', 'CHEK2', 'MDM2', 'ATR', 'BRCA2']
mapping = string_map_ids(gene_list, species=9606)
# Etapa 2: Obter rede de interação
network = string_network(gene_list, species=9606, required_score=400)
# Etapa 3: Testar se rede é enriquecida
ppi_result = string_ppi_enrichment(gene_list, species=9606)
# Etapa 4: Executar enriquecimento funcional
enrichment = string_enrichment(gene_list, species=9606)
# Etapa 5: Gerar visualização de rede
img = string_network_image(gene_list, species=9606,
network_flavor='evidence', required_score=400)
with open('protein_network.png', 'wb') as f:
f.write(img)
# Etapa 6: Analisar e interpretar resultados
```
### Fluxo de Trabalho 2: Investigação de Proteína Única
**Caso de uso**: Investigação profunda nas interações e parceiros de uma proteína.
```python
from scripts.string_api import (string_map_ids, string_interaction_partners,
string_network_image)
# Etapa 1: Mapear nome de proteína
protein = 'TP53'
mapping = string_map_ids(protein, species=9606)
# Etapa 2: Obter todos os parceiros de interação
partners = string_interaction_partners(protein, species=9606,
limit=20, required_score=700)
# Etapa 3: Visualizar rede expandida
img = string_network_image(protein, species=9606, add_nodes=15,
network_flavor='confidence', required_score=700)
with open('tp53_network.png', 'wb') as f:
f.write(img)
```
### Fluxo de Trabalho 3: Análise Centrada em Vias
**Caso de uso**: Identificar e visualizar proteínas em uma via biológica específica.
```python
from scripts.string_api import string_enrichment, string_network
# Etapa 1: Começar com proteínas conhecidas de via
dna_repair_proteins = ['TP53', 'ATM', 'ATR', 'CHEK1', 'CHEK2',
'BRCA1', 'BRCA2', 'RAD51', 'XRCC1']
# Etapa 2: Obter rede
network = string_network(dna_repair_proteins, species=9606,
required_score=700, add_nodes=5)
# Etapa 3: Enriquecimento para confirmar anotação de via
enrichment = string_enrichment(dna_repair_proteins, species=9606)
# Etapa 4: Analisar enriquecimento para vias de reparo de DNA
import pandas as pd
import io
df = pd.read_csv(io.StringIO(enrichment), sep='\t')
dna_repair = df[df['description'].str.contains('DNA repair', case=False)]
```
### Fluxo de Trabalho 4: Análise Entre Espécies
**Caso de uso**: Comparar interações de proteína entre diferentes organismos.
```python
from scripts.string_api import string_network
# Rede humana
human_network = string_network('TP53', species=9606, required_score=700)
# Rede de camundongo
mouse_network = string_network('Trp53', species=10090, required_score=700)
# Rede de levedura (se ortólogo existir)
yeast_network = string_network('gene_name', species=4932, required_score=700)
```
### Fluxo de Trabalho 5: Expansão de Rede e Descoberta
**Caso de uso**: Começar com proteínas sementes e descobrir módulos funcionais conectados.
```python
from scripts.string_api import (string_interaction_partners, string_network,
string_enrichment)
# Etapa 1: Começar com proteína(s) semente
seed_proteins = ['TP53']
# Etapa 2: Obter interatores de primeiro grau
partners = string_interaction_partners(seed_proteins, species=9606,
limit=30, required_score=700)
# Etapa 3: Analisar parceiros para obter lista de proteína
import pandas as pd
import io
df = pd.read_csv(io.StringIO(partners), sep='\t')
all_proteins = list(set(df['preferredName_A'].tolist() +
df['preferredName_B'].tolist()))
# Etapa 4: Executar enriquecimento em rede expandida
enrichment = string_enrichment(all_proteins[:50], species=9606)
# Etapa 5: Filtrar para módulos funcionais interessantes
enrichment_df = pd.read_csv(io.StringIO(enrichment), sep='\t')
modules = enrichment_df[enrichment_df['fdr'] < 0.001]
```
## Espécies Comuns
Ao especificar espécies, use IDs de táxon NCBI:
| Organismo | Nome Comum | ID Táxon |
|----------|-------------|----------|
| Homo sapiens | Humano | 9606 |
| Mus musculus | Camundongo | 10090 |
| Rattus norvegicus | Rato | 10116 |
| Drosophila melanogaster | Mosca-da-fruta | 7227 |
| Caenorhabditis elegans | C. elegans | 6239 |
| Saccharomyces cerevisiae | Levedura | 4932 |
| Arabidopsis thaliana | Arabidopsis | 3702 |
| Escherichia coli | E. coli | 511145 |
| Danio rerio | Peixe-zebra | 7955 |
Lista completa disponível em: https://string-db.org/cgi/input?input_page_active_form=organisms
## Entendendo Pontuações de Confiança
STRING fornece pontuações de confiança combinadas (0-1000) integrando múltiplos tipos de evidência:
### Canais de Evidência
1. **Vizinhança (nscore)**: Vizinhança genômica conservada entre espécies
2. **Fusão (fscore)**: Eventos de fusão gênica
3. **Perfil Filogenético (pscore)**: Padrões de co-ocorrência entre espécies
4. **Coexpressão (ascore)**: Expressão de RNA correlacionada
5. **Experimental (escore)**: Experimentos bioquímicos e genéticos
6. **Banco de Dados (dscore)**: Vias curadas e bancos de dados de complexos
7. **Mineração de Texto (tscore)**: Co-ocorrência em literatura e extração por PNL
### Limiares Recomendados
Escolha limiar baseado nos objetivos de análise:
- **150 (confiança baixa)**: Análise exploratória, geração de hipóteses
- **400 (confiança média)**: Análise padrão, sensibilidade/especificidade equilibrada
- **700 (confiança alta)**: Análise conservadora, interações de alta confiança
- **900 (confiança mais alta)**: Muito rigoroso, evidência experimental preferida
**Compensações**:
- Limiares mais baixos: Mais interações (recall mais alto, mais falsos positivos)
- Limiares mais altos: Menos interações (precisão mais alta, mais falsos negativos)
## Tipos de Rede
### Redes Funcionais (Padrão)
Inclui todos os tipos de evidência (experimental, computacional, mineração de texto). Representa proteínas que são funcionalmente associadas, mesmo sem ligação física direta.
**Quando usar**:
- Análise de vias
- Estudos de enriquecimento funcional
- Biologia de sistemas
- Maioria das análises gerais
### Redes Físicas
Inclui apenas evidência de ligação física direta (dados experimentais e anotações de banco de dados para interações físicas).
**Quando usar**:
- Estudos de biologia estrutural
- Análise de complexo de proteína
- Validação de ligação direta
- Quando contato físico é necessário
## Melhores Práticas de API
1. **Sempre mapeie identificadores primeiro**: Use `string_map_ids()` antes de outras operações para consultas mais rápidas
2. **Use IDs STRING quando possível**: Use formato `9606.ENSP00000269305` em vez de nomes de genes
3. **Especifique espécie para redes >10 proteínas**: Obrigatório para resultados precisos
4. **Respeite limites de taxa**: Aguarde 1 segundo entre chamadas de API
5. **Use URLs versionadas para reprodutibilidade**: Disponível na documentação de referência
6. **Trate erros com elegância**: Verifique prefixo "Error:" em strings retornadas
7. **Escolha limiares de confiança apropriados**: Combine limiar com objetivos de análise
## Referência Detalhada
Para documentação abrangente de API, listas completas de parâmetros, formatos de saída e uso avançado, consulte `references/string_reference.md`. Isso inclui:
- Especificações completas de endpoint de API
- Todos os formatos de saída suportados (TSV, JSON, XML, PSI-MI)
- Recursos avançados (upload em massa, enriquecimento de valores/ranks)
- Tratamento de erros e troubleshooting
- Integração com outras ferramentas (Cytoscape, R, bibliotecas Python)
- Licença de dados e informações de citação
## Troubleshooting
**Nenhuma proteína encontrada**:
- Verifique se parâmetro species corresponde aos identificadores
- Tente mapear identificadores primeiro com `string_map_ids()`
- Verifique erros de digitação em nomes de proteínas
**Resultados de rede vazios**:
- Diminua limiar de confiança (`required_score`)
- Verifique se proteínas realmente interagem
- Verifique se species está correto
**Timeout ou consultas lentas**:
- Reduza número de proteínas de entrada
- Use IDs STRING em vez de nomes de genes
- Divida consultas grandes em lotes
**Erro "Species required"**:
- Adicione parâmetro `species` para redes com >10 proteínas
- Sempre inclua species para consistência
**Resultados parecem inesperados**:
- Verifique versão STRING com `string_version()`
- Verifique se network_type é apropriado (funcional vs físico)
- Revise seleção de limiar de confiança
## Recursos Adicionais
Para análise em escala de proteoma ou upload completo de rede de espécie:
- Visite https://string-db.org
- Use recurso "Upload proteome"
- STRING gerará rede de interação completa e preverá funções
Para downloads em massa de conjuntos de dados completos:
- Página de download: https://string-db.org/cgi/download
- Inclui arquivos de interação completos, anotações de proteína e mapeamentos de vias
## Licença de Dados
Os dados STRING estão livremente disponíveis sob licença **Creative Commons BY 4.0**:
- Livre para uso acadêmico e comercial
- Atribuição necessária ao publicar
- Cite publicação STRING mais recente
## Citação
Ao usar STRING em publicações, cite a publicação mais recente em: https://string-db.org/cgi/aboutIs this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!