[Biojava-dev] DownloadChemCompProvider exception

Steve Darnell darnells at dnastar.com
Tue Jan 25 05:39:54 UTC 2011


Andreas,

Yes it would help.  I took a quick peek at your changes and I would recommend two small changes.

1. Rename the files _CON.cif.gz: Chrome and 7-Zip automatically append an underscore to the beginning of reserved filenames.  Firefox and Internet Explorer only prompt the error.  I have not found a style guideline for this condition; however, I would follow the existing "precedence" (even as limited as it is).

2. Add 'AUX' and 'NUL' to the list of protected IDs to avoid potential namespace clashes in the future


I have one additional comment based on this snippet of code:

import org.biojava.bio.structure.io.PDBFileReader;
import org.biojava.bio.structure.io.mmcif.DownloadChemCompProvider;

public class ChemCompDistribution {
	
	public static void main( String[] args ) {
		PDBFileReader r = new PDBFileReader();
		r.setPath("C:\\Users\\darnells\\Desktop\\Chemical Component Dictionary\\");
		DownloadChemCompProvider.setPath("C:\\Users\\darnells\\Desktop\\Chemical Component Dictionary\\");
		DownloadChemCompProvider c = new DownloadChemCompProvider();
		c.setDownloadAll(true);
		c.checkDoFirstInstall();
	}
}

When using DownloadChemCompProvider.checkDoFirstInstall(), you end up using AllChemCompProvider.checkPath() and never call DownloadChemCompProvider.checkPath() (leaving DownloadChemCompProvider.path unset).  I got into a situation where I have to set the PDBFileReader path to download components.cif.gz and then set the DownloadChemCompProvider path separately to split it (never gets set otherwise).

I understand the reuse of AllChemCompProvider.downloadFile() influenced this implementation, but I think this problem should be resolved.  I suggest that setting the path in either PDBFileReader or DownloadChemCompProvider should lead to success.

Thanks again,
Steve

-----Original Message-----
From: andreas.prlic at gmail.com [mailto:andreas.prlic at gmail.com] On Behalf Of Andreas Prlic
Sent: Monday, January 24, 2011 7:22 PM
To: Steve Darnell
Cc: biojava-dev at lists.open-bio.org
Subject: Re: [Biojava-dev] DownloadChemCompProvider exception

Hi Steve,

thanks for spotting this. Would it help to rename the local files to
something like CON_1.cif.gz ? I just committed a check which is
mapping the ids to different filenames.

Andreas


On Mon, Jan 24, 2011 at 3:41 PM, Steve Darnell <darnells at dnastar.com> wrote:
> Greetings,
>
> I get the following exception when using the DownloadChemCompProvider on
> Windows (XP/Vista/7):
>
> Installing individual chem comp files ...
> java.io.FileNotFoundException: C:\Users\darnells\Desktop\Chemical
> Component Dictionary\chemcomp\CON.cif.gz (The handle is invalid)
>        at java.io.FileOutputStream.open(Native Method)
>        at java.io.FileOutputStream.<init>(Unknown Source)
>        at java.io.FileOutputStream.<init>(Unknown Source)
>        at
> org.biojava.bio.structure.io.mmcif.DownloadChemCompProvider.writeID(Down
> loadChemCompProvider.java:159)
>        at
> org.biojava.bio.structure.io.mmcif.DownloadChemCompProvider.split(Downlo
> adChemCompProvider.java:130)
>        at
> org.biojava.bio.structure.io.mmcif.DownloadChemCompProvider.checkDoFirst
> Install(DownloadChemCompProvider.java:99)
>        at
> steve.sandbox.playground.ChemCompDistribution.main(ChemCompDistribution.
> java:14)
> created 3990 chemical component files.
>
>
> The problem is that CON.cif.gz and PRN.cif.gz use the reserved Windows
> filenames 'CON' and 'PRN'
> (http://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words).
> These names are reserved regardless of the file extension.  I have
> spoken with RCSB in the past.  They are unable to change the code for
> these records (and the five affected PDB files: 2I7S, 1TUM, 1U1N, 1U1L,
> and 1CL8).
>
> At minimum, DownloadChemCompProvider should catch the exception and
> proceed with the remaining records.  This seems reasonable given the low
> number of affected PDB files.
>
> Regards,
> Steve
>
> _______________________________________________
> biojava-dev mailing list
> biojava-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/biojava-dev
>




More information about the biojava-dev mailing list