Dependencies ============ Required --------- - Python (>= 2.4) - easy_install and setuptools for Python: probably your Linux/BSD/whatever distribution already contains those pre-packaged. Otherwise, download ez_setup from http://peak.telecommunity.com/dist/ez_setup.py and run "sudo python ez_setup.py" which will install setuptools. For further details, visit http://peak.telecommunity.com/DevCenter/EasyInstall#installation-instructions - You will need several Python packages. Most installations include many or most of them. Just in case, from a fresh python installation (or if you use workingenv) you'll need to do: easy_install Pylons cheetah easy_install Paste easy_install PasteScript easy_install PasteDeploy easy_install Beaker easy_install nose easy_install WebHelpers easy_install simplejson easy_install FormEncode easy_install Myghty easy_install MyghtyUtils easy_install Routes see the script "install.in.workingenv.sh" which gives a possible script that will take care of installing a fresh, "isolated" working environment with workingenv, and will install all required Python modules (and will also install Asterias, and ask you to configure it.) - LAM/MPI. Needed for the parallel computing. Get it from http://www.lam-mpi.org/, although your Linux distribution is likely to have LAM/MPI packages/binaries (in Debian you need lam-runtime, lam4-dev and lam4c2 or equivalent ---the shared libraries). [We will eventually move to Open MPI, but lots of our code depends on lamboot/lamhalt created/destroyed universes, and analogous commands are not yet available for Open MPI]. - R (>= 2.4.0), available from CRAN (http://cran.r-project.org ), and several R packages (available from CRAN) and BioConductor packages (available from http://www.bioconductor.org ). The required R/BioC packages are, right now: 'cgh', 'aCGH', 'cghMCR', 'DNAcopy', 'papply', 'GDD', 'imagemap', 'waveslim', 'cluster', 'ADaCGH'. Optional but convenient ------------------------ - Virtual Python (http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python ) or workingenv (http://cheeseshop.python.org/pypi/workingenv.py/0.2 ) so as to install as non-root. Creating the egg ================ ONLY if you downloaded the sources and want to create your own egg for distribution, etc. NOT NEEDED if you have the egg or are using easy_install directly to get the package from Cheese Shop!!! If you downloaded the sources, go to the upper directory and do: python setup.py bdist_egg Installation and Setup ====================== Install ``asterias`` using easy_install:: easy_install asterias It is better to install as non-root; among other things, the installation process creates a bunch of tmp directories where files get written and deleted from by the web server user. See workingenv or VirtualPython options above. Pylons ------ Make a config file as follows (execute, for instance, from the home of the user you are installing for):: paster make-config asterias config.ini Tweak the config file as appropriate and then setup the applicaiton:: paster setup-app config.ini Then you are ready to go. The rest -------- Go to the place where asterias is installed and enter the asterias directory. Edit the file asterias_config2.ini. If the file asterias_config2.py is not executable, make it so (e.g., chmod u+x asterias_config2.py). Now run it (./asterias_config2.py). Other processes you might want to keep running =============================================== lib/mpi_log/delete_old_dirs.py ------------------------------ If you have a cron job call this script periodically, your CGIs will have to do less work, and will be faster. This is specially important in large clusters or for applications that are only used sporadically, so that a lot of old stuff can pile up. lib/mpi_log/checkMPIdaemon.py ----------------------------- We run this script every minute or so as a daemon that gets started when the controlling machine(s) is booted. However you run or call it, this daemon will prevent LAM/MPI from attempting to run in nodes that are not functional. As well, if you use the appropriate code for having an email (SMS, smoke sign, whatever) sent to you, you'll be notified when things break. (E.g.: checking a machine is up via pings is not enough if the file system is remounted read-only). We use Debian, and have the following script linked from /etc/init.d/checkMPIup ######################################################## #!/usr/bin/python import os import sys start_stop = sys.argv[1] if start_stop == 'start': tmp = os.system('/http/mpi.defs/local_checkMPIdaemon.py ') print 'OK' elif start_stop == 'stop': tmp = os.popen('killall local_checkMPIdaemon.py') print 'OK' elif start_stop == 'status': tmp = os.popen('ps -C local_checkMPIdaemon.py --no-headers').readline() if tmp: print 'OK, is running' else: print 'stopped' ############################################ where local_checkMPIdaemon.py is a local version of checkMPIdaemon.py, with code for sending email, etc, etc.