Metadata-Version: 2.4
Name: flowbio
Version: 0.4.0
Summary: A client for the Flow API.
Home-page: https://github.com/goodwright/flowbio
Author: Sam Ireland
Author-email: sam@goodwright.com
License: MIT
Keywords: nextflow bioinformatics pipeline
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: !=2.*, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, !=3.7.*
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: tqdm
Requires-Dist: kirjava
Requires-Dist: requests
Requires-Dist: httpx<1,>=0.28
Requires-Dist: pydantic<3,>=2
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# flowbio

A client for the Flow API.

```python
    
import flowbio

client = flowbio.Client()
client.login("your_username", "your_password")

# Upload standard data
data = client.upload_data("/path/to/file.fa", progress=True, retries=5)
print(data)

# Upload sample
sample = client.upload_sample(
    "My Sample Name",
    "/path/to/reads1.fastq.gz",
    "/path/to/reads2.fastq.gz", # optional
    progress=True,
    retries=5,
    metadata={
        "sample_type": "RNA-Seq",
        "scientist": "Charles Darwin",
        "type_specific_metadata": '{"strandedness": "reverse"}',
    }
)
print(sample)

# Upload multiplexed
multiplexed = client.upload_multiplexed(
    "/path/to/reads.fastq.gz",
    progress=True,
    retries=5,
)
print(multiplexed)

# Upload annotation
annotation = client.upload_annotation(
    "/path/to/annotation.csv",
    progress=True,
    retries=5,
)
print(annotation)

# Run pipeline
execution = client.run_pipeline(
    "RNA-Seq",
    "3.8.1",
    "23.04.3",
    params={"param1": "param2"},
    data_params={"fasta": 123456789},
)
```
