[x^?name : x <- ecoli^^proteins]
This can be read as follows: return the name of all x such that x is an object in the class proteins in the database ecoli. In BioVelo, the database name must be an identifier, as defined in the BioVelo language, not containing any spaces or special characters.
The colon ':' delimits the head of the query, which in this case is x^?name, and the rest of the query, which are qualifiers, that is, generators, filters, or binders. The left arrow <- specifies a generator: on its left is a variable (or tuple) and on its right is a list. The double caret ^^ is an operator that creates a list of all objects of a given database name and class name. In this example, the database name is ecoli and the class name is proteins. Please, consult the BioVelo documentation for more information on the syntax and semantics of the query language.
#ecoli^^proteins
[x^?name : x <- ecoli^^proteins, x^dna-footprint-size < 10]
This can be read as follows: return all x such that x is an object from the proteins class in database ecoli, for which the attribute dna-footprint-size of x is smaller than 10.
[(x^?name, x^pi, x^molecular-weight-kd) : x <- ecoli^^proteins, #[w : w <- x^molecular-weight-kd, w < 20, w > 10] > 0, #[y : y <- x^pi, y < 5, y > 3] > 0 ]
[ p^?name : p <- ecoli^^proteins, "2006" instring p^comment & "No information" instringci p^comment]This can also be written as
[ p^?name : p <- ecoli^^proteins, "2006" instring p^comment, "No information" instringci p^comment]And to have each comment nicely printed next to every protein in the output table:
[ (p^?name, p^comment) : p <- ecoli^^proteins, "2006" instring p^comment, "No information" instringci p^comment]
[ x^?names : x <- ecoli^^genes, #x^names > 4]
[ x^?names : x <- ecoli^^Genes, (#[y : y <-x^names, "tr" instring y]) > 0]
[(x^?name, x^left-end-position, x^right-end-position) : x <- ecoli^^Genes, x^left-end-position < 153000]
[(x^?name, x^left-end-position, x^right-end-position, k) : x <- ecoli^^genes, k := abs(x^left-end-position - x^right-end-position) + 1, k < 200]
[(x^?name, x^left-end-position, x^right-end-position, x^comment, x^product) : x <- ecoli^^genes, 0 = x^left-end-position - x^right-end-position]
[(x^?name, e) : x <- ecoli^^genes, e := [c^?name: c <- x^component-of, c isa transcription-units], #e > 1]
#[r^?name : r <- ecoli^^reactions, 1 = #r^left ]
[ (r^?name, c^?name) : r <- ecoli^^reactions, c <- r^left, c in r^right ]
[(r^?name, #r^left) : r <- ecoli^^reactions, 3 < #r^left ]
[(x^?name, x^?in-pathway, #x^in-pathway) : x <- ecoli^^reactions, 1 < #x^in-pathway]
[(x^?name, x^in-pathway, #x^in-pathway) : x <- ecoli^^reactions, ! (x isa binding-reactions), 1 < #x^in-pathway]
[x^?name : x <- ecoli^^pathways, !(x isa super-pathways), !(x isa signaling-pathways) ]
[(p^?name, r1^?name, r2^?name) : p <- ecoli^^pathways, r1 <- p^reaction-list, r2 <- p^reaction-list, r1 != r2]
[([y^enzyme:y<-es], p^?name, r1^?name, r2^?name) : p <- ecoli^^pathways, r1 <- p^reaction-list, r2 <- p^reaction-list, r1 != r2, es := (r1^enzymatic-reaction ** r2^enzymatic-reaction), #es > 0]Note that es is a set of enzymatic-reactions and is not an enzyme. The short sub-query [y^enzyme:y<-es] in the head of the main query lists the enzyme names of es; which are enzymatic-reactions.
[(t^?name, [c^?name:c <- t^components, c isa promoters]) : t <- ecoli^^transcription-units]
[(z^?NAME, GL) : z <- ECOLI^^Transcription-Units, G := [x : x <- z^components, x isa genes], #G > 1, GL := [(g^?name,k): g <- G, k := abs(g^left-end-position - g^right-end-position)+1] ]
[(t^?name, t^components, [c: c<-t^components, c isa genes], [c: c<-t^components, c isa DNA-Binding-Sites], [c: c<-t^components, c isa promoters]) : t <- ecoli^^transcription-units]
([r^?name : r <- ecoli^^reactions, 2 = #r^right ], [r^?name : r <- ecoli^^reactions, 3 = #r^right ] )
[ (r^?name, reaction-to-genes r) : r <- ecoli^^reactions]
[ (p^?name, pathway-to-genes p) : p <- ecoli^^pathways]
#dbs
dbs
[(x, #x^^proteins, #x^^genes, #x^^pathways, #x^^reactions) : x <- dbs]