@st.cache_resource
def chart():
data1= gos.bigwig(url="/Users/violacimatti/Desktop/MB12_H3K27me3.bw", column="position", value="peak")
track1= gos.Track(data1).mark_bar().encode(
x=gos.X('position:G'),
y=gos.Y('peak:Q', axis='right'),
tooltip=[gos.Tooltip('position:G'), gos.Tooltip('peak:Q')],
).properties(layout="linear", width=1000, height=200, id='track-1', experimental={"mouseEvents": True}, title='')
data2=gos.csv(
url='/Users/violacimatti/Desktop/mod.bed',
headerNames=['chrom','Start','End','name','score','strand'],
chromosomeField='chrom',
genomicFields=['Start', 'End'],
separator='\t'
)
base= gos.Track(data2).transform_displace(
method='pile',
newField='pileup',
boundingBox=dict(
startField='start',
endField='end',
padding=5
),
).transform_json_parse(
field='subsitutions',
genomicField='pos',
baseGenomicField='start',
genomicLengthField='length'
).properties(height=500)
track2= base.mark_rect().encode(
x=gos.X('start:G',scale=gos.scale(zero=False)),
xe=gos.Xe('end:G'),
row=gos.Row('pileup:N', padding=0.2),
color=gos.value('red'),
).properties(width=1000, height=600, id='track-2', experimental={"mouseEvents": True}, title='')
final= gos.stack(track1, track2).properties(xDomain=gos.GenomicDomain(chromosome="chr3", interval=[103385937, 103385937+10]), layout="linear", width=1000, height=800, id='track-3', experimental={"mouseEvents": True}, title='')
return final
with col1:
st.header('Streamlit-Gosling')
chr = st.selectbox('zoom to chromosome', [str(i) for i in range(1, 20)])
start = st.number_input('Start Position', min_value=1, value=1, step=1)
end = st.number_input('End Position', min_value=1, value=1, step=1)
eventType = 'zoomTo'
api = {"action": 'zoomTo', 'viewId': 'track-1', 'position': f'chr{chr}:{start}-{end}'}
with col2:
result = st_gos.from_gos(spec=chart(), id='id', height=800, eventType=eventType, api=api)
with col1:
st.write(f'You {eventType}: {result}')
I don't know why but the second track is empty when I visualize it. Also if you need it this is the bed file I would like to visualize:
chrom Start End name score strand
11 63063076 63063077 TRA00060190 . +
15 95051084 95051085 TRA00101969 . -
3 103385937 103385938 DEL00002431 . -
4 83009692 83009693 DEL00003020 . -
6 16644483 16644484 INV00005303 . -
X 148068900 148068901 TRA00166442 . +