Re: [Seqan-dev] problem in LoadReads
Hi Temesgen,
Thanks for your response
typedef seqan::FragmentStore<> THMMFragStore;
THMMFragStore fragStore;
if (!loadReads(fragStore, fn1_i, fn2_i)){
return false;
}
The reads are fastq format very small 5 megabytes each.
Regards,
Luis Ramirez
> I tried to reproduce your bug with the following simple code fragment:
>
> FragmentStore<> store;
>
> CharString fileNameR =
> “~/workspace/example/reads_pe_N6000.GA.R.fastq";
> CharString fileNameL =
> “~/workspace/example/reads_pe_N6000.CT.L.fastq";
>
> loadReads(store, fileNameR, fileNameR);
>
> and I couldn’t. All the reads were loaded correctly.
>
> Can you please provide me with a code fragment that can produce the
> problem?
>
> Thanks!
>
> Temesgen H. Dadi
> PhD Candidate (IMPRS-CBSC, JSMC)
> Skype ID: temeehi
> Freie Universität Berlin
> Institut für Informatik | Institut für
> Mikrobiologie
> AG Algorithmische Bioinformatik | und
> Tierseuche
> Takustraße 9, 14195 Berlin, Germany | Robert-von-Ostertag-Str.
> 7-13
> Telephone: +49 (0)30 838-75246 | Gebäude 35, 14163 Berlin,
> Germany
>
>
>
>
>
>> On 22 Feb 2016, at 12:24, Hannes Hauswedell
>> <hannes.hauswedell@fu-berlin.de> wrote:
>>
>> Am Montag, 22. Februar 2016, 11:23:23 schrieb Luis Enrique Ramirez
>> Chavez:
>>> Hi Seqan Devs,
>>>
>>> I am currently working a project that used Seqan 1.4 and now I am
>>> updating
>>> to Seqan 2.1. I think that maybe I have found a bug in Seqan. The
>>> problem
>>> is that LoadReads from FragmentStore is not returning the same as in
>>> the
>>> previous version for the same call, I did a little research comparing
>>> both versions.
>>
>> Thanks for your bug report and research!
>>
>>> The code of loadReads have change from one version to the other, in
>>> both
>>> versions it's defined in seqan/store/store_io.h at line 1159 for old
>>> version and at line 1273 for the new version but the behave is
>>> different
>>> and I think here is the problem.
>>>
>>> in old version there is this part:
>>>
>>> MultiSeqFile multiSeqFileL, multiSeqFileR;
>>> if (!open(multiSeqFileL.concat, toCString(fileNameL), OPEN_RDONLY))
>>> return false;
>>> if (!open(multiSeqFileR.concat, toCString(fileNameR), OPEN_RDONLY))
>>> return false;
>>
>> This looks like the file is from a previous save() so it is in SeqAn
>> binary
>> format.
>>
>>
>>> The flow is working correctly and the ifs don't reach the return false
>>> but
>>> in the new version the code is like this
>>>
>>> SeqFileIn seqFileL, seqFileR;
>>> if (!open(seqFileL, toCString(fileNameL)) || !open(seqFileR,
>>> toCString(fileNameR)))
>>> return false;
>>
>> This looks like it is trying to load it as a regular sequence file so
>> this
>> seems something different from above. You might be right, that this is
>> the
>> place!
>>
>>> here the execution always always return false. I inspected and its
>>> because
>>> a different open function its called and here is where I think is the
>>> bug.
>>>
>>> In seqan 1.4 the open function called is from string_map defined in
>>> /include/seqan/file/string_mmap.h however in 2.x the open function that
>>> is
>>> being called is from /include/seqan/stream/formatted_file.h. The open
>>> from
>>> string_mmap.h exists in 2.x and I think is the function that wanted to
>>> be
>>> called. LoadReads calls open with SeqFileIn in the new version while in
>>> previous with MultiSeqFile but MultiSeqFile is not available in new
>>> version
>>>
>>> Can you please check if that is a bug
>>
>> I have created an issue in the bugtracker that you can follow:
>> https://github.com/seqan/seqan/issues/1484
>>
>> Best regards,
>> Hannes
>> --
>> Hannes Hauswedell
>>
>> PhD student
>> Max Planck Institute for Molecular Genetics / Freie Universität Berlin
>>
>> address Institut für Informatik
>> Takustraße 9
>> Room 019
>> 14195 Berlin
>> telephone +49 (0)30 838-75241
>> fax +49 (0)30 838-75218
>> e-mail hannes.hauswedell@[molgen.mpg.de|fu-berlin.de]
>>
>> _______________________________________________
>> 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
>