     typedef nvbio::cuda::ldg_pointer<uint32>                                        base_iterator;
 
     typedef nvbio::PackedStringLoader<base_iterator,
-        io::ReadData::READ_BITS,
-        io::ReadData::READ_BIG_ENDIAN,cache_type>                                               pattern_loader_type;
+        io::SequenceDataTraits<DNA_N>::SEQUENCE_BITS,
+        io::SequenceDataTraits<DNA_N>::SEQUENCE_BIG_ENDIAN,cache_type>                          pattern_loader_type;
     typedef typename pattern_loader_type::iterator                                              pattern_iterator;
     typedef nvbio::vector_view<pattern_iterator>                                                pattern_string;
 

            #pragma omp parallel for
            for (int i = 0; i < int( h_read_data->size() ); ++i)
            {
                const uint32 read_off = h_read_data->read_index()[i];
                const uint32 read_len = h_read_data->read_index()[i+1] - read_off;

                s_profile* prof = ssw_init( &unpacked_reads[read_off], read_len, mat, 4, 2 );


                batch_score_profile_all(
                    aln::make_gotoh_aligner<aln::LOCAL,aln::TextBlockingTag>( scoring ),
                    d_read_data.size(),
                    nvbio::plain_view( d_read_data ).sequence_index(),
                    nvbio::plain_view( d_read_data ).sequence_stream_storage(),
                    d_read_data.max_sequence_len(),
                    n_read_symbols,
                    nvbio::raw_pointer( d_ref_storage ),
                    ref_length,
