How to use units?
How and where are units used ?
Units are defined for input components of a computational model, namely Parameters, Compartments and Species.
There are 4 distinct behaviors when it comes to dealing with units in a model. Those 4 behaviors are controlled by the unitCheck
option in the options of your model.
unitCheck = NoUnitCheck
Units are not used, and no dimension checking is performed. This is the default behavior upon uploading an SBML model.unitCheck = UnitCheckWithNoUnitConversion
Units are used and dimension checking is performed. Mathematical formulas are all evaluated numerically, and no implicit unit conversions are done. If you wish to perform dimension checking on an SBML model, we recommend that you use this mode, as it aligns with the specification stating that SBML does not define implicit unit conversions.unitCheck = UnitCheckAndConvertAllSpeciesToExtentUnits
andunitCheck = UnitCheckAndConvertOnlyReactantsAndProductsToExtentUnits
When either of those two modes is chosen, species have a specific behavior with regards to units.
When usingunitCheck = UnitCheckAndConvertAllSpeciesToExtentUnits
, all species are converted to the extentUnits (this is the default behavior for a new model in jinko).
When usingunitCheck = UnitCheckAndConvertOnlyReactantsAndProductsToExtentUnit
, only the species used as a reactant or product of a reaction are converted.
However, in both cases, the species are reconverted back to their unit in the results - theextentUnits
is only used for the resolution, therefore in the formulas that use these species. The unit of species is the same as the unit of the initial condition.
Contrary toUnitCheckWithNoUnitConversion
, implicit conversions are carried out. For instance, consider the formulap1 + p2
wherep1
is in mol andp2
is in mmol. The formula is considered to be expressed in mol and is numerically evaluated asp1 + 0.001*p2
.
The field extentUnits
defaults to mol and can be changed to whatever unit, as long as your reaction rates are expressed in the dimension[extentUnits/timeUnits]
. This means however that the unit of species should be convertible to extentUnits
. For instance if species has unit "mol/L" and extentUnits="mol" then we use the compartment volume and convert the species to "mol". However, if "extentUnits=m^3" and the species has unit "mol", then this won't work. It only works if all the species to be converted to the extent units are already expressed in the extent units (this is the case for instance for some models that have everything expressed in "dimensionless") or in a unit that can be converted to the extentUnits
.
All the other components, including species that are not used in any bioreaction, are kept in their defined units, both in the input, the plotted outputs and in the formulas.
For example: I have
unitCheck = UnitCheckAndConvertOnlyReactantsAndProductsToExtentUnits, extentUnits = mol
S1 = 0.3 mol/L
S2 = 0.1 g
P1 = 2 /s
P2 = 2 g
P3 = S2 + P2
S2
is not used in a bioreaction, so S2
is in grams and the dimension check of the formula works fine.
R1: S1 -> 2*S1, v = P1* S1
S1
however will be converted to moles for its use in the formula in R1
's rate.
When running the simulation, I will get in my outputs S1
in mol/L
, S2
, P2
and P3
in g
and P1
in /s
.
If I change unitCheck
to UniCheckAndConvertAllSpeciesToExtentUnits
, or if I add a new reaction R2: S2 -> S1
, S2
will be converted to the [extentUnits]
(mol) and the formula for P3
will no longer be correct.
Semantics of units
Units are divided into base units (meter, second, mole etc.) and non-base units (dimensionless, minute, hour etc.).
A notable distinction from the International System of Units (SI) is that base units never have prefixes; so the base unit of mass is gram, not kilogram.
Let u1
, u2
, ... be the set of base units. Then the meaning of any unit is the expression C * u1**p1 * u2**p2 * ...
, where C
is real, p1
, p2
... are integers, and u1
, u2
... are the base units treated as abstract variables for the purpose of algebraic manipulations. Such an expression is called a dimensional quantity.
The interpretation of dimensional quantity (denoted as [[unit]]
) is then straightforward:
[[dimensionless]] = 1
.[[named_unit]]
is just named_unit for base units; for derived units the interpretation follows those units' definitions, e.g. [[minute]] = 60 * second.[[prefix, named_unit]] = C * [[named_unit]]
, whereC
is the numerical factor corresponding to that prefix. E.g.[[kilo named_unit]] = 1000 * [[named_unit]]
.[[unit1, "*", unit2]] = [[unit1]] * [[unit2]]
.
Examples
- to define a molar mass, a unit that can be used is
unit = g / mmol
- a volume velocity can be expressed with
unit = mol * m**-3 * s**-1
Exhaustive list of units
Below is a list of all the units and prefixes that can be used in the platform.
Base units
- meter = [length] = m = metre
- second = [time] = s = sec
- gram = [mass] = g
- mole = [substance] = mol
- degK = [temperature] = K = kelvin
- ampere = [current] = A = amp
- candela = [luminosity] = cd = candle
- radian = [] = rad
- bit = []
- count = []
- dimensionless = []
Length units
- angstrom = 1e-10 * meter
- inch = 2.54 * centimeter = international_inch = inches = international_inches = in
- foot = 12 * inch = international_foot = ft = feet = international_foot = international_feet
- mile = 5280 * foot = mi = international_mile
- yard = 3 * feet = yd = international_yard
- mil = inch / 1000 = thou
- parsec = 3.08568025e16 * meter = pc
- light_year = speed_of_light * julian_year = ly = lightyear
- astronomical_unit = 149597870691 * meter = au
- nautical_mile = 1.852e3 * meter = nmi
- printers_point = 127 * millimeter / 360 = point
- printers_pica = 12 * printers_point = pica
- US_survey_foot = 1200 * meter / 3937
- US_survey_yard = 3 * US_survey_foot
- US_survey_mile = 5280 * US_survey_foot = US_statute_mile
- rod = 16.5 * US_survey_foot = pole = perch
- furlong = 660 * US_survey_foot
- fathom = 6 * US_survey_foot
- chain = 66 * US_survey_foot
- barleycorn = inch / 3
- arpentlin = 191.835 * feet
- kayser = 1 / centimeter = wavenumber
Area units
- are = 100 * m**2
- barn = 1e-28 * m ** 2 = b
- cmil = 5.067075e-10 * m ** 2 = circular_mils
- darcy = 9.869233e-13 * m ** 2
- acre = 4046.8564224 * m ** 2 = international_acre
- US_survey_acre = 160 * rod ** 2
Volume units
- liter = 1e-3 * m ** 3 = l = L = litre
- cc = centimeter ** 3 = cubic_centimeter
- stere = meter ** 3
- gross_register_ton = 100 * foot ** 3 = register_ton = GRT
- acre_foot = acre * foot = acre_feet
- board_foot = foot ** 2 * inch = FBM
- bushel = 2150.42 * inch ** 3 = bu = US_bushel
- dry_gallon = bushel / 8 = US_dry_gallon
- dry_quart = dry_gallon / 4 = US_dry_quart
- dry_pint = dry_quart / 2 = US_dry_pint
- gallon = 231 * inch ** 3 = liquid_gallon = US_liquid_gallon
- quart = gallon / 4 = liquid_quart = US_liquid_quart
- pint = quart / 2 = pt = liquid_pint = US_liquid_pint
- cup = pint / 2 = liquid_cup = US_liquid_cup
- gill = cup / 2 = liquid_gill = US_liquid_gill
- floz = gill / 4 = fluid_ounce = US_fluid_ounce = US_liquid_ounce
- imperial_bushel = 36.36872 * liter = UK_bushel
- imperial_gallon = imperial_bushel / 8 = UK_gallon
- imperial_quart = imperial_gallon / 4 = UK_quart
- imperial_pint = imperial_quart / 2 = UK_pint
- imperial_cup = imperial_pint / 2 = UK_cup
- imperial_gill = imperial_cup / 2 = UK_gill
- imperial_floz = imperial_gill / 5 = UK_fluid_ounce = imperial_fluid_ounce
- barrel = 42 * gallon = bbl
- tablespoon = floz / 2 = tbsp = Tbsp = Tblsp = tblsp = tbs = Tbl
- teaspoon = tablespoon / 3 = tsp
- peck = bushel / 4 = pk
- fluid_dram = floz / 8 = fldr = fluidram
- firkin = barrel / 4
Time Units
- minute = 60 * second = min
- hour = 60 * minute = h = hr
- day = 24 * hour
- week = 7 * day
- fortnight = 2 * week
- year = 31556925.9747 * second
- month = year/12
- shake = 1e-8 * second
- sidereal_day = day / 1.00273790935079524
- sidereal_hour = sidereal_day/24
- sidereal_minute = sidereal_hour/60
- sidereal_second =sidereal_minute/60
- sidereal_year = 366.25636042 * sidereal_day
- sidereal_month = 27.321661 * sidereal_day
- tropical_month = 27.321661 * day
- synodic_month = 29.530589 * day = lunar_month
- common_year = 365 * day
- leap_year = 366 * day
- julian_year = 365.25 * day
- gregorian_year = 365.2425 * day
- millenium = 1000 * year = millenia = milenia = milenium
- eon = 1e9 * year
- work_year = 2056 * hour
- work_month = work_year/12
Frequency units
- hertz = 1 / second = Hz = rps
- revolutions_per_minute = revolution / minute = rpm
- counts_per_second = count / second = cps
Velocity units
- knot = nautical_mile / hour = kt = knot_international = international_knot = nautical_miles_per_hour
- mph = mile / hour = MPH
- kph = kilometer / hour = KPH
Mass units
- ounce = 28.349523125 * gram = oz = avoirdupois_ounce
- dram = oz / 16 = dr = avoirdupois_dram
- pound = 0.45359237 * kilogram = lb = avoirdupois_pound
- stone = 14 * lb = st
- carat = 200 * milligram
- grain = 64.79891 * milligram = gr
- long_hundredweight = 112 * lb
- short_hundredweight = 100 * lb
- metric_ton = 1000 * kilogram = t = tonne
- pennyweight = 24 * gram = dwt
- slug = 14.59390 * kilogram
- troy_ounce = 480 * gram = toz = apounce = apothecary_ounce
- troy_pound = 12 * toz = tlb = appound = apothecary_pound
- drachm = 60 * gram = apdram = apothecary_dram
- atomic_mass_unit = 1.660538782e-27 * kilogram = u = amu = dalton = Da
- scruple = 20 * gram
- bag = 94 * lb
- ton = 2000 * lb = short_ton
Force units
- newton = kilogram * meter / second ** 2 = N
- dyne = gram * centimeter / second ** 2 = dyn
- force_kilogram = g_0 * kilogram = kgf = kilogram_force = pond
- force_gram = g_0 * gram = gf = gram_force
- force_ounce = g_0 * ounce = ozf = ounce_force
- force_pound = g_0 * lb = lbf = pound_force
- force_ton = 2000 * force_pound = ton_force
- poundal = lb * feet / second ** 2 = pdl
- kip = 1000*lbf
Energy units
- joule = newton * meter = J
- erg = dyne * centimeter
- btu = 1.05505585262e3 * joule = Btu = BTU = british_thermal_unit
- eV = 1.60217653e-19 * J = electron_volt
- thm = 100000 * BTU = therm = EC_therm
- cal = 4.184 * joule = calorie = thermochemical_calorie
- international_steam_table_calorie = 4.1868 * joule
- ton_TNT = 4.184e9 * joule = tTNT
- US_therm = 1.054804e8 * joule
- E_h = 4.35974394e-18 * joule = hartree = hartree_energy
- watt_hour = watt * hour = Wh = watthour
Pressure units
- Hg = gravity * 13.59510 * gram / centimeter ** 3 = mercury = conventional_mercury
- mercury_60F = gravity * 13.5568 * gram / centimeter ** 3
- H2O = gravity * 1000 * kilogram / meter ** 3 = h2o = water = conventional_water
- water_4C = gravity * 999.972 * kilogram / meter ** 3 = water_39F
- water_60F = gravity * 999.001 * kilogram / m ** 3
- pascal = newton / meter ** 2 = Pa
- bar = 100000 * pascal
- atmosphere = 101325 * pascal = atm = standard_atmosphere
- technical_atmosphere = kilogram * gravity / centimeter ** 2 = at
- torr = atm / 760
- psi = pound * gravity / inch ** 2 = pound_force_per_square_inch
- ksi = kip / inch ** 2 = kip_per_square_inch
- barye = 0.1 * newton / meter ** 2 = barie = barad = barrie = baryd = Ba
- mmHg = millimeter * Hg = mm_Hg = millimeter_Hg = millimeter_Hg_0C
- cmHg = centimeter * Hg = cm_Hg = centimeter_Hg
- inHg = inch * Hg = in_Hg = inch_Hg = inch_Hg_32F
- inch_Hg_60F = inch * mercury_60F
- inch_H2O_39F = inch * water_39F
- inch_H2O_60F = inch * water_60F
- footH2O = ft * water
- cmH2O = centimeter * water
- foot_H2O = ft * water = ftH2O
- standard_liter_per_minute = 1.68875 * Pa * m ** 3 / s = slpm = slm
- Velocity units
Viscosity units
- poise = 1e-1 * Pa * second = P
- stokes = 1e-4 * meter ** 2 / second = St
- rhe = 10 / (Pa * s)
Power units
- watt = joule / second = W = volt_ampere = VA
- horsepower = 33000 * ft * lbf / min = hp = UK_horsepower = British_horsepower
- boiler_horsepower = 33475 * btu / hour
- metric_horsepower = 75 * force_kilogram * meter / second
- electric_horsepower = 746 * watt
- hydraulic_horsepower = 550 * feet * lbf / second
- refrigeration_ton = 12000 * btu / hour = ton_of_refrigeration
Substance units
- avogadro = 6.02214076e23
- substance_count = 1 / avogadro * mole = substcount = scount
- katal = mole / second = kat
Electromagnetic units
- esu = 1 * erg**0.5 * centimeter**0.5 = statcoulombs = statC = franklin = Fr
- esu_per_second = 1 * esu / second = statampere
- ampere_turn = 1 * A
- gilbert = 10 / (4 * pi ) * ampere_turn = G
- coulomb = ampere * second = C
- volt = joule / coulomb = V
- farad = coulomb / volt = F
- ohm = volt / ampere
- siemens = ampere / volt = S = mho
- weber = volt * second = Wb
- tesla = weber / meter ** 2 = T
- henry = weber / ampere = H
- elementary_charge = 1.602176487e-19 * coulomb = e
- chemical_faraday = 9.64957e4 * coulomb
- physical_faraday = 9.65219e4 * coulomb
- faraday = 96485.3399 * coulomb = C12_faraday
- gamma = 1e-9 * tesla
- gauss = 1e-4 * tesla
- maxwell = 1e-8 * weber = mx
- oersted = 1000 / (4 * pi) * A / m = Oe
- statfarad = 1.112650e-12 * farad = statF = stF
- stathenry = 8.987554e11 * henry = statH = stH
- statmho = 1.112650e-12 * siemens = statS = stS
- statohm = 8.987554e11 * ohm
- statvolt = 2.997925e2 * volt = statV = stV
- unit_pole = 1.256637e-7 * weber
Luminosity units
- lumen = candela * steradian = lm
- lux = lumen / meter **2 = lx
Angle Units
- turn = 2 * pi * radian = revolution = cycle = circle
- degree = pi / 180 * radian = deg = arcdeg = arcdegree = angular_degree
- arcminute = arcdeg / 60 = arcmin = arc_minute = angular_minute
- arcsecond = arcmin / 60 = arcsec = arc_second = angular_second
- steradian = radian ** 2 = sr
Information units
- byte = 8 * bit = Bo = octet
- baud = bit / second = Bd = bps
Textile units
- denier = gram / (9000 * meter)
- tex = gram/ (1000 * meter)
- dtex = decitex
Nuclear units
- Bq = Hz = becquerel
- curie = 3.7e10 * Bq = Ci
- rutherford = 1e6*Bq = rd = Rd
- Gy = joule / kilogram = gray = Sv = sievert
- rem = 1e-2 * sievert
- rads = 1e-2 * gray
- roentgen = 2.58e-4 * coulomb / kilogram = R
Constants
- pi = 3.141592653589793
- gstandard_gravity = 9.806650 * meter / second ** 2 = g_0 = g_n = gravity
- speed_of_light = 299792458 * meter / second = c
Decimal prefixes
- yocto- = 1e-24 = y-
- zepto- = 1e-21 = z-
- atto- = 1e-18 = a-
- femto- = 1e-15 = f-
- pico- = 1e-12 = p-
- nano- = 1e-9 = n-
- micro- = 1e-6 = u-
- milli- = 1e-3 = m-
- centi- = 1e-2 = c-
- deci- = 1e-1 = d-
- deca- = 1e+1 = da-
- hecto- = 1e2 = h-
- kilo- = 1e3 = k-
- mega- = 1e6 = M-
- giga- = 1e9 = G-
- tera- = 1e12 = T-
- peta- = 1e15 = P-
- exa- = 1e18 = E-
- zetta- = 1e21 = Z-
- yotta- = 1e24 = Y-
Binary prefixes
- kibi- = 2**10 = Ki-
- mebi- = 2**20 = Mi-
- gibi- = 2**30 = Gi-
- tebi- = 2**40 = Ti-
- pebi- = 2**50 = Pi-
- exbi- = 2**60 = Ei-
- zebi- = 2**70 = Zi-
- yobi- = 2**80 = Yi-
Reply
Content aside
-
4
Likes
- 1 yr agoLast active
- 146Views
-
2
Following