Gamgee
You miserable little maggot. I'll stove your head in!
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
gamgee::utils::MergedVCFAllelesIdxLUT< inputs_2_merged_LUT_is_input_ordered, merged_2_inputs_LUT_is_input_ordered > Class Template Reference

LUT class for storing mappings between allele vectors in the merged file and input VCF files Since the #alleles per site is expected to be small, this class sets the number of fields to 10. This makes any subsequent re-allocations unlikely. The function resize_luts_if_needed() will almost always return immediately after failing the if condition. More...

#include <merged_vcf_lut.h>

Inheritance diagram for gamgee::utils::MergedVCFAllelesIdxLUT< inputs_2_merged_LUT_is_input_ordered, merged_2_inputs_LUT_is_input_ordered >:
gamgee::utils::MergedVCFLUTBase< inputs_2_merged_LUT_is_input_ordered, merged_2_inputs_LUT_is_input_ordered >

Public Member Functions

 MergedVCFAllelesIdxLUT (unsigned numInputGVCFs)
 
void resize_luts_if_needed (unsigned numMergedAlleles)
 
- Public Member Functions inherited from gamgee::utils::MergedVCFLUTBase< inputs_2_merged_LUT_is_input_ordered, merged_2_inputs_LUT_is_input_ordered >
void reset_luts ()
 : clear all mappings More...
 
void add_input_merged_idx_pair (unsigned inputGVCFIdx, int inputIdx, int mergedIdx)
 
template<bool M = merged_2_inputs_LUT_is_input_ordered, typename std::enable_if< M >::type * = nullptr>
int get_input_idx_for_merged (unsigned inputGVCFIdx, int mergedIdx) const
 Get field idx for input VCF inputGVCFIdx corresponding to field idx mergedIdx in the mergedVCF file. More...
 
template<bool M = merged_2_inputs_LUT_is_input_ordered, typename std::enable_if<!M >::type * = nullptr>
int get_input_idx_for_merged (unsigned inputGVCFIdx, int mergedIdx) const
 
template<bool M = inputs_2_merged_LUT_is_input_ordered, typename std::enable_if< M >::type * = nullptr>
int get_merged_idx_for_input (unsigned inputGVCFIdx, int inputIdx) const
 Get field idx for the merged VCF corresponding to field idx inputIdx in the input VCF of index inputGVCFIdx. More...
 
template<bool M = inputs_2_merged_LUT_is_input_ordered, typename std::enable_if<!M >::type * = nullptr>
int get_merged_idx_for_input (unsigned inputGVCFIdx, int inputIdx) const
 
void reset_merged_idx_for_input (unsigned inputGVCFIdx, int inputIdx)
 reset/invalidate merged field index for field inputIdx of input VCF inputGVCFIdx More...
 
void reset_input_idx_for_merged (unsigned inputGVCFIdx, int mergedIdx)
 reset/invalidate the input field index for input VCF inputGVCFIdx for merged field mergedIdx More...
 

Additional Inherited Members

- Protected Member Functions inherited from gamgee::utils::MergedVCFLUTBase< inputs_2_merged_LUT_is_input_ordered, merged_2_inputs_LUT_is_input_ordered >
 MergedVCFLUTBase ()
 
 MergedVCFLUTBase (unsigned numInputGVCFs, unsigned numMergedFields)
 
 ~MergedVCFLUTBase ()=default
 
void clear ()
 deallocates memory More...
 
template<bool M = inputs_2_merged_LUT_is_input_ordered, typename std::enable_if< M >::type * = nullptr>
void resize_inputs_2_merged_lut_if_needed (unsigned numInputGVCFs, unsigned numMergedFields)
 resize LUT functions More...
 
template<bool M = inputs_2_merged_LUT_is_input_ordered, typename std::enable_if<!M >::type * = nullptr>
void resize_inputs_2_merged_lut_if_needed (unsigned numInputGVCFs, unsigned numMergedFields)
 
template<bool M = merged_2_inputs_LUT_is_input_ordered, typename std::enable_if< M >::type * = nullptr>
void resize_merged_2_inputs_lut_if_needed (unsigned numInputGVCFs, unsigned numMergedFields)
 
template<bool M = merged_2_inputs_LUT_is_input_ordered, typename std::enable_if<!M >::type * = nullptr>
void resize_merged_2_inputs_lut_if_needed (unsigned numInputGVCFs, unsigned numMergedFields)
 
void resize_luts_if_needed (unsigned numInputGVCFs, unsigned numMergedFields)
 
- Protected Attributes inherited from gamgee::utils::MergedVCFLUTBase< inputs_2_merged_LUT_is_input_ordered, merged_2_inputs_LUT_is_input_ordered >
unsigned m_num_input_vcfs
 
unsigned m_num_merged_fields
 

Detailed Description

template<bool inputs_2_merged_LUT_is_input_ordered, bool merged_2_inputs_LUT_is_input_ordered>
class gamgee::utils::MergedVCFAllelesIdxLUT< inputs_2_merged_LUT_is_input_ordered, merged_2_inputs_LUT_is_input_ordered >

LUT class for storing mappings between allele vectors in the merged file and input VCF files Since the #alleles per site is expected to be small, this class sets the number of fields to 10. This makes any subsequent re-allocations unlikely. The function resize_luts_if_needed() will almost always return immediately after failing the if condition.

Constructor & Destructor Documentation

template<bool inputs_2_merged_LUT_is_input_ordered, bool merged_2_inputs_LUT_is_input_ordered>
gamgee::utils::MergedVCFAllelesIdxLUT< inputs_2_merged_LUT_is_input_ordered, merged_2_inputs_LUT_is_input_ordered >::MergedVCFAllelesIdxLUT ( unsigned  numInputGVCFs)
inline

Member Function Documentation

template<bool inputs_2_merged_LUT_is_input_ordered, bool merged_2_inputs_LUT_is_input_ordered>
void gamgee::utils::MergedVCFAllelesIdxLUT< inputs_2_merged_LUT_is_input_ordered, merged_2_inputs_LUT_is_input_ordered >::resize_luts_if_needed ( unsigned  numMergedAlleles)
inline

The documentation for this class was generated from the following file: