blast.pdb() limit?

Issue #642 new
Emilio Xavier Esposito created an issue

I am trying to download all the hits (PDB structures) from a BLAST search, but it appears the NCBI is limiting the number of PDB IDs returned to 100. For the 3ca2 example below, the RCSB indicates there are 610 structures with 100% sequence identity; https://www.rcsb.org/pdb/explore/sequenceCluster.do?structureId=3CA2&entity=1&seqid=100.

Other than searching and downloading the structures using the RCSB and then loading them into R, is there a known workaround?

pdb.3ca2 <- read.pdb("3ca2")
seq.3ca2 <- pdbseq(pdb.3ca2)
BLAST.3ca2 <- blast.pdb(seq.3ca2, database="pdb", time.out=NULL)
 Searching ... please wait (updates every 5 seconds) RID = 3TD29DVC015 
 .
 Reporting 100 hits
hits.3ca2 <- plot.blast(BLAST.3ca2, cutoff=NULL)
  * Possible cutoff values:    709 709 
            Yielding Nhits:    1 100 

  * Chosen cutoff value of:    709 
            Yielding Nhits:    100 

I am using R version 3.5.2 (2018-12-20) on x86_64-apple-darwin15.6.0 (64-bit) running under: macOS Mojave 10.14.2 and bio3d_2.3-4. Please let me know if you need additional information.

Thank you!

Comments (4)

  1. Xinqiu Yao

    Hi Emilio,

    Thanks for reporting this.

    You can try hmm <- hmmer(seq.3ca2, db="pdb"); hits <- plot(hmm), which will give you much more results.

    Note that you might need to update bio3d to the master or releases branch of this repository to have a bugfix related to hmmer().

    Let me know if you have further questions.

  2. Emilio Xavier Esposito reporter

    Thank you Xin-Qiu!

    After upgrading to the current BitBucket version of bio3d (bio3d_2.3-4.9000) the hmmer command works!

    What was the change and can a similar change be applied to blast.pdb?

  3. Xinqiu Yao

    Hi Emilio,

    hmmer() uses a different method and server to search homologs (but will give pretty much the same results as running blast). I will take a look of whether there is an option to remove the limitation in blast. Otherwise, there is nothing we can do with blast.pdb(). Hope these help.

  4. Log in to comment