pdbsplit is broken in bio3d_2.3-1

Issue #411 resolved
Jonathan Gough created an issue

I found some sort of error whereby pdbsplit is broken in bio3d_2.3-1

if I load and use bi3d_2.2-2 the same command works.

The error is: Error in eval(substitute(expr), envir, enclos) : basic_string Calls: pdbsplit ... withVisible -> eval -> eval -> read.pdb -> .read_pdb -> .Call

Comments (7)

  1. Barry Grant

    Thanks for reporting Jonathan - we will check it out. Could you provide the information returned by sessionInfo() please. This will tell us your OS flavor and various other things we find useful for tracking down these things.

  2. Jonathan Gough reporter

    Here is the version that Does not work:

    R version 3.3.1 (2016-06-21) Platform: x86_64-apple-darwin13.4.0 (64-bit) Running under: OS X 10.12.1 (Sierra)

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

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

    other attached packages: [1] bio3d_2.3-1

    loaded via a namespace (and not attached): [1] parallel_3.3.1 Rcpp_0.12.7 grid_3.3.1

    This version does work:

    R version 3.3.1 (2016-06-21) Platform: x86_64-redhat-linux-gnu (64-bit) Running under: CentOS Linux 7 (Core)

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

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

    other attached packages: [1] bio3d_2.2-2

    loaded via a namespace (and not attached): [1] parallel_3.3.1 grid_3.3.1

  3. Barry Grant

    I can't reproduce this error on the same Mac OS sierra and package versions. Can I ask what file you were actually trying to split at the time of the error please? Thanks!

  4. Xinqiu Yao

    Seems read.pdb() didn't work. Can you find out which pdb file that caused the problem? (For example, using pdbsplit(pdb.files, verbose=TRUE, ncore=1) and pay attention to the message). Then, you may try read.pdb("the_problem_pdb_file") to see if it works.

    Also, it would be good to know if the version 2.3-1 works on your Linux system.

  5. Jonathan Gough reporter

    Here is one version of what I did:

    library(bio3d) pdb <- read.pdb("2OWB.pdb") seq <- pdbseq(pdb) blast <- blast.pdb(seq) hits <- plot.blast(blast, cluster=TRUE) files <- get.pdb(hits, path="all_pdbs", split = FALSE) chainsplit <- pdbsplit(files, path = "split") pdbs <- pdbaln(chainsplit) pdbs <- pdbfit(pdbs, outpath="aligned/") quit()

    Here is the other version where I protonated them before splitting. I get the same error as the other script:

    library(bio3d) seq <- pdbseq(pdb) blast <- blast.pdb(seq) hits <- plot.blast(blast, cluster=TRUE) files <- get.pdb(hits, path="all_pdbs", split = FAL cmd_base <- "reduce" outfiles <- paste0(files,"_H.pdb") out <- paste0(" > ") cmds <- paste(cmd_base, files, out, outfiles) for(i in 1:length(cmds)) { system(cmds[i]) ## you will likely want to catch errors with 'try()'' etc. } chainsplit <- pdbsplit(outfiles, path = "split_chain") pdbs <- pdbaln(chainsplit) pdbs <- pdbfit(pdbs, outpath="H_aligned/") quit()

  6. Lars Skjærven

    Hi Jonathan, I tested your script, and it seems to be working fine here.

    Note that pdbfit outputs only the coordinates and not the full pdbs object. Thus, you last command here will make pdbs to an xyz object . which is possibly not what you want. Use pdbs$xyz <- pdbfit(pdbs, outpath="aligned/") instead

  7. Log in to comment