Estrutura baseada no ExAC para fornecer frequências de variantes específicas do estudo. As dependências e instruções de instalação são quase idênticas às do ExAC, conforme descrito em https://github.com/konradjk/exac_browser/blob/master/README.md
Crie um diretório para colocar tudo isso. Ele servirá como o diretório pai do repositório canvar_browser real
mkdir canvar
cd canvar
Primeiro (já que isso pode ser executado em paralelo), obtenha os conjuntos de dados que o navegador usa e coloque-os em um diretório ‘exac_data’. Todos os arquivos necessários podem ser encontrados em:
wget https://personal.broadinstitute.org/konradk/exac_browser/omim_info.txt.gz
wget https://personal.broadinstitute.org/konradk/exac_browser/canonical_transcripts.txt.gz
wget https://personal.broadinstitute.org/konradk/exac_browser/dbNSFP2.6_gene.gz
wget https://personal.broadinstitute.org/konradk/exac_browser/gencode.gtf.gz
wget https://personal.broadinstitute.org/konradk/exac_browser/omim_info.txt.gz
Para o arquivo dbsnp:
wget http://hgdownload.soe.ucsc.edu/goldenPath/hg19/database/snp141.txt.gz
gzcat snp141.txt.gz | cut -f 1-5 | bgzip -c > snp141.txt.bgz
tabix -0 -s 2 -b 3 -e 4 snp141.txt.bgz
zcat b142_SNPChrPosOnRef_105.bcp.gz | awk '$3 != ""' | perl -pi -e 's/ +/t/g' | sort -k2,2 -k3,3n | bgzip -c > dbsnp142.txt.bgz
tabix -s 2 -b 3 -e 3 dbsnp142.txt.bgz
Agora clone o repositório:
git clone https://github.com/danchubb/CanVar.git
Você precisa do Python e do pip instalados
Siga estas instruções para instalar Python e Homebrew em seu Mac: http://docs.python-guide.org/en/latest/starting/install/osx/
Para sistemas Linux
http://docs.python-guide.org/en/latest/starting/install/linux/
Instale o MongoDB no Mac:
brew install mongodb
# or
sudo port install mongodb
Alternativamente, se você estiver em um sistema Linux:
https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-linux/
Crie um diretório para armazenar seus arquivos de banco de dados mongo:
mkdir database
Em uma guia separada, inicie o servidor de banco de dados mongo:
mongod --dbpath database
Este servidor local precisa estar em execução sempre que você estiver trabalhando no site. Você pode fazer isso em segundo plano se quiser ou configurar algum serviço de inicialização, ou dentro de uma sessão de tela se não quiser manter uma janela de terminal ativa aberta.
Finalmente, você pode querer manter o sistema em um virtualenv, para instalar:
Para Mac:
sudo port install py27-virtualenv # Or whatever version
Para Linux:
sudo apt-get install virtualenv
or sudo pip install virtualenv
Você pode então criar um ambiente virtual python onde o navegador ficará:
mkdir canvar_env
virtualenv canvar_env
source canvar_env/bin/activate
Instale os requisitos do python:
pip install -r requirements.txt
Alguns pacotes exigirão cabeçalhos Python (python-dev em alguns sistemas).
O código fornecido aqui é usado principalmente para produzir o arquivo VCF do site e o arquivo de cobertura exigidos pela estrutura. Outros scripts foram modificados para remover referências codificadas ao ExAC e às populações contidas nele, substituindo-as por grupos arbitrários, como estado de doença.
####Criando sites vcf e arquivos de cobertura
VCF -> sites vcf:
python vcf_to_site_canvar.py --infile /path/to/file.vcf --phenotypes /path/to/phenotypes.csv --pops populations.csv
phenotype.csv contém dados de fenótipo para cada amostra no arquivo vcf, deve ter as colunas:
sample phenotype sex
onde amostra é o ID da amostra conforme indicado na linha de cabeçalho do FVC, fenótipo é o estado da doença (ou outro) que você deseja definir como uma população e o sexo é especificado como M ou F.
populaciones.csv contém todas as "populações" presentes. Estes correspondem aos diferentes fenótipos. por exemplo, a população com câncer colorretal, deve ter as colunas:
code phenotype
onde código é a forma abreviada do fenótipo que aparecerá nos sites.vcf, por exemplo, CRC Colorretal
Para gerar arquivo de cobertura
java -jar GenomeAnalysisTK.jar -T DepthOfCoverage -R human_g1k_v37.fasta -I bams.list -L capture.bed --omitIntervalStatistics --omitLocusTable --omitPerSampleStats -nt n -o list.coverage
bams.list contém os caminhos para todos os arquivos BAM para os quais você deseja calcular a cobertura.
perl prepare_coverage_for_tabix.pl list.coverage | bgzip -c > list.coverage.gz
tabix -s 1 -b 2 -e 2 list.coverage.gz
python average_coverage_calculate.py coverage_file_list capture.bed
neste exemplo,coverage_file_list conteria o caminho para list.coverage.gz. Se você dividir seu comando GATK DepthOfCoverage em diferentes conjuntos de amostras, cada arquivo de cobertura tabulado irá para uma linha diferente. Um arquivo .cov é produzido com a cobertura média de cada posição em todas as amostras.
bgzip -c coverage_file_list.cov > all_coverage.txt.gz
tabix -s 1 -b 2 -e 2 all_coverage.txt.gz
all_coverage.txt.gz é então usado no script canvar.py como o arquivo de cobertura. Ele também pode ser dividido por cromossomo e adicionado de acordo com o código exac.py original.
####Arquivos exac adaptados
Os outros arquivos e diretórios restantes são quase idênticos aos disponíveis em: https://github.com/konradjk/exac_browser/blob/master/README.md
/static contém os arquivos .js, arquivos css, imagens e fontes necessárias para o site. O módulo .js widget-columnSelector.js é adicionado para ativar a ferramenta de seleção de coluna na página de resultados do gene.
/templates contém os modelos HTML para as diversas páginas da web.
canvar.py maioria do código importante. Chama outras funções python, importa dados e precisa ser executado para iniciar o framework web flask
lookups.py extrai dados do mongodb
manager.py chamado para carregar os dados no mongodb
Parsing.py chamado ao carregar os arquivos de entrada no mongodb. As populações conforme serão exibidas no site precisam ser redefinidas aqui.
Módulos adicionais utils.py necessários ao analisar e recuperar dados
####Carregando dados
Agora o banco de dados é carregado a partir dos arquivos simples: Este é um comando único, mas pode demorar um pouco (pode aproveitar as cargas paralelas modificando LOAD_DB_PARALLEL_PROCESSES em exac.py):
python manage.py load_db
Você não precisará executar isso com frequência - a maioria das alterações não exigirá a reconstrução do banco de dados. Dito isto, isso é (e permanecerá) idempotente, então você pode executá-lo novamente a qualquer momento se achar que algo pode estar errado - ele recarregará o banco de dados do zero. Você também pode recarregar partes do banco de dados usando qualquer um dos seguintes comandos:
python manage.py load_variants_file
python manage.py load_dbsnp_file
python manage.py load_base_coverage
python manage.py load_gene_models
Então execute:
python manage.py precalculate_metrics
Em seguida, você precisa criar um cache para fins de preenchimento automático e de genes grandes:
python manage.py create_cache
Todos os genes contidos no arquivo genes_to_cache.txt serão pré-armazenados em cache. Você pode adicionar quantos IDs de transcrição desejar, até cada transcrição no banco de dados, para armazenar totalmente os dados em cache.
Observe que se você estiver revisitando o site após um intervalo, certifique-se de que seu virtualenv esteja activate
.
Você pode executar o servidor de desenvolvimento com:
python canvar.py
E acesse no seu navegador:
http://localhost:5000
http://localhost:5000/gene/ENSG00000237683
http://localhost:5000/variant/20-76735-A-T
Para teste, você pode abrir um shell interativo com:
python manage.py shell