연구별 변형 빈도를 제공하기 위한 ExAC 기반 프레임워크입니다. 종속성 및 설치 지침은 https://github.com/konradjk/exac_browser/blob/master/README.md에 설명된 ExAC와 거의 동일합니다.
이 모든 내용을 넣을 디렉토리를 만듭니다. 이는 실제 canvar_browser 저장소의 상위 디렉토리 역할을 합니다.
mkdir canvar
cd canvar
먼저(병렬로 실행될 수 있으므로) 브라우저가 사용하는 데이터세트를 가져와서 'exac_data' 디렉터리에 넣습니다. 필요한 모든 파일은 다음에서 찾을 수 있습니다.
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
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
이제 저장소를 복제합니다.
git clone https://github.com/danchubb/CanVar.git
Python과 pip가 설치되어 있어야 합니다.
Mac에 Python 및 Homebrew를 설치하려면 다음 지침을 따르십시오. http://docs.python-guide.org/en/latest/starting/install/osx/
리눅스 시스템의 경우
http://docs.python-guide.org/en/latest/starting/install/linux/
Mac에 MongoDB를 설치합니다.
brew install mongodb
# or
sudo port install mongodb
또는 Linux 시스템을 사용하는 경우:
https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-linux/
Mongo 데이터베이스 파일을 보관할 디렉터리를 만듭니다.
mkdir database
별도의 탭에서 mongo 데이터베이스 서버를 시작합니다.
mongod --dbpath database
이 로컬 서버는 사이트에서 작업하는 동안 항상 실행되고 있어야 합니다. 일부 시작 서비스를 원하거나 설정하는 경우 백그라운드에서 이 작업을 수행할 수 있으며, 활성 터미널 창을 열어두지 않으려는 경우 화면 세션 내에서 이 작업을 수행할 수 있습니다.
마지막으로 시스템을 virtualenv에 유지하여 다음을 설치할 수 있습니다.
맥의 경우:
sudo port install py27-virtualenv # Or whatever version
리눅스의 경우:
sudo apt-get install virtualenv
or sudo pip install virtualenv
그런 다음 브라우저가 상주할 Python 가상 환경을 만들 수 있습니다.
mkdir canvar_env
virtualenv canvar_env
source canvar_env/bin/activate
Python 요구 사항을 설치합니다.
pip install -r requirements.txt
일부 패키지에는 Python 헤더(일부 시스템에서는 python-dev)가 필요합니다.
여기에 제공된 코드는 주로 프레임워크에 필요한 사이트 VCF 파일 및 적용 범위 파일을 생성하는 데 사용됩니다. ExAC 및 그 안에 포함된 인구에 대한 하드코딩된 참조를 제거하고 질병 상태와 같은 임의의 그룹으로 대체하도록 다른 스크립트가 수정되었습니다.
####사이트 vcf 및 커버리지 파일 생성
VCF -> 사이트 vcf:
python vcf_to_site_canvar.py --infile /path/to/file.vcf --phenotypes /path/to/phenotypes.csv --pops populations.csv
phenotype.csv에는 vcf 파일의 각 샘플에 대한 표현형 데이터가 포함되어 있으며 다음 열이 있어야 합니다.
sample phenotype sex
여기서 샘플은 VCF의 헤더 라인에 명시된 샘플 ID이고 표현형은 모집단으로 정의하려는 질병(또는 기타) 상태이며 성별은 M 또는 F로 지정됩니다.
Populations.csv에는 존재하는 모든 "인구"가 포함되어 있습니다. 이는 다양한 표현형에 해당합니다. 예를 들어 대장암 모집단에는 다음 열이 있어야 합니다.
code phenotype
여기서 코드는 sites.vcf에 나타날 표현형의 축약된 형태입니다. 예: CRC Colorectal
커버리지 파일을 생성하려면
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에는 적용 범위를 계산하려는 모든 BAM 파일에 대한 경로가 포함되어 있습니다.
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
이 예에서 Coverage_file_list에는 list.coverage.gz에 대한 경로가 포함됩니다. GATK DepthOfCoverage 명령을 다른 샘플 세트로 분할하면 각 tabixed 적용 범위 파일이 다른 줄에 표시됩니다. .cov 파일은 모든 샘플의 각 위치에 대한 평균 적용 범위를 사용하여 생성됩니다.
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는 canvar.py 스크립트에서 적용 범위 파일로 사용됩니다. 또한 염색체별로 분할하여 원래 exac.py 코드에 따라 추가할 수도 있습니다.
####적응된 exac 파일
나머지 파일 및 디렉터리는 https://github.com/konradjk/exac_browser/blob/master/README.md에서 제공되는 파일 및 디렉터리와 거의 동일합니다.
/static에는 웹 사이트에 필요한 .js 파일, CSS 파일, 이미지 및 글꼴이 포함되어 있습니다. 유전자 결과 페이지에서 열 선택 도구를 활성화하기 위해 .js 모듈 widget-columnSelector.js가 추가되었습니다.
/templates에는 다양한 웹페이지에 대한 HTML 템플릿이 포함되어 있습니다.
canvar.py의 대부분은 중요한 코드입니다. 다른 Python 함수를 호출하고, 데이터를 가져오고, 플라스크 웹 프레임워크를 시작하려면 실행해야 합니다.
lookups.py는 mongodb에서 데이터를 가져옵니다.
mongodb에 데이터를 로드하기 위해manage.py가 호출되었습니다.
입력 파일을 mongodb에 로드할 때 Parsing.py가 호출됩니다. 웹사이트에 표시될 모집단은 여기에서 다시 정의되어야 합니다.
데이터를 구문 분석하고 검색할 때 utils.py 추가 모듈이 필요합니다.
####데이터 로드 중
이제 데이터베이스가 플랫 파일에서 로드됩니다. 이는 단일 명령이지만 시간이 걸릴 수 있습니다(exac.py에서 LOAD_DB_PARALLEL_PROCESSES를 수정하여 병렬 로드를 활용할 수 있음).
python manage.py load_db
이 작업을 자주 실행할 필요는 없습니다. 대부분의 변경 사항에는 데이터베이스를 다시 빌드할 필요가 없습니다. 즉, 이는 멱등원이므로(그리고 앞으로도 계속) 문제가 있다고 생각되면 언제든지 다시 실행할 수 있습니다. 그러면 데이터베이스가 처음부터 다시 로드됩니다. 다음 명령 중 하나를 사용하여 데이터베이스의 일부를 다시 로드할 수도 있습니다.
python manage.py load_variants_file
python manage.py load_dbsnp_file
python manage.py load_base_coverage
python manage.py load_gene_models
그런 다음 다음을 실행하십시오.
python manage.py precalculate_metrics
그런 다음 자동 완성 및 대규모 유전자 목적을 위한 캐시를 생성해야 합니다.
python manage.py create_cache
gene_to_cache.txt 파일에 포함된 모든 유전자는 사전 캐시됩니다. 데이터를 완전히 캐시하기 위해 데이터베이스 내의 모든 성적표에 원하는 만큼 성적표 ID를 추가할 수 있습니다.
잠시 쉬었다가 사이트를 다시 방문하는 경우 virtualenv가 activate
되어 있는지 확인하세요.
다음을 사용하여 개발 서버를 실행할 수 있습니다.
python canvar.py
브라우저에서 다음을 방문하세요.
http://localhost:5000
http://localhost:5000/gene/ENSG00000237683
http://localhost:5000/variant/20-76735-A-T
테스트를 위해 다음을 사용하여 대화형 셸을 열 수 있습니다.
python manage.py shell