Skip to content

Convenience Python APIs for antibody numbering using ANARCI

License

Notifications You must be signed in to change notification settings

prihoda/AbNumber

Repository files navigation

AbNumber

Build & Test BioConda Install Docs

Convenience Python APIs for antibody numbering and alignment using ANARCI

Try it out in your browser using Binder: Binder

Features:

  • Streamlined Python API using Chain object
  • Identifying CDR regions, e.g. using chain.regions or chain.cdr3_seq
  • Indexing and slicing, e.g. using chain['5'] or chain['H2':'H5']
  • Pairwise and multiple sequence alignment in the given numbering using chain.align(another)
  • Alignment to nearest human germline using chain.align(chain.find_merged_human_germline())
  • Humanization using CDR grafting by chain.graft_cdrs_onto_human_germline()

See AbNumber Documentation for the full reference.

Installation

Install using Bioconda:

conda install -c bioconda abnumber

Note: Windows is not supported due to HMMER dependency. AbNumber is currently only available on UNIX & MacOS.

Examples

from abnumber import Chain

seq = 'QVQLQQSGAELARPGASVKMSCKASGYTFTRYTMHWVKQRPGQGLEWIGYINPSRGYTNYNQKFKDKATLTTDKSSSTAYMQLSSLTSEDSAVYYCARYYDDHYCLDYWGQGTTLTVSSAKTTAPSVYPLA'
chain = Chain(seq, scheme='imgt')

chain
# QVQLQQSGAELARPGASVKMSCKASGYTFTRYTMHWVKQRPGQGLEWIGYINPSRGYTNYNQKFKDKATLTTDKSSSTAYMQLSSLTSEDSAVYYCARYYDDHYCLDYWGQGTTLTVSS
#                          ^^^^^^^^                 ^^^^^^^^                                      ^^^^^^^^^^^^

chain.cdr3_seq
# ARYYDDHYCLDY

chain.print(numbering=True)
# 0        1        2         3     4         5         6       7        8         9         10        11       12       
# 12345678912345678901234567890567890123456789012345678923456789012456789012345678901234567890123456789023456789012345678
# QVQLQQSGAELARPGASVKMSCKASGYTFTRYTMHWVKQRPGQGLEWIGYINPSRGYTNYNQKFKDKATLTTDKSSSTAYMQLSSLTSEDSAVYYCARYYDDHYCLDYWGQGTTLTVSS
#                          ^^^^^^^^                 ^^^^^^^^                                      ^^^^^^^^^^^^           

Chain can be iterated:

for pos, aa in chain:
    print(pos, aa)
# H1  Q
# H2  V
# H3  Q
# H4  L
# H5  Q

Chain can also be indexed and sliced using scheme numbering:

chain['5']
# 'Q'
for pos, aa in chain['H2':'H5']:
    print(pos, aa)
# H2  V
# H3  Q
# H4  L
# H5  Q

For all methods see AbNumber Documentation

Credits

See ANARCI on GitHub and the ANARCI paper: ANARCI: antigen receptor numbering and receptor classification