[Biojava-dev] Jronn ModelLoader resource problem

Steve Darnell darnells at dnastar.com
Tue May 8 23:31:16 UTC 2012


Greetings,

I am having problems with loading resources for the Jronn (protein disorder) ModelLoader. With my usage, my program cannot locate the modelN.rec associated with the biojava3-protein-disorder module. I know that my program can locate other BioJava resources, such as the Blosum65 matrix in the biojava3-alignment module used by the SeqRes2AtomAligner class.

I noticed that ModelLoader.loadModels() uses a different coding pattern for getting a resource as a stream than other areas of BioJava. ModelLoader.loadModels() uses ClassLoader.getSystemResourceAsStream while SubstitutionMartixHelper.getReader uses $BIOJAVA_CLASS.class.getResourceAsStream().

The following change to ModelLoader.java (line 163) works in my use case:

> Original

	    final BufferedReader bfr = new BufferedReader(
	    	new InputStreamReader(ClassLoader.getSystemResourceAsStream(
			    "model" + i + ".rec"),
			    "ISO-8859-1"));

< Patch

	    final BufferedReader bfr = new BufferedReader(
	    	new InputStreamReader(ModelLoader.class.getResourceAsStream(
	    			String.format("/model%d.rec", i))
		    ));

It appears that using the non-system resource method in the patch code searches for resources in more locations that the system resource method in the original code (http://docs.oracle.com/javase/6/docs/technotes/guides/lang/resources.html). The existing Jronn unit test for continues to work with the patch without modification.

I am asking for the ModelLoader class in org.biojava3.ronn (from the biojava3-protein-disorder module) to be modified as described before the next BioJava release, making the code more robust and more consistent with existing BioJava coding patterns. I would be happy to address any questions or comments.

Best regards,
Steve

--
Steve Darnell
DNASTAR, Inc.
Madison, WI USA





More information about the biojava-dev mailing list