Sequence Properties Web Application [demo] [project website]
This project is a web application that allows users to input a peptide sequence and retrieve various properties of the sequence, including its antimicrobial potential, anti-inflammatory potential, and metal-binding potential.
- User-friendly web interface for entering peptide sequences
- Calculation of antimicrobial potential using the DVeltri ASCAN tool
- Prediction of anti-inflammatory potential using the PreAIP tool
- Estimation of metal-binding potential using the MeBIPred tool
- Real-time display of sequence properties on the web page
- Loading animation while processing the sequence
- Front-end: HTML, CSS, JavaScript
- Back-end: Node.js, AWS Lambda, Puppeteer
- Infrastructure: AWS CDK (Cloud Development Kit)
- Containerization: Docker
- Clone the repository:
git clone https://github.com/kendreaditya/lambda-peptide-tool.git
- Install the required dependencies:
cd sequence-properties
npm install
- Build the project:
npm run build
- Deploy the application to AWS using the CDK:
cdk deploy
- Open the web application in your browser using the provided URL.
- Enter a peptide sequence in the input field.
- Click the "Get Sequence Properties" button.
- Wait for the processing to complete (this may take around a minute).
- The sequence properties will be displayed on the page.
sequence-properties/
├── lib/
│ └── docker-lambda-aws-stack.ts # AWS CDK stack definition
├── src/
│ ├── app.js # Back-end Lambda function code
│ └── index.html # Front-end HTML, CSS, and JavaScript
├── Dockerfile # Docker configuration for Lambda function
├── docker-lambda-aws.ts # AWS CDK app entry point
├── package.json # Project dependencies
└── README.md # This file
The src/app.js
file contains the back-end logic for fetching sequence properties from various bioinformatics tools using Puppeteer. The src/index.html
file contains the front-end HTML, CSS, and JavaScript code for the web interface.
The AWS CDK is used to define the infrastructure resources (e.g., Lambda function, API Gateway) and deploy the application to AWS. The Docker container is used to package the Node.js Lambda function with its dependencies.
The back-end Lambda function uses the Puppeteer library to automate web browsing and scrape data from the following websites:
-
DVeltri ASCAN: https://www.dveltri.com/ascan/v2/ascan.html
- This website is used to calculate the antimicrobial potential of the input peptide sequence.
-
PreAIP: http://kurata14.bio.kyutech.ac.jp/PreAIP/
- This website is used to predict the anti-inflammatory potential of the input peptide sequence.
-
MeBIPred: https://services.bromberglab.org/mebipred/home
- This website is used to estimate the metal-binding potential of the input peptide sequence for various metals.
The app.js
file contains separate functions for scraping each of these websites. The functions automate the process of navigating to the website, entering the peptide sequence, submitting the form, and extracting the desired results from the page.