def __init__(self, whole_chrom_files, partial_chrom_files, factory):
self.current = None<EOL>self.current_key = None<EOL>self.factory = factory<EOL>self.whole_chrom_files = whole_chrom_files<EOL>self.partial_trees = {}<EOL>by_chrom = {}<EOL>for chrom, start, end in partial_chrom_files:<EOL><INDENT>k = (chrom, start, end)<EOL>v = partial_chrom_files[k]<EOL>if chrom in whole_chrom_files:<EOL><INDENT>raise GenomeAlignmentError("<STR_LIT>")<EOL><DEDENT>if chrom not in by_chrom:<EOL><INDENT>by_chrom[chrom] = []<EOL><DEDENT>interval = GenomicInterval(chrom, start, end)<EOL>by_chrom[chrom].append(JITGenomeAlignmentKeyInterval(interval, v))<EOL><DEDENT>for chrom in by_chrom:<EOL><INDENT>self.partial_trees[chrom] = IntervalTree(by_chrom[chrom])<EOL><DEDENT>for chrom, start, end in partial_chrom_files:<EOL><INDENT>hits = self.partial_trees[chrom].intersectingInterval(start, end)<EOL>if len(hits) != <NUM_LIT:1>:<EOL><INDENT>raise GenomeAlignmentError("<STR_LIT>")<EOL><DEDENT><DEDENT>
Constructor; see class docsstring for param details.