-
Notifications
You must be signed in to change notification settings - Fork 1
Features
In this section, we will highlight the main features of Germinate. This section will expand as we add new features.
Germinate fully supports internationalization for an unlimited number of languages. Every text that you can see on the web interface can be localized. The language used on start-up is chosen based on the browser settings, but the user can easily switch to a different language by selecting it from the combo box at the bottom of the page. Have a look at Section Customization for usage details.
The Germinate web interface contains a place holder to show the latest news of the project. On the database side, these news are stored in two tables and can be updated at any time. The web interface will check the availability of news and show the three latest entries at the bottom of the page. Changes on the database side will immediately be visible on the website.
This section gives an overview of all the pages that are available for Germinate. Based on your requirements and the data that is available, you can decide which pages should actually be available on the web interface and hide all others. The set of available pages can be changed dynamically without having to re-deploy the application. This gives you the freedom to customize your Germinate experience just as you please.
- Content
- The about page of Germinate shows information about Germinate itself. This includes information about the developers and contact details.
- Page name
about-germinate
- Used data
- None
- Content
- This page shows information about the project itself.
- Page name
about-project
- Used data
- None
- Customization
- You can change the content of this page by providing HTML to the
page.about.project.text
property.
- Content
- The overview page shows all the accessions contained in the Germinate database in a filterable table. The user can sort, filter and mark items. Below the table, there are tools to download accessions, their attributes and pedigree data to flat files.
- Page name
accession-overview
- Used data
biologicalstatus, collectingsources, countries, germinatebase, institutions, locations, locationtypes, mlsstatus, pedigreedefinitions, pedigreedescriptions, pedigreenotations, pedigrees, storage, storagedata, subtaxa, synonyms, synonymtypes, taxonomies
- Content
- This page shows all accessions that have been collected at the given collecting site. It also allows the user to download the data in
.kml
format for Google Earth. - Page name
accessions-for-collsite
- Used data
countries, germinatebase, locations, locationtypes
- URL parameter
-
collectingsiteId
The id of the collecting site.
- Content
- This page can be used to acknowledge collaborators, etc.
- Page name
acknowledgements
- Used data
- None
- Customization
- You can change the content of this page by providing HTML to the
page.acknowledgements.text
property.
- Content
- This page allows page administrators to make modifications to the way Germinate operates and looks. Regular users cannot see this page.
- Page name
admin-config
- Used data
- None
- Content
- All available allele frequency datasets are shown on this page. The user will be able to select which datasets to export.
- Page name
allele-freq-dataset
- Used data
allelefrequencydata, attributedata, attributes, collaborators, datasets, datasetstates, datasetpermissions, germinatebase, experiments, experimenttypes
- Content
- On this page, the user is able to select which data they want to export from the selected dataset.
- Page name
allele-freq-export
- Used data
allelefrequencydata, datasets, datasetstates, datasetpermissions, germinatebase, experiments, experimenttypes, groupmembers, groups, maps, mapdefinitions, mapfeaturetypes, markers, markertypes
- Content
- On this page, the user can select the data binning scheme they want to apply to the allele frequency data. The final output files are shown on this page as well.
- Page name
allele-freq-results
- Used data
allelefrequencydata, datasets, datasetstates, datasetpermissions, germinatebase, experiments, experimenttypes, groupmembers, groups, grouptypes, maps, mapdefinitions, mapfeaturetypes, markers, markertypes
- Content
- The climate data page shows detailed information about climate information. The data is visualized in charts and a color-coded table. In addition, climate data map overlays are shown on a map.
- Page name
climate-data
- Used data
climatedata, climateoverlays, climates, countries, datasets, datasetpermissions, datasetstates, experiments, experimenttypes, germinatebase, groupmembers, groups, grouptypes, locations, locationtypes, units
- Content
- All available climate datasets are shown on this page. The user will be able to select which datasets to export.
- Page name
climate-dataset
- Used data
attributedata, attributes, collaborators, climatedata, climates, datasets, datasetstates, datasetpermissions, germinatebase, experiments, experimenttypes
- Content
- This page shows a table with all the chemical compounds.
- Page name
compounds
- Used data
analysismethod, compounddata, compounds, datasets, germinatebase, units
- Content
- The chemical compound details page shows information about a specific compound. This includes the compound data values across all accessions and visible datasets as well as that same data in the form of a chart. If images and external links are associated with a compound, these will be shown as well.
- Page name
compound-details
- Used data
analysismethod, compounddata, compounds, datasets, germinatebase, synonyms, synonymtypes, units
- URL parameter
-
compoundId
The id of the chemical compound.
- Content
- All available chemical compound datasets are shown on this page. The user will be able to select which datasets to export.
- Page name
compound-dataset
- Used data
attributedata, attributes, collaborators, compounddata, compounds, datasets, datasetstates, datasetpermissions, germinatebase, experiments, experimenttypes
- Content
- This page offers various different visualizations for the chemical compound data of the selected datasets. The data can also be downloaded into flat files.
- Page name
compound-data
- Used data
analysismethod, compounddata, compounds, datasets, germinatebase, synonyms, synonymtypes, units
- Content
- EU law requires us to provide information about the cookies that Germinate uses and what we use this information for. Detailed information about our usage of cookies is available on this page.
- Page name
cookie
- Used data
- None
- Content
- The data statistics page visualizes aggregated information about the data contained in Germinate.
- Page name
data-stats
- Used data
- Everything
- Content
- This page shows all the datasets within Germinate independent of their type in one table.
- Page name
dataset-overview
- Used data
allelefrequencydata, attributedata, attributes, climatedata, climates, collaborators, compounddata, compounds, datasets, datasetstates, datasetpermissions, germinatebase, experiments, experimenttypes, phenotypedata, phenotypes, units
- Content
- The experiment details page shows all the datasets contained in a single experiment.
- Page name
experiment-details
- Used data
attributedata, attributes, collaborators, datasets, datasetpermissions, datasetstates, experiments, experimenttypes
- URL parameter
-
experimentId
The id of the experiment.
- Content
- All available genotype datasets are shown on this page. The user will be able to select which datasets to export.
- Page name
genotype-dataset
- Used data
attributedata, attributes, collaborators, datasets, datasetstates, datasetpermissions, germinatebase, experiments, experimenttypes
- Content
- On this page, the user is able to select which data they want to export from the selected dataset.
- Page name
genotype-export
- Used data
datasets, datasetstates, datasetpermissions, germinatebase, experiments, experimenttypes, groupmembers, groups, maps, mapdefinitions, mapfeaturetypes, markers, markertypes
- Content
- The geographic search page allows the user to search for both accessions and locations based on a given query point or polygon.
- Page name
geographic-search
- Used data
countries, germinatebase, locations, locationtypes
- URL parameter
-
latitude, longitude
The location of the point query.
- Content
- Germinate offers the functionality to define groups of accessions via an API and a dedicated page. Tools like CurlyWhirly can upload a file containing the identifier of accessions and Germinate will display a preview of these items in a table. Once the user is happy with the selection, they can create a new group based on the selection.
- Page name
group-preview
- Used data
germinatebase, groupmembers, groups, grouptypes
- Content
- The groups page shows an overview of all the accession, marker and location groups that are defined in Germinate. Depending on the permissions, the user can create new groups, delete old groups and modify the members of a group.
- Page name
groups
- Used data
countries, germinatebase, groupmembers, groups, grouptypes, locations, locationtypes, markers, markertypes
- URL parameter
-
groupId
The id of the group.
- Content
- This page shows all the images that are defined grouped by type. By clicking on the button below each image the user will be able to navigate to the corresponding details page.
- Page name
image-gallery
- Used data
compounds, germinatebase, images, imagetypes
- Content
- The locations page shows information about the location data. The locations are displayed on maps as well as visualized in different ways.
- Page name
locations
- Used data
countries, germinatebase, locations, locationtypes
- Content
- The home page of Germinate. It shows aggregated statistics about accessions, groups, locations and markers.
- Page name
home
- Used data
countries, germinatebase, groupmembers, groups, grouptypes, locations, locationtypes, markers, markertypes
- Content
- This page shows all the institutions associated with accessions held in Germinate.
- Page name
institutions
- Used data
countries, germinatebsae, institutions, locations, locationtypes
- Content
- The maps page shows an overview of all the maps. Selecting one of them will display a table of all the markers on this map along with their position on the chromosome.
- Page name
maps
- Used data
mapdefinitions, mapfeaturetypes, maps, markers, markertypes
- URL parameter
-
mapId
The id of a map. This will expand the details of this map.
- Content
- Marked item lists are a way of keeping track of items of interest. These items can be any accessions, markers or locations that the user is interested in. The marked items page shows all the items a user has marked so far. There are options to download the data or to create a group from the list if the user has sufficient permissions.
- Page name
marked-items
- Used data
germinatebase, groupmembers, groups, grouptypes, markers, markertypes, locations, locationtypes
- Content
- This page displays information about a single marker. It shows which datasets the marker is part of as well as which maps it is on. Additionally, a list of all known synonyms is shown.
- Page name
marker-details
- Used data
mapdefinitions, mapfeaturetypes, maps, markers, markertypes, synonyms, synonymtypes
- URL parameter
-
markerId
The id of the marker.
TODO
- Content
- This page shows news about Germinate and the contained data. The news items are sorted by creation date, so the latest one is shown first.
- Page name
news
- Used data
news, newstypes
- Content
- The passport page shows all the information we have for a particular accession. This includes its MCPD information, collecting site, pedigree, images, groups, datasets, user annotations, etc.
- Page name
passport
- Used data
biologicalstatus, collectingsources, countries, germinatebase, institutions, locations, locationtypes, mlsstatus, pedigreedefinitions, pedigreedescriptions, pedigreenotations, pedigrees, storage, storagedata, subtaxa, synonyms, synonymtypes, taxonomies
- URL parameter
-
accessionId, accessionName, generalId
The id, name or gid of the accession.
- Content
- The search page allows searching for all kinds of data types that Germinate supports. Entering a simple search term will show results for all data types that can then be refined by using the Germinate filter functionality.
- Page name
search
- Used data
- Everything
- URL parameter
-
searchString
The string to search for.
- Content
- This page offers various kinds of trials data visualization. The user can generate and download charts as well as export the data to a tab-delimited data file.
- Page name
trials-data
- Used data
countries, datasets, experiments, experimenttypes, germinatebase, locations, locationtypes, phenotypedata, phenotypes, treatments, trialseries, units
- Content
- All available trials datasets are shown on this page. The user will be able to select which datasets to export.
- Page name
trials-dataset
- Used data
attributedata, attributes, collaborators, datasets, datasetstates, datasetpermissions, germinatebase, experiments, experimenttypes, phenotypedata, phenotypes
Germinate can be used with and without authentication. This means that you can decide if you want to restrict access to your Germinate instance to registered users. If you decide to do so, you'll need people to be able to register. The registration form of Germinate (see figure above) provides a concise and easy way to register. If you choose to use a disclaimer that potential new users have to accept, this will appear before the form is visible. Once the user completes the form, they will either get access right away or you need to approve the new users manually. This is based on the setting of the property Gatekeeper.Registration.Needs.Approval
(see Section Configuration for help). If you choose to use the approval approach, you'll see the screen shown in the figure above after selecting "Approve users" in Gatekeeper. The user will be notified with your decision.
The registration agreement text the user has to agree to before signing up for your instance of Germinate is stored in the properties page.registration.disclaimer.short.html
and page.registration.disclaimer.long.html
in the Text.properties
file. Translations of this text need to be placed in the appropriate internationalized version of this file.
Sometimes it is required for individual datasets to be protected behind a license the user has to agree to before using the data. To accommodate this, we have introduced dataset licenses. Licenses are stored in the licenses
table. The actual license content is stored in licensedata
and linked to a `locale so that you can have translations of your license content.
We keep track of which user accepted which license so that they are only prompted to accept new licenses. Make sure to remove associated licenselogs
entries if you change the actual content of a license, because the user may originally have agreed to a different wording.
As already mentioned earlier, Germinate is equipped with a secure login system (Germinate is only as secure as the connection between client and server. Use a secure connection (TLS/SSL) to prevent password snooping). This feature is completely optional, but it allows you to protect your data from any unauthorized access. In this section, we will explain how the security system works and we will show what is necessary to use it properly.
The figure above shows the authentication process of Germinate. The figure contains two major parts. The upper part visualizes the login process, which is initialized by the user entering his/her credentials. These are sent to the server alongside any session id that is still stored in the client from previous sessions. The server will then check the session id that is received. If the id is still valid, the server will store the session id and return it to the client, which, in turn, will create a cookie containing this id.
If the session id is invalid, the server will check if the username password combination is genuine. This is done by encrypting the password and checking it against the entry in the database. If this check fails, the user will be logged out. Otherwise, the server will create a new session id, store it in the HTTP session and return it to the client, which will create a new cookie using this id. The login process is now complete and both the server (via HTTP session) and the client (via cookie) know the current session id.
For each new request that is made from the client, it will need to send the session id as the payload, \ie each remote procedure call (RPC) has to request the session id as a parameter to ensure the security of the communication. As a consequence if this, the server will receive the session id three times per request, namely via the HTTP session, via the cookie and via the payload. If all of these ids match up, the server can fulfil the client's request and return the data. However, if it fails, the user will be logged out.
As a final remark: Even if you currently do not want to enable the security feature, you should still write your code in a way that ensures it will work properly even when the security feature is enabled. Otherwise you might end up with a security leak.