Re: [Seqan-dev] sorting sam file by SortReadID()


This is meant for sorting alignments in the FragmentStore.

You currently have to resort to an external tool for sorting SAM files without completely loading them into memory.

*m
________________________________________
From: Bernd Jagla [bernd.jagla@pasteur.fr]
Sent: Tuesday, April 10, 2012 3:01 PM
To: seqan-dev@lists.fu-berlin.de
Subject: [Seqan-dev] sorting sam file by SortReadID()

Hi,

I am trying to sort a sam/bam file by read-id and am using the following
construct:

       sortAlignedReads(reader, SortReadId());



Unfortunately the compiler is complaining:

In file included from
/pasteur/solexa2/solexa_travail/PF2/programs/seqan/workspace/seqan/core/include/seqan/store.h:63:
/pasteur/solexa2/solexa_travail/PF2/programs/seqan/workspace/seqan/core/include/seqan/store/store_align.h:369:13:
error: member reference base type 'const char' is not a
       structure or union
                 return a1.readId < a2.readId;
                        ~~ ^
/usr/lib/gcc/x86_64-redhat-linux6E/4.4.4/../../../../include/c++/4.4.4/bits/stl_algo.h:2128:8:
note: in instantiation of member function 'seqan::_LessAlignedRead<char,
       const seqan::Tag<seqan::SortReadId_> >::operator()' requested here
           if (__comp(__val, *__first))
               ^
/usr/lib/gcc/x86_64-redhat-linux6E/4.4.4/../../../../include/c++/4.4.4/bits/stl_algo.h:3433:4:
note: in instantiation of function template specialization
       'std::__insertion_sort<char *, seqan::_LessAlignedRead<char,
const seqan::Tag<seqan::SortReadId_> > >' requested here
           std::__insertion_sort(__first, __last, __comp);
           ^
/usr/lib/gcc/x86_64-redhat-linux6E/4.4.4/../../../../include/c++/4.4.4/bits/stl_algo.h:5468:2:
note: in instantiation of function template specialization
       'std::__inplace_stable_sort<char *, seqan::_LessAlignedRead<char,
const seqan::Tag<seqan::SortReadId_> > >' requested here
         std::__inplace_stable_sort(__first, __last, __comp);
         ^
/pasteur/solexa2/solexa_travail/PF2/programs/seqan/workspace/seqan/core/include/seqan/store/store_align.h:433:2:
note: in instantiation of function template
       specialization 'std::stable_sort<char *,
seqan::_LessAlignedRead<char, const seqan::Tag<seqan::SortReadId_> > >'
requested here
         std::stable_sort(
         ^
/pasteur/solexa2/solexa_travail/PF2/programs/seqan/workspace/seqan/sandbox/jagla/apps/sambamstat/sambamstat.h:286:5:
note: in instantiation of function template
       specialization 'seqan::sortAlignedReads<seqan::Stream<Bgzf>,
seqan::SortReadId_>' requested here
            sortAlignedReads(reader, SortReadId());
            ^
/pasteur/solexa2/solexa_travail/PF2/programs/seqan/workspace/seqan/sandbox/jagla/apps/sambamstat/sambamstat.h:340:16:
note: in instantiation of function template
       specialization 'doWork<seqan::Stream<Bgzf>,
seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5_>,
seqan::Alloc<void> >,
       seqan::Owner<seqan::Tag<seqan::Default_> >,
seqan::Tag<seqan::Bam_> >' requested here
         return doWork(bamStream, seqs, options, Bam());
                ^
4 warnings and 15 errors generated.
make[2]: ***
[sandbox/jagla/apps/sambamstat/CMakeFiles/sambamstat.dir/sambamstat.cpp.o]
Error 1
make[1]: ***
[sandbox/jagla/apps/sambamstat/CMakeFiles/sambamstat.dir/all] Error 2
make: *** [all] Error 2

I also attach the the cpp and .h files..

Thanks for having a look at this ...

Bernd