59 lines
2.3 KiB
C
59 lines
2.3 KiB
C
|
|
/*
|
|||
|
|
Description: read ends结构体主要用来标记冗余,包含一些序列的测序过程中的物理信息等
|
|||
|
|
|
|||
|
|
Copyright : All right reserved by ICT
|
|||
|
|
|
|||
|
|
Author : Zhang Zhonghai
|
|||
|
|
Date : 2023/11/3
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef READ_ENDS_H_
|
|||
|
|
#define READ_ENDS_H_
|
|||
|
|
|
|||
|
|
#include <stdint.h>
|
|||
|
|
|
|||
|
|
/* 包含了所有read ends信息,如picard里边的 ReadEndsForMarkDuplicates*/
|
|||
|
|
struct ReadEnds
|
|||
|
|
{
|
|||
|
|
/* PhysicalLocationInt中的成员变量 */
|
|||
|
|
/**
|
|||
|
|
* Small class that provides access to the physical location information about a cluster.
|
|||
|
|
* All values should be defaulted to -1 if unavailable. Tile should only allow
|
|||
|
|
* non-zero positive integers, x and y coordinates must be non-negative.
|
|||
|
|
* This is different from PhysicalLocationShort in that the x and y positions are ints, not shorts
|
|||
|
|
* thus, they do not overflow within a HiSeqX tile.
|
|||
|
|
*/
|
|||
|
|
int16_t tile = -1;
|
|||
|
|
int32_t x = -1;
|
|||
|
|
int32_t y = -1;
|
|||
|
|
|
|||
|
|
/* ReadEnds中的成员变量 */
|
|||
|
|
/** Little struct-like class to hold read pair (and fragment) end data for duplicate marking. */
|
|||
|
|
static const int8_t F = 0, R = 1, FF = 2, FR = 3, RR = 4, RF = 5;
|
|||
|
|
int16_t libraryId;
|
|||
|
|
int8_t orientation;
|
|||
|
|
int32_t read1ReferenceIndex = -1;
|
|||
|
|
int32_t read1Coordinate = -1;
|
|||
|
|
int32_t read2ReferenceIndex = -1;
|
|||
|
|
int32_t read2Coordinate = -1; // This field is overloaded for flow based processing as the end coordinate of read 1. (paired reads not supported)
|
|||
|
|
/* Additional information used to detect optical dupes */
|
|||
|
|
int16_t readGroup = -1;
|
|||
|
|
/** For optical duplicate detection the orientation matters regard to 1st or 2nd end of a mate */
|
|||
|
|
int8_t orientationForOpticalDuplicates = -1;
|
|||
|
|
/** A *transient* flag marking this read end as being an optical duplicate. */
|
|||
|
|
bool isOpticalDuplicate = false;
|
|||
|
|
|
|||
|
|
/* ReadEndsForMarkDuplicates中的成员变量 */
|
|||
|
|
/** Little struct-like class to hold read pair (and fragment) end data for MarkDuplicatesWithMateCigar **/
|
|||
|
|
int16_t score = 0;
|
|||
|
|
int64_t read1IndexInFile = -1;
|
|||
|
|
int64_t read2IndexInFile = -1;
|
|||
|
|
int64_t duplicateSetSize = -1;
|
|||
|
|
|
|||
|
|
/* ReadEndsForMarkDuplicatesWithBarcodes中的成员变量 (好像用不到) */
|
|||
|
|
int32_t barcode = 0; // primary barcode for this read (and pair)
|
|||
|
|
int32_t readOneBarcode = 0; // read one barcode, 0 if not present
|
|||
|
|
int32_t readTwoBarcode = 0; // read two barcode, 0 if not present or not paired
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif
|