Giter Club home page Giter Club logo

xerus-streamlit's Introduction

NOTE:

Main development of this interface has moved to the MAIN XERUS repository, and it has been merged there. All the development of the interface will be done there.

Xerus-streamlit

This is the repository for the Streamlit interface of XRay Estimation Using Refinement and Similarity (XERUS) Currently, we are in beta phase. Most of functionalities of Xerus is already implemented and can be use via the interface without the need of any coding or use of jupyter notebooks.

INSTALLATION:

Please first install the latest version of Xerus following the instructions in the main repository

After, you can clone this repository and install the Streamlit dependencies doing:

git clone https://www.github.com/pedrobcst/Xerus-streamlit
pip install -r requirements.txt

USING

To use please be aware this is just an interface around Xerus, and thus all the requirements to use Xerus are still necessary. That is:

  1. MongoDB server is running (and/or the configurations for a remote server is set in Xerus package)
  2. The api-key settings (for materials project) are correctly set in Xerus

If this is set, just run:

streamlit run app.py

And the interface should load in the web (defaulting to port 8501).
We are currently working in writing a documentation describing how to use step by step, and a Streamlit recording of the usage should be available soon.

xerus-streamlit's People

Contributors

pedrobcst avatar

Watchers

 avatar  avatar

xerus-streamlit's Issues

Remove "View data" button

By default, the data should be automatically plotted after it is uploaded. The 'view data' button is unnecessary.

Update README

Write updated README on how to install, set up and start the interface working.

Fix columns dropping when only one phase is run

When one phase is found, the dataframe does not have the colums "npos" and "n_runs". However, we are always dropping these columns, leading to error (if only one phase is found).

We should change this to just keep the columns we want instead of dropping the ones we dont want.

Multipage Support?

It might be nice (after updating the main Xerus) if we could have mutlipage for:

  • Simulating + Correlations only
  • Launching BBO from whatever specified CIFs (Just refinement optimization interface, without the need to launch whole analysis process)
  • Others?

Add more information about the steps

Add:

  • Ability to pre-simulate the patterns and calculate correlations without need to run Analyze
  • Show at analyze at which step we are (Downloading structures, Simulating, Refinement)

Create requirements.txt or enviroment.yml

Create a requriements.txt file for ease of installation or provide a premade conda enviroment file that can easily be used.

Currently used custom packages outside of the ones used by Xerus:

  • streamlit-aggrid
  • streamlit

Add option to show highest correlated patterns.

Currently the visualization of results are quite lacking. We only show the results of a given refinement process. Sometimes, being able to see all top K highest correlated patterns with the data can be quite useful. Do:

  • Accept K as st.number_input, to see how much to be chosen
  • Add the option to plot these K highest correlated patterns.
  • BONUS: Would be nice if it is possible to do that before running the full analysis (Needs to change Xerus main code to allow that, or just run correlations twice?)
  • BONUS 2: Show the full plot of each run? (Ie, the process of peak removal and phases found. This can also be quite useful / enlightening for parameter tuning if necessary.)

Load old results

Add a way to use the interface to view old analysis results too.

Add plotting functions to show the data

Currently, Xerus does not provide easy access to get the plots ready.

We might have to rewrite few things from scratch, especially when data is loading:

Current TODO:

  • Finish the plotting function to show Data, Background, and remove background depending on the options provided
  • More to come.

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.