[Biojava-l] Out of heap space during structure parsing.

Andreas Prlic andreas.prlic at gmail.com
Wed Mar 11 13:37:02 UTC 2009


Hi Paul,

If you want you can turn off the SEQRES to ATOM alignment part and
reduce memory requirements a bit.
You can do this with PdbFileParser.setAlignSeqRes(false); ...

Andreas



On Wed, Mar 11, 2009 at 1:06 PM, Paul B <tallpaulinjax at yahoo.com> wrote:
> Sorry, I sent this earlier and then I read that attaching a file can cause spam problems. So here is my netbeans.conf file inline showing  1024 Mg ram to be used for heap size:
>
> # ${HOME} will be replaced by JVM user.home system property
> # netbeans_default_userdir="${HOME}/.netbeans/6.5"
> # Options used by NetBeans launcher by default, can be overridden by explicit
> # command line switches:
> netbeans_default_options="-J-Dorg.glassfish.v3.installRoot=\"C:\Program Files\glassfish-v3-prelude\" -J-Dcom.sun.aas.installRoot=\"C:\Program Files\glassfish-v2ur2\" -J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true"
> # Note that a default -Xmx is selected for you automatically.
> # You can find this value in var/log/messages.log file in your userdir.
> # The automatically selected value can be overridden by specifying -J-Xmx here
> # or on the command line.
> # command line switches
> netbeans_default_options="-J-Xms32m -J-Xmx1024m -J-XX:PermSize=32m -J-XX:MaxPermSize=96m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled -J-XX:+UseParNewGC"
> # If you specify the heap size (-Xmx) explicitely, you may also want to enable
> # Concurrent Mark & Sweep garbage collector. In such case add the following
> # options to the netbeans_default_options:
> # -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled
> # -J-XX:+UseParNewGC
> # (see http://wiki.netbeans.org/wiki/view/FaqGCPauses)
> # Default location of JDK, can be overridden by using --jdkhome <dir>:
> netbeans_jdkhome="C:\Program Files\Java\jdk1.6.0_06"
> # Additional module clusters, using ${path.separator} (';' on Windows or ':' on Unix):
> #netbeans_extraclusters="/absolute/path/to/cluster1:/absolute/path/to/cluster2"
> # If you have some problems with detect of proxy settings, you may want to enable
> # detect the proxy settings provided by JDK5 or higher.
> # In such case add -J-Djava.net.useSystemProxies=true to the netbeans_default_options.
>
>
> --- On Wed, 3/11/09, Paul B <tallpaulinjax at yahoo.com> wrote:
>
>
> From: Paul B <tallpaulinjax at yahoo.com>
> Subject: Out of heap space during structure parsing.
> To: biojava-l at biojava.org
> Date: Wednesday, March 11, 2009, 8:51 AM
>
>
>
>
>
>
>
> Hi,
>
> I am using BioJava 1.6.1 to parse PDB files. My machine has 2GB of RAM. I am using Netbeans 6.5 as my development environment with Java 1.6. My user-specific netbeans.conf file is attached, with a heap space of 1GB. The relevant BioJava code is below:
>
>     try {
>       pdbreader = new PDBFileReader();
>       pdbreader.setPath(localFilePath);
>       pdbreader.setAutoFetch(true);
>       struc = pdbreader.getStructureById(pdbCode);
>     ...
>
> Using this code, I had successfully parsed smaller PDB files like 2BEG and 1Q80. Then I tried to parse a slightly larger file 1FFK and received this message on the 'struc =' line:
>
> Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
>         at org.biojava.bio.alignment.NeedlemanWunsch.pairwiseAlignment(NeedlemanWunsch.java:411)
>         at org.biojava.bio.alignment.NeedlemanWunsch.getAlignment(NeedlemanWunsch.java:315)
>         at org.biojava.bio.structure.io.SeqRes2AtomAligner.align(SeqRes2AtomAligner.java:220)
>         at org.biojava.bio.structure.io.SeqRes2AtomAligner.align(SeqRes2AtomAligner.java:140)
>         at org.biojava.bio.structure.io.PDBFileParser.triggerEndFileChecks(PDBFileParser.java:2249)
>         at org.biojava.bio.structure.io.PDBFileParser.parsePDBFile(PDBFileParser.java:2155)
>         at org.biojava.bio.structure.io.PDBFileParser.parsePDBFile(PDBFileParser.java:2013)
>         at org.biojava.bio.structure.io.PDBFileReader.getStructureById(PDBFileReader.java:439)
>         at biojavatest.PdbDemo.grabPdbFileStruc(PdbDemo.java:105)
>         at biojavatest.PdbDemo.runTest(PdbDemo.java:67)
>         at biojavatest.PdbDemo.main(PdbDemo.java:58)
>
> Any suggestions? Is the problem specific to some deviation in 1FFK, or in BioJava's parser implementation?
>
> By the way, I am using BioJava simply as a parser, and I am then dumping the data into class objects of my own design and persisting them to a SQL Server database. As such, I don't need all the ATOM information held in memory. Perhaps there is a way to lazy load that information upon request?
>
> Is there a development version of BioJava that's downloadable and offers a more memory efficient way of grabbing data?
> Thanks,
>
> Paul
> _______________________________________________
> Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/biojava-l
>




More information about the Biojava-l mailing list