A component that has only one input and one output port (a component with the Interaction option set to "none" in the constituents dialog box) performs the simplest possible transformation:
y = F × xP
where x is the input and y is the output value, F the scaling factor, and P the power. Both F and P are editable.
Simple components may be used as input symbols, but in that case the values of F and P are ignored (since input symbols are not updated). They can also be used to simulate binding of homo-oligomeric transcription factors to genes (see below, under Genes).
Cells are connected through donor-receptor pairs, and if one receptor receives non-zero input from more than one cell, the input values are simply added up. At present, receptors handle negated input as if it were not negated.
Logical 'And' and 'Or' functions are normally used in conjunction with genes (see below). An 'And' function simply multiplies its inputs; and 'Or' function performs a somewhat more complicated calculation (see the Theory page for an explanation). For two inputs:
yand = x1 × x2
yor = x1 + x2 × (1 - x1)
Here, x1 and x2 are the input values to the functions, and yand and yor are their outputs. 'And' and 'Or' functions with more than two inputs are equivalent to a chain of functions with two inputs, in which the output of the first is used as input to the second in the chain: yor = x1 + x2(1 - x1) + x3(1 - (x1 + x2(1 - x1))), etc.

A negated input, x, to one of the logical functions is interpreted as its complement: x = 1 - x:

The input into logical functions must be between 0.0 and 1.0, and the values of the scaling factor F and the power P cannot be edited. Note that, at present NetBuilder does not give a warning when the input to a logical function could get outside the allowed range (0.0 - 1.0): you, the user, need to make sure that this cannot happen.
NetBuilder also provides symbols that can be used to perform addition or multiplication of inputs:
yadd = y1 + y2
ymultiply = y1 × y2
Although the addition function performs the same operation as the logical 'And' function, it interprets negated input in a different way: negated x is equal to the inverse of x: x = 1 / x. Negated input into the addition function is interpreted as a negation: x = -x. Again, the values of the scaling factor F and the power P cannot be edited.
Genes are, at present, the most complex module on offer in NetBuilder. In the example network, TF1 is input to the gene. The value of TF1 is interpreted as the concentration of a molecule (a transcription factor) that binds to the gene, divided by the equilibrium dissociation constant Kd of the gene-TF1 complex. This means that when the value of TF1 is 1.0, its real concentration is equal to Kd, and its binding site on the gene will be occupied 50% of the time. When the value of TF1 is 100 (thus it is present at a concentration of 100 times its Kd), the binding site occupation is 99%. The binding site occupation is calculated as follows:
y1 = x1 / (x1 + 1)
where y1 is the average occupation of the binding site of TF1, and x1 is the concentration of TF1 relative to its equilibrium dissociation constant (see the Theory page for a justification). The value of y1 is transferred to the output port underneath the input port to which TF1 is connected. The same holds for TF3, whereas TF2 is connected to the gene via a negated link. The negated input link is interpreted by a gene as follows:
y2 = 1 - { x2 / (x2 + 1) }
(where y2 is the TF2 binding site occupation, and x2 is the concentration of TF2 relative to the dissociation constant of the gene-TF2 complex). Note that y1 and y2 (and in general, the output values of the ports along the horizontal line) is always between 0.0 and 1.0, and can, therefore, be used as input to logical functions.
In the example, the transformed values of TF1, TF2, and TF3 are used as input for the two logical functions, whose output is calculated in the way indicated above. The output of the 'Or' function is transferred to the special input port at the bottom of the vertical stalk on. The only transformation that takes place when the input to the special input port is transferred to the output port at the arrowhead is multiplication by the scaling factor F; the value of the power P is fixed at 1.0.
Binding of a homo-oligomeric transcription factor (a complex of two or more products of the same gene) to a gene is simulated by setting the power of the input component (its "Hill coefficient") to a value greater than 1.0. The expression for the binding of the transcription factor ( y = xP / (xP + 1) ) is S-shaped for P > 1.0.
Binding of a hetero-oligomeric transcription factor (a complex of the products of two or more different genes) is simulated by multiplying the values of two or more input components (using the multiplication function) and transferring the product to the gene. The expression for the binding curve of a transcription factor that consists of two gene products, x1 and x2 is: y = x1x2/( x1x2 + 1).
The above input manipulations can be combined to simulate the binding of even more complex transcription factors:

A gene's output value can be interpreted as a measure for the rate at which the gene is transcribed. Usually, the transcription and translation products are also degraded in the cell (although this is not explicitly modelled), which means that, if nothing else changes in the mean time, the protein product will in due course reach a steady state level, which is proportional to the transcription rate. Thus, the output of a gene can be interpreted as a protein concentration, and can, therefore, be used directly as input to a next gene. It is up to the user to decide how large this 'steady state protein concentration' should be to have the required effect when it is passed to the next module.