Error while running mktrj.enma() on aanma.pdbs() output object

Issue #368 resolved
Former user created an issue

I used the Bio3d R package to analyze rho proteins. Starting with the input structure 5FR1_A, i went onto to perform a pdb blast and obtain relevant hits with a bit score cutoff of 273 yielding 56 hits. After trimming the pdbs with missing in structure residues, I had 47 PDB structures remaining. I performed an all atom NMA on the final pdbs object containing 47 structures using the function aanma.pdbs() I am encountering an error when i was trying to generate a NMA trajectory for the all atom NMA object obtained from the input pdbs.

library(bio3d)

aa <- get.seq("5FR1")

blast <- blast.pdb(aa)

hits <- plot(blast, cutoff=273)

# fetching PDBs
raw.files <- get.pdb(hits$pdb.id)

# splitting by chain ID
files <- pdbsplit(raw.files, ids = hits$pdb.id)

# aligning structures
pdbs.all <- pdbaln(files, fit=TRUE)

#Trim Pdbs
conn <- inspect.connectivity(pdbs.all, cut=4)

pdbs <- trim.pdbs(pdbs.all, row.inds=which(conn))

#all atom NMA
allatom_nma <- aanma.pdbs(pdbs, rm.gaps=T)

#Making NMA diplacement trajectory
mktrj.enma(allatom_nma, pdbs, m.inds=1, s.inds=1)

##ERROR: 
## Error in matrix(colSums(rbind(gap.pos1, gap.pos2), na.rm = TRUE), ncol = ncol(x)) : non-numeric matrix extent

#Session Info

R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8 x64 (build 9200)

locale:
[1] LC_COLLATE=English_India.1252  LC_CTYPE=English_India.1252    LC_MONETARY=English_India.1252
[4] LC_NUMERIC=C                   LC_TIME=English_India.1252    

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

other attached packages:
[1] RCurl_1.95-4.8   bitops_1.0-6     XML_3.98-1.4     bio3d_2.2-3.9000

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

Comments (3)

  1. Xinqiu Yao

    Should be fixed by the latest commit here. Update your local 'feature_aanma' branch and try it again.

    Also note that the format of input has been changed in the new version: You need to generate a 'pdbs' with 'read.all()' and then use the 'pdbs' for 'aanma.pdbs()'. For example

    ## assume your original pdbs object is named 'pdbs'
    
    pdbs <- read.all(pdbs)
    
    modes <- aanma(pdbs)
    

    Check help(aanma.pdbs) and help(read.all) for more details.

    Let me know if you have any problem!

  2. Log in to comment