├── Dockerfile ├── Python-packages ├── R-packages ├── README.md ├── requirements.txt └── requirements2.txt /Dockerfile: -------------------------------------------------------------------------------- 1 | # Pull base image 2 | FROM resin/rpi-raspbian:wheezy 3 | MAINTAINER Scott Edenbaum 4 | 5 | # Install dependencies 6 | RUN echo 'deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi' > /etc/apt/sources.list 7 | 8 | RUN apt-get update && apt-get install -y \ 9 | curl \ 10 | wget \ 11 | screen \ 12 | cmake \ 13 | unzip \ 14 | libtiff5-dev \ 15 | libhdf5-dev \ 16 | python3 \ 17 | python3-dev \ 18 | cython3 \ 19 | python3-cffi \ 20 | python3-setuptools \ 21 | python3-pip \ 22 | pkg-config \ 23 | python3-tables \ 24 | python3-wheel \ 25 | python3-numpy \ 26 | python3-scipy \ 27 | libpng-dev \ 28 | libjasper-dev \ 29 | libavcodec-dev \ 30 | libswscale-dev \ 31 | libv4l-dev \ 32 | libxvidcore-dev \ 33 | libx264-dev \ 34 | libatlas-base-dev \ 35 | libfreetype6-dev\ 36 | libxft-dev \ 37 | libblas-dev \ 38 | liblapack-dev \ 39 | libatlas-base-dev \ 40 | gfortran \ 41 | libxml2-dev \ 42 | libxslt-dev \ 43 | build-essential \ 44 | ipython3 \ 45 | libncurses5-dev \ 46 | libssl-dev \ 47 | openssl \ 48 | libreadline-dev \ 49 | libbz2-dev \ 50 | libncurses5-dev \ 51 | libcurl4-openssl-dev \ 52 | libjpeg-dev \ 53 | r-base \ 54 | r-base-core \ 55 | r-base-dev \ 56 | --no-install-recommends && \ 57 | rm -rf /var/lib/apt/lists/* 58 | 59 | #RUN apt-get update && apt-get install -y libgeos-c1 60 | 61 | 62 | ###### install opencv 63 | # RUN cd /tmp && \ 64 | # wget -O opencv.zip https://github.com/opencv/opencv/archive/3.2.0.zip && \ 65 | # unzip opencv.zip && \ 66 | # wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.2.0.zip && \ 67 | # unzip opencv_contrib.zip 68 | 69 | # build opencv 70 | # RUN cd /tmp/opencv-3.2.0 && \ 71 | # mkdir build && \ 72 | # cd build && \ 73 | # cmake -D CMAKE_BUILD_TYPE=RELEASE \ 74 | # -D CMAKE_INSTALL_PREFIX=/usr/local \ 75 | # -D INSTALL_C_EXAMPLES=ON \ 76 | # -D BUILD_PYTHON_SUPPORT=ON \ 77 | # -D BUILD_NEW_PYTHON_SUPPORT=ON \ 78 | # -D INSTALL_PYTHON_EXAMPLES=ON \ 79 | # -D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv_contrib-3.2.0/modules \ 80 | # -D BUILD_EXAMPLES=ON .. && \ 81 | # make -j4 && \ 82 | # make && \ 83 | # make install && \ 84 | # make clean 85 | # 86 | # # cleanup source 87 | # RUN cd /tmp && rm -rf opencv-3.2.0 88 | 89 | 90 | RUN mkdir -p pyapp 91 | COPY requirements*.txt pyapp/ 92 | RUN pip3 install --upgrade pip 93 | RUN pip3 install -r pyapp/requirements.txt 94 | RUN pip3 install -r pyapp/requirements2.txt 95 | #setup R 96 | RUN echo "r <- getOption('repos'); r['CRAN'] <- 'http://cran.us.r-project.org'; options(repos = r);" > ~/.Rprofile 97 | RUN Rscript -e "install.packages(c('yhatr','rpart.plot','lattice','mlogit','moments','MNP','muhaz','tidytext','text2vec'))" 98 | RUN Rscript -e "install.packages(c('LDAvis','mcmc','syuzhet','SnowballC','gmodels','descr','ggplot2','googleVis'))" 99 | RUN Rscript -e "install.packages(c('outliers','features','Hmisc','party','ISLR','mice','NLP','foreign','tm','CCP'))" 100 | RUN Rscript -e "install.packages(c('RColorBrewer','colorspace','highr','evaluate','zoo','quantmod','TTR','fAssets'))" 101 | RUN Rscript -e "install.packages(c('Bioconductor','Quandl','zipcode','treemap','worldmap','ellipse'))" 102 | RUN Rscript -e "install.packages(c('Leaflet','ggmap','swirl','gtable','RcppEigen','yaml','BH','mtvnorm'))" 103 | RUN Rscript -e "install.packages(c('LSMeans','Comparison','RegTest','ACD','BinomTools','DAIM','ClustEval','SigClust','PROC'))" 104 | RUN Rscript -e "install.packages(c('TimeROC','car','RMiner','CoreLearn','caret','BigRF','CBA','RankCluster'))" 105 | RUN Rscript -e "install.packages(c('LTSA','survival','Basta','RMarkdown','qcc','jsonlite','RCurl','RWeka'))" 106 | RUN Rscript -e "install.packages(c('parallel','Rcpp','twitteR','igraph','nnet','glmnet','tree','arules','earth','mboost'))" 107 | RUN Rscript -e "install.packages(c('CORElearn','ipred','klaR','party','ROCR','kernlab','wordcloud','MissForest','MissMDA'))" 108 | RUN Rscript -e "install.packages(c('data.table','sqldf','forecast','RMYSQL','anomalyDetection','ElemStatLearn','h2o'))" 109 | RUN Rscript -e "install.packages(c('MASS','penalized','dplyr','reshape2','forecast','stringr','sampleSelection','sandwich'))" 110 | RUN Rscript -e "install.packages(c('sem','statnet','topicmodels','vcd','broom','corrplot','rbokeh','rCharts','lubridate'))" 111 | RUN Rscript -e "install.packages(c('randomForest','rpart','e1071','kknn','plyr','repr','IRdisplay','crayon','pdbZMQ'))" 112 | RUN Rscript -e "install.packages(c('magrittr', 'doBy','extrafont','chunked','snda','network','visNetwork','devtools'))" 113 | RUN Rscript -e "install.packages(c('angstroms','bikedata','datasuRus','dwapi','HURDAT','neurohcp','omsdata','parlitools'))" 114 | RUN Rscript -e "install.packages(c('rerddap','soilcarbon','learnr','olsrr','rODE'))" 115 | 116 | 117 | RUN R -e "install.packages(('devtools'), repos='https://cloud.r-project.org'); devtools::install_github('IRkernel/IRkernel');devtools::install_github('skoval/deuce');IRkernel::installspec()" #Rscript -e "install.packages('devtools')" 118 | 119 | RUN echo "root:Docker!" | chpasswd 120 | #RUN useradd -m -G sudo,users student 121 | #RUN echo "student:Docker!" | chpasswd 122 | #RUN chown student /home/student 123 | # Define working directory 124 | WORKDIR /home/student 125 | 126 | # Define default command 127 | 128 | RUN pip3 install statsmodels 129 | 130 | USER root 131 | CMD jupyter-lab --ip 0.0.0.0 --port 9999 --LabApp.token='' --allow-root 132 | -------------------------------------------------------------------------------- /Python-packages: -------------------------------------------------------------------------------- 1 | 2 | Django 3 | Exifread 4 | Flask 5 | SQLAlchemy 6 | SymPy 7 | Whoosh 8 | beautifulsoup4 9 | bokeh 10 | bottleneck 11 | cython 12 | dash-core-components==0.5.1 13 | dash-html-components==0.6.2 14 | dash-renderer==0.7.3 15 | dash==0.17.7 16 | faker 17 | fedex 18 | gensim 19 | glmnet 20 | h5py 21 | html5lib 22 | inflect 23 | ipython 24 | jupyter 25 | jupyterlab 26 | keras 27 | ladon 28 | lxml 29 | matplotlib 30 | milk 31 | networkx 32 | nose 33 | numexpr 34 | openpyxl 35 | pandas 36 | pandas-datareader 37 | patsy 38 | peewee 39 | pillow 40 | plotly==2.0.11 41 | pmxbot 42 | prettytable 43 | progressbar2 44 | pycrypto 45 | pydot 46 | pymc3 47 | pymongo 48 | python-dateutil 49 | pytz 50 | quandl 51 | redis 52 | regex 53 | requests 54 | reverb 55 | scikit-learn 56 | scrapy 57 | seaborn 58 | selenium 59 | statsmodels 60 | tswift 61 | uuid 62 | xlrd 63 | xlwt 64 | -------------------------------------------------------------------------------- /R-packages: -------------------------------------------------------------------------------- 1 | ACD 2 | BH 3 | Basta 4 | BigRF 5 | BinomTools 6 | Bioconductor 7 | CBA 8 | CCP 9 | CORElearn 10 | ClustEval 11 | Comparison 12 | CoreLearn 13 | DAIM 14 | ElemStatLearn 15 | HURDAT 16 | Hmisc 17 | IRdisplay 18 | ISLR 19 | LDAvis 20 | LSMeans 21 | LTSA 22 | Leaflet 23 | MASS 24 | MNP 25 | MissForest 26 | MissMDA 27 | NLP 28 | Outliers 29 | PROC 30 | RColorBrewer 31 | RCurl 32 | RMYSQL 33 | RMarkdown 34 | RMiner 35 | ROCR 36 | RWeka 37 | RankCluster 38 | Rcpp 39 | RcppEigen 40 | RegTest 41 | SigClust 42 | SnowballC 43 | TTR 44 | TimeROC 45 | angstroms 46 | anomalyDetection 47 | arules 48 | bikedata 49 | broom 50 | car 51 | caret 52 | chunked 53 | colorspace 54 | corrplot 55 | crayon 56 | data.table 57 | datasuRus 58 | descr 59 | devtools 60 | doBy 61 | dplyr 62 | dwapi 63 | e1071 64 | earth 65 | evaluate 66 | extrafont 67 | fAssets 68 | features 69 | forecast 70 | foreign 71 | ggmap 72 | ggplot2 73 | glmnet 74 | gmodels 75 | googleVis 76 | gtable 77 | h2o 78 | highr 79 | igraph 80 | ipred 81 | jsonlite 82 | kernlab 83 | kknn 84 | klaR 85 | lattice 86 | lubridate 87 | magrittr 88 | mboost 89 | mcmc 90 | mice 91 | mlogit 92 | moments 93 | mtvnorm 94 | muhaz 95 | network 96 | neurohcp 97 | nnet 98 | omsdata 99 | parallel 100 | parlitools 101 | party 102 | party 103 | pdbZMQ 104 | penalized 105 | plyr 106 | qcc 107 | quantmod 108 | rCharts 109 | randomForest 110 | rbokeh 111 | repr 112 | reshape2 113 | rpart 114 | rpart.plot 115 | sampleSelection 116 | sandwich 117 | sem 118 | snda 119 | sqldfforecast 120 | statnet 121 | stringr 122 | survival 123 | swirl 124 | syuzhet 125 | text2vec 126 | tidytext 127 | tm 128 | topicmodels 129 | tree 130 | twitteR 131 | vcd 132 | visNetwork 133 | wordcloud 134 | yaml 135 | yhatr 136 | zoo 137 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DataSciencePi 2 | ## Created June 19, 2017 by Scott Edenbaum 3 | Custom docker image with software to facilitate data science in R and Python 4 | 5 | The purpose of this is to piece together a 'turn-key' Raspberry-Pi compatible Data Science development environment accompanied by a large library of current and useful data science packages for R and Python. 6 | 7 | The result is a highly portable and convenient data science purposed platform that can connect to any web compatible device - laptops, smartphones, tablets, etc. The software runs in a docker image, so it can be managed remotely. 8 | 9 | The main interfacing software is Jupyter-lab, a web interface to run Python and R in a markdown compatible 'notebook' environment. 10 | 11 | Following the guide [here]('http://www.circuitbasics.com/raspberry-pi-zero-ethernet-gadget/') I enabled ethernet over USB on the Raspberry Pi Zero. I connect the Raspberry Pi to my laptop with a single USB cable - which provides power and network access to the Pi. 12 | 13 | Python Packages: 14 | faker 15 | cython 16 | scikit-learn 17 | pillow 18 | bokeh 19 | gensim 20 | SymPy 21 | keras 22 | Exifread 23 | numpy 24 | pandas 25 | scipy 26 | ipython 27 | jupyter 28 | jupyterlab 29 | pandas-datareader 30 | matplotlib 31 | seaborn 32 | numexpr 33 | bottleneck 34 | SQLAlchemy 35 | openpyxl 36 | xlrd 37 | xlwt 38 | beautifulsoup4 39 | html5lib 40 | lxml 41 | requests 42 | networkx 43 | plotly 44 | 45 | 46 | R Libraries: 47 | yhatr 48 | ggplot2 49 | googleVis 50 | Outliers 51 | features 52 | Hmisc 53 | party 54 | ISLR 55 | mice 56 | NLP 57 | foreign 58 | CCP 59 | RColorBrewer 60 | colorspace 61 | highr 62 | evaluatre 63 | zoo 64 | gtable 65 | RcppEigen 66 | yaml 67 | BH 68 | mtvnorm 69 | TimeROC 70 | PROC 71 | SigClust 72 | ClustEval 73 | DAIM 74 | BinomTools 75 | ACD 76 | RegTest 77 | Comparison 78 | Basta 79 | survival 80 | LSTA 81 | RankCluster 82 | CBA 83 | BigRF 84 | CoreLearn 85 | twitteR 86 | Rcpp 87 | parallel 88 | RWeka 89 | RCurl 90 | jsonlite 91 | kernlab 92 | POCR 93 | klaR 94 | ipred 95 | CORElearn 96 | mboost 97 | earth 98 | arules 99 | tree 100 | glmnet 101 | nnet 102 | igraph 103 | wordcloud 104 | MissForest 105 | MissMDA 106 | data.table 107 | sqldf 108 | forecast 109 | RMYSQL 110 | MASS 111 | dplyr 112 | reshape2 113 | forecast 114 | stringr 115 | lubridate 116 | randomForest 117 | rpart 118 | e1071 119 | kknn 120 | repr 121 | IRdisplay 122 | crayon 123 | pbdZMQ 124 | devtools 125 | 126 | 127 | 128 | Enjoy! 129 | 130 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | nltk 2 | keras 3 | Exifread 4 | nose 5 | quandl 6 | peewee 7 | prettytable 8 | progressbar2 9 | uuid 10 | pycrypto 11 | Whoosh 12 | regex 13 | ladon 14 | fedex 15 | tswift 16 | pmxbot 17 | Django 18 | selenium 19 | pymongo 20 | redis 21 | reverb 22 | inflect 23 | python-dateutil 24 | Flask 25 | pytz 26 | milk 27 | glmnet 28 | pydot 29 | patsy 30 | pymc3 31 | -------------------------------------------------------------------------------- /requirements2.txt: -------------------------------------------------------------------------------- 1 | h5py 2 | cython 3 | gensim 4 | SymPy 5 | faker 6 | scikit-learn 7 | scrapy 8 | pandas 9 | ipython 10 | jupyter 11 | jupyterlab 12 | pandas-datareader 13 | matplotlib 14 | seaborn 15 | numexpr 16 | bottleneck 17 | SQLAlchemy 18 | openpyxl 19 | xlrd 20 | xlwt 21 | beautifulsoup4 22 | html5lib 23 | lxml 24 | requests 25 | networkx 26 | dash==0.17.7 27 | dash-renderer==0.7.3 28 | dash-html-components==0.6.2 29 | dash-core-components==0.5.1 30 | plotly==2.0.11 31 | pillow 32 | bokeh 33 | Quandl 34 | --------------------------------------------------------------------------------