|
import streamlit as st |
|
|
|
|
|
st.title("🩺🔍 Search Results") |
|
|
|
|
|
st.markdown("**Date:** 08 Dec 2023") |
|
st.markdown("**Title:** Machine-learned molecular mechanics force field for the simulation of protein-ligand systems and beyond") |
|
st.markdown("[**Abstract Link**](https://arxiv.org/abs/2307.07085)") |
|
st.markdown("[**PDF Link**](https://arxiv.org/pdf/2307.07085)") |
|
st.write("---") |
|
|
|
|
|
search_data = [ |
|
{"Date": "08 Dec 2023", "Title": "Machine-learned molecular mechanics force field for the simulation of protein-ligand systems and beyond", "Abstract Link": "https://arxiv.org/abs/2307.07085", "PDF Link": "https://arxiv.org/pdf/2307.07085"}, |
|
{"Date": "11 Apr 2023", "Title": "Design, Integration, and Field Evaluation of a Robotic Blossom Thinning System for Tree Fruit Crops", "Abstract Link": "https://arxiv.org/abs/2304.04919", "PDF Link": "https://arxiv.org/pdf/2304.04919"}, |
|
|
|
] |
|
|
|
|
|
st.write("### 📅 Summary of Search Results") |
|
st.table(search_data) |
|
|
|
st.markdown(''' |
|
|
|
|
|
Discovery of Espaloma-0.3 (Hero's Journey) |
|
|
|
Ordinary World: Traditional force fields struggle with flexibility and extensibility. |
|
Call to Adventure: Researchers propose a new approach using graph neural networks. |
|
Refusal of the Call: Skeptics doubt the new method's feasibility without extensive computational resources. |
|
Meeting the Mentor: Collaboration with experts in quantum chemistry and machine learning. |
|
Crossing the Threshold: Initial tests show promising results, validating the concept. |
|
Tests, Allies, and Enemies: The method faces challenges with specific molecular systems but gains support. |
|
Approach to the Inmost Cave: Intensive training on a diverse dataset. |
|
Ordeal: Tackling edge cases and ensuring stability in simulations. |
|
Reward: The model achieves impressive accuracy and robustness. |
|
The Road Back: Publication and refinement for real-world applications. |
|
Resurrection: Acceptance and adoption in the wider scientific community. |
|
Return with the Elixir: A new, powerful tool for drug discovery and molecular simulations. |
|
Robotic Blossom Thinning (Rags to Riches) |
|
|
|
Initial Wholeness: Apple orchards rely heavily on manual labor. |
|
Fall from Grace: Inefficiency and cost concerns rise. |
|
Journey: Researchers develop a robotic solution for blossom thinning. |
|
Personal Resolve: Field tests reveal the robot's potential. |
|
Self-discovery: Optimizing the end-effector's performance. |
|
Major Victory: Significant reduction in labor and cost. |
|
False Defeat: Encountering technical issues during deployment. |
|
Final Victory: Successful large-scale adoption of the robotic system. |
|
Climax: Recognition of the system’s effectiveness and efficiency. |
|
Happily Ever After: Sustainable and cost-effective orchard management. |
|
Graph-Neural-Network Approach for Force Fields (Quest) |
|
|
|
Goals: Develop accurate and extendible force fields for large organic molecules. |
|
Challenges: Accurately modeling complex interactions. |
|
Journey: Combining physics-driven potentials with neural network models. |
|
Teamwork: Collaboration between physicists, chemists, and data scientists. |
|
Trials: Extensive testing on different molecular sizes. |
|
Transformation: The approach proves to be robust and extendible. |
|
Setbacks: Refining the model for diverse chemical domains. |
|
Redemption: Improved predictions for new molecular systems. |
|
Success: Establishing a new standard for force field development. |
|
Homecoming: Adoption in scientific research and industry applications. |
|
''') |
|
|
|
|
|
|
|
|
|
import streamlit as st |
|
|
|
st.title("🩺🔍 Search Results") |
|
|
|
|
|
st.header("Discovery of Espaloma-0.3 (Hero's Journey) 🧙♂️") |
|
st.markdown("1. **Ordinary World:** Traditional force fields struggle with flexibility and extensibility.") |
|
st.markdown("2. **Call to Adventure:** Researchers propose a new approach using graph neural networks.") |
|
|
|
|
|
st.header("Robotic Blossom Thinning (Rags to Riches) 🛠️") |
|
st.markdown("1. **Initial Wholeness:** Apple orchards rely heavily on manual labor.") |
|
|
|
|
|
st.header("Graph-Neural-Network Approach for Force Fields (Quest) 🕵️♂️") |
|
st.markdown("1. **Goals:** Develop accurate and extendible force fields for large organic molecules.") |
|
|
|
|
|
|
|
st.write("### 📅 Summary of Search Results") |
|
|
|
import streamlit as st |
|
import pandas as pd |
|
import plotly.express as px |
|
from datetime import datetime |
|
|
|
|
|
@st.cache_data |
|
def load_data(): |
|
data = [ |
|
{"date": "08 Dec 2023", "title": "Machine-learned molecular mechanics force field for the simulation of protein-ligand systems and beyond", "authors": "Kenichiro Takaba, et al."}, |
|
{"date": "11 Apr 2023", "title": "Design, Integration, and Field Evaluation of a Robotic Blossom Thinning System for Tree Fruit Crops", "authors": "Uddhav Bhattarai, Qin Zhang, Manoj Karkee"}, |
|
{"date": "02 Jun 2021", "title": "An Extendible, Graph-Neural-Network-Based Approach for Accurate Force Field Development of Large Flexible Organic Molecules", "authors": "Xufei Wang, et al."}, |
|
{"date": "20 Jun 2023", "title": "CHGNet: Pretrained universal neural network potential for charge-informed atomistic modeling", "authors": "Bowen Deng, et al."}, |
|
{"date": "18 Apr 2022", "title": "End-to-End Differentiable Molecular Mechanics Force Field Construction", "authors": "Yuanqing Wang, et al."}, |
|
{"date": "30 Oct 2023", "title": "A Planning-and-Exploring Approach to Extreme-Mechanics Force Fields", "authors": "Pengjie Shi, Zhiping Xu"}, |
|
{"date": "15 Sep 2019", "title": "A Genetic Algorithm Enabled Similarity-Based Attack on Cancellable Biometrics", "authors": "Xingbo Dong, et al."}, |
|
{"date": "02 Jun 2021", "title": "Machine-Learning Non-Conservative Dynamics for New-Physics Detection", "authors": "Ziming Liu, et al."}, |
|
{"date": "15 Jun 2021", "title": "Graphical Gaussian Process Regression Model for Aqueous Solvation Free Energy Prediction of Organic Molecules in Redox Flow Battery", "authors": "Peiyuan Gao, et al."}, |
|
{"date": "08 Jun 2021", "title": "BIGDML: Towards Exact Machine Learning Force Fields for Materials", "authors": "Huziel E. Sauceda, et al."}, |
|
{"date": "26 Sep 2022", "title": "Learned Force Fields Are Ready For Ground State Catalyst Discovery", "authors": "Michael Schaarschmidt, et al."}, |
|
{"date": "08 Nov 2023", "title": "General Framework to Evaluate Unlinkability in Biometric Template Protection Systems", "authors": "Marta Gomez-Barrero, et al."}, |
|
{"date": "22 Jan 2023", "title": "Victoria Amazonica Optimization (VAO): An Algorithm Inspired by the Giant Water Lily Plant", "authors": "Seyed Muhammad Hossein Mousavi"}, |
|
{"date": "09 Dec 2019", "title": "Automated Fitting of Neural Network Potentials at Coupled Cluster Accuracy: Protonated Water Clusters as Testing Ground", "authors": "Christoph Schran, et al."}, |
|
{"date": "30 Oct 2022", "title": "Regimes of charged particle dynamics in current sheets: the machine learning approach", "authors": "Alexander Lukin, et al."}, |
|
{"date": "22 Feb 2023", "title": "Controllable Mechanical-domain Energy Accumulators", "authors": "Sung Y. Kim, David J. Braun"}, |
|
{"date": "02 Nov 2023", "title": "Investigating the Behavior of Diffusion Models for Accelerating Electronic Structure Calculations", "authors": "Daniel Rothchild, et al."}, |
|
{"date": "05 Jun 2023", "title": "Machine Learning Force Fields with Data Cost Aware Training", "authors": "Alexander Bukharin, et al."}, |
|
{"date": "23 Jan 2024", "title": "Force sensing to reconstruct potential energy landscapes for cluttered large obstacle traversal", "authors": "Yaqing Wang, et al."}, |
|
{"date": "06 Mar 2024", "title": "Beyond MD17: the reactive xxMD dataset", "authors": "Zihan Pengmei, et al."} |
|
] |
|
df = pd.DataFrame(data) |
|
df['date'] = pd.to_datetime(df['date'], format='%d %b %Y') |
|
return df |
|
|
|
df = load_data() |
|
|
|
|
|
st.title("🧪 Force Field Research Explorer") |
|
|
|
|
|
st.sidebar.header("Filters") |
|
date_range = st.sidebar.date_input("Date Range", [df['date'].min(), df['date'].max()]) |
|
filtered_df = df[(df['date'] >= pd.Timestamp(date_range[0])) & (df['date'] <= pd.Timestamp(date_range[1]))] |
|
|
|
|
|
st.header("Research Papers Timeline") |
|
fig = px.timeline(filtered_df, x_start="date", y="title", color="authors", hover_name="title") |
|
fig.update_yaxes(autorange="reversed") |
|
st.plotly_chart(fig) |
|
|
|
st.header("Paper Details") |
|
selected_paper = st.selectbox("Select a paper", filtered_df['title']) |
|
paper_details = filtered_df[filtered_df['title'] == selected_paper].iloc[0] |
|
st.write(f"**Date:** {paper_details['date'].strftime('%d %b %Y')}") |
|
st.write(f"**Authors:** {paper_details['authors']}") |
|
st.write(f"**Title:** {paper_details['title']}") |
|
|
|
|
|
from wordcloud import WordCloud |
|
import matplotlib.pyplot as plt |
|
|
|
st.header("Title Word Cloud") |
|
text = " ".join(title for title in filtered_df['title']) |
|
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text) |
|
|
|
fig, ax = plt.subplots(figsize=(10, 5)) |
|
ax.imshow(wordcloud, interpolation='bilinear') |
|
ax.axis('off') |
|
st.pyplot(fig) |
|
|
|
|
|
import networkx as nx |
|
|
|
st.header("Author Collaboration Network") |
|
G = nx.Graph() |
|
for _, row in filtered_df.iterrows(): |
|
authors = [author.strip() for author in row['authors'].split(',')] |
|
for i in range(len(authors)): |
|
for j in range(i+1, len(authors)): |
|
if G.has_edge(authors[i], authors[j]): |
|
G[authors[i]][authors[j]]['weight'] += 1 |
|
else: |
|
G.add_edge(authors[i], authors[j], weight=1) |
|
|
|
pos = nx.spring_layout(G) |
|
fig, ax = plt.subplots(figsize=(12, 8)) |
|
nx.draw(G, pos, with_labels=True, node_color='lightblue', |
|
node_size=1000, font_size=8, font_weight='bold') |
|
edge_labels = nx.get_edge_attributes(G, 'weight') |
|
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels) |
|
st.pyplot(fig) |
|
|
|
|
|
from sklearn.feature_extraction.text import CountVectorizer |
|
from sklearn.decomposition import LatentDirichletAllocation |
|
|
|
st.header("Topic Modeling") |
|
vectorizer = CountVectorizer(stop_words='english') |
|
doc_term_matrix = vectorizer.fit_transform(filtered_df['title']) |
|
|
|
LDA = LatentDirichletAllocation(n_components=5, random_state=42) |
|
LDA.fit(doc_term_matrix) |
|
|
|
topics = [] |
|
for idx, topic in enumerate(LDA.components_): |
|
top_words = [vectorizer.get_feature_names_out()[i] for i in topic.argsort()[:-10 - 1:-1]] |
|
topics.append(f"Topic {idx + 1}: {', '.join(top_words)}") |
|
|
|
for topic in topics: |
|
st.write(topic) |
|
|
|
st.header("Research Trends") |
|
year_counts = filtered_df.groupby(filtered_df['date'].dt.year).size().reset_index(name='count') |
|
fig = px.line(year_counts, x='date', y='count', title='Number of Papers per Year') |
|
st.plotly_chart(fig) |
|
|
|
|
|
st.markdown("---") |
|
st.write("Data last updated: March 2024") |
|
|
|
|