InGeno Annotation Browser

InGeno provides a convenient annotation browser for users to find out the functional genes by their keywords.

Interface
The software has two panels, the upper one is named as "Constrant", where user could specify the filter in the upper textfield (Figure 1), e.g., "internalin AND LPXTG AND NOT like OR succinyl". It includes one or more interesting keywords, which are separated by "AND", "OR" and "NOT" to describe their logical relations.


Figure 1.: A screenshot of annotation browser.

The filter is designed to be case insensitive, so that users could feel free to feed them. The keywords and the logical notations must have at least one white space (" ") between them and all the redundant spaces will be automatically ignored by the software. In addition, ingeno allows users to add logical notations by buttons (i.e., the buttons "AND", "OR", "NOT" closely below the textfield). The button "Reset" can clear the filter input and the button "Back" provides a history function, the latter allows users to trace back the previous filters they performed before. This is very helpful for users to find out an appropriate filter. The combo-box named "show lines" can alter the listing lines (rows) in the result box, e.g., 50 lines as default in the figure 1.

The lower panel is the result box, once the users assign the filters, following a "Enter" operation or clicking the "GO" button, the results will be collected and shown in the result box.

Logical Priority
The logical priority is listed in the table below. "NOT" is always of highest priority, it describes the relation that the given keyword must be absent in the annotation. "AND" or "OR" notation connects two keywords (e.g., A and B), which indicates A and B are present in both or facultatively.
Logical terminolgy OR AND NOT
Priority Low Middle High
Table 1. Logical terminogy applied in inGeno.

Filter Examples
1. kinase AND NOT putative
2. transporter OR PTS
3. enzyme AND glucose OR PTS AND fructose OR metabolism OR energy

Regular Expression
Ingeno is able to accept regular expressions as the filter, which have advantages of parsing the keywords very flexibly.
E.g.,
1. \w+ose AND PTS OR g\w+ase OR fa.t.r
2. LP\w{2}G OR internalin
A tutorial of regulary expression is located at: http://www.regular-expressions.info/quickstart.html
Another is avaible here: http://en.wikipedia.org/wiki/Regular_expression/

The ofter-used regular expression symbols are listed here
Metacharacters
. any char
^ line head, when inside [], ^ denotes NOT
$ line tail
* any repeat (matches 0 or 1 or more times)
+ any repeat (matches 1 or more times)
? absent or present without repeats (matches 0 or 1 time)
{m,n} matches from m to n times of repeats, e.g. {0,1} is same to ?
| or
[] a range, e.g., [a-d] sameto [abcd]

Predefined symbol
\d Matches any decimal digit; this is equivalent to the class [0-9].
\D Matches any non-digit character; this is equivalent to the class [^0-9].
\s Matches any whitespace character; this is equivalent to the class [ \t\n\r\f\v].
\S Matches any non-whitespace character; this is equivalent to the class [^ \t\n\r\f\v].
\w Matches any alphanumeric character; this is equivalent to the class [a-zA-Z0-9_].
\W Matches any non-alphanumeric character; this is equivalent to the class [^a-zA-Z0-9_].