Parse a variant line
        
        Split a variant line and map the fields on the header columns
        
        Args:
            variant_line (str): A vcf variant line
            header_line (list): A list with the header columns
        Returns:
            variant_dict (dict): A variant dictionary

def get_variant_dict(variant_line, header_line=None):
    """Parse a variant line
        
        Split a variant line and map the fields on the header columns
        
        Args:
            variant_line (str): A vcf variant line
            header_line (list): A list with the header columns
        Returns:
            variant_dict (dict): A variant dictionary
    """
    if not header_line:
        logger.debug("No header line, use only first 8 mandatory fields")
        header_line = ['CHROM','POS','ID','REF','ALT','QUAL','FILTER','INFO']
    
    logger.debug("Building variant dict from variant line {0} and header"\
    " line {1}".format(variant_line, '\t'.join(header_line)))
    
    splitted_line = variant_line.rstrip().split('\t')
    if len(splitted_line) < len(header_line):
        logger.info('\t'.join(header_line))
        logger.info('\t'.join(splitted_line))
        raise SyntaxError("Length of variant line differs from length of"\
                            " header line")
    
    return dict(zip(header_line, splitted_line))