[Biojava-l] RE: Sequence serialization exception
- AlphabetManagerproblem?
Schreiber, Mark
mark.schreiber at agresearch.co.nz
Wed Oct 22 18:19:43 EDT 2003
Hi -
Binary serialization of protein sequences is currently broken. I need to move to a pattern of using LSIDs to identify them uniquely. This should fix the problem. Just need to find time to do it <sigh>
- Mark
-----Original Message-----
From: Vasa Curcin [mailto:vc100 at doc.ic.ac.uk]
Sent: Wednesday, 22 October 2003 4:31 p.m.
To: Schreiber, Mark
Cc: msouthern at exsar.com; biojava-l at biojava.org
Subject: Re: [Biojava-l] RE: Sequence serialization exception - AlphabetManagerproblem?
Having exactly the same problem here with serializing SimpleSequence
objects containing proteins. It doesn't like MET... Was there a solution
found?
Vasa
Schreiber, Mark wrote:
>Hi -
>
>I am not getting the exception you have below (which looks like one
>from before we fixed the EmblFileFormer). I am however getting an InvalidObjectException which is comming from something odd in the AlphabetManager. I'll have a look into it.
>
>java.io.InvalidObjectException: Couldn't resolve symbol:MET
> at
>org.biojava.bio.symbol.AlphabetManager$WellKnownAtomicSymbol$OPH.readResolve(AlphabetManager.java:1480)
>
>- Mark
>
>
> -----Original Message-----
> From: Mark Southern [mailto:msouthern at exsar.com]
> Sent: Tue 7/10/2003 3:50 a.m.
> To: Schreiber, Mark; biojava-l at biojava.org
> Cc:
> Subject: RE: [Biojava-l] RE: Sequence serialization exception -
>AlphabetManagerproblem?
>
>
>
> Hi Mark,
>
> I have downloaded and tested the latest EmblFileFormer.java (1.24.2.1) and
> it can now successfully write out a swissprot format file after first having
> written it in (Thank you).
> However, i am still seeing an exception attempting to read in a serialized
> sequence. Test code and exception below.
>
> Best regards,
>
> Mark.
>
> //------------------------------------------
>
> public static void main(String[] args) throws Exception{
> File file = new File("c:\\temp\\sequence.ser");
> String seqFile = "c:\\temp\\KAP0_BOVIN.swiss";
>
> SequenceIterator iter = (SequenceIterator) SeqIOTools.fileToBiojava(
> SeqIOConstants.SWISSPROT, new BufferedReader( new FileReader( seqFile
>) ) );
>
> Sequence seq = iter.nextSequence();
>
> // this now works
> //SeqIOTools.biojavaToFile( SeqIOConstants.SWISSPROT, System.out,
> seq );
>
> ObjectOutputStream out = new ObjectOutputStream( new
> FileOutputStream(file) );
> out.writeObject( seq );
> out.flush();
> out.close();
>
> ObjectInputStream in = new ObjectInputStream( new
> FileInputStream(file) );
> // still get an error deserializing
> seq = (Sequence) in.readObject();
> in.close();
> }
>
> //------------------------------------------
> org.biojava.bio.symbol.IllegalSymbolException: Symbol ALA not found in
> alphabet DNA
> at
> org.biojava.bio.symbol.AbstractAlphabet.validate(AbstractAlphabet.java:278)
> at
> org.biojava.bio.symbol.AlphabetManager$ImmutableWellKnownAlphabetWrapper.val
> idate(AlphabetManager.java:1423)
> at
> org.biojava.bio.seq.io.CharacterTokenization._tokenizeSymbol(CharacterTokeni
> zation.java:178)
> at
> org.biojava.bio.seq.io.CharacterTokenization.tokenizeSymbol(CharacterTokeniz
> ation.java:191)
> at
> org.biojava.bio.symbol.AlphabetManager$WellKnownTokenizationWrapper.tokenize
> Symbol(AlphabetManager.java:1276)
> at
> org.biojava.bio.seq.io.AbstractGenEmblFileFormer.formatTokenBlock(AbstractGe
> nEmblFileFormer.java:337)
> at
> org.biojava.bio.seq.io.EmblFileFormer.addSymbols(EmblFileFormer.java:211)
> rethrown as org.biojava.bio.symbol.IllegalAlphabetException: DNA not
> tokenizing
> at
> org.biojava.bio.seq.io.EmblFileFormer.addSymbols(EmblFileFormer.java:224)
> at
> org.biojava.bio.seq.io.SeqIOEventEmitter.getSeqIOEvents(SeqIOEventEmitter.ja
> va:125)
> rethrown as org.biojava.bio.BioError: An internal error occurred processing
> symbols
> at
> org.biojava.bio.seq.io.SeqIOEventEmitter.getSeqIOEvents(SeqIOEventEmitter.ja
> va:137)
> at
> org.biojava.bio.seq.io.EmblLikeFormat.writeSequence(EmblLikeFormat.java:289)
> at
> org.biojava.bio.seq.io.EmblLikeFormat.writeSequence(EmblLikeFormat.java:253)
> at
> org.biojava.bio.seq.io.SeqIOTools.writeSwissprot(SeqIOTools.java:316)
> at org.biojava.bio.seq.io.SeqIOTools.seqToFile(SeqIOTools.java:1078)
> at
> org.biojava.bio.seq.io.SeqIOTools.biojavaToFile(SeqIOTools.java:870)
> at com.exsar.test.SerializeTest.main(SerializeTest.java:36)
>
>
> -----Original Message-----
> From: Schreiber, Mark [mailto:mark.schreiber at agresearch.co.nz]
> Sent: Wednesday, October 01, 2003 1:54 AM
> To: msouthern at exsar.com; biojava-l at biojava.org
> Subject: RE: [Biojava-l] RE: Sequence serialization exception -
> AlphabetManagerproblem?
>
>
> OK -
>
> I tracked it down to a bug in the EMBLFileFormer (which gets coopted for
> SwissProt writing). It assumed a DNA alphabet and therefore couldn't write
> protein in SwissProt format.
>
> I have checked it into CVS, I will port it back to the 1.3 branch of CVS
> shortly.
>
> - Mark
> -----Original Message-----
> From: Mark Southern [mailto:msouthern at exsar.com]
> Sent: Wed 1/10/2003 1:25 a.m.
> To: Schreiber, Mark; biojava-l at biojava.org
> Cc:
> Subject: RE: [Biojava-l] RE: Sequence serialization exception -
> AlphabetManagerproblem?
>
>
> Hi Mark,
>
> I did also have an error with binary serialization. I was just trying to
> approach to problem from a different direction. B/c that also was a problem
> with finding / determining a protein symbol, i wondered if was coming from
> AlphabetManager rather than the Swissprot writing. I include below the code
> fragment along with the serialization error.
>
> Best regards,
>
> Mark.
>
>
> public static void main(String[] args) throws Exception{
> File file = new File("c:\\temp\\sequence.ser");
> String seqFile = "c:\\temp\\KAP0_BOVIN.swiss";
>
> SequenceIterator iter = (SequenceIterator) SeqIOTools.fileToBiojava(
> SeqIOConstants.SWISSPROT
> ,
> new BufferedReader( new FileReader( seqFile ) ) );
>
> Sequence seq = iter.nextSequence();
>
> System.out.println("\nWriting Sequence object");
> ObjectOutputStream out = new ObjectOutputStream( new
> FileOutputStream(file) );
> out.writeObject( seq );
> out.flush();
> out.close();
>
> System.out.println("\nReading Sequence object");
> ObjectInputStream in = new ObjectInputStream( new
> FileInputStream(file) );
> seq = (Sequence) in.readObject();
> in.close();
>
> }
>
> Writing Sequence object
> Reading Sequence object
> java.io.InvalidObjectException: Couldn't resolve symbol:ALA
> at
> org.biojava.bio.symbol.AlphabetManager$WellKnownAtomicSymbol$OPH.readResolve
> (AlphabetManager.java:1480)
> 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:324)
> at
> java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:911)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1655)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1603)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
> at
> java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:452)
> at
> org.biojava.bio.seq.impl.SimpleSequence.readObject(SimpleSequence.java:119)
> 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:324)
> at
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:824)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
> at com.exsar.test.SerializeTest.main(SerializeTest.java:38)
> Exception in thread "main"
>
>
>
> -----Original Message-----
> From: Schreiber, Mark [mailto:mark.schreiber at agresearch.co.nz]
> Sent: Tuesday, September 30, 2003 6:28 AM
> To: msouthern at exsar.com; biojava-l at biojava.org
> Subject: RE: [Biojava-l] RE: Sequence serialization exception -
> AlphabetManagerproblem?
>
>
> Hi -
>
> I was a bit thrown off at first cause I thought you meant there was an error
> in binary serialization. There seems to be a problem with SwissProt writing.
> I've commited an addition to SeqIOToolsTest in biojava live that replicates
> the error but I haven't got time to track it down just yet. If some one else
> doesn't get it I'll probably find it tommorrow.
>
> - Mark
>
> -----Original Message-----
> From: Mark Southern [mailto:msouthern at exsar.com]
> Sent: Tue 30/09/2003 10:45 a.m.
> To: biojava-l at biojava.org
> Cc:
> Subject: [Biojava-l] RE: Sequence serialization exception -
> AlphabetManagerproblem?
>
>
> Appologies for following up on my own post. What follows is a simpler test
> than the serialization I attempted before.
>
> Consider the bit of code below and corresponding error message;
>
> For some reason, the protein sequence is being treated as a dna sequence. Is
> there something I am missing with respect to how AlphabetManager treats dna
> and protein alphabets?
>
> Any explainations would be most welcome.
>
> Thanks again,
>
> Mark.
>
>
>
>//------------------------------------------------------------------------
>
> public static void main(String[] args) throws Exception{
> String seqFile = "c:\\temp\\KAP0_BOVIN.swiss";
> SequenceIterator iter = (SequenceIterator)
> SeqIOTools.fileToBiojava(SeqIOConstants.SWISSPROT
>
> ,new BufferedReader( new FileReader( seqFile ) ) );
> Sequence seq = iter.nextSequence();
> SeqIOTools.biojavaToFile( SeqIOConstants.SWISSPROT, System.out,
> seq );
> }
>
>
> org.biojava.bio.symbol.IllegalSymbolException: Symbol ALA not found in
> alphabet DNA
> at
> org.biojava.bio.symbol.AbstractAlphabet.validate(AbstractAlphabet.java:278)
> at
> org.biojava.bio.symbol.AlphabetManager$ImmutableWellKnownAlphabetWrapper.val
> idate(AlphabetManager.java:1423)
> at
> org.biojava.bio.seq.io.CharacterTokenization._tokenizeSymbol(CharacterTokeni
> zation.java:178)
> at
> org.biojava.bio.seq.io.CharacterTokenization.tokenizeSymbol(CharacterTokeniz
> ation.java:191)
> at
> org.biojava.bio.symbol.AlphabetManager$WellKnownTokenizationWrapper.tokenize
> Symbol(AlphabetManager.java:1276)
> at
> org.biojava.bio.seq.io.AbstractGenEmblFileFormer.formatTokenBlock(AbstractGe
> nEmblFileFormer.java:337)
> at
> org.biojava.bio.seq.io.EmblFileFormer.addSymbols(EmblFileFormer.java:211)
> rethrown as org.biojava.bio.symbol.IllegalAlphabetException: DNA not
> tokenizing
> at
> org.biojava.bio.seq.io.EmblFileFormer.addSymbols(EmblFileFormer.java:224)
> at
> org.biojava.bio.seq.io.SeqIOEventEmitter.getSeqIOEvents(SeqIOEventEmitter.ja
> va:125)
> rethrown as org.biojava.bio.BioError: An internal error occurred processing
> symbols
> at
> org.biojava.bio.seq.io.SeqIOEventEmitter.getSeqIOEvents(SeqIOEventEmitter.ja
> va:137)
> at
> org.biojava.bio.seq.io.EmblLikeFormat.writeSequence(EmblLikeFormat.java:289)
> at
> org.biojava.bio.seq.io.EmblLikeFormat.writeSequence(EmblLikeFormat.java:253)
> at
> org.biojava.bio.seq.io.SeqIOTools.writeSwissprot(SeqIOTools.java:316)
> at org.biojava.bio.seq.io.SeqIOTools.seqToFile(SeqIOTools.java:1078)
> at
> org.biojava.bio.seq.io.SeqIOTools.biojavaToFile(SeqIOTools.java:870)
> at com.exsar.test.SerializeTest.main(SerializeTest.java:24)
>
>
>
> -----Original Message-----
> From: Mark Southern [mailto:msouthern at exsar.com]
> Sent: Monday, September 29, 2003 2:01 PM
> Cc: 'biojava-l at biojava.org'
> Subject: Sequence serialization exception
>
>
> I am getting the following exception when trying to serialize a protein
> sequence. I am using biojava 1.3. Can anyone please explain to me why?
>
> Many thanks,
>
> Mark.
>
>
> java.io.InvalidObjectException: Couldn't resolve symbol:SER
> at
> org.biojava.bio.symbol.AlphabetManager$WellKnownAtomicSymbol$OPH.readResolve
> (AlphabetManager.java:1441)
> 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:324)
> at
> java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:911)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1655)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1603)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
> at
> java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:452)
> at
> org.biojava.bio.seq.impl.SimpleSequence.readObject(SimpleSequence.java:119)
> 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:324)
> at
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:824)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
> at
> java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:452)
> at org.biojava.bio.seq.ViewSequence.readObject(ViewSequence.java:93)
> 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:324)
> at
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:824)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
> at java.util.HashMap.readObject(HashMap.java:985)
> at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
> .java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:824)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
> at java.util.HashMap.readObject(HashMap.java:986)
> at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
> .java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:824)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
> at com.exsar.hdex.model.calc.Test.main(Test.java:104)
>
>
>
>
>
> _______________________________________________
> Biojava-l mailing list - Biojava-l at biojava.org
> http://biojava.org/mailman/listinfo/biojava-l
>
>
>
>=======================================================================
>
> Attention: The information contained in this message and/or
>attachments
>
> from AgResearch Limited is intended only for the persons or entities
>
> to which it is addressed and may contain confidential and/or
>privileged
>
> material. Any review, retransmission, dissemination or other use of,
>or
>
> taking of any action in reliance upon, this information by persons or
>
> entities other than the intended recipients is prohibited by
>AgResearch
>
> Limited. If you have received this message in error, please notify the
>
> sender immediately.
>
>
>=======================================================================
>
>
>=======================================================================
>
> Attention: The information contained in this message and/or
>attachments
>
> from AgResearch Limited is intended only for the persons or entities
>
> to which it is addressed and may contain confidential and/or
>privileged
>
> material. Any review, retransmission, dissemination or other use of,
>or
>
> taking of any action in reliance upon, this information by persons or
>
> entities other than the intended recipients is prohibited by
>AgResearch
>
> Limited. If you have received this message in error, please notify the
>
> sender immediately.
>
>
>=======================================================================
>
>
>
>
>
>=======================================================================
>Attention: The information contained in this message and/or attachments
>from AgResearch Limited is intended only for the persons or entities to
>which it is addressed and may contain confidential and/or privileged
>material. Any review, retransmission, dissemination or other use of, or
>taking of any action in reliance upon, this information by persons or
>entities other than the intended recipients is prohibited by AgResearch
>Limited. If you have received this message in error, please notify the
>sender immediately.
>=======================================================================
>
>_______________________________________________
>Biojava-l mailing list - Biojava-l at biojava.org
>http://biojava.org/mailman/listinfo/biojava-l
>
>
=======================================================================
Attention: The information contained in this message and/or attachments
from AgResearch Limited is intended only for the persons or entities
to which it is addressed and may contain confidential and/or privileged
material. Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by persons or
entities other than the intended recipients is prohibited by AgResearch
Limited. If you have received this message in error, please notify the
sender immediately.
=======================================================================
More information about the Biojava-l
mailing list