def contains(self, chrom, start, end, overlap=True):
d = self.positions.get(chrom,[])<EOL>if overlap:<EOL><INDENT>return [vcf_entry for vcf_start, vcf_end in d<EOL>for vcf_entry in d[(vcf_start, vcf_end)]<EOL>if not (end < vcf_start or start > vcf_end)]<EOL><DEDENT>else:<EOL><INDENT>return [vcf_entry for vcf_start, vcf_end in d<EOL>for vcf_entry in d[(vcf_start, vcf_end)]<EOL>if (vcf_start <= start and vcf_end >= end)]<EOL><DEDENT>
This returns a list of VCFEntry objects which cover a specified location.

        :param chrom: The landmark identifier (usually a chromosome)
        :param start: The 1-based position of the start of the range we are querying
        :param end: The 1-based position of the end of the range we are querying
        :param overlap: A boolean value, if true we allow features to overlap the query range.
        For instance, overlap=True with the range (5,10), will return a VCFEntry object
        spanning from (8,15). overlap=False will only return objects fully containing the range.
        :return: A list of VCFEntry objects