Metadata-Version: 2.4
Name: AlphaFoldFetch
Version: 1.0.1
Summary: A tool for downloading AlphaFold structures using UniProt IDs or FASTA files
Keywords: alphafold,download,get,fetch,fasta,file
Author: Edgar Manriquez-Sandoval
Author-email: Edgar Manriquez-Sandoval <mansanlab@gmail.com>
License-Expression: MIT
License-File: LICENSE.txt
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Dist: aiohttp>=3.9,<4
Requires-Dist: typer>=0.12,<1
Requires-Python: >=3.11
Project-URL: Documentation, https://github.com/mansanlab/alphafoldfetch
Project-URL: Issues, https://github.com/mansanlab/alphafoldfetch/issues
Project-URL: Source, https://github.com/mansanlab/alphafoldfetch
Description-Content-Type: text/markdown

![AlphaFoldFetch logo](docs/assets/images/affetch_logo.png)

# AlphaFoldFetch

AlphaFoldFetch is a command-line tool for downloading AlphaFold structure files from UniProt IDs and UniProt FASTA files.

It is meant for fast batch workflows:

- download one or many structure in one command
- choose any combination of PDB, CIF, or gzipped outputs
- tune concurrency for larger downloads

## Install

Run it without installing:

```bash
uvx --from AlphaFoldFetch affetch P11388
```

Install the CLI with `uv`:

```bash
uv tool install AlphaFoldFetch
```

## CLI Summary

```bash
affetch [OPTIONS] UNIPROT...
```

Arguments:

- `UNIPROT...`: UniProt IDs, FASTA files, or `-` for stdin

Options:

- `--output`, `-o`: output directory
- `--file-type`, `-f`: any combination of `p`, `c`, and `z`
- `--model`, `-m`: AlphaFold model version `1` through `6`
- `--n-sync`: concurrent download requests
- `--n-save`: file writes submitted per batch

## Input Rules

AlphaFoldFetch accepts:

- raw UniProt accessions like `P11388`
- text that contains a valid UniProt accession
- FASTA files ending in `.fasta`, `.fas`, `.fa`, or `.faa`
- `-` to read whitespace-separated input from stdin

FASTA parsing only keeps validated UniProt IDs from header lines.

## Output Rules

The default file-type value is `pcz`, which means:

- `p`: PDB output
- `c`: CIF output
- `z`: gzip compression

So the default behavior downloads both PDB and CIF files as gzip outputs.

### Examples

Single AlphaFold structure
```bash
affetch P11388
```

Multiple AlphaFold structures
```bash
affetch P11388 Q01320 P41516
```

Structures from a single UniProt FASTA file
```bash
affetch UP000005640_9606.fasta
```

Multiple UniProt FASTA files
```bash
affetch UP000007305_4577.fasta UP000005640_9606.fasta UP000000625_83333.fasta
```
*First obtain these FASTA files from UniProt*

Multiple custom FASTA files
```bash
affetch plant_pgks.fasta mammalian_pgks.fasta bacterial_pgks.fasta
```
*Input files must be in the UniProt FASTA file format*

Unzipped PDB file
```bash
affetch -f p P11388
```
*Default will dowload zipped PDB and CIF files for all entries*

Redirect output to a directory
```bash
mkdir human_top2a && affetch -o ./human_top2a P11388
```

EBI AlphaFold Download data - Search Results CSV File
```bash
tail -n +2 results-csv.csv | while IFS='-' read -r f1 f2 f3; do echo $f2; done | affetch -
```

Don't know the UniProt ID? Use [getSequence] and pipe into `affetch`
```bash
getseq human top2a, mouse top2a, rat top2a | affetch -
```
*Pipe input arguments must be indicated with a dash `-`*


For more information, read the [docs](https://mansanlab.github.io/alphafoldfetch/)

## Credits

Inspired by [getSequence](https://github.com/alexholehouse/getSequence).
