I just started trying out cell-annotator. However, I hit rate limits quite quickly. I first tried out the free tier by Anthropic, and then bought 5$ credits, but I keep hitting limits. I wonder what I can do to make this run. Here is what I did:
cell_ann = CellAnnotator(
adata,
species="danio rerio",
tissue="heart",
cluster_key="supercluster",
stage="adult",
provider="anthropic",
)
And then the output is
ranking genes
finished: added to `.uns['rank_genes_groups']`
'names', sorted np.recarray to be indexed by group ids
'scores', sorted np.recarray to be indexed by group ids
'logfoldchanges', sorted np.recarray to be indexed by group ids
'pvals', sorted np.recarray to be indexed by group ids
'pvals_adj', sorted np.recarray to be indexed by group ids (0:00:09)
e[1;31mERROR e[0m e[1m[e[0mAnthropicProvidere[1m]e[0m Anthropic API error: Error code: e[1;36m429e[0m - e[1m{e[0me[32m'type'e[0m: e[32m'error'e[0m, e[32m'error'e[0m: e[1m{e[0me[32m'type'e[0m:
e[32m'rate_limit_error'e[0m, e[32m'message'e[0m: e[32m"This request would exceed your organization's rate limit of 50,000 input e[0m
e[32mtokens per minute e[0me[32m(e[0me[32morg: 978ac82d-0ea5-475c-b0e1-f97f190a52f4, model: claude-haiku-4-5-20251001e[0me[32m)e[0me[32m. For e[0m
e[32mdetails, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for e[0m
e[32mcurrent usage. Reduce the prompt length or the maximum tokens requested, or try again later. View your e[0m
e[32mcurrent limits at https://console.anthropic.com/settings/limits. To raise this limit, purchase credits to e[0m
e[32madvance to the next usage tier at https://console.anthropic.com/settings/billing."e[0me[1m}e[0m, e[32m'request_id'e[0m:
e[32m'req_011Cbx7G5FYpVM6h2vxQQVnN'e[0me[1m}e[0m
Traceback e[1m(e[0mmost recent call laste[1m)e[0m:
File
e[32m"/projects/Fabian_Rost/data_analysis/brain-regeneration-atlas/scrnaseq/.pixi/envs/scrnaseq/lib/python3.13/e[0m
e[32msite-packages/cell_annotator/model/_providers.py"e[0m, line e[1;36m679e[0m, in query
response = e[1;35mself.client.messages.createe[0me[1m(e[0m
e[33mmodele[0m=e[35mmodele[0m,
e[33m...e[0me[1m<e[0me[1;36m4e[0me[39m lines>e[0me[33m...e[0m
e[39m e[0me[33mmessagese[0me[39m=e[0me[35mmessagese[0me[39m,e[0m
e[39m e[0me[1;39m)e[0m
e[39m File e[0m
e[32m"/projects/Fabian_Rost/data_analysis/brain-regeneration-atlas/scrnaseq/.pixi/envs/scrnaseq/lib/python3.13/e[0m
e[32msite-packages/anthropic/_utils/_utils.py"e[0me[39m, line e[0me[1;36m294e[0me[39m, in wrappere[0m
e[39m return e[0me[1;35mfunce[0me[1;39m(e[0me[39m*args, **kwargse[0me[1;39m)e[0m
e[39m File e[0m
e[32m"/projects/Fabian_Rost/data_analysis/brain-regeneration-atlas/scrnaseq/.pixi/envs/scrnaseq/lib/python3.13/e[0m
e[32msite-packages/anthropic/resources/messages/messages.py"e[0me[39m, line e[0me[1;36m1009e[0me[39m, in createe[0m
e[39m return e[0me[1;35mself._poste[0me[1;39m(e[0m
e[39m ~~~~~~~~~~^e[0m
e[39m e[0me[32m"/v1/messages"e[0me[39m,e[0m
e[39m ^^^^^^^^^^^^^^^e[0m
e[39m e[0me[33m...e[0me[39m<e[0me[1;36m30e[0me[39m linese[0me[1m>e[0me[33m...e[0m
e[33mstream_clse[0m=e[35mStreame[0me[1m[e[0mRawMessageStreamEvente[1m]e[0m,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
e[1m)e[0m
^
File
e[32m"/projects/Fabian_Rost/data_analysis/brain-regeneration-atlas/scrnaseq/.pixi/envs/scrnaseq/lib/python3.13/e[0m
e[32msite-packages/anthropic/_base_client.py"e[0m, line e[1;36m1535e[0m, in post
return e[1;35mcaste[0me[1m(e[0mResponseT, e[1;35mself.requeste[0me[1m(e[0mcast_to, opts, e[33mstreame[0m=e[35mstreame[0m, e[33mstream_clse[0m=e[35mstream_clse[0me[1m)e[0me[1m)e[0m
...
I think before buying 5$ credits, the rate limit was 10.000 tokens per minute, now this error message says 50.000 tokens per minute.
I believe the query I tried to run should cost less than 1 cent, at least according to the cell-annotator docs. So I assumed that should be possible with 5$ credits. Any ideas how I can make this run?