1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
/*++
Module Name:
PairedEndAligner.h
Abstract:
Superclass for implementations of paired end aligners
Authors:
Matei Zaharia, December, 2011
Environment:
User mode service.
Revision History:
--*/
#pragma once
#include "AlignmentResult.h"
#include "directions.h"
#include "LandauVishkin.h"
#include "Read.h"
/**
* Abstract interface for paired-end aligners.
*/
class PairedEndAligner
{
public:
virtual ~PairedEndAligner() {}
virtual void align(
Read *read0,
Read *read1,
PairedAlignmentResult *result,
int maxEditDistanceForSecondaryResults,
int secondaryResultBufferSize,
int *nSecondaryResults,
PairedAlignmentResult *secondaryResults, // The caller passes in a buffer of secondaryResultBufferSize and it's filled in by align()
int singleSecondaryBufferSize,
int maxSecondaryAlignmentsToReturn,
int *nSingleEndSecondaryResultsForFirstRead,
int *nSingleEndSecondaryResultsForSecondRead,
SingleAlignmentResult *singleEndSecondaryResults // Single-end secondary alignments for when the paired-end alignment didn't work properly
) = 0;
virtual void setLandauVishkin(
LandauVishkin<1> *landauVishkin,
LandauVishkin<-1> *reverseLandauVishkin)
{
}
virtual _int64 getLocationsScored() const = 0;
};
|