Skip to content

Commit 2a7413b

Browse files
author
RubyFore
committed
successful docker build
1 parent a33d7a4 commit 2a7413b

File tree

7 files changed

+72
-50
lines changed

7 files changed

+72
-50
lines changed

build/bladderpdo/01_createBladderPDOOmicsFiles.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def get_bladder_pdo_transcriptomics(GEO_id_link_table, samples, genes):
3838
bladderpdo_url ='https://ftp.ncbi.nlm.nih.gov/geo/series/GSE103nnn/GSE103990/suppl/GSE103990_Normalized_counts.txt.gz'
3939
transcriptomic_txt = wget.download(bladderpdo_url)
4040
transcriptomics = pd.read_csv(transcriptomic_txt, compression='gzip', sep="\t")
41-
subprocess.call (["/usr/local/bin/Rscript", "--vanilla", "obtainGSMidLink.R"])
41+
subprocess.call (["/usr/bin/Rscript", "--vanilla", "obtainGSMidLink.R"])
4242

4343
GEO_ids_link = pd.read_csv("./gsmlinkDf.csv")
4444
fpkm_totals = transcriptomics.iloc[:, 1:43].sum()
@@ -85,7 +85,7 @@ def get_bladder_pdo_copynumber(synObject, samples, genes):
8585
segfile_df = pd.read_csv(segfile.path, sep='\t')
8686

8787
segfile_df.to_csv("bladder_segfile.csv")
88-
subprocess.call (["/usr/local/bin/Rscript", "--vanilla", "CNV-segfile-annotation.R", "bladder_segfile.csv", "bladder_annotated_segfile.csv"])
88+
subprocess.call (["/usr/bin/Rscript", "--vanilla", "CNV-segfile-annotation.R", "bladder_segfile.csv", "bladder_annotated_segfile.csv"])
8989
copynumber = pd.read_csv("bladder_annotated_segfile.csv")
9090
copynumber['copy_number'] = np.exp2(copynumber['score'].div(2))*2
9191
copynumber['copy_call'] = [get_copy_call(a) for a in copynumber['copy_number']]

build/bladderpdo/02_createBladderPDODrugsFile.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
import argparse
55
import os
66
# for testing locally
7-
from utils.pubchem_retrieval import update_dataframe_and_write_tsv
7+
#from utils.pubchem_retrieval import update_dataframe_and_write_tsv
88
# for building in docker
9-
#from pubchem_retrieval import update_dataframe_and_write_tsv
9+
from pubchem_retrieval import update_dataframe_and_write_tsv
1010

1111

1212
def create_bladder_pdo_drugs_file(synObject, prevDrugFilepath, outputPath):
@@ -39,12 +39,16 @@ def create_bladder_pdo_drugs_file(synObject, prevDrugFilepath, outputPath):
3939
if __name__ == "__main__":
4040

4141
parser = argparse.ArgumentParser(description="This script handles downloading, processing and formatting of drug data files for the Lee Bladder PDO project")
42-
parser.add_argument('-d', '--prevDrugFilePath', help='Path to a previous drug file for sarcpdo', default = None)
42+
parser.add_argument('-d', '--prevDrugFilePath', help='Path to a previous drug file for sarcpdo', nargs="?", default = None)
4343
parser.add_argument('-o', '--outputPath', help='Output path for updated sarcpdo drug file', default = "/tmp/sarcpdo_drugs.tsv")
4444
parser.add_argument('-t', '--token', help='Synapse token')
4545

4646
args = parser.parse_args()
4747
print("Logging into Synapse")
4848
PAT = args.token
4949
synObject = synapseclient.login(authToken=PAT)
50-
create_bladder_pdo_drugs_file(synObject, args.prevDrugFilePath, args.outputPath)
50+
if args.prevDrugFilePath:
51+
previousDrugs = args.prevDrugFilePath
52+
else:
53+
previousDrugs = None
54+
create_bladder_pdo_drugs_file(synObject, previousDrugs, args.outputPath)

build/bladderpdo/03_createBladderPDOExperimentFile.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import synapseclient
22
import pandas as pd
3+
import argparse
34

45

56
def get_bladder_pdo_experiments(synObject, samples, drugs):
67
# get list of syn id info
7-
files = list(syn.getChildren(parent='syn64765430', includeTypes=['file']))
8+
files = list(synObject.getChildren(parent='syn64765430', includeTypes=['file']))
89
# load sample sheet and format _ to .
910
# load conversion table and remove trailing _T
10-
conversion_table = syn.get(files[50]['id'])
11+
conversion_table = synObject.get(files[50]['id'])
1112
conversion_table_df = pd.read_excel(conversion_table.path, header=None)
1213
conversion_table_df[2] = conversion_table_df[1].str.rsplit("_", expand=True)[0]#.replace(".", "_")
1314
conversion_table_df[3] = conversion_table_df[2].str.replace(".", "_")
@@ -17,7 +18,7 @@ def get_bladder_pdo_experiments(synObject, samples, drugs):
1718
drug_df = pd.DataFrame()
1819
# for each drug,
1920
for i in range(len(files)-4):
20-
drug_table_syn =syn.get(files[i]['id'])
21+
drug_table_syn =synObject.get(files[i]['id'])
2122
drug_table = pd.read_csv(drug_table_syn.path, sep="\t")
2223
# melt
2324
# link to conversion table
@@ -54,7 +55,7 @@ def get_bladder_pdo_experiments(synObject, samples, drugs):
5455

5556
if __name__ == "__main__":
5657
parser = argparse.ArgumentParser()
57-
parser.add_argument('-t' '--token', help='Synapse authentication token')
58+
parser.add_argument('-t', '--token', help='Synapse authentication token')
5859
parser.add_argument('-s', '--curSampleFile', help='Sample mapping file for bladder pdo samples')
5960
parser.add_argument('-d', '--drugfile', help='Drug mapping file for bladder pdo samples')
6061
parser.add_argument('-o', '--output', default = '/tmp/bladderpdo_doserep.tsv',help='Output file to be read into curve fitting code')

build/bladderpdo/build_exp.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ set -euo pipefail
44
trap 'echo "Error on or near line $LINENO while executing: $BASH_COMMAND"; exit 1' ERR
55

66
echo "Running 04-drug_dosage_and_curves.py with drugfile $2 and curSampleFile $1"
7-
python 03_createBladderPDOExperimentFile.py --token $SYNAPSE_AUTH_TOKEN --drugfile $2 --curSampleFile $1 --output /tmp/bladderpdo_doserep.tsv
7+
python3 03_createBladderPDOExperimentFile.py --token $SYNAPSE_AUTH_TOKEN --drugfile $2 --curSampleFile $1 --output /tmp/bladderpdo_doserep.tsv
88

9-
python fit_curve.py --input /tmp/bladderpdo_doserep.tsv --output /tmp/bladderpdo_doserep.tsv
9+
python3 fit_curve.py --input /tmp/bladderpdo_doserep.tsv --output /tmp/bladderpdo_doserep.tsv

build/bladderpdo/requirements.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ scikit-learn
77
mordredcommunity
88
rdkit
99
wget
10-
gzip
11-
subprocess
12-
math
10+
#gzip
11+
#subproce
12+
#math
1313
tqdm
14-
itertools
14+
#itertools
1515
scipy
16-
multiprocessing
16+
openpyxl

build/docker/Dockerfile.bladderpdo

Lines changed: 49 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,63 @@
11
FROM r-base:4.4.1
2-
ENV DEBIAN_FRONTEND=noninteractive
3-
RUN apt-get update --fix-missing
4-
#RUN apt-get install -y --fix-missing --allow-unauthenticated build-essential libpq-dev python3.10 python3-pip python3-setuptools python3-dev python3-venv libcurl4-openssl-dev libxml2-dev libglpk-dev
5-
6-
# RUN apt-get install -y --fix-missing --allow-unauthenticated build-essential python3-pip python3-setuptools python3-dev python3-venv libcurl4-openssl-dev libglpk-dev libxml2-dev libpq-dev
72

8-
RUN apt-get install -y --fix-missing --allow-unauthenticated \
9-
build-essential \
10-
python3-pip \
11-
python3-setuptools \
12-
python3-dev \
13-
python3-venv \
14-
libcurl4-openssl-dev \
15-
libglpk-dev \
16-
libxml2-dev \
17-
libpq-dev \
18-
ca-certificates
19-
20-
RUN python3 -m venv /opt/venv
21-
RUN /opt/venv/bin/pip3 install --upgrade pip
3+
ENV DEBIAN_FRONTEND=noninteractive
224

5+
# Update package list and install required packages
6+
RUN apt-get update && \
7+
apt-get install -y build-essential wget curl libcurl4-openssl-dev libxml2-dev \
8+
zlib1g-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev
9+
10+
# Download and compile Python 3.10 with shared library support
11+
RUN wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz && \
12+
tar -xf Python-3.10.12.tgz && \
13+
cd Python-3.10.12 && \
14+
./configure --enable-optimizations --enable-shared && \
15+
make -j$(nproc) && \
16+
make altinstall && \
17+
cd .. && \
18+
rm -rf Python-3.10.12.tgz Python-3.10.12
19+
20+
# Set Python 3.10 as default
21+
RUN ln -s /usr/local/bin/python3.10 /usr/bin/python3 && \
22+
ln -s /usr/local/bin/pip3.10 /usr/bin/pip3
23+
24+
# Update library paths for Python shared library
25+
RUN echo "/usr/local/lib" >> /etc/ld.so.conf.d/python3.10.conf && ldconfig
26+
27+
# Create a Python virtual environment
28+
#RUN python3 -m venv /opt/venv
29+
#RUN /opt/venv/bin/pip install --upgrade pip
30+
31+
# Set environment variables for reticulate
32+
#ENV RETICULATE_PYTHON="/opt/venv/bin/python3"
33+
ENV PYTHONPATH=/app#"${PYTHONPATH}:/app"
34+
WORKDIR /app
2335

24-
# Set MPLCONFIGDIR to a writable directory
36+
# Set MPLCONFIGDIR to a writable directory and create it.
2537
ENV MPLCONFIGDIR=/app/tmp/matplotlib
2638
RUN mkdir -p /app/tmp/matplotlib
2739

2840

29-
ENV PYTHONPATH "${PYTHONPATH}:/app"
30-
WORKDIR /app
41+
ADD build/bladderpdo/requirements.R .
42+
# installing r libraries
43+
RUN Rscript requirements.R
3144

32-
ADD build/broad_sanger/obtainGSMidLink.R.R ./
33-
ADD build/broad_sanger/CNV-segfile-annotation.R ./
34-
ADD build/broad_sanger/*py ./
35-
ADD build/broad_sanger/*sh ./
3645

37-
ADD build/utils/* ./
3846

47+
# installing python libraries
3948
ADD build/bladderpdo/requirements.txt .
40-
ADD build/bladderpdo/exp_requirements.r .
49+
#RUN /opt/venv/bin/pip3 install -r requirements.txt
50+
RUN pip3 install -r requirements.txt
4151

42-
# installing r libraries
43-
RUN Rscript exp_requirements.r
52+
RUN python3 --version
53+
RUN which Rscript
54+
55+
#ENV PATH="/opt/venv/bin:$PATH"
56+
57+
ADD build/bladderpdo/obtainGSMidLink.R ./
58+
ADD build/bladderpdo/CNV-segfile-annotation.R ./
59+
ADD build/bladderpdo/*py ./
60+
ADD build/bladderpdo/*sh ./
61+
62+
ADD build/utils/* ./
4463

45-
# installing python libraries
46-
RUN /opt/venv/bin/pip3 install -r requirements.txt

build/docker/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ services:
7171
platform: linux/amd64
7272
image: cptac:latest
7373

74-
bladderpdo:
74+
bladderpdo:
7575
build:
7676
context: ../../
7777
dockerfile: build/docker/Dockerfile.bladderpdo

0 commit comments

Comments
 (0)