automate_prediction.py
: The main Python script that automates the AlphaFold process.
- Example Input File:
- Include a sample Excel file (e.g.,
example_input.xlsx
) with properly formatted columns (variant
,fasta_sequence
).
- Include a sample Excel file (e.g.,
- Output Directory Structure:
ProteinPrediction/Output
folder in the repository to show where outputs will be saved.
- A file listing all the Python dependencies required for the project.
Example content:selenium pandas gemmi webdriver-manager
README.md
# Protein Prediction Automation
This project is a web-based application that automates the process of protein structure prediction using AlphaFold 3.
It allows users to upload their protein datasets, enter their credentials, and track the automation process step-by-step through a streamlined frontend interface.
## Features
- Automated Protein Prediction: Uses AlphaFold 3 to predict protein structures from input sequences.
- Real-Time Status Updates: Users can see step-by-step feedback on the automation process.
- Simple Frontend Interface: A user-friendly React interface for easy data submission and status tracking.
- Secure Data Handling: Credentials are securely managed without persistent storage.
## Technologies Used
- Frontend: React, HTML, CSS
- Backend: Django, Django REST framework
- Automation: Selenium, Python
- Other Libraries: Pandas for data processing, Gemmi for CIF to PDB conversion
## Project Structure
```plaintext
ProteinPrediction/
├── ProteinPrediction/
│ ├── settings.py
│ ├── urls.py # Main URL configuration
│ └── wsgi.py
├── automation/
│ ├── views.py # Django view handling data submission
│ ├── urls.py # URL routing for automation app
│ ├── automation_script.py # Python script for Selenium automation
│ └── templates/
│ └── automation/
└── frontend/
├── src/
│ ├── App.js # Main React component
│ ├── components/
│ │ └── ProteinPredictionForm.js
│ └── assets/
│ └── logo.png # Project logo
└── public/
-
Clone the repository:
git clone https://github.com/combilab-furg/AutoFold.git cd protein-prediction-automation
-
Set up a virtual environment:
python3 -m venv env source env/bin/activate
-
Install dependencies:
pip install django djangorestframework selenium pandas gemmi openpyxl webdriver_manager
-
Run migrations:
python manage.py migrate
-
Start the Django server:
python manage.py runserver
- Navigate to the frontend folder:
cd Downloads/AutoFold-main/protein-prediction-frontend
Ensure you have a supported version of Node.js. You can use nvm (Node Version Manager) to install and manage Node.js.
Install Node.js Using nvm bash Copy code
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc
nvm install 18
nvm use 18
node -v
-
Install dependencies:
npm install
-
Start the React development server:
npm start
-
Outdated Node.js Version If you see warnings or errors about unsupported engine versions during npm install, ensure that your Node.js version is >= 16.x. Use nvm to upgrade Node.js.
-
Dependency Vulnerabilities After installation, you may see vulnerabilities in dependencies. Fix them with:
Copy code
npm audit fix
npm audit fix --force
- Clearing Dependencies If you encounter any issues, clear the node_modules directory and reinstall dependencies:
Copy code
rm -rf node_modules package-lock.json
npm install
Recommended Software Versions
Node.js: v18.x (Tested and working)
npm: v8.x
Start the React development server:
npm start
## Usage
1. Open the React app in your browser at `http://localhost:3000`.
2. Enter your email, password, and upload the `proteins.xlsx` file.
3. Click **Submit** to start the automation process.
4. Track the progress through real-time status updates on the frontend.
## Project Notes
- Ensure `chromedriver` is correctly installed as it’s used by Selenium for automation.
- The project is configured for local development. Make sure the backend and frontend are running on compatible local ports.
## License
This project is licensed under the MIT License.