An easy-to-use platform for 

sharing and running code


def find_position_in_sequence(sequence, search_string):
	print sequence.find(search_string)

Bjarne

 

The problem we want to solve

  • Copy it to a USB stick, give it to Anne
  • Paste it into an email and send it
  • Upload it to dropbox, share link
  • ... etc

Anne

def find_position_in_sequence(sequence, search_string, find_all = False):
	if not find_all:
		return sequence.find(search_string)
	else:	
		import re
		return [m.start() for m in re.finditer(search_string, sequence)]

wants to share his code with 

How to do it?

A more complicated example

Master student A

Geir Kjetil

Master student B

Some professor

Some future master student

 

  • Should probably use git
    to share code
  • But how to run code?
  • Dependencies?
  • Where to host the git repo?

1000 lines of code and 10 GB of sequence data

An easy-to-use platform for 

sharing and running code

We propose:

  • Develop your Python code locally
  • Deploy to server with one click
  • Instantly accessible web tool for your code
  • REST API and command line interface to your code
  • Re-use code written by others

Features:

Demo

  1. Open up your web browser and go to http://46.101.93.163
     
  2. Click on "I am a developer ... " and follow the guide
     
  3. Whenever prompted for a password, type jewi4qptq12

Some technical details

  • The demo is built on a virtual machine, and we plan to make the whole platform on a virtual machine that easily can be cloned.
  • This makes it easy for any group that wants to deploy the platform to do so (setup takes about two minutes)
  • The demo uses Galaxy with minor modifications. This makes it possible to utilize the power of Galaxy, and we avoid using time on problems such as user handling, job running, history elements and so on ...

What's next?

  • Running of tools should be integrated with how jobs run in Galaxy, so that history elements are created when you run a job.
  • All tools should be organized better (i.e. not all appear in the menu). There should be a search tool, subfolders, list of favourite tools, etc.
  • It should be possible to make Python modules that easily can be made public and visible to all other tools. This makes it possible to share and reuse modules. 

Any other suggestions?

Easy to use platform for sharing and running code

By ivarg

Easy to use platform for sharing and running code

  • 264