This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Tool: igblastr: A User-friendly R Wrapper to IgBLAST

Dear Biostars community,

I'm excited to announce the availability of igblastr, a new R/Bioconductor package that provides a user-firendly interface to IgBLAST.

The package makes it _super easy_ to install IgBLAST and to manage IgBLAST-compatible germline dbs from R/Bioconductor.

See https://github.com/HyrienLab/igblastr for a quick start, or the "igblastr overview" vignette available here for a more detailed introduction.

Hope you find it useful!

Cheers,

H.

igblast bioconductor r igblastr

Fantastic. You weren't kidding about "super easy." I went from having a plain RStudio install on a random mac to having the pretty igbrowser()'d view of some of our rhesus macaque abs in a couple minutes. I expect our R-savvy grad students are going to love this.

One odd thing I'm seeing is that my example rhesus antibodies are getting two extra AAs on the 5' end of CDRH3 versus what I expect with IMGT CDR definitions. One minimal reproducible example: take the sequence from GenBank entry PQ550586 and run:

igblastn(query, num_alignments_V=1, organism = "rhesus_monkey", domain_system = "imgt")$cdr3_aa

..and it gives YCARVPYYWYSGSYYHWYGLDS instead of ARVPYYWYSGSYYHWYGLDS like plain IgBLAST gives. If this is anything more complicated than me just misunderstanding something about igblastr, though, I'll follow up in a github issue instead.

I can think of a couple of things that could explain the two extra AAs that you get on the 5' end of the CDRH3 of PQ550586.1:

  1. the germline db that you're using with igblastr is different from the one you're using with your plain IgBLAST setup;
  2. igblastr uses complete and up-to-date internal data by default, rather than the internal data shipped with IgBLAST (the latter can be incomplete and/or outdated to various degree depending on the organism).

It would help to know a little bit more about your plain IgBLAST setup. In particular, what germline db was used.

Also what germline db are you using with igblastr? If you're using _OGRDB.rhesus_monkey.IGH+IGK+IGL.202602 (preinstalled in igblastr), then the internal data used by default is the data provided by OGRDB, which, unlike the internal data included in IgBLAST, is guaranteed to be current. Do you mind sharing the output of list_germline_dbs() (after doing use_germline_db())?

Note that you can instruct igblastn() to use the IgBLAST-provided internal data by passing custom_internal_data=NULL to it (see documentation of the custom_internal_data argument in ?igblastn for more information). Does this give you the CDRH3 that you expected (i.e. the CDRH3 without the two extra AAs)?

Hmm... so I tried with both, _OGRDB.rhesus_monkey.IGH+IGK+IGL.202602 and IMGT-202631-1.Macaca_mulatta.IGH+IGK+IGL, and I can't reproduce that:

library(igblastr)

## I've put PQ550586.1 nucleotide sequence (381 bp) in a local FASTA file.
query <- "../rhesus_monkey_bcr.fasta"

use_germline_db("_OGRDB.rhesus_monkey.IGH+IGK+IGL.202602")

igblastn(query, num_alignments_V=1)$cdr3_aa
# [1] "ARVPYYWYSGSYYHWYGLDS"

install_IMGT_germline_db("202631-1", "Macaca_mulatta")

use_germline_db("IMGT-202631-1.Macaca_mulatta.IGH+IGK+IGL")

igblastn(query, num_alignments_V=1)$cdr3_aa
# [1] "ARVPYYWYSGSYYHWYGLDS"

So it'd be really useful if you could show all the commands that got you here starting from a fresh R session.

H.

sessionInfo():

R version 4.6.0 beta (2026-04-16 r89899)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 24.04.4 LTS

Matrix products: default
BLAS:   /home/hpages/R/R-4.6.r89899/lib/libRblas.so 
LAPACK: /home/hpages/R/R-4.6.r89899/lib/libRlapack.so;  LAPACK version 3.12.1

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_GB              LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

time zone: America/Los_Angeles
tzcode source: system (glibc)

attached base packages:
[1] stats4    stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
[1] igblastr_1.2.19     Biostrings_2.80.1   Seqinfo_1.2.0      
[4] XVector_0.52.0      IRanges_2.46.0      S4Vectors_0.50.1   
[7] BiocGenerics_0.58.1 generics_0.1.4      tibble_3.3.1       

loaded via a namespace (and not attached):
 [1] jsonlite_2.0.0      selectr_0.6-0       compiler_4.6.0     
 [4] crayon_1.5.3        promises_1.5.0      Rcpp_1.1.2         
 [7] xml2_1.6.0          later_1.4.8         fastmap_1.2.0      
[10] R6_2.6.1            curl_7.1.0          GenomeInfoDb_1.48.0
[13] pillar_1.11.1       R.utils_2.13.0      rlang_1.3.0        
[16] websocket_1.4.4     otel_0.2.0          cli_3.6.6          
[19] magrittr_2.0.5      ps_1.9.3            rvest_1.0.5        
[22] processx_3.9.0      xtable_1.8-8        lifecycle_1.0.5    
[25] chromote_0.5.1      R.methodsS3_1.8.2   R.oo_1.27.1        
[28] vctrs_0.7.3         glue_1.8.1          httr_1.4.8         
[31] UCSC.utils_1.8.0    tools_4.6.0         pkgconfig_2.0.3

Oops, sorry, you're right, that wasn't a reproducible example! I skipped right over my germline database setup. I used IMGT for both approaches (so, in the IgBLAST web interface I selected "Rhesus monkey" and the "IMGT" in each drop-down menu for V, D, and J, and for igblastr, I installed and selected the IMGT rhesus germline.) I started re-testing with my script matched byte-for-byte with yours (even renamed the query path because why not) and it gave me the same output I saw before for IMGT, and NA (?) for OGRDB. But looking at my session info I realize my R version is 4.5; trying a clean install with the latest stable R, 4.6.1... I do get the expected AA sequence with OGRB now, but still not with IMGT.

So, specifically, I now get:

library(igblastr)

## I've put PQ550586.1 nucleotide sequence (381 bp) in a local FASTA file.
query <- "../rhesus_monkey_bcr.fasta"

use_germline_db("_OGRDB.rhesus_monkey.IGH+IGK+IGL.202602")

igblastn(query, num_alignments_V=1)$cdr3_aa
# [1] "ARVPYYWYSGSYYHWYGLDS"

install_IMGT_germline_db("202631-1", "Macaca_mulatta")

use_germline_db("IMGT-202631-1.Macaca_mulatta.IGH+IGK+IGL")

igblastn(query, num_alignments_V=1)$cdr3_aa
# [1] "YCARVPYYWYSGSYYHWYGLDS"

In a session with this sessionInfo():

R version 4.6.1 (2026-06-24)
Platform: x86_64-apple-darwin20
Running under: macOS Sonoma 14.6.1

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.6-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: America/New_York
tzcode source: internal

attached base packages:
[1] stats4    stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] igblastr_1.2.19     Biostrings_2.80.1   Seqinfo_1.2.0       XVector_0.52.0      IRanges_2.46.0      S4Vectors_0.50.1    BiocGenerics_0.58.1
[8] generics_0.1.4      tibble_3.3.1       

loaded via a namespace (and not attached):
 [1] crayon_1.5.3        vctrs_0.7.3         httr_1.4.8          cli_3.6.6           rlang_1.3.0         UCSC.utils_1.7.1    jsonlite_2.0.0     
 [8] xtable_1.8-8        glue_1.8.1          GenomeInfoDb_1.48.0 lifecycle_1.0.5     compiler_4.6.1      rvest_1.0.5         pkgconfig_2.0.3    
[15] R.oo_1.27.1         R.utils_2.13.0      R6_2.6.1            pillar_1.11.1       curl_7.1.0          magrittr_2.0.5      R.methodsS3_1.8.2  
[22] tools_4.6.1         xml2_1.6.0

That was on the aforementioned random mac; trying on an install of Fedora Linux 44 on a laptop... it works! On Linux I get the expected AA sequence with both germline databases while with the Mac I get those extra two AAs with the IMGT database.

I'm itching to dig into that further and pin down the problem but I'm slammed with a variety of things right now and I can't do more at the moment, unfortunately. I could file this as an issue on github if that's helpful. On the plus side I don't particularly need this addressed promptly even if I'm using igblastr; my own use would typically be on Linux anyway.

Thanks!

Thanks for providing the extra details.

I went on an old Intel Mac to try this but still wasn't able to reproduce:

library(igblastr)
query <- "../rhesus_monkey_bcr.fasta"

use_germline_db("_OGRDB.rhesus_monkey.IGH+IGK+IGL.202602")
igblastn(query, num_alignments_V=1)$cdr3_aa
# [1] "ARVPYYWYSGSYYHWYGLDS"

install_IMGT_germline_db("202631-1", "Macaca_mulatta")
use_germline_db("IMGT-202631-1.Macaca_mulatta.IGH+IGK+IGL")
igblastn(query, num_alignments_V=1)$cdr3_aa
# [1] "ARVPYYWYSGSYYHWYGLDS"

Can you please open an issue on GitHub about this when you get a chance? In addition to your sessionInfo(), please provide the output of list_germline_dbs() and igblast_info().

Here's mine:

list_germline_dbs()
#  db_name                                       V  D  J intdata auxdata  
#  _OGRDB.human.IGH+IGK+IGL.202410             342 31 23    TRUE    TRUE  
#  _OGRDB.human.IGH+IGK+IGL.202410.src         354 33 24    TRUE    TRUE  
#  _OGRDB.human.IGH+IGK+IGL.202605             367 31 23    TRUE    TRUE  
#  _OGRDB.human.IGH+IGK+IGL.202605.src         379 33 24    TRUE    TRUE  
#  _OGRDB.mouse.C57BL_6J.IGH+IGK+IGL.202410    196  8 22    TRUE    TRUE  
#  _OGRDB.mouse.CAST_EiJ.IGH+IGK+IGL.202603    184  9 22    TRUE    TRUE  
#  _OGRDB.mouse.LEWES_EiJ.IGH+IGK+IGL.202603   169 11 22    TRUE    TRUE  
#  _OGRDB.mouse.MSM_MsJ.IGH+IGK+IGL.202603     172  9 22    TRUE    TRUE  
#  _OGRDB.mouse.NOD_ShiLtJ.IGH+IGK+IGL.202205  149  9 22    TRUE    TRUE  
#  _OGRDB.mouse.PWD_PhJ.IGH+IGK+IGL.202410     184 10 22    TRUE    TRUE  
#  _OGRDB.rainbow_trout.IGH.202606              81 26 18    TRUE    TRUE  
#  _OGRDB.rhesus_monkey.IGH+IGK+IGL.202602    2294 72 39    TRUE    TRUE  
#  IMGT-202631-1.Macaca_mulatta.IGH+IGK+IGL    457 49 24   FALSE    TRUE *

igblast_info()
# igblast_root:        /Users/biocbuild/Library/Caches/org.R-project.R/R/igblastr/igblast_roots/1.22.0
# igblast_build:       igblast 1.22.0, build Oct 11 2023 17:32:55
# igblastn_version:    1.22.0
# makeblastdb_version: 2.15.0+
# OS/arch:             Darwin/x86_64
# igblast_organisms:   human, mouse, rabbit, rat, rhesus_monkey

Thanks again for your feedback. Would be really nice if we could get to the bottom of this.

H.

sessionInfo()

R version 4.6.1 Patched (2026-06-24 r90190)
Platform: x86_64-apple-darwin20
Running under: macOS Ventura 13.7.8

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.6-x86_64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.6-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_GB/en_US.UTF-8

time zone: America/New_York
tzcode source: internal

attached base packages:
[1] stats4    stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
[1] igblastr_1.3.19      Biostrings_2.81.6    Seqinfo_1.3.0       
[4] XVector_0.53.0       IRanges_2.47.2       S4Vectors_0.51.6    
[7] BiocGenerics_0.59.12 generics_0.1.4       tibble_3.3.1        

loaded via a namespace (and not attached):
 [1] jsonlite_2.0.0      selectr_0.6-0       compiler_4.6.1     
 [4] crayon_1.5.3        promises_1.5.0      Rcpp_1.1.2         
 [7] xml2_1.6.0          later_1.4.8         fastmap_1.2.0      
[10] R6_2.6.1            curl_7.1.0          GenomeInfoDb_1.49.1
[13] pillar_1.11.1       R.utils_2.13.0      rlang_1.3.0        
[16] websocket_1.4.4     otel_0.2.0          cli_3.6.6          
[19] magrittr_2.0.5      rvest_1.0.5         processx_3.9.0     
[22] xtable_1.8-8        lifecycle_1.0.5     chromote_0.5.1     
[25] R.methodsS3_1.8.2   R.oo_1.27.1         vctrs_0.7.3        
[28] glue_1.8.1          httr_1.4.8          tools_4.6.1        
[31] pkgconfig_2.0.3     UCSC.utils_1.9.0

Finally got to this; sorry for the delay: https://github.com/HyrienLab/igblastr/issues/11. I realized when looking more closely it's all FWR/CDR regions, I'd just only noticed CDR3 at first. I attached some more detail and the full AIRR output fields in case it helps. Thanks!

0 answers

No answers yet.

Log in to answer this question.