AtoMx SFTP transfer with double-download MD5 integrity verification, per-file atomic writes, study-level crash locks, and email reporting.
v0.1.0. Built for unattended runs on Linux.
transfer— SFTP download pipeline.transfer runfor a single study,transfer batchfor a TSV-driven queue,transfer planfor a dry-run preview.notify— Plain-text email reports per run (success summary or failure diagnostics) and a tool-health channel for warnings/errors. Recipients per event in~/.config/atomx-toolkit/recipients/<event>.txt.install—install initwrites config templates and pre-check report.
pip install git+https://github.com/wuwenrui555/atomx-toolkit.git@v0.1.0Requires Python 3.12+ and the md5sum binary (GNU coreutils, default on Linux).
atomx-toolkit install init
# edit ~/.config/atomx-toolkit/config.toml — paths and SFTP host
# edit ~/.config/atomx-toolkit/sftp.env — AtoMx username/password
# edit ~/.config/atomx-toolkit/smtp.env — Gmail app password
# edit ~/.config/atomx-toolkit/recipients/*.txt — your email addressesSee docs/setup-host.md for full setup details.
Single study:
atomx-toolkit transfer run <name_remote> <name_local>Batch (recommended):
# jobs.tsv: two whitespace-separated columns
echo 'HCC_TMA006_..._116 HCC_TMA006_section05_3ug_v132' > jobs.tsv
atomx-toolkit transfer plan jobs.tsv # preview
atomx-toolkit transfer batch jobs.tsv # runReports go to email; details in docs/transfer-pipeline.md.
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Operational failure: at least one study failed, or batch made no progress |
| 2 | Configuration error: missing or malformed TOML, missing required key, lock held, missing md5sum |
| 3 | Unexpected runtime error |
- QC subsystem (post-transfer report generation)
- PyPI release once external usage warrants it
- Parallel batch (currently sequential by design)
MIT, see LICENSE.