def get_records( genome,gff,verbose ): """Return list of records from genome with annotations from annotation file. GFF is 1-base; inclusive so start-1, end the same """ if verbose: sys.stderr.write( "Generating annotations for genome...\n" ) #load annotation if gff.endswith(".gff"): contig2coding,trans2exon = load_sgd_gff( gff ) else: contig2coding,trans2exon = parse_gtf( gff ) records = [] for r in SeqIO.parse( open(genome),"fasta" ): t = "CDS" if r.id in contig2coding: for s,e,name,stnd,score in contig2coding[r.id]: strand = 1 if stnd == "-": strand = -1 r.features.append( SeqFeature(FeatureLocation(s-1,e),type=t,strand=strand,id=name ) ) elif verbose: sys.stderr.write( " Warning: no annotation for %s\n" % r.id ) #add to list records.append( r ) return records