SNPClassifier é um sistema para classificar variantes genéticas (SNPs) em dados VCF de pacientes. Ele integra Flask, SQLite e a API do Ensembl para enriquecer os dados com anotações e informações relevantes.
- Upload de VCF: Envio de arquivos VCF contendo variantes genéticas.
- Consulta à API Ensembl: Cada variante é enriquecida com dados sobre genes, consequências, impacto, SIFT, PolyPhen, e frequência.
- Classificação de Variantes: Variantes são classificadas em base de regras definidas.
- Armazenamento em Banco de Dados SQLite: Pacientes e variantes são armazenados de forma persistente.
- Interface Web: Interface interativa para upload e visualização das variantes.
SNPClassifier/
│
├── app/
│ ├── __init__.py # Inicializa o aplicativo Flask
│ ├── models.py # Modelos de banco de dados
│ ├── routes.py # Lógica de rotas
│ ├── templates/
│ │ └── index.html # Página principal
│ └── utils.py # Funções auxiliares
│
├── uploads/ # Arquivos VCF enviados
├── requirements.txt # Dependências
└── run.py # Inicialização da aplicação
-
Clone este repositório:
git clone https://github.com/madsondeluna/SNPClassifier.git cd SNPClassifier
-
Crie e ative um ambiente virtual:
python3 -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
-
Instale as dependências:
pip install -r requirements.txt
-
Crie a estrutura de pastas (se ainda não existirem):
mkdir -p uploads
-
Execute a aplicação:
python run.py
-
Abra o navegador e acesse:
http://127.0.0.1:5000/
-
Na interface:
- Preencha o nome do paciente.
- Faça upload do arquivo
.vcf
desejado. - Veja a tabela com as variantes enriquecidas pela API do Ensembl.
- Upload de Arquivo VCF: No formulário da página inicial, insira o nome do paciente e envie o arquivo VCF.
- Visualizar Variantes: Após o upload, as variantes serão exibidas com informações enriquecidas da Ensembl (gene, consequência, impacto, etc.).
Campo | Tipo | Descrição |
---|---|---|
id | INTEGER | ID único do paciente |
name | TEXT | Nome do paciente |
vcf_filename | TEXT | Nome do arquivo VCF |
upload_date | DATETIME | Data do upload |
Campo | Tipo | Descrição |
---|---|---|
id | INTEGER | ID único da variante |
patient_id | INTEGER | Referência para paciente (FK) |
chromosome | TEXT | Cromossomo da variante |
position | INTEGER | Posição da variante |
ref | TEXT | Alelo de referência |
alt | TEXT | Alelo alternativo |
gene | TEXT | Gene afetado |
consequence | TEXT | Consequência da variante |
impact | TEXT | Impacto da variante |
sift | TEXT | Previsão SIFT |
polyphen | TEXT | Previsão PolyPhen |
af | REAL | Frequência alélica |
classification | TEXT | Classificação da variante |
Este projeto está licenciado sob a MIT License.