alphafold

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package alphafold is the library behind the alphafold command line: the HTTP client, request shaping, and the typed data models for the EMBL-EBI AlphaFold Protein Structure Database.

The Client here is the spine every command shares. It sets a real User-Agent, paces requests so a busy session stays polite, and retries the transient failures (429 and 5xx) that any public API throws under load.

Index

Constants

View Source
const BaseURL = "https://" + Host

BaseURL is the root every request is built from.

View Source
const DefaultUserAgent = "alphafold-cli/dev (+https://github.com/tamnd/alphafold-cli)"

DefaultUserAgent identifies the client to AlphaFold.

View Source
const Host = "alphafold.ebi.ac.uk"

Host is the AlphaFold site this client talks to.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	HTTP      *http.Client
	UserAgent string
	// Rate is the minimum gap between requests. Zero means no pacing.
	Rate    time.Duration
	Retries int
	// contains filtered or unexported fields
}

Client talks to AlphaFold over HTTP.

func NewClient

func NewClient() *Client

NewClient returns a Client with sensible defaults: a 30s timeout, a 300ms minimum gap between requests, and three retries on transient errors.

func (*Client) Get

func (c *Client) Get(ctx context.Context, rawURL string) ([]byte, error)

Get fetches rawURL and returns the response body. It paces and retries according to the client's settings. The body is read fully and closed here.

func (*Client) GetPrediction

func (c *Client) GetPrediction(ctx context.Context, uniprotAccession string) ([]*Prediction, error)

GetPrediction fetches all structure prediction fragments for a UniProt accession (e.g. "P04637"). Returns one Prediction per fragment entry.

type Domain

type Domain struct{}

Domain is the AlphaFold driver. It carries no state; the per-run client is built by the factory Register hands kit.

func (Domain) Classify

func (Domain) Classify(input string) (uriType, id string, err error)

Classify turns any accepted input — a UniProt accession or an AlphaFold entry id — into the canonical (type, id). Any non-empty string is accepted.

func (Domain) Info

func (Domain) Info() kit.DomainInfo

Info describes the scheme, the hostnames a pasted link is matched against, and the identity reused for the binary's help and version.

func (Domain) Locate

func (Domain) Locate(uriType, id string) (string, error)

Locate is the inverse: the live https URL for a (type, id). If id starts with "AF-" it is an entryId and used directly. Otherwise id is treated as a UniProt accession.

func (Domain) Register

func (Domain) Register(app *kit.App)

Register installs the client factory and every operation onto app.

type Prediction

type Prediction struct {
	ID          string  `json:"id"                   kit:"id"`
	UniProtID   string  `json:"uniprot_id,omitempty"`
	Description string  `json:"description,omitempty"`
	Gene        string  `json:"gene,omitempty"`
	Organism    string  `json:"organism,omitempty"`
	TaxID       int     `json:"tax_id,omitempty"`
	Version     int     `json:"version,omitempty"`
	ModelDate   string  `json:"model_date,omitempty"`
	IsReviewed  bool    `json:"is_reviewed,omitempty"`
	GlobalScore float64 `json:"plddt_score,omitempty"`
	PdbURL      string  `json:"pdb_url,omitempty"`
	SequenceLen int     `json:"sequence_length,omitempty"`
}

Prediction is a single AlphaFold predicted protein structure record.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL