Team:Heidelberg/Tempaltes/iGEM42-W-20a

From 2013.igem.org

Contents

Expansion of Filters

The last filters missing (medal and abstract), another filter for team names and one for the information content of the abstract were implemented. Additionally the selection ranges of some filters were adjusted. See table 23.1 for the final filter setups.

Table 23.1: Overview of all final filters.
Parameter Type Options* Status
Year numeric 2007-2012 final
Region string levels final
Track string levels final
Students numeric 0, 5, 10, 15, 20, >20 final
Advisors numeric 0, 2, 4, 6, 8, 10, 12, 14, >14 final
Instructors numeric 0, 2, 5, 10, 15, >15 final
Biobricks numeric 0, 5, 10, 20, 50, 100, 200, >200 final
Championship character vector levels final
Regional character vector levels final
Medals string levels final
Score numeric 0-100 (steps of 10) final
Abstract binary all/only provided final
Information content numeric 0, 0.4, 0.45, 0.5, 0.55, 0.6 final
Team name string variable entry final
* Levels means all possible values the parameter can have, which is either generated automatically or manually.

Abstract

The filter for the abstract only checks, whether an abstract was submitted or not. See the pseudocode:

if user wants to see all teams return full data set
else {
	iterate through all row names in the data-frame {
		if the abstract of the team "row name" in the data-list matches the string "-- No abstract provided yet --" save the name to a vector
	}
	delete all teams without abstract
	return the reduced data set
}
Since the information content is also related to the abstract, they are put together in one tab of the filter notebook. As it turned out that the information content always is in a very small range around 50%, the possible selections were chosen accordingly. The filter function is similar to those of any other numeric parameter, where the only difference is that all choices are numeric and thus the different cases of minimum and maximum selection can be skipped.

Medal

The medal filter is just the same as the filters for track or region, since it is also saved in the data-frame.

Team Name

For filtering the team name a text entry box was introduced, together with a javascript, that checks on the entered search term. A list of all team names was created and converted to a javascript array using R and its package RJSONIO. The javascript code then compares the entered term(s) with this array and changes the text color to either red (no exact match) or black (exact match). To allow for multiple name entries comma-serapated terms can be entered and are automatically separated by the javascript for color changing and by the filter function.
The pseudocode of the filter funciton looks like this:

split the input string at every comma
iterate through all strings {
	find all teams having the string in their name and keep their ids
}
reduce and return dataset

Team table output

All the apps so far only displayed data, but with no option to see which teams contrbuted to each portion of the graphs. Thus a table output was implemented, that shows the teams' names, years and wiki links. To allow for better overview, one can select how many tams should be display (none, 5, 10, 20, 50, 100 or all) and in which order. This can be done either by the score, displaying the best teams at the top of the list, by year starting with most recent teams, or alphabetically. The data-frame displayed always represents the fully filtered data. Thus the user can narrow the number of teams down using the filters and can then go directly to the corresponding wiki pages.