Lightweight program for Illumina sequencer that watches for new sequence folders and uploads to remote server.
- Keeps track of folders uploaded
- Minimal Dependencies
- Cross platform compatible
- Download latest release zip from https://github.com/BCCDC-PHL/illumina-uploader/releases
- Unzip the contents into a directory
- Copy correct config.ini file into directory
- Open cygwin (https://www.cygwin.com/) in Admin mode and cd into the unzipped directory
- Create virtual env
python -m venv venv
- Activate virtual python environment
source ./venv/bin/activate
- Install
illumina-uploader
pip install .
- Initialize the database
illumina-uploader --create-db
illumina-uploader
To exit, use "Ctrl + C" keyboard combo. Its safe!
To upload one specific folder (will update status to REUPLOAD in db)
illumina-uploader --upload-single-run 200619_M00325_0209_000000000-J6M35
Keep the other illumina-uploader process running, and the file will be picked up.
Backup database (recommended once a week)
illumina-uploader --backup-db
Delete database (useful for testing.. backup db first!)
rm /path/to/local.db
Specify custom config and sequencer
illumina-uploader --config config.ini --sequencer miseq
Debug run (display debug message + don't send emails, useful for debugging)
illumina-uploader --debug
NextSeq specific, after a reboot:
1. Reboot the system
2. login as the 'illumina-data-manager' user
2. Mount the NAS:
- Open the 'Terminal' application
- `cd illumina-uploader`
- `./mountNextSeqs.sh`
- When prompted for 'illumina-data-manager' enter password to run an admin process and press enter.
- When prompted for the 'nextseq-mac' enter password to mount a directory and press enter.
(You will be prompted for the 'nextseq-mac' password three times, once for each of the three NextSeq directories)
3. Activate the virtual environment for the illumina uploader:
- source ./venv/bin/activate
4. Start the illumina uploader:
- `illumina-uploader`
5. Done!
Since the program is under active development, running arguments might change in future.
Optional Parameter | Description |
---|---|
--sequencer |
miseq or nextseq (Default taken from config file) |
--config |
location of config file |
--upload-single-run |
location of single folder to upload |
--pem-file |
location of pem file |
--create-db |
initialise sqlite database |
--backup-db |
backup sqlite database |
--debug |
run in debug mode (more print messages + no emails) |
The program uses standard python configuration file along with runtime arguments. See config.ini.template for format details.
v0.0.1 - Test rsync commandv0.0.2 - Finalize rsync commandv0.0.3 - Test one folder from main scriptv0.0.4 - SQLite DB integrationv0.0.5 - Add error folder name checking + DB Resume upload featurev0.0.6 - Bugfix folder name checkingv0.0.7Multiple folders uploadbackup database
v0.0.8watch directoryEnhanced loggingCapture Stdout and Stderr properly
v0.0.9 - watch directory bugfixv0.1Generate update.txt and ignore.txt filesGenerate COPY_COMPLETE file for each run directory
v0.2output mail folder in remote serversimplified run script
v0.3upload from two locationsfix mail message timezone
v0.4add multiple output locations for nextseqsfix ssl problem in emailfix nextseq regexfix before and after email format for labremove COPY_COMPLETE fileadd upload_complete.json with start_upload_time and end_upload_timechange UPLOADED to FINISHED in dbfix timezone in log messagesfix crash when rsync network errorupdate config.ini.template
v0.5fix FileNotFoundErrorFix socket errornew firstrun.sh script NOT WORKING CORRECTLYFix upload_complete.json: use scp instead of rsyncAdd upload_complete.json: input_directory, output_directory
v0.6Fixed single uploads command "--upload-single-run"- Fixed debug mode
v0.7Fix upload_complete.json: timestamp_start, input_directory, output_directory and formatFix dry runAdd pytestsquick create ignore.txt file from a given input folderInstaller and one script run
- v0.8 - One page Web UI for viewing DB in browser
- v0.9 - Finalize config.ini template, add linter and coverage tests
- v1.0 - Long Term Release (LTM)
- v1.1 - Change config from .ini to json type
Solution: setup db first ie. illumina-uploader --create-db
Solution: Add at the end of ~/.bash_profile
(in /home/USER):
export SHELLOPTS
set -o igncr
Solution: Install ssh/rsync from cygwin installer. Don't use system ones.
Solution: Ctrl + Shift + Q