Gosling custom component for Streamlit
Project description
Streamlit - Gosling
A Streamlit component to display Genomic Visualization using Gosling.
Install
pip install streamlit-gosling
also need to install its dependencies gosling
and streamlit
pip install gosling
pip install streamlit
Usage
Create a python file as below, then run it using streamlit run app.py
.
# app.py
import streamlit as st
import gosling as gos
from streamlit_gosling import streamlit_gosling as st_gos
size = 500
data = gos.matrix("https://server.gosling-lang.org/api/v1/tileset_info/?d=leung2015-hg38")
# data = gos.matrix('/path/to/dataset.cool') # local dataset
@st.cache
def chart():
return gos.Track(data).mark_bar().encode(
x=gos.X("xs:G", axis="bottom"),
xe="xe:G",
y=gos.Y("ys:G", axis="left"),
ye="ye:G",
color=gos.Color("value:Q", range="hot", legend=True),
).properties(width=size, height=size).view()
st_gos(spec=chart(), id='id', height=size+ 100)
API
st_echarts API
st_gos(
id: string,
spec: a gosling visualization object
height: number
)
Development
Install
- JS side
cd frontend
npm install
- Python side
conda create -n streamlit-gosling python=3.7
conda activate streamlit-gosling
pip install -e .
Run
You need to run both the JS side and the Python side for development mode.
- JS side
cd frontend
npm run start
- Python side
Demo example is on https://github.com/andfanilo/streamlit-echarts-demo.
git clone https://github.com/andfanilo/streamlit-echarts-demo
cd streamlit-echarts-demo/
streamlit run app.py
Static HTML file
If you only need static rendering of frontend code (HTML/CSS/JS), with no communication from HTML back to Streamlit, then you may not need streamlit-gosling
and components.html
will be the easiest way.
import gosling as gos
import streamlit.components.v1
import urllib.request as urllib
import json
URL = "https://gist.githubusercontent.com/sehilyi/54eaeecd2f07203a707e1516b1cf8e60/raw/d7728224b475a87604f97ba5522e1501edc2565a/gosling.js"
def load_schema():
with urllib.urlopen(urllib.Request(URL)) as response:
raw = response.read()
conf = json.loads(raw)
return conf
if __name__ == "__main__":
schema = load_schema()
html = gos.View(**schema)._repr_mimebundle_()['text/html']
streamlit.components.v1.html(html, width=800, height=300)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for streamlit_gosling-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98281e3f3b25495d6cfa36d4810c06b6bdbdccc489b842af933fb0eb6f9c1fc6 |
|
MD5 | 31317bd89117fbab9b9373ebbfda1276 |
|
BLAKE2b-256 | cd169ee3c84634c3af6593d2ba9a7a5079c8820ad2438210cebe9f3ae384bb8d |