Grape has powerful embedded database functionality. It allows to:

(a) Organize collected data in an efficient manner with easy search and access including network access.

(b) Make possible direct data import into the databases to minimize the possibility of human error.

(c) Compare databases to find matches which is the primarily goal in many forensic cases.

To switch to databases mode hit "Database Operations" tab in the main window. Grape's databases are network based. It means that any Grape user can use any database located on other computers (through the local network or Internet) as easily as on the local hard drive. It can be useful and convenient in many situations: for example, if many Grape's users use a central database or there is a collaboration between labs. But it raises security issues because unlimited access to a valuable database (including the possibility to change or even delete it) is clearly inappropriate. So one of the most important things that it is needed to take care of is to restrict possible access to databases. The Secure Access button activates a dialog where various level of access can be set for different Grape's users (based on their IP addresses or computers name). It is assumed that you always have the full access to the local database (i.e. physically located on the same computer as the Grape executable); for all other computers you can, for example, allow read access but disallow any modifications or just verboten any access from remote computers at all. Default assess rights settings that you get upon the installation are the following: read access is permitted from any computer, write access is verboten for all remote computers.



Grape maintains two types of databases: Samples Databases that contain information about individual samples and its genotypes and Cases Databases. Any Simple CaseMixed Case or Kinship Case can be saved in a Cases database. It has many advantages against saving just in a file: advanced possibilities of searching, navigating and preview that are especially important if you have a lot of cases to organize properly. Any case that includes “Person X” in their description (i.e. a person in the center of our consideration like suspect or missed person) being saved in a database stores in a special field all possible genotypes of Person X. For example, for a Typical Rape Case the genetic profile of  the "true offender” will be determined. Most probably it contains thousands of possible genotypes because of the mixed nature of the evidentiary sample. This is not the same as the genotype of the suspect, moreover suspect can be even unknown and this is not an obstacle to put the case into a database. This approach plays major role in implementation of the Find Matches functionality that is discussed below.

The interfaces of both types of databases are very similar and we will discuss in detail only samples databases. “Sample DB” button in the main window activates the dialog similar to the following one



Through the button Choose DB it is possible to select a database you want to access (including databases on remote computers) or create a new one. In the above example we are accessing database samples_db_1 physically located on the local computer. Each record in the database contains genotype of one sample and also some additional information stored in fields “Name”, “Reference Number”, “Folder”, “Date” (it's the date of the creation of the record), “Notes” and “Unique ID”. The last field “Unique ID” is generated automatically and is needed mostly for internal Grape's procedures in order to distinguish records: two records can have identical other fields but the Unique ID will be always different for every record. The other fields “Folder”, “Name”, “Reference Number” and “Notes” are text fields that can be used in any manner you want to. For example, the following usage is possible. Usually any criminal case that goes into a lab involves many samples. So it would be good to give all of them the same label: it could be, for example, “Reference Number”. But all samples should be distinguished from each other: the field “Name” serves this purpose, any sample gets its own name. Finally, the field “Notes” can contain detailed description or any additional info related to the given sample. The field "Folder" can serve similar purposes as indexes in CODIS system: like 'Convicted Offenders' or 'Known Suspects'. Certainly, such usage of these fields is not mandatory, it is possible to think about these fields just as about 4 text fields that can help you to organize data properly.

Keeping in mind that a database can contain thousands of records, the advanced search tool that allows for finding desirable record quickly and efficiently is very important. At the top of the dialog there are 6 filter fields: “Name”, “Reference #”, “Folder”, “Notes”, “Date” and “Unique ID”. You can type few letters in one or few of these fields and Grape will filter “on the fly” and display only those records that contain desirable letter combinations. In the example above Grape shows only records that contain 'sa' in the name of the record.

The “Preview” checkbox allows you to see complete information about selected record including all genotypes
in a separate resizable window



For a cases database full Grape document will be displayed: the exact copy of what one can see in the main window of Grape.

The "Samples Database" dialog allows not only browsing databases but also editing records. Use the bottom part of the dialog for this purpose: select a record in the table and full information about this record (except genotypes) appears. This information is editable; you can change anything you want (except Unique ID). To change genotypes press Edit Genotypes button. The same technique is used also for ‘manual’ creation of new records: use “Add Record” button and edit the information about the new record that immediately appears in the table. Besides this manual input there is possibility of automatic creation of new records through “Import Records” button. It is assumed that you have a file that contains information about new samples (of unlimited number) that you want to put into a database. You need to construct a template file that basically describes where Grape should search for particular pieces of data. Then you pass the names of the data file and the template file to Grape and it creates as many new records as needed and fills them out with the correct information. This is the preferable way to add new records because it minimizes both efforts and possibility of human mistakes. See Import Data for details.

"Export Selected” button is needed to copy some records (or all of them if you want to backup your database) to another database. Just select the records you want to copy and click the button. A dialog appears where you can browse for a destination database (it can be located on remote computer as well).

"Find Matches” functionality compares two databases (or any selected parts of them) and finds matches. Both databases can be either cases database or samples database. Typical examples of the applications of this feature are as follows.

(a) Compare genotype of the suspect against database of unresolved crimes. The first database is a samples database and it contains just one record, e.g. suspect (or only this record is selected in a database). The second database is a cases database (for example, the database of unresolved rapes with the genotype of the crime suspect left ‘Unknown’ as discussed in Mixed Stains Mode).

(b) Compare a samples database against itself. It is suitable for plane crashes or other mass disasters. Human remains can be fragmented in such a situation and Grape will tell the actual number of persons involved as well as produce a list of samples that belong to each particular person. The second part of identification most generally includes the collection of DNA samples of  close relatives and creating a 'missed person case’ (available through "Kinship Analysis" tab). Put all these missed person cases in a single database and then run “Find Matches” of this database against the sample database of remains to be identified. Grape will find all matches, i.e. will identify remains of all missed persons.

(c) Compare databases of crime cases against each other to find “serial crimes”.

There are many other possible applications of “Find Matches” functionality. It works in the following way. “Find Matches” button activates the dialog like the one below




This dialog has 2 separate parts in order to choose 2 databases to compare. “Open” button allows browsing for the databases to compare. It is possible to use filter fields to display and compare not the whole databases but some parts of them. In the example above both databases are samples_sb_1 with only those records displayed that contain “sa” in their name. Any number of records can be selected at the left and right sides of the dialog (or all of them). The button “Search” executes comparison of the selected records.

The search result is displayed in the main window of Grape. The first image of this topic shows an example of “Find Matches” output for the example above. All matches are divided into clusters. Roughly speaking each cluster is a set of records that “match” each other. But this simple definition is not quite correct because of a few reasons. First of all, Grape does not assume that all records should have the same set of loci. For example, if we have 3 samples A, B, C where sample A uses 10 loci, sample B uses 5 loci and sample C uses another 5 loci (different than B), then Grape will show match between A and C (in 5 loci) and between A and B (also in 5 loci). So all these samples go into the same cluster in spite there is no match between B and C at all. Similar situation can arise and in more difficult cases. For example, for a typical rape case the genotype of the “true offender” usually can not be determined in a unique manner and many possibilities exist. So if we compare two rape cases (to find out whether this is the serial crime) “the match” will be found if there is at least one genotype that is common for both cases. It is easy to see that in this case we can get again the situation similar to the one just described: case A matches C, case A matches B, but cases B and C have no common genotypes of "true offenders". Nevertheless, all these cases will go into the same cluster so Grape accumulates in a single cluster all records that are “linked” to each other. If more detailed analysis is needed it should not be a problem because a cluster typically contains only a small number of records.