Giter Club home page Giter Club logo

semantic's Introduction

semantic Build Status

SuperPhy for the semantic web

Starting from a fresh install of linuxmint-17.3-cinnamon-64bit

* sudo apt-get update && sudo apt-get upgrade -y
* sudo apt-get install apache2 curl git libapache2-mod-wsgi libyajl2 mummer muscle python-dev python-virtualenv wget xvfb -y
* git clone https://github.com/superphy/semantic.git ~/superphy
* cd ~/superphy
* python setup.py install --sys
*
* //to start blazegraph
* python setup.py run
*
* cd app/
* //to start superphy webapp
* python run.py
* //Navigate to localhost:5000, and verify the page loads, go back to the terminal and hit ctrl-c
* //Navigate to localhost, and verify the apache-mod_wsgi server is running.

/*If any thing doesn't load, try refreshing the page again, as the first load is broken at the time of writing this.

Congratulations. You have a working version of SuperPhy. Next thing to do is add in genome data to the Blazegraph Triplestore.

  • Setup coffeelint to ensure we are all following the same coding style
  • coffeelint.json in the root directory ensures the rules apply to all subdirectories

The MVC framework is called Mithril, in Javascript. It is minimalistic and can be used more like a library than a huge framework. It is small, fast and allows easy integration with other libraries. Like react, it provides a virtual DOM, and only re-draws what has changed.

  • CSS pre-processor

A standalone Blazegraph .jar file can be found at Blazegraph Download

Adding real genomic data to the Blazegraph triplestore

The Java Heap Size will need to be changed (probably) for datasets of our size -- even loading the basic GO owl file required this. This will give blazegraph a 4GB heap space, which should be enough.

The OWL file for the Genomic Feature and Variation Ontology (GFVO) An ontology for describing genomic features and variants; in particular the contents of GFF3, GTF, GVF and VCF files, should be obatined from: (https://raw.github.com/BioInterchange/Ontologies/master/gfvo.xml) and installed

curl -X POST -H 'Content-Type:application/rdf+xml' --data-binary '@gfvo.xml' http://localhost:9000/blazegraph/namespace/superphy/sparql

GO ontology for genes in OWL (http://geneontology.org/page/download-ontology). 10 tips for using GO (www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1003343#s2). The latest version includes the ~900 PAMGO (http://pamgo.vbi.vt.edu/) terms for virulence

curl -X POST -H 'Content-Type:application/rdf+xml' --data-binary '@go.owl' http://localhost:9000/blazegraph/namespace/superphy/sparql

This takes a few minutes (Modified: 1349345 Milliseconds: 926484)

The genome should undergo the quality checks before being loaded into the triplestore. Following addition, each new analysis should query the triplestore for the sequence, and then update the triplestore with the result. This allows things to be done in parallel, rather than one monolithic analysis that can fail. Also, using GET uses caching, so their shouldn't be a huge amount of data transfer (eg. querying multiple times for the same genome sequence)

Ontology

An ontology describes hierarchical relationships, and the properties. To create an actual RDF instance, you can use the rdf:type -- this is so common that the agreed upon shorthand is the single letter 'a' -- it means exactly the same thing. See (http://www.linkeddatatools.com/introducing-rdfs-owl) for a well-explained introduction using OWL and RDF.

Directory structure for semantic superphy (OUTDATED)

Top level

    • Directory is expanded below top level

Directory.........................Description

app/.............................Flask appication files; files for creating the website auth/........................views, and forms having to do with the authentication content main/........................views, and forms having to do with the main content static/......................Static assets: pictures, css, js, cscript. templates/...................Jinja2 templates. .HTML files. api_1_0/.....................Relic from Flasky skeleton. RESTful API Blueprint bash/*............................bash scripts for matenance and setup migrations/.......................Relic from Flasky skeleton. Iterative deployment of the table SQL database is stored here. ontology/.........................Linked data files (TTL,RDF,etc). These were made with 'Protege'. They provide the framework for adding linked data to the triplestore. python_package/...................Individual packages scrypt/.......................?Script? sparql/.......................Sparql queries & updates. sparql endpoint interface. uploader/.....................Genome import module tests/............................Testing code for the entire project tmp/..............................Temporary storage. This folder mostly ignored by git findhome/.....................Stranded code. This folder is not ignored by git. uml/..............................Specification, Visualization, Construction and Documentation artifacts venv/.............................Virtual Environment to keep the dependencies required by the project separate from the dev system. requirments.txt...............Requirements install file for the virtual environment

app/

app/api_1_0/ authentication.py.............flask.ext.httpauth authentication comments.py...................Relic from Flasky skeleton. decorators.py.................Function Decorators errors.py.....................Error handling init.py...................API blueprint constructor posts.py......................Relic from Flasky skeleton. users.py......................Relic from Flasky skeleton. (Could keep track of some things here)

app/auth/ forms.py......................Authentication Form Classes init.py...................blueprint constructor views.py......................Authentication View Functions

app/main/ errors.py.....................Main Error View Functions (Keep this) forms.py......................Relic from Flasky skeleton. init.py...................blueprint constructor views.py......................Relic from Flasky skeleton.

app/static/ coffee/.......................all coffeescript files for creating the website css/..........................all CSS files (generated by LESS, or 3rd party) images/.......................all images for the site js/...........................generated javascript (from Coffee files) and 3rd party less/.........................style coding, generated CSS is in separate folder coffeelint.json...............coffeescript style conventions gulpfile.js...................config file for Gulp index.html....................Mithril home (includes HTML sekelton and includes minified JS and CSS)

app/templates/ auth/.........................Authentication Webpages change_email.html.........^ change_password.html......^ email/....................Email related webpages change_email.html.....^ change_email.txt......^ confirm.html..........^ confirm.txt...........^ reset_password.html...^ reset_password.txt....^ login.html................Login Webpage register.html.............Register Webpage reset_password.html.......Password Reset Webpage unconfirmed.html..........Unconfirmed account Webpage mail/.........................Relic from Flasky skeleton. new_user.html.............Relic from Flasky skeleton. new_user.txt..............Relic from Flasky skeleton. 403.html......................403 Error Webpage 404.html......................404 Error Webpage 500.html......................500 Error Webpage base.html.....................Base webpage for many other pages to inherit. _comments.html................Relic from Flasky skeleton. edit_post.html................Relic from Flasky skeleton. edit_profile.html.............Relic from Flasky skeleton? error_page.html...............Base webpage for many other pages to inherit. followers.html................Relic from Flasky skeleton. index.html....................Index _macros.html..................Relic from Flasky skeleton? moderate.html.................Relic from Flasky skeleton? post.html.....................Relic from Flasky skeleton. _posts.html...................Relic from Flasky skeleton. user.html.....................Relic from Flasky skeleton.

app/decorators.py.................Function Decorators app/email.py......................Sending email (broken) app/exceptions.py.................Relic from Flasky skeleton. Dummy? app/__init.py.....................Main app init function

semantic's People

Contributors

bernice-b avatar chadlaing avatar claricen avatar drew111b avatar kevinkle avatar mwhitesi avatar sphkan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

semantic's Issues

SLURM install guide: slurmd won't start

I am using the Debian section of your SLURM install guide to install SLURM on a single-node Ubuntu 16.04 desktop. In my case, the master and worker nodes are the same. I do not have a cluster, but I want to run some small examples and fix some code.

I am stuck at sudo /etc/init.d/slurmd start. The log shows

[2017-10-29T21:57:31.074] slurmctld version 15.08.7 started on cluster cluster              
[2017-10-29T21:57:31.075] layouts: no layout to initialize                                  
[2017-10-29T21:57:31.075] fatal: Frontend not configured correctly in slurm.conf.  See man slurm.conf look for frontendname.   

slurmd -C shows:

ClusterName=(null) NodeName=Haggunenon CPUs=4 Boards=1 SocketsPerBoard=1 CoresPerSocket=4 ThreadsPerCore=1 RealMemory=16004 TmpDisk=223645
UpTime=0-00:29:17

I also submitted posts to Stack Overflow:

And here is my /etc/slurm-llnl/slurm.conf. I generated it from /usr/share/doc/slurmctld/slurm-wlm-configurator.html, supplying the information from slurmd -C. I also changed the user name to wlandau (my own user name) and set ControlMachine and NodeName to Haggunenon (the hostname).

# slurm.conf file generated by configurator easy.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ControlMachine=Haggunenon
#ControlAddr=
#
#MailProg=/bin/mail
MpiDefault=none
#MpiParams=ports=#-#
ProctrackType=proctrack/pgid
ReturnToService=1
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
#SlurmctldPort=6817
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
#SlurmdPort=6818
SlurmdSpoolDir=/var/lib/slurm-llnl/slurmd
SlurmUser=wlandau
#SlurmdUser=root
StateSaveLocation=/var/lib/slurm-llnl/slurmctld
SwitchType=switch/none
TaskPlugin=task/none
#
#
# TIMERS
#KillWait=30
#MinJobAge=300
#SlurmctldTimeout=120
#SlurmdTimeout=300
#
#
# SCHEDULING
FastSchedule=1
SchedulerType=sched/backfill
#SchedulerPort=7321
SelectType=select/linear
#
#
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/none
ClusterName=cluster
#JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
#SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log
#SlurmdDebug=3
SlurmdLogFile=/var/log/slurm-llnl/slurmd.log
#
#
# COMPUTE NODES
NodeName=Haggunenon CPUs=4 RealMemory=16004 CoresPerSocket=4 ThreadsPerCore=1 State=UNKNOWN
PartitionName=DEFAULT Nodes=Haggunenon Default=YES MaxTime=INFINITE State=UP

Matrix highlighting

Hovering over a square in one gene matrix also makes the other one (in the other gene matrix) highlighted too

Project Overview

Install

  • Install Gulp
  • Install Blazegraph
  • Install Flask
  • Install Apache
  • Install Coffeescript
  • Install Less
  • Install Mithril

Use

Gulp

  • How to add dependencies
  • How to use Gulp to compile project

Blazegraph

  • Adding data
  • Querying data

Apache

  • Hello world HTML
  • Setting up Apache to use Python

Flask

  • Flask hello world
  • Testing in Python

Coffeescript

  • Class creation
  • Class use
  • Class extension
  • Testing in Coffeescript

Less

  • Compile to CSS
  • Use with Gulp

Mithril

  • Setting up Mithril to work from Flask --> hello world
  • How routing works in Mithril
  • MVC in Mithril
  • How to query Blazegraph via REST API
  • How to store data
  • How to make a simple component
  • How to re-use this component
  • including CSS styling

Project contribution

  • Pull request checklist
  • Continuous integration
  • Documentation
  • Templates for components (documentation and tests)

Group Browse endpoint & VF and AMR workflow

Gbrowse is using an endpoint where the server is responsible for formatting data for client side consumption.

We messed up the VF and AMR workflow in the past. It came to light with this change that the endpoint is not working properly because when the page is first loaded (when the data is yet to be populated) it is already trying to use the data. This means that it tries to use the previous sessions's data if it tries to get new data.

TableView component scroll

If there's more than one table, then they both scroll down on the page scroll.
Also, after scrolling for a bit, the number of visible rows decreases.

Genome Meta-Data Classes need string literals

Some URI classes in Blazegraph are created with the data in the URI: (For example - https://github.com/superphy#O148) They do not have any associated literal data to pull for referencing outside of blaze-graph.
For instance, meta data has the following classes without data attached:
Serotype_O
Serotype_H
Host (both Latin and English)
Etc

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.