[Biojava-l] RE: Sequence serialization exception - AlphabetManagerproblem?

Vasa Curcin vc100 at doc.ic.ac.uk
Tue Oct 21 23:30:47 EDT 2003


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
>  
>





More information about the Biojava-l mailing list