1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
from gt.annotationsketch import *
from gt.core.gtrange import Range
import sys
if __name__ == "__main__":
if len(sys.argv) != 4:
sys.stderr.write("Usage: " + (sys.argv)[0] +
" Style_file PNG_file GFF3_file\n")
sys.stderr.write("Create PNG representation of GFF3 annotation file.")
sys.exit(1)
pngfile = (sys.argv)[2]
# load style file
style = Style()
style.load_file((sys.argv)[1])
# create feature index
feature_index = FeatureIndexMemory()
# add GFF3 file to index
feature_index.add_gff3file((sys.argv)[3])
# create diagram for first sequence ID in feature index
seqid = feature_index.get_first_seqid()
range = feature_index.get_range_for_seqid(seqid)
diagram = Diagram.from_index(feature_index, seqid, range, style)
# create layout
layout = Layout(diagram, 600, style)
height = layout.get_height()
# set alternative ordering function
layout.set_track_ordering_func(lambda s1, s2: "not_a_number")
# create canvas
canvas = CanvasCairoFile(style, 600, height)
# sketch layout on canvas
layout.sketch(canvas)
# write canvas to file
canvas.to_file(pngfile)
|