Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SECURE TRANSMISSION OF GENOMIC DATA
Document Type and Number:
WIPO Patent Application WO/2016/083949
Kind Code:
A1
Abstract:
The amount of genomic data as well the sensitivity of the information carried necessitates the need to develop smart and efficient ways to transmit genomic data in a secure way. While encryption schemes exist, there is also the need to first reduce the amount of massive information and then apply an encoding and encryption method that will be effective both in the economic sense as well as for security of genomic data. In this invention, we discuss novel techniques to encode processed variant information and send it across to a remote site ensuring covert transmission. The protocols not only encode and encrypts the information; it condenses the information that needs to be transferred.

Inventors:
AGRAWAL VARTIKA (NL)
DIMITROVA NEVENKA (NL)
KRASINSKI RAYMOND J (NL)
Application Number:
PCT/IB2015/058912
Publication Date:
June 02, 2016
Filing Date:
November 18, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
KONINKL PHILIPS NV (NL)
International Classes:
G16B20/00; G16B20/20; G16B30/10; G16B50/40; G16B50/50
Other References:
"Biocomputing 2013", 1 November 2012, WORLD SCIENTIFIC, ISBN: 978-981-4447-97-3, article RUSS B ALTMAN ET AL: "METASEQ: PRIVACY PRESERVING META-ANALYSIS OF SEQUENCING-BASED ASSOCIATION STUDIES", pages: 356 - 367, XP055249207, DOI: 10.1142/9789814447973_0035
S. DEOROWICZ ET AL: "Genome compression: a novel approach for large collections", BIOINFORMATICS., vol. 29, no. 20, 15 October 2013 (2013-10-15), GB, pages 2572 - 2578, XP055249203, ISSN: 1367-4803, DOI: 10.1093/bioinformatics/btt460
Attorney, Agent or Firm:
VERWEIJ, Petronella Danielle (AE Eindhoven, NL)
Download PDF:
Claims:
CLAIMS

1. A system for transforming data sequenced from a genome and processed into a variant call file (VCF), the system comprising:

a first processing module comprising a computer processor and a computer readable tangible medium, wherein the first processing module:

reduces the VCF into an annotated VCF that comprises primarily non-redundant variant data from the VCF based on reference data;

encodes the annotated VCF; and

stores the encoded VCF; and

a second processing module comprising a computer processor and a computer readable tangible medium, wherein the second processing module:

receives the encoded VCF; and

inflates the encoded VCF using the reference data.

2. The system of claim 1, wherein the reference data comprises reference and alternate allele data from a database of short genomic variations (SNP).

3. The system of claim 1, wherein encoding the annotated VCF comprises converting chromosome number and chromosome position data of the annotated VCF using a mathematical coordinate system.

4. A computer-implemented method of transforming data sequenced from a genome of a patient and processed into a variant call file (VCF), the method comprising:

providing a computer processor configured to:

reduce the VCF into an annotated VCF that comprises primarily non-redundant variant data from the VCF; encoding the annotated VCF;

and storing the encoded VCF on a computer readable tangible medium.

5. The method of claim 4, wherein reducing the VCF comprises removing variant calls whose associated quality data does not meet a predetermined threshold.

6. The method of claim 4, wherein reducing the VCF comprises removing known variants using a reference database of short genomic variations (SNP) data.

7. The method of claim 6, wherein the known variants comprise one or more of reference and alternate allele information.

8. The method of claim 4, wherein encoding the annotated VCF comprises converting chromosome number and chromosome position data of the annotated VCF using a mathematical coordinate system.

9. The method of claim 8, wherein converting the chromosome number and chromosome position data of the annotated VCF using a mathematical coordinate system comprises converting the chromosome number and chromosome position data of the annotated VCF to a cyclic coordinate system based on a modulus value.

10. The method of claim 9, further comprising encrypting the modulus value and initiating transfer of the encrypted modulus value and the encoded VCF file to a second terminal over a network connection.

11. The method of claim 8 wherein encoding the annotated VCF comprises converting chromosome number and chromosome position data of the annotated VCF using one of Cartesian coordinates, polar coordinates, or linear coordinates.

12. The method of claim 8, further comprising applying a frequency-domain transform to the annotated VCF prior to encoding the annotated VCF.

13. The method of claim 4, further comprising transferring the encoded VCF to a second terminal over a network connection.

14. A computer- implemented method of transforming data sequenced from a genome of a patient and processed into a variant call file (VCF), the method comprising:

providing a computer processor configured to:

receiving a VCF encoded using a mathematical coordinate system; and inflating the encoded VCF with reference and alternate allele data using a reference database of short genomic variations (SNP) data.

15. The method of claim 14, further comprising decoding the encoded VCF using a modulus value.

Description:
SECURE TRANSMISSION OF GENOMIC DATA

TECHNICAL FIELD

[0001] Embodiments of the invention generally relate to secure data transfer, and more particularly to systems and methods for the secure transfer of large amounts of data that are subject to privacy restrictions and other security concerns over otherwise unsecure networks.

BACKGROUND

[0002] Sequencing techniques, such as genomic sequencing and SNP genotyping, can generate a large amount of genomic data. For example, a variant call file used to store data from sequencing variants of a chromosome may be hundreds of gigabytes.

[0003] Researchers and healthcare providers frequently need to transfer genomic data from one site to another geographically distant site. Because dedicated or private networks that span long distances can be prohibitively expensive or otherwise include unsecure spans, the data is often transferred over non-secure networks. Genomic data may be associated with particular patients and so there are privacy concerns; indeed, the transfer may be subject to laws and regulations related to the storage and transfer of such data. Further, as the data is processed to identify patient-specific anomalies, the more sensitive the information and therefore the greater need for a secure transfer mechanism.

[0004] The amount of data as well as the sensitivity of the information necessitates the need to develop efficient techniques to transmit genomic data securely. Existing techniques do not necessarily account for the characteristics of the genomic data, including variant data, nor take into account the quality of the specific data being transferred.

[0005] Accordingly, there is a need for an efficient and secure system for transferring genomic data over unsecure networks.

SUMMARY

[0006] In general, various aspects of the systems, methods, and apparatus described herein are directed toward improved systems and methods for transferring genomic data among geographically distant sites over unsecure networks through novel techniques of processing, reducing, encoding, and encrypting the data before transfer. Particular detail is presented for applying the system to transferring variant information consisting of single nucleotide polymorphisms (SNPs), but those of ordinary skill in the art will recognize the embodiments described herein have broader applications.

[0007] According to one aspect of the present invention a system for transforming data sequenced from a genome and processed into a variant call file (VCF) includes a first and a second processing module each comprising a computer processor and a computer readable tangible medium. The first processing module is operable to reduce the VCF into an annotated VCF that comprises primarily non-redundant variant data from the VCF based on reference data, encode the annotated VCF; and store the encoded VCF. The second processing module is operable to receive the encoded VCF, and inflate the encoded VCF.

[0008] In one embodiment, the reference data includes reference and alternate allele data from a database of short genomic variations (SNP). In one embodiment, encoding the annotated VCF comprises converting chromosome number and chromosome position data of the annotated VCF using a mathematical coordinate system.

[0009] According to another aspect of the present invention a method, performed by a computer processor, of transforming data sequenced from a genome of a patient and processed into a variant call file (VCF) is provided, and includes the steps of reducing the VCF into an annotated VCF that comprises primarily non-redundant variant data from the VCF, encoding the annotated VCF, and storing the encoded VCF on a computer readable tangible medium.

[0010] In one embodiment, reducing the VCF includes removing variant calls whose associated quality data does not meet a predetermined threshold. In one embodiment, reducing the VCF includes removing known variants using a reference database of short genomic variations (SNP) data. The known variants may include one or more of reference and alternate allele information.

[0011] In one embodiment, encoding the annotated VCF includes converting chromosome number and chromosome position data of the annotated VCF using a mathematical coordinate system. Converting the chromosome number and chromosome position data of the annotated VCF using a mathematical coordinate system may include converting the chromosome number and chromosome position data of the annotated VCF to a cyclic coordinate system based on a modulus value. The method may further include encrypting the modulus value and initiating transfer of the encrypted modulus value and the encoded VCF file to a second terminal over a network connection.

[0012] In one embodiment encoding the annotated VCF includes converting chromosome number and chromosome position data of the annotated VCF using one of Cartesian coordinates, polar coordinates, or linear coordinates. In one embodiment, the method also includes applying a frequency domain transform to the annotated VCF prior to encoding the annotated VCF. In one embodiment, the method also includes transferring the encoded VCF to a second terminal over a network connection.

[0013] According to another aspect of the present invention a method, performed by a computer processor, of transforming data sequenced from a genome of a patient and processed into a variant call file (VCF) is provided, and includes the steps of receiving a VCF encoded using a mathematical coordinate system; and inflating the encoded VCF with reference and alternate allele data using a reference database of short genomic variations (SNP) data.

[0014] In one embodiment, the method further includes decoding the encoded VCF using a modulus value.

[0015] The foregoing and other features and advantages of the present invention will be made more apparent from the descriptions, drawings, and claims that follow. One of ordinary skill in the art, based on this disclosure, would understand that other aspects and advantages of the present invention exist.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] In the drawings, like reference characters generally refer to the same parts throughout the different views. In the following description, various embodiments of the present invention are described with reference to the following drawings, in which:

[0017] FIG. 1 is a diagram of a secure transfer system according to an exemplary embodiment of the present invention. [0018] FIG. 2 is an illustration of a transmit station according to an exemplary embodiment of the present invention.

[0019] FIG. 3 is an illustration of a receive station according to an exemplary embodiment of the present invention.

[0020] FIG. 4 is a flow chart illustrating an exemplary operation of the transmit station illustrated in FIG. 2.

[0021] FIG. 5 is a flow chart illustrating an exemplary operation of the receive station illustrated in FIG. 3.

DETAILED DESCRIPTION

[0022] Described herein are various embodiments of methods and systems consistent with the present invention. These embodiments are exemplary and should not be interpreted to limit the scope that one of ordinary skill in the art would give to the invention.

[0023] Genomic data is output from sequencing machines as known to those having ordinary skill in the art. The amount of raw data output from a sequencing machine can be hundreds of gigabytes in size. The raw data is typically compared against and aligned to a reference genome to create an alignment file, e.g., a variant call file (VCF), that is orders of magnitude smaller than the raw data, but still too large for ready transfer to a remote site.

[0024] An exemplary embodiment of a system for the secure transfer of genomic data over otherwise unsecure networks is illustrated in FIG. 1. The Transfer System 1 includes a Transmit Station 100, a Receive Station 200, a Network 300, and Database 400.

[0025] The Transmit Station 100 includes a Processing Module 110 and an I/O Unit 120. The Processing Module 110 processes the VCF file to produce a reduced file as discussed below for secure transfer to the Receive Station 200 that is typically remote from the Transmit Station 100. The I/O Unit 120 handles the transmission of the reduced file, which may also be encrypted and/or encoded.

[0026] The Receive Station 200 includes a Processing Module 210 and an I/O Unit 220. The I/O Unit 220 handles the receipt of the reduced file, which may also be encrypted and encoded. The Processing Module 210 processes and restores the reduced file to the original VCF file or something similar.

[0027] In Transfer System 1 , the reduced, encoded and encrypted file is transmitted at least in part over the Network 300. The Network 300 may be comprised of, or may interface to, any one or more of the Internet, an intranet, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), , etc.

[0028] Database 400 includes genomic data information that may be relevant to the alignment file, i.e., the data that had been previously aligned to a reference genome. If any of the data from the alignment file is present in the Database 400 then the alignment file may be annotated with reference information from the Database 400, the annotations themselves substituting for data that is otherwise stored in the Database 400 and accessible by the Receive Station 200.

[0029] For example, in one exemplary embodiment the file that has been previously aligned to reference genome data is a variant call file (VCF) of variant data and the Database 400 is a resource of known variants, e.g., a database of SNP data. Databases of SNP data are known to those having ordinary skill in the art, and are maintained, for example, by the National Center for Biotechnology Information at the National Institutes for Health.

[0030] A typical entry in a VCF includes the following information that is relevant to the reconstruction of the genome: the chromosome on which the single nucleotide variant (or small insertion or deletion) is located, position on the chromosome, reference base (A, C, G, T, or N), alternate base (A, C, G, or T), quality of the variant call, and the nature of the variant call (homozygous/heterozygous). An entry in a VCF may include other information that is not relevant to the reconstruction process discussed here.

[0031] For known variants in the VCF, the genomic coordinates for the position on a chromosome are enough to determine the reference and the alternate allele data for the variant from the information stored in the database of SNP data and thus can be used to reduce a VCF. Chromosome coordinates comprise the chromosome number and position of the variant on the chromosome. [0032] Database 400 may be a searchable database and may comprise, include or interface to a relational database. Other databases, such as a query format database, a Standard Query Language (SQL) format database, or a similar data storage device, query format, platform or resource may be used. Database 400 may comprise a single database or a collection of databases, dedicated or otherwise. In one embodiment, Database 400 may store or cooperate with other databases to store the various data and information described herein. In some embodiments, Databases 400 may comprise a file management system, program or application for storing and maintaining data and information used or generated by the various features and functions of the systems and methods described herein.

[0033] An exemplary embodiment of the Transmit Station 100 is illustrated in FIG. 2. The Processing Module 110 includes a Reducing Module 111, an Encoding Module 112, an Encrypting Module 113, and a Storage Module 114. The Reducing Module 111 reduces a previously aligned data file or VCF, for example, using annotations based on known genomic data stored in a database or other techniques that are more fully described herein.

[0034] The Encoding Module 112 encodes the reduced file. In the example of a VCF that has been reduced, the Encoding Module 112 may replace the variant data with the genomic coordinates, i.e., chromosome number and position, encoded using a coordinate system (e.g., Cartesian, Polar, etc.) as discussed in greater detail below. The Encrypting Module 113 encrypts the VCF using encryption techniques known to the art, such as symmetric or asymmetrical encryption. The Storage Module 114 may store the result of the reducing, encoding, and encryption performed by the Reducing Module 111 , the Encoding Module 112, and the Encrypting Module 113, as well as intermediate steps thereof

[0035] An exemplary embodiment of the Receive Station 200 is illustrated in FIG. 3. The Processing Module 210 of the Receive Station 200 includes a Decrypting Module 211, Decoding Module 212, Inflating Module 213, and a Storage Module 214. The Decrypting Module 211 decrypts an encrypted genomic data file received via I/O unit 220. The Decoding Module 212 decodes the encoded file received from the Transmit Station 100 using the coordinate scheme employed during the encoding process. The Inflating Module 213 inflates the decoded reduced file. In the example of a VCF that was reduced with reference to known variant data stored on a dbSNP, the same database or one containing the same information may be used to replace the annotations in the reduced VCF with the corresponding genomic data. For example, the alternate and reference allele data could be looked up in the dbSNP and "re-added" to the VCF entries.

[0036] An exemplary operation of the Transfer System 1 to transfer a VCF will now be described with reference to FIGS. 4 and 5. The Transmit Station 100 receives the sequenced genomic data (Step SI 00). The sequenced data may be unprocessed or it might have been previously aligned to a reference genome. If it has not been previously aligned to a reference genome, the sequenced genomic data is processed and aligned with a reference genome (Step S101). Next, the Reducing Module 111 reduces the VCF (Step S102). To reduce the VCF, reference is made to a database of known variants (dbSNP), typically indexed by chromosome. For each data entry in the VCF, if the variant is already known then the information in the entry may be reduced to the chromosome and the position of the variant on the chromosome. The more information stored in the dbSNP, the more the VCF may potentially be reduced.

[0037] According to one exemplary embodiment, removing variant data that does not meet a predetermined quality threshold may further reduce the variant data in the VCF. The reconstruction of the genome is more reliable when the variant calls are robust (of higher quality). In this exemplary embodiment, variant calls meeting the predetermined quality threshold are kept and the lower quality variant calls are removed or skipped in the creation of the file for transfer. Those of ordinary skill in the art would understand that the threshold for variant quality might vary depending on the type of variant caller being used. For example, with Illumina next generation sequencing data, at least 20 reads covering the SNP would be needed.

[0038] Next, the reduced VCF may be encoded to further shrink the size of the file (Step SI 03). Encoding the genomic coordinates, namely chromosome number and position, may, according to one exemplary embodiment, be accomplished using a coordinate system. Any suitable coordinate system may be used, though according to the exemplary embodiments described herein Cartesian, Polar, Linear, and Cyclic coordinate systems are used.

Cartesian Coordinate Encoding

[0039] The translation of genomic coordinates into Cartesian coordinates may be performed by placing the set of chromosomes at issue (e.g., a 24 chromosome set) on an x-axis in a way that the center of the chromosome lies on the x-axis, namely if the y coordinate of the center of each chromosome is zero.

[0040] While the range of the x coordinates is, e.g., [1...24], the range of the y coordinates will be [-a/2...a/2] where a is the number of nucleotide bases present on the chromosome. For each chromosome, the axis coordinate y=0 will be shifted to a new position a' where: a' : Quotient (a/2) +1, if a =2k+l, k >= 0

' EQUATION 1

Quotient (a/2), if a is 2k, k>=0

Polar Coordinates

[0041] The polar coordinates (r, Θ) which represent the length (radius) and angle for genomic locations may be obtained by translation from the Cartesian coordinates (x, y) above such that:

x= r cos Θ

y = r sin θ EQUATION 2

Θ = cos _1 (x/r) = sin (y/r)

Linear Coordinates

[0042] Linear coordinates may be obtained by the translation of the genome from its organization into chromosomes into a single string of ~3 billion base pairs (the number of base pairs in the human genome). This translation may be performed by concatenating the nucleotide bases from each of the chromosomes into one string in the conventional chromosomal order (chrl ... chr22 followed by chrX and chrY respectively). Therefore the range of the linear coordinates will be a e [1...3,209,286,105].

Cyclic Coordinates

[0043] To obtain cyclic coordinates the chromosomal positions are mapped to a cyclic (circular) coordinate system where points on a circle represent the nucleotide positions and the angular distance of these points represents the position coordinate. If the number of positions exceeds the number of representations possible in a span of 1 rotation (2π), modular arithmetic can be used to scale down the values.

[0044] In one exemplary embodiment a modular arithmetic value may be used to reduce the complexity of VCF encoded using a cyclic coordinate system. Using a modulus (n) to wrap the positions around, the linear value of the position a may be converted into a position on a circle as follows: a = n x q + r

EQUATION 3

q e Z & jrj < jnj

[0045] The translated coordinate a' = f (n, q, r) where n is modulus value, q is the quotient of the division and r is the remainder. For each position in the VCF file, the encoded file will have the following information: (i) quotient of the modulus operation; (ii) remainder of the modulus operation expressed as an angle; and (iii) alternate allele at the position.

[0046] The modulus value, "n," may serve as a key to decode the information in the VCF. The modulus value may be a constant or may be calculated by a random number generator. The modules value may be sent with the VCF or, alternatively, sent via a different channel. In one exemplary embodiment the other channel is a secure channel. A secure channel may also be used, for example, to transmit patient identifying information.

[0047] The modulus value may be encrypted using encryption techniques known to those having ordinary skill in the art. In this exemplary embodiment where a modulus value is utilized, in order to decode the variant information of the patient, the remote site will be required to decrypt the modulus value and then decode the variant coordinates thereby undergoing two levels of decryption.

[0048] After the reducing and encoding steps, the condensed and encoded VCF may be encrypted by the Encrypting Module 113 (Step SI 04). Any suitable encryption technique may be utilized, including symmetric and asymmetric encryption techniques.

[0049] In one exemplary embodiment the encryption step may be preceded by a step of DNA spectral analysis in which the A, C, G, and T bases of the alternative alleles is transformed into the spectral domain using, for example, a Fourier or other frequency transform. Upon receipt the spectral DNA would be transformed back to A, C, G, and T bases of the alternative alleles. [0050] During the operation described in FIG. 4, the results of the various steps may be stored, including after the encryption step (Step SI 05).

[0051] The processed file may then be transferred to the Receive Station 200 over the Network 300, which may be insecure or include insecure spans. Restoration of the original file at the Receive Station 200 according to an exemplary embodiment of the present invention will now be described with reference to FIG. 5. The process of restoring is essentially the process of applying the reducing, encoding and encrypting steps that were applied to the transmitted file in reverse.

[0052] If the file has been decrypted then the encrypted file is decrypted by the Decrypting Module 211 (Step S201). In the exemplary embodiment including the step of frequency transform into the spectral domain, the spectral DNA information would be transformed back to the A, C, G, T bases of the alternative alleles. In one exemplary embodiment the encryption scheme used by the Encryption Module 113 is known in advance to the Decryption Module 211. In another exemplary embodiment the encoding scheme is transferred to the Decryption Module 211 with the transferred file or after the transfer of the file, using the same or a separate channel.

[0053] In the embodiment where a modulus value was used in the encryption process then that value is decrypted and then used by the Decrypting Module 211 to perform the decryption of the encrypted VCF.

[0054] Next, the Decoding Module 212 decodes the decrypted file (Step S202). In one exemplary embodiment the encoding scheme used by the Encoding Module 112 is known to the Decoding Module 212 in advance. In another exemplary embodiment the encoding scheme is transferred to the Decoding Module 212 with the transferred file or after the transfer of the file, using the same or a separate channel.

[0055] Next the Inflating Module 213 inflates the decoded file with reference to the database of known variants (Step S203). During the operation described in FIG. 5, the results of the various steps may be stored, including storing the restored VCF after the final inflating step (Step

5204) . Upon restoration the VCF may be transferred as needed for further processing (Step

5205) . [0056] The Transmit Station 100 and Receive Station 200 may be incorporated into computer stations where operations are initiated by a human operator, automatic operation, or both. The Transmit Station 100 may also be incorporated into a network device (such as a server or router) that includes the capability to identify a VCF that is being transferred and perform the exemplary operations described herein. The network device may be a gateway that routes data between the network where the sequenced genomic data is reduced, encoded and encrypted according to exemplary embodiments described herein, through networks over which such data is transferred, to a network including the Receive Station 200. The Receive Station 200 may also be included in a network device (such a network gateway) that includes the capability to identify a reduced, encoded and encrypted VCF according to exemplary embodiments described herein and restore the genomic data.

[0057] The transfer system as shown in FIGS. 1 , 2 and 3 may be or include a computer system. The transfer system may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types.

[0058] Those skilled in the art will appreciate that the invention may be practiced with various computer system configurations, including hand-held wireless devices such as mobile phones or tablets, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.

[0059] The transfer system may include a plurality of software processing modules stored in a memory as described above and executed on a processor in the manner described herein. The program modules may be in the form of any suitable programming language, which is converted to machine language or object code to allow the processor or processors to execute the instructions. [0060] The computer system may include a general-purpose computing device in the form of a computer including a processing unit, a system memory, and a system bus that couples various system components including the system memory to the processing unit.

[0061] The processing unit that executes commands and instructions may be a general purpose computer, but may utilize any of a wide variety of other technologies including a special purpose computer, a microcomputer, mini-computer, mainframe computer, programmed microprocessor, micro-controller, peripheral integrated circuit element, a CSIC (Customer Specific Integrated Circuit), ASIC (Application Specific Integrated Circuit), a logic circuit, a digital signal processor, a programmable logic device such as an FPGA (Field Programmable Gate Array), PLD (Programmable Logic Device), PLA (Programmable Logic Array), RFID integrated circuits, smart chip, or any other device or arrangement of devices that is capable of implementing the steps of the processes of the invention.

[0062] It should be appreciated that the processors and/or memories of the computer system need not be physically in the same location. Each of the processors and each of the memories used by the computer system may be in geographically distinct locations and be connected so as to communicate with each other in any suitable manner. Additionally, it is appreciated that each of the processor and/or memory may be composed of different physical pieces of equipment.

[0063] The computing environment may also include other removable/non-removable, volatile/nonvolatile computer storage media.

[0064] Certain embodiments of the present invention were described above. It is, however, expressly noted that the present invention is not limited to those embodiments, but rather the intention is that additions and modifications to what was expressly described herein are also included within the scope of the invention. Moreover, it is to be understood that the features of the various embodiments described herein were not mutually exclusive and can exist in various combinations and permutations, even if such combinations or permutations were not made express herein, without departing from the spirit and scope of the invention. In fact, variations, modifications, and other implementations of what was described herein will occur to those of ordinary skill in the art without departing from the spirit and the scope of the invention. As such, the invention is not to be defined only by the preceding illustrative description.