Amino Acid Sequence to Hydrophobicity Score

Amino Acid Sequence to Hydrophobicity Score

Enter an amino acid sequence to calculate its hydrophobicity score using the Kyte-Doolittle scale.

Average Hydrophobicity Score: ${averageScore.toFixed(2)}

Residue Scores (Kyte-Doolittle Scale):

${residueDetails} `; resultSection.innerHTML = resultText; resultSection.style.display = 'block'; pdfButton.disabled = false; }; const downloadPDF = () => { if (!currentResults.sequence || !resultSection.innerText) { errorMessage.textContent = 'No results available to download.'; errorMessage.style.display = 'block'; return; } try { const { jsPDF } = window.jspdf; if (!jsPDF) { console.error('jsPDF is not loaded.'); errorMessage.textContent = 'PDF generation failed. Please try again.'; errorMessage.style.display = 'block'; return; } const doc = new jsPDF(); doc.setFont('helvetica', 'bold'); doc.setFontSize(16); doc.text('Amino Acid Sequence to Hydrophobicity Score', 20, 20); doc.setLineWidth(0.5); doc.line(20, 25, 190, 25); doc.setFont('helvetica', 'normal'); doc.setFontSize(12); doc.text(`Input Sequence: ${currentResults.sequence}`, 20, 40); doc.text(`Sequence Length: ${currentResults.sequence.length}`, 20, 50); doc.text(`Average Hydrophobicity Score: ${currentResults.hydrophobicityScore.toFixed(2)}`, 20, 60); doc.text('Residue Scores (Kyte-Doolittle Scale):', 20, 70); let y = 80; currentResults.residueScores.forEach(item => { doc.text(`Residue ${item.residue}: ${item.score.toFixed(1)}`, 20, y); y += 10; }); doc.setDrawColor(200); doc.rect(15, 35, 180, y - 40); doc.save('hydrophobicity_score.pdf'); } catch (error) { console.error('PDF generation error:', error); errorMessage.textContent = 'Failed to generate PDF. Please try again.'; errorMessage.style.display = 'block'; } }; const resetForm = () => { converterForm.reset(); resultSection.innerHTML = ''; resultSection.style.display = 'none'; errorMessage.style.display = 'none'; pdfButton.disabled = true; currentResults = { sequence: '', hydrophobicityScore: 0, residueScores: [] }; sequenceInput.focus(); }; convertButton.addEventListener('click', calculateHydrophobicity); resetButton.addEventListener('click', resetForm); pdfButton.addEventListener('click', downloadPDF); converterForm.addEventListener('submit', (e) => { e.preventDefault(); calculateHydrophobicity(); }); }); })();
Scroll to Top