Skip to main content

ABCOMICS Genomic Data Upload Tool — upload sequencing files to ABCOMICS

Project description

abcupload

ABCOMICS Genomic Data Upload Tool

A command-line tool to upload sequencing and genomic data files to the ABCOMICS platform. It handles the full upload process automatically: requesting a signed URL from the API, then streaming each file directly to secure cloud storage with a live progress bar.


Installation

pip install abcupload

Requires Python 3.8 or later. Dependencies (requests, rich) are installed automatically.


Quick start — manifest mode (recommended)

After submitting your runs and analyses metadata in the ABCOMICS dashboard, download the upload manifest (a TSV file) for your project. The manifest maps each local filename to its ID-based destination name in ABCOMICS storage.

# 1. Get your personal API key from the ABCOMICS dashboard:
#    Dashboard → Settings → abcupload API Key → Copy

# 2. Set it once in your terminal session
export ABCOMICS_API_KEY="your_key_here"

# 3. Upload all files listed in the manifest
abcupload -d /path/to/your/files/ -m PRJAB00001_upload_manifest.tsv

# Overwrite without asking if a file already exists
abcupload -d /path/to/your/files/ -m PRJAB00001_upload_manifest.tsv -o

Where is my API key?
Log into the ABCOMICS dashboard → Settingsabcupload API Key.
Each user has a unique personal key — never share it.

The manifest is a tab-separated file with four columns:

# entity_id    original_filename       new_gcs_filename            project_id
RUNAB00001      sample_R1.fastq.gz      RUNAB00001_1.fastq.gz       PRJAB00001
RUNAB00001      sample_R2.fastq.gz      RUNAB00001_2.fastq.gz       PRJAB00001
RUNAB00002      reads.bam               RUNAB00002.bam              PRJAB00001
ANZAB00001      result.tsv              ANZAB00001.tsv              PRJAB00001

abcupload reads the manifest to rename files to their ABCOMICS IDs on the way up — your local files are never renamed.


Legacy mode

# Upload a single file
abcupload -u abc-000001 -p PRJAB00001 -d sample_R1.fastq.gz

# Upload all FASTQ files in the current directory
abcupload -u abc-000001 -p PRJAB00001 -d '*.fastq.gz'

# Upload an entire directory (scans for all accepted formats)
abcupload -u abc-000001 -p PRJAB00001 -d /data/project/

# Test mode — files are deleted after 24 hours
abcupload -u abc-000001 -p PRJAB00001 -d '*.fastq.gz' -t

Full usage

manifest mode (recommended):
  abcupload -d DIRECTORY -m MANIFEST_TSV [options]

  -d DIRECTORY      Directory containing the files to upload
  -m MANIFEST_TSV   TSV manifest downloaded from the ABCOMICS dashboard

legacy mode:
  abcupload -u USERNAME -p PROJECT_ID -d FILES [options]

  -u USERNAME       ABCOMICS username          (e.g. abc-000001)
  -p PROJECT_ID     Project ID                 (e.g. PRJAB00001)
  -d FILES          Single file, comma list, glob pattern, or directory

options:
  -k API_KEY        API key  (alternative to ABCOMICS_API_KEY env var)
  -t                Test mode — files deleted after 24 h
  -o                Overwrite existing files without asking
  -h, --help        Show this help and exit
  -V, --version     Show version and exit

Environment variable

# Add to ~/.bashrc or ~/.zshrc for persistence
export ABCOMICS_API_KEY=your_key_here

Accepted file formats

Format Extensions
FASTQ .fastq, .fq, .fastq.gz, .fq.gz, .fastq.bz2, .fq.bz2
FASTA .fasta, .fa, .fna, .faa, .ffn, .frn, .fasta.gz, .fa.gz, .fna.gz, .faa.gz
BAM / SAM / CRAM .bam, .sam, .cram
Index files .bai, .crai, .csi, .tbi
VCF / BCF .vcf, .vcf.gz, .bcf, .bcf.gz
Annotation .gff, .gff3, .gtf, .bed (and .gz variants)
Tabular .csv, .tsv

Maximum file size: 500 GB.


Changelog

1.2.0

  • API keys are now per-user: each user has a unique personal key available in the ABCOMICS dashboard under Settings → abcupload API Key.
  • No changes required to the CLI — just update your ABCOMICS_API_KEY value.

1.1.0

  • New manifest mode (-d DIR -m manifest.tsv): reads an ABCOMICS upload manifest to rename files to their ID-based GCS names on upload without touching local files.
  • Files now upload directly to public/{project_id}/ in GCS; no private→public move step needed.
  • -u (username) and -p (project_id) are no longer required in manifest mode; all info comes from the TSV.
  • Legacy mode (-u USER -p PRJ -d files) still fully supported.

1.0.1

  • Initial public release.

Author

Khadim Gueye — African Bioinformatics Center (ABCOMICS)
Contact: contact@abcomics.org


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abcupload-1.2.0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abcupload-1.2.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file abcupload-1.2.0.tar.gz.

File metadata

  • Download URL: abcupload-1.2.0.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for abcupload-1.2.0.tar.gz
Algorithm Hash digest
SHA256 23cd40f5e533e7ffbcb256a60e826b473244aea162652f7e7b59b5cbc1728201
MD5 65e0ed4774b35612d8d108a13dcbf943
BLAKE2b-256 d03b397cbc033bca09e93d0db42c44916c2b6cecf8868c6129e6e14aba780264

See more details on using hashes here.

File details

Details for the file abcupload-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: abcupload-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for abcupload-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 741121c02387f81b1b693823666a939b5c27fdf0de54abba68d118e63b246eca
MD5 ffc4e50b7f3a263c1265fa5e6e0207d9
BLAKE2b-256 9442a2d6c3519e33cd4305e34455e7dd5a732fa24a80090d3d944d420b0510ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page