Exemplo n.º 1
0
void BamOutput::process(struct HostOutputBatchPE& batch)
{
    // protect this section
    ScopedLock lock( &mutex );

    float time = 0.0f;
    {
        ScopedTimer<float> timer( &time );

        for(uint32 c = 0; c < batch.count; c++)
        {
            AlignmentData alignment = get_anchor_mate(batch,c);
            AlignmentData mate      = get_opposite_mate(batch,c);

            process_one_alignment(alignment, mate);
            process_one_alignment(mate, alignment);
        }

        // flush at the end of each batch
        //if (data_buffers[ buffer_id ].get_pos())
        //    flush_blocks();
    }
    iostats.n_reads += batch.count;
    iostats.output_process_timings.add( batch.count, time );
}
Exemplo n.º 2
0
void DebugOutput::end_batch(void)
{
    for(uint32 c = 0; c < cpu_batch.count; c++)
    {
        AlignmentData mate_1;
        AlignmentData mate_2;

        switch(alignment_type)
        {
            case SINGLE_END:
                mate_1 = cpu_batch.get_mate(c, MATE_1, MATE_1);
                mate_2 = AlignmentData::invalid();
                break;

            case PAIRED_END:
                mate_1 = cpu_batch.get_mate(c, MATE_1, MATE_1);
                mate_2 = cpu_batch.get_mate(c, MATE_2, MATE_2);
                break;
        }

        process_one_alignment(mate_1, mate_2);
    }

    OutputFile::end_batch();
}