on infrastructure clouds. Main component of Galaxy cloud images github.com/galaxyproject/ cloudlaunch CloudLaunch web application to make it easy to launch images on a cloud, drives http: //launch.usegalaxy.org
and iuc (the “Intergalactic Utilities Commission”). A variety of tools, generally of high quality, including the core tools for Galaxy main. Demonstrates current tool development best practices - development on github and then deployed to test/main ToolSheds.
of Galaxy tools. Linting, testing, deploying to ToolSheds… The best practice approach for Galaxy tool development! github.com/galaxyproject/ planemo-machine Builds Galaxy environments for Galaxy tool development including Docker containers, virtual machines, Google compute images...
API: RESTful HTTP API for accessing and controlling the Galaxy application Managers: Manage resources in the scope of a user transaction, abstract most logic out of controllers Models: encapsulate all persistent state (except for raw data) – users, metadata, workflows, … persisted to relational database (ideally postgres) using SQLAlchemy layer Execution: Getting jobs run. Managing possibly a wide variety of different execution engines behind a single Galaxy instance.
defined in galaxy.model as objects SQLAlchemy is used for object relation mapping Mappings are defined in galaxy.model.mapping in two parts — a table definition and a mapping between objects and tables including relationships Migrations allow the schema to be migrated forward automatically
my viz? - Framework provides direct link to read the raw dataset - or use Data providers - In config, assert that visualization requires a given type of data providers - Data providers process data before sending to browser. Slice, filter, reformat, ...
how do you get a handle on them? - Group datasets into a single unit - Perform complex operations on that unit - Operations are performed on each group element - Output of each operation is a new group
from migrated_tools_conf.xml.sample Initializing config/shed_tool_conf.xml from shed_tool_conf.xml.sample Initializing config/shed_tool_data_table_conf.xml from shed_tool_data_table_conf.xml.sample Initializing config/shed_data_manager_conf.xml from shed_data_manager_conf.xml.sample Initializing lib/tool_shed/scripts/bootstrap_tool_shed/user_info.xml from user_info.xml.sample Initializing tool-data/shared/ucsc/builds.txt from builds.txt.sample Initializing tool-data/shared/ucsc/ucsc_build_sites.txt from ucsc_build_sites.txt.sample . . . Initializing tool-data/sift_db.loc from sift_db.loc.sample Initializing tool-data/srma_index.loc from srma_index.loc.sample Initializing tool-data/twobit.loc from twobit.loc.sample Initializing static/welcome.html from welcome.html.sample * There are many more configs in the configs/ directory, used in their “.sample” state. shed_* are mutable configs. Start hacking with: cp galaxy.ini.sample galaxy.ini
attempting to fetch... Fetched http://eggs.galaxyproject.org/Mako/Mako-0.4.1-py2.7.egg Fetched http://eggs.galaxyproject.org/repoze.lru/repoze.lru-0.6-py2.7.egg Fetched http://eggs.galaxyproject.org/pycrypto/pycrypto-2.5-py2.7-linux-x86_64-ucs4.egg Fetched http://eggs.galaxyproject.org/boto/boto-2.27.0-py2.7.egg Fetched http://eggs.galaxyproject.org/Paste/Paste-220.127.116.11-py2.7.egg Fetched http://eggs.galaxyproject.org/wsgiref/wsgiref-0.1.2-py2.7.egg . . . Fetched http://eggs.galaxyproject.org/pytz/pytz-2013.9-py2.7.egg Fetched http://eggs.galaxyproject.org/nose/nose-0.11.1-py2.7.egg Fetched http://eggs.galaxyproject.org/requests/requests-2.2.1-py2.7.egg Fetched http://eggs.galaxyproject.org/anyjson/anyjson-0.3.3-py2.7.egg Fetched http://eggs.galaxyproject.org/WebError/WebError-0.8a-py2.7.egg Fetched http://eggs.galaxyproject.org/twill/twill-0.9-py2.7.egg Fetch successful. * As a result of this year’ s GCC Hackathon, eggs will soon be replaced by wheels, and will be installed the usual Pythonic way (with pip)
"./job_conf.xml" does not exist, using legacy job configuration from Galaxy config file "/home/nate/galaxy-stable/config/galaxy.ini.sample" instead galaxy.jobs DEBUG 2015-07-06 06:46:14,022 Loading job configuration from /home/nate/galaxy-stable/config/galaxy. ini.sample galaxy.jobs DEBUG 2015-07-06 06:46:14,022 Done loading job configuration * config/job_conf.xml will automatically be read if created, see job_conf.xml.sample_advanced for fully documented examples of all possible configurations
./config/tool_conf.xml.sample galaxy.tools.toolbox.base DEBUG 2015-07-06 06:46:14,132 Loaded tool id: upload1, version: 1.1.4 into tool panel.. galaxy.tools.toolbox.base DEBUG 2015-07-06 06:46:14,133 Loaded tool id: ucsc_table_direct1, version: 1.0.0 into tool panel.. . . . galaxy.tools.toolbox.base DEBUG 2015-07-06 06:46:14,276 Loaded tool id: qual_stats_boxplot, version: 1.0.0 into tool panel.. galaxy.tools.toolbox.base DEBUG 2015-07-06 06:46:14,278 Loaded tool id: vcf_to_maf_customtrack1, version: 1.0.0 into tool panel.. galaxy.tools.toolbox.base INFO 2015-07-06 06:46:14,278 Parsing the tool configuration ./config/shed_tool_conf.xml galaxy.tools.toolbox.base INFO 2015-07-06 06:46:14,278 Parsing the tool configuration ./config/migrated_tools_conf. xml galaxy.tools.search DEBUG 2015-07-06 06:46:14,304 Starting to build toolbox index. galaxy.tools.search DEBUG 2015-07-06 06:46:14,890 Toolbox index finished. * shed_tool_conf.xml is empty on the first run so only tools provided with Galaxy are loaded, but after tools are installed from the Tool Shed, they will load here
80 - WSGI server is responsible for picking up the connection, parsing HTTP headers, and reformatting them into a dictionary according to the WSGI spec, this dict is called “environ” - In a default Galaxy install this is currently Paste#http
def app( environ, start_response ): … - Middleware act as filters, modify the environ and then pass through to the next webapp - Galaxy uses several middleware components galaxy.webapps.galaxy.buildapp#wrap_in_middleware error handling, logging, proxy hostname, debug, static, ...
of ideas with Pylons - __call__ method supports the WSGI spec - Takes environ and creates a wrapper object GalaxyWebTransaction -- this is the ubiquitous trans! - Parses path_info from the environment to determine what controller method to call. The mapping approach is implemented by a library called Routes that maps
methods accept trans as their first argument and additional keyword arguments By default, any <name>.py in the webapps controllers directory is loaded as controller <name> Can return a file or any iterable which will be streamed to the browser Often a helper like self.fill_template is used