# import streamlit as st # import pandas as pd # import joblib # from sklearn.ensemble import RandomForestClassifier # import matplotlib.pyplot as plt # import seaborn as sns # # Load the trained model (ensure the model file is in the same directory) # model = joblib.load('model.pkl') # # Function to process new peptide sequences # def process_peptide_sequences(peptides): # # Example processing function, replace with actual preprocessing steps # compositions = [] # for peptide in peptides: # composition = {aa: peptide.count(aa) for aa in 'ACDEFGHIKLMNPQRSTVWY'} # compositions.append(composition) # return pd.DataFrame(compositions) # # Streamlit app # st.title("ABPep-C") # st.write("Classify peptide sequences as active or inactive against biofilm") # # Input: Peptide sequences # peptide_input = st.text_area("Enter peptide sequences (one per line)") # peptides = peptide_input.split('\n') # if st.button("Classify"): # if peptides: # # Process the input peptides # peptide_df = process_peptide_sequences(peptides) # # Predict using the trained model # predictions = model.predict(peptide_df) # results = pd.DataFrame({ # 'Peptide': peptides, # 'Prediction': predictions # }) # results['Prediction'] = results['Prediction'].map({0: 'Inactive', 1: 'Active'}) # # Display the results # st.write("Classification Results") # st.write(results) # # Display interactive graphs # st.write("Prediction Distribution") # fig, ax = plt.subplots() # sns.countplot(x='Prediction', data=results, ax=ax) # st.pyplot(fig) # st.write("Amino Acid Composition of Peptides") # amino_acid_counts = peptide_df.sum().reset_index() # amino_acid_counts.columns = ['Amino Acid', 'Count'] # fig, ax = plt.subplots() # sns.barplot(x='Amino Acid', y='Count', data=amino_acid_counts, ax=ax) # st.pyplot(fig) # else: # st.write("Please enter peptide sequences.") # # Save this script as app.py and run it using: streamlit run app. ####################################################################################################################################### # import streamlit as st # import pandas as pd # import joblib # from sklearn.ensemble import RandomForestClassifier # import matplotlib.pyplot as plt # import seaborn as sns # # Load the trained model (ensure the model file is in the same directory) # model = joblib.load('model.pkl') # # Function to process new peptide sequences # def process_peptide_sequences(peptides): # # Example processing function, replace with actual preprocessing steps # compositions = [] # for peptide in peptides: # composition = {aa: peptide.count(aa) for aa in 'ACDEFGHIKLMNPQRSTVWY'} # compositions.append(composition) # return pd.DataFrame(compositions) # # Custom CSS for font size and color # st.markdown(""" # # """, unsafe_allow_html=True) # # Streamlit app # st.markdown('

Ab-PepC

', unsafe_allow_html=True) # st.markdown('

Classify peptide sequences as active or inactive against biofilm

', unsafe_allow_html=True) # # Input: Peptide sequences # peptide_input = st.text_area("Enter peptide sequences (one per line)") # peptides = peptide_input.split('\n') # if st.button("Classify"): # if peptides: # # Process the input peptides # peptide_df = process_peptide_sequences(peptides) # # Predict using the trained model # predictions = model.predict(peptide_df) # results = pd.DataFrame({ # 'Peptide': peptides, # 'Prediction': predictions # }) # results['Prediction'] = results['Prediction'].map({0: 'Inactive', 1: 'Active'}) # # Display the results # st.markdown('

Classification Results

', unsafe_allow_html=True) # st.dataframe(results) # # Display interactive graphs # st.markdown('

Prediction Distribution

', unsafe_allow_html=True) # fig, ax = plt.subplots() # sns.countplot(x='Prediction', data=results, ax=ax) # ax.set_xlabel('Prediction', fontsize=18) # ax.set_ylabel('Count', fontsize=18) # st.pyplot(fig) # st.markdown('

Amino Acid Composition of Peptides

', unsafe_allow_html=True) # amino_acid_counts = peptide_df.sum().reset_index() # amino_acid_counts.columns = ['Amino Acid', 'Count'] # fig, ax = plt.subplots() # sns.barplot(x='Amino Acid', y='Count', data=amino_acid_counts, ax=ax) # ax.set_xlabel('Amino Acid', fontsize=18) # ax.set_ylabel('Count', fontsize=18) # st.pyplot(fig) # else: # st.write("Please enter peptide sequences.") ####################################################################################################################################### import streamlit as st import pandas as pd import joblib from sklearn.ensemble import RandomForestClassifier import matplotlib.pyplot as plt import seaborn as sns # Load the trained model (ensure the model file is in the same directory) model = joblib.load('model.pkl') # Function to process new peptide sequences def process_peptide_sequences(peptides): # Example processing function, replace with actual preprocessing steps compositions = [] for peptide in peptides: composition = {aa: peptide.count(aa) for aa in 'ACDEFGHIKLMNPQRSTVWY'} compositions.append(composition) return pd.DataFrame(compositions) # Custom CSS for font size and color st.markdown(""" """, unsafe_allow_html=True) # Streamlit app col1, col2 = st.columns([1, 4]) # Adjust the width ratio as needed col1.image('Ab-PepC_logo.png', width=150) # Add your logo file path here with col2: st.markdown('

ABPep-C

', unsafe_allow_html=True) st.markdown('

Classify peptide sequences as active or inactive against biofilm

', unsafe_allow_html=True) # Input: Peptide sequences peptide_input = st.text_area("Enter peptide sequences (one per line)") peptides = peptide_input.split('\n') if st.button("Classify"): if peptides: # Process the input peptides peptide_df = process_peptide_sequences(peptides) # Predict using the trained model predictions = model.predict(peptide_df) results = pd.DataFrame({ 'Peptide': peptides, 'Prediction': predictions }) results['Prediction'] = results['Prediction'].map({0: 'Inactive', 1: 'Active'}) # Display the results st.markdown('

Classification Results

', unsafe_allow_html=True) st.dataframe(results) # Display interactive graphs st.markdown('

Prediction Distribution

', unsafe_allow_html=True) fig, ax = plt.subplots() sns.countplot(x='Prediction', data=results, ax=ax) ax.set_xlabel('Prediction', fontsize=18) ax.set_ylabel('Count', fontsize=18) st.pyplot(fig) st.markdown('

Amino Acid Composition of Peptides

', unsafe_allow_html=True) amino_acid_counts = peptide_df.sum().reset_index() amino_acid_counts.columns = ['Amino Acid', 'Count'] fig, ax = plt.subplots() sns.barplot(x='Amino Acid', y='Count', data=amino_acid_counts, ax=ax) ax.set_xlabel('Amino Acid', fontsize=18) ax.set_ylabel('Count', fontsize=18) st.pyplot(fig) else: st.write("Please enter peptide sequences.")