TinkerCell is a Computer-Aided Design software tool for Synthetic Biology that promotes collaboration through its plugin interface. This blog is used to keep notes on updates to the project.

## Tuesday, February 10, 2009

### Model Summary View

## Monday, February 9, 2009

### Network Layout using NetworkX

nodes = pytc.itemsOfFamily("node");

connections = pytc.itemsOfFamily("connection");

numNodes = len(nodes);

numConnections = len(connections);

M = [];

for i in range(0,numConnections):

pytc.setStraight(connections[i]);

connected_nodes = pytc.getConnectedParts( connections[i] );

for j in connected_nodes:

n = 0;

for k in range(0,numNodes):

if nodes[k] == j:

n = k;

break;

n += numConnections;

M.append( (i,n) ); #connection i and node k are connected

G = nx.Graph();

G.add_nodes_from( range( 0, numConnections + numNodes ) );

G.add_edges_from(M);

Pos = nx.spring_layout(G);

minx = 0;

maxx = 0;

miny = 0;

maxy = 0;

for i in range(0,len(Pos)):

if minx == 0 or minx > Pos[i][0]:

minx = Pos[i][0];

if miny == 0 or miny > Pos[i][1]:

miny = Pos[i][1];

if maxx == 0 or maxx <>

maxx = Pos[i][0];

if maxy == 0 or maxy <>

maxy = Pos[i][0];

for i in range(0,len(Pos)):

Pos[i][0] += - minx;

Pos[i][0] *= 500.0/(maxx - minx);

Pos[i][1] += - miny;

Pos[i][1] *= 500.0/(maxy - miny);

for i in range(0,numConnections):

pytc.setCenterPoint(connections[i],Pos[i][0],Pos[i][1]);

for i in range(numConnections,numConnections+numNodes):

pytc.setPos(nodes[i-numConnections],Pos[i][0],Pos[i][1]);

print "layout finished";

## Sunday, February 8, 2009

### Changing the Parts Tree

### Measurement Units

- units are not determined by the model, but by the family tree
- users cannot change the units while constructing models
- changing units means changing the parts/connections tree
- units are part of the "standards" defined by the parts and connections tree

## Sunday, February 1, 2009

### Python Modules inside TinkerCell

**numpy**.scipy.org and www.scipy.org

**pysces**.sourceforge.net

**networkx**.lanl.gov

**rpy**.sourceforge.net/