Skip to content

Commit df0a7e1

Browse files
committed
Merge local changes: add web interface and algorithm updates
2 parents 7455a36 + 98e9434 commit df0a7e1

10 files changed

Lines changed: 1367 additions & 91 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,4 @@ PROBEst.Rproj
7474
.Rproj.user
7575
.Rhistory
7676
articles.tar.bz2
77+
data/databases/articles/artificial_database_structure

app/.gitignore

Whitespace-only changes.

app/README.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# PROBESt Web Application
2+
3+
A web-based interface for the PROBESt probe generation and optimization tool.
4+
5+
## Features
6+
7+
- **User-friendly web interface** for all PROBESt parameters
8+
- **File upload** for input FASTA, BLAST databases, and contig tables
9+
- **Real-time processing** with progress indicators
10+
- **Results visualization** showing top 5 best probes
11+
- **Download results** as a ZIP file containing all output files
12+
13+
## Installation
14+
15+
1. Install Flask and required dependencies:
16+
```bash
17+
pip install flask werkzeug
18+
```
19+
20+
2. Ensure all PROBESt dependencies are installed (see main README.md)
21+
22+
3. Make sure `primer3_core` and `blastn` are available in your PATH
23+
24+
## Running the Application
25+
26+
From the project root directory:
27+
28+
```bash
29+
cd app
30+
python app.py
31+
```
32+
33+
The application will be available at `http://localhost:5000`
34+
35+
## Usage
36+
37+
### Required Inputs
38+
39+
1. **Input FASTA File**: Input FASTA file for probe generation (.fna recommended)
40+
- Can be a single FASTA file (.fa, .fasta, .fna) or an archive (.zip, .tar.gz) containing FASTA files
41+
42+
2. **True Base Archive**: Archive containing FASTA files for primer adjustment
43+
- Must be a .zip or .tar.gz archive
44+
- Archive should contain one or more FASTA files (.fa, .fasta, .fna, optionally gzipped)
45+
- The archive will be automatically preprocessed using `prep_db.sh` to create a BLAST database
46+
47+
3. **False Base Archive(s)**: Archive(s) containing FASTA files for non-specific testing
48+
- Must be .zip or .tar.gz archives
49+
- Can upload multiple archives
50+
- Each archive will be automatically preprocessed using `prep_db.sh` to create BLAST databases
51+
52+
**Note**: The contig table is automatically generated from the true base archive during preprocessing.
53+
54+
### Optional Parameters
55+
56+
The web interface provides access to all optional parameters:
57+
58+
- **Basic Parameters**: Threads, Algorithm type
59+
- **Evolutionary Algorithm**: Iterations, mutation rates, set sizes
60+
- **Primer3 Parameters**: Primer size ranges, product size
61+
- **BLAST Parameters**: Word size, scoring parameters
62+
- **Probe Check Parameters**: Mismatch thresholds, identity requirements
63+
64+
### Results
65+
66+
After processing:
67+
68+
1. **Top 5 Probes** are displayed on screen with:
69+
- Probe name
70+
- Hit count (number of matches)
71+
- Sequence length
72+
- Full sequence
73+
74+
2. **Download Results** button provides a ZIP file containing:
75+
- `output.fa`: Final probe sequences
76+
- `stats.csv`: Iteration statistics
77+
- All intermediate files from the pipeline
78+
79+
## File Structure
80+
81+
```
82+
app/
83+
├── app.py # Flask application
84+
├── templates/
85+
│ └── index.html # Main web interface
86+
├── static/
87+
│ ├── style.css # Styling
88+
│ └── script.js # Client-side JavaScript
89+
├── uploads/ # Temporary file uploads (created automatically)
90+
└── results/ # Processing results (created automatically)
91+
```
92+
93+
## Notes
94+
95+
- Uploaded files are stored temporarily and cleaned up after processing
96+
- Processing may take several minutes depending on input size and parameters
97+
- The application uses session-based file management for security
98+
99+

0 commit comments

Comments
 (0)