pzweuj commited on
Commit
b6164aa
·
verified ·
1 Parent(s): 32addc0

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +29 -20
Dockerfile CHANGED
@@ -39,39 +39,48 @@ RUN pip3 install --no-cache-dir transvar
39
  # 创建数据目录
40
  RUN mkdir -p /data/transvar_db/refseq_hg38 /data/transvar_db/refseq_hg19
41
 
42
- # ========== 下载数据脚本 ==========
43
- # 如果设置了 HF_DATASET,从数据集下载
44
- RUN if [ -n "$HF_DATASET" ]; then \
45
- echo "Downloading from HF Dataset: $HF_DATASET" && \
46
- python3 -c "import os; from huggingface_hub import snapshot_download; dataset=os.environ.get('HF_DATASET',''); local=snapshot_download(repo_id=dataset, repo_type='dataset', cache_dir='/tmp/hf_cache'); os.system(f'cp -r {local}/* /data/transvar_db/')" || true; \
47
- fi
48
-
49
- # 如果没有设置 HF_DATASET,从 UCSC 下载(首次构建)
50
  WORKDIR /data/transvar_db/refseq_hg38
51
 
52
- RUN if [ ! -f hg38.fa ] || [ ! -f ncbiRefSeq.txt.gz ]; then \
53
- echo "Downloading hg38 from UCSC..."; \
54
  wget -q -O hg38.fa.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz && gunzip -f hg38.fa.gz && samtools faidx hg38.fa; \
 
 
 
 
55
  wget -q -O ncbiRefSeq.txt.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg38/database/ncbiRefSeq.txt.gz; \
56
- transvar index --refseq ncbiRefSeq.txt.gz; \
57
- transvar config -k reference -v /data/transvar_db/refseq_hg38/hg38.fa --refversion hg38_refseq; \
58
- transvar config -k refseq -v /data/transvar_db/refseq_hg38/ncbiRefSeq.txt.gz --refversion hg38_refseq; \
59
  fi
60
 
 
61
  WORKDIR /data/transvar_db/refseq_hg19
62
 
63
- RUN if [ ! -f hg19.fa ] || [ ! -f ncbiRefSeq.txt.gz ]; then \
64
- echo "Downloading hg19 from UCSC..."; \
65
  wget -q -O hg19.fa.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/hg19.fa.gz && gunzip -f hg19.fa.gz && samtools faidx hg19.fa; \
 
 
 
 
66
  wget -q -O ncbiRefSeq.txt.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg19/database/ncbiRefSeq.txt.gz; \
67
- transvar index --refseq ncbiRefSeq.txt.gz; \
68
- transvar config -k reference -v /data/transvar_db/refseq_hg19/hg19.fa --refversion hg19_refseq; \
69
- transvar config -k refseq -v /data/transvar_db/refseq_hg19/ncbiRefSeq.txt.gz --refversion hg19_refseq; \
70
  fi
71
 
72
- # 返回工作目录
73
  WORKDIR /app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
  EXPOSE 7860
76
 
77
- CMD python3 -c "import os; import uvicorn; from server import app; uvicorn.run(app, host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))"
 
39
  # 创建数据目录
40
  RUN mkdir -p /data/transvar_db/refseq_hg38 /data/transvar_db/refseq_hg19
41
 
42
+ # ========== 下载参考基因组数据 ==========
 
 
 
 
 
 
 
43
  WORKDIR /data/transvar_db/refseq_hg38
44
 
45
+ # 下载 hg38 参考基因组
46
+ RUN if [ ! -f hg38.fa ]; then \
47
  wget -q -O hg38.fa.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz && gunzip -f hg38.fa.gz && samtools faidx hg38.fa; \
48
+ fi
49
+
50
+ # 下载 hg38 RefSeq
51
+ RUN if [ ! -f ncbiRefSeq.txt.gz ]; then \
52
  wget -q -O ncbiRefSeq.txt.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg38/database/ncbiRefSeq.txt.gz; \
 
 
 
53
  fi
54
 
55
+ # 下载 hg19 参考基因组
56
  WORKDIR /data/transvar_db/refseq_hg19
57
 
58
+ RUN if [ ! -f hg19.fa ]; then \
 
59
  wget -q -O hg19.fa.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/hg19.fa.gz && gunzip -f hg19.fa.gz && samtools faidx hg19.fa; \
60
+ fi
61
+
62
+ # 下载 hg19 RefSeq
63
+ RUN if [ ! -f ncbiRefSeq.txt.gz ]; then \
64
  wget -q -O ncbiRefSeq.txt.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg19/database/ncbiRefSeq.txt.gz; \
 
 
 
65
  fi
66
 
67
+ # ========== 创建启动脚本 ==========
68
  WORKDIR /app
69
+ RUN printf '#!/bin/bash\n\
70
+ echo "Setting up transvar database..."\n\
71
+ if [ ! -f /data/transvar_db/refseq_hg38/ncbiRefSeq.txt ]; then\n\
72
+ gunzip -c /data/transvar_db/refseq_hg38/ncbiRefSeq.txt.gz > /data/transvar_db/refseq_hg38/ncbiRefSeq.txt\n\
73
+ fi\n\
74
+ transvar config -k reference -v /data/transvar_db/refseq_hg38/hg38.fa --refversion hg38_refseq\n\
75
+ transvar config -k refseq -v /data/transvar_db/refseq_hg38/ncbiRefSeq.txt --refversion hg38_refseq\n\
76
+ if [ ! -f /data/transvar_db/refseq_hg19/ncbiRefSeq.txt ]; then\n\
77
+ gunzip -c /data/transvar_db/refseq_hg19/ncbiRefSeq.txt.gz > /data/transvar_db/refseq_hg19/ncbiRefSeq.txt\n\
78
+ fi\n\
79
+ transvar config -k reference -v /data/transvar_db/refseq_hg19/hg19.fa --refversion hg19_refseq\n\
80
+ transvar config -k refseq -v /data/transvar_db/refseq_hg19/ncbiRefSeq.txt --refversion hg19_refseq\n\
81
+ echo "Starting server..."\n\
82
+ exec python3 -c "import os; import uvicorn; from server import app; uvicorn.run(app, host=\0470.0.0.0\047, port=int(os.environ.get(\047PORT\047, 7860)))"\n' > /app/start.sh && chmod +x /app/start.sh
83
 
84
  EXPOSE 7860
85
 
86
+ CMD ["/app/start.sh"]