diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..091c3ff --- /dev/null +++ b/.travis.yml @@ -0,0 +1,6 @@ +services: + - docker +script: + - make + - make test +sudo: required diff --git a/Dockerfile b/Dockerfile index 31d3cfc..28eb5e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,86 @@ -FROM centos:centos6 - -# See cellprofiler.org/linux.shtml - -COPY cellprofiler.repo /etc/yum.repos.d/ -RUN yum install -y cellprofiler-2.1.1 - -RUN useradd cellprofiler -USER cellprofiler -ENV HOME /home/cellprofiler -WORKDIR /home/cellprofiler - -ENTRYPOINT ["cellprofiler", "-r", "-c"] -CMD ["-h"] -# Use -p filename for execution +# Ü ÜÜÜÜÜÜÜÜÜÜÜ +# Ü ÜÜÜÜÜÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÜ ° ÜÛ² Ü ÜÜÜÛÛÛßßßßßßÛÛÛÛÜ ° +# ßßßßßßÛÛÛ² Ü ßÛÛÛ² ± ÛÛÛ² ÛÛÛ² ° ÛÛÛ² ± +# ÛÛÛ² ° ÛÛÛ² ß ÛÛÛ² ÛÛÛ² ß ÛÛÛ² ² +# ÜÜÜÜÜÜÜÛÛÛ²ÜÜÜÜÜÜÛÛÛ² ÜÜÛÛÛÛÛÛÛÛÛÜÜßßÛ²ÜÛÛÛÛÛÛÛÛÛ² ß +# ÛÛÛßßßßßÛÛÛ²ßßßßßßÛÛÛ²ßßßßßÛÛÛ²ßßßßßßßܲ Ü ÛÛÛ² Ü +# ßÜ ÛÛÛ² Ü ÛÛÛ² Ü ÛÛÛ² Ü ÛÛÛ² ² ÛÛÛ² ² +# ÛÛÛ² ² ÛÛÛ² ² ÛÛÛ² ² ÛÛÛ² ± ÛÛÛ² ± +# ÛÛÛ² ± ÛÛÛ² ± ÛÛÛ² ± ÛÛÛ² ° ÛÛÛ² ° +# ÛÛÛ² ° ÛÛÛ² ° ÛÛÛ² ° ÛÛÛ² Ü ÛÛÛ² Ü +# ÜÛÛÛÛÜÜß ÜÛÛÛÛÜÜÜß ÛÛ² ÜÜÛÛÛÛÛÛß ÜÛÛÛÛÛÛßß +# Üßßßßßßßß Üßßßßßßß ßÛ ß ß [BROAD‘15] +# Ü ÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜ Ü +# +# ... Broad Institute of MIT and Harvard ‘15 +# +# Proudly Present ... +# +# ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» +# ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +# ³ ³ +# ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +# ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ +# Released at [þþ:þþ] on [þþ/þþ/þþ] +# ÉÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä ÄÄ Ä Ä ú Ä Ä ÄÄ Ä ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍ» +# ³ º +# ³ [Supplier : 0x00B1........] [Operating System : all.....] ³ +# ³ [Packager : 0x00B1........] [Video : none....] ³ +# ³ [Cracker : none..........] [Audio : none....] ³ +# ³ [Protection : none..........] [Number of Disks : 1.......] ³ +# ú [Type : Dockerfile....] [Rating : ........] ú +# +# +# ú Well, this is a little Dockerfile that have many functions ú +# for quantifying phenotypes...enjoy.... ú +# +# ú ú +# ³ ³ +# ³ ³ +# ³ ³ +# ³ ³ +# º º +# ÈÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä ÄÄ Ä Ä ú Ä Ä ÄÄ Ä ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍͼ +# +# Greets: ... +# +# +# - [ BROAD‘15 ] - +# -0x00B1 [05/06/84] +FROM ubuntu:14.04 +RUN apt-get -y update && \ + apt-get -y upgrade && \ + apt-get -y install \ + cython \ + git \ + openjdk-7-jdk \ + python-h5py \ + python-imaging \ + python-libtiff \ + python-lxml \ + python-matplotlib \ + python-mysqldb \ + python-numpy \ + python-pandas \ + python-pip \ + python-scipy \ + python-skimage \ + python-sklearn \ + python-vigra \ + python-wxgtk2.8 \ + python-zmq \ + xvfb +WORKDIR /usr/local/src +RUN git clone https://github.com/CellProfiler/CellProfiler.git +WORKDIR /usr/local/src/CellProfiler +RUN pip install \ + --requirement \ + requirements.txt +RUN pip install \ + --editable \ + git+https://github.com/CellH5/cellh5.git#egg=cellh5 \ + --upgrade +RUN python external_dependencies.py +RUN python CellProfiler.py --build-and-exit +ENTRYPOINT ["python", "CellProfiler.py", "--run", "--run-headless"] +CMD ["--help"] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7fd5e53 --- /dev/null +++ b/Makefile @@ -0,0 +1,41 @@ +SVN = http://cellprofiler.org/svnmirror/ExampleImages/ExampleHumanImages + +.PHONY: input +input: + mkdir -p $@ + +output: + mkdir -m 777 -p $@ + +ExampleHuman.cppipe: + curl -O ${SVN}/ExampleHuman.cppipe + +input/ExampleHuman.cppipe: ExampleHuman.cppipe + mv $< $@ + +AS_09125_050116030001_D03f00d0.tif: + curl -O ${SVN}/$@ + +input/AS_09125_050116030001_D03f00d0.tif: AS_09125_050116030001_D03f00d0.tif + mv $< $@ + +AS_09125_050116030001_D03f00d1.tif: AS_09125_050116030001_D03f00d1.tif + curl -O ${SVN}/$@ + +input/AS_09125_050116030001_D03f00d1.tif: AS_09125_050116030001_D03f00d1.tif + mv $< $@ + +AS_09125_050116030001_D03f00d2.tif: + curl -O ${SVN}/$@ + +input/AS_09125_050116030001_D03f00d2.tif: AS_09125_050116030001_D03f00d2.tif + mv $< $@ + +input/filelist.txt: input/AS_09125_050116030001_D03f00d0.tif input/AS_09125_050116030001_D03f00d1.tif input/AS_09125_050116030001_D03f00d2.tif + echo 'file:///input/AS_09125_050116030001_D03f00d0.tif' >> $@ + echo 'file:///input/AS_09125_050116030001_D03f00d1.tif' >> $@ + echo 'file:///input/AS_09125_050116030001_D03f00d2.tif' >> $@ + +.PHONY: test +test: input output input/filelist.txt input/ExampleHuman.cppipe + docker run --volume=`pwd`/input:/input --volume=`pwd`/output:/output cellprofiler --image-directory=/input --output-directory=/output --pipeline=/input/ExampleHuman.cppipe --file-list=/input/filelist.txt diff --git a/README.markdown b/README.markdown new file mode 100644 index 0000000..631dd95 --- /dev/null +++ b/README.markdown @@ -0,0 +1,5 @@ +# docker + + $ make + + $ make test diff --git a/README.md b/README.md deleted file mode 100644 index d9599d0..0000000 --- a/README.md +++ /dev/null @@ -1,18 +0,0 @@ -## CellProfiler Dockerfile - -### Build - - docker build -t cellprofiler . - -### Usage - -#### Get help - - docker run --rm cellprofiler - -#### Run with an example - - cd /tmp - wget http://cellprofiler.org/linked_files/Examplezips/ExampleHumanImages.zip - unzip ExampleHumanImages.zip - docker run -v /tmp/ExampleHumanImages:/tmp/ExampleHumanImages cellprofiler -p /tmp/ExampleHumanImages/ExampleHuman.cppipe diff --git a/cellprofiler-avoid-blank-libdir-for-libjvm.diff b/cellprofiler-avoid-blank-libdir-for-libjvm.diff deleted file mode 100644 index bbe7b2c..0000000 --- a/cellprofiler-avoid-blank-libdir-for-libjvm.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- cellprofiler/utilities/setup.py.orig 2013-10-16 19:26:11.279334211 -0400 -+++ cellprofiler/utilities/setup.py 2013-10-16 19:26:38.739329959 -0400 -@@ -106,7 +106,8 @@ - stdout=subprocess.PIPE) - stdout, stderr = p.communicate() - jvm_dir = stdout.strip() -- library_dirs.append(jvm_dir) -+ if jvm_dir: -+ library_dirs.append(jvm_dir) - libraries = ["jvm"] - extensions += [Extension(name="javabridge", - sources=javabridge_sources, diff --git a/cellprofiler-frozen.diff b/cellprofiler-frozen.diff deleted file mode 100644 index 68b585a..0000000 --- a/cellprofiler-frozen.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- CellProfiler.py.orig 2013-10-16 20:59:07.459360385 -0400 -+++ CellProfiler.py 2013-10-16 20:16:34.079360393 -0400 -@@ -20,6 +20,8 @@ - import tempfile - from cStringIO import StringIO - -+sys.frozen = True -+ - if sys.platform.startswith('win'): - # This recipe is largely from zmq which seems to need this magic - # in order to import in frozen mode - a topic the developers never diff --git a/cellprofiler.repo b/cellprofiler.repo deleted file mode 100644 index 916f4af..0000000 --- a/cellprofiler.repo +++ /dev/null @@ -1,5 +0,0 @@ -[cellprofiler] -name=CellProfiler for CentOS 6 -baseurl=http://www.cellprofiler.org/linux/centos6/ -enabled=1 -gpgcheck=0 diff --git a/threshold.diff b/threshold.diff deleted file mode 100644 index 04788e8..0000000 --- a/threshold.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- cellprofiler/cpmath/threshold.py 2014-07-23 13:39:57.000000000 -0400 -+++ cellprofiler/cpmath/threshold.py 2014-10-27 16:21:40.719976873 -0400 -@@ -417,7 +417,7 @@ - # data - # - r = np.random.RandomState() -- r.seed(cropped_image[:100].tolist()) -+ r.seed(np.frombuffer(cropped_image[:100].data, np.uint8).tolist()) - for data in ( - r.permutation(cropped_image)[0:(len(cropped_image) / 10)], - cropped_image):