Skip to main content

Geoseeq API Client

This package is a python library to interact with a Geoseeq server. It includes a command line interface that may be used to perform common tasks GeoSeeq tasks from the terminal.

GeoSeeq is a platform for sharing biological, climatological, and public health datasets. Learn more here.

This API client is a work in progress and we welcome suggestions, feedback, comments, and criticisms.


Installation

Install from PyPi

pip install geoseeq

Install from source

Download this directory and run python setup.py install


Using the Command Line

Run the command line by typing geoseeq into a terminal prompt. See available options by adding --help

$ geoseeq --help

The CLI is organized into command groups. Run geoseeq <group> --help for the subcommands and options of each:

Group What it does
download Download files, fastqs, folders, or metadata from a project
upload Upload local files and reads into GeoSeeq-managed storage
link Register files already in S3-compatible storage as links, without copying bytes
manage Create, edit, and delete projects, samples, and folders
repo Clone and inspect local geoseeq project repositories
search Search GeoSeeq for organizations, projects, and samples
view Print details about GeoSeeq objects
app List and trigger GeoSeeq pipeline apps and runs
s3 Register single files staged in a project's S3 credentials flow
find-grn Resolve a GeoSeeq Resource Name (GRN) to an object
eula Accept end-user license agreements required by some pipelines

Configuration and Using an API token

For many tasks you will need an API token to interact with GeoSeeq. You can get this token by logging into the GeoSeeq Portal going to your user profile and clicking the "Tokens" tab.

Once you have a token you will need to configure GeoSeeq to use it. Run geoseeq config and leave the profile name and url blank. You will be prompted to enter your API token.

$ geoseeq config
Set custom profile name? (Leave blank for default) []:
Enter the URL to use for GeoSeeq (Most users can use the default) [https://backend.geoseeq.com]:
Enter your GeoSeeq API token:
Profile configured.

This command will store your token in a file called ~/.config/geoseeq/profiles.json and will be used by all future commands.

Example Commands

You can find more command line examples in docs/

Download Short Read Sequencing data from one sample in a project as a set of FASTQ files

This command will download data from this project.

$ geoseeq download files --extension fastq.gz "GeoSeeq/Example CLI Project"

Uploading sequencing data

GeoSeeq can automatically group fastq files into samples according to their sample name, read number, and lane number. It supports paired end, single end, nanopore, and pacbio reads.

Assume you have data from a single ended sequencing run stored as fastq files:

  • Sample1_L1_R1.fastq.gz
  • Sample1_L1_R2.fastq.gz
  • Sample1_L2_R1.fastq.gz
  • Sample1_L2_R2.fastq.gz

You can upload these files to GeoSeeq using the command line. This example will upload 32 files in parallel:

# navigate to the directory where the fastq files are stored
$ ls -1 *.fastq.gz > fastq_files.txt  # check that files are present

$ geoseeq upload reads --cores 32 "GeoSeeq/Example CLI Project" fastq_files.txt
Using regex: "(?P<sample_name>[^_]*)_L(?P<lane_num>[0-9]*)_R(?P<pair_num>1|2)\.fastq\.gz"
All files successfully grouped.
sample_name: Sample1
  module_name: short_read::paired_end
    short_read::paired_end::read_1::lane_1: Sample1_L1_R1.fastq.gz
    short_read::paired_end::read_2::lane_1: Sample1_L1_R2.fastq.gz
    short_read::paired_end::read_1::lane_2: Sample1_L2_R1.fastq.gz
    short_read::paired_end::read_2::lane_2: Sample1_L2_R2.fastq.gz
Do you want to upload these files? [y/N]: y
Uploading Sample: Sample1

GeoSeeq will automatically create a new sample named Sample1 if it does not already exist.

This command would upload data to this project.. Since only organization members can upload data, you will need to replace GeoSeeq with your organization name.

To rename samples on the fly, provide a CSV file with current and new names using the --name-map option:

$ geoseeq upload reads --name-map sample_map.csv current_name new_name "GeoSeeq/Example CLI Project" fastq_files.txt

Note: You will need to have an API token set to use this command (see above)

If your reads already live in an S3-compatible bucket (AWS S3, Backblaze B2, Wasabi, MinIO, ...) and you want GeoSeeq to point at them in place rather than upload the bytes, see Linking remote files below.

Linking remote files

If your fastq files already exist in an S3-compatible bucket — AWS S3, Backblaze B2, Wasabi, MinIO, etc. — you can register them with GeoSeeq as links instead of uploading the bytes. Pick the right command for the shape of the work:

Command Use when
geoseeq link reads You have a whole S3 prefix of fastq files to register in bulk. GeoSeeq lists the prefix, groups files into samples server-side, and links each file in place.
geoseeq upload reads You want GeoSeeq to manage the bytes — local files copied into managed storage.
geoseeq s3 register You have a single file already staged in GeoSeeq's per-project staging credentials flow.

link reads requires the optional [s3] extras (boto3):

pip install 'geoseeq[s3]'

Example — register a Backblaze B2 prefix of paired-end reads:

$ geoseeq link reads "MyOrg/MyProject" \
      s3://my-bucket/path/to/reads/ \
      --endpoint-url https://s3.us-east-005.backblazeb2.com \
      --commit

Without --commit the command runs in dry-run mode and prints the proposed (sample, field, s3-uri) tuples without writing. AWS credentials follow the standard boto3 chain (env vars, shared config, instance profile) — there are no new secrets for the CLI to manage.

Note: geoseeq upload reads --link-type s3 <local-file-list> is deprecated as of this release; prefer geoseeq link reads (bulk) or geoseeq s3 register (single staged file).

Using the Python API in a program

Please see geoseeq/cli/download.py for examples of how to download data using the Python API directly.

Development in GitHub Codespaces

This repository includes a .devcontainer configuration so it can be opened directly in GitHub Codespaces. When the codespace is created the development dependencies are installed and pre-commit hooks are set up automatically.


Notes

Terminology

Some terms have changed in GeoSeeq since this package was written. The command line tool and code may contain references to old names.

Old Name New Name
Sample Group Project
Library defunct
Analysis Result ResultFolder
Analysis Result Field ResultFile

License and Credits

GeoSeeq is built and maintained by Biotia

The GeoSeeq API client is licensed under the MIT license.

Metadata

Release files for geoseeq 0.7.25

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for geoseeq 0.7.25
File Size Uploaded
geoseeq-0.7.25.tar.gz 38.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for geoseeq 0.7.25
File Interpreter ABI Platform
geoseeq-0.7.25-py3-none-any.whl Python 3 none any Details

Total release size: 38.5 MB

Release files / geoseeq-0.7.25.tar.gz

Download URL geoseeq-0.7.25.tar.gz
Size 38.3 MB
Tags Source
SHA-256 checksum
How to use checksums
2bc91326d40e72c598bdf747e90536629cef49232b5b68ef8b0112fafe203bf9
BLAKE2b-256 checksum
How to use checksums
8479e86fddace22771258592ad28b49ca8f909957b2e429db3f5d6025da04e6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release files / geoseeq-0.7.25-py3-none-any.whl

Download URL geoseeq-0.7.25-py3-none-any.whl
Size 178.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e4328c2e6cbcc7ae50a8e37462151bb503e5c70cecdbdb7d327efca1e5f74851
BLAKE2b-256 checksum
How to use checksums
2c0355fc4f4d4390267f1d875e9280d64e7eaa15dfa8a5636f3fa4c23449047f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.25 This release

2 release files

0.7.24

2 release files

0.7.23

2 release files

0.7.22

2 release files

0.7.17

2 release files

0.7.16

2 release files

0.7.15

2 release files

0.7.14

2 release files

0.7.13

2 release files

0.7.12

2 release files

0.7.11

2 release files

0.7.10

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.13

2 release files

0.6.12

2 release files

0.6.11

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.22

2 release files

0.2.21

2 release files

0.2.20

2 release files

0.2.17

2 release files

0.2.16

2 release files

0.2.15

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.2.12

2 release files

0.2.11

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page