Thanks for pointing this out, Stefan. The problem is that the NucleotideCompound class does not have a zero-args constructor. That means you need to tweak kryo a bit. Kryo can be configured to use an InstantiatorStrategy to handle creating instances of a class. https://github.com/EsotericSoftware/kryo/blob/master/README.md
Having said that, we need to improve the API and make something like this easier. Andreas On Wed, Feb 4, 2015 at 2:54 AM, stefan harjes <[email protected]> wrote: > I finally had some time to try the serialization/deserialization library > (Kryo) you mentioned, but I do not seem to get it to work. I can not even > save a DNASequence: > > void test() { > Kryo kryo = new Kryo(); > DNASequence dna=null; > try { > dna = new DNASequence("AGCT"); > } catch (CompoundNotFoundException e1) { > // TODO Auto-generated catch block > e1.printStackTrace(); > } > try { > Output output = new Output(new FileOutputStream("test.ser")); > kryo.writeObject(output, dna); > output.close(); > } catch (FileNotFoundException e) { > // TODO Auto-generated catch block > e.printStackTrace(); > } > try { > Input input = new Input(new FileInputStream("test.ser")); > dna = kryo.readObject(input, DNASequence.class); > input.close(); > } catch (FileNotFoundException e) { > // TODO Auto-generated catch block > System.out.println("file not found"); > e.printStackTrace(); > } > } > I tried several calls of Kryo and also registration, but I can not get it > to work.... Any ideas? > > > Cheers > Stefan > > > Andreas Prlic <[email protected]> schrieb am 3:47 Samstag, 31.Januar > 2015: > > > Hi Stefan, > > for your use case (save and load at server start/stop) I'd recommend the > Kryo library. It will store your data as a binary. Should be only two > lines of code each to persist and load the data. > https://github.com/EsotericSoftware/kryo > > You are right, writing is not very well developed, but then there are so > many utility libraries in Java that can be used for efficient > serialization/deserialization in many ways, once you have an object in > memory. > > Andreas > > > > On Fri, Jan 30, 2015 at 3:01 AM, stefan harjes <[email protected]> > wrote: > > Hi biojava-l > > > > I have a huge number of small sequences in an Array > (ListArray<Sequence<?>>) which for server start and stop I would like to > store on disk. Unfortunately Sequence is not serilizable, so I searched and > found that GenbankWriterHelper.writeSequences(OutputStream os, > Collection<Sequence<?>> seqs) should be able to do the job. > However when looking at GenbankReaderHelper, there are no methods which > correspond to the above writer method. Am I on the wrong track completely? > > When looking at the writer/reader helpers, I think I remember reading that > they are rudimentary and save only the sequence (fasta)? I would expect in > such an advanced verision of biojava (4.0 is being prepared?) that there > must be a standard way to serialize rich sequences/arrays of them in order > to send them around on streams/Json etc? > > Any help would be appreciated > > Cheers > Stefan > > > > >
_______________________________________________ Biojava-l mailing list - [email protected] http://mailman.open-bio.org/mailman/listinfo/biojava-l
