Giter Site home page Giter Site logo

chanaka-gsoc-2017's People

Contributors

andrewyatz avatar chanakade avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

sanjay-boddu

chanaka-gsoc-2017's Issues

Provide schemas to help design the database and JSON schemas

In order to design good database and JSON data structures we need to provide the original Ensembl data schemas. We will provide the following

  • The link to the core ER diagram
  • SQL schema for core
  • The connection details to connect to the public Ensembl MySQL servers
  • An example of the web data hash and description of keys/meaning
  • A trackDb example and explanation of the keys being used

In addition we will highlight the areas of the core scheme of interest. This will form the first use-case of the project

Loading tracks into the database from Ensembl

Run this bash command to log into the server:

$ mysql -hensembldb.ensembl.org -uanonymous homo_sapiens_core_89_38

This schema's species is homo_sapiens (location_species), its schema type is core (location_dbtype) and the object type we are retrieving here is gene (location_object_type).

Then run this SQL and find all displayable tracks in an Ensembl core schema for genes e.g.

select a.analysis_id, logic_name, ad.description, ad.display_label, ad.web_data
FROM (
	select distinct(analysis_id) as analysis_id from gene 
) as a 
join analysis on (a.analysis_id = analysis.analysis_id) 
join analysis_description as ad on (analysis.analysis_id = ad.analysis_id)
where ad.displayable = 1;
  • logic_name is the same as location_logic_name and should be linked as such
  • description is the same as track description
  • web_data is a Perl formatted data structure. Simple regex of => to : should mean you can use JSON deserialisers to get back to a data structure

Loop through the web data fields and look for where the field key is repeated. These entries should be combined into a single track.

Documentation Templates

All of these are sample templates you can use to write documentation with. Please adapt as you see fit.

Introduction Document

# Project Name

# Description
Describe what the project attempted to do (take the original project description and adapt)

# Application Links

Link to the running application and make them aware of any usage requirements to make it work

# Repository Links
List each repository you have committed code to publicly

Architecture Template

  • Project is the name of this project
  • Component here refers to one of your major areas of work e.g. REST API, Elastic, UI, MySQL importer.
# Project Name

# Overall Structure

Diagram to show the overall structure about how the components you're about to list fit together

# Component Name

## Role
Describe the role of the component here. What is it trying to do

## Interconnections
How the component fits into the architecture

## Composition
How is it made? Technology choices. Major packages/files you should be aware of. Do we have existing documentation e.g. JSON schemas, database schemas we can bring in (do it)

## Limitations
Any limitations in the implementation the reader should be aware of.

Usage Template

Use this to describe how someone should use your application

  • Tool refers to a unit of code you're going to deploy or expect someone to run
# Tool name

## Synopsis

Brief description about how to run or deploy the application. Include it as an inline example e.g. if this was a command line tool

`./path/to/command --option 1 --option 2 file`

## Description

Brief description of what the tool is meant to do. Link to any other information about it e.g. architecture documents if needed

## How to Install/Deploy/Run

Step by step about how to do this. Don't include really basic information that's better described elsewhere e.g. don't say "Sign up to Heroku by going https://..... and then clicking on signup". Link to Heroku's documentation about how to do that.

If it is a command line application then go through how to install the tool and then run it. Refer to any options you might have given below.

## Options

Command line options, if you have any, or options to tweak the tool

Documentation of all components

  • Web application front-end design and adding new pages
  • Web application deployment; how to run
  • REST API application
  • Ensembl MySQL to track db MySQL import documentation install and build
  • Ensembl MySQL to track db MySQL import documentation; how to run
  • Track db MySQL to ElasticSearch import documentation install and build
  • Track db MySQL to ElasticSearch import documentation; how to run

Put these with the projects as a README.md on each GitHub repo. I suggest the following structure for this.

# NAME OF PROJECT
Short description

#SYNPOSIS
  `How to run the command`

# DESCRIPTION
Bigger description

# INSTALL
How to install

# RUN
How to run

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.