Dear Peter,the new <seqan/stream.h> module [1] provides the Stream concept, adaptions for <{io,f}stream>, <cstdio> stream classes as well as the class Stream with specializations for reading and writing GZ [2] and BZ2 streams. GZ streams are accessed via zlib which has to be available.
Based on these streams the RecordReader (the name could change but the API should be stable otherwise) class and its specializations [3] provide functionality for easy access to text files. Other useful contents of the stream module is lexical cast functionality [4]. We also have functionality to read FASTA and FASTQ files from streams as well as from String<MMapp<> > objects using the new Stream interface, you could look at the DDDoc documentation of functions read2 [6] and readRecord [7] or the benchmark_stream demo [5] or the tests of the stream module in the extras repository.
The documentation is a bit scarce at the moment. The API might slightly change in the future but should mainly be stable. On the positive sight: There are comprehensive tests for the new I/O code so it should work at least as well as the old code if not better and by our benchmarks, the performance for reading and writing FASTA/FASTQ is better with the new code.
Currently, thew new code coexists with the old input/output functionality but will eventually replace the old stream API.
Bests, Manuel [1] http://trac.mi.fu-berlin.de/seqan/wiki/Tutorial/FileIO2 [2] http://www.seqan.de/dddoc/html_devel/SPEC_G_Z+_File+_Stream.html [3] http://www.seqan.de/dddoc/html_devel/CLASS_Record_Reader.html [4] http://www.seqan.de/dddoc/html_devel/FUNCTION.lexical_Cast.html [5] http://trac.mi.fu-berlin.de/seqan/browser/trunk/seqan/extras/demos/benchmark_stream.cpp [6] http://www.seqan.de/dddoc/html_devel/FUNCTION.read2.html [7] http://www.seqan.de/dddoc/html_devel/FUNCTION.read_Record.html