r1018 has a fix to the bug. Try updating and report back if the problem is not fixed yet.
HTH On 01/09/2012 10:35 AM, Felix Heeger wrote:
Hi, My configuration: Ubuntu 11.04 64bit 64 bit processor gcc version 4.5.2 felix On Fri, 2012-01-06 at 16:53 +0100, Manuel Holtgrewe wrote:What is your configuration (OS, 32/64 bit, compiler, version) On 01/06/2012 03:53 PM, Felix Heeger wrote:Hi Manuel, I did a fresh check out, but the still the same problem. However if I remove the last 6 records from the file it will be recognized. I also removed the first 6 records to make sure it is the file size that is causing the issue and not a specific record. Same result. In short: it is working for me if the file size is<= 8KB. felix On Fri, 2012-01-06 at 15:06 +0100, Manuel Holtgrewe wrote:I tested the program on the file that you attached and it worked. Does the program detect the format of the small file, too? $ make file_detect [...] $ ./sandbox/holtgrew/demos/file_detect /tmp/lane_5_p1.fastq Detected FASTQ. Could you try again with a fresh checkout? On 01/06/2012 02:35 PM, Felix Heeger wrote:Hi Manual, thank you for your effort. I checked your suggestion today and it did not fix my problem. Also your example program can not identify my FASTQ file. I am pretty sure it is valid FASTQ as other programs work fine on it. I attached the first part of the file, if you want to have a look at it. felix On Wed, 2011-12-21 at 18:31 +0100, Manuel Holtgrewe wrote:Felix, The documentation of checkStreamFormat() was misleading. I fixed it in [10948]. http://docs.seqan.de/seqan/dev2/?i=Function.checkStreamFormat (The documentation is regenerated every hour, so you might wait for a bit to see it). The following is a simple example program I compiled and tested. Please write another email, if the problem persists. HTH, Manuel #include<fstream> #include<iostream> #include<seqan/sequence.h> #include<seqan/stream.h> int main(int argc, char ** argv) { using namespace seqan; if (argc != 2) return 1; std::fstream in(argv[1]); RecordReader<std::fstream, SinglePass<> > reader(in); AutoSeqStreamFormat tagSelector; bool b = checkStreamFormat(reader, tagSelector); if (!b) { std::cerr<< "Could not detect file format!"<< std::endl; return 1; } // b is true if any format was detected successfully. if (tagSelector.tagId == 1) std::cerr<< "Detected FASTA."<< std::endl; else if (tagSelector.tagId == 2) std::cerr<< "Detected FASTQ."<< std::endl; else std::cerr<< "Unknown file format!"<< std::endl; return 0; } On 12/21/2011 05:15 PM, Felix Heeger wrote:Hi, I have to different functions I want to call depending on the fact if a input file is fasta or fastq format. My approach to this is:RecordReader<std::ifstream, SinglePass<> > reader(inFile); if (checkStreamFormat(reader, Fasta())) { std::cerr<< "Input file format is fasta."<< std::endl; [call function for fasta] } else if (checkStreamFormat(reader, Fastq())) { std::cerr<< "Input file format is fastq."<< std::endl; [call function for fastq] } else { std::cerr<< "ERORR: Input file format is not fasta or fastq."<< std::endl; return -1; }This works fine for fasta. However my fastq file is not recognized. I looked into the code for checkStreamFormat a bit and the file is not recognized because the iterator in the readRecord function reaches atEnd before the quality meta data for the 35th record is finished (l. 392). This happens with two different fastq files. So my theory is the following: In the checkStreamFormat function LimitRecordReaderInScope is used. The documentation states that this prevents the stream from "rebuffering". This probably prevents the reader from finishing to read the complete record and the recognition of the file fails. I hope I could make myself clear. I can also provide my code and a sample fastq file if it would be helpful. Cheers, felix _______________________________________________ seqan-dev mailing list seqan-dev@lists.fu-berlin.de https://lists.fu-berlin.de/listinfo/seqan-dev_______________________________________________ seqan-dev mailing list seqan-dev@lists.fu-berlin.de https://lists.fu-berlin.de/listinfo/seqan-dev_______________________________________________ seqan-dev mailing list seqan-dev@lists.fu-berlin.de https://lists.fu-berlin.de/listinfo/seqan-dev_______________________________________________ seqan-dev mailing list seqan-dev@lists.fu-berlin.de https://lists.fu-berlin.de/listinfo/seqan-dev_______________________________________________ seqan-dev mailing list seqan-dev@lists.fu-berlin.de https://lists.fu-berlin.de/listinfo/seqan-dev_______________________________________________ seqan-dev mailing list seqan-dev@lists.fu-berlin.de https://lists.fu-berlin.de/listinfo/seqan-dev