Skip to content

pragmatic-streamlit/streamlit-molstar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

streamlit-molstar

Mol* (/'molstar/) is a modern web-based open-source toolkit for visualisation and analysis of large-scale molecular data.

Install

pip install streamlit-molstar

License Information

This project is distributed under the MIT License. However, it incorporates code snippets from various visualization projects due to Streamlit's functionality. As a result, certain parts of the project are subject to the original licenses of these snippets. During the project's rapid development, tracking the source of all excerpts proved challenging, leading to uncertainties regarding the need for specific attributions.

  • For updates on license clarification, see issue #21 .
  • For the pocket visualization component, refer to the license of p2rankweb.

Usage

Show Molecule

Protein with Traj

    import streamlit as st
    from streamlit_molstar import st_molstar, st_molstar_rcsb, st_molstar_remote

    #st_molstar_rcsb('1LOL', key='xx')
    #st_molstar_remote("https://files.rcsb.org/view/1LOL.cif", key='sds')
    #st_molstar('examples/complex.pdb',key='3')
    st_molstar('examples/complex.pdb', 'examples/complex.xtc', key='4')

Protein with Traj

Protein & Pocket

Select pocket from local protein (pockets predicted using p2rank and visualized using PrankWeb)

    import streamlit as st
    from streamlit_molstar.pocket import select_pocket_from_local_protein

    selected = select_pocket_from_local_protein("examples/pocket/protein.pdb", prank_home='/Users/wfluo/Downloads/p2rank_2.4/')
    if selected:
        protein_file_path, pocket = selected
        st.write('Protein Path: ', protein_file_path)
        st.write('Selected Pocket: ', pocket)

Select Pocket

Select pocket from uploaded protein (pockets predicted using p2rank and visualized using PrankWeb)

    import streamlit as st
    from streamlit_molstar import st_molstar, st_molstar_rcsb, st_molstar_remote

    selected = select_pocket_from_upload_protein(prank_home='/Users/wfluo/Downloads/p2rank_2.4/')
    if selected:
        protein_file_path, pocket = selected
        st.write('Protein Path: ', protein_file_path)
        st.write('Selected Pocket: ', pocket)

Upload & Select Pocket

Show Pockets (pockets predicted using p2rank and visualized using PrankWeb)

    import streamlit as st
    from streamlit_molstar import st_molstar_pockets

    st_molstar_pockets(protein_file_path, structure_file_path, pockets_file_path)

Show Pocket

Docking

Show docking result with ground truth

    import streamlit as st
    from streamlit_molstar.docking import st_molstar_docking

    st_molstar_docking('examples/docking/2zy1_protein.pdb', 
                       'examples/docking/docking.2zy1.0.sdf',  gt_ligand_file_path='examples/docking/2zy1_ligand.sdf', key="5", height=240)

Show docking with gt

Auto files

    import streamlit as st
    from streamlit_molstar.auto import st_molstar_auto

    import streamlit as st

    st.set_page_config(layout="wide")

    st.write("from remote url")
    files = ["https://files.rcsb.org/download/3PTB.pdb", "https://files.rcsb.org/download/1LOL.pdb"]
    st_molstar_auto(files, key="6", height="320px")

    st.write("from local file")
    files = ['examples/7bcq.pdb', "examples/7bcq.mrc"]

    st_molstar_auto(files, key="7", height="320px")

Auto Show