+def build_genome_size_map(pathname):
+ """Guess what genome we're using"""
+ sizes = {}
+ tree = ElementTree.parse(pathname)
+ for element in tree.getroot():
+ name = element.attrib['contigName']
+ bases = int(element.attrib['totalBases'])
+ sizes[name] = bases
+
+ # guess genome names
+ if sizes.get('chr1', 0) == 197195432:
+ genome = 'mm9'
+ elif sizes.get('chr1', 0) == 247249719:
+ genome = 'hg19'
+ elif sizes.get('chrI', 0) == 230218:
+ genome = 'sacCer3'
+ elif len(sizes) == 1:
+ genome = os.path.splitext(sizes.keys()[0])[0]
+ else:
+ raise RuntimeError("Unrecognized genome type, update detection")
+
+ fasta_map = {}
+ for k,v in sizes.items():
+ fasta_map[k] = genome + '/' + k
+
+ return fasta_map