|
View:
New views
9 Messages
—
Rating Filter:
Alert me
|
|
|
ParseException when using interleaved Nexus fileHi everyone,
A quick question about the BioJava Nexus parser. I've been trying to use the Nexus file parser, simply by doing something like: NexusFileBuilder builder = new NexusFileBuilder(); NexusFileFormat.parseFile(builder, f); However, when parsing Nexus files that are interleaved, I get a ParseException. Is there a way to setup the parser provided by BioJava to handle interleaved Nexus files? Thanks, -David -- David Johnson School of Biological Sciences University of Reading _______________________________________________ Biojava-l mailing list - Biojava-l@... http://lists.open-bio.org/mailman/listinfo/biojava-l |
|
|
Re: ParseException when using interleaved Nexus fileCould you point me to an example of an interleaved file?
And also the full stack trace of the exception that gets thrown? cheers, Richard On 6 Aug 2009, at 18:03, David Johnson wrote: > Hi everyone, > > A quick question about the BioJava Nexus parser. I've been trying to > use the Nexus file parser, simply by doing something like: > > NexusFileBuilder builder = new NexusFileBuilder(); > NexusFileFormat.parseFile(builder, f); > > However, when parsing Nexus files that are interleaved, I get a > ParseException. > > Is there a way to setup the parser provided by BioJava to handle > interleaved Nexus files? > > Thanks, > -David > -- > David Johnson > School of Biological Sciences > University of Reading > _______________________________________________ > Biojava-l mailing list - Biojava-l@... > http://lists.open-bio.org/mailman/listinfo/biojava-l -- Richard Holland, BSc MBCS Operations and Delivery Director, Eagle Genomics Ltd T: +44 (0)1223 654481 ext 3 | E: holland@... http://www.eaglegenomics.com/ _______________________________________________ Biojava-l mailing list - Biojava-l@... http://lists.open-bio.org/mailman/listinfo/biojava-l |
|
|
Re: ParseException when using interleaved Nexus fileHi Richard,
Thanks for your mail. An example of an interleaved file can be found here: http://www.molecularevolution.org/si/resources/fileformats/files/dna.nex where the link pointing to the example file is from http://www.molecularevolution.org/si/resources/fileformats/ and under the NEXUS section. The specific error message is: "org.biojava.bio.seq.io.ParseException: Found unexpected token interleave=yes in CHARACTERS block" So it looks like the error is thrown reading the "interleave" parameter in the top of the data block, and before reaching the actual interleaved matrix data. Full stacktrace in attached .txt. Cheers, -David 2009/8/7 Richard Holland <holland@...>: > Could you point me to an example of an interleaved file? > > And also the full stack trace of the exception that gets thrown? > > cheers, > Richard > > On 6 Aug 2009, at 18:03, David Johnson wrote: > >> Hi everyone, >> >> A quick question about the BioJava Nexus parser. I've been trying to >> use the Nexus file parser, simply by doing something like: >> >> NexusFileBuilder builder = new NexusFileBuilder(); >> NexusFileFormat.parseFile(builder, f); >> >> However, when parsing Nexus files that are interleaved, I get a >> ParseException. >> >> Is there a way to setup the parser provided by BioJava to handle >> interleaved Nexus files? >> >> Thanks, >> -David >> -- >> David Johnson >> School of Biological Sciences >> University of Reading >> _______________________________________________ >> Biojava-l mailing list - Biojava-l@... >> http://lists.open-bio.org/mailman/listinfo/biojava-l > > -- > Richard Holland, BSc MBCS > Operations and Delivery Director, Eagle Genomics Ltd > T: +44 (0)1223 654481 ext 3 | E: holland@... > http://www.eaglegenomics.com/ > > -- David Johnson Post-doc Research Assistant School of Biological Sciences 506, Philip Lyle Research Building University of Reading Whiteknights Reading, RG6 6BX UK Tel: +44 (0) 118 378 4415 email: d.johnson@... web: http://www.rdg.ac.uk/~sis07dj Message ID org.biojava.bio.seq.io.ParseException Complete Message Found unexpected token interleave=yes in CHARACTERS block at org.biojavax.bio.phylo.io.nexus.CharactersBlockParser.parseToken(CharactersBlockParser.java:1177) at org.biojavax.bio.phylo.io.nexus.NexusFileListener$Abstract.parseToken(NexusFileListener.java:256) at org.biojavax.bio.phylo.io.nexus.NexusFileFormat$TokenParser.parseToken(NexusFileFormat.java:345) at org.biojavax.bio.phylo.io.nexus.NexusFileFormat$TokenParser.access$100(NexusFileFormat.java:296) at org.biojavax.bio.phylo.io.nexus.NexusFileFormat.parse(NexusFileFormat.java:266) at org.biojavax.bio.phylo.io.nexus.NexusFileFormat.parseReader(NexusFileFormat.java:117) at org.biojavax.bio.phylo.io.nexus.NexusFileFormat.parseFile(NexusFileFormat.java:79) at uk.ac.rdg.evo.portal.NexusUtil.parseFile(NexusUtil.java:24) at uk.ac.rdg.evo.portal.panels.BayesPhyloJobStep1Panel$UploadNexusForm.onSubmit(BayesPhyloJobStep1Panel.java:65) at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1518) at org.apache.wicket.markup.html.form.Form.process(Form.java:914) at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:876) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182) at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73) at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1241) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1320) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1419) at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:289) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) _______________________________________________ Biojava-l mailing list - Biojava-l@... http://lists.open-bio.org/mailman/listinfo/biojava-l |
|
|
Re: ParseException when using interleaved Nexus fileThanks David. One more quick question - is this the exact file that is
throwing the exception? I haven't tested it yet - but if I could test against the real file that is throwing the problem, that would help me find out exactly what's going wrong. For what it's worth, the exception is normally thrown when more than one interleave=yes/no token is found in the header of the Data or Characters block, or when the interleave token appears in a line other than the Format line of the header. cheers, Richard On 7 Aug 2009, at 10:28, David Johnson wrote: > Hi Richard, > > Thanks for your mail. An example of an interleaved file can be found > here: > > http://www.molecularevolution.org/si/resources/fileformats/files/dna.nex > > where the link pointing to the example file is from > http://www.molecularevolution.org/si/resources/fileformats/ and under > the NEXUS section. > > The specific error message is: "org.biojava.bio.seq.io.ParseException: > Found unexpected token interleave=yes in CHARACTERS block" > > So it looks like the error is thrown reading the "interleave" > parameter in the top of the data block, and before reaching the actual > interleaved matrix data. Full stacktrace in attached .txt. > > Cheers, > -David > > 2009/8/7 Richard Holland <holland@...>: >> Could you point me to an example of an interleaved file? >> >> And also the full stack trace of the exception that gets thrown? >> >> cheers, >> Richard >> >> On 6 Aug 2009, at 18:03, David Johnson wrote: >> >>> Hi everyone, >>> >>> A quick question about the BioJava Nexus parser. I've been trying to >>> use the Nexus file parser, simply by doing something like: >>> >>> NexusFileBuilder builder = new NexusFileBuilder(); >>> NexusFileFormat.parseFile(builder, f); >>> >>> However, when parsing Nexus files that are interleaved, I get a >>> ParseException. >>> >>> Is there a way to setup the parser provided by BioJava to handle >>> interleaved Nexus files? >>> >>> Thanks, >>> -David >>> -- >>> David Johnson >>> School of Biological Sciences >>> University of Reading >>> _______________________________________________ >>> Biojava-l mailing list - Biojava-l@... >>> http://lists.open-bio.org/mailman/listinfo/biojava-l >> >> -- >> Richard Holland, BSc MBCS >> Operations and Delivery Director, Eagle Genomics Ltd >> T: +44 (0)1223 654481 ext 3 | E: holland@... >> http://www.eaglegenomics.com/ >> >> > > > > -- > David Johnson > Post-doc Research Assistant > School of Biological Sciences > 506, Philip Lyle Research Building > University of Reading > Whiteknights > Reading, RG6 6BX > UK > > Tel: +44 (0) 118 378 4415 > email: d.johnson@... > web: http://www.rdg.ac.uk/~sis07dj > <nexusInterleavedParseException_stacktrace.txt> -- Richard Holland, BSc MBCS Operations and Delivery Director, Eagle Genomics Ltd T: +44 (0)1223 654481 ext 3 | E: holland@... http://www.eaglegenomics.com/ _______________________________________________ Biojava-l mailing list - Biojava-l@... http://lists.open-bio.org/mailman/listinfo/biojava-l |
|
|
Re: ParseException when using interleaved Nexus fileHi Richard,
Actually the original exception was thrown in a different file that my supervisor tried uploading to a Web app I'm developing that uses the BioJava Nexus parser, but can't get hold of that particular file today. So the one I provided the link for was just another example of an interleaved Nexus file I Googled for when I got your first email this morning, as I figured they'd probably be the same formatting. But I remember it's definitely the same exception in both cases. I had a quick look in the example I provided today, and the interleave=yes token is definitely in the header of the data block, and is also definitely in the Format line. Oh, just FYI, I'm using the BioJava 1.7 binary distribution (http://www.biojava.org/download/bj17/bin/biojava.jar). Cheers, -David 2009/8/7 Richard Holland <holland@...>: > Thanks David. One more quick question - is this the exact file that is > throwing the exception? I haven't tested it yet - but if I could test > against the real file that is throwing the problem, that would help me find > out exactly what's going wrong. > > For what it's worth, the exception is normally thrown when more than one > interleave=yes/no token is found in the header of the Data or Characters > block, or when the interleave token appears in a line other than the Format > line of the header. > > cheers, > Richard > > On 7 Aug 2009, at 10:28, David Johnson wrote: > >> Hi Richard, >> >> Thanks for your mail. An example of an interleaved file can be found here: >> >> http://www.molecularevolution.org/si/resources/fileformats/files/dna.nex >> >> where the link pointing to the example file is from >> http://www.molecularevolution.org/si/resources/fileformats/ and under >> the NEXUS section. >> >> The specific error message is: "org.biojava.bio.seq.io.ParseException: >> Found unexpected token interleave=yes in CHARACTERS block" >> >> So it looks like the error is thrown reading the "interleave" >> parameter in the top of the data block, and before reaching the actual >> interleaved matrix data. Full stacktrace in attached .txt. >> >> Cheers, >> -David >> >> 2009/8/7 Richard Holland <holland@...>: >>> >>> Could you point me to an example of an interleaved file? >>> >>> And also the full stack trace of the exception that gets thrown? >>> >>> cheers, >>> Richard >>> >>> On 6 Aug 2009, at 18:03, David Johnson wrote: >>> >>>> Hi everyone, >>>> >>>> A quick question about the BioJava Nexus parser. I've been trying to >>>> use the Nexus file parser, simply by doing something like: >>>> >>>> NexusFileBuilder builder = new NexusFileBuilder(); >>>> NexusFileFormat.parseFile(builder, f); >>>> >>>> However, when parsing Nexus files that are interleaved, I get a >>>> ParseException. >>>> >>>> Is there a way to setup the parser provided by BioJava to handle >>>> interleaved Nexus files? >>>> >>>> Thanks, >>>> -David >>>> -- >>>> _______________________________________________ Biojava-l mailing list - Biojava-l@... http://lists.open-bio.org/mailman/listinfo/biojava-l |
|
|
Re: ParseException when using interleaved Nexus fileI've found the problem - "interleave=yes" is not valid according to
the official NEXUS format spec which the parser was written against. (Maddison et al., 1997) Interleaved file are supposed to only include the word "interleave" - it takes no parameters. Non-interleaved files shouldn't mention it at all. I've modified the parser to tolerate this but I'd be interested to know where the invalid token came from - was it added manually, or by an existing piece of publically available software? The modification has been made in the trunk of the biojava-live subversion repository. cheers, Richard On 7 Aug 2009, at 11:10, David Johnson wrote: > Hi Richard, > > Actually the original exception was thrown in a different file that my > supervisor tried uploading to a Web app I'm developing that uses the > BioJava Nexus parser, but can't get hold of that particular file > today. So the one I provided the link for was just another example of > an interleaved Nexus file I Googled for when I got your first email > this morning, as I figured they'd probably be the same formatting. But > I remember it's definitely the same exception in both cases. > > I had a quick look in the example I provided today, and the > interleave=yes token is definitely in the header of the data block, > and is also definitely in the Format line. > > Oh, just FYI, I'm using the BioJava 1.7 binary distribution > (http://www.biojava.org/download/bj17/bin/biojava.jar). > > Cheers, > -David > > 2009/8/7 Richard Holland <holland@...>: >> Thanks David. One more quick question - is this the exact file that >> is >> throwing the exception? I haven't tested it yet - but if I could test >> against the real file that is throwing the problem, that would help >> me find >> out exactly what's going wrong. >> >> For what it's worth, the exception is normally thrown when more >> than one >> interleave=yes/no token is found in the header of the Data or >> Characters >> block, or when the interleave token appears in a line other than >> the Format >> line of the header. >> >> cheers, >> Richard >> >> On 7 Aug 2009, at 10:28, David Johnson wrote: >> >>> Hi Richard, >>> >>> Thanks for your mail. An example of an interleaved file can be >>> found here: >>> >>> http://www.molecularevolution.org/si/resources/fileformats/files/dna.nex >>> >>> where the link pointing to the example file is from >>> http://www.molecularevolution.org/si/resources/fileformats/ and >>> under >>> the NEXUS section. >>> >>> The specific error message is: >>> "org.biojava.bio.seq.io.ParseException: >>> Found unexpected token interleave=yes in CHARACTERS block" >>> >>> So it looks like the error is thrown reading the "interleave" >>> parameter in the top of the data block, and before reaching the >>> actual >>> interleaved matrix data. Full stacktrace in attached .txt. >>> >>> Cheers, >>> -David >>> >>> 2009/8/7 Richard Holland <holland@...>: >>>> >>>> Could you point me to an example of an interleaved file? >>>> >>>> And also the full stack trace of the exception that gets thrown? >>>> >>>> cheers, >>>> Richard >>>> >>>> On 6 Aug 2009, at 18:03, David Johnson wrote: >>>> >>>>> Hi everyone, >>>>> >>>>> A quick question about the BioJava Nexus parser. I've been >>>>> trying to >>>>> use the Nexus file parser, simply by doing something like: >>>>> >>>>> NexusFileBuilder builder = new NexusFileBuilder(); >>>>> NexusFileFormat.parseFile(builder, f); >>>>> >>>>> However, when parsing Nexus files that are interleaved, I get a >>>>> ParseException. >>>>> >>>>> Is there a way to setup the parser provided by BioJava to handle >>>>> interleaved Nexus files? >>>>> >>>>> Thanks, >>>>> -David >>>>> -- >>>>> -- Richard Holland, BSc MBCS Operations and Delivery Director, Eagle Genomics Ltd T: +44 (0)1223 654481 ext 3 | E: holland@... http://www.eaglegenomics.com/ _______________________________________________ Biojava-l mailing list - Biojava-l@... http://lists.open-bio.org/mailman/listinfo/biojava-l |
|
|
Re: ParseException when using interleaved Nexus fileHi Richard,
OK that's good to know... I suppose that's the problem with specifications - people don't always follow them! But I get the impression either some people think that using interleave=yes/no is standard practice, or it could be being generated by some other phylo software (e.g. maybe PAUP or some other tools). I had a talk with my supervisor and he actually can't find the specific programs that have been putting that in, but looking at a range of his Nexus files, there's quite a few that seem to use put in the yes/no bits, some files he received from other researchers. Are the modifications available in the latest automated build (on CruiseControl)? Cheers, -David 2009/8/11 Richard Holland <holland@...> > I've found the problem - "interleave=yes" is not valid according to the > official NEXUS format spec which the parser was written against. (Maddison > et al., 1997) > > Interleaved file are supposed to only include the word "interleave" - it > takes no parameters. Non-interleaved files shouldn't mention it at all. > > I've modified the parser to tolerate this but I'd be interested to know > where the invalid token came from - was it added manually, or by an existing > piece of publically available software? > > The modification has been made in the trunk of the biojava-live subversion > repository. > > cheers, > Richard > > > Biojava-l mailing list - Biojava-l@... http://lists.open-bio.org/mailman/listinfo/biojava-l |
|
|
Re: ParseException when using interleaved Nexus fileIt should already be on CruiseControl.
Standards in bioinformatics are a pain - people write them to describe the format of files their software outputs, then the very same people then produce files that break those standards without any additional documentation or explanation. (Genbank are one of the biggest offenders!) It makes it very hard to write parsers, because if you stick to the official spec there will always be files that don't work yet people insist are still valid, yet without prior documented evidence of invalid files that are considered to be valid, it is impossible to write a parser to cater for them. :) cheers, Richard On 11 Aug 2009, at 11:12, David Johnson wrote: > Hi Richard, > > OK that's good to know... I suppose that's the problem with > specifications - people don't always follow them! > > But I get the impression either some people think that using > interleave=yes/no is standard practice, or it could be being > generated by some other phylo software (e.g. maybe PAUP or some > other tools). > > I had a talk with my supervisor and he actually can't find the > specific programs that have been putting that in, but looking at a > range of his Nexus files, there's quite a few that seem to use put > in the yes/no bits, some files he received from other researchers. > > Are the modifications available in the latest automated build (on > CruiseControl)? > > Cheers, > -David > > 2009/8/11 Richard Holland <holland@...> > I've found the problem - "interleave=yes" is not valid according to > the official NEXUS format spec which the parser was written against. > (Maddison et al., 1997) > > Interleaved file are supposed to only include the word "interleave" > - it takes no parameters. Non-interleaved files shouldn't mention it > at all. > > I've modified the parser to tolerate this but I'd be interested to > know where the invalid token came from - was it added manually, or > by an existing piece of publically available software? > > The modification has been made in the trunk of the biojava-live > subversion repository. > > cheers, > Richard > > -- Richard Holland, BSc MBCS Operations and Delivery Director, Eagle Genomics Ltd T: +44 (0)1223 654481 ext 3 | E: holland@... http://www.eaglegenomics.com/ _______________________________________________ Biojava-l mailing list - Biojava-l@... http://lists.open-bio.org/mailman/listinfo/biojava-l |
|
|
Re: ParseException when using interleaved Nexus fileHi Richard,
Forgot to say after your last mail (ages ago now), thanks for all your help! The stuff I'm using the Nexus parser in works great now. Cheers, -David 2009/8/11 Richard Holland <holland@...>: > It should already be on CruiseControl. > > Standards in bioinformatics are a pain - people write them to describe the > format of files their software outputs, then the very same people then > produce files that break those standards without any additional > documentation or explanation. (Genbank are one of the biggest offenders!) It > makes it very hard to write parsers, because if you stick to the official > spec there will always be files that don't work yet people insist are still > valid, yet without prior documented evidence of invalid files that are > considered to be valid, it is impossible to write a parser to cater for > them. :) > > cheers, > Richard > > On 11 Aug 2009, at 11:12, David Johnson wrote: > >> Hi Richard, >> >> OK that's good to know... I suppose that's the problem with specifications >> - people don't always follow them! >> >> But I get the impression either some people think that using >> interleave=yes/no is standard practice, or it could be being generated by >> some other phylo software (e.g. maybe PAUP or some other tools). >> >> I had a talk with my supervisor and he actually can't find the specific >> programs that have been putting that in, but looking at a range of his Nexus >> files, there's quite a few that seem to use put in the yes/no bits, some >> files he received from other researchers. >> >> Are the modifications available in the latest automated build (on >> CruiseControl)? >> >> Cheers, >> -David >> >> 2009/8/11 Richard Holland <holland@...> >> I've found the problem - "interleave=yes" is not valid according to the >> official NEXUS format spec which the parser was written against. (Maddison >> et al., 1997) >> >> Interleaved file are supposed to only include the word "interleave" - it >> takes no parameters. Non-interleaved files shouldn't mention it at all. >> >> I've modified the parser to tolerate this but I'd be interested to know >> where the invalid token came from - was it added manually, or by an existing >> piece of publically available software? >> >> The modification has been made in the trunk of the biojava-live subversion >> repository. >> >> cheers, >> Richard >> >> Biojava-l mailing list - Biojava-l@... http://lists.open-bio.org/mailman/listinfo/biojava-l |
| Free embeddable forum powered by Nabble | Forum Help |