Documentation ¶
Index ¶
- Constants
- Variables
- func AlignCostVarLoci(read, ref, qual []byte, prob float64) float64
- func BuildMultiGenome(genome_file, var_prof_file string, debug_mode bool) (chr_pos []int, chr_name [][]byte, seq []byte, ...)
- func GetEditTrace(mess string, i, j int, read, ref byte)
- func GetEditTraceKnownLoc(mess string, i, j int, read []byte, ref byte)
- func GetGenome(file_name string) (chr_pos []int, chr_name [][]byte, seq []byte)
- func GetVarProfInfo(file_name string) map[string]map[int]VarProfInfo
- func IndexN(s, sep []byte, n int) int
- func InitEditAlnMat(arr_len int) ([][]float64, [][][]int)
- func InitTraceKMat(arr_len int) [][][]byte
- func IntervalHasVariants(A []int, i, j int) bool
- func LoadMultiSeq(file_name string) (chr_pos []int, chr_name [][]byte, multi_seq []byte)
- func LoadVarProf(file_name string) (variant map[int][][]byte, af map[int][]float32)
- func PrintComparedReadRef(l_read_flank, l_ref_flank, r_read_flank, r_ref_flank []byte)
- func PrintDisInfo(mess string, i, j int, d float64)
- func PrintEditAlignInfo(mess string, aligned_read, aligned_qual, aligned_ref []byte)
- func PrintEditDisInput(mess string, pos int, str_val ...[]byte)
- func PrintEditDisMat(mess string, D [][]float64, m, n int, read, ref []byte)
- func PrintEditTraceMat(mess string, BT [][][]int, m, n int)
- func PrintExtendTraceInfo(mess string, match []byte, e_pos, s_pos, match_num int, match_pos []int)
- func PrintGetVariants(mess string, paired_prob, prob1, prob2 float64, vars1, vars2 []*VarInfo)
- func PrintLoopTraceInfo(loop_num int, mess string)
- func PrintMatchTraceInfo(pos, left_most_pos int, dis float64, left_var_pos []int, read []byte)
- func PrintMemStats(mesg string)
- func PrintPairedSeedInfo(mess string, match_pos_r1, match_pos_r2 int)
- func PrintRefPosMap(l_ref_pos_map, r_ref_pos_map []int)
- func PrintSeedTraceInfo(mess string, e_pos, s_pos int, read []byte)
- func PrintVarInfo(mess string, var_pos []int, var_val, var_qlt [][]byte)
- func ProcessNoAlignReadInfo()
- func RevComp(read, qual []byte, rev_comp_read, rev_qual []byte)
- func SaveMultiSeq(file_name string, chr_pos []int, chr_name [][]byte, multi_seq []byte)
- func SaveVarProf(file_name string, chr_pos []int, chr_name [][]byte, ...)
- func Setup(input_para *ParaInfo)
- func SplitN(s, sep []byte, n int) ([][]byte, int)
- type EditAlnInfo
- type ParaInfo
- type ReadInfo
- type SeedInfo
- type UnAlnInfo
- type UnAlnReadInfo
- type VarCallIndex
- func (VC *VarCallIndex) CallVariants()
- func (VC *VarCallIndex) ExtendSeeds(s_pos, e_pos, m_pos int, read, qual []byte, ...) ([]*VarInfo, int, int, float64)
- func (VC *VarCallIndex) ForwardSearchFrom(pattern []byte, s_pos int) (int, int, int)
- func (VC *VarCallIndex) LeftAlign(read, qual, ref []byte, pos int, D, IS, IT [][]float64, ...) (float64, float64, int, int, int, []int, [][]byte, [][]byte, []int)
- func (VC *VarCallIndex) LeftAlignEditTraceBack(read, qual, ref []byte, m, n int, pos int, BT_Mat int, ...) ([]int, [][]byte, [][]byte, []int)
- func (VC *VarCallIndex) OutputVarCalls()
- func (VC *VarCallIndex) ReadReads(read_data chan *ReadInfo, read_signal chan bool)
- func (VC *VarCallIndex) RightAlign(read, qual, ref []byte, pos int, D, IS, IT [][]float64, ...) (float64, float64, int, int, int, []int, [][]byte, [][]byte, []int)
- func (VC *VarCallIndex) RightAlignEditTraceBack(read, qual, ref []byte, m, n int, pos int, BT_Mat int, ...) ([]int, [][]byte, [][]byte, []int)
- func (VC *VarCallIndex) SearchSeeds(read []byte, s_pos int, m_pos []int) (int, int, int, bool)
- func (VC *VarCallIndex) SearchSeedsPE(read_info *ReadInfo, seed_pos [][]int, rand_gen *rand.Rand) (*SeedInfo, *SeedInfo, bool)
- func (VC *VarCallIndex) SearchVariants(read_data chan *ReadInfo, read_signal chan bool, var_info []chan *VarInfo, ...)
- func (VC *VarCallIndex) SearchVariantsPE(read_info *ReadInfo, edit_aln_info_1, edit_aln_info_2 *EditAlnInfo, ...)
- func (VC *VarCallIndex) UpdateVariantProb(var_info *VarInfo)
- type VarInfo
- type VarProf
- type VarProfInfo
Constants ¶
const ( NEW_SNP_RATE = 0.001 // probability of new alleles NEW_INDEL_RATE = 0.0001 // probability of new indels INDEL_ERR_RATE = 0.0001 // probability of indel error )
-------------------------------------------------------------------------------------------------- Global constants --------------------------------------------------------------------------------------------------
Variables ¶
var ( PRINT_MEMSTATS = false PRINT_EDIT_DIST_INFO = false PRINT_EDIT_DIST_MAT_INFO = false PRINT_VAR_CALL_INFO = false PRINT_ALIGN_TRACE_INFO = false PRINT_UNALIGN_INFO = false )
Global variable for turnning on/off info profiling
Global variable for cpu and memory profiling
var ( PARA *ParaInfo // all parameters of the program L2E []float64 // indel error rate corresponding to lengths of indels Q2C map[byte]float64 // alignment cost based on Phred-scale quality Q2E map[byte]float64 // error probability based on Phred-scale quality Q2P map[byte]float64 // non-error probability based on Phred-scale quality MUT = &sync.Mutex{} // mutex lock for reading/writing from/to the map of variant calls )
-------------------------------------------------------------------------------------------------- Global variables for calculating variant quality. --------------------------------------------------------------------------------------------------
var UNALIGN_READ_INFO = make([]*UnAlnReadInfo, 0)
Printing unaligned-reads info
var VarCall []*VarProf // number of elements will be set equal to number of cores to run parallel updates
--------------------------------------------------------------------------------------------------- Set of variant calls, each element cover a certain region on the multigenome. ---------------------------------------------------------------------------------------------------
Functions ¶
func AlignCostVarLoci ¶ added in v0.9.0
------------------------------------------------------------------------------------------------- AlignCostVarLoci calculates cost of alignment between a read and the reference at known loci. -------------------------------------------------------------------------------------------------
func BuildMultiGenome ¶ added in v0.7.2
func BuildMultiGenome(genome_file, var_prof_file string, debug_mode bool) (chr_pos []int, chr_name [][]byte, seq []byte, var_prof map[string]map[int]VarProfInfo)
------------------------------------------------------------------------------------------------- BuildMultiGenome builds multi-sequence from a standard reference genome and a variant profile. -------------------------------------------------------------------------------------------------
func GetEditTrace ¶ added in v0.7.1
func GetEditTraceKnownLoc ¶ added in v0.7.1
func GetGenome ¶ added in v0.8.0
-------------------------------------------------------------------------------------------------- GetGenome gets reference genome from FASTA files. --------------------------------------------------------------------------------------------------
func GetVarProfInfo ¶ added in v0.8.1
func GetVarProfInfo(file_name string) map[string]map[int]VarProfInfo
-------------------------------------------------------------------------------------------------- GetVarProfInfo gets variant profile from VCF files. --------------------------------------------------------------------------------------------------
func IndexN ¶ added in v0.3.1
-------------------------------------------------------------------------------------------------- IndexN returns index of a pattern in a slice of bytes. --------------------------------------------------------------------------------------------------
func InitEditAlnMat ¶ added in v0.7.2
-------------------------------------------------------------------------------------------------- InitEditAlnMat initializes variables for computing distance and alignment between reads and multi-genomes. --------------------------------------------------------------------------------------------------
func InitTraceKMat ¶ added in v0.9.0
-------------------------------------------------------------------------------------------------- InitEditAlnMat initializes variables for computing distance and alignment between reads and multi-genomes. --------------------------------------------------------------------------------------------------
func IntervalHasVariants ¶ added in v0.7.2
-------------------------------------------------------------------------------------------------- IntervalHasVariants determines whether [i, j] contains variant positions which are stores in array A. This function implements interpolation search. The array A must be sorted in increasing order. --------------------------------------------------------------------------------------------------
func LoadMultiSeq ¶ added in v0.7.2
------------------------------------------------------------------------------------------------- LoadMultiSeq loads multi-sequence from file. -------------------------------------------------------------------------------------------------
func LoadVarProf ¶ added in v0.7.2
------------------------------------------------------------------------------------------------- LoadVarProf loads variant profile from file and return a map of variants. -------------------------------------------------------------------------------------------------
func PrintComparedReadRef ¶ added in v0.7.1
func PrintComparedReadRef(l_read_flank, l_ref_flank, r_read_flank, r_ref_flank []byte)
func PrintDisInfo ¶ added in v0.7.1
func PrintEditAlignInfo ¶ added in v0.7.0
func PrintEditDisInput ¶ added in v0.7.0
func PrintEditDisMat ¶ added in v0.7.0
func PrintEditTraceMat ¶ added in v0.7.0
BT[i][j][0]: direction, can be 0: diagonal arrow (back to i-1,j-1), 1: up arrow (back to i-1,j), 2: left arrow (back to i,j-1) BT[i][j][1]: matrix, can be 0: matrix for D, 1: matrix for IS, 2: matrix for IT BT[i][j][2]: number of shift (equal to length of called variant) at known variant loc, can be any integer number, for example 5 means back to i-5,j-1
func PrintExtendTraceInfo ¶ added in v0.5.0
func PrintGetVariants ¶ added in v0.7.2
func PrintLoopTraceInfo ¶ added in v0.5.0
func PrintMatchTraceInfo ¶ added in v0.5.0
func PrintPairedSeedInfo ¶ added in v0.5.1
func PrintRefPosMap ¶ added in v0.7.2
func PrintRefPosMap(l_ref_pos_map, r_ref_pos_map []int)
func PrintSeedTraceInfo ¶ added in v0.5.0
func PrintVarInfo ¶ added in v0.7.1
func ProcessNoAlignReadInfo ¶ added in v0.5.1
func ProcessNoAlignReadInfo()
func RevComp ¶ added in v0.2.5
-------------------------------------------------------------------------------------------------- RevComp computes reverse, reverse complement, and complement of a read. --------------------------------------------------------------------------------------------------
func SaveMultiSeq ¶ added in v0.7.2
------------------------------------------------------------------------------------------------- SaveMultiSeq saves multi-sequence to file. -------------------------------------------------------------------------------------------------
func SaveVarProf ¶ added in v0.7.2
func SaveVarProf(file_name string, chr_pos []int, chr_name [][]byte, var_prof map[string]map[int]VarProfInfo)
------------------------------------------------------------------------------------------------- SaveVarProf saves variant profile to file. -------------------------------------------------------------------------------------------------
func Setup ¶ added in v0.7.2
func Setup(input_para *ParaInfo)
-------------------------------------------------------------------------------------------------- Read input information and set up parameters --------------------------------------------------------------------------------------------------
Types ¶
type EditAlnInfo ¶ added in v0.7.2
type EditAlnInfo struct {
// contains filtered or unexported fields
}
-------------------------------------------------------------------------------------------------- Alignment information, served as shared variables between functions for alignment process --------------------------------------------------------------------------------------------------
func InitEditAlnInfo ¶ added in v0.7.2
func InitEditAlnInfo(arr_len int) *EditAlnInfo
-------------------------------------------------------------------------------------------------- InitEditAlnInfo allocates memory for share variables for alignment process --------------------------------------------------------------------------------------------------
type ParaInfo ¶ added in v0.2.5
type ParaInfo struct { //Input file names: Ref_file string // reference multigenome Var_prof_file string // variant profile Index_file string // index of original reference genomes Rev_index_file string // index of reverse reference genomes Read_file_1 string // first end of read Read_file_2 string // second end of read Var_call_file string // store Var call // Input paras: Search_mode int // searching mode for finding seeds Start_pos int // starting postion on reads for finding seeds Search_step int // step for searching in deterministic mode Max_snum int // maximum number of seeds Max_psnum int // maximum number of paired-seeds Min_slen int // minimum length of seeds Max_slen int // maximum length of seeds Dist_thres float64 // threshold for distances between reads and multigenomes Iter_num int // number of random iterations to find proper alignments Sub_cost float64 // cost of substitution for Hamming and Edit distance Gap_open float64 // cost of gap open for Edit distance Gap_ext float64 // cost of gap extension for Edit distance Proc_num int // maximum number of CPUs using by Go Debug_mode bool // debug mode for output // Estimated paras: Read_len int // read length, calculated from read files Info_len int // maximum size of array to store read headers Max_ins int // maximum insert size of two aligned ends Err_rate float32 // average sequencing error rate, estmated from reads with real reads Err_var_factor int // factor for standard variation of sequencing error rate Mut_rate float32 // average mutation rate, estmated from reference genome Mut_var_factor int // factor for standard variation of mutation rate Iter_num_factor int // factor for number of iterations Seed_backup int // number of backup bases from seeds Ham_backup int // number of backup bases from Hamming alignment Indel_backup int // number of backup bases from known indels }
-------------------------------------------------------------------------------------------------- Parameter information --------------------------------------------------------------------------------------------------
type ReadInfo ¶ added in v0.2.5
type ReadInfo struct {
Read1, Read2 []byte // first and second ends
Qual1, Qual2 []byte // quality info of the first read and second ends
Rev_read1, Rev_read2 []byte // reverse of the first and second ends
Rev_comp_read1, Rev_comp_read2 []byte // reverse complement of the first and second ends
Comp_read1, Comp_read2 []byte // complement of the first and second ends
Rev_qual1, Rev_qual2 []byte // quality of reverse of the first and second ends
Info1, Info2 []byte // info of the first and second ends
}
-------------------------------------------------------------------------------------------------- Information of input reads --------------------------------------------------------------------------------------------------
func InitReadInfo ¶ added in v0.5.0
-------------------------------------------------------------------------------------------------- InitReadInfo creates a ReadInfo object and initializes its content --------------------------------------------------------------------------------------------------
type SeedInfo ¶ added in v0.7.2
type SeedInfo struct {
// contains filtered or unexported fields
}
--------------------------------------------------------------------------------------------------- Information of seeds between reads and the multigenome. ---------------------------------------------------------------------------------------------------
type UnAlnInfo ¶ added in v0.7.2
type UnAlnInfo struct {
// contains filtered or unexported fields
}
--------------------------------------------------------------------------------------------------- Information of unaligned reads. ---------------------------------------------------------------------------------------------------
type UnAlnReadInfo ¶ added in v0.8.1
type UnAlnReadInfo struct {
// contains filtered or unexported fields
}
--------------------------------------------------------------------------------------------------- UnAlnReadInfo represents information of unaligned-reads, which serves as temporary variables. ---------------------------------------------------------------------------------------------------
type VarCallIndex ¶ added in v0.8.1
type VarCallIndex struct { Seq []byte // multi-sequence SeqLen int // length of multi-sequence ChrPos []int // position (first base) of the chromosome on whole-genome ChrName [][]byte // chromosome names Variants map[int][][]byte // variants (position, variants). VarAF map[int][]float32 // allele frequency of variants (position, allele frequency) SameLenVar map[int]int // indicate if variants has same length (SNPs or MNPs) DelVar map[int]int // length of deletions if variants are deletion RevFMI *fmi.Index // FM-index of reverse multi-sequence (to do forward search) }
--------------------------------------------------------------------------------------------------- VarCallIndex represents preprocessed information of the reference genome and variant profile, includes an FM-index of (reverse of) the multigenome, which is used to speed up variant calling. This struct also consists of functions for calling variants. ---------------------------------------------------------------------------------------------------
func NewVariantCaller ¶ added in v0.7.2
func NewVariantCaller() *VarCallIndex
--------------------------------------------------------------------------------------------------- NewVariantCaller creates an instance of VarCallIndex and sets up its variables. This function will be called from the main program. ---------------------------------------------------------------------------------------------------
func (*VarCallIndex) CallVariants ¶ added in v0.8.1
func (VC *VarCallIndex) CallVariants()
--------------------------------------------------------------------------------------------------- CallVariants searches for variants and updates variant information in VarCallIndex. This function will be called from main program. ---------------------------------------------------------------------------------------------------
func (*VarCallIndex) ExtendSeeds ¶ added in v0.8.1
func (VC *VarCallIndex) ExtendSeeds(s_pos, e_pos, m_pos int, read, qual []byte, edit_aln_info_1, edit_aln_info_2 *EditAlnInfo) ([]*VarInfo, int, int, float64)
--------------------------------------------------------------------------------------------------- ExtendSeeds performs alignment between extensions from seeds on reads and multigenomes and determines variants from the alignment of both left and right extensions. ---------------------------------------------------------------------------------------------------
func (*VarCallIndex) ForwardSearchFrom ¶ added in v0.8.1
-------------------------------------------------------------------------------------------------- ForwardSearchFrom searches for exact matches between a pattern and the reference using FM-index. It starts to search forwardly on the pattern from any position to match backwardly on the reference. --------------------------------------------------------------------------------------------------
func (*VarCallIndex) LeftAlign ¶ added in v0.8.1
func (VC *VarCallIndex) LeftAlign(read, qual, ref []byte, pos int, D, IS, IT [][]float64, BT_D, BT_IS, BT_IT [][][]int, BT_K [][][]byte, ref_pos_map []int, del_ref bool) (float64, float64, int, int, int, []int, [][]byte, [][]byte, []int)
------------------------------------------------------------------------------------------------- LeftAlign calculates the distance between a read and a ref in backward direction. The read include standard bases, the ref includes standard bases and "*" characters. -------------------------------------------------------------------------------------------------
func (*VarCallIndex) LeftAlignEditTraceBack ¶ added in v0.8.1
func (VC *VarCallIndex) LeftAlignEditTraceBack(read, qual, ref []byte, m, n int, pos int, BT_Mat int, BT_D, BT_IS, BT_IT [][][]int, BT_K [][][]byte, ref_pos_map []int, del_ref bool) ([]int, [][]byte, [][]byte, []int)
------------------------------------------------------------------------------------------------- LeftAlignEditTraceBack constructs alignment between a read and a ref from LeftAlign. The read includes standard bases, the ref include standard bases and "*" characters. -------------------------------------------------------------------------------------------------
func (*VarCallIndex) OutputVarCalls ¶ added in v0.8.1
func (VC *VarCallIndex) OutputVarCalls()
--------------------------------------------------------------------------------------------------- OutputVarCalls determines variant calls and writes them to file in VCF format. ---------------------------------------------------------------------------------------------------
func (*VarCallIndex) ReadReads ¶ added in v0.8.1
func (VC *VarCallIndex) ReadReads(read_data chan *ReadInfo, read_signal chan bool)
--------------------------------------------------------------------------------------------------- ReadReads reads all reads from input FASTQ files and put them into data channel. ---------------------------------------------------------------------------------------------------
func (*VarCallIndex) RightAlign ¶ added in v0.8.1
func (VC *VarCallIndex) RightAlign(read, qual, ref []byte, pos int, D, IS, IT [][]float64, BT_D, BT_IS, BT_IT [][][]int, BT_K [][][]byte, ref_pos_map []int, del_ref bool) (float64, float64, int, int, int, []int, [][]byte, [][]byte, []int)
------------------------------------------------------------------------------------------------- RightAlign calculates the distance between a read and a ref in forward direction. The read includes standard bases, the ref includes standard bases and "*" characters. -------------------------------------------------------------------------------------------------
func (*VarCallIndex) RightAlignEditTraceBack ¶ added in v0.8.1
func (VC *VarCallIndex) RightAlignEditTraceBack(read, qual, ref []byte, m, n int, pos int, BT_Mat int, BT_D, BT_IS, BT_IT [][][]int, BT_K [][][]byte, ref_pos_map []int, del_ref bool) ([]int, [][]byte, [][]byte, []int)
------------------------------------------------------------------------------------------------- RightAlignEditTraceBack constructs alignment between a read and a ref from RightAlign. The read includes standard bases, the ref include standard bases and "*" characters. -------------------------------------------------------------------------------------------------
func (*VarCallIndex) SearchSeeds ¶ added in v0.8.1
-------------------------------------------------------------------------------------------------- SearchSeeds returns positions and distances of seeds between a read and the reference. It searches forwardly on read to match backwardly on reverse of the reference. --------------------------------------------------------------------------------------------------
func (*VarCallIndex) SearchSeedsPE ¶ added in v0.8.1
func (VC *VarCallIndex) SearchSeedsPE(read_info *ReadInfo, seed_pos [][]int, rand_gen *rand.Rand) (*SeedInfo, *SeedInfo, bool)
--------------------------------------------------------------------------------------------------- SearchSeedsPE searches for all pairs of seeds which have proper chromosome distances. ---------------------------------------------------------------------------------------------------
func (*VarCallIndex) SearchVariants ¶ added in v0.8.1
func (VC *VarCallIndex) SearchVariants(read_data chan *ReadInfo, read_signal chan bool, var_info []chan *VarInfo, uar_info chan *UnAlnReadInfo, wg *sync.WaitGroup)
--------------------------------------------------------------------------------------------------- SearchVariants takes data from data channel, searches for variants and put them into results channel. ---------------------------------------------------------------------------------------------------
func (*VarCallIndex) SearchVariantsPE ¶ added in v0.8.1
func (VC *VarCallIndex) SearchVariantsPE(read_info *ReadInfo, edit_aln_info_1, edit_aln_info_2 *EditAlnInfo, seed_pos [][]int, rand_gen *rand.Rand, var_info []chan *VarInfo, uar_info chan *UnAlnReadInfo)
--------------------------------------------------------------------------------------------------- SearchVariantsPE searches for variants from alignment between pair-end reads and the multigenome. It uses seed-and-extend strategy and looks for the best alignment candidates through several iterations. ---------------------------------------------------------------------------------------------------
func (*VarCallIndex) UpdateVariantProb ¶ added in v0.8.1
func (VC *VarCallIndex) UpdateVariantProb(var_info *VarInfo)
--------------------------------------------------------------------------------------------------- UpdateVariantProb updates probablilities of variants at a variant location using Bayesian update. ---------------------------------------------------------------------------------------------------
type VarInfo ¶ added in v0.7.2
type VarInfo struct { Pos uint32 // postion of variant (on the reference) Bases []byte // aligned bases to be the variant BQual []byte // quality sequences (in FASTQ format) of bases to be the variant Type int // type of the variant (0: sub, 1: ins, 2: del; other types will be considered in future) CDis int // chromosomal distance between alignment positions of two read-ends CDiff int // chromosomal distance between aligned pos and true pos MProb float64 // probability of mapping read corectly (mapping quality) AProb float64 // probability of aligning read correctly (alignment quality) IProb float64 // probability of insert size to be correct (for pair-end reads) SPos1 int // starting position on read1 of exact match (or ending position from backward search with FM-index) SPos2 int // starting position on read2 of exact match (or ending position from backward search with FM-index) Strand1 bool // strand (backward/forward) of read1 of exact match Strand2 bool // strand (backward/forward) of read2 of exact match RInfo []byte // information sequences (in FASTQ format) of aligned reads (header of reads in FASTQ format) }
--------------------------------------------------------------------------------------------------- VarInfo represents information of detected variants, which serves as temporary variables. ---------------------------------------------------------------------------------------------------
type VarProf ¶ added in v0.7.2
type VarProf struct { // VarProb stores all possible variants at each position and their confident probablilities. // Prior probablities will be obtained from reference genomes and variant profiles. // Posterior probabilities will be updated during alignment phase based on incomming aligned bases VarProb map[uint32]map[string]float64 // probability of the variant call VarType map[uint32]map[string]int // pype of variants (0: sub, 1: ins, 2: del; other types will be considered in future) VarRNum map[uint32]map[string]int // numer of aligned reads corresponding to each variant ChrDis map[uint32]map[string][]int // chromosomal distance between two aligned read-ends ChrDiff map[uint32]map[string][]int // chromosomal distance betwwen the aligned postion and true postion (for simulated data) MapProb map[uint32]map[string][]float64 // probability of mapping read to be corect (mapping quality) AlnProb map[uint32]map[string][]float64 // probability of aligning read to be correct (alignment quality) ChrProb map[uint32]map[string][]float64 // probability of insert size to be correct (for pair-end reads) StartPos1 map[uint32]map[string][]int // start position (on read) of alignment of the first end StartPos2 map[uint32]map[string][]int // start position (on read) of alignment of the second end Strand1 map[uint32]map[string][]bool // strand indicator of the first end ("true" if read has same strand with ref, "false" otherwise) Strand2 map[uint32]map[string][]bool // strand indicator of the second end ("true" if read has same strand with ref, "false" otherwise) VarBQual map[uint32]map[string][][]byte // quality sequences (in FASTQ format) of aligned bases at the variant call position ReadInfo map[uint32]map[string][][]byte // information sequences (in FASTQ format) of aligned reads (header of reads in FASTQ format) }
-------------------------------------------------------------------------------------------------- VarProf represents variant profile and related info of the individual genome. --------------------------------------------------------------------------------------------------