blastdbbuilder-gui 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,293 @@
1
+ Metadata-Version: 2.4
2
+ Name: blastdbbuilder-gui
3
+ Version: 1.0.0
4
+ Summary: GUI for blastdbbuilder
5
+ Author: M. Asaduzzaman Prodhan
6
+ License: GPL-3.0
7
+ Project-URL: Homepage, https://github.com/asadprodhan/blastdbbuilder
8
+ Requires-Python: >=3.9
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: blastdbbuilder
11
+ Requires-Dist: customtkinter
12
+
13
+ <h1 align="center">blastdbbuilder GUI: Building a Customised BLASTn Database</h1>
14
+
15
+ <h3 align="center">M. Asaduzzaman Prodhan<sup>*</sup> </h3>
16
+
17
+ <div align="center"><b> DPIRD Diagnostics and Laboratory Services </b></div>
18
+
19
+ <div align="center"><b> Department of Primary Industries and Regional Development </b></div>
20
+
21
+ <div align="center"><b> 31 Cedric St, Stirling WA 6021, Australia </b></div>
22
+
23
+ <div align="center"><b> *Correspondence: asad.prodhan@dpird.wa.gov.au; prodhan82@gmail.com </b></div>
24
+
25
+ <br />
26
+
27
+ <p align="center">
28
+ <a href="https://github.com/asadprodhan/blastdbbuilder/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-GPL%203.0-yellow.svg" alt="License GPL 3.0" style="display: inline-block;"></a>
29
+ <a href="https://orcid.org/0000-0002-1320-3486"><img src="https://img.shields.io/badge/ORCID-green?style=flat-square&logo=ORCID&logoColor=white" alt="ORCID" style="display: inline-block;"></a>
30
+ <a href="https://doi.org/10.5281/zenodo.17394137"><img src="https://img.shields.io/badge/DOI-10.5281%2Fzenodo.17394137-blue?style=flat-square&logo=Zenodo&logoColor=white" alt="DOI: 10.5281/zenodo.17394137" style="display: inline-block;"></a>
31
+ </p>
32
+
33
+ ---
34
+
35
+ ## **Content**
36
+
37
+ - [Introduction](#introduction)
38
+ - [blastdbbuilder GUI](#blastdbbuilder-gui)
39
+ - [Features](#features)
40
+ - [Pre-requisite](#pre-requisite)
41
+ - [Installation](#installation)
42
+ - [Using the GUI](#using-the-gui)
43
+ - [Working directory](#working-directory-very-important)
44
+ - [Selecting a directory](#selecting-a-directory-important-note)
45
+ - [Genome group selection](#genome-group-selection)
46
+ - [Action selection](#action-selection)
47
+ - [Buttons and their meaning](#buttons-and-their-meaning)
48
+ - [Running a job](#running-a-job)
49
+ - [Checking progress later](#checking-progress-later)
50
+ - [Stopping a job](#stopping-a-job)
51
+ - [Citation](#citation)
52
+ - [Support](#support)
53
+ ---
54
+
55
+ ## **Introduction**
56
+
57
+ A BLASTn database provides the essential reference framework for comparing query sequences, forming the backbone of any sequence-based analysis. Accurate results—whether in diagnostics, biosecurity surveillance, microbial studies, evolutionary research, environmental surveys, or functional genomics—depend on a high-quality, well-curated database; without it, even the most sophisticated tools can yield ambiguous outcomes.
58
+
59
+ Public databases are comprehensive but rapidly expanding, often containing redundant, low-quality or irrelevant entries. This leads to slower searches and reduced search resolution.
60
+
61
+ In contrast, a custom database is like a well-organised library where every book is precisely indexed—smaller in volume, faster to search, and more focused in results.
62
+
63
+ To simplify this process for end users, **blastdbbuilder GUI** provides a graphical interface to the proven `blastdbbuilder` backend, allowing fully reproducible database construction without requiring command-line interaction.
64
+
65
+ ---
66
+
67
+ ## **blastdbbuilder GUI**
68
+
69
+ `blastdbbuilder GUI` is a Linux graphical front-end for the `blastdbbuilder` command-line toolkit.
70
+
71
+ It enables users to:
72
+
73
+ - download public reference genomes
74
+ - concatenate genome FASTA files
75
+ - build customised BLASTn databases
76
+
77
+ using an interactive graphical interface.
78
+
79
+ The GUI is specifically designed for:
80
+
81
+ - long-running downloads (many hours to days)
82
+ - remote Linux and HPC systems
83
+ - safe background execution
84
+ - reconnecting to running jobs after closing the interface
85
+
86
+ The GUI internally executes the same backend commands as the original `blastdbbuilder` toolkit.
87
+
88
+ ---
89
+
90
+ ## **Features**
91
+
92
+ - Graphical selection of genome groups (Archaea, Bacteria, Fungi, Virus, Plants)
93
+ - Graphical execution of:
94
+ - genome download
95
+ - FASTA concatenation
96
+ - BLASTn database construction
97
+ - Background execution (safe to close the GUI)
98
+ - Reconnect to running jobs at any time
99
+ - Live log monitoring
100
+ - Safe termination and emergency kill options
101
+ - Directory-based job management (multiple jobs can run simultaneously in different folders)
102
+
103
+ ---
104
+
105
+ ## **Computer Setup (Using Conda)**
106
+
107
+ The GUI package is fully self-contained and ships all required scientific tools. However, your computer still needs a basic software foundation so the graphical user interface (GUI) can open and run reliably. Think of this as setting up the room, not the equipment inside it.
108
+
109
+ You need:
110
+ - Linux computer or Mac Laptop or Windows Subsystem for Linux (WSL) activated in your windows laptop
111
+ - Python 3.9 – runs the GUI
112
+ - tkinter – displays the window and buttons
113
+ - Singularity – runs the built-in containers in the background
114
+
115
+ You do not need to understand or use these softwares directly.
116
+
117
+ ```
118
+ conda install bioconda::singularity
119
+ ```
120
+
121
+ ## **Step 1: Create a clean environment**
122
+
123
+ ```
124
+ conda create -n blastdbbuilder python=3.9 -y
125
+ ```
126
+ ## **Step 2: Activate the environment**
127
+
128
+ ```
129
+ conda activate blastdbbuilder
130
+ ```
131
+
132
+ ## **Step 3: Install tkinter**
133
+
134
+ ```
135
+ conda install tk || conda install -c conda-forge tk
136
+ ```
137
+
138
+ ## **Step 4: Install Singularity**
139
+
140
+ ```
141
+ conda install -c bioconda singularity -y
142
+ ```
143
+
144
+ ---
145
+
146
+ ## **blastdbbuilder Installation**
147
+
148
+ 1. [Download the Linux GUI installer](https://github.com/asadprodhan/blastdbbuilder/releases)
149
+
150
+ 2. Extract the downloaded file
151
+
152
+ ```
153
+ unzip blastdbbuilder-gui-linux.zip
154
+ ```
155
+
156
+ 3. Navigate the packae directory
157
+
158
+ ```
159
+ cd blastdbbuilder_package_gui
160
+ ```
161
+
162
+ 4. Install
163
+
164
+ ```
165
+ ./install.sh
166
+ ```
167
+
168
+ Or, right-click on `install.sh` and run as program if you are in front of your computer.
169
+
170
+
171
+ After installation, run the following command in the terminal
172
+
173
+ ```
174
+ blastdbbuilder-gui
175
+ ```
176
+
177
+ Or double-click on the blastdbbuilder icon on the Desktop.
178
+
179
+ blastdbbuilder app will pop up in front of you- regardless you are working remotely or in front of your computer.
180
+
181
+ ---
182
+
183
+
184
+ <br /> <p align="center"> <img src="https://github.com/asadprodhan/blastdbbuilderGUI/blob/main/blastdbbuilderGUI_v3.png" width="100%" > </p> <p> <strong>Figure 1. blastdbbuilder graphical user interface (GUI).</strong>
185
+ The main window of blastdbbuilder (GUI) showing the end-to-end workflow controller for building custom BLAST databases. The interface allows users to select a **working directory** (top), choose genome groups to **download** (Archaea, Bacteria, Fungi, Virus and Plants), and select the **execution** step (Download only, Concat only, Build only, or Run all steps sequentially). A command preview panel displays the exact command that will be executed. The right-hand panel streams the **live log** output from running jobs. Users can run jobs in **background mode** (safe to close the GUI) and control execution using the **Run**, **Stop**, **Force Kill**, **Clear log view**, and **Exit** buttons. The **status bar** at the bottom reports whether a running job is detected in the selected working directory. </p> <br />
186
+
187
+
188
+ ---
189
+
190
+ ## **Introduction of the Buttons and their meaning**
191
+
192
+ **Browse...** Select the working directory.
193
+
194
+ **Detect running job** Reconnects the GUI to an already running job in the selected directory and attaches to its log.
195
+
196
+ **Run** Starts the selected action(s).
197
+
198
+ **Stop** Sends a graceful termination request to the running job in the selected directory.
199
+
200
+ **Force Kill** Immediately kills the running job and all related processes. Use only if the job does not stop using *Stop*.
201
+
202
+ **Clear log view** Clears the log display inside the GUI window only. The log file on disk is not deleted.
203
+
204
+ **Exit** Closes the GUI window only. If the job is running in background mode, it continues running.
205
+
206
+ ---
207
+
208
+ ## **How to use the GUI locally**
209
+
210
+ 1. Launch the program by double-clicking the desktop icon.
211
+ 2 Select the working directory through navigating into the directory and DOUBLE-CLICK the folder** to select it, and then pressing OK
212
+ 3. Select one or more groups:
213
+ - Archaea
214
+ - Bacteria
215
+ - Fungi
216
+ - Virus
217
+ - Plants
218
+ 4. Select action (usually *Run all*)
219
+ - Download only (Step 1)
220
+ - Concat only (Step 2)
221
+ - Build only (Step 3)
222
+ - Run all (1 → 2 → 3)
223
+ 5. Ensure *Run in background* is enabled (recommended)
224
+ 6. Click **Run**
225
+
226
+ **The job will start and logs will appear in the right-hand panel. You can safely close the GUI after starting a job and check progress later**
227
+
228
+ ---
229
+
230
+ ## **How to use the GUI remotely**
231
+
232
+ The GUI is fully supported on remote Linux and HPC systems using X11 forwarding.
233
+
234
+ 1. From your local computer, connect to the remote machine:
235
+
236
+ ```
237
+ ssh -X user@remote_server
238
+ ```
239
+
240
+ 2. Then open a terminal and run the following command
241
+
242
+ ```
243
+ blastdbbuilder-gui
244
+ ```
245
+
246
+ This will open the blastdbbuilder GUI on your local screen. Then, run the job as you would do it locally. See **How to Use the GUI Locally**
247
+
248
+ ---
249
+
250
+ ## **Checking progress later**
251
+
252
+ 1. Launch the GUI again by double-clicking on the Desktop icon (if you use it locally) or by running `blastdbbuilder-gui` in a terminal
253
+ 2. Click **Browse…**
254
+ 3. Navigate to the **same working directory**
255
+ 4. **DOUBLE-CLICK** that directory to select it
256
+ 5. Click **Detect running job**
257
+
258
+ The GUI will reconnect and continue displaying the live log.
259
+
260
+ **This directory selection step is essential. The GUI cannot detect jobs without using the same directory.**
261
+
262
+ ---
263
+
264
+ ## **Stopping a job**
265
+
266
+ To stop a running job:
267
+
268
+ 1. Select the same working directory
269
+ 2. Click **Detect running job**
270
+ 3. Click **Stop**
271
+
272
+ If the job does not stop (for example, a stalled container), click **Force Kill**.
273
+
274
+ ---
275
+
276
+ ## **Citation**
277
+
278
+ If you use this software in your work, please cite:
279
+
280
+ Prodhan, M. A. (2025). blastdbbuilder: Building a Customised BLASTn Database. https://doi.org/10.5281/zenodo.17394137
281
+
282
+ ---
283
+
284
+ ## **Support**
285
+
286
+ For issues, bug reports, or feature requests, please contact:
287
+
288
+ **Asad Prodhan**
289
+ E-mail: asad.prodhan@dpird.wa.gov.au, prodhan82@gmail.com
290
+
291
+
292
+
293
+
@@ -0,0 +1,281 @@
1
+ <h1 align="center">blastdbbuilder GUI: Building a Customised BLASTn Database</h1>
2
+
3
+ <h3 align="center">M. Asaduzzaman Prodhan<sup>*</sup> </h3>
4
+
5
+ <div align="center"><b> DPIRD Diagnostics and Laboratory Services </b></div>
6
+
7
+ <div align="center"><b> Department of Primary Industries and Regional Development </b></div>
8
+
9
+ <div align="center"><b> 31 Cedric St, Stirling WA 6021, Australia </b></div>
10
+
11
+ <div align="center"><b> *Correspondence: asad.prodhan@dpird.wa.gov.au; prodhan82@gmail.com </b></div>
12
+
13
+ <br />
14
+
15
+ <p align="center">
16
+ <a href="https://github.com/asadprodhan/blastdbbuilder/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-GPL%203.0-yellow.svg" alt="License GPL 3.0" style="display: inline-block;"></a>
17
+ <a href="https://orcid.org/0000-0002-1320-3486"><img src="https://img.shields.io/badge/ORCID-green?style=flat-square&logo=ORCID&logoColor=white" alt="ORCID" style="display: inline-block;"></a>
18
+ <a href="https://doi.org/10.5281/zenodo.17394137"><img src="https://img.shields.io/badge/DOI-10.5281%2Fzenodo.17394137-blue?style=flat-square&logo=Zenodo&logoColor=white" alt="DOI: 10.5281/zenodo.17394137" style="display: inline-block;"></a>
19
+ </p>
20
+
21
+ ---
22
+
23
+ ## **Content**
24
+
25
+ - [Introduction](#introduction)
26
+ - [blastdbbuilder GUI](#blastdbbuilder-gui)
27
+ - [Features](#features)
28
+ - [Pre-requisite](#pre-requisite)
29
+ - [Installation](#installation)
30
+ - [Using the GUI](#using-the-gui)
31
+ - [Working directory](#working-directory-very-important)
32
+ - [Selecting a directory](#selecting-a-directory-important-note)
33
+ - [Genome group selection](#genome-group-selection)
34
+ - [Action selection](#action-selection)
35
+ - [Buttons and their meaning](#buttons-and-their-meaning)
36
+ - [Running a job](#running-a-job)
37
+ - [Checking progress later](#checking-progress-later)
38
+ - [Stopping a job](#stopping-a-job)
39
+ - [Citation](#citation)
40
+ - [Support](#support)
41
+ ---
42
+
43
+ ## **Introduction**
44
+
45
+ A BLASTn database provides the essential reference framework for comparing query sequences, forming the backbone of any sequence-based analysis. Accurate results—whether in diagnostics, biosecurity surveillance, microbial studies, evolutionary research, environmental surveys, or functional genomics—depend on a high-quality, well-curated database; without it, even the most sophisticated tools can yield ambiguous outcomes.
46
+
47
+ Public databases are comprehensive but rapidly expanding, often containing redundant, low-quality or irrelevant entries. This leads to slower searches and reduced search resolution.
48
+
49
+ In contrast, a custom database is like a well-organised library where every book is precisely indexed—smaller in volume, faster to search, and more focused in results.
50
+
51
+ To simplify this process for end users, **blastdbbuilder GUI** provides a graphical interface to the proven `blastdbbuilder` backend, allowing fully reproducible database construction without requiring command-line interaction.
52
+
53
+ ---
54
+
55
+ ## **blastdbbuilder GUI**
56
+
57
+ `blastdbbuilder GUI` is a Linux graphical front-end for the `blastdbbuilder` command-line toolkit.
58
+
59
+ It enables users to:
60
+
61
+ - download public reference genomes
62
+ - concatenate genome FASTA files
63
+ - build customised BLASTn databases
64
+
65
+ using an interactive graphical interface.
66
+
67
+ The GUI is specifically designed for:
68
+
69
+ - long-running downloads (many hours to days)
70
+ - remote Linux and HPC systems
71
+ - safe background execution
72
+ - reconnecting to running jobs after closing the interface
73
+
74
+ The GUI internally executes the same backend commands as the original `blastdbbuilder` toolkit.
75
+
76
+ ---
77
+
78
+ ## **Features**
79
+
80
+ - Graphical selection of genome groups (Archaea, Bacteria, Fungi, Virus, Plants)
81
+ - Graphical execution of:
82
+ - genome download
83
+ - FASTA concatenation
84
+ - BLASTn database construction
85
+ - Background execution (safe to close the GUI)
86
+ - Reconnect to running jobs at any time
87
+ - Live log monitoring
88
+ - Safe termination and emergency kill options
89
+ - Directory-based job management (multiple jobs can run simultaneously in different folders)
90
+
91
+ ---
92
+
93
+ ## **Computer Setup (Using Conda)**
94
+
95
+ The GUI package is fully self-contained and ships all required scientific tools. However, your computer still needs a basic software foundation so the graphical user interface (GUI) can open and run reliably. Think of this as setting up the room, not the equipment inside it.
96
+
97
+ You need:
98
+ - Linux computer or Mac Laptop or Windows Subsystem for Linux (WSL) activated in your windows laptop
99
+ - Python 3.9 – runs the GUI
100
+ - tkinter – displays the window and buttons
101
+ - Singularity – runs the built-in containers in the background
102
+
103
+ You do not need to understand or use these softwares directly.
104
+
105
+ ```
106
+ conda install bioconda::singularity
107
+ ```
108
+
109
+ ## **Step 1: Create a clean environment**
110
+
111
+ ```
112
+ conda create -n blastdbbuilder python=3.9 -y
113
+ ```
114
+ ## **Step 2: Activate the environment**
115
+
116
+ ```
117
+ conda activate blastdbbuilder
118
+ ```
119
+
120
+ ## **Step 3: Install tkinter**
121
+
122
+ ```
123
+ conda install tk || conda install -c conda-forge tk
124
+ ```
125
+
126
+ ## **Step 4: Install Singularity**
127
+
128
+ ```
129
+ conda install -c bioconda singularity -y
130
+ ```
131
+
132
+ ---
133
+
134
+ ## **blastdbbuilder Installation**
135
+
136
+ 1. [Download the Linux GUI installer](https://github.com/asadprodhan/blastdbbuilder/releases)
137
+
138
+ 2. Extract the downloaded file
139
+
140
+ ```
141
+ unzip blastdbbuilder-gui-linux.zip
142
+ ```
143
+
144
+ 3. Navigate the packae directory
145
+
146
+ ```
147
+ cd blastdbbuilder_package_gui
148
+ ```
149
+
150
+ 4. Install
151
+
152
+ ```
153
+ ./install.sh
154
+ ```
155
+
156
+ Or, right-click on `install.sh` and run as program if you are in front of your computer.
157
+
158
+
159
+ After installation, run the following command in the terminal
160
+
161
+ ```
162
+ blastdbbuilder-gui
163
+ ```
164
+
165
+ Or double-click on the blastdbbuilder icon on the Desktop.
166
+
167
+ blastdbbuilder app will pop up in front of you- regardless you are working remotely or in front of your computer.
168
+
169
+ ---
170
+
171
+
172
+ <br /> <p align="center"> <img src="https://github.com/asadprodhan/blastdbbuilderGUI/blob/main/blastdbbuilderGUI_v3.png" width="100%" > </p> <p> <strong>Figure 1. blastdbbuilder graphical user interface (GUI).</strong>
173
+ The main window of blastdbbuilder (GUI) showing the end-to-end workflow controller for building custom BLAST databases. The interface allows users to select a **working directory** (top), choose genome groups to **download** (Archaea, Bacteria, Fungi, Virus and Plants), and select the **execution** step (Download only, Concat only, Build only, or Run all steps sequentially). A command preview panel displays the exact command that will be executed. The right-hand panel streams the **live log** output from running jobs. Users can run jobs in **background mode** (safe to close the GUI) and control execution using the **Run**, **Stop**, **Force Kill**, **Clear log view**, and **Exit** buttons. The **status bar** at the bottom reports whether a running job is detected in the selected working directory. </p> <br />
174
+
175
+
176
+ ---
177
+
178
+ ## **Introduction of the Buttons and their meaning**
179
+
180
+ **Browse...** Select the working directory.
181
+
182
+ **Detect running job** Reconnects the GUI to an already running job in the selected directory and attaches to its log.
183
+
184
+ **Run** Starts the selected action(s).
185
+
186
+ **Stop** Sends a graceful termination request to the running job in the selected directory.
187
+
188
+ **Force Kill** Immediately kills the running job and all related processes. Use only if the job does not stop using *Stop*.
189
+
190
+ **Clear log view** Clears the log display inside the GUI window only. The log file on disk is not deleted.
191
+
192
+ **Exit** Closes the GUI window only. If the job is running in background mode, it continues running.
193
+
194
+ ---
195
+
196
+ ## **How to use the GUI locally**
197
+
198
+ 1. Launch the program by double-clicking the desktop icon.
199
+ 2 Select the working directory through navigating into the directory and DOUBLE-CLICK the folder** to select it, and then pressing OK
200
+ 3. Select one or more groups:
201
+ - Archaea
202
+ - Bacteria
203
+ - Fungi
204
+ - Virus
205
+ - Plants
206
+ 4. Select action (usually *Run all*)
207
+ - Download only (Step 1)
208
+ - Concat only (Step 2)
209
+ - Build only (Step 3)
210
+ - Run all (1 → 2 → 3)
211
+ 5. Ensure *Run in background* is enabled (recommended)
212
+ 6. Click **Run**
213
+
214
+ **The job will start and logs will appear in the right-hand panel. You can safely close the GUI after starting a job and check progress later**
215
+
216
+ ---
217
+
218
+ ## **How to use the GUI remotely**
219
+
220
+ The GUI is fully supported on remote Linux and HPC systems using X11 forwarding.
221
+
222
+ 1. From your local computer, connect to the remote machine:
223
+
224
+ ```
225
+ ssh -X user@remote_server
226
+ ```
227
+
228
+ 2. Then open a terminal and run the following command
229
+
230
+ ```
231
+ blastdbbuilder-gui
232
+ ```
233
+
234
+ This will open the blastdbbuilder GUI on your local screen. Then, run the job as you would do it locally. See **How to Use the GUI Locally**
235
+
236
+ ---
237
+
238
+ ## **Checking progress later**
239
+
240
+ 1. Launch the GUI again by double-clicking on the Desktop icon (if you use it locally) or by running `blastdbbuilder-gui` in a terminal
241
+ 2. Click **Browse…**
242
+ 3. Navigate to the **same working directory**
243
+ 4. **DOUBLE-CLICK** that directory to select it
244
+ 5. Click **Detect running job**
245
+
246
+ The GUI will reconnect and continue displaying the live log.
247
+
248
+ **This directory selection step is essential. The GUI cannot detect jobs without using the same directory.**
249
+
250
+ ---
251
+
252
+ ## **Stopping a job**
253
+
254
+ To stop a running job:
255
+
256
+ 1. Select the same working directory
257
+ 2. Click **Detect running job**
258
+ 3. Click **Stop**
259
+
260
+ If the job does not stop (for example, a stalled container), click **Force Kill**.
261
+
262
+ ---
263
+
264
+ ## **Citation**
265
+
266
+ If you use this software in your work, please cite:
267
+
268
+ Prodhan, M. A. (2025). blastdbbuilder: Building a Customised BLASTn Database. https://doi.org/10.5281/zenodo.17394137
269
+
270
+ ---
271
+
272
+ ## **Support**
273
+
274
+ For issues, bug reports, or feature requests, please contact:
275
+
276
+ **Asad Prodhan**
277
+ E-mail: asad.prodhan@dpird.wa.gov.au, prodhan82@gmail.com
278
+
279
+
280
+
281
+
@@ -0,0 +1,7 @@
1
+ # blastdbbuilder/__init__.py
2
+ """
3
+ blastdbbuilder
4
+
5
+ Lightweight CLI to download genomes, concatenate them, and build BLAST databases.
6
+ """
7
+ __version__ = "1.0.0"