[Bio] / FigKernelScripts / make_maps_from_sub.py Repository:
ViewVC logotype

Diff of /FigKernelScripts/make_maps_from_sub.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1, Wed Jun 16 14:57:28 2004 UTC revision 1.5, Mon Dec 5 18:56:37 2005 UTC
# Line 1  Line 1 
1    #
2    # Copyright (c) 2003-2006 University of Chicago and Fellowship
3    # for Interpretations of Genomes. All Rights Reserved.
4    #
5    # This file is part of the SEED Toolkit.
6    #
7    # The SEED Toolkit is free software. You can redistribute
8    # it and/or modify it under the terms of the SEED Toolkit
9    # Public License.
10    #
11    # You should have received a copy of the SEED Toolkit Public License
12    # along with this program; if not write to the University of Chicago
13    # at info@ci.uchicago.edu or the Fellowship for Interpretation of
14    # Genomes at veronika@thefig.info or download a copy from
15    # http://www.theseed.org/LICENSE.TXT.
16    #
17    
18  from FigKernelPackages.FIG2 import FIG  from FigKernelPackages.FIG2 import FIG
19  import FIG_Config  import FIG_Config
20  import re  import re
21  import os, sys, string  import os, sys, string
22    import shutil
23    
24  IN_DIR = "%s/SubsystemDiagrams/" % FIG_Config.data  IN_DIR = "%s/SubsystemDiagrams/" % FIG_Config.data
25  OUT_DIR = "%s/MAP_SUPPORT/Maps/" % FIG_Config.data  OUT_DIR = "%s/MAP_SUPPORT/Maps/" % FIG_Config.data
26    
27    if not os.path.isdir(IN_DIR):
28            print "Creating ", IN_DIR
29            os.makedirs(IN_DIR)
30    
31    if not os.path.isdir(OUT_DIR):
32            print "Creating ", OUT_DIR
33            os.makedirs(OUT_DIR)
34    
35  def add_to_index(id, name):  def add_to_index(id, name):
36          line = "%s\t%s\n" % (id, name)          line = "%s\t%s\n" % (id, name)
37          file = open("%s/MAP_SUPPORT/INDEX" % FIG_Config.data, "r")          index_file = "%s/MAP_SUPPORT/INDEX" % FIG_Config.data
38    
39            if os.path.isfile(index_file):
40    
41                    file = open(index_file, "r")
42          l = file.readlines()          l = file.readlines()
43                    file.close()
44            else:
45                    l = []
46    
47          if line not in l:          if line not in l:
48                  l.append(line)                  l.append(line)
49                  print "Adding ", line                  print "Adding ", line
50          file = open("%s/MAP_SUPPORT/INDEX" % FIG_Config.data, "w")  
51            file = open(index_file, "w")
52          file.writelines(l)          file.writelines(l)
53          file.close()          file.close()
54    
# Line 32  Line 67 
67  def make_maps(in_dir, dir):  def make_maps(in_dir, dir):
68          print          print
69          sub = fig.get_subsystem(dir)          sub = fig.get_subsystem(dir)
70            if sub is None:
71                    return
72    
73          diags = sub.get_diagrams()          diags = sub.get_diagrams()
74            if diags is None:
75                    return
76          for diagram in diags:          for diagram in diags:
77                  mapname = dir+"_"+diagram                  mapname = dir+"_"+diagram
78                  if not os.path.isdir(OUT_DIR+mapname):                  if not os.path.isdir(OUT_DIR+mapname):
# Line 44  Line 84 
84                  coords = {}                  coords = {}
85                  link_coords={}                  link_coords={}
86                  links = {}                  links = {}
87                    compounds = {}
88                  for aitem in areas:                  for aitem in areas:
89                          area, tag, value = aitem                          area, tag, value = aitem
90                          print "area=%s tag=%s value=%s" % (area, tag, value)                          # print "area=%s tag=%s value=%s" % (area, tag, value)
91    
92                          if tag == "role":                          if tag == "role":
93                                  roles[area] = value                                  roles[area] = value
94                            if tag == "compound":
95                                    compounds[area] = value
96                          if tag == "shape":                          if tag == "shape":
97                                  shape_kind, shape_coords = value.split(":", 1)                                  shape_kind, shape_coords = value.split(":", 1)
98    
99                                  if shape_kind == "rect":                                  if shape_kind == "rect":
100                                          x1,y1,x2,y2 = shape_coords.split(",");                                          x1,y1,x2,y2 = shape_coords.split(",");
101                                          cvalue = "rect (%s,%s) (%s,%s)" %(x1, y1, x2, y2)                                          cvalue = "rect (%s,%s) (%s,%s)" %(x1, y1, x2, y2)
102                                            link_coords[area] = "<AREA shape=rect coords=%s,%s,%s,%s " % (x1,y1,x2,y2)
103    
104                                    elif shape_kind == "circle":
105                                            x, y, r = shape_coords.split(",");
106                                            cvalue = "circ (%s,%s) %s" % (x, y, r)
107                                            link_coords[area] = "<AREA shape=circle coords=%s,%s,%s " % (x, y, r)
108                                  else:                                  else:
109                                          print "Unknown shape kind ", shape_kind                                          print "Unknown shape kind ", shape_kind
110                                          cvalue = ""                                          cvalue = ""
111    
112                                  coords[area] = cvalue                                  coords[area] = cvalue
                                 link_coords[area] = "<AREA shape=rect coords=%s,%s,%s,%s " % (x1,y1,x2,y2)  
113                          if tag == "link":                          if tag == "link":
114                                  m = re.search(r'^"([^"]+)",(.*)$', value)                                  m = re.search(r'^"([^"]+)",(.*)$', value)
115                                  if m:                                  if m:
# Line 76  Line 124 
124                          role_coords.write(roles[area]+"\t"+coords[area]+"\n")                          role_coords.write(roles[area]+"\t"+coords[area]+"\n")
125                          if links.has_key(area):                          if links.has_key(area):
126                                  link_table.write('%s href="%s">\n' % (link_coords[area], links[area]))                                  link_table.write('%s href="%s">\n' % (link_coords[area], links[area]))
127                    for compound in compounds.keys():
128                    #for link in links.keys():
129                            #print "("+link+")", link_coords[compound], links[compound]
130                            if links.has_key(compound):
131                                    link_table.write('%s href="%s">\n' % (link_coords[compound], links[compound]))
132                  role_coords.close()                  role_coords.close()
133                  link_table.close()                  link_table.close()
134    
135                    #
136                    # mapstuff needs name_coords.table with the same contents as role_coords.table
137                    #
138    
139                    shutil.copyfile(OUT_DIR + mapname + "/role_coords.table",
140                                    OUT_DIR + mapname + "/name_coords.table")
141    
142                  add_to_index(mapname, dir)                  add_to_index(mapname, dir)
143    
144    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3