Spaces:
Running
Running
Update index.html
Browse files- index.html +140 -2
index.html
CHANGED
|
@@ -137,6 +137,15 @@
|
|
| 137 |
background-color: var(--analyze-button-hover-bg);
|
| 138 |
}
|
| 139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 140 |
|
| 141 |
.character-count {
|
| 142 |
text-align: right;
|
|
@@ -615,6 +624,85 @@
|
|
| 615 |
border: 2px solid var(--secondary-color);
|
| 616 |
flex-shrink: 0;
|
| 617 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 618 |
</style>
|
| 619 |
|
| 620 |
</head>
|
|
@@ -692,6 +780,7 @@
|
|
| 692 |
<div class="button-group">
|
| 693 |
<button id="clear-btn">Clear Input</button> <!-- NO onclick attribute here -->
|
| 694 |
<button id="predict-btn">Submit</button> <!-- NO onclick attribute here -->
|
|
|
|
| 695 |
</div>
|
| 696 |
</div>
|
| 697 |
|
|
@@ -858,7 +947,7 @@
|
|
| 858 |
<li><strong>Interpretation:</b> The model considers polarity, likely in balance with hydrophobicity. An optimal AMP efficacy is often linked to having both hydrophobic and polar residues to facilitate membrane interaction and solubility.</li>
|
| 859 |
</ul>
|
| 860 |
</li>
|
| 861 |
-
<li><strong>Solvent Accessibility (SolventAccessibilityD3001):</
|
| 862 |
<ul>
|
| 863 |
<li><strong>Description:</b> Reflects how exposed the residues are to the solvent (water).</li>
|
| 864 |
<li><strong>Interpretation:</b> Solvent-accessible residues positively contribute to AMP prediction. This might indicate that exposed residues facilitate interaction with bacterial membranes or the surrounding environment.</li>
|
|
@@ -886,7 +975,7 @@
|
|
| 886 |
<li><strong>Interpretation:<b> Higher values of hydrophobicity autocorrelation are positively associated with AMP prediction. This likely reflects the importance of hydrophobic clustering in forming amphipathic structures, such as α-helices, which are common and effective in AMPs.</b></b></li>
|
| 887 |
</ul>
|
| 888 |
</li>
|
| 889 |
-
<li><strong>GearyAuto_Steric30 & GearyAuto_Steric29:</
|
| 890 |
<ul>
|
| 891 |
<li><strong>Description:</b> Reflect peptide backbone flexibility and steric properties at spatial lags of 30 and 29.</li>
|
| 892 |
<li><strong>Interpretation:</b> These features have a positive SHAP impact, suggesting that a certain degree of peptide backbone flexibility may be beneficial for AMP action. Flexibility could enhance the peptide's ability to interact with and adapt to diverse bacterial membrane structures.</li>
|
|
@@ -983,6 +1072,19 @@
|
|
| 983 |
</div>
|
| 984 |
</div>
|
| 985 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 986 |
<footer>
|
| 987 |
<p>© 2025, Bioinformatics and Computational biology Unit, BCBU</p>
|
| 988 |
<address>
|
|
@@ -1019,6 +1121,13 @@
|
|
| 1019 |
const emailErrorDiv = document.getElementById('email-error');
|
| 1020 |
const emailStatusDiv = document.getElementById('email-status');
|
| 1021 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1022 |
let clientInstancePrediction; // Only prediction client will be connected
|
| 1023 |
let clientInstanceEmail = null; // Email client will NOT be connected (explicitly null)
|
| 1024 |
let debounceTimer;
|
|
@@ -1101,6 +1210,35 @@
|
|
| 1101 |
if (clearBtn) clearBtn.addEventListener('click', clearInput);
|
| 1102 |
if (predictBtn) predictBtn.addEventListener('click', classifySequenceDebounced);
|
| 1103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1104 |
|
| 1105 |
clearInput();
|
| 1106 |
};
|
|
|
|
| 137 |
background-color: var(--analyze-button-hover-bg);
|
| 138 |
}
|
| 139 |
|
| 140 |
+
#show-demo-btn { /* New style for demo button */
|
| 141 |
+
background-color: var(--info-color); /* Blue */
|
| 142 |
+
margin-left: 0.2rem; /* Consistent spacing */
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
#show-demo-btn:hover {
|
| 146 |
+
background-color: #1976d2; /* Darker Blue */
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
|
| 150 |
.character-count {
|
| 151 |
text-align: right;
|
|
|
|
| 624 |
border: 2px solid var(--secondary-color);
|
| 625 |
flex-shrink: 0;
|
| 626 |
}
|
| 627 |
+
|
| 628 |
+
/* Modal for Demo Video */
|
| 629 |
+
.modal-overlay {
|
| 630 |
+
position: fixed;
|
| 631 |
+
top: 0;
|
| 632 |
+
left: 0;
|
| 633 |
+
width: 100%;
|
| 634 |
+
height: 100%;
|
| 635 |
+
background-color: rgba(0, 0, 0, 0.7);
|
| 636 |
+
display: flex;
|
| 637 |
+
justify-content: center;
|
| 638 |
+
align-items: center;
|
| 639 |
+
z-index: 1000;
|
| 640 |
+
visibility: hidden; /* Use visibility and opacity for smooth transitions */
|
| 641 |
+
opacity: 0;
|
| 642 |
+
transition: visibility 0s, opacity 0.3s ease;
|
| 643 |
+
}
|
| 644 |
+
|
| 645 |
+
.modal-overlay.active {
|
| 646 |
+
visibility: visible;
|
| 647 |
+
opacity: 1;
|
| 648 |
+
}
|
| 649 |
+
|
| 650 |
+
.modal-content {
|
| 651 |
+
background-color: var(--container-bg-color);
|
| 652 |
+
padding: 20px;
|
| 653 |
+
border-radius: 10px;
|
| 654 |
+
position: relative;
|
| 655 |
+
max-width: 90%;
|
| 656 |
+
max-height: 90%;
|
| 657 |
+
overflow: auto;
|
| 658 |
+
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
|
| 659 |
+
display: flex;
|
| 660 |
+
flex-direction: column;
|
| 661 |
+
align-items: center;
|
| 662 |
+
}
|
| 663 |
+
|
| 664 |
+
.dark-mode .modal-content {
|
| 665 |
+
background-color: var(--container-bg-color);
|
| 666 |
+
}
|
| 667 |
+
|
| 668 |
+
.modal-close-btn {
|
| 669 |
+
position: absolute;
|
| 670 |
+
top: 10px;
|
| 671 |
+
right: 15px;
|
| 672 |
+
font-size: 28px;
|
| 673 |
+
cursor: pointer;
|
| 674 |
+
color: var(--text-color);
|
| 675 |
+
transition: color 0.2s ease;
|
| 676 |
+
}
|
| 677 |
+
|
| 678 |
+
.modal-close-btn:hover {
|
| 679 |
+
color: var(--clear-button-bg);
|
| 680 |
+
}
|
| 681 |
+
|
| 682 |
+
#demo-video {
|
| 683 |
+
width: 100%;
|
| 684 |
+
max-width: 700px; /* Limit video size for better presentation */
|
| 685 |
+
height: auto;
|
| 686 |
+
margin-top: 15px;
|
| 687 |
+
border-radius: 8px;
|
| 688 |
+
}
|
| 689 |
+
|
| 690 |
+
.modal-content h3 {
|
| 691 |
+
color: var(--primary-color);
|
| 692 |
+
margin-top: 0;
|
| 693 |
+
margin-bottom: 10px;
|
| 694 |
+
}
|
| 695 |
+
|
| 696 |
+
@media (max-width: 768px) {
|
| 697 |
+
.modal-content {
|
| 698 |
+
padding: 15px;
|
| 699 |
+
}
|
| 700 |
+
.modal-close-btn {
|
| 701 |
+
font-size: 24px;
|
| 702 |
+
top: 5px;
|
| 703 |
+
right: 10px;
|
| 704 |
+
}
|
| 705 |
+
}
|
| 706 |
</style>
|
| 707 |
|
| 708 |
</head>
|
|
|
|
| 780 |
<div class="button-group">
|
| 781 |
<button id="clear-btn">Clear Input</button> <!-- NO onclick attribute here -->
|
| 782 |
<button id="predict-btn">Submit</button> <!-- NO onclick attribute here -->
|
| 783 |
+
<button id="show-demo-btn"><i class="fas fa-video"></i> Show Demo</button> <!-- NEW DEMO BUTTON -->
|
| 784 |
</div>
|
| 785 |
</div>
|
| 786 |
|
|
|
|
| 947 |
<li><strong>Interpretation:</b> The model considers polarity, likely in balance with hydrophobicity. An optimal AMP efficacy is often linked to having both hydrophobic and polar residues to facilitate membrane interaction and solubility.</li>
|
| 948 |
</ul>
|
| 949 |
</li>
|
| 950 |
+
<li><strong>Solvent Accessibility (SolventAccessibilityD3001):</b>
|
| 951 |
<ul>
|
| 952 |
<li><strong>Description:</b> Reflects how exposed the residues are to the solvent (water).</li>
|
| 953 |
<li><strong>Interpretation:</b> Solvent-accessible residues positively contribute to AMP prediction. This might indicate that exposed residues facilitate interaction with bacterial membranes or the surrounding environment.</li>
|
|
|
|
| 975 |
<li><strong>Interpretation:<b> Higher values of hydrophobicity autocorrelation are positively associated with AMP prediction. This likely reflects the importance of hydrophobic clustering in forming amphipathic structures, such as α-helices, which are common and effective in AMPs.</b></b></li>
|
| 976 |
</ul>
|
| 977 |
</li>
|
| 978 |
+
<li><strong>GearyAuto_Steric30 & GearyAuto_Steric29:</b>
|
| 979 |
<ul>
|
| 980 |
<li><strong>Description:</b> Reflect peptide backbone flexibility and steric properties at spatial lags of 30 and 29.</li>
|
| 981 |
<li><strong>Interpretation:</b> These features have a positive SHAP impact, suggesting that a certain degree of peptide backbone flexibility may be beneficial for AMP action. Flexibility could enhance the peptide's ability to interact with and adapt to diverse bacterial membrane structures.</li>
|
|
|
|
| 1072 |
</div>
|
| 1073 |
</div>
|
| 1074 |
|
| 1075 |
+
<!-- NEW DEMO VIDEO MODAL -->
|
| 1076 |
+
<div id="demo-modal" class="modal-overlay">
|
| 1077 |
+
<div class="modal-content">
|
| 1078 |
+
<span class="modal-close-btn">×</span>
|
| 1079 |
+
<h3>EPIC-AMP Demo</h3>
|
| 1080 |
+
<video id="demo-video" controls autoplay loop muted>
|
| 1081 |
+
<source src="demo.mp4" type="video/mp4">
|
| 1082 |
+
Your browser does not support the video tag.
|
| 1083 |
+
</video>
|
| 1084 |
+
</div>
|
| 1085 |
+
</div>
|
| 1086 |
+
<!-- END NEW DEMO VIDEO MODAL -->
|
| 1087 |
+
|
| 1088 |
<footer>
|
| 1089 |
<p>© 2025, Bioinformatics and Computational biology Unit, BCBU</p>
|
| 1090 |
<address>
|
|
|
|
| 1121 |
const emailErrorDiv = document.getElementById('email-error');
|
| 1122 |
const emailStatusDiv = document.getElementById('email-status');
|
| 1123 |
|
| 1124 |
+
// NEW DEMO VIDEO ELEMENTS
|
| 1125 |
+
const showDemoBtn = document.getElementById('show-demo-btn');
|
| 1126 |
+
const demoModal = document.getElementById('demo-modal');
|
| 1127 |
+
const modalCloseBtn = document.getElementById('modal-close-btn');
|
| 1128 |
+
const demoVideo = document.getElementById('demo-video');
|
| 1129 |
+
|
| 1130 |
+
|
| 1131 |
let clientInstancePrediction; // Only prediction client will be connected
|
| 1132 |
let clientInstanceEmail = null; // Email client will NOT be connected (explicitly null)
|
| 1133 |
let debounceTimer;
|
|
|
|
| 1210 |
if (clearBtn) clearBtn.addEventListener('click', clearInput);
|
| 1211 |
if (predictBtn) predictBtn.addEventListener('click', classifySequenceDebounced);
|
| 1212 |
|
| 1213 |
+
// NEW: Attach event listeners for demo video
|
| 1214 |
+
if (showDemoBtn) {
|
| 1215 |
+
showDemoBtn.addEventListener('click', () => {
|
| 1216 |
+
if (demoModal) demoModal.classList.add('active');
|
| 1217 |
+
if (demoVideo) demoVideo.play();
|
| 1218 |
+
});
|
| 1219 |
+
}
|
| 1220 |
+
if (modalCloseBtn) {
|
| 1221 |
+
modalCloseBtn.addEventListener('click', () => {
|
| 1222 |
+
if (demoModal) demoModal.classList.remove('active');
|
| 1223 |
+
if (demoVideo) {
|
| 1224 |
+
demoVideo.pause();
|
| 1225 |
+
demoVideo.currentTime = 0; // Reset video to start
|
| 1226 |
+
}
|
| 1227 |
+
});
|
| 1228 |
+
}
|
| 1229 |
+
// Close modal if clicking outside the content
|
| 1230 |
+
if (demoModal) {
|
| 1231 |
+
demoModal.addEventListener('click', (e) => {
|
| 1232 |
+
if (e.target === demoModal) {
|
| 1233 |
+
if (demoModal) demoModal.classList.remove('active');
|
| 1234 |
+
if (demoVideo) {
|
| 1235 |
+
demoVideo.pause();
|
| 1236 |
+
demoVideo.currentTime = 0;
|
| 1237 |
+
}
|
| 1238 |
+
}
|
| 1239 |
+
});
|
| 1240 |
+
}
|
| 1241 |
+
|
| 1242 |
|
| 1243 |
clearInput();
|
| 1244 |
};
|