diff --git a/js-test/servers/common/datastore_server/etc/service.properties b/js-test/servers/common/datastore_server/etc/service.properties
index 1ce6fcea9837b3cde6ba1a06e5b4c43f36aa2171..12f6613e96f107d3075550cda36a27098017b9ac 100644
--- a/js-test/servers/common/datastore_server/etc/service.properties
+++ b/js-test/servers/common/datastore_server/etc/service.properties
@@ -1,181 +1,138 @@
 # Unique code of this Data Store Server. Not more than 40 characters.
-data-store-server-code = DSS1
-
+data-store-server-code=DSS1
 # host name of the machine on which the datastore server is running
-host-address = http://localhost
-
+host-address=http://localhost
 # parent directory of the store directory and all the dropboxes
-root-dir = data
-
+root-dir=data
 # The root directory of the data store
-storeroot-dir = ${root-dir}/store
-
-incoming-root-dir = ${root-dir}
-
+storeroot-dir=${root-dir}/store
+incoming-root-dir=${root-dir}
 # Cache for data set files from other Data Store Servers
 cache-workspace-folder ${root-dir}/dss-cache
-
-# The directory where the command queue file is located; defaults to storeroot-dir 
-commandqueue-dir =
-
+# The directory where the command queue file is located; defaults to storeroot-dir
+commandqueue-dir=
 # Port
-port = 20001
-use-ssl = false
-
+port=20001
+use-ssl=false
 # Session timeout in minutes
-session-timeout = 720
-
+session-timeout=720
 # Path to the keystore
-keystore.path = etc/openBIS.keystore
+keystore.path=etc/openBIS.keystore
 # Password of the keystore
-keystore.password = changeit
+keystore.password=changeit
 # Key password of the keystore
-keystore.key-password = changeit
-
+keystore.key-password=changeit
 # The check interval (in seconds)
-check-interval = 5
-
-quiet-period = 10
-
-data-set-locking-timeout = 1
-
+check-interval=5
+quiet-period=10
+data-set-locking-timeout=1
 # The time-out for clean up work in the shutdown sequence (in seconds).
 # Note that that the maximal time for the shutdown sequence to complete can be as large 
 # as twice this time.
 # Remark: On a network file system, it is not recommended to turn this value to something 
 # lower than 180.
-shutdown-timeout = 180
-
+shutdown-timeout=180
 # The minimum time (in seconds) of availability of the data stream since moment when user requested
 # for the data stream url. If not specified default value (20 seconds) will be used.
 # minimum-time-to-keep-streams-in-sec = 20
-
 #�If free disk space goes below value defined here, a notification email will be sent.
 # Value must be specified in kilobytes (1048576 = 1024 * 1024 = 1GB). If no high water mark is
 # specified or if value is negative, the system will not be watching. There are 2 different kinds
 # of highwater mark supported: the one that is checking the space on the store, and one that is
 # checking the amount of free space for recovery state (on the local filesystem). 
-highwater-mark = -1
-recovery-highwater-mark = -1
-
-# If a data set is successfully registered it sends out an email to the registrator. 
+highwater-mark=-1
+recovery-highwater-mark=-1
+# If a data set is successfully registered it sends out an email to the registrator.
 # If this property is not specified, no email is sent to the registrator. This property
 # does not affect the mails which are sent, when the data set could not be registered.
-notify-successful-registration = false
-
+notify-successful-registration=false
 # The URL of the openBIS server
-server-url = ${host-address}:20000
-
+server-url=${host-address}:20000
 # The username to use when contacting the openBIS server
-username = etlserver
-
+username=etlserver
 # The password for the etlserver user who contacts the openBIS server
 password=e1AWO4f0ro
-
 # The base URL for Web client access to the data store server.
-download-url = ${host-address}:${port}
-
+download-url=${host-address}:${port}
 # SMTP properties (must start with 'mail' to be considered).
 # The current configuration saves the emails in the file system in the root directory 
-mail.smtp.host = file://${root-dir}/email
+mail.smtp.host=file://${root-dir}/email
 # mail.smtp.host = localhost
 # mail.from = openbis-dss@localhost
 # mail.smtp.user = 
 # mail.smtp.password = 
-
-
 # Data sources
-data-sources = path-info-db 
-
+data-sources=path-info-db 
 # Data source for pathinfo database
-path-info-db.version-holder-class = ch.systemsx.cisd.openbis.dss.generic.shared.PathInfoDatabaseVersionHolder
-path-info-db.databaseEngineCode = postgresql
-path-info-db.basicDatabaseName = pathinfo
+path-info-db.version-holder-class=ch.systemsx.cisd.openbis.dss.generic.shared.PathInfoDatabaseVersionHolder
+path-info-db.databaseEngineCode=postgresql
+path-info-db.basicDatabaseName=pathinfo
 # The host and optionally port. Default is 'localhost'.
 # path-info-db.urlHostPart =
-path-info-db.databaseKind = test_js_common
-path-info-db.scriptFolder = ../../../../datastore_server/source/sql
-
+path-info-db.databaseKind=test_js_common
+path-info-db.scriptFolder=../../../../datastore_server/source/sql
 # ---------------------------------------------------------------------------
 # maintenance plugins configuration
 # ---------------------------------------------------------------------------
-
 # Comma separated names of maintenance plugins. Each plugin should have configuration properties prefixed with its name.
-maintenance-plugins = post-registration, path-info-deletion
-
-# Maintenance task for post registration of all paths of a freshly registered data set to be fed into pathinfo database  
-post-registration.class = ch.systemsx.cisd.etlserver.postregistration.PostRegistrationMaintenanceTask
-post-registration.interval = 30
-post-registration.cleanup-tasks-folder = ${root-dir}/post-registration/cleanup-tasks
-post-registration.last-seen-data-set-file = ${root-dir}/post-registration/last-seen-data-set.txt
-post-registration.post-registration-tasks = pathinfo-feeding, notifying
-post-registration.pathinfo-feeding.class = ch.systemsx.cisd.etlserver.path.PathInfoDatabaseFeedingTask
-post-registration.pathinfo-feeding.compute-checksum = true
+maintenance-plugins=post-registration, path-info-deletion
+# Maintenance task for post registration of all paths of a freshly registered data set to be fed into pathinfo database
+post-registration.class=ch.systemsx.cisd.etlserver.postregistration.PostRegistrationMaintenanceTask
+post-registration.interval=30
+post-registration.cleanup-tasks-folder=${root-dir}/post-registration/cleanup-tasks
+post-registration.last-seen-data-set-file=${root-dir}/post-registration/last-seen-data-set.txt
+post-registration.post-registration-tasks=pathinfo-feeding, notifying
+post-registration.pathinfo-feeding.class=ch.systemsx.cisd.etlserver.path.PathInfoDatabaseFeedingTask
+post-registration.pathinfo-feeding.compute-checksum=true
 # The NotifyingTask throws an exception. Thus, post-registration will always fail. 
 # This is needed to have an example of a data set which isn't post-registered. 
-post-registration.notifying.class = ch.systemsx.cisd.etlserver.postregistration.NotifyingTask
-post-registration.notifying.destination-path-template = targets/${unknown-placeholder-preventing-post-registration}
-post-registration.notifying.message-template = hello
-
+post-registration.notifying.class=ch.systemsx.cisd.etlserver.postregistration.NotifyingTask
+post-registration.notifying.destination-path-template=targets/${unknown-placeholder-preventing-post-registration}
+post-registration.notifying.message-template=hello
 # Maintenance task for deleting entries from pathinfo database after deletion of a data set
-path-info-deletion.class = ch.systemsx.cisd.etlserver.plugins.DeleteFromExternalDBMaintenanceTask
-path-info-deletion.interval = 120
-path-info-deletion.data-source = path-info-db
-path-info-deletion.data-set-table-name = data_sets
-path-info-deletion.data-set-perm-id = CODE
-
+path-info-deletion.class=ch.systemsx.cisd.etlserver.plugins.DeleteFromExternalDBMaintenanceTask
+path-info-deletion.interval=120
+path-info-deletion.data-source=path-info-db
+path-info-deletion.data-set-table-name=data_sets
+path-info-deletion.data-set-perm-id=CODE
 # ---------------------------------------------------------------------------
 # processing plugins configuration
 # ---------------------------------------------------------------------------
-
 # Comma separated names of processing plugins. Each plugin should have configuration properties prefixed with its name.
-processing-plugins = path-info-db-consistency-check
-
+processing-plugins=path-info-db-consistency-check
 # Processing task that checks the consistency between the data store and the meta information stored in the PathInfoDB.
 # It sends out an email which contains all differences found. 
-path-info-db-consistency-check.label = Path Info DB consistency check
-path-info-db-consistency-check.dataset-types = .*
-path-info-db-consistency-check.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.DataSetAndPathInfoDBConsistencyCheckProcessingPlugin
-
+path-info-db-consistency-check.label=Path Info DB consistency check
+path-info-db-consistency-check.dataset-types=.*
+path-info-db-consistency-check.class=ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.DataSetAndPathInfoDBConsistencyCheckProcessingPlugin
 # ---------------------------------------------------------------------------
 # dropbox configurations
 # ---------------------------------------------------------------------------
-inputs = default-dropbox
-dss-rpc.put-default = default-dropbox
-
-default-dropbox.incoming-dir = ${incoming-root-dir}/incoming-default
-default-dropbox.incoming-data-completeness-condition = auto-detection
-default-dropbox.top-level-data-set-handler = ch.systemsx.cisd.etlserver.registrator.api.v2.JavaTopLevelDataSetHandlerV2
-default-dropbox.program-class = ch.systemsx.cisd.etlserver.registrator.DefaultDropbox
-default-dropbox.storage-processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
+inputs=default-dropbox
+dss-rpc.put-default=default-dropbox
+default-dropbox.incoming-dir=${incoming-root-dir}/incoming-default
+default-dropbox.incoming-data-completeness-condition=auto-detection
+default-dropbox.top-level-data-set-handler=ch.systemsx.cisd.etlserver.registrator.api.v2.JavaTopLevelDataSetHandlerV2
+default-dropbox.program-class=ch.systemsx.cisd.etlserver.registrator.DefaultDropbox
+default-dropbox.storage-processor=ch.systemsx.cisd.etlserver.DefaultStorageProcessor
 #default-dropbox.validation-script-path = ../core-plugins/default/default-validation-script.py
-
 # ---------------------------------------------------------------------------
 # Archiver configuration (optional)
 # ---------------------------------------------------------------------------
-
 # Configuration of an archiver task. All properties are prefixed with 'archiver.'.
-
 # Archiver class specification (together with the list of packages this class belongs to).
-archiver.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoArchiver
-
+archiver.class=ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoArchiver
 # ---------------------------------------------------------------------------
 # Imaging database for screening (optional, only used if screening technology switched on)
 # ---------------------------------------------------------------------------
 # Format: <host>[:<port>]. Default: localhost
 # imaging-database.url-host-part =
 # Default: prod.
-
-imaging-database.kind = test_js_common
-proteomics-database-kind = test_js_common
-
-screening-sql-root-folder = ../../../../screening/source/
-proteomics-sql-root-folder = ../../../../rtd_phosphonetx/source/
-
+imaging-database.kind=test_js_common
+proteomics-database-kind=test_js_common
+screening-sql-root-folder=../../../../screening/source/
 # ---------------------------------------------------------------------------
 #                      INTERNAL CONFIGURATION, 
 # Do not change this part unless you are developing openBIS extensions.
 # ---------------------------------------------------------------------------
-
-
 jython-version=2.7
diff --git a/js-test/servers/common/datastore_server2/etc/service.properties b/js-test/servers/common/datastore_server2/etc/service.properties
index 7bc4758e4fb7fc0e2c90129edfd91c99d6ab5572..646ee8ef193577503f8ff04505b09647471480b3 100644
--- a/js-test/servers/common/datastore_server2/etc/service.properties
+++ b/js-test/servers/common/datastore_server2/etc/service.properties
@@ -1,181 +1,138 @@
 # Unique code of this Data Store Server. Not more than 40 characters.
-data-store-server-code = DSS2
-
+data-store-server-code=DSS2
 # host name of the machine on which the datastore server is running
-host-address = http://localhost
-
+host-address=http://localhost
 # parent directory of the store directory and all the dropboxes
-root-dir = data
-
+root-dir=data
 # The root directory of the data store
-storeroot-dir = ${root-dir}/store
-
-incoming-root-dir = ${root-dir}
-
+storeroot-dir=${root-dir}/store
+incoming-root-dir=${root-dir}
 # Cache for data set files from other Data Store Servers
-cache-workspace-folder = ${root-dir}/dss-cache
-
-# The directory where the command queue file is located; defaults to storeroot-dir 
-commandqueue-dir =
-
+cache-workspace-folder=${root-dir}/dss-cache
+# The directory where the command queue file is located; defaults to storeroot-dir
+commandqueue-dir=
 # Port
-port = 20002
-use-ssl = false
-
+port=20002
+use-ssl=false
 # Session timeout in minutes
-session-timeout = 720
-
+session-timeout=720
 # Path to the keystore
-keystore.path = etc/openBIS.keystore
+keystore.path=etc/openBIS.keystore
 # Password of the keystore
-keystore.password = changeit
+keystore.password=changeit
 # Key password of the keystore
-keystore.key-password = changeit
-
+keystore.key-password=changeit
 # The check interval (in seconds)
-check-interval = 5
-
-quiet-period = 10
-
-data-set-locking-timeout = 1
-
+check-interval=5
+quiet-period=10
+data-set-locking-timeout=1
 # The time-out for clean up work in the shutdown sequence (in seconds).
 # Note that that the maximal time for the shutdown sequence to complete can be as large 
 # as twice this time.
 # Remark: On a network file system, it is not recommended to turn this value to something 
 # lower than 180.
-shutdown-timeout = 180
-
+shutdown-timeout=180
 # The minimum time (in seconds) of availability of the data stream since moment when user requested
 # for the data stream url. If not specified default value (20 seconds) will be used.
 # minimum-time-to-keep-streams-in-sec = 20
-
 #�If free disk space goes below value defined here, a notification email will be sent.
 # Value must be specified in kilobytes (1048576 = 1024 * 1024 = 1GB). If no high water mark is
 # specified or if value is negative, the system will not be watching. There are 2 different kinds
 # of highwater mark supported: the one that is checking the space on the store, and one that is
 # checking the amount of free space for recovery state (on the local filesystem). 
-highwater-mark = -1
-recovery-highwater-mark = -1
-
-# If a data set is successfully registered it sends out an email to the registrator. 
+highwater-mark=-1
+recovery-highwater-mark=-1
+# If a data set is successfully registered it sends out an email to the registrator.
 # If this property is not specified, no email is sent to the registrator. This property
 # does not affect the mails which are sent, when the data set could not be registered.
-notify-successful-registration = false
-
+notify-successful-registration=false
 # The URL of the openBIS server
-server-url = ${host-address}:20000
-
+server-url=${host-address}:20000
 # The username to use when contacting the openBIS server
-username = etlserver
-
+username=etlserver
 # The password for the etlserver user who contacts the openBIS server
 password=e1AWO4f0ro
-
 # The base URL for Web client access to the data store server.
-download-url = ${host-address}:${port}
-
+download-url=${host-address}:${port}
 # SMTP properties (must start with 'mail' to be considered).
 # The current configuration saves the emails in the file system in the root directory 
-mail.smtp.host = file://${root-dir}/email
+mail.smtp.host=file://${root-dir}/email
 # mail.smtp.host = localhost
 # mail.from = openbis-dss@localhost
 # mail.smtp.user = 
 # mail.smtp.password = 
-
-
 # Data sources
-data-sources = path-info-db 
-
+data-sources=path-info-db 
 # Data source for pathinfo database
-path-info-db.version-holder-class = ch.systemsx.cisd.openbis.dss.generic.shared.PathInfoDatabaseVersionHolder
-path-info-db.databaseEngineCode = postgresql
-path-info-db.basicDatabaseName = pathinfo
+path-info-db.version-holder-class=ch.systemsx.cisd.openbis.dss.generic.shared.PathInfoDatabaseVersionHolder
+path-info-db.databaseEngineCode=postgresql
+path-info-db.basicDatabaseName=pathinfo
 # The host and optionally port. Default is 'localhost'.
 # path-info-db.urlHostPart =
-path-info-db.databaseKind = test_js_common2
-path-info-db.scriptFolder = ../../../../datastore_server/source/sql
-
+path-info-db.databaseKind=test_js_common2
+path-info-db.scriptFolder=../../../../datastore_server/source/sql
 # ---------------------------------------------------------------------------
 # maintenance plugins configuration
 # ---------------------------------------------------------------------------
-
 # Comma separated names of maintenance plugins. Each plugin should have configuration properties prefixed with its name.
-maintenance-plugins = post-registration, path-info-deletion
-
-# Maintenance task for post registration of all paths of a freshly registered data set to be fed into pathinfo database 
-post-registration.class = ch.systemsx.cisd.etlserver.postregistration.PostRegistrationMaintenanceTask
-post-registration.interval = 30
-post-registration.cleanup-tasks-folder = ${root-dir}/post-registration/cleanup-tasks
-post-registration.last-seen-data-set-file = ${root-dir}/post-registration/last-seen-data-set.txt
-post-registration.post-registration-tasks = pathinfo-feeding, notifying
-post-registration.pathinfo-feeding.class = ch.systemsx.cisd.etlserver.path.PathInfoDatabaseFeedingTask
-post-registration.pathinfo-feeding.compute-checksum = true
+maintenance-plugins=post-registration, path-info-deletion
+# Maintenance task for post registration of all paths of a freshly registered data set to be fed into pathinfo database
+post-registration.class=ch.systemsx.cisd.etlserver.postregistration.PostRegistrationMaintenanceTask
+post-registration.interval=30
+post-registration.cleanup-tasks-folder=${root-dir}/post-registration/cleanup-tasks
+post-registration.last-seen-data-set-file=${root-dir}/post-registration/last-seen-data-set.txt
+post-registration.post-registration-tasks=pathinfo-feeding, notifying
+post-registration.pathinfo-feeding.class=ch.systemsx.cisd.etlserver.path.PathInfoDatabaseFeedingTask
+post-registration.pathinfo-feeding.compute-checksum=true
 # The NotifyingTask throws an exception. Thus, post-registration will always fail. 
 # This is needed to have an example of a data set which isn't post-registered. 
-post-registration.notifying.class = ch.systemsx.cisd.etlserver.postregistration.NotifyingTask
-post-registration.notifying.destination-path-template = targets/${unknown-placeholder-preventing-post-registration}
-post-registration.notifying.message-template = hello
-
+post-registration.notifying.class=ch.systemsx.cisd.etlserver.postregistration.NotifyingTask
+post-registration.notifying.destination-path-template=targets/${unknown-placeholder-preventing-post-registration}
+post-registration.notifying.message-template=hello
 # Maintenance task for deleting entries from pathinfo database after deletion of a data set
-path-info-deletion.class = ch.systemsx.cisd.etlserver.plugins.DeleteFromExternalDBMaintenanceTask
-path-info-deletion.interval = 120
-path-info-deletion.data-source = path-info-db
-path-info-deletion.data-set-table-name = data_sets
-path-info-deletion.data-set-perm-id = CODE
-
+path-info-deletion.class=ch.systemsx.cisd.etlserver.plugins.DeleteFromExternalDBMaintenanceTask
+path-info-deletion.interval=120
+path-info-deletion.data-source=path-info-db
+path-info-deletion.data-set-table-name=data_sets
+path-info-deletion.data-set-perm-id=CODE
 # ---------------------------------------------------------------------------
 # processing plugins configuration
 # ---------------------------------------------------------------------------
-
 # Comma separated names of processing plugins. Each plugin should have configuration properties prefixed with its name.
-processing-plugins = path-info-db-consistency-check
-
+processing-plugins=path-info-db-consistency-check
 # Processing task that checks the consistency between the data store and the meta information stored in the PathInfoDB.
 # It sends out an email which contains all differences found. 
-path-info-db-consistency-check.label = Path Info DB consistency check
-path-info-db-consistency-check.dataset-types = .*
-path-info-db-consistency-check.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.DataSetAndPathInfoDBConsistencyCheckProcessingPlugin
-
+path-info-db-consistency-check.label=Path Info DB consistency check
+path-info-db-consistency-check.dataset-types=.*
+path-info-db-consistency-check.class=ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.DataSetAndPathInfoDBConsistencyCheckProcessingPlugin
 # ---------------------------------------------------------------------------
 # dropbox configurations
 # ---------------------------------------------------------------------------
-inputs = default-dropbox
-dss-rpc.put-default = default-dropbox
-
-default-dropbox.incoming-dir = ${incoming-root-dir}/incoming-default
-default-dropbox.incoming-data-completeness-condition = auto-detection
-default-dropbox.top-level-data-set-handler = ch.systemsx.cisd.etlserver.registrator.api.v2.JavaTopLevelDataSetHandlerV2
-default-dropbox.program-class = ch.systemsx.cisd.etlserver.registrator.DefaultDropbox
-default-dropbox.storage-processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
-default-dropbox.validation-script-path = ../core-plugins/default/default-validation-script.py
-
+inputs=default-dropbox
+dss-rpc.put-default=default-dropbox
+default-dropbox.incoming-dir=${incoming-root-dir}/incoming-default
+default-dropbox.incoming-data-completeness-condition=auto-detection
+default-dropbox.top-level-data-set-handler=ch.systemsx.cisd.etlserver.registrator.api.v2.JavaTopLevelDataSetHandlerV2
+default-dropbox.program-class=ch.systemsx.cisd.etlserver.registrator.DefaultDropbox
+default-dropbox.storage-processor=ch.systemsx.cisd.etlserver.DefaultStorageProcessor
+default-dropbox.validation-script-path=../core-plugins/default/default-validation-script.py
 # ---------------------------------------------------------------------------
 # Archiver configuration (optional)
 # ---------------------------------------------------------------------------
-
 # Configuration of an archiver task. All properties are prefixed with 'archiver.'.
-
 # Archiver class specification (together with the list of packages this class belongs to).
-archiver.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoArchiver
-
+archiver.class=ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoArchiver
 # ---------------------------------------------------------------------------
 # Imaging database for screening (optional, only used if screening technology switched on)
 # ---------------------------------------------------------------------------
 # Format: <host>[:<port>]. Default: localhost
 # imaging-database.url-host-part =
 # Default: prod.
-
-imaging-database.kind = test_js_common2
-proteomics-database-kind = test_js_common2
-
-screening-sql-root-folder = ../../../../screening/source/
-proteomics-sql-root-folder = ../../../../rtd_phosphonetx/source/
-
+imaging-database.kind=test_js_common2
+proteomics-database-kind=test_js_common2
+screening-sql-root-folder=../../../../screening/source/
 # ---------------------------------------------------------------------------
 #                      INTERNAL CONFIGURATION, 
 # Do not change this part unless you are developing openBIS extensions.
 # ---------------------------------------------------------------------------
-
-
 jython-version=2.7
diff --git a/openbis_all/build/build.xml b/openbis_all/build/build.xml
index 42907f391a032faa9af0f103bdc126fbc2dd7de9..c1b51dec44c922aa2d7ffae89df0b4793f1dcf51 100644
--- a/openbis_all/build/build.xml
+++ b/openbis_all/build/build.xml
@@ -20,10 +20,6 @@
       <param name="project" value="deep_sequencing_unit" />
       <param name="pattern" value="*"/>
     </antcall>
-    <antcall target="_dist">
-      <param name="project" value="rtd_phosphonetx" />
-      <param name="pattern" value="*"/>
-    </antcall>
     <antcall target="_dist">
       <param name="project" value="rtd_yeastx" />
       <param name="pattern" value="*"/>
@@ -91,9 +87,6 @@
     <antcall target="_clean">
       <param name="project" value="deep_sequencing_unit"/>
     </antcall>
-    <antcall target="_clean">
-      <param name="project" value="rtd_phosphonetx"/>
-    </antcall>
     <antcall target="_clean">
       <param name="project" value="rtd_yeastx"/>
     </antcall>
diff --git a/openbis_all/source/bash/build/branch.sh b/openbis_all/source/bash/build/branch.sh
index 0541401e60c6a8f56199d3e220c98d66a5aa3411..e046ba9c8802659de5add732e7469daf401b1fc5 100755
--- a/openbis_all/source/bash/build/branch.sh
+++ b/openbis_all/source/bash/build/branch.sh
@@ -39,7 +39,6 @@ openbis-common \
 openbis_standard_technologies \
 openbis_api \
 plasmid \
-rtd_phosphonetx \
 rtd_yeastx \
 screening \
 ui-test\
diff --git a/rtd_phosphonetx/.gitignore b/rtd_phosphonetx/.gitignore
deleted file mode 100644
index 8186f94570a6b4799f1e33486c93a5b35e842d5b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-/etc
-/tomcat
-/targets
-/test-output
-/.updater
-/.dynamic_property_evaluator_queue
-/bin
-/build/
-/.idea/
-*.iml
-*.eml
\ No newline at end of file
diff --git a/rtd_phosphonetx/.pydevproject b/rtd_phosphonetx/.pydevproject
deleted file mode 100644
index a9cca037b33037ebc3232e6b63f3f00283463a4e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/.pydevproject
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?eclipse-pydev version="1.0"?>
-
-<pydev_project>
-<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
-<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
-</pydev_project>
diff --git a/rtd_phosphonetx/.shredder b/rtd_phosphonetx/.shredder
deleted file mode 100644
index 2e08dce276e43c677d121d627a250d1710fed824..0000000000000000000000000000000000000000
Binary files a/rtd_phosphonetx/.shredder and /dev/null differ
diff --git a/rtd_phosphonetx/build.gradle b/rtd_phosphonetx/build.gradle
deleted file mode 100644
index a53a350ca6216b9c5c52b20743dd3a825c140888..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/build.gradle
+++ /dev/null
@@ -1,58 +0,0 @@
-evaluationDependsOn(':commonbase')
-evaluationDependsOn(':common')
-evaluationDependsOn(':openbis_api')
-evaluationDependsOn(':openbis-common')
-evaluationDependsOn(':authentication')
-evaluationDependsOn(':dbmigration')
-evaluationDependsOn(':openbis')
-evaluationDependsOn(':datastore_server')
-
-apply from: '../gradle/javaproject.gradle'
-
-dependencies {
-	compile project(':common'),
-			project(':datastore_server')
-			
-	testCompile project(path: ':datastore_server', configuration: 'tests')	
-	
-}
-
-sourceSets {
-	test {
-		resources {
-			srcDirs = ['source/java']
-		}
-	}
-}
-
-jar {
-    from('../rtd_phosphonetx/source/sql'){ 
-        into("/sql") 
-        include "proteomics/**/*.sql" 
-    }
-}
-
-task systemTestSuite(type: Test) {
-    useTestNG()
-    options.suites('sourceTest/java/tests_system.xml')
-    jvmArgs '-Xmx2048m', '-XX:MaxPermSize=256m'    
-    reports.html.destination = file("${project.buildDir}/reports/tests-system")
-}
-
-test.dependsOn(systemTestSuite)
-
-task zip(type: Zip) {
-	includeEmptyDirs false
-    from (jar.archivePath) {
-	    into 'datastore_server/lib/'
-	    rename 'datastore_server_plugin-proteomics(.*)\\.jar', 'datastore_server_plugin-proteomics.jar'
-	}
-    
-    from (fileTree(dir: 'source/core-plugins', includes:['proteomics/**', 'proteomics-optional/**'], excludes:['**/as/**', '**/package-to-dist'])) {
-		into 'core-plugins'    
-	}
-}
-zip.dependsOn jar
-build.dependsOn zip
-
-apply from: 'gwtdev.gradle'
diff --git a/rtd_phosphonetx/etc/log.xml b/rtd_phosphonetx/etc/log.xml
deleted file mode 100644
index 5cee0a68436a19a6c4ec4b14b580e6d9f75bf84f..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/etc/log.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
-
-  <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
-     <layout class="org.apache.log4j.PatternLayout">
-       <param name="ConversionPattern" value="%d %-5p [%t] %c - %m%n"/>
-     </layout>
-  </appender>
-
-  <appender name="NULL" class="org.apache.log4j.varia.NullAppender" />
-
-  <root>
-     <priority value ="info" />
-     <appender-ref ref="STDOUT" />
-  </root>
-
-</log4j:configuration>
diff --git a/rtd_phosphonetx/etc/passwd b/rtd_phosphonetx/etc/passwd
deleted file mode 100644
index 6ead36251a5325160d2d13a2894487f82cf95cf8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/etc/passwd
+++ /dev/null
@@ -1,4 +0,0 @@
-test:a@admins.com:A:The Admin:J3fII6Pex7jnCBwF+uXz2mFuB1QVhPUi
-u:u@users.com:U:The User:dmbGKaGRmbX8YKfslMxUHObmYfjywkuT
-o:o@observers.com:O:The Observer:t53ADCnFnEFhBvHB7FPoHhbHeW2O1KJc
-etlserver::::SHGHSPawL/B3NKXD5nsu4fSrj5LwR2MX
diff --git a/rtd_phosphonetx/etc/passwd.sv b/rtd_phosphonetx/etc/passwd.sv
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/rtd_phosphonetx/etc/passwd.tmp b/rtd_phosphonetx/etc/passwd.tmp
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/rtd_phosphonetx/etc/service.properties b/rtd_phosphonetx/etc/service.properties
deleted file mode 100644
index 3db2ce8d811de16962e5ddebbde3d567ffa66878..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/etc/service.properties
+++ /dev/null
@@ -1,115 +0,0 @@
-# Unique code of this Data Store Server. Not more than 40 characters.
-data-store-server-code = DSS1
-
-root-dir = targets/playground
-
-# The root directory of the data store
-storeroot-dir = ${root-dir}/data/store
-
-incoming-root-dir = ${root-dir}/data
-
-core-plugins-folder = source/core-plugins
-
-proteomics-database-kind = dev
-proteomics-sql-root-folder = source/
-
-session-workspace-root-dir = ${incoming-root-dir}/session-workspace
-
-dss-rpc.put-default = default-dropbox
-
-# The directory where the command queue file is located; defaults to storeroot-dir 
-commandqueue-dir =
-
-# Port
-port = 8889
-
-# Session timeout in minutes
-session-timeout = 720
-
-# Path to the keystore
-keystore.path = ../datastore_server/dist/etc/openBIS.keystore
-
-# Password of the keystore
-keystore.password = changeit
-
-# Key password of the keystore
-keystore.key-password = changeit
-
-# The check interval (in seconds)
-check-interval = 5
-
-# The time-out for clean up work in the shutdown sequence (in seconds).
-# Note that that the maximal time for the shutdown sequence to complete can be as large 
-# as twice this time.
-# Remark: On a network file system, it is not recommended to turn this value to something 
-# lower than 180.
-shutdown-timeout = 2
-
-# If free disk space goes below value defined here, a notification email will be sent.
-# Value must be specified in kilobytes (1048576 = 1024 * 1024 = 1GB). If no high water mark is
-# specified or if value is negative, the system will not be watching.
-highwater-mark = -1
-
-# If a data set is successfully registered it sends out an email to the registrator. 
-# If this property is not specified, no email is sent to the registrator. This property
-# does not affect the mails which are sent, when the data set could not be registered.
-notify-successful-registration = false
-
-dss-temp-dir = ${root-dir}/dss-temp
-dss-registration-log-dir = ${root-dir}/dss-registration-logs
-dss-recovery-state-dir = ${root-dir}/recovery-state
-
-use-ssl = false
-
-# The URL of the openBIS server
-server-url = http://localhost:8888/openbis
-server-timeout-in-minutes = 10
-
-# The username to use when contacting the openBIS server
-username = etlserver
-
-# The password to use when contacting the openBIS server
-password = etlserver
-
-# The base URL for Web client access.
-download-url = http://localhost:8889
-
-# SMTP properties (must start with 'mail' to be considered). 
-mail.smtp.host = file://targets/email
-mail.from = datastore_server@localhost
-
-# ---------------- Timing parameters for file system operations on remote shares.
-
-# Time (in seconds) to wait for any file system operation to finish. Operations exceeding this 
-# timeout will be terminated. 
-timeout = 60
-# Number of times that a timed out operation will be tried again (0 means: every file system 
-# operation will only ever be performed once).
-max-retries = 11
-# Time (in seconds) to wait after an operation has been timed out before re-trying.  
-failure-interval = 10 
-
-# The period of no write access that needs to pass before an incoming data item is considered 
-# complete and ready to be processed (in seconds) [default: 300]. 
-# Valid only when auto-detection method is used to determine if an incoming data are ready to be processed.
-quiet-period = 10
-
-# ---------------------------------------------------------------------------
-
-# Globally used separator character which separates entities in a data set file name 
-data-set-file-name-entity-separator = _
-
-# ---------------------------------------------------------------------------
-# dropbox configurations
-# ---------------------------------------------------------------------------
-inputs = default-dropbox
-dss-rpc.put-default = default-dropbox
-
-default-dropbox.incoming-dir = ${incoming-root-dir}/incoming-default
-default-dropbox.incoming-data-completeness-condition = auto-detection
-default-dropbox.top-level-data-set-handler = ch.systemsx.cisd.etlserver.registrator.api.v2.JavaTopLevelDataSetHandlerV2
-default-dropbox.program-class = ch.systemsx.cisd.etlserver.registrator.DefaultDropbox
-default-dropbox.storage-processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
-
-
-jython-version=2.7
diff --git a/rtd_phosphonetx/etc/web-client.properties b/rtd_phosphonetx/etc/web-client.properties
deleted file mode 100644
index dc67a8589bc51a9c697f4595c8924da3fa01f1e9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/etc/web-client.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-# Maximal number of visible columns in tables. Default: 50.
-max-visible-columns = 15
-enable-trash = true
-
-technologies = proteomics
-
-# Relative path of cache. Default value is 'cache'.
-proteomics.cache-folder = targets/cache
-# Minimum free disk space needed for the cache. Default value is 1 GB.
-#proteomics.minimum-free-disk-space-in-MB = 1024
-# Maximum retention time. Data older than this time will be removed from cache. Default value is a week.
-#proteomics.maximum-retention-time-in-days = 7
diff --git a/rtd_phosphonetx/gradle/wrapper/gradle-wrapper.jar b/rtd_phosphonetx/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 05a89ea194c2a29cec5f0bd3df21c3e8e1a81b78..0000000000000000000000000000000000000000
Binary files a/rtd_phosphonetx/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/rtd_phosphonetx/gradle/wrapper/gradle-wrapper.properties b/rtd_phosphonetx/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 3cf832e831fce0b9eca9f1759bffa29875642332..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=http\://svnsis.ethz.ch/repos/cisd/ivy-repository/trunk/gradle/distribution/5.6.4/gradle-5.6.4-all.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/rtd_phosphonetx/gradlew b/rtd_phosphonetx/gradlew
deleted file mode 100755
index 4453ccea33d960069d9137ee65f6b21fc65e7e92..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/gradlew
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env sh
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-  NONSTOP* )
-    nonstop=true
-    ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-    JAVACMD=`cygpath --unix "$JAVACMD"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=$((i+1))
-    done
-    case $i in
-        (0) set -- ;;
-        (1) set -- "$args0" ;;
-        (2) set -- "$args0" "$args1" ;;
-        (3) set -- "$args0" "$args1" "$args2" ;;
-        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Escape application args
-save ( ) {
-    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
-    echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
-  cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "$@"
diff --git a/rtd_phosphonetx/gradlew.bat b/rtd_phosphonetx/gradlew.bat
deleted file mode 100644
index e95643d6a2ca62258464e83c72f5156dc941c609..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/rtd_phosphonetx/gwtdev.gradle b/rtd_phosphonetx/gwtdev.gradle
deleted file mode 100644
index 072841cf7be9c51e0dbffb4c7c1e6d6bc7e107b4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/gwtdev.gradle
+++ /dev/null
@@ -1,95 +0,0 @@
-configurations.create('gwt')
-if (System.getProperty("openbis.development-build") != null) {
-	configurations.gwt {
-	    transitive = false
-	}
-	
-	dependencies {
-	    gwt 'reveregroup:gwt-image-loader:1.1.4',
-	    	'google:gwt-dev:2.4',
-	    	'google:gwt-user:2.4',
-	    	'google:gwt-debug-panel:1.0',
-	    	'sencha:gxt:2.2.5',
-            'sis:sis-base:18.09.0',
-			'fasterxml:jackson-annotations:2.9.10',    	
-	    	project(':common'),
-	    	project(path:':common', configuration: 'archives'),
-	    	project(path:':openbis_api'),
-	    	project(path:':openbis_api', configuration: 'archives'),
-	    	project(path:':openbis-common'),
-	    	project(path:':openbis-common', configuration: 'archives'),
-	    	project(path:':openbis'),
-	    	project(path:':openbis', configuration: 'archives'),
-	    	project(path:':rtd_phosphonetx', configuration: 'archives')
-	}
-}
-
-task deleteGWT(type: Exec) {
-    executable "rm"
-    args "-rf", "${project.projectDir.absolutePath}/.gwt-cache", "${project.projectDir.absolutePath}/targets/www"
-}
-
-task prepareGWT(type:Copy, dependsOn: [deleteGWT, compileJava]) {
-    from 'resource/server'
-    from files('../common/resource/server') {
-		exclude 'gwt.xml'
-    }
-    from file('../openbis/resource/server/bis-common.xml')
-    into 'targets/www/WEB-INF'
-    
-    from (project.configurations.runtime.files) {
-        into 'lib'
-        exclude 'cisd-cifex*'
-        exclude 'common-*'
-        exclude 'authentication-*'
-        exclude 'dbmigration-*'
-        exclude 'openbis-common-*'
-        exclude 'openbis_api-*'
-	    exclude 'openbis-*'
-	    exclude 'datastore_server-*'        
-    }
-
-    from ('source/java/service.properties') {
-        into 'classes'
-    }
-   	
-   	doLast {
-        file("targets/www/WEB-INF/gwt.xml").createNewFile()
-    }
-}
-
-task compileGWTToTemp(type: JavaExec, dependsOn: prepareGWT) {
-    //inputs.source
-    sourceSets.main.java.srcDirs
-    inputs.dir sourceSets.main.output.resourcesDir
-    outputs.dir 'targets/www/gwt-temp'
-
-    main = 'com.google.gwt.dev.Compiler'
-    maxHeapSize = '1024m'
-    classpath {
-      [
-        sourceSets.main.java.srcDirs,   
-        project(":openbis").sourceSets.main.java.srcDirs,
-        project(":openbis").sourceSets.main.output.resourcesDir,
-        project(":openbis").sourceSets.main.output.classesDirs,
-        project(":openbis").sourceSets.main.compileClasspath,
-        project(":common").sourceSets.main.java.srcDirs,
-        project(":openbis_api").sourceSets.main.java.srcDirs,
-        project(":rtd_phosphonetx").sourceSets.main.java.srcDirs,
-        project(":rtd_phosphonetx").sourceSets.main.output.resourcesDir,      
-        configurations.gwt
-      ]   
-    }
-    args = [ '-war',
-             'targets/www/gwt-temp',
-             "ch.systemsx.cisd.openbis.plugin.proteomics.OpenBISSafari",
-             '-draftCompile',
-             '-style', 'PRETTY',
-             '-logLevel', 'INFO']
-}
-
-task compileGWT(type: Copy, dependsOn: compileGWTToTemp) {
-    from "targets/www/gwt-temp/ch.systemsx.cisd.openbis.plugin.proteomics.OpenBIS"
-    into "targets/www/openbis-test-proteomics"
-}
-
diff --git a/rtd_phosphonetx/resource/dependency-structure.ddf b/rtd_phosphonetx/resource/dependency-structure.ddf
deleted file mode 100644
index 5597c17019c7687e273e07826902f228667472f2..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/resource/dependency-structure.ddf
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-#
-#
-#show allResults
-
-{root} = ch.systemsx.cisd.openbis
-{generic} = ${root}.generic
-{proteomics} = ${root}.plugin.proteomics
-
-######################################################################
-# Check dependencies to openbis
-
-[etlserver] = ${root}.etlserver.proteomics.*
-[private_openbis] = ${root}.* excluding [etlserver] ${root}.dss.generic.shared.* ${root}.generic.shared.* ${proteomics}.shared.* ${root}.common.*
-
-check sets [etlserver]
-
-check [etlserver] independentOf [private_openbis]
-
-######################################################################
-# Check plugin dependencies
-#
-[proteomics.client] = ${proteomics}.client.*
-[proteomics.server] = ${proteomics}.server.*
-[proteomics.shared] = ${proteomics}.shared.*
-[other.client] = ${generic}.client.* ${root}.plugin.*.client excluding  [proteomics.client]
-[other.server] = ${generic}.server.* ${root}.plugin.*.server excluding  [proteomics.server]
-
-check sets [proteomics.client] [proteomics.server] [proteomics.shared]
-
-layer proteomics.client-server = [proteomics.client] [proteomics.server]
-layer proteomics.shared = [proteomics.shared] 
-check layeringOf proteomics.shared proteomics.client-server
-
-check [proteomics.client] independentOf [other.server]
-check [proteomics.server] independentOf [other.client]
-
-######################################################################
-# Check API
-#
-
-[api-shared] = ${root}.generic.shared.api.* ${proteomics}.shared.api.* 
-[api-client] = ${proteomics}.client.api.*
-[everything-except-java] = * excluding java* *.annotation.* ch.systemsx.cisd.common.api.IRpcService
-[everything-except-java-and-api-shared] = [everything-except-java] excluding [api-shared] ${root}.common.api.client.* ch.systemsx.cisd.common.api.retry.*
-
-check sets [api-shared] [api-client]
-
-check [api-shared] independentOf [everything-except-java]
-check [api-client] independentOf [everything-except-java-and-api-shared]
diff --git a/rtd_phosphonetx/resource/eclipse/Gradle Proteomics compile GWT.launch b/rtd_phosphonetx/resource/eclipse/Gradle Proteomics compile GWT.launch
deleted file mode 100644
index 5be105954616c2ac6d2d35bf458b1345ae300ada..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/resource/eclipse/Gradle Proteomics compile GWT.launch	
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.springsource.ide.eclipse.gradle.launch">
-<stringAttribute key="org.springsource.ide.eclipse.gradle.launch.PGM_ARGS" value="-Dopenbis.development-build=true"/>
-<stringAttribute key="org.springsource.ide.eclipse.gradle.launch.PROJECT" value="gradle"/>
-<stringAttribute key="org.springsource.ide.eclipse.gradle.launch.TASKTEXT" value=":rtd_phosphonetx:compileGWT&#10;"/>
-</launchConfiguration>
diff --git a/rtd_phosphonetx/resource/eclipse/Gradle Proteomics openBIS GWT Shell.launch b/rtd_phosphonetx/resource/eclipse/Gradle Proteomics openBIS GWT Shell.launch
deleted file mode 100644
index 45a3c674d3defd8636136026c2d71f7243a8e046..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/resource/eclipse/Gradle Proteomics openBIS GWT Shell.launch	
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/rtd_phosphonetx"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;rtd_phosphonetx&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/libraries/gwt2.4/gwt-dev.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/authentication/targets/classes&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/common/targets/classes&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/datastore_server/targets/classes&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/dbmigration/targets/classes&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis/targets/classes&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis_api/targets/classes&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis-common/targets/classes&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/rtd_phosphonetx/targets/classes&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/authentication/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/common/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/datastore_server/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/dbmigration/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis_api/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis-common/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/rtd_phosphonetx/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;rtd_phosphonetx&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-startupUrl ch.systemsx.cisd.openbis.plugin.proteomics.OpenBIS/index.html ch.systemsx.cisd.openbis.plugin.proteomics.OpenBIS -war targets/www -logLevel WARN"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="rtd_phosphonetx"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dpython.path=../libraries/jython/jython-lib&#10;-Dlog4j.configuration=../openbis/etc/log.xml&#13;&#10;-Djavax.net.ssl.trustStore=../openbis/dist/server/openBIS.keystore&#10;-Dorg.mortbay.util.FileResource.checkAliases=false&#10;-Xmx2048m&#10;-XX:MaxPermSize=512m&#13;&#10;-ea"/>
-</launchConfiguration>
diff --git a/rtd_phosphonetx/resource/eclipse/Gradle Proteomics prepare GWT.launch b/rtd_phosphonetx/resource/eclipse/Gradle Proteomics prepare GWT.launch
deleted file mode 100644
index 52ab66e796806152ecc09f544b3c6ed1bd500a49..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/resource/eclipse/Gradle Proteomics prepare GWT.launch	
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.springsource.ide.eclipse.gradle.launch">
-<stringAttribute key="org.springsource.ide.eclipse.gradle.launch.PGM_ARGS" value="-Dopenbis.development-build=true"/>
-<stringAttribute key="org.springsource.ide.eclipse.gradle.launch.PROJECT" value="gradle"/>
-<stringAttribute key="org.springsource.ide.eclipse.gradle.launch.TASKTEXT" value=":rtd_phosphonetx:prepareGWT&#10;"/>
-</launchConfiguration>
diff --git a/rtd_phosphonetx/resource/eclipse/Proteomics openBIS GWT Shell.launch b/rtd_phosphonetx/resource/eclipse/Proteomics openBIS GWT Shell.launch
deleted file mode 100644
index 047a0d656b20207fd23e83daba650aae4bd10c85..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/resource/eclipse/Proteomics openBIS GWT Shell.launch	
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/rtd_phosphonetx"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;rtd_phosphonetx&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/libraries/gwt2.4/gwt-dev.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;rtd_phosphonetx&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/rtd_phosphonetx/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/openbis/source/java&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-startupUrl ch.systemsx.cisd.openbis.plugin.proteomics.OpenBIS/index.html ch.systemsx.cisd.openbis.plugin.proteomics.OpenBIS -war targets/www -logLevel WARN"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="rtd_phosphonetx"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dpython.path=../libraries/jython/jython-lib&#10;-Dlog4j.configuration=../openbis/etc/log.xml&#13;&#10;-Djavax.net.ssl.trustStore=../openbis/dist/server/openBIS.keystore&#10;-Dorg.mortbay.util.FileResource.checkAliases=false&#10;-Xmx2048m&#10;-XX:MaxPermSize=512m&#13;&#10;-ea"/>
-</launchConfiguration>
diff --git a/rtd_phosphonetx/resource/eclipse/phosphonetx Data Store Server.launch b/rtd_phosphonetx/resource/eclipse/phosphonetx Data Store Server.launch
deleted file mode 100644
index 258a7dbb82216b0a4b08b9608bda7bc33b5532b5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/resource/eclipse/phosphonetx Data Store Server.launch	
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/DataStoreServer.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ch.systemsx.cisd.openbis.dss.generic.DataStoreServer"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="rtd_phosphonetx"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
-</launchConfiguration>
diff --git a/rtd_phosphonetx/resource/server/spring-servlet.xml b/rtd_phosphonetx/resource/server/spring-servlet.xml
deleted file mode 100644
index c209198e6c1c9a51156c493c233f10c1f5705c71..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/resource/server/spring-servlet.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:tx="http://www.springframework.org/schema/tx"
-    xmlns:context="http://www.springframework.org/schema/context"
-    xsi:schemaLocation="
-                http://www.springframework.org/schema/beans
-                http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-                http://www.springframework.org/schema/tx
-                http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
-                http://www.springframework.org/schema/context
-                http://www.springframework.org/schema/context/spring-context-2.5.xsd">
-
-    <!-- 
-        // Note: obviously it is not possible to have a mix of 'urlMappings' and annotated configuration.
-    -->
-    <context:annotation-config />
-
-    <context:component-scan base-package="ch.systemsx.cisd.openbis" use-default-filters="false">
-        <context:include-filter type="annotation"
-            expression="org.springframework.stereotype.Controller" />
-    </context:component-scan>
-
-    <context:component-scan base-package="ch.ethz.sis.openbis" use-default-filters="false">
-        <context:include-filter type="annotation"
-            expression="org.springframework.stereotype.Controller" />
-    </context:component-scan>
-
-    <!-- 
-        // Commons-based implementation of the MultipartResolver interface.
-        // Needs 'commons-fileupload' library.
-    -->
-    <bean id="multipartResolver"
-        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
-        <!-- Default is 10240 (10kB). Set to 1MB (1048576). -->
-        <property name="maxInMemorySize" value="1048576" />
-    </bean>
-</beans>
diff --git a/rtd_phosphonetx/resource/server/web.xml b/rtd_phosphonetx/resource/server/web.xml
deleted file mode 100644
index 89daa03c6f5829e2eed55c86ea4bee7ebff597ea..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/resource/server/web.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE web-app [
-    <!ENTITY common SYSTEM "web-common.xml">
-    <!ENTITY biscommon SYSTEM "bis-common.xml">
-]>
-<web-app>
-
-    <display-name>openBIS</display-name>
-    <description>openBIS server</description>
-
-    &common;
-
-    <context-param>
-        <param-name>contextConfigLocation</param-name>
-        <param-value>classpath:proteomics-applicationContext.xml</param-value>
-        <description>File for Spring beans.</description>
-    </context-param>
-    
-    <context-param>
-        <param-name>infoClass</param-name>
-        <param-value>ch.systemsx.cisd.openbis.plugin.proteomics.BuildAndEnvironmentInfo</param-value>
-    </context-param>
-
-    &biscommon;
-         
-  <!--
-    // Additional servlets
-  -->
-
-</web-app>
diff --git a/rtd_phosphonetx/settings.gradle b/rtd_phosphonetx/settings.gradle
deleted file mode 100644
index 33440dae995c32d3e498e18b39ed5c1e0f9af0b5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/settings.gradle
+++ /dev/null
@@ -1 +0,0 @@
-includeFlat 'commonbase', 'common', 'openbis_api', 'openbis-common', 'authentication', 'dbmigration', 'openbis', 'datastore_server'
diff --git a/rtd_phosphonetx/source/core-plugins/core-plugins.properties b/rtd_phosphonetx/source/core-plugins/core-plugins.properties
deleted file mode 100644
index 5da5ded3e0bc0845e30c86047ccd9823985a9e7c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/core-plugins.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Properties for enabling/disabling core plugins
-#
-
-# 
-# List of comma-separated regular expressions. If a technology (i.e. module) from the core plugins
-# folder is matching one of these regular expressions it is enabled.
-# By default all technologies are disabled.
-#
-enabled-modules = proteomics, dev-.*
-
-#
-# List of comma-separated full core plugin names (or prefixes) of core plugins to be disabled 
-# even though they are in an enabled technology.
-#
-#disabled-core-plugins = 
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/core-plugins/dev-demo/1/dss/reporting-plugins/demo-proteomics-aggregation/plugin.properties b/rtd_phosphonetx/source/core-plugins/dev-demo/1/dss/reporting-plugins/demo-proteomics-aggregation/plugin.properties
deleted file mode 100644
index ca4567559765fcec82d1bbcc1d1785353bd6287b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/dev-demo/1/dss/reporting-plugins/demo-proteomics-aggregation/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-label = Demo Proteomics Aggregation
-class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.jython.JythonAggregationService
-script-path = script.py
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/core-plugins/dev-demo/1/dss/reporting-plugins/demo-proteomics-aggregation/script.py b/rtd_phosphonetx/source/core-plugins/dev-demo/1/dss/reporting-plugins/demo-proteomics-aggregation/script.py
deleted file mode 100644
index d9b0b2609501a8423a478219c01302f841cd8ab3..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/dev-demo/1/dss/reporting-plugins/demo-proteomics-aggregation/script.py
+++ /dev/null
@@ -1,122 +0,0 @@
-from java.util import ArrayList
-from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchCriteria
-from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchSubCriteria
-from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClause
-from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClauseAttribute
-from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import SearchOperator
-
-BIO_EXPERIMENT = "Biological Experiment"
-BIO_SAMPLE = "Biological Sample"
-MS_SAMPLE = "MS Injection Sample"
-SEARCH_EXPERIMENT = "Search Experiment"
-SEARCH_EXPERIMENT_PERM_ID = "Search Experiment Perm ID"
-ACCESION_NUMBER = "Accession Number"
-DESCRIPTION = "Protein Description"
-
-def countFiles(node):
-    sum = 1
-    if node.isDirectory():
-        for child in node.getChildNodes():
-            sum = sum + countFiles(child)
-    return sum
-
-
-def gatherExperimentsAndSamples(space):
-    bioSample2ExperimentDict = {}
-    msInjectionSample2bioSamplesDict = {}
-    searchExperiment2msInjectionSamplesDict = {}
-    searchExperimentsByPermIdDict = {}
-    searchCriteria = SearchCriteria()
-    subCriteria = SearchCriteria()
-    subCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.TYPE, "BIO*"))
-    searchCriteria.addSubCriteria(SearchSubCriteria.createExperimentCriteria(subCriteria))
-    bioSamples = searchService.searchForSamples(searchCriteria)
-    searchCriteria = SearchCriteria()
-    searchCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.TYPE, "MS_INJECTION"))
-    subCriteria = SearchCriteria()
-    subCriteria.operator = SearchOperator.MATCH_ANY_CLAUSES
-    for sample in bioSamples:
-        if space == sample.space:
-            bioSample2ExperimentDict[sample.sampleIdentifier] = sample.experiment.experimentIdentifier
-            subCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE, sample.code))
-    
-    if len(bioSample2ExperimentDict) > 0:
-        searchCriteria.addSubCriteria(SearchSubCriteria.createSampleParentCriteria(subCriteria))
-        msInjectionSamples = searchService.searchForSamples(searchCriteria)
-        if len(msInjectionSamples) > 0:
-            searchCriteria = SearchCriteria()
-            searchCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.TYPE, "SEARCH"))
-            subCriteria = SearchCriteria()
-            subCriteria.operator = SearchOperator.MATCH_ANY_CLAUSES
-            for sample in msInjectionSamples:
-                msInjectionSample2bioSamplesDict[sample.sampleIdentifier] = sample.parentSampleIdentifiers
-                subCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE, sample.code))
-            searchCriteria.addSubCriteria(SearchSubCriteria.createSampleParentCriteria(subCriteria))
-            searchSamples = searchService.searchForSamples(searchCriteria)
-            for sample in searchSamples:
-                experiment = sample.experiment
-                searchExperimentsByPermIdDict[experiment.permId] = experiment
-                expId = experiment.experimentIdentifier
-                for msInjectionSample in sample.parentSampleIdentifiers:
-                    if expId in searchExperiment2msInjectionSamplesDict:
-                        searchExperiment2msInjectionSamplesDict[expId].append(msInjectionSample)
-                    else:
-                        searchExperiment2msInjectionSamplesDict[expId] = [msInjectionSample]
-    return bioSample2ExperimentDict, msInjectionSample2bioSamplesDict, \
-           searchExperiment2msInjectionSamplesDict, searchExperimentsByPermIdDict
-           
-def createPermIdList(searchExperimentsByPermIdDict):
-    permIds = ""
-    for exp in searchExperimentsByPermIdDict.values():
-        if len(permIds) > 0:
-            permIds = permIds + ", "
-        permIds = permIds + "'" + exp.permId + "'"
-    return permIds
-
-def aggregate(parameters, tableBuilder):
-    space = parameters.get('space').upper()
-    bioSample2ExperimentDict, msInjectionSample2bioSamplesDict, \
-            searchExperiment2msInjectionSamplesDict, searchExperimentsByPermIdDict \
-            = gatherExperimentsAndSamples(space)
-    
-    tableBuilder.addHeader(BIO_EXPERIMENT)
-    tableBuilder.addHeader(BIO_SAMPLE)
-    tableBuilder.addHeader(MS_SAMPLE)
-    tableBuilder.addHeader(SEARCH_EXPERIMENT)
-    tableBuilder.addHeader(SEARCH_EXPERIMENT_PERM_ID)
-    tableBuilder.addHeader(ACCESION_NUMBER)
-    tableBuilder.addHeader(DESCRIPTION)
-    if len(searchExperimentsByPermIdDict) == 0:
-        return
-    protein = '%' + parameters.get('protein') + '%'
-    permIds = createPermIdList(searchExperimentsByPermIdDict)
-    result = queryService.select("proteomics-db", 
-                                 """select e.perm_id, accession_number, description 
-                                    from experiments as e join data_sets as d on d.expe_id = e.id 
-                                    join proteins as p on p.dase_id = d.id 
-                                    join identified_proteins as ip on ip.prot_id = p.id
-                                    join sequences as s on ip.sequ_id = s.id
-                                    join protein_references as pr on s.prre_id = pr.id 
-                                    where e.perm_id in (""" 
-                                    + permIds + 
-                                    """) and (accession_number like ?{1} or description like ?{1}) 
-                                    order by perm_id""", 
-                                [protein])
-    for resultRow in result:
-        permId = resultRow.get('perm_id')
-        if (permId in searchExperimentsByPermIdDict):
-            experiment = searchExperimentsByPermIdDict[permId]
-            expId = experiment.experimentIdentifier
-            msInjectionSamples = searchExperiment2msInjectionSamplesDict[expId]
-            for msInjectionSample in msInjectionSamples:
-                bioSamples = msInjectionSample2bioSamplesDict[msInjectionSample]
-                for bioSample in bioSamples:
-                    bioExperiment = bioSample2ExperimentDict[bioSample]
-                    row = tableBuilder.addRow()
-                    row.setCell(BIO_EXPERIMENT, bioExperiment)
-                    row.setCell(BIO_SAMPLE, bioSample)
-                    row.setCell(MS_SAMPLE, msInjectionSample)
-                    row.setCell(SEARCH_EXPERIMENT, expId)
-                    row.setCell(SEARCH_EXPERIMENT_PERM_ID, permId)
-                    row.setCell(ACCESION_NUMBER, resultRow.get('accession_number'))
-                    row.setCell(DESCRIPTION, resultRow.get('description'))
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics-optional/1/as/initialize-master-data.py b/rtd_phosphonetx/source/core-plugins/proteomics-optional/1/as/initialize-master-data.py
deleted file mode 100644
index 0b4de321b86887fcc911f8be125081c0d77b3026..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/proteomics-optional/1/as/initialize-master-data.py
+++ /dev/null
@@ -1,81 +0,0 @@
-import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.DataType as DataType
-
-tr = service.transaction()
-
-file_type_HTML = tr.getOrCreateNewFileFormatType('HTML')
-file_type_HTML.setDescription('HTML File')
-
-file_type_MZDATA = tr.getOrCreateNewFileFormatType('MZDATA')
-file_type_MZDATA.setDescription('Mass spectrometry data format.')
-
-file_type_MZML = tr.getOrCreateNewFileFormatType('MZML')
-file_type_MZML.setDescription('Mass spectrometry data format. \
-Unifiying mzXML and mzData formats, as released at the \
-2008 American Society for Mass Spectrometry Meeting.')
-
-file_type_MZXML = tr.getOrCreateNewFileFormatType('MZXML')
-file_type_MZXML.setDescription('Mass spectrometry data format.')
-
-file_type_RAW = tr.getOrCreateNewFileFormatType('RAW')
-file_type_RAW.setDescription('Proprietary file format for Thermo mass sepectrometry data.')
-
-file_type_TGZ = tr.getOrCreateNewFileFormatType('TGZ')
-file_type_TGZ.setDescription('gzipped tar')
-
-file_type_WIFF = tr.getOrCreateNewFileFormatType('WIFF')
-file_type_WIFF.setDescription('Proprieatry file format for Sciex and Agilent mass spectrometry data.')
-
-file_type_ZIP = tr.getOrCreateNewFileFormatType('ZIP')
-file_type_ZIP.setDescription('A zipped package')
-
-vocabulary_TREATMENT_TYPE = tr.getOrCreateNewVocabulary('TREATMENT_TYPE')
-
-vocabulary_term_TREATMENT_TYPE_PH = tr.createNewVocabularyTerm('PH')
-vocabulary_term_TREATMENT_TYPE_PH.setDescription(None)
-vocabulary_term_TREATMENT_TYPE_PH.setUrl(None)
-vocabulary_term_TREATMENT_TYPE_PH.setLabel('ph')
-vocabulary_term_TREATMENT_TYPE_PH.setOrdinal(1)
-vocabulary_TREATMENT_TYPE.addTerm(vocabulary_term_TREATMENT_TYPE_PH)
-
-exp_type_BIOLOGICAL_EXPERIMENT = tr.getOrCreateNewExperimentType('BIOLOGICAL_EXPERIMENT')
-exp_type_BIOLOGICAL_EXPERIMENT.setDescription('A biological experiment')
-
-exp_type_MS_INJECT = tr.getOrCreateNewExperimentType('MS_INJECT')
-exp_type_MS_INJECT.setDescription('MS injection experiment')
-
-exp_type_MS_QUANTIFICATION = tr.getOrCreateNewExperimentType('MS_QUANTIFICATION')
-exp_type_MS_QUANTIFICATION.setDescription('Quantification of LC-MS data')
-
-data_set_type_MZXML_DATA = tr.getOrCreateNewDataSetType('MZXML_DATA')
-data_set_type_MZXML_DATA.setDescription('standardized format for ms data')
-
-data_set_type_RAW_DATA = tr.getOrCreateNewDataSetType('RAW_DATA')
-data_set_type_RAW_DATA.setDescription(None)
-
-prop_type_PARENTDATASETCODES = tr.getOrCreateNewPropertyType('PARENT-DATA-SET-CODES', DataType.VARCHAR)
-prop_type_PARENTDATASETCODES.setLabel('Parent Dataset Codes')
-prop_type_PARENTDATASETCODES.setManagedInternally(False)
-prop_type_PARENTDATASETCODES.setInternalNamespace(False)
-
-prop_type_TREATMENT_TYPE1 = tr.getOrCreateNewPropertyType('TREATMENT_TYPE1', DataType.CONTROLLEDVOCABULARY)
-prop_type_TREATMENT_TYPE1.setLabel('Treatment Type 1')
-prop_type_TREATMENT_TYPE1.setManagedInternally(False)
-prop_type_TREATMENT_TYPE1.setInternalNamespace(False)
-
-prop_type_TREATMENT_TYPE1.setVocabulary(vocabulary_TREATMENT_TYPE)
-
-prop_type_TREATMENT_TYPE2 = tr.getOrCreateNewPropertyType('TREATMENT_TYPE2', DataType.CONTROLLEDVOCABULARY)
-prop_type_TREATMENT_TYPE2.setLabel('Treatment Type 2')
-prop_type_TREATMENT_TYPE2.setManagedInternally(False)
-prop_type_TREATMENT_TYPE2.setInternalNamespace(False)
-
-prop_type_TREATMENT_TYPE2.setVocabulary(vocabulary_TREATMENT_TYPE)
-
-prop_type_TREATMENT_TYPE3 = tr.getOrCreateNewPropertyType('TREATMENT_TYPE3', DataType.CONTROLLEDVOCABULARY)
-prop_type_TREATMENT_TYPE3.setLabel('Treatment Type 3')
-prop_type_TREATMENT_TYPE3.setManagedInternally(False)
-prop_type_TREATMENT_TYPE3.setInternalNamespace(False)
-
-prop_type_TREATMENT_TYPE3.setVocabulary(vocabulary_TREATMENT_TYPE)
-
-
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics-optional/package-to-dist b/rtd_phosphonetx/source/core-plugins/proteomics-optional/package-to-dist
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics/1/as/dss-data-sources/DSS1/plugin.properties b/rtd_phosphonetx/source/core-plugins/proteomics/1/as/dss-data-sources/DSS1/plugin.properties
deleted file mode 100644
index eb43003949a57dd40b0b2d0563be65f3eadc39b8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/proteomics/1/as/dss-data-sources/DSS1/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Data Store Server data source for the database storing protein identification and quantification results.
-#
-# Variables:
-#   proteomics-basic-database-name
-#     First part of the database name. Default value is 'proteomics'.
-#   proteomics-database-kind
-#     Second part of the database name. Default value is 'productive'.
-#   proteomics-database-owner
-#     Owner of the proteomics database. Default value is an empty string (i.e. the user starting up DSS).
-#   proteomics-database-password
-#     Password of the owner of the proteomics database. Default value is an empty string.
-#
-database-driver = org.postgresql.Driver
-database-url = jdbc:postgresql://localhost/${proteomics-basic-database-name:proteomics}_${proteomics-database-kind:productive}
-atabase-username = ${proteomics-database-owner:}
-database-password = ${proteomics-database-password:}
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics/1/as/initialize-master-data.py b/rtd_phosphonetx/source/core-plugins/proteomics/1/as/initialize-master-data.py
deleted file mode 100644
index 1825b0950e36e837c31bea25cfc0ea63b9527390..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/proteomics/1/as/initialize-master-data.py
+++ /dev/null
@@ -1,42 +0,0 @@
-import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.DataType as DataType
-
-tr = service.transaction()
-
-vocabulary_TREATMENT_TYPE = tr.getOrCreateNewVocabulary('TREATMENT_TYPE')
-vocabulary_TREATMENT_TYPE.setDescription('Type of treatment of a biological sample.')
-vocabulary_TREATMENT_TYPE.setUrlTemplate(None)
-vocabulary_TREATMENT_TYPE.setManagedInternally(False)
-vocabulary_TREATMENT_TYPE.setInternalNamespace(False)
-vocabulary_TREATMENT_TYPE.setChosenFromList(True)
-
-prop_type_NOT_PROCESSED = tr.getOrCreateNewPropertyType('NOT_PROCESSED', DataType.VARCHAR)
-prop_type_NOT_PROCESSED.setLabel('Not Processed')
-prop_type_NOT_PROCESSED.setDescription('Reason why prot.xml file has not been processed.')
-prop_type_NOT_PROCESSED.setManagedInternally(False)
-prop_type_NOT_PROCESSED.setInternalNamespace(False)
-
-exp_type_MS_SEARCH = tr.getOrCreateNewExperimentType('MS_SEARCH')
-exp_type_MS_SEARCH.setDescription('MS_SEARCH experiment')
-
-assignment_MS_SEARCH_NOT_PROCESSED = tr.assignPropertyType(exp_type_MS_SEARCH, prop_type_NOT_PROCESSED)
-assignment_MS_SEARCH_NOT_PROCESSED.setMandatory(False)
-assignment_MS_SEARCH_NOT_PROCESSED.setSection(None)
-assignment_MS_SEARCH_NOT_PROCESSED.setPositionInForms(1)
-
-samp_type_MS_INJECTION = tr.getOrCreateNewSampleType('MS_INJECTION')
-samp_type_MS_INJECTION.setDescription('injection of a biological sample into a MS')
-samp_type_MS_INJECTION.setListable(True)
-samp_type_MS_INJECTION.setSubcodeUnique(False)
-samp_type_MS_INJECTION.setAutoGeneratedCode(False)
-samp_type_MS_INJECTION.setGeneratedCodePrefix('S')
-
-samp_type_SEARCH = tr.getOrCreateNewSampleType('SEARCH')
-samp_type_SEARCH.setDescription('pointer to an MS_INJECTION sample used as placeholder for searches')
-samp_type_SEARCH.setListable(True)
-samp_type_SEARCH.setSubcodeUnique(False)
-samp_type_SEARCH.setAutoGeneratedCode(False)
-samp_type_SEARCH.setGeneratedCodePrefix('S')
-
-data_set_type_PROT_RESULT = tr.getOrCreateNewDataSetType('PROT_RESULT')
-data_set_type_PROT_RESULT.setDescription('protXML file')
-
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics/1/as/miscellaneous/proteomics-application/plugin.properties b/rtd_phosphonetx/source/core-plugins/proteomics/1/as/miscellaneous/proteomics-application/plugin.properties
deleted file mode 100644
index 6d34ded45d3cb11097159fd4f351fb796f1364f6..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/proteomics/1/as/miscellaneous/proteomics-application/plugin.properties
+++ /dev/null
@@ -1 +0,0 @@
-proteomics-application-context-required = true
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/data-sources/proteomics-db/plugin.properties b/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/data-sources/proteomics-db/plugin.properties
deleted file mode 100644
index 664b20a45a8b5b162aa945d2404a33465c9c89fe..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/data-sources/proteomics-db/plugin.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# Data source for the database storing protein identification and quantification results.
-#
-# Variables:
-#   proteomics-database.url-host-part
-#     The host and optionally port. Default is 'localhost'.
-#   proteomics-basic-database-name
-#     First part of the database name. Default value is 'proteomics'.
-#   proteomics-database-kind
-#     Second part of the database name. Default value is 'productive'.
-#   proteomics-sql-root-folder
-#     Path to root folder of SQL scripts. Default value is an empty string.
-#   proteomics-database-owner
-#     Owner of the proteomics database. Default value is an empty string (i.e. the user starting up DSS).
-#   proteomics-database-password
-#     Password of the owner of the proteomics database. Default value is an empty string.
-#
-version-holder-class = ch.systemsx.cisd.openbis.etlserver.proteomics.DatabaseVersionHolder
-databaseEngineCode = postgresql
-urlHostPart = ${proteomics-database.url-host-part:localhost}
-basicDatabaseName = ${proteomics-basic-database-name:proteomics}
-databaseKind = ${proteomics-database-kind:productive}
-scriptFolder = ${proteomics-sql-root-folder:}sql/proteomics
-owner = ${proteomics-database-owner:}
-password = ${proteomics-database-password:}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/drop-boxes/ms-injection/plugin.properties b/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/drop-boxes/ms-injection/plugin.properties
deleted file mode 100644
index bff82ed31c5b6ee6c3a746c130ffad6bf808265b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/drop-boxes/ms-injection/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# 
-# Drop box for MS spectra data.
-#
-# Variables:
-#   incoming-root-dir
-#     Path to the directory which contains incoming directories for drop boxes.
-incoming-dir = ${incoming-root-dir}/incoming-ms-injection
-
-# Determines when the incoming data should be considered complete and ready to be processed.
-# Allowed values: 
-#  - auto-detection - when no write access will be detected for a specified 'quite-period'
-#  - marker-file		- when an appropriate marker file for the data exists. 
-# The default value is 'marker-file'.
-incoming-data-completeness-condition = auto-detection
-
-data-set-info-extractor = ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection
-storage-processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
-type-extractor = ch.systemsx.cisd.openbis.etlserver.proteomics.TypeExtractorForMSInjection
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/drop-boxes/ms-search/plugin.properties b/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/drop-boxes/ms-search/plugin.properties
deleted file mode 100644
index da2bca2bce85639ff3105fa00c235594232f4804..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/drop-boxes/ms-search/plugin.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-# 
-# Drop box for protein identification and quantification data.
-#
-# Variables:
-#   incoming-root-dir
-#     Path to the directory which contains incoming directories for drop boxes.
-#
-# This drop box assumes that data source 'proteomics-db' has been defined.
-#
-incoming-dir = ${incoming-root-dir}/incoming-ms-search
-
-incoming-data-completeness-condition = auto-detection
-
-data-set-info-extractor = ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForProteinResults
-data-set-info-extractor.separator = +
-
-type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-type-extractor.file-format-type = XML
-type-extractor.locator-type = RELATIVE_LOCATION
-type-extractor.data-set-type = PROT_RESULT
-type-extractor.is-measured = false
-
-storage-processor = ch.systemsx.cisd.openbis.etlserver.proteomics.StorageProcessorWithResultDataSetUploader
-storage-processor.processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
-storage-processor.assuming-extended-prot-xml = false
-storage-processor.database.basic-name = ${proteomics-db.basicDatabaseName}
-storage-processor.database.kind = ${proteomics-db.databaseKind}
-storage-processor.database.owner = ${proteomics-db.owner}
-storage-processor.database.password = ${proteomics-db.password}
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/maintenance-tasks/proteomics-db-clean-up/plugin.properties b/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/maintenance-tasks/proteomics-db-clean-up/plugin.properties
deleted file mode 100644
index 36cd4bae6c223aacdaf381679d03a9e788a64a85..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/core-plugins/proteomics/1/dss/maintenance-tasks/proteomics-db-clean-up/plugin.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Maintenance task which does a database clean up by deleting all data sets deleted in application server. 
-# This task assumes that data source 'proteomics-db' has been defined. 
-#
-class = ch.systemsx.cisd.etlserver.plugins.DeleteFromExternalDBMaintenanceTask
-interval = 300
-data-source = proteomics-db
-data-set-table-name = data_sets 
diff --git a/rtd_phosphonetx/source/core-plugins/proteomics/package-to-dist b/rtd_phosphonetx/source/core-plugins/proteomics/package-to-dist
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/rtd_phosphonetx/source/html/demoapp/body-style.css b/rtd_phosphonetx/source/html/demoapp/body-style.css
deleted file mode 100644
index 7a5324bef86a861b7415bbc2a35318c0c1c99fa1..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/html/demoapp/body-style.css
+++ /dev/null
@@ -1,14 +0,0 @@
-body { font: 12px "Verdana", sans-serif; }
-
-h1 { font: 16px; }
-h3 { font: 12px; }
-
-div#vis { padding-top: 10px;}
-div#vis div { padding-top: 2px;}
-
-.headers { background-color: #eee; }
-
-div#vis tr:nth-child(even) { background-color: #EEE; }
-div#vis tr:nth-child(odd) { background-color: white; }
-
-#main form { padding-top: 10px;}
diff --git a/rtd_phosphonetx/source/html/demoapp/button.css b/rtd_phosphonetx/source/html/demoapp/button.css
deleted file mode 100644
index b0c9944b1891ae36866b9a1a8918d45825a82fc0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/html/demoapp/button.css
+++ /dev/null
@@ -1,52 +0,0 @@
-button {
-  font: 14px "Trebuchet MS";
-  background-color: #222;
-  background-image: -moz-linear-gradient(top, rgba(255,255,255,.25), rgba(255,255,255,.11));
-  background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, rgba(255,255,255,.25)),color-stop(1, rgba(255,255,255,.11)));
-  background-image: -webkit-linear-gradient(rgba(255,255,255,.25), rgba(255,255,255,.11));
-  color: #fff;
-  text-rendering: optimizeLegibility;
-  text-shadow: 0 -1px 1px #222;
-  padding: 3px 5px 3px 5px;
-  border: 0;
-  border-radius: 0;
-  border-bottom: 1px solid #222;
-  margin: 0;
-  -moz-box-shadow: 0 1px 3px #999;
-  -webkit-box-shadow: 0 1px 3px #999;
-  box-shadow: 0 1px 3px #999;
-}
-
-button.first {
-  border-top-left-radius: 5px;
-  border-bottom-left-radius: 5px;
-}
-
-button.last {
-  border-top-right-radius: 5px;
-  border-bottom-right-radius: 5px;
-}
-
-button.active {
-  background-color: rgb(65,102,133);
-}
-
-button:hover {
-  background-color: steelblue;
-}
-
-input {
-  font: 14px "Trebuchet MS";
-  background-image: -moz-linear-gradient(top, rgba(255,255,255,.25), rgba(255,255,255,.11));
-  background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, rgba(255,255,255,.25)),color-stop(1, rgba(255,255,255,.11)));
-  background-image: -webkit-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,.1));
-  color: #000;
-  text-rendering: optimizeLegibility;
-  padding: 3px 5px 3px 5px;
-  border: 0;
-  border-radius: 0;
-  margin: 0;
-  -moz-box-shadow: 0 1px 3px #999;
-  -webkit-box-shadow: 0 1px 3px #999;
-  box-shadow: 0 1px 3px #999;
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/html/demoapp/d3.js b/rtd_phosphonetx/source/html/demoapp/d3.js
deleted file mode 100755
index 13abb6dbc6f9665c005209b8e09d0dc97266d1f7..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/html/demoapp/d3.js
+++ /dev/null
@@ -1,4013 +0,0 @@
-(function(){if (!Date.now) Date.now = function() {
-  return +new Date;
-};
-try {
-  document.createElement("div").style.setProperty("opacity", 0, "");
-} catch (error) {
-  var d3_style_prototype = CSSStyleDeclaration.prototype,
-      d3_style_setProperty = d3_style_prototype.setProperty;
-  d3_style_prototype.setProperty = function(name, value, priority) {
-    d3_style_setProperty.call(this, name, value + "", priority);
-  };
-}
-d3 = {version: "2.1.3"}; // semver
-var d3_arraySubclass = [].__proto__?
-
-// Until ECMAScript supports array subclassing, prototype injection works well.
-function(array, prototype) {
-  array.__proto__ = prototype;
-}:
-
-// And if your browser doesn't support __proto__, we'll use direct extension.
-function(array, prototype) {
-  for (var property in prototype) array[property] = prototype[property];
-};
-function d3_this() {
-  return this;
-}
-d3.functor = function(v) {
-  return typeof v === "function" ? v : function() { return v; };
-};
-// A getter-setter method that preserves the appropriate `this` context.
-d3.rebind = function(object, method) {
-  return function() {
-    var x = method.apply(object, arguments);
-    return arguments.length ? object : x;
-  };
-};
-d3.ascending = function(a, b) {
-  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-};
-d3.descending = function(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-};
-d3.min = function(array, f) {
-  var i = -1,
-      n = array.length,
-      a,
-      b;
-  if (arguments.length === 1) {
-    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
-    while (++i < n) if ((b = array[i]) != null && a > b) a = b;
-  } else {
-    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
-    while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
-  }
-  return a;
-};
-d3.max = function(array, f) {
-  var i = -1,
-      n = array.length,
-      a,
-      b;
-  if (arguments.length === 1) {
-    while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
-    while (++i < n) if ((b = array[i]) != null && b > a) a = b;
-  } else {
-    while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
-    while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
-  }
-  return a;
-};
-d3.sum = function(array, f) {
-  var s = 0,
-      n = array.length,
-      a,
-      i = -1;
-
-  if (arguments.length === 1) {
-    while (++i < n) if (!isNaN(a = +array[i])) s += a;
-  } else {
-    while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
-  }
-
-  return s;
-};
-// R-7 per <http://en.wikipedia.org/wiki/Quantile>
-d3.quantile = function(values, p) {
-  var H = (values.length - 1) * p + 1,
-      h = Math.floor(H),
-      v = values[h - 1],
-      e = H - h;
-  return e ? v + e * (values[h] - v) : v;
-};
-d3.zip = function() {
-  if (!(n = arguments.length)) return [];
-  for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m;) {
-    for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n;) {
-      zip[j] = arguments[j][i];
-    }
-  }
-  return zips;
-};
-
-function d3_zipLength(d) {
-  return d.length;
-}
-// Locate the insertion point for x in a to maintain sorted order. The
-// arguments lo and hi may be used to specify a subset of the array which should
-// be considered; by default the entire array is used. If x is already present
-// in a, the insertion point will be before (to the left of) any existing
-// entries. The return value is suitable for use as the first argument to
-// `array.splice` assuming that a is already sorted.
-//
-// The returned insertion point i partitions the array a into two halves so that
-// all v < x for v in a[lo:i] for the left side and all v >= x for v in a[i:hi]
-// for the right side.
-d3.bisectLeft = function(a, x, lo, hi) {
-  if (arguments.length < 3) lo = 0;
-  if (arguments.length < 4) hi = a.length;
-  while (lo < hi) {
-    var mid = (lo + hi) >> 1;
-    if (a[mid] < x) lo = mid + 1;
-    else hi = mid;
-  }
-  return lo;
-};
-
-// Similar to bisectLeft, but returns an insertion point which comes after (to
-// the right of) any existing entries of x in a.
-//
-// The returned insertion point i partitions the array into two halves so that
-// all v <= x for v in a[lo:i] for the left side and all v > x for v in a[i:hi]
-// for the right side.
-d3.bisect =
-d3.bisectRight = function(a, x, lo, hi) {
-  if (arguments.length < 3) lo = 0;
-  if (arguments.length < 4) hi = a.length;
-  while (lo < hi) {
-    var mid = (lo + hi) >> 1;
-    if (x < a[mid]) hi = mid;
-    else lo = mid + 1;
-  }
-  return lo;
-};
-d3.first = function(array, f) {
-  var i = 0,
-      n = array.length,
-      a = array[0],
-      b;
-  if (arguments.length === 1) f = d3.ascending;
-  while (++i < n) {
-    if (f.call(array, a, b = array[i]) > 0) {
-      a = b;
-    }
-  }
-  return a;
-};
-d3.last = function(array, f) {
-  var i = 0,
-      n = array.length,
-      a = array[0],
-      b;
-  if (arguments.length === 1) f = d3.ascending;
-  while (++i < n) {
-    if (f.call(array, a, b = array[i]) <= 0) {
-      a = b;
-    }
-  }
-  return a;
-};
-d3.nest = function() {
-  var nest = {},
-      keys = [],
-      sortKeys = [],
-      sortValues,
-      rollup;
-
-  function map(array, depth) {
-    if (depth >= keys.length) return rollup
-        ? rollup.call(nest, array) : (sortValues
-        ? array.sort(sortValues)
-        : array);
-
-    var i = -1,
-        n = array.length,
-        key = keys[depth++],
-        keyValue,
-        object,
-        o = {};
-
-    while (++i < n) {
-      if ((keyValue = key(object = array[i])) in o) {
-        o[keyValue].push(object);
-      } else {
-        o[keyValue] = [object];
-      }
-    }
-
-    for (keyValue in o) {
-      o[keyValue] = map(o[keyValue], depth);
-    }
-
-    return o;
-  }
-
-  function entries(map, depth) {
-    if (depth >= keys.length) return map;
-
-    var a = [],
-        sortKey = sortKeys[depth++],
-        key;
-
-    for (key in map) {
-      a.push({key: key, values: entries(map[key], depth)});
-    }
-
-    if (sortKey) a.sort(function(a, b) {
-      return sortKey(a.key, b.key);
-    });
-
-    return a;
-  }
-
-  nest.map = function(array) {
-    return map(array, 0);
-  };
-
-  nest.entries = function(array) {
-    return entries(map(array, 0), 0);
-  };
-
-  nest.key = function(d) {
-    keys.push(d);
-    return nest;
-  };
-
-  // Specifies the order for the most-recently specified key.
-  // Note: only applies to entries. Map keys are unordered!
-  nest.sortKeys = function(order) {
-    sortKeys[keys.length - 1] = order;
-    return nest;
-  };
-
-  // Specifies the order for leaf values.
-  // Applies to both maps and entries array.
-  nest.sortValues = function(order) {
-    sortValues = order;
-    return nest;
-  };
-
-  nest.rollup = function(f) {
-    rollup = f;
-    return nest;
-  };
-
-  return nest;
-};
-d3.keys = function(map) {
-  var keys = [];
-  for (var key in map) keys.push(key);
-  return keys;
-};
-d3.values = function(map) {
-  var values = [];
-  for (var key in map) values.push(map[key]);
-  return values;
-};
-d3.entries = function(map) {
-  var entries = [];
-  for (var key in map) entries.push({key: key, value: map[key]});
-  return entries;
-};
-d3.permute = function(array, indexes) {
-  var permutes = [],
-      i = -1,
-      n = indexes.length;
-  while (++i < n) permutes[i] = array[indexes[i]];
-  return permutes;
-};
-d3.merge = function(arrays) {
-  return Array.prototype.concat.apply([], arrays);
-};
-d3.split = function(array, f) {
-  var arrays = [],
-      values = [],
-      value,
-      i = -1,
-      n = array.length;
-  if (arguments.length < 2) f = d3_splitter;
-  while (++i < n) {
-    if (f.call(values, value = array[i], i)) {
-      values = [];
-    } else {
-      if (!values.length) arrays.push(values);
-      values.push(value);
-    }
-  }
-  return arrays;
-};
-
-function d3_splitter(d) {
-  return d == null;
-}
-function d3_collapse(s) {
-  return s.replace(/(^\s+)|(\s+$)/g, "").replace(/\s+/g, " ");
-}
-/**
- * @param {number} start
- * @param {number=} stop
- * @param {number=} step
- */
-d3.range = function(start, stop, step) {
-  if (arguments.length < 3) {
-    step = 1;
-    if (arguments.length < 2) {
-      stop = start;
-      start = 0;
-    }
-  }
-  if ((stop - start) / step == Infinity) throw new Error("infinite range");
-  var range = [],
-       i = -1,
-       j;
-  if (step < 0) while ((j = start + step * ++i) > stop) range.push(j);
-  else while ((j = start + step * ++i) < stop) range.push(j);
-  return range;
-};
-d3.requote = function(s) {
-  return s.replace(d3_requote_re, "\\$&");
-};
-
-var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
-d3.round = function(x, n) {
-  return n
-      ? Math.round(x * Math.pow(10, n)) * Math.pow(10, -n)
-      : Math.round(x);
-};
-d3.xhr = function(url, mime, callback) {
-  var req = new XMLHttpRequest;
-  if (arguments.length < 3) callback = mime;
-  else if (mime && req.overrideMimeType) req.overrideMimeType(mime);
-  req.open("GET", url, true);
-  req.onreadystatechange = function() {
-    if (req.readyState === 4) callback(req.status < 300 ? req : null);
-  };
-  req.send(null);
-};
-d3.text = function(url, mime, callback) {
-  function ready(req) {
-    callback(req && req.responseText);
-  }
-  if (arguments.length < 3) {
-    callback = mime;
-    mime = null;
-  }
-  d3.xhr(url, mime, ready);
-};
-d3.json = function(url, callback) {
-  d3.text(url, "application/json", function(text) {
-    callback(text ? JSON.parse(text) : null);
-  });
-};
-d3.html = function(url, callback) {
-  d3.text(url, "text/html", function(text) {
-    if (text != null) { // Treat empty string as valid HTML.
-      var range = document.createRange();
-      range.selectNode(document.body);
-      text = range.createContextualFragment(text);
-    }
-    callback(text);
-  });
-};
-d3.xml = function(url, mime, callback) {
-  function ready(req) {
-    callback(req && req.responseXML);
-  }
-  if (arguments.length < 3) {
-    callback = mime;
-    mime = null;
-  }
-  d3.xhr(url, mime, ready);
-};
-d3.ns = {
-
-  prefix: {
-    svg: "http://www.w3.org/2000/svg",
-    xhtml: "http://www.w3.org/1999/xhtml",
-    xlink: "http://www.w3.org/1999/xlink",
-    xml: "http://www.w3.org/XML/1998/namespace",
-    xmlns: "http://www.w3.org/2000/xmlns/"
-  },
-
-  qualify: function(name) {
-    var i = name.indexOf(":");
-    return i < 0 ? name : {
-      space: d3.ns.prefix[name.substring(0, i)],
-      local: name.substring(i + 1)
-    };
-  }
-
-};
-/** @param {...string} types */
-d3.dispatch = function(types) {
-  var dispatch = {},
-      type;
-  for (var i = 0, n = arguments.length; i < n; i++) {
-    type = arguments[i];
-    dispatch[type] = d3_dispatch(type);
-  }
-  return dispatch;
-};
-
-function d3_dispatch(type) {
-  var dispatch = {},
-      listeners = [];
-
-  dispatch.add = function(listener) {
-    for (var i = 0; i < listeners.length; i++) {
-      if (listeners[i].listener == listener) return dispatch; // already registered
-    }
-    listeners.push({listener: listener, on: true});
-    return dispatch;
-  };
-
-  dispatch.remove = function(listener) {
-    for (var i = 0; i < listeners.length; i++) {
-      var l = listeners[i];
-      if (l.listener == listener) {
-        l.on = false;
-        listeners = listeners.slice(0, i).concat(listeners.slice(i + 1));
-        break;
-      }
-    }
-    return dispatch;
-  };
-
-  dispatch.dispatch = function() {
-    var ls = listeners; // defensive reference
-    for (var i = 0, n = ls.length; i < n; i++) {
-      var l = ls[i];
-      if (l.on) l.listener.apply(this, arguments);
-    }
-  };
-
-  return dispatch;
-};
-// TODO align
-d3.format = function(specifier) {
-  var match = d3_format_re.exec(specifier),
-      fill = match[1] || " ",
-      sign = match[3] || "",
-      zfill = match[5],
-      width = +match[6],
-      comma = match[7],
-      precision = match[8],
-      type = match[9],
-      percentage = false,
-      integer = false;
-
-  if (precision) precision = precision.substring(1);
-
-  if (zfill) {
-    fill = "0"; // TODO align = "=";
-    if (comma) width -= Math.floor((width - 1) / 4);
-  }
-
-  switch (type) {
-    case "n": comma = true; type = "g"; break;
-    case "%": percentage = true; type = "f"; break;
-    case "p": percentage = true; type = "r"; break;
-    case "d": integer = true; precision = "0"; break;
-  }
-
-  type = d3_format_types[type] || d3_format_typeDefault;
-
-  return function(value) {
-    var number = percentage ? value * 100 : +value,
-        negative = (number < 0) && (number = -number) ? "\u2212" : sign;
-
-    // Return the empty string for floats formatted as ints.
-    if (integer && (number % 1)) return "";
-
-    // Convert the input value to the desired precision.
-    value = type(number, precision);
-
-    // If the fill character is 0, the sign and group is applied after the fill.
-    if (zfill) {
-      var length = value.length + negative.length;
-      if (length < width) value = new Array(width - length + 1).join(fill) + value;
-      if (comma) value = d3_format_group(value);
-      value = negative + value;
-    }
-
-    // Otherwise (e.g., space-filling), the sign and group is applied before.
-    else {
-      if (comma) value = d3_format_group(value);
-      value = negative + value;
-      var length = value.length;
-      if (length < width) value = new Array(width - length + 1).join(fill) + value;
-    }
-    if (percentage) value += "%";
-
-    return value;
-  };
-};
-
-// [[fill]align][sign][#][0][width][,][.precision][type]
-var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;
-
-var d3_format_types = {
-  g: function(x, p) { return x.toPrecision(p); },
-  e: function(x, p) { return x.toExponential(p); },
-  f: function(x, p) { return x.toFixed(p); },
-  r: function(x, p) {
-    var n = 1 + Math.floor(1e-15 + Math.log(x) / Math.LN10);
-    return d3.round(x, p - n).toFixed(Math.max(0, Math.min(20, p - n)));
-  }
-};
-
-function d3_format_typeDefault(x) {
-  return x + "";
-}
-
-// Apply comma grouping for thousands.
-function d3_format_group(value) {
-  var i = value.lastIndexOf("."),
-      f = i >= 0 ? value.substring(i) : (i = value.length, ""),
-      t = [];
-  while (i > 0) t.push(value.substring(i -= 3, i + 3));
-  return t.reverse().join(",") + f;
-}
-/*
- * TERMS OF USE - EASING EQUATIONS
- *
- * Open source under the BSD License.
- *
- * Copyright 2001 Robert Penner
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * - Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- *
- * - Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- *
- * - Neither the name of the author nor the names of contributors may be used to
- *   endorse or promote products derived from this software without specific
- *   prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-var d3_ease_quad = d3_ease_poly(2),
-    d3_ease_cubic = d3_ease_poly(3);
-
-var d3_ease = {
-  linear: function() { return d3_ease_linear; },
-  poly: d3_ease_poly,
-  quad: function() { return d3_ease_quad; },
-  cubic: function() { return d3_ease_cubic; },
-  sin: function() { return d3_ease_sin; },
-  exp: function() { return d3_ease_exp; },
-  circle: function() { return d3_ease_circle; },
-  elastic: d3_ease_elastic,
-  back: d3_ease_back,
-  bounce: function() { return d3_ease_bounce; }
-};
-
-var d3_ease_mode = {
-  "in": function(f) { return f; },
-  "out": d3_ease_reverse,
-  "in-out": d3_ease_reflect,
-  "out-in": function(f) { return d3_ease_reflect(d3_ease_reverse(f)); }
-};
-
-d3.ease = function(name) {
-  var i = name.indexOf("-"),
-      t = i >= 0 ? name.substring(0, i) : name,
-      m = i >= 0 ? name.substring(i + 1) : "in";
-  return d3_ease_clamp(d3_ease_mode[m](d3_ease[t].apply(null, Array.prototype.slice.call(arguments, 1))));
-};
-
-function d3_ease_clamp(f) {
-  return function(t) {
-    return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
-  };
-}
-
-function d3_ease_reverse(f) {
-  return function(t) {
-    return 1 - f(1 - t);
-  };
-}
-
-function d3_ease_reflect(f) {
-  return function(t) {
-    return .5 * (t < .5 ? f(2 * t) : (2 - f(2 - 2 * t)));
-  };
-}
-
-function d3_ease_linear(t) {
-  return t;
-}
-
-function d3_ease_poly(e) {
-  return function(t) {
-    return Math.pow(t, e);
-  }
-}
-
-function d3_ease_sin(t) {
-  return 1 - Math.cos(t * Math.PI / 2);
-}
-
-function d3_ease_exp(t) {
-  return Math.pow(2, 10 * (t - 1));
-}
-
-function d3_ease_circle(t) {
-  return 1 - Math.sqrt(1 - t * t);
-}
-
-function d3_ease_elastic(a, p) {
-  var s;
-  if (arguments.length < 2) p = 0.45;
-  if (arguments.length < 1) { a = 1; s = p / 4; }
-  else s = p / (2 * Math.PI) * Math.asin(1 / a);
-  return function(t) {
-    return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p);
-  };
-}
-
-function d3_ease_back(s) {
-  if (!s) s = 1.70158;
-  return function(t) {
-    return t * t * ((s + 1) * t - s);
-  };
-}
-
-function d3_ease_bounce(t) {
-  return t < 1 / 2.75 ? 7.5625 * t * t
-      : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75
-      : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375
-      : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
-}
-d3.event = null;
-d3.interpolate = function(a, b) {
-  var i = d3.interpolators.length, f;
-  while (--i >= 0 && !(f = d3.interpolators[i](a, b)));
-  return f;
-};
-
-d3.interpolateNumber = function(a, b) {
-  b -= a;
-  return function(t) { return a + b * t; };
-};
-
-d3.interpolateRound = function(a, b) {
-  b -= a;
-  return function(t) { return Math.round(a + b * t); };
-};
-
-d3.interpolateString = function(a, b) {
-  var m, // current match
-      i, // current index
-      j, // current index (for coallescing)
-      s0 = 0, // start index of current string prefix
-      s1 = 0, // end index of current string prefix
-      s = [], // string constants and placeholders
-      q = [], // number interpolators
-      n, // q.length
-      o;
-
-  // Reset our regular expression!
-  d3_interpolate_number.lastIndex = 0;
-
-  // Find all numbers in b.
-  for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
-    if (m.index) s.push(b.substring(s0, s1 = m.index));
-    q.push({i: s.length, x: m[0]});
-    s.push(null);
-    s0 = d3_interpolate_number.lastIndex;
-  }
-  if (s0 < b.length) s.push(b.substring(s0));
-
-  // Find all numbers in a.
-  for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
-    o = q[i];
-    if (o.x == m[0]) { // The numbers match, so coallesce.
-      if (o.i) {
-        if (s[o.i + 1] == null) { // This match is followed by another number.
-          s[o.i - 1] += o.x;
-          s.splice(o.i, 1);
-          for (j = i + 1; j < n; ++j) q[j].i--;
-        } else { // This match is followed by a string, so coallesce twice.
-          s[o.i - 1] += o.x + s[o.i + 1];
-          s.splice(o.i, 2);
-          for (j = i + 1; j < n; ++j) q[j].i -= 2;
-        }
-      } else {
-          if (s[o.i + 1] == null) { // This match is followed by another number.
-          s[o.i] = o.x;
-        } else { // This match is followed by a string, so coallesce twice.
-          s[o.i] = o.x + s[o.i + 1];
-          s.splice(o.i + 1, 1);
-          for (j = i + 1; j < n; ++j) q[j].i--;
-        }
-      }
-      q.splice(i, 1);
-      n--;
-      i--;
-    } else {
-      o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
-    }
-  }
-
-  // Remove any numbers in b not found in a.
-  while (i < n) {
-    o = q.pop();
-    if (s[o.i + 1] == null) { // This match is followed by another number.
-      s[o.i] = o.x;
-    } else { // This match is followed by a string, so coallesce twice.
-      s[o.i] = o.x + s[o.i + 1];
-      s.splice(o.i + 1, 1);
-    }
-    n--;
-  }
-
-  // Special optimization for only a single match.
-  if (s.length === 1) {
-    return s[0] == null ? q[0].x : function() { return b; };
-  }
-
-  // Otherwise, interpolate each of the numbers and rejoin the string.
-  return function(t) {
-    for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
-    return s.join("");
-  };
-};
-
-d3.interpolateRgb = function(a, b) {
-  a = d3.rgb(a);
-  b = d3.rgb(b);
-  var ar = a.r,
-      ag = a.g,
-      ab = a.b,
-      br = b.r - ar,
-      bg = b.g - ag,
-      bb = b.b - ab;
-  return function(t) {
-    return "rgb(" + Math.round(ar + br * t)
-        + "," + Math.round(ag + bg * t)
-        + "," + Math.round(ab + bb * t)
-        + ")";
-  };
-};
-
-// interpolates HSL space, but outputs RGB string (for compatibility)
-d3.interpolateHsl = function(a, b) {
-  a = d3.hsl(a);
-  b = d3.hsl(b);
-  var h0 = a.h,
-      s0 = a.s,
-      l0 = a.l,
-      h1 = b.h - h0,
-      s1 = b.s - s0,
-      l1 = b.l - l0;
-  return function(t) {
-    return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t).toString();
-  };
-};
-
-d3.interpolateArray = function(a, b) {
-  var x = [],
-      c = [],
-      na = a.length,
-      nb = b.length,
-      n0 = Math.min(a.length, b.length),
-      i;
-  for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
-  for (; i < na; ++i) c[i] = a[i];
-  for (; i < nb; ++i) c[i] = b[i];
-  return function(t) {
-    for (i = 0; i < n0; ++i) c[i] = x[i](t);
-    return c;
-  };
-};
-
-d3.interpolateObject = function(a, b) {
-  var i = {},
-      c = {},
-      k;
-  for (k in a) {
-    if (k in b) {
-      i[k] = d3_interpolateByName(k)(a[k], b[k]);
-    } else {
-      c[k] = a[k];
-    }
-  }
-  for (k in b) {
-    if (!(k in a)) {
-      c[k] = b[k];
-    }
-  }
-  return function(t) {
-    for (k in i) c[k] = i[k](t);
-    return c;
-  };
-}
-
-var d3_interpolate_number = /[-+]?(?:\d+\.\d+|\d+\.|\.\d+|\d+)(?:[eE][-]?\d+)?/g,
-    d3_interpolate_rgb = {background: 1, fill: 1, stroke: 1};
-
-function d3_interpolateByName(n) {
-  return n in d3_interpolate_rgb || /\bcolor\b/.test(n)
-      ? d3.interpolateRgb
-      : d3.interpolate;
-}
-
-d3.interpolators = [
-  d3.interpolateObject,
-  function(a, b) { return (b instanceof Array) && d3.interpolateArray(a, b); },
-  function(a, b) { return (typeof b === "string") && d3.interpolateString(String(a), b); },
-  function(a, b) { return (typeof b === "string" ? b in d3_rgb_names || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Rgb || b instanceof d3_Hsl) && d3.interpolateRgb(String(a), b); },
-  function(a, b) { return (typeof b === "number") && d3.interpolateNumber(+a, b); }
-];
-function d3_uninterpolateNumber(a, b) {
-  b = b - (a = +a) ? 1 / (b - a) : 0;
-  return function(x) { return (x - a) * b; };
-}
-
-function d3_uninterpolateClamp(a, b) {
-  b = b - (a = +a) ? 1 / (b - a) : 0;
-  return function(x) { return Math.max(0, Math.min(1, (x - a) * b)); };
-}
-d3.rgb = function(r, g, b) {
-  return arguments.length === 1
-      ? d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb)
-      : d3_rgb(~~r, ~~g, ~~b);
-};
-
-function d3_rgb(r, g, b) {
-  return new d3_Rgb(r, g, b);
-}
-
-function d3_Rgb(r, g, b) {
-  this.r = r;
-  this.g = g;
-  this.b = b;
-}
-
-d3_Rgb.prototype.brighter = function(k) {
-  k = Math.pow(0.7, arguments.length ? k : 1);
-  var r = this.r,
-      g = this.g,
-      b = this.b,
-      i = 30;
-  if (!r && !g && !b) return d3_rgb(i, i, i);
-  if (r && r < i) r = i;
-  if (g && g < i) g = i;
-  if (b && b < i) b = i;
-  return d3_rgb(
-    Math.min(255, Math.floor(r / k)),
-    Math.min(255, Math.floor(g / k)),
-    Math.min(255, Math.floor(b / k)));
-};
-
-d3_Rgb.prototype.darker = function(k) {
-  k = Math.pow(0.7, arguments.length ? k : 1);
-  return d3_rgb(
-    Math.max(0, Math.floor(k * this.r)),
-    Math.max(0, Math.floor(k * this.g)),
-    Math.max(0, Math.floor(k * this.b)));
-};
-
-d3_Rgb.prototype.hsl = function() {
-  return d3_rgb_hsl(this.r, this.g, this.b);
-};
-
-d3_Rgb.prototype.toString = function() {
-  return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
-};
-
-function d3_rgb_hex(v) {
-  return v < 0x10 ? "0" + v.toString(16) : v.toString(16);
-}
-
-function d3_rgb_parse(format, rgb, hsl) {
-  var r = 0, // red channel; int in [0, 255]
-      g = 0, // green channel; int in [0, 255]
-      b = 0, // blue channel; int in [0, 255]
-      m1, // CSS color specification match
-      m2, // CSS color specification type (e.g., rgb)
-      name;
-
-  /* Handle hsl, rgb. */
-  m1 = /([a-z]+)\((.*)\)/i.exec(format);
-  if (m1) {
-    m2 = m1[2].split(",");
-    switch (m1[1]) {
-      case "hsl": {
-        return hsl(
-          parseFloat(m2[0]), // degrees
-          parseFloat(m2[1]) / 100, // percentage
-          parseFloat(m2[2]) / 100 // percentage
-        );
-      }
-      case "rgb": {
-        return rgb(
-          d3_rgb_parseNumber(m2[0]),
-          d3_rgb_parseNumber(m2[1]),
-          d3_rgb_parseNumber(m2[2])
-        );
-      }
-    }
-  }
-
-  /* Named colors. */
-  if (name = d3_rgb_names[format]) return rgb(name.r, name.g, name.b);
-
-  /* Hexadecimal colors: #rgb and #rrggbb. */
-  if (format != null && format.charAt(0) === "#") {
-    if (format.length === 4) {
-      r = format.charAt(1); r += r;
-      g = format.charAt(2); g += g;
-      b = format.charAt(3); b += b;
-    } else if (format.length === 7) {
-      r = format.substring(1, 3);
-      g = format.substring(3, 5);
-      b = format.substring(5, 7);
-    }
-    r = parseInt(r, 16);
-    g = parseInt(g, 16);
-    b = parseInt(b, 16);
-  }
-
-  return rgb(r, g, b);
-}
-
-function d3_rgb_hsl(r, g, b) {
-  var min = Math.min(r /= 255, g /= 255, b /= 255),
-      max = Math.max(r, g, b),
-      d = max - min,
-      h,
-      s,
-      l = (max + min) / 2;
-  if (d) {
-    s = l < .5 ? d / (max + min) : d / (2 - max - min);
-    if (r == max) h = (g - b) / d + (g < b ? 6 : 0);
-    else if (g == max) h = (b - r) / d + 2;
-    else h = (r - g) / d + 4;
-    h *= 60;
-  } else {
-    s = h = 0;
-  }
-  return d3_hsl(h, s, l);
-}
-
-function d3_rgb_parseNumber(c) { // either integer or percentage
-  var f = parseFloat(c);
-  return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
-}
-
-var d3_rgb_names = {
-  aliceblue: "#f0f8ff",
-  antiquewhite: "#faebd7",
-  aqua: "#00ffff",
-  aquamarine: "#7fffd4",
-  azure: "#f0ffff",
-  beige: "#f5f5dc",
-  bisque: "#ffe4c4",
-  black: "#000000",
-  blanchedalmond: "#ffebcd",
-  blue: "#0000ff",
-  blueviolet: "#8a2be2",
-  brown: "#a52a2a",
-  burlywood: "#deb887",
-  cadetblue: "#5f9ea0",
-  chartreuse: "#7fff00",
-  chocolate: "#d2691e",
-  coral: "#ff7f50",
-  cornflowerblue: "#6495ed",
-  cornsilk: "#fff8dc",
-  crimson: "#dc143c",
-  cyan: "#00ffff",
-  darkblue: "#00008b",
-  darkcyan: "#008b8b",
-  darkgoldenrod: "#b8860b",
-  darkgray: "#a9a9a9",
-  darkgreen: "#006400",
-  darkgrey: "#a9a9a9",
-  darkkhaki: "#bdb76b",
-  darkmagenta: "#8b008b",
-  darkolivegreen: "#556b2f",
-  darkorange: "#ff8c00",
-  darkorchid: "#9932cc",
-  darkred: "#8b0000",
-  darksalmon: "#e9967a",
-  darkseagreen: "#8fbc8f",
-  darkslateblue: "#483d8b",
-  darkslategray: "#2f4f4f",
-  darkslategrey: "#2f4f4f",
-  darkturquoise: "#00ced1",
-  darkviolet: "#9400d3",
-  deeppink: "#ff1493",
-  deepskyblue: "#00bfff",
-  dimgray: "#696969",
-  dimgrey: "#696969",
-  dodgerblue: "#1e90ff",
-  firebrick: "#b22222",
-  floralwhite: "#fffaf0",
-  forestgreen: "#228b22",
-  fuchsia: "#ff00ff",
-  gainsboro: "#dcdcdc",
-  ghostwhite: "#f8f8ff",
-  gold: "#ffd700",
-  goldenrod: "#daa520",
-  gray: "#808080",
-  green: "#008000",
-  greenyellow: "#adff2f",
-  grey: "#808080",
-  honeydew: "#f0fff0",
-  hotpink: "#ff69b4",
-  indianred: "#cd5c5c",
-  indigo: "#4b0082",
-  ivory: "#fffff0",
-  khaki: "#f0e68c",
-  lavender: "#e6e6fa",
-  lavenderblush: "#fff0f5",
-  lawngreen: "#7cfc00",
-  lemonchiffon: "#fffacd",
-  lightblue: "#add8e6",
-  lightcoral: "#f08080",
-  lightcyan: "#e0ffff",
-  lightgoldenrodyellow: "#fafad2",
-  lightgray: "#d3d3d3",
-  lightgreen: "#90ee90",
-  lightgrey: "#d3d3d3",
-  lightpink: "#ffb6c1",
-  lightsalmon: "#ffa07a",
-  lightseagreen: "#20b2aa",
-  lightskyblue: "#87cefa",
-  lightslategray: "#778899",
-  lightslategrey: "#778899",
-  lightsteelblue: "#b0c4de",
-  lightyellow: "#ffffe0",
-  lime: "#00ff00",
-  limegreen: "#32cd32",
-  linen: "#faf0e6",
-  magenta: "#ff00ff",
-  maroon: "#800000",
-  mediumaquamarine: "#66cdaa",
-  mediumblue: "#0000cd",
-  mediumorchid: "#ba55d3",
-  mediumpurple: "#9370db",
-  mediumseagreen: "#3cb371",
-  mediumslateblue: "#7b68ee",
-  mediumspringgreen: "#00fa9a",
-  mediumturquoise: "#48d1cc",
-  mediumvioletred: "#c71585",
-  midnightblue: "#191970",
-  mintcream: "#f5fffa",
-  mistyrose: "#ffe4e1",
-  moccasin: "#ffe4b5",
-  navajowhite: "#ffdead",
-  navy: "#000080",
-  oldlace: "#fdf5e6",
-  olive: "#808000",
-  olivedrab: "#6b8e23",
-  orange: "#ffa500",
-  orangered: "#ff4500",
-  orchid: "#da70d6",
-  palegoldenrod: "#eee8aa",
-  palegreen: "#98fb98",
-  paleturquoise: "#afeeee",
-  palevioletred: "#db7093",
-  papayawhip: "#ffefd5",
-  peachpuff: "#ffdab9",
-  peru: "#cd853f",
-  pink: "#ffc0cb",
-  plum: "#dda0dd",
-  powderblue: "#b0e0e6",
-  purple: "#800080",
-  red: "#ff0000",
-  rosybrown: "#bc8f8f",
-  royalblue: "#4169e1",
-  saddlebrown: "#8b4513",
-  salmon: "#fa8072",
-  sandybrown: "#f4a460",
-  seagreen: "#2e8b57",
-  seashell: "#fff5ee",
-  sienna: "#a0522d",
-  silver: "#c0c0c0",
-  skyblue: "#87ceeb",
-  slateblue: "#6a5acd",
-  slategray: "#708090",
-  slategrey: "#708090",
-  snow: "#fffafa",
-  springgreen: "#00ff7f",
-  steelblue: "#4682b4",
-  tan: "#d2b48c",
-  teal: "#008080",
-  thistle: "#d8bfd8",
-  tomato: "#ff6347",
-  turquoise: "#40e0d0",
-  violet: "#ee82ee",
-  wheat: "#f5deb3",
-  white: "#ffffff",
-  whitesmoke: "#f5f5f5",
-  yellow: "#ffff00",
-  yellowgreen: "#9acd32"
-};
-
-for (var d3_rgb_name in d3_rgb_names) {
-  d3_rgb_names[d3_rgb_name] = d3_rgb_parse(
-      d3_rgb_names[d3_rgb_name],
-      d3_rgb,
-      d3_hsl_rgb);
-}
-d3.hsl = function(h, s, l) {
-  return arguments.length === 1
-      ? d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl)
-      : d3_hsl(+h, +s, +l);
-};
-
-function d3_hsl(h, s, l) {
-  return new d3_Hsl(h, s, l);
-}
-
-function d3_Hsl(h, s, l) {
-  this.h = h;
-  this.s = s;
-  this.l = l;
-}
-
-d3_Hsl.prototype.brighter = function(k) {
-  k = Math.pow(0.7, arguments.length ? k : 1);
-  return d3_hsl(this.h, this.s, this.l / k);
-};
-
-d3_Hsl.prototype.darker = function(k) {
-  k = Math.pow(0.7, arguments.length ? k : 1);
-  return d3_hsl(this.h, this.s, k * this.l);
-};
-
-d3_Hsl.prototype.rgb = function() {
-  return d3_hsl_rgb(this.h, this.s, this.l);
-};
-
-d3_Hsl.prototype.toString = function() {
-  return "hsl(" + this.h + "," + this.s * 100 + "%," + this.l * 100 + "%)";
-};
-
-function d3_hsl_rgb(h, s, l) {
-  var m1,
-      m2;
-
-  /* Some simple corrections for h, s and l. */
-  h = h % 360; if (h < 0) h += 360;
-  s = s < 0 ? 0 : s > 1 ? 1 : s;
-  l = l < 0 ? 0 : l > 1 ? 1 : l;
-
-  /* From FvD 13.37, CSS Color Module Level 3 */
-  m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
-  m1 = 2 * l - m2;
-
-  function v(h) {
-    if (h > 360) h -= 360;
-    else if (h < 0) h += 360;
-    if (h < 60) return m1 + (m2 - m1) * h / 60;
-    if (h < 180) return m2;
-    if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
-    return m1;
-  }
-
-  function vv(h) {
-    return Math.round(v(h) * 255);
-  }
-
-  return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
-}
-function d3_selection(groups) {
-  d3_arraySubclass(groups, d3_selectionPrototype);
-  return groups;
-}
-
-var d3_select = function(s, n) { return n.querySelector(s); },
-    d3_selectAll = function(s, n) { return n.querySelectorAll(s); };
-
-// Prefer Sizzle, if available.
-if (typeof Sizzle === "function") {
-  d3_select = function(s, n) { return Sizzle(s, n)[0]; };
-  d3_selectAll = function(s, n) { return Sizzle.uniqueSort(Sizzle(s, n)); };
-}
-
-var d3_selectionPrototype = [];
-
-d3.selection = function() {
-  return d3_selectionRoot;
-};
-
-d3.selection.prototype = d3_selectionPrototype;
-d3_selectionPrototype.select = function(selector) {
-  var subgroups = [],
-      subgroup,
-      subnode,
-      group,
-      node;
-
-  if (typeof selector !== "function") selector = d3_selection_selector(selector);
-
-  for (var j = -1, m = this.length; ++j < m;) {
-    subgroups.push(subgroup = []);
-    subgroup.parentNode = (group = this[j]).parentNode;
-    for (var i = -1, n = group.length; ++i < n;) {
-      if (node = group[i]) {
-        subgroup.push(subnode = selector.call(node, node.__data__, i));
-        if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
-      } else {
-        subgroup.push(null);
-      }
-    }
-  }
-
-  return d3_selection(subgroups);
-};
-
-function d3_selection_selector(selector) {
-  return function() {
-    return d3_select(selector, this);
-  };
-}
-d3_selectionPrototype.selectAll = function(selector) {
-  var subgroups = [],
-      subgroup,
-      node;
-
-  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
-
-  for (var j = -1, m = this.length; ++j < m;) {
-    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
-      if (node = group[i]) {
-        subgroups.push(subgroup = selector.call(node, node.__data__, i));
-        subgroup.parentNode = node;
-      }
-    }
-  }
-
-  return d3_selection(subgroups);
-};
-
-function d3_selection_selectorAll(selector) {
-  return function() {
-    return d3_selectAll(selector, this);
-  };
-}
-d3_selectionPrototype.attr = function(name, value) {
-  name = d3.ns.qualify(name);
-
-  // If no value is specified, return the first value.
-  if (arguments.length < 2) {
-    var node = this.node();
-    return name.local
-        ? node.getAttributeNS(name.space, name.local)
-        : node.getAttribute(name);
-  }
-
-  function attrNull() {
-    this.removeAttribute(name);
-  }
-
-  function attrNullNS() {
-    this.removeAttributeNS(name.space, name.local);
-  }
-
-  function attrConstant() {
-    this.setAttribute(name, value);
-  }
-
-  function attrConstantNS() {
-    this.setAttributeNS(name.space, name.local, value);
-  }
-
-  function attrFunction() {
-    var x = value.apply(this, arguments);
-    if (x == null) this.removeAttribute(name);
-    else this.setAttribute(name, x);
-  }
-
-  function attrFunctionNS() {
-    var x = value.apply(this, arguments);
-    if (x == null) this.removeAttributeNS(name.space, name.local);
-    else this.setAttributeNS(name.space, name.local, x);
-  }
-
-  return this.each(value == null
-      ? (name.local ? attrNullNS : attrNull) : (typeof value === "function"
-      ? (name.local ? attrFunctionNS : attrFunction)
-      : (name.local ? attrConstantNS : attrConstant)));
-};
-d3_selectionPrototype.classed = function(name, value) {
-  var re = new RegExp("(^|\\s+)" + d3.requote(name) + "(\\s+|$)", "g");
-
-  // If no value is specified, return the first value.
-  if (arguments.length < 2) {
-    var node = this.node();
-    if (c = node.classList) return c.contains(name);
-    var c = node.className;
-    re.lastIndex = 0;
-    return re.test(c.baseVal != null ? c.baseVal : c);
-  }
-
-  function classedAdd() {
-    if (c = this.classList) return c.add(name);
-    var c = this.className,
-        cb = c.baseVal != null,
-        cv = cb ? c.baseVal : c;
-    re.lastIndex = 0;
-    if (!re.test(cv)) {
-      cv = d3_collapse(cv + " " + name);
-      if (cb) c.baseVal = cv;
-      else this.className = cv;
-    }
-  }
-
-  function classedRemove() {
-    if (c = this.classList) return c.remove(name);
-    var c = this.className,
-        cb = c.baseVal != null,
-        cv = cb ? c.baseVal : c;
-    cv = d3_collapse(cv.replace(re, " "));
-    if (cb) c.baseVal = cv;
-    else this.className = cv;
-  }
-
-  function classedFunction() {
-    (value.apply(this, arguments)
-        ? classedAdd
-        : classedRemove).call(this);
-  }
-
-  return this.each(typeof value === "function"
-      ? classedFunction : value
-      ? classedAdd
-      : classedRemove);
-};
-d3_selectionPrototype.style = function(name, value, priority) {
-  if (arguments.length < 3) priority = "";
-
-  // If no value is specified, return the first value.
-  if (arguments.length < 2) return window
-      .getComputedStyle(this.node(), null)
-      .getPropertyValue(name);
-
-  function styleNull() {
-    this.style.removeProperty(name);
-  }
-
-  function styleConstant() {
-    this.style.setProperty(name, value, priority);
-  }
-
-  function styleFunction() {
-    var x = value.apply(this, arguments);
-    if (x == null) this.style.removeProperty(name);
-    else this.style.setProperty(name, x, priority);
-  }
-
-  return this.each(value == null
-      ? styleNull : (typeof value === "function"
-      ? styleFunction : styleConstant));
-};
-d3_selectionPrototype.property = function(name, value) {
-
-  // If no value is specified, return the first value.
-  if (arguments.length < 2) return this.node()[name];
-
-  function propertyNull() {
-    delete this[name];
-  }
-
-  function propertyConstant() {
-    this[name] = value;
-  }
-
-  function propertyFunction() {
-    var x = value.apply(this, arguments);
-    if (x == null) delete this[name];
-    else this[name] = x;
-  }
-
-  return this.each(value == null
-      ? propertyNull : (typeof value === "function"
-      ? propertyFunction : propertyConstant));
-};
-d3_selectionPrototype.text = function(value) {
-  return arguments.length < 1 ? this.node().textContent
-      : (this.each(typeof value === "function"
-      ? function() { this.textContent = value.apply(this, arguments); }
-      : function() { this.textContent = value; }));
-};
-d3_selectionPrototype.html = function(value) {
-  return arguments.length < 1 ? this.node().innerHTML
-      : (this.each(typeof value === "function"
-      ? function() { this.innerHTML = value.apply(this, arguments); }
-      : function() { this.innerHTML = value; }));
-};
-// TODO append(node)?
-// TODO append(function)?
-d3_selectionPrototype.append = function(name) {
-  name = d3.ns.qualify(name);
-
-  function append() {
-    return this.appendChild(document.createElement(name));
-  }
-
-  function appendNS() {
-    return this.appendChild(document.createElementNS(name.space, name.local));
-  }
-
-  return this.select(name.local ? appendNS : append);
-};
-// TODO insert(node, function)?
-// TODO insert(function, string)?
-// TODO insert(function, function)?
-d3_selectionPrototype.insert = function(name, before) {
-  name = d3.ns.qualify(name);
-
-  function insert() {
-    return this.insertBefore(
-        document.createElement(name),
-        d3_select(before, this));
-  }
-
-  function insertNS() {
-    return this.insertBefore(
-        document.createElementNS(name.space, name.local),
-        d3_select(before, this));
-  }
-
-  return this.select(name.local ? insertNS : insert);
-};
-// TODO remove(selector)?
-// TODO remove(node)?
-// TODO remove(function)?
-d3_selectionPrototype.remove = function() {
-  return this.each(function() {
-    var parent = this.parentNode;
-    if (parent) parent.removeChild(this);
-  });
-};
-// TODO data(null) for clearing data?
-d3_selectionPrototype.data = function(data, join) {
-  var enter = [],
-      update = [],
-      exit = [];
-
-  function bind(group, groupData) {
-    var i,
-        n = group.length,
-        m = groupData.length,
-        n0 = Math.min(n, m),
-        n1 = Math.max(n, m),
-        updateNodes = [],
-        enterNodes = [],
-        exitNodes = [],
-        node,
-        nodeData;
-
-    if (join) {
-      var nodeByKey = {},
-          keys = [],
-          key,
-          j = groupData.length;
-
-      for (i = -1; ++i < n;) {
-        key = join.call(node = group[i], node.__data__, i);
-        if (key in nodeByKey) {
-          exitNodes[j++] = node; // duplicate key
-        } else {
-          nodeByKey[key] = node;
-        }
-        keys.push(key);
-      }
-
-      for (i = -1; ++i < m;) {
-        node = nodeByKey[key = join.call(groupData, nodeData = groupData[i], i)];
-        if (node) {
-          node.__data__ = nodeData;
-          updateNodes[i] = node;
-          enterNodes[i] = exitNodes[i] = null;
-        } else {
-          enterNodes[i] = d3_selection_dataNode(nodeData);
-          updateNodes[i] = exitNodes[i] = null;
-        }
-        delete nodeByKey[key];
-      }
-
-      for (i = -1; ++i < n;) {
-        if (keys[i] in nodeByKey) {
-          exitNodes[i] = group[i];
-        }
-      }
-    } else {
-      for (i = -1; ++i < n0;) {
-        node = group[i];
-        nodeData = groupData[i];
-        if (node) {
-          node.__data__ = nodeData;
-          updateNodes[i] = node;
-          enterNodes[i] = exitNodes[i] = null;
-        } else {
-          enterNodes[i] = d3_selection_dataNode(nodeData);
-          updateNodes[i] = exitNodes[i] = null;
-        }
-      }
-      for (; i < m; ++i) {
-        enterNodes[i] = d3_selection_dataNode(groupData[i]);
-        updateNodes[i] = exitNodes[i] = null;
-      }
-      for (; i < n1; ++i) {
-        exitNodes[i] = group[i];
-        enterNodes[i] = updateNodes[i] = null;
-      }
-    }
-
-    enterNodes.update
-        = updateNodes;
-
-    enterNodes.parentNode
-        = updateNodes.parentNode
-        = exitNodes.parentNode
-        = group.parentNode;
-
-    enter.push(enterNodes);
-    update.push(updateNodes);
-    exit.push(exitNodes);
-  }
-
-  var i = -1,
-      n = this.length,
-      group;
-  if (typeof data === "function") {
-    while (++i < n) {
-      bind(group = this[i], data.call(group, group.parentNode.__data__, i));
-    }
-  } else {
-    while (++i < n) {
-      bind(group = this[i], data);
-    }
-  }
-
-  var selection = d3_selection(update);
-  selection.enter = function() { return d3_selection_enter(enter); };
-  selection.exit = function() { return d3_selection(exit); };
-  return selection;
-};
-
-function d3_selection_dataNode(data) {
-  return {__data__: data};
-}
-function d3_selection_enter(selection) {
-  d3_arraySubclass(selection, d3_selection_enterPrototype);
-  return selection;
-}
-
-var d3_selection_enterPrototype = [];
-
-d3_selection_enterPrototype.append = d3_selectionPrototype.append;
-d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
-d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
-d3_selection_enterPrototype.select = function(selector) {
-  var subgroups = [],
-      subgroup,
-      subnode,
-      upgroup,
-      group,
-      node;
-
-  for (var j = -1, m = this.length; ++j < m;) {
-    upgroup = (group = this[j]).update;
-    subgroups.push(subgroup = []);
-    subgroup.parentNode = group.parentNode;
-    for (var i = -1, n = group.length; ++i < n;) {
-      if (node = group[i]) {
-        subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
-        subnode.__data__ = node.__data__;
-      } else {
-        subgroup.push(null);
-      }
-    }
-  }
-
-  return d3_selection(subgroups);
-};
-// TODO preserve null elements to maintain index?
-d3_selectionPrototype.filter = function(filter) {
-  var subgroups = [],
-      subgroup,
-      group,
-      node;
-
-  for (var j = 0, m = this.length; j < m; j++) {
-    subgroups.push(subgroup = []);
-    subgroup.parentNode = (group = this[j]).parentNode;
-    for (var i = 0, n = group.length; i < n; i++) {
-      if ((node = group[i]) && filter.call(node, node.__data__, i)) {
-        subgroup.push(node);
-      }
-    }
-  }
-
-  return d3_selection(subgroups);
-};
-d3_selectionPrototype.map = function(map) {
-  return this.each(function() {
-    this.__data__ = map.apply(this, arguments);
-  });
-};
-d3_selectionPrototype.sort = function(comparator) {
-  comparator = d3_selection_sortComparator.apply(this, arguments);
-  for (var j = 0, m = this.length; j < m; j++) {
-    for (var group = this[j].sort(comparator), i = 1, n = group.length, prev = group[0]; i < n; i++) {
-      var node = group[i];
-      if (node) {
-        if (prev) prev.parentNode.insertBefore(node, prev.nextSibling);
-        prev = node;
-      }
-    }
-  }
-  return this;
-};
-
-function d3_selection_sortComparator(comparator) {
-  if (!arguments.length) comparator = d3.ascending;
-  return function(a, b) {
-    return comparator(a && a.__data__, b && b.__data__);
-  };
-}
-// type can be namespaced, e.g., "click.foo"
-// listener can be null for removal
-d3_selectionPrototype.on = function(type, listener, capture) {
-  if (arguments.length < 3) capture = false;
-
-  // parse the type specifier
-  var name = "__on" + type, i = type.indexOf(".");
-  if (i > 0) type = type.substring(0, i);
-
-  // if called with only one argument, return the current listener
-  if (arguments.length < 2) return (i = this.node()[name]) && i._;
-
-  // remove the old event listener, and add the new event listener
-  return this.each(function(d, i) {
-    var node = this;
-
-    if (node[name]) node.removeEventListener(type, node[name], capture);
-    if (listener) node.addEventListener(type, node[name] = l, capture);
-
-    // wrapped event listener that preserves i
-    function l(e) {
-      var o = d3.event; // Events can be reentrant (e.g., focus).
-      d3.event = e;
-      try {
-        listener.call(node, node.__data__, i);
-      } finally {
-        d3.event = o;
-      }
-    }
-
-    // stash the unwrapped listener for retrieval
-    l._ = listener;
-  });
-};
-d3_selectionPrototype.each = function(callback) {
-  for (var j = -1, m = this.length; ++j < m;) {
-    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
-      var node = group[i];
-      if (node) callback.call(node, node.__data__, i, j);
-    }
-  }
-  return this;
-};
-//
-// Note: assigning to the arguments array simultaneously changes the value of
-// the corresponding argument!
-//
-// TODO The `this` argument probably shouldn't be the first argument to the
-// callback, anyway, since it's redundant. However, that will require a major
-// version bump due to backwards compatibility, so I'm not changing it right
-// away.
-//
-d3_selectionPrototype.call = function(callback) {
-  callback.apply(this, (arguments[0] = this, arguments));
-  return this;
-};
-d3_selectionPrototype.empty = function() {
-  return !this.node();
-};
-d3_selectionPrototype.node = function(callback) {
-  for (var j = 0, m = this.length; j < m; j++) {
-    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-      var node = group[i];
-      if (node) return node;
-    }
-  }
-  return null;
-};
-d3_selectionPrototype.transition = function() {
-  var subgroups = [],
-      subgroup,
-      node;
-
-  for (var j = -1, m = this.length; ++j < m;) {
-    subgroups.push(subgroup = []);
-    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
-      subgroup.push((node = group[i]) ? {node: node, delay: 0, duration: 250} : null);
-    }
-  }
-
-  return d3_transition(subgroups, d3_transitionInheritId || ++d3_transitionId);
-};
-var d3_selectionRoot = d3_selection([[document]]);
-
-d3_selectionRoot[0].parentNode = document.documentElement;
-
-// TODO fast singleton implementation!
-d3.select = function(selector) {
-  return typeof selector === "string"
-      ? d3_selectionRoot.select(selector)
-      : d3_selection([[selector]]); // assume node
-};
-
-d3.selectAll = function(selector) {
-  return typeof selector === "string"
-      ? d3_selectionRoot.selectAll(selector)
-      : d3_selection([selector]); // assume node[]
-};
-function d3_transition(groups, id) {
-  d3_arraySubclass(groups, d3_transitionPrototype);
-
-  var tweens = {},
-      event = d3.dispatch("start", "end"),
-      ease = d3_transitionEase,
-      then = Date.now();
-
-  groups.id = id;
-
-  groups.tween = function(name, tween) {
-    if (arguments.length < 2) return tweens[name];
-    if (tween == null) delete tweens[name];
-    else tweens[name] = tween;
-    return groups;
-  };
-
-  groups.ease = function(value) {
-    if (!arguments.length) return ease;
-    ease = typeof value === "function" ? value : d3.ease.apply(d3, arguments);
-    return groups;
-  };
-
-  groups.each = function(type, listener) {
-    if (arguments.length < 2) return d3_transition_each.call(groups, type);
-    event[type].add(listener);
-    return groups;
-  };
-
-  d3.timer(function(elapsed) {
-    groups.each(function(d, i, j) {
-      var tweened = [],
-          node = this,
-          delay = groups[j][i].delay,
-          duration = groups[j][i].duration,
-          lock = node.__transition__ || (node.__transition__ = {active: 0, count: 0});
-
-      ++lock.count;
-
-      delay <= elapsed ? start(elapsed) : d3.timer(start, delay, then);
-
-      function start(elapsed) {
-        if (lock.active > id) return stop();
-        lock.active = id;
-
-        for (var tween in tweens) {
-          if (tween = tweens[tween].call(node, d, i)) {
-            tweened.push(tween);
-          }
-        }
-
-        event.start.dispatch.call(node, d, i);
-        if (!tick(elapsed)) d3.timer(tick, 0, then);
-        return 1;
-      }
-
-      function tick(elapsed) {
-        if (lock.active !== id) return stop();
-
-        var t = (elapsed - delay) / duration,
-            e = ease(t),
-            n = tweened.length;
-
-        while (n > 0) {
-          tweened[--n].call(node, e);
-        }
-
-        if (t >= 1) {
-          stop();
-          d3_transitionInheritId = id;
-          event.end.dispatch.call(node, d, i);
-          d3_transitionInheritId = 0;
-          return 1;
-        }
-      }
-
-      function stop() {
-        if (!--lock.count) delete node.__transition__;
-        return 1;
-      }
-    });
-    return 1;
-  }, 0, then);
-
-  return groups;
-}
-
-function d3_transitionTween(b) {
-  return typeof b === "function"
-      ? function(d, i, a) { var v = b.call(this, d, i) + ""; return a != v && d3.interpolate(a, v); }
-      : (b = b + "", function(d, i, a) { return a != b && d3.interpolate(a, b); });
-}
-
-var d3_transitionPrototype = [],
-    d3_transitionId = 0,
-    d3_transitionInheritId = 0,
-    d3_transitionEase = d3.ease("cubic-in-out");
-
-d3_transitionPrototype.call = d3_selectionPrototype.call;
-
-d3.transition = function() {
-  return d3_selectionRoot.transition();
-};
-
-d3.transition.prototype = d3_transitionPrototype;
-d3_transitionPrototype.select = function(selector) {
-  var subgroups = [],
-      subgroup,
-      subnode,
-      node;
-
-  if (typeof selector !== "function") selector = d3_selection_selector(selector);
-
-  for (var j = -1, m = this.length; ++j < m;) {
-    subgroups.push(subgroup = []);
-    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
-      if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) {
-        if ("__data__" in node.node) subnode.__data__ = node.node.__data__;
-        subgroup.push({node: subnode, delay: node.delay, duration: node.duration});
-      } else {
-        subgroup.push(null);
-      }
-    }
-  }
-
-  return d3_transition(subgroups, this.id).ease(this.ease());
-};
-d3_transitionPrototype.selectAll = function(selector) {
-  var subgroups = [],
-      subgroup,
-      node;
-
-  if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
-
-  for (var j = -1, m = this.length; ++j < m;) {
-    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
-      if (node = group[i]) {
-        subgroups.push(subgroup = selector.call(node.node, node.node.__data__, i));
-        for (var k = -1, o = subgroup.length; ++k < o;) {
-          subgroup[k] = {node: subgroup[k], delay: node.delay, duration: node.duration};
-        }
-      }
-    }
-  }
-
-  return d3_transition(subgroups, this.id).ease(this.ease());
-};
-d3_transitionPrototype.attr = function(name, value) {
-  return this.attrTween(name, d3_transitionTween(value));
-};
-
-d3_transitionPrototype.attrTween = function(name, tween) {
-  name = d3.ns.qualify(name);
-
-  function attrTween(d, i) {
-    var f = tween.call(this, d, i, this.getAttribute(name));
-    return f && function(t) {
-      this.setAttribute(name, f(t));
-    };
-  }
-
-  function attrTweenNS(d, i) {
-    var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
-    return f && function(t) {
-      this.setAttributeNS(name.space, name.local, f(t));
-    };
-  }
-
-  return this.tween("attr." + name, name.local ? attrTweenNS : attrTween);
-};
-d3_transitionPrototype.style = function(name, value, priority) {
-  if (arguments.length < 3) priority = "";
-  return this.styleTween(name, d3_transitionTween(value), priority);
-};
-
-d3_transitionPrototype.styleTween = function(name, tween, priority) {
-  if (arguments.length < 3) priority = "";
-  return this.tween("style." + name, function(d, i) {
-    var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name));
-    return f && function(t) {
-      this.style.setProperty(name, f(t), priority);
-    };
-  });
-};
-d3_transitionPrototype.text = function(value) {
-  return this.tween("text", function(d, i) {
-    this.textContent = typeof value === "function"
-        ? value.call(this, d, i)
-        : value;
-  });
-};
-d3_transitionPrototype.remove = function() {
-  return this.each("end", function() {
-    var p;
-    if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
-  });
-};
-d3_transitionPrototype.delay = function(value) {
-  var groups = this;
-  return groups.each(typeof value === "function"
-      ? function(d, i, j) { groups[j][i].delay = +value.apply(this, arguments); }
-      : (value = +value, function(d, i, j) { groups[j][i].delay = value; }));
-};
-d3_transitionPrototype.duration = function(value) {
-  var groups = this;
-  return groups.each(typeof value === "function"
-      ? function(d, i, j) { groups[j][i].duration = +value.apply(this, arguments); }
-      : (value = +value, function(d, i, j) { groups[j][i].duration = value; }));
-};
-function d3_transition_each(callback) {
-  for (var j = 0, m = this.length; j < m; j++) {
-    for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-      var node = group[i];
-      if (node) callback.call(node = node.node, node.__data__, i, j);
-    }
-  }
-  return this;
-}
-d3_transitionPrototype.transition = function() {
-  return this.select(d3_this);
-};
-var d3_timer_queue = null,
-    d3_timer_interval, // is an interval (or frame) active?
-    d3_timer_timeout; // is a timeout active?
-
-// The timer will continue to fire until callback returns true.
-d3.timer = function(callback, delay, then) {
-  var found = false,
-      t0,
-      t1 = d3_timer_queue;
-
-  if (arguments.length < 3) {
-    if (arguments.length < 2) delay = 0;
-    else if (!isFinite(delay)) return;
-    then = Date.now();
-  }
-
-  // See if the callback's already in the queue.
-  while (t1) {
-    if (t1.callback === callback) {
-      t1.then = then;
-      t1.delay = delay;
-      found = true;
-      break;
-    }
-    t0 = t1;
-    t1 = t1.next;
-  }
-
-  // Otherwise, add the callback to the queue.
-  if (!found) d3_timer_queue = {
-    callback: callback,
-    then: then,
-    delay: delay,
-    next: d3_timer_queue
-  };
-
-  // Start animatin'!
-  if (!d3_timer_interval) {
-    d3_timer_timeout = clearTimeout(d3_timer_timeout);
-    d3_timer_interval = 1;
-    d3_timer_frame(d3_timer_step);
-  }
-}
-
-function d3_timer_step() {
-  var elapsed,
-      now = Date.now(),
-      t1 = d3_timer_queue;
-
-  while (t1) {
-    elapsed = now - t1.then;
-    if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
-    t1 = t1.next;
-  }
-
-  var delay = d3_timer_flush() - now;
-  if (delay > 24) {
-    if (isFinite(delay)) {
-      clearTimeout(d3_timer_timeout);
-      d3_timer_timeout = setTimeout(d3_timer_step, delay);
-    }
-    d3_timer_interval = 0;
-  } else {
-    d3_timer_interval = 1;
-    d3_timer_frame(d3_timer_step);
-  }
-}
-
-d3.timer.flush = function() {
-  var elapsed,
-      now = Date.now(),
-      t1 = d3_timer_queue;
-
-  while (t1) {
-    elapsed = now - t1.then;
-    if (!t1.delay) t1.flush = t1.callback(elapsed);
-    t1 = t1.next;
-  }
-
-  d3_timer_flush();
-};
-
-// Flush after callbacks, to avoid concurrent queue modification.
-function d3_timer_flush() {
-  var t0 = null,
-      t1 = d3_timer_queue,
-      then = Infinity;
-  while (t1) {
-    if (t1.flush) {
-      t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
-    } else {
-      then = Math.min(then, t1.then + t1.delay);
-      t1 = (t0 = t1).next;
-    }
-  }
-  return then;
-}
-
-var d3_timer_frame = window.requestAnimationFrame
-    || window.webkitRequestAnimationFrame
-    || window.mozRequestAnimationFrame
-    || window.oRequestAnimationFrame
-    || window.msRequestAnimationFrame
-    || function(callback) { setTimeout(callback, 17); };
-function d3_noop() {}
-d3.scale = {};
-
-function d3_scaleExtent(domain) {
-  var start = domain[0], stop = domain[domain.length - 1];
-  return start < stop ? [start, stop] : [stop, start];
-}
-function d3_scale_nice(domain, nice) {
-  var i0 = 0,
-      i1 = domain.length - 1,
-      x0 = domain[i0],
-      x1 = domain[i1],
-      dx;
-
-  if (x1 < x0) {
-    dx = i0; i0 = i1; i1 = dx;
-    dx = x0; x0 = x1; x1 = dx;
-  }
-
-  nice = nice(x1 - x0);
-  domain[i0] = nice.floor(x0);
-  domain[i1] = nice.ceil(x1);
-  return domain;
-}
-
-function d3_scale_niceDefault() {
-  return Math;
-}
-d3.scale.linear = function() {
-  return d3_scale_linear([0, 1], [0, 1], d3.interpolate, false);
-};
-
-function d3_scale_linear(domain, range, interpolate, clamp) {
-  var output,
-      input;
-
-  function rescale() {
-    var linear = domain.length == 2 ? d3_scale_bilinear : d3_scale_polylinear,
-        uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
-    output = linear(domain, range, uninterpolate, interpolate);
-    input = linear(range, domain, uninterpolate, d3.interpolate);
-    return scale;
-  }
-
-  function scale(x) {
-    return output(x);
-  }
-
-  // Note: requires range is coercible to number!
-  scale.invert = function(y) {
-    return input(y);
-  };
-
-  scale.domain = function(x) {
-    if (!arguments.length) return domain;
-    domain = x.map(Number);
-    return rescale();
-  };
-
-  scale.range = function(x) {
-    if (!arguments.length) return range;
-    range = x;
-    return rescale();
-  };
-
-  scale.rangeRound = function(x) {
-    return scale.range(x).interpolate(d3.interpolateRound);
-  };
-
-  scale.clamp = function(x) {
-    if (!arguments.length) return clamp;
-    clamp = x;
-    return rescale();
-  };
-
-  scale.interpolate = function(x) {
-    if (!arguments.length) return interpolate;
-    interpolate = x;
-    return rescale();
-  };
-
-  scale.ticks = function(m) {
-    return d3_scale_linearTicks(domain, m);
-  };
-
-  scale.tickFormat = function(m) {
-    return d3_scale_linearTickFormat(domain, m);
-  };
-
-  scale.nice = function() {
-    d3_scale_nice(domain, d3_scale_linearNice);
-    return rescale();
-  };
-
-  scale.copy = function() {
-    return d3_scale_linear(domain, range, interpolate, clamp);
-  };
-
-  return rescale();
-};
-
-function d3_scale_linearRebind(scale, linear) {
-  scale.range = d3.rebind(scale, linear.range);
-  scale.rangeRound = d3.rebind(scale, linear.rangeRound);
-  scale.interpolate = d3.rebind(scale, linear.interpolate);
-  scale.clamp = d3.rebind(scale, linear.clamp);
-  return scale;
-}
-
-function d3_scale_linearNice(dx) {
-  dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
-  return {
-    floor: function(x) { return Math.floor(x / dx) * dx; },
-    ceil: function(x) { return Math.ceil(x / dx) * dx; }
-  };
-}
-
-// TODO Dates? Ugh.
-function d3_scale_linearTickRange(domain, m) {
-  var extent = d3_scaleExtent(domain),
-      span = extent[1] - extent[0],
-      step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)),
-      err = m / span * step;
-
-  // Filter ticks to get closer to the desired count.
-  if (err <= .15) step *= 10;
-  else if (err <= .35) step *= 5;
-  else if (err <= .75) step *= 2;
-
-  // Round start and stop values to step interval.
-  extent[0] = Math.ceil(extent[0] / step) * step;
-  extent[1] = Math.floor(extent[1] / step) * step + step * .5; // inclusive
-  extent[2] = step;
-  return extent;
-}
-
-function d3_scale_linearTicks(domain, m) {
-  return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
-}
-
-function d3_scale_linearTickFormat(domain, m) {
-  return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
-}
-function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
-  var u = uninterpolate(domain[0], domain[1]),
-      i = interpolate(range[0], range[1]);
-  return function(x) {
-    return i(u(x));
-  };
-}
-function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
-  var u = [],
-      i = [],
-      j = 0,
-      n = domain.length;
-
-  while (++j < n) {
-    u.push(uninterpolate(domain[j - 1], domain[j]));
-    i.push(interpolate(range[j - 1], range[j]));
-  }
-
-  return function(x) {
-    var j = d3.bisect(domain, x, 1, domain.length - 1) - 1;
-    return i[j](u[j](x));
-  };
-}
-d3.scale.log = function() {
-  return d3_scale_log(d3.scale.linear(), d3_scale_logp);
-};
-
-function d3_scale_log(linear, log) {
-  var pow = log.pow;
-
-  function scale(x) {
-    return linear(log(x));
-  }
-
-  scale.invert = function(x) {
-    return pow(linear.invert(x));
-  };
-
-  scale.domain = function(x) {
-    if (!arguments.length) return linear.domain().map(pow);
-    log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
-    pow = log.pow;
-    linear.domain(x.map(log));
-    return scale;
-  };
-
-  scale.nice = function() {
-    linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
-    return scale;
-  };
-
-  scale.ticks = function() {
-    var extent = d3_scaleExtent(linear.domain()),
-        ticks = [];
-    if (extent.every(isFinite)) {
-      var i = Math.floor(extent[0]),
-          j = Math.ceil(extent[1]),
-          u = pow(extent[0]),
-          v = pow(extent[1]);
-      if (log === d3_scale_logn) {
-        ticks.push(pow(i));
-        for (; i++ < j;) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
-      } else {
-        for (; i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
-        ticks.push(pow(i));
-      }
-      for (i = 0; ticks[i] < u; i++) {} // strip small values
-      for (j = ticks.length; ticks[j - 1] > v; j--) {} // strip big values
-      ticks = ticks.slice(i, j);
-    }
-    return ticks;
-  };
-
-  scale.tickFormat = function() {
-    return d3_scale_logTickFormat;
-  };
-
-  scale.copy = function() {
-    return d3_scale_log(linear.copy(), log);
-  };
-
-  return d3_scale_linearRebind(scale, linear);
-};
-
-function d3_scale_logp(x) {
-  return Math.log(x) / Math.LN10;
-}
-
-function d3_scale_logn(x) {
-  return -Math.log(-x) / Math.LN10;
-}
-
-d3_scale_logp.pow = function(x) {
-  return Math.pow(10, x);
-};
-
-d3_scale_logn.pow = function(x) {
-  return -Math.pow(10, -x);
-};
-
-function d3_scale_logTickFormat(d) {
-  return d.toPrecision(1);
-}
-d3.scale.pow = function() {
-  return d3_scale_pow(d3.scale.linear(), 1);
-};
-
-function d3_scale_pow(linear, exponent) {
-  var powp = d3_scale_powPow(exponent),
-      powb = d3_scale_powPow(1 / exponent);
-
-  function scale(x) {
-    return linear(powp(x));
-  }
-
-  scale.invert = function(x) {
-    return powb(linear.invert(x));
-  };
-
-  scale.domain = function(x) {
-    if (!arguments.length) return linear.domain().map(powb);
-    linear.domain(x.map(powp));
-    return scale;
-  };
-
-  scale.ticks = function(m) {
-    return d3_scale_linearTicks(scale.domain(), m);
-  };
-
-  scale.tickFormat = function(m) {
-    return d3_scale_linearTickFormat(scale.domain(), m);
-  };
-
-  scale.nice = function() {
-    return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
-  };
-
-  scale.exponent = function(x) {
-    if (!arguments.length) return exponent;
-    var domain = scale.domain();
-    powp = d3_scale_powPow(exponent = x);
-    powb = d3_scale_powPow(1 / exponent);
-    return scale.domain(domain);
-  };
-
-  scale.copy = function() {
-    return d3_scale_pow(linear.copy(), exponent);
-  };
-
-  return d3_scale_linearRebind(scale, linear);
-};
-
-function d3_scale_powPow(e) {
-  return function(x) {
-    return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
-  };
-}
-d3.scale.sqrt = function() {
-  return d3.scale.pow().exponent(.5);
-};
-d3.scale.ordinal = function() {
-  return d3_scale_ordinal([], {t: "range", x: []});
-};
-
-function d3_scale_ordinal(domain, ranger) {
-  var index,
-      range,
-      rangeBand;
-
-  function scale(x) {
-    return range[((index[x] || (index[x] = domain.push(x))) - 1) % range.length];
-  }
-
-  scale.domain = function(x) {
-    if (!arguments.length) return domain;
-    domain = [];
-    index = {};
-    var i = -1, n = x.length, xi;
-    while (++i < n) if (!index[xi = x[i]]) index[xi] = domain.push(xi);
-    return scale[ranger.t](ranger.x, ranger.p);
-  };
-
-  scale.range = function(x) {
-    if (!arguments.length) return range;
-    range = x;
-    rangeBand = 0;
-    ranger = {t: "range", x: x};
-    return scale;
-  };
-
-  scale.rangePoints = function(x, padding) {
-    if (arguments.length < 2) padding = 0;
-    var start = x[0],
-        stop = x[1],
-        step = (stop - start) / (domain.length - 1 + padding);
-    range = domain.length < 2 ? [(start + stop) / 2] : d3.range(start + step * padding / 2, stop + step / 2, step);
-    rangeBand = 0;
-    ranger = {t: "rangePoints", x: x, p: padding};
-    return scale;
-  };
-
-  scale.rangeBands = function(x, padding) {
-    if (arguments.length < 2) padding = 0;
-    var start = x[0],
-        stop = x[1],
-        step = (stop - start) / (domain.length + padding);
-    range = d3.range(start + step * padding, stop, step);
-    rangeBand = step * (1 - padding);
-    ranger = {t: "rangeBands", x: x, p: padding};
-    return scale;
-  };
-
-  scale.rangeRoundBands = function(x, padding) {
-    if (arguments.length < 2) padding = 0;
-    var start = x[0],
-        stop = x[1],
-        step = Math.floor((stop - start) / (domain.length + padding)),
-        err = stop - start - (domain.length - padding) * step;
-    range = d3.range(start + Math.round(err / 2), stop, step);
-    rangeBand = Math.round(step * (1 - padding));
-    ranger = {t: "rangeRoundBands", x: x, p: padding};
-    return scale;
-  };
-
-  scale.rangeBand = function() {
-    return rangeBand;
-  };
-
-  scale.copy = function() {
-    return d3_scale_ordinal(domain, ranger);
-  };
-
-  return scale.domain(domain);
-};
-/*
- * This product includes color specifications and designs developed by Cynthia
- * Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information.
- */
-
-d3.scale.category10 = function() {
-  return d3.scale.ordinal().range(d3_category10);
-};
-
-d3.scale.category20 = function() {
-  return d3.scale.ordinal().range(d3_category20);
-};
-
-d3.scale.category20b = function() {
-  return d3.scale.ordinal().range(d3_category20b);
-};
-
-d3.scale.category20c = function() {
-  return d3.scale.ordinal().range(d3_category20c);
-};
-
-var d3_category10 = [
-  "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd",
-  "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"
-];
-
-var d3_category20 = [
-  "#1f77b4", "#aec7e8",
-  "#ff7f0e", "#ffbb78",
-  "#2ca02c", "#98df8a",
-  "#d62728", "#ff9896",
-  "#9467bd", "#c5b0d5",
-  "#8c564b", "#c49c94",
-  "#e377c2", "#f7b6d2",
-  "#7f7f7f", "#c7c7c7",
-  "#bcbd22", "#dbdb8d",
-  "#17becf", "#9edae5"
-];
-
-var d3_category20b = [
-  "#393b79", "#5254a3", "#6b6ecf", "#9c9ede",
-  "#637939", "#8ca252", "#b5cf6b", "#cedb9c",
-  "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94",
-  "#843c39", "#ad494a", "#d6616b", "#e7969c",
-  "#7b4173", "#a55194", "#ce6dbd", "#de9ed6"
-];
-
-var d3_category20c = [
-  "#3182bd", "#6baed6", "#9ecae1", "#c6dbef",
-  "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2",
-  "#31a354", "#74c476", "#a1d99b", "#c7e9c0",
-  "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb",
-  "#636363", "#969696", "#bdbdbd", "#d9d9d9"
-];
-d3.scale.quantile = function() {
-  return d3_scale_quantile([], []);
-};
-
-function d3_scale_quantile(domain, range) {
-  var thresholds;
-
-  function rescale() {
-    var k = 0,
-        n = domain.length,
-        q = range.length;
-    thresholds = [];
-    while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
-    return scale;
-  }
-
-  function scale(x) {
-    if (isNaN(x = +x)) return NaN;
-    return range[d3.bisect(thresholds, x)];
-  }
-
-  scale.domain = function(x) {
-    if (!arguments.length) return domain;
-    domain = x.filter(function(d) { return !isNaN(d); }).sort(d3.ascending);
-    return rescale();
-  };
-
-  scale.range = function(x) {
-    if (!arguments.length) return range;
-    range = x;
-    return rescale();
-  };
-
-  scale.quantiles = function() {
-    return thresholds;
-  };
-
-  scale.copy = function() {
-    return d3_scale_quantile(domain, range); // copy on write!
-  };
-
-  return rescale();
-};
-d3.scale.quantize = function() {
-  return d3_scale_quantize(0, 1, [0, 1]);
-};
-
-function d3_scale_quantize(x0, x1, range) {
-  var kx, i;
-
-  function scale(x) {
-    return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
-  }
-
-  function rescale() {
-    kx = range.length / (x1 - x0);
-    i = range.length - 1;
-    return scale;
-  }
-
-  scale.domain = function(x) {
-    if (!arguments.length) return [x0, x1];
-    x0 = +x[0];
-    x1 = +x[x.length - 1];
-    return rescale();
-  };
-
-  scale.range = function(x) {
-    if (!arguments.length) return range;
-    range = x;
-    return rescale();
-  };
-
-  scale.copy = function() {
-    return d3_scale_quantize(x0, x1, range); // copy on write
-  };
-
-  return rescale();
-};
-d3.svg = {};
-d3.svg.arc = function() {
-  var innerRadius = d3_svg_arcInnerRadius,
-      outerRadius = d3_svg_arcOuterRadius,
-      startAngle = d3_svg_arcStartAngle,
-      endAngle = d3_svg_arcEndAngle;
-
-  function arc() {
-    var r0 = innerRadius.apply(this, arguments),
-        r1 = outerRadius.apply(this, arguments),
-        a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset,
-        a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset,
-        da = (a1 < a0 && (da = a0, a0 = a1, a1 = da), a1 - a0),
-        df = da < Math.PI ? "0" : "1",
-        c0 = Math.cos(a0),
-        s0 = Math.sin(a0),
-        c1 = Math.cos(a1),
-        s1 = Math.sin(a1);
-    return da >= d3_svg_arcMax
-      ? (r0
-      ? "M0," + r1
-      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
-      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
-      + "M0," + r0
-      + "A" + r0 + "," + r0 + " 0 1,0 0," + (-r0)
-      + "A" + r0 + "," + r0 + " 0 1,0 0," + r0
-      + "Z"
-      : "M0," + r1
-      + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1)
-      + "A" + r1 + "," + r1 + " 0 1,1 0," + r1
-      + "Z")
-      : (r0
-      ? "M" + r1 * c0 + "," + r1 * s0
-      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
-      + "L" + r0 * c1 + "," + r0 * s1
-      + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0
-      + "Z"
-      : "M" + r1 * c0 + "," + r1 * s0
-      + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1
-      + "L0,0"
-      + "Z");
-  }
-
-  arc.innerRadius = function(v) {
-    if (!arguments.length) return innerRadius;
-    innerRadius = d3.functor(v);
-    return arc;
-  };
-
-  arc.outerRadius = function(v) {
-    if (!arguments.length) return outerRadius;
-    outerRadius = d3.functor(v);
-    return arc;
-  };
-
-  arc.startAngle = function(v) {
-    if (!arguments.length) return startAngle;
-    startAngle = d3.functor(v);
-    return arc;
-  };
-
-  arc.endAngle = function(v) {
-    if (!arguments.length) return endAngle;
-    endAngle = d3.functor(v);
-    return arc;
-  };
-
-  arc.centroid = function() {
-    var r = (innerRadius.apply(this, arguments)
-        + outerRadius.apply(this, arguments)) / 2,
-        a = (startAngle.apply(this, arguments)
-        + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
-    return [Math.cos(a) * r, Math.sin(a) * r];
-  };
-
-  return arc;
-};
-
-var d3_svg_arcOffset = -Math.PI / 2,
-    d3_svg_arcMax = 2 * Math.PI - 1e-6;
-
-function d3_svg_arcInnerRadius(d) {
-  return d.innerRadius;
-}
-
-function d3_svg_arcOuterRadius(d) {
-  return d.outerRadius;
-}
-
-function d3_svg_arcStartAngle(d) {
-  return d.startAngle;
-}
-
-function d3_svg_arcEndAngle(d) {
-  return d.endAngle;
-}
-function d3_svg_line(projection) {
-  var x = d3_svg_lineX,
-      y = d3_svg_lineY,
-      interpolate = "linear",
-      interpolator = d3_svg_lineInterpolators[interpolate],
-      tension = .7;
-
-  function line(d) {
-    return d.length < 1 ? null : "M" + interpolator(projection(d3_svg_linePoints(this, d, x, y)), tension);
-  }
-
-  line.x = function(v) {
-    if (!arguments.length) return x;
-    x = v;
-    return line;
-  };
-
-  line.y = function(v) {
-    if (!arguments.length) return y;
-    y = v;
-    return line;
-  };
-
-  line.interpolate = function(v) {
-    if (!arguments.length) return interpolate;
-    interpolator = d3_svg_lineInterpolators[interpolate = v];
-    return line;
-  };
-
-  line.tension = function(v) {
-    if (!arguments.length) return tension;
-    tension = v;
-    return line;
-  };
-
-  return line;
-}
-
-d3.svg.line = function() {
-  return d3_svg_line(Object);
-};
-
-// Converts the specified array of data into an array of points
-// (x-y tuples), by evaluating the specified `x` and `y` functions on each
-// data point. The `this` context of the evaluated functions is the specified
-// "self" object; each function is passed the current datum and index.
-function d3_svg_linePoints(self, d, x, y) {
-  var points = [],
-      i = -1,
-      n = d.length,
-      fx = typeof x === "function",
-      fy = typeof y === "function",
-      value;
-  if (fx && fy) {
-    while (++i < n) points.push([
-      x.call(self, value = d[i], i),
-      y.call(self, value, i)
-    ]);
-  } else if (fx) {
-    while (++i < n) points.push([x.call(self, d[i], i), y]);
-  } else if (fy) {
-    while (++i < n) points.push([x, y.call(self, d[i], i)]);
-  } else {
-    while (++i < n) points.push([x, y]);
-  }
-  return points;
-}
-
-// The default `x` property, which references d[0].
-function d3_svg_lineX(d) {
-  return d[0];
-}
-
-// The default `y` property, which references d[1].
-function d3_svg_lineY(d) {
-  return d[1];
-}
-
-// The various interpolators supported by the `line` class.
-var d3_svg_lineInterpolators = {
-  "linear": d3_svg_lineLinear,
-  "step-before": d3_svg_lineStepBefore,
-  "step-after": d3_svg_lineStepAfter,
-  "basis": d3_svg_lineBasis,
-  "basis-open": d3_svg_lineBasisOpen,
-  "basis-closed": d3_svg_lineBasisClosed,
-  "bundle": d3_svg_lineBundle,
-  "cardinal": d3_svg_lineCardinal,
-  "cardinal-open": d3_svg_lineCardinalOpen,
-  "cardinal-closed": d3_svg_lineCardinalClosed,
-  "monotone": d3_svg_lineMonotone
-};
-
-// Linear interpolation; generates "L" commands.
-function d3_svg_lineLinear(points) {
-  var path = [],
-      i = 0,
-      n = points.length,
-      p = points[0];
-  path.push(p[0], ",", p[1]);
-  while (++i < n) path.push("L", (p = points[i])[0], ",", p[1]);
-  return path.join("");
-}
-
-// Step interpolation; generates "H" and "V" commands.
-function d3_svg_lineStepBefore(points) {
-  var path = [],
-      i = 0,
-      n = points.length,
-      p = points[0];
-  path.push(p[0], ",", p[1]);
-  while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
-  return path.join("");
-}
-
-// Step interpolation; generates "H" and "V" commands.
-function d3_svg_lineStepAfter(points) {
-  var path = [],
-      i = 0,
-      n = points.length,
-      p = points[0];
-  path.push(p[0], ",", p[1]);
-  while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
-  return path.join("");
-}
-
-// Open cardinal spline interpolation; generates "C" commands.
-function d3_svg_lineCardinalOpen(points, tension) {
-  return points.length < 4
-      ? d3_svg_lineLinear(points)
-      : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1),
-        d3_svg_lineCardinalTangents(points, tension));
-}
-
-// Closed cardinal spline interpolation; generates "C" commands.
-function d3_svg_lineCardinalClosed(points, tension) {
-  return points.length < 3
-      ? d3_svg_lineLinear(points)
-      : points[0] + d3_svg_lineHermite((points.push(points[0]), points),
-        d3_svg_lineCardinalTangents([points[points.length - 2]]
-        .concat(points, [points[1]]), tension));
-}
-
-// Cardinal spline interpolation; generates "C" commands.
-function d3_svg_lineCardinal(points, tension, closed) {
-  return points.length < 3
-      ? d3_svg_lineLinear(points)
-      : points[0] + d3_svg_lineHermite(points,
-        d3_svg_lineCardinalTangents(points, tension));
-}
-
-// Hermite spline construction; generates "C" commands.
-function d3_svg_lineHermite(points, tangents) {
-  if (tangents.length < 1
-      || (points.length != tangents.length
-      && points.length != tangents.length + 2)) {
-    return d3_svg_lineLinear(points);
-  }
-
-  var quad = points.length != tangents.length,
-      path = "",
-      p0 = points[0],
-      p = points[1],
-      t0 = tangents[0],
-      t = t0,
-      pi = 1;
-
-  if (quad) {
-    path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3)
-        + "," + p[0] + "," + p[1];
-    p0 = points[1];
-    pi = 2;
-  }
-
-  if (tangents.length > 1) {
-    t = tangents[1];
-    p = points[pi];
-    pi++;
-    path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1])
-        + "," + (p[0] - t[0]) + "," + (p[1] - t[1])
-        + "," + p[0] + "," + p[1];
-    for (var i = 2; i < tangents.length; i++, pi++) {
-      p = points[pi];
-      t = tangents[i];
-      path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1])
-          + "," + p[0] + "," + p[1];
-    }
-  }
-
-  if (quad) {
-    var lp = points[pi];
-    path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3)
-        + "," + lp[0] + "," + lp[1];
-  }
-
-  return path;
-}
-
-// Generates tangents for a cardinal spline.
-function d3_svg_lineCardinalTangents(points, tension) {
-  var tangents = [],
-      a = (1 - tension) / 2,
-      p0,
-      p1 = points[0],
-      p2 = points[1],
-      i = 1,
-      n = points.length;
-  while (++i < n) {
-    p0 = p1;
-    p1 = p2;
-    p2 = points[i];
-    tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]);
-  }
-  return tangents;
-}
-
-// B-spline interpolation; generates "C" commands.
-function d3_svg_lineBasis(points) {
-  if (points.length < 3) return d3_svg_lineLinear(points);
-  var path = [],
-      i = 1,
-      n = points.length,
-      pi = points[0],
-      x0 = pi[0],
-      y0 = pi[1],
-      px = [x0, x0, x0, (pi = points[1])[0]],
-      py = [y0, y0, y0, pi[1]];
-  path.push(x0, ",", y0);
-  d3_svg_lineBasisBezier(path, px, py);
-  while (++i < n) {
-    pi = points[i];
-    px.shift(); px.push(pi[0]);
-    py.shift(); py.push(pi[1]);
-    d3_svg_lineBasisBezier(path, px, py);
-  }
-  i = -1;
-  while (++i < 2) {
-    px.shift(); px.push(pi[0]);
-    py.shift(); py.push(pi[1]);
-    d3_svg_lineBasisBezier(path, px, py);
-  }
-  return path.join("");
-}
-
-// Open B-spline interpolation; generates "C" commands.
-function d3_svg_lineBasisOpen(points) {
-  if (points.length < 4) return d3_svg_lineLinear(points);
-  var path = [],
-      i = -1,
-      n = points.length,
-      pi,
-      px = [0],
-      py = [0];
-  while (++i < 3) {
-    pi = points[i];
-    px.push(pi[0]);
-    py.push(pi[1]);
-  }
-  path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px)
-    + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
-  --i; while (++i < n) {
-    pi = points[i];
-    px.shift(); px.push(pi[0]);
-    py.shift(); py.push(pi[1]);
-    d3_svg_lineBasisBezier(path, px, py);
-  }
-  return path.join("");
-}
-
-// Closed B-spline interpolation; generates "C" commands.
-function d3_svg_lineBasisClosed(points) {
-  var path,
-      i = -1,
-      n = points.length,
-      m = n + 4,
-      pi,
-      px = [],
-      py = [];
-  while (++i < 4) {
-    pi = points[i % n];
-    px.push(pi[0]);
-    py.push(pi[1]);
-  }
-  path = [
-    d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",",
-    d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)
-  ];
-  --i; while (++i < m) {
-    pi = points[i % n];
-    px.shift(); px.push(pi[0]);
-    py.shift(); py.push(pi[1]);
-    d3_svg_lineBasisBezier(path, px, py);
-  }
-  return path.join("");
-}
-
-function d3_svg_lineBundle(points, tension) {
-  var n = points.length - 1,
-      x0 = points[0][0],
-      y0 = points[0][1],
-      dx = points[n][0] - x0,
-      dy = points[n][1] - y0,
-      i = -1,
-      p,
-      t;
-  while (++i <= n) {
-    p = points[i];
-    t = i / n;
-    p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
-    p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
-  }
-  return d3_svg_lineBasis(points);
-}
-
-// Returns the dot product of the given four-element vectors.
-function d3_svg_lineDot4(a, b) {
-  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
-}
-
-// Matrix to transform basis (b-spline) control points to bezier
-// control points. Derived from FvD 11.2.8.
-var d3_svg_lineBasisBezier1 = [0, 2/3, 1/3, 0],
-    d3_svg_lineBasisBezier2 = [0, 1/3, 2/3, 0],
-    d3_svg_lineBasisBezier3 = [0, 1/6, 2/3, 1/6];
-
-// Pushes a "C" Bézier curve onto the specified path array, given the
-// two specified four-element arrays which define the control points.
-function d3_svg_lineBasisBezier(path, x, y) {
-  path.push(
-      "C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x),
-      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y),
-      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x),
-      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y),
-      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x),
-      ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
-}
-
-// Computes the slope from points p0 to p1.
-function d3_svg_lineSlope(p0, p1) {
-  return (p1[1] - p0[1]) / (p1[0] - p0[0]);
-}
-
-// Compute three-point differences for the given points.
-// http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_difference
-function d3_svg_lineFiniteDifferences(points) {
-  var i = 0,
-      j = points.length - 1,
-      m = [],
-      p0 = points[0],
-      p1 = points[1],
-      d = m[0] = d3_svg_lineSlope(p0, p1);
-  while (++i < j) {
-    m[i] = d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]));
-  }
-  m[i] = d;
-  return m;
-}
-
-// Interpolates the given points using Fritsch-Carlson Monotone cubic Hermite
-// interpolation. Returns an array of tangent vectors. For details, see
-// http://en.wikipedia.org/wiki/Monotone_cubic_interpolation
-function d3_svg_lineMonotoneTangents(points) {
-  var tangents = [],
-      d,
-      a,
-      b,
-      s,
-      m = d3_svg_lineFiniteDifferences(points),
-      i = -1,
-      j = points.length - 1;
-
-  // The first two steps are done by computing finite-differences:
-  // 1. Compute the slopes of the secant lines between successive points.
-  // 2. Initialize the tangents at every point as the average of the secants.
-
-  // Then, for each segment…
-  while (++i < j) {
-    d = d3_svg_lineSlope(points[i], points[i + 1]);
-
-    // 3. If two successive yk = y{k + 1} are equal (i.e., d is zero), then set
-    // mk = m{k + 1} = 0 as the spline connecting these points must be flat to
-    // preserve monotonicity. Ignore step 4 and 5 for those k.
-
-    if (Math.abs(d) < 1e-6) {
-      m[i] = m[i + 1] = 0;
-    } else {
-      // 4. Let ak = mk / dk and bk = m{k + 1} / dk.
-      a = m[i] / d;
-      b = m[i + 1] / d;
-
-      // 5. Prevent overshoot and ensure monotonicity by restricting the
-      // magnitude of vector <ak, bk> to a circle of radius 3.
-      s = a * a + b * b;
-      if (s > 9) {
-        s = d * 3 / Math.sqrt(s);
-        m[i] = s * a;
-        m[i + 1] = s * b;
-      }
-    }
-  }
-
-  // Compute the normalized tangent vector from the slopes. Note that if x is
-  // not monotonic, it's possible that the slope will be infinite, so we protect
-  // against NaN by setting the coordinate to zero.
-  i = -1; while (++i <= j) {
-    s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0])
-      / (6 * (1 + m[i] * m[i]));
-    tangents.push([s || 0, m[i] * s || 0]);
-  }
-
-  return tangents;
-}
-
-function d3_svg_lineMonotone(points) {
-  return points.length < 3
-      ? d3_svg_lineLinear(points)
-      : points[0] +
-        d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
-}
-d3.svg.line.radial = function() {
-  var line = d3_svg_line(d3_svg_lineRadial);
-  line.radius = line.x, delete line.x;
-  line.angle = line.y, delete line.y;
-  return line;
-};
-
-function d3_svg_lineRadial(points) {
-  var point,
-      i = -1,
-      n = points.length,
-      r,
-      a;
-  while (++i < n) {
-    point = points[i];
-    r = point[0];
-    a = point[1] + d3_svg_arcOffset;
-    point[0] = r * Math.cos(a);
-    point[1] = r * Math.sin(a);
-  }
-  return points;
-}
-function d3_svg_area(projection) {
-  var x0 = d3_svg_lineX,
-      x1 = d3_svg_lineX,
-      y0 = 0,
-      y1 = d3_svg_lineY,
-      interpolate = "linear",
-      interpolator = d3_svg_lineInterpolators[interpolate],
-      tension = .7;
-
-  function area(d) {
-    if (d.length < 1) return null;
-    var points0 = d3_svg_linePoints(this, d, x0, y0),
-        points1 = d3_svg_linePoints(this, d, x0 === x1 ? d3_svg_areaX(points0) : x1, y0 === y1 ? d3_svg_areaY(points0) : y1);
-    return "M" + interpolator(projection(points1), tension)
-         + "L" + interpolator(projection(points0.reverse()), tension)
-         + "Z";
-  }
-
-  area.x = function(x) {
-    if (!arguments.length) return x1;
-    x0 = x1 = x;
-    return area;
-  };
-
-  area.x0 = function(x) {
-    if (!arguments.length) return x0;
-    x0 = x;
-    return area;
-  };
-
-  area.x1 = function(x) {
-    if (!arguments.length) return x1;
-    x1 = x;
-    return area;
-  };
-
-  area.y = function(y) {
-    if (!arguments.length) return y1;
-    y0 = y1 = y;
-    return area;
-  };
-
-  area.y0 = function(y) {
-    if (!arguments.length) return y0;
-    y0 = y;
-    return area;
-  };
-
-  area.y1 = function(y) {
-    if (!arguments.length) return y1;
-    y1 = y;
-    return area;
-  };
-
-  area.interpolate = function(x) {
-    if (!arguments.length) return interpolate;
-    interpolator = d3_svg_lineInterpolators[interpolate = x];
-    return area;
-  };
-
-  area.tension = function(x) {
-    if (!arguments.length) return tension;
-    tension = x;
-    return area;
-  };
-
-  return area;
-}
-
-d3.svg.area = function() {
-  return d3_svg_area(Object);
-};
-
-function d3_svg_areaX(points) {
-  return function(d, i) {
-    return points[i][0];
-  };
-}
-
-function d3_svg_areaY(points) {
-  return function(d, i) {
-    return points[i][1];
-  };
-}
-d3.svg.area.radial = function() {
-  var area = d3_svg_area(d3_svg_lineRadial);
-  area.radius = area.x, delete area.x;
-  area.innerRadius = area.x0, delete area.x0;
-  area.outerRadius = area.x1, delete area.x1;
-  area.angle = area.y, delete area.y;
-  area.startAngle = area.y0, delete area.y0;
-  area.endAngle = area.y1, delete area.y1;
-  return area;
-};
-d3.svg.chord = function() {
-  var source = d3_svg_chordSource,
-      target = d3_svg_chordTarget,
-      radius = d3_svg_chordRadius,
-      startAngle = d3_svg_arcStartAngle,
-      endAngle = d3_svg_arcEndAngle;
-
-  // TODO Allow control point to be customized.
-
-  function chord(d, i) {
-    var s = subgroup(this, source, d, i),
-        t = subgroup(this, target, d, i);
-    return "M" + s.p0
-      + arc(s.r, s.p1) + (equals(s, t)
-      ? curve(s.r, s.p1, s.r, s.p0)
-      : curve(s.r, s.p1, t.r, t.p0)
-      + arc(t.r, t.p1)
-      + curve(t.r, t.p1, s.r, s.p0))
-      + "Z";
-  }
-
-  function subgroup(self, f, d, i) {
-    var subgroup = f.call(self, d, i),
-        r = radius.call(self, subgroup, i),
-        a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset,
-        a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
-    return {
-      r: r,
-      a0: a0,
-      a1: a1,
-      p0: [r * Math.cos(a0), r * Math.sin(a0)],
-      p1: [r * Math.cos(a1), r * Math.sin(a1)]
-    };
-  }
-
-  function equals(a, b) {
-    return a.a0 == b.a0 && a.a1 == b.a1;
-  }
-
-  function arc(r, p) {
-    return "A" + r + "," + r + " 0 0,1 " + p;
-  }
-
-  function curve(r0, p0, r1, p1) {
-    return "Q 0,0 " + p1;
-  }
-
-  chord.radius = function(v) {
-    if (!arguments.length) return radius;
-    radius = d3.functor(v);
-    return chord;
-  };
-
-  chord.source = function(v) {
-    if (!arguments.length) return source;
-    source = d3.functor(v);
-    return chord;
-  };
-
-  chord.target = function(v) {
-    if (!arguments.length) return target;
-    target = d3.functor(v);
-    return chord;
-  };
-
-  chord.startAngle = function(v) {
-    if (!arguments.length) return startAngle;
-    startAngle = d3.functor(v);
-    return chord;
-  };
-
-  chord.endAngle = function(v) {
-    if (!arguments.length) return endAngle;
-    endAngle = d3.functor(v);
-    return chord;
-  };
-
-  return chord;
-};
-
-function d3_svg_chordSource(d) {
-  return d.source;
-}
-
-function d3_svg_chordTarget(d) {
-  return d.target;
-}
-
-function d3_svg_chordRadius(d) {
-  return d.radius;
-}
-
-function d3_svg_chordStartAngle(d) {
-  return d.startAngle;
-}
-
-function d3_svg_chordEndAngle(d) {
-  return d.endAngle;
-}
-d3.svg.diagonal = function() {
-  var source = d3_svg_chordSource,
-      target = d3_svg_chordTarget,
-      projection = d3_svg_diagonalProjection;
-
-  function diagonal(d, i) {
-    var p0 = source.call(this, d, i),
-        p3 = target.call(this, d, i),
-        m = (p0.y + p3.y) / 2,
-        p = [p0, {x: p0.x, y: m}, {x: p3.x, y: m}, p3];
-    p = p.map(projection);
-    return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
-  }
-
-  diagonal.source = function(x) {
-    if (!arguments.length) return source;
-    source = d3.functor(x);
-    return diagonal;
-  };
-
-  diagonal.target = function(x) {
-    if (!arguments.length) return target;
-    target = d3.functor(x);
-    return diagonal;
-  };
-
-  diagonal.projection = function(x) {
-    if (!arguments.length) return projection;
-    projection = x;
-    return diagonal;
-  };
-
-  return diagonal;
-};
-
-function d3_svg_diagonalProjection(d) {
-  return [d.x, d.y];
-}
-d3.svg.diagonal.radial = function() {
-  var diagonal = d3.svg.diagonal(),
-      projection = d3_svg_diagonalProjection,
-      projection_ = diagonal.projection;
-
-  diagonal.projection = function(x) {
-    return arguments.length
-        ? projection_(d3_svg_diagonalRadialProjection(projection = x))
-        : projection;
-  };
-
-  return diagonal;
-};
-
-function d3_svg_diagonalRadialProjection(projection) {
-  return function() {
-    var d = projection.apply(this, arguments),
-        r = d[0],
-        a = d[1] + d3_svg_arcOffset;
-    return [r * Math.cos(a), r * Math.sin(a)];
-  };
-}
-d3.svg.mouse = function(container) {
-  return d3_svg_mousePoint(container, d3.event);
-};
-
-// https://bugs.webkit.org/show_bug.cgi?id=44083
-var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0;
-
-function d3_svg_mousePoint(container, e) {
-  var point = (container.ownerSVGElement || container).createSVGPoint();
-  if ((d3_mouse_bug44083 < 0) && (window.scrollX || window.scrollY)) {
-    var svg = d3.select(document.body)
-      .append("svg:svg")
-        .style("position", "absolute")
-        .style("top", 0)
-        .style("left", 0);
-    var ctm = svg[0][0].getScreenCTM();
-    d3_mouse_bug44083 = !(ctm.f || ctm.e);
-    svg.remove();
-  }
-  if (d3_mouse_bug44083) {
-    point.x = e.pageX;
-    point.y = e.pageY;
-  } else {
-    point.x = e.clientX;
-    point.y = e.clientY;
-  }
-  point = point.matrixTransform(container.getScreenCTM().inverse());
-  return [point.x, point.y];
-};
-d3.svg.touches = function(container) {
-  var touches = d3.event.touches;
-  return touches ? Array.prototype.map.call(touches, function(touch) {
-    var point = d3_svg_mousePoint(container, touch);
-    point.identifier = touch.identifier;
-    return point;
-  }) : [];
-};
-d3.svg.symbol = function() {
-  var type = d3_svg_symbolType,
-      size = d3_svg_symbolSize;
-
-  function symbol(d, i) {
-    return (d3_svg_symbols[type.call(this, d, i)]
-        || d3_svg_symbols.circle)
-        (size.call(this, d, i));
-  }
-
-  symbol.type = function(x) {
-    if (!arguments.length) return type;
-    type = d3.functor(x);
-    return symbol;
-  };
-
-  // size of symbol in square pixels
-  symbol.size = function(x) {
-    if (!arguments.length) return size;
-    size = d3.functor(x);
-    return symbol;
-  };
-
-  return symbol;
-};
-
-function d3_svg_symbolSize() {
-  return 64;
-}
-
-function d3_svg_symbolType() {
-  return "circle";
-}
-
-// TODO cross-diagonal?
-var d3_svg_symbols = {
-  "circle": function(size) {
-    var r = Math.sqrt(size / Math.PI);
-    return "M0," + r
-        + "A" + r + "," + r + " 0 1,1 0," + (-r)
-        + "A" + r + "," + r + " 0 1,1 0," + r
-        + "Z";
-  },
-  "cross": function(size) {
-    var r = Math.sqrt(size / 5) / 2;
-    return "M" + -3 * r + "," + -r
-        + "H" + -r
-        + "V" + -3 * r
-        + "H" + r
-        + "V" + -r
-        + "H" + 3 * r
-        + "V" + r
-        + "H" + r
-        + "V" + 3 * r
-        + "H" + -r
-        + "V" + r
-        + "H" + -3 * r
-        + "Z";
-  },
-  "diamond": function(size) {
-    var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)),
-        rx = ry * d3_svg_symbolTan30;
-    return "M0," + -ry
-        + "L" + rx + ",0"
-        + " 0," + ry
-        + " " + -rx + ",0"
-        + "Z";
-  },
-  "square": function(size) {
-    var r = Math.sqrt(size) / 2;
-    return "M" + -r + "," + -r
-        + "L" + r + "," + -r
-        + " " + r + "," + r
-        + " " + -r + "," + r
-        + "Z";
-  },
-  "triangle-down": function(size) {
-    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
-        ry = rx * d3_svg_symbolSqrt3 / 2;
-    return "M0," + ry
-        + "L" + rx +"," + -ry
-        + " " + -rx + "," + -ry
-        + "Z";
-  },
-  "triangle-up": function(size) {
-    var rx = Math.sqrt(size / d3_svg_symbolSqrt3),
-        ry = rx * d3_svg_symbolSqrt3 / 2;
-    return "M0," + -ry
-        + "L" + rx +"," + ry
-        + " " + -rx + "," + ry
-        + "Z";
-  }
-};
-
-d3.svg.symbolTypes = d3.keys(d3_svg_symbols);
-
-var d3_svg_symbolSqrt3 = Math.sqrt(3),
-    d3_svg_symbolTan30 = Math.tan(30 * Math.PI / 180);
-d3.svg.axis = function() {
-  var scale = d3.scale.linear(),
-      orient = "bottom",
-      tickMajorSize = 6,
-      tickMinorSize = 6,
-      tickEndSize = 6,
-      tickPadding = 3,
-      tickArguments_ = [10],
-      tickFormat_,
-      tickSubdivide = 0;
-
-  function axis(selection) {
-    selection.each(function(d, i, j) {
-      var g = d3.select(this);
-
-      // Ticks.
-      var ticks = scale.ticks.apply(scale, tickArguments_),
-          tickFormat = tickFormat_ == null ? scale.tickFormat.apply(scale, tickArguments_) : tickFormat_;
-
-      // Minor ticks.
-      var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide),
-          subtick = g.selectAll(".minor").data(subticks, String),
-          subtickEnter = subtick.enter().insert("svg:line", "g").attr("class", "tick minor").style("opacity", 1e-6),
-          subtickExit = transition(subtick.exit()).style("opacity", 1e-6).remove(),
-          subtickUpdate = transition(subtick).style("opacity", 1);
-
-      // Major ticks.
-      var tick = g.selectAll("g").data(ticks, String),
-          tickEnter = tick.enter().insert("svg:g", "path").style("opacity", 1e-6),
-          tickExit = transition(tick.exit()).style("opacity", 1e-6).remove(),
-          tickUpdate = transition(tick).style("opacity", 1),
-          tickTransform;
-
-      // Domain.
-      var range = d3_scaleExtent(scale.range()),
-          path = g.selectAll(".domain").data([0]),
-          pathEnter = path.enter().append("svg:path").attr("class", "domain"),
-          pathUpdate = transition(path);
-
-      // Stash the new scale and grab the old scale.
-      var scale0 = this.__chart__ || scale;
-      this.__chart__ = scale.copy();
-
-      tickEnter.append("svg:line").attr("class", "tick");
-      tickEnter.append("svg:text");
-      tickUpdate.select("text").text(tickFormat);
-
-      switch (orient) {
-        case "bottom": {
-          tickTransform = d3_svg_axisX;
-          subtickUpdate.attr("y2", tickMinorSize);
-          tickEnter.select("text").attr("dy", ".71em").attr("text-anchor", "middle");
-          tickUpdate.select("line").attr("y2", tickMajorSize);
-          tickUpdate.select("text").attr("y", Math.max(tickMajorSize, 0) + tickPadding);
-          pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
-          break;
-        }
-        case "top": {
-          tickTransform = d3_svg_axisX;
-          subtickUpdate.attr("y2", -tickMinorSize);
-          tickEnter.select("text").attr("text-anchor", "middle");
-          tickUpdate.select("line").attr("y2", -tickMajorSize);
-          tickUpdate.select("text").attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
-          pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
-          break;
-        }
-        case "left": {
-          tickTransform = d3_svg_axisY;
-          subtickUpdate.attr("x2", -tickMinorSize);
-          tickEnter.select("text").attr("dy", ".32em").attr("text-anchor", "end");
-          tickUpdate.select("line").attr("x2", -tickMajorSize);
-          tickUpdate.select("text").attr("x", -(Math.max(tickMajorSize, 0) + tickPadding));
-          pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
-          break;
-        }
-        case "right": {
-          tickTransform = d3_svg_axisY;
-          subtickUpdate.attr("x2", tickMinorSize);
-          tickEnter.select("text").attr("dy", ".32em");
-          tickUpdate.select("line").attr("x2", tickMajorSize);
-          tickUpdate.select("text").attr("x", Math.max(tickMajorSize, 0) + tickPadding);
-          pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
-          break;
-        }
-      }
-
-      tickEnter.call(tickTransform, scale0);
-      tickUpdate.call(tickTransform, scale);
-      tickExit.call(tickTransform, scale);
-
-      subtickEnter.call(tickTransform, scale0);
-      subtickUpdate.call(tickTransform, scale);
-      subtickExit.call(tickTransform, scale);
-
-      function transition(o) {
-        return selection.delay ? o.transition()
-            .delay(selection[j][i].delay)
-            .duration(selection[j][i].duration)
-            .ease(selection.ease()) : o;
-      }
-    });
-  }
-
-  axis.scale = function(x) {
-    if (!arguments.length) return scale;
-    scale = x;
-    return axis;
-  };
-
-  axis.orient = function(x) {
-    if (!arguments.length) return orient;
-    orient = x;
-    return axis;
-  };
-
-  axis.ticks = function() {
-    if (!arguments.length) return tickArguments_;
-    tickArguments_ = arguments;
-    return axis;
-  };
-
-  axis.tickFormat = function(x) {
-    if (!arguments.length) return tickFormat_;
-    tickFormat_ = x;
-    return axis;
-  };
-
-  axis.tickSize = function(x, y, z) {
-    if (!arguments.length) return tickMajorSize;
-    var n = arguments.length - 1;
-    tickMajorSize = +x;
-    tickMinorSize = n > 1 ? +y : tickMajorSize;
-    tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
-    return axis;
-  };
-
-  axis.tickPadding = function(x) {
-    if (!arguments.length) return tickPadding;
-    tickPadding = +x;
-    return axis;
-  };
-
-  axis.tickSubdivide = function(x) {
-    if (!arguments.length) return tickSubdivide;
-    tickSubdivide = +x;
-    return axis;
-  };
-
-  return axis;
-};
-
-function d3_svg_axisX(selection, x) {
-  selection.attr("transform", function(d) { return "translate(" + x(d) + ",0)"; });
-}
-
-function d3_svg_axisY(selection, y) {
-  selection.attr("transform", function(d) { return "translate(0," + y(d) + ")"; });
-}
-
-function d3_svg_axisSubdivide(scale, ticks, m) {
-  subticks = [];
-  if (m && ticks.length > 1) {
-    var extent = d3_scaleExtent(scale.domain()),
-        subticks,
-        i = -1,
-        n = ticks.length,
-        d = (ticks[1] - ticks[0]) / ++m,
-        j,
-        v;
-    while (++i < n) {
-      for (j = m; --j > 0;) {
-        if ((v = +ticks[i] - j * d) >= extent[0]) {
-          subticks.push(v);
-        }
-      }
-    }
-    for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1];) {
-      subticks.push(v);
-    }
-  }
-  return subticks;
-}
-d3.behavior = {};
-d3.behavior.drag = function() {
-  var event = d3.dispatch("drag", "dragstart", "dragend");
-
-  function drag() {
-    this
-        .on("mousedown.drag", mousedown)
-        .on("touchstart.drag", mousedown);
-
-    d3.select(window)
-        .on("mousemove.drag", d3_behavior_dragMove)
-        .on("touchmove.drag", d3_behavior_dragMove)
-        .on("mouseup.drag", d3_behavior_dragUp, true)
-        .on("touchend.drag", d3_behavior_dragUp, true)
-        .on("click.drag", d3_behavior_dragClick, true);
-  }
-
-  // snapshot the local context for subsequent dispatch
-  function start() {
-    d3_behavior_dragEvent = event;
-    d3_behavior_dragOffset = d3_behavior_dragPoint((d3_behavior_dragTarget = this).parentNode);
-    d3_behavior_dragMoved = 0;
-    d3_behavior_dragArguments = arguments;
-  }
-
-  function mousedown() {
-    start.apply(this, arguments);
-    d3_behavior_dragDispatch("dragstart");
-  }
-
-  drag.on = function(type, listener) {
-    event[type].add(listener);
-    return drag;
-  };
-
-  return drag;
-};
-
-var d3_behavior_dragEvent,
-    d3_behavior_dragTarget,
-    d3_behavior_dragArguments,
-    d3_behavior_dragOffset,
-    d3_behavior_dragMoved,
-    d3_behavior_dragStopClick;
-
-function d3_behavior_dragDispatch(type) {
-  var o = d3.event, p = d3_behavior_dragTarget.parentNode, dx = 0, dy = 0;
-
-  if (p) {
-    p = d3_behavior_dragPoint(p);
-    dx = p[0] - d3_behavior_dragOffset[0];
-    dy = p[1] - d3_behavior_dragOffset[1];
-    d3_behavior_dragOffset = p;
-    d3_behavior_dragMoved |= dx | dy;
-  }
-
-  try {
-    d3.event = {dx: dx, dy: dy};
-    d3_behavior_dragEvent[type].dispatch.apply(d3_behavior_dragTarget, d3_behavior_dragArguments);
-  } finally {
-    d3.event = o;
-  }
-
-  o.preventDefault();
-}
-
-function d3_behavior_dragPoint(container) {
-  return d3.event.touches
-      ? d3.svg.touches(container)[0]
-      : d3.svg.mouse(container);
-}
-
-function d3_behavior_dragMove() {
-  if (!d3_behavior_dragTarget) return;
-  var parent = d3_behavior_dragTarget.parentNode;
-
-  // O NOES! The drag element was removed from the DOM.
-  if (!parent) return d3_behavior_dragUp();
-
-  d3_behavior_dragDispatch("drag");
-  d3_behavior_dragCancel();
-}
-
-function d3_behavior_dragUp() {
-  if (!d3_behavior_dragTarget) return;
-  d3_behavior_dragDispatch("dragend");
-  d3_behavior_dragTarget = null;
-
-  // If the node was moved, prevent the mouseup from propagating.
-  // Also prevent the subsequent click from propagating (e.g., for anchors).
-  if (d3_behavior_dragMoved) {
-    d3_behavior_dragStopClick = true;
-    d3_behavior_dragCancel();
-  }
-}
-
-function d3_behavior_dragClick() {
-  if (d3_behavior_dragStopClick) {
-    d3_behavior_dragCancel();
-    d3_behavior_dragStopClick = false;
-  }
-}
-
-function d3_behavior_dragCancel() {
-  d3.event.stopPropagation();
-  d3.event.preventDefault();
-}
-// TODO unbind zoom behavior?
-// TODO unbind listener?
-d3.behavior.zoom = function() {
-  var xyz = [0, 0, 0],
-      event = d3.dispatch("zoom");
-
-  function zoom() {
-    this
-        .on("mousedown.zoom", mousedown)
-        .on("mousewheel.zoom", mousewheel)
-        .on("DOMMouseScroll.zoom", mousewheel)
-        .on("dblclick.zoom", dblclick)
-        .on("touchstart.zoom", touchstart);
-
-    d3.select(window)
-        .on("mousemove.zoom", d3_behavior_zoomMousemove)
-        .on("mouseup.zoom", d3_behavior_zoomMouseup)
-        .on("touchmove.zoom", d3_behavior_zoomTouchmove)
-        .on("touchend.zoom", d3_behavior_zoomTouchup)
-        .on("click.zoom", d3_behavior_zoomClick, true);
-  }
-
-  // snapshot the local context for subsequent dispatch
-  function start() {
-    d3_behavior_zoomXyz = xyz;
-    d3_behavior_zoomDispatch = event.zoom.dispatch;
-    d3_behavior_zoomTarget = this;
-    d3_behavior_zoomArguments = arguments;
-  }
-
-  function mousedown() {
-    start.apply(this, arguments);
-    d3_behavior_zoomPanning = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
-    d3_behavior_zoomMoved = false;
-    d3.event.preventDefault();
-    window.focus();
-  }
-
-  // store starting mouse location
-  function mousewheel() {
-    start.apply(this, arguments);
-    if (!d3_behavior_zoomZooming) d3_behavior_zoomZooming = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
-    d3_behavior_zoomTo(d3_behavior_zoomDelta() + xyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomZooming);
-  }
-
-  function dblclick() {
-    start.apply(this, arguments);
-    var mouse = d3.svg.mouse(d3_behavior_zoomTarget);
-    d3_behavior_zoomTo(d3.event.shiftKey ? Math.ceil(xyz[2] - 1) : Math.floor(xyz[2] + 1), mouse, d3_behavior_zoomLocation(mouse));
-  }
-
-  // doubletap detection
-  function touchstart() {
-    start.apply(this, arguments);
-    var touches = d3_behavior_zoomTouchup(),
-        touch,
-        now = Date.now();
-    if ((touches.length === 1) && (now - d3_behavior_zoomLast < 300)) {
-      d3_behavior_zoomTo(1 + Math.floor(xyz[2]), touch = touches[0], d3_behavior_zoomLocations[touch.identifier]);
-    }
-    d3_behavior_zoomLast = now;
-  }
-
-  zoom.on = function(type, listener) {
-    event[type].add(listener);
-    return zoom;
-  };
-
-  return zoom;
-};
-
-var d3_behavior_zoomDiv,
-    d3_behavior_zoomPanning,
-    d3_behavior_zoomZooming,
-    d3_behavior_zoomLocations = {}, // identifier -> location
-    d3_behavior_zoomLast = 0,
-    d3_behavior_zoomXyz,
-    d3_behavior_zoomDispatch,
-    d3_behavior_zoomTarget,
-    d3_behavior_zoomArguments,
-    d3_behavior_zoomMoved,
-    d3_behavior_zoomStopClick;
-
-function d3_behavior_zoomLocation(point) {
-  return [
-    point[0] - d3_behavior_zoomXyz[0],
-    point[1] - d3_behavior_zoomXyz[1],
-    d3_behavior_zoomXyz[2]
-  ];
-}
-
-// detect the pixels that would be scrolled by this wheel event
-function d3_behavior_zoomDelta() {
-
-  // mousewheel events are totally broken!
-  // https://bugs.webkit.org/show_bug.cgi?id=40441
-  // not only that, but Chrome and Safari differ in re. to acceleration!
-  if (!d3_behavior_zoomDiv) {
-    d3_behavior_zoomDiv = d3.select("body").append("div")
-        .style("visibility", "hidden")
-        .style("top", 0)
-        .style("height", 0)
-        .style("width", 0)
-        .style("overflow-y", "scroll")
-      .append("div")
-        .style("height", "2000px")
-      .node().parentNode;
-  }
-
-  var e = d3.event, delta;
-  try {
-    d3_behavior_zoomDiv.scrollTop = 1000;
-    d3_behavior_zoomDiv.dispatchEvent(e);
-    delta = 1000 - d3_behavior_zoomDiv.scrollTop;
-  } catch (error) {
-    delta = e.wheelDelta || (-e.detail * 5);
-  }
-
-  return delta * .005;
-}
-
-// Note: Since we don't rotate, it's possible for the touches to become
-// slightly detached from their original positions. Thus, we recompute the
-// touch points on touchend as well as touchstart!
-function d3_behavior_zoomTouchup() {
-  var touches = d3.svg.touches(d3_behavior_zoomTarget),
-      i = -1,
-      n = touches.length,
-      touch;
-  while (++i < n) d3_behavior_zoomLocations[(touch = touches[i]).identifier] = d3_behavior_zoomLocation(touch);
-  return touches;
-}
-
-function d3_behavior_zoomTouchmove() {
-  var touches = d3.svg.touches(d3_behavior_zoomTarget);
-  switch (touches.length) {
-
-    // single-touch pan
-    case 1: {
-      var touch = touches[0];
-      d3_behavior_zoomTo(d3_behavior_zoomXyz[2], touch, d3_behavior_zoomLocations[touch.identifier]);
-      break;
-    }
-
-    // double-touch pan + zoom
-    case 2: {
-      var p0 = touches[0],
-          p1 = touches[1],
-          p2 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2],
-          l0 = d3_behavior_zoomLocations[p0.identifier],
-          l1 = d3_behavior_zoomLocations[p1.identifier],
-          l2 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2, l0[2]];
-      d3_behavior_zoomTo(Math.log(d3.event.scale) / Math.LN2 + l0[2], p2, l2);
-      break;
-    }
-  }
-}
-
-function d3_behavior_zoomMousemove() {
-  d3_behavior_zoomZooming = null;
-  if (d3_behavior_zoomPanning) {
-    d3_behavior_zoomMoved = true;
-    d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning);
-  }
-}
-
-function d3_behavior_zoomMouseup() {
-  if (d3_behavior_zoomPanning) {
-    if (d3_behavior_zoomMoved) d3_behavior_zoomStopClick = true;
-    d3_behavior_zoomMousemove();
-    d3_behavior_zoomPanning = null;
-  }
-}
-
-function d3_behavior_zoomClick() {
-  if (d3_behavior_zoomStopClick) {
-    d3.event.stopPropagation();
-    d3.event.preventDefault();
-    d3_behavior_zoomStopClick = false;
-  }
-}
-
-function d3_behavior_zoomTo(z, x0, x1) {
-  var K = Math.pow(2, (d3_behavior_zoomXyz[2] = z) - x1[2]),
-      x = d3_behavior_zoomXyz[0] = x0[0] - K * x1[0],
-      y = d3_behavior_zoomXyz[1] = x0[1] - K * x1[1],
-      o = d3.event, // Events can be reentrant (e.g., focus).
-      k = Math.pow(2, z);
-
-  d3.event = {
-    scale: k,
-    translate: [x, y],
-    transform: function(sx, sy) {
-      if (sx) transform(sx, x);
-      if (sy) transform(sy, y);
-    }
-  };
-
-  function transform(scale, o) {
-    var domain = scale.__domain || (scale.__domain = scale.domain()),
-        range = scale.range().map(function(v) { return (v - o) / k; });
-    scale.domain(domain).domain(range.map(scale.invert));
-  }
-
-  try {
-    d3_behavior_zoomDispatch.apply(d3_behavior_zoomTarget, d3_behavior_zoomArguments);
-  } finally {
-    d3.event = o;
-  }
-
-  o.preventDefault();
-}
-})();
diff --git a/rtd_phosphonetx/source/html/demoapp/d3.layout.js b/rtd_phosphonetx/source/html/demoapp/d3.layout.js
deleted file mode 100755
index 6cc1d7161677597ae7f718a4c0cafb90a240a56a..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/html/demoapp/d3.layout.js
+++ /dev/null
@@ -1,1865 +0,0 @@
-(function(){d3.layout = {};
-// Implements hierarchical edge bundling using Holten's algorithm. For each
-// input link, a path is computed that travels through the tree, up the parent
-// hierarchy to the least common ancestor, and then back down to the destination
-// node. Each path is simply an array of nodes.
-d3.layout.bundle = function() {
-  return function(links) {
-    var paths = [],
-        i = -1,
-        n = links.length;
-    while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
-    return paths;
-  };
-};
-
-function d3_layout_bundlePath(link) {
-  var start = link.source,
-      end = link.target,
-      lca = d3_layout_bundleLeastCommonAncestor(start, end),
-      points = [start];
-  while (start !== lca) {
-    start = start.parent;
-    points.push(start);
-  }
-  var k = points.length;
-  while (end !== lca) {
-    points.splice(k, 0, end);
-    end = end.parent;
-  }
-  return points;
-}
-
-function d3_layout_bundleAncestors(node) {
-  var ancestors = [],
-      parent = node.parent;
-  while (parent != null) {
-    ancestors.push(node);
-    node = parent;
-    parent = parent.parent;
-  }
-  ancestors.push(node);
-  return ancestors;
-}
-
-function d3_layout_bundleLeastCommonAncestor(a, b) {
-  if (a === b) return a;
-  var aNodes = d3_layout_bundleAncestors(a),
-      bNodes = d3_layout_bundleAncestors(b),
-      aNode = aNodes.pop(),
-      bNode = bNodes.pop(),
-      sharedNode = null;
-  while (aNode === bNode) {
-    sharedNode = aNode;
-    aNode = aNodes.pop();
-    bNode = bNodes.pop();
-  }
-  return sharedNode;
-}
-d3.layout.chord = function() {
-  var chord = {},
-      chords,
-      groups,
-      matrix,
-      n,
-      padding = 0,
-      sortGroups,
-      sortSubgroups,
-      sortChords;
-
-  function relayout() {
-    var subgroups = {},
-        groupSums = [],
-        groupIndex = d3.range(n),
-        subgroupIndex = [],
-        k,
-        x,
-        x0,
-        i,
-        j;
-
-    chords = [];
-    groups = [];
-
-    // Compute the sum.
-    k = 0, i = -1; while (++i < n) {
-      x = 0, j = -1; while (++j < n) {
-        x += matrix[i][j];
-      }
-      groupSums.push(x);
-      subgroupIndex.push(d3.range(n));
-      k += x;
-    }
-
-    // Sort groups…
-    if (sortGroups) {
-      groupIndex.sort(function(a, b) {
-        return sortGroups(groupSums[a], groupSums[b]);
-      });
-    }
-
-    // Sort subgroups…
-    if (sortSubgroups) {
-      subgroupIndex.forEach(function(d, i) {
-        d.sort(function(a, b) {
-          return sortSubgroups(matrix[i][a], matrix[i][b]);
-        });
-      });
-    }
-
-    // Convert the sum to scaling factor for [0, 2pi].
-    // TODO Allow start and end angle to be specified.
-    // TODO Allow padding to be specified as percentage?
-    k = (2 * Math.PI - padding * n) / k;
-
-    // Compute the start and end angle for each group and subgroup.
-    x = 0, i = -1; while (++i < n) {
-      x0 = x, j = -1; while (++j < n) {
-        var di = groupIndex[i],
-            dj = subgroupIndex[i][j],
-            v = matrix[di][dj];
-        subgroups[di + "-" + dj] = {
-          index: di,
-          subindex: dj,
-          startAngle: x,
-          endAngle: x += v * k,
-          value: v
-        };
-      }
-      groups.push({
-        index: di,
-        startAngle: x0,
-        endAngle: x,
-        value: (x - x0) / k
-      });
-      x += padding;
-    }
-
-    // Generate chords for each (non-empty) subgroup-subgroup link.
-    i = -1; while (++i < n) {
-      j = i - 1; while (++j < n) {
-        var source = subgroups[i + "-" + j],
-            target = subgroups[j + "-" + i];
-        if (source.value || target.value) {
-          chords.push(source.value < target.value
-              ? {source: target, target: source}
-              : {source: source, target: target});
-        }
-      }
-    }
-
-    if (sortChords) resort();
-  }
-
-  function resort() {
-    chords.sort(function(a, b) {
-      return sortChords(a.target.value, b.target.value);
-    });
-  }
-
-  chord.matrix = function(x) {
-    if (!arguments.length) return matrix;
-    n = (matrix = x) && matrix.length;
-    chords = groups = null;
-    return chord;
-  };
-
-  chord.padding = function(x) {
-    if (!arguments.length) return padding;
-    padding = x;
-    chords = groups = null;
-    return chord;
-  };
-
-  chord.sortGroups = function(x) {
-    if (!arguments.length) return sortGroups;
-    sortGroups = x;
-    chords = groups = null;
-    return chord;
-  };
-
-  chord.sortSubgroups = function(x) {
-    if (!arguments.length) return sortSubgroups;
-    sortSubgroups = x;
-    chords = null;
-    return chord;
-  };
-
-  chord.sortChords = function(x) {
-    if (!arguments.length) return sortChords;
-    sortChords = x;
-    if (chords) resort();
-    return chord;
-  };
-
-  chord.chords = function() {
-    if (!chords) relayout();
-    return chords;
-  };
-
-  chord.groups = function() {
-    if (!groups) relayout();
-    return groups;
-  };
-
-  return chord;
-};
-// A rudimentary force layout using Gauss-Seidel.
-d3.layout.force = function() {
-  var force = {},
-      event = d3.dispatch("tick"),
-      size = [1, 1],
-      drag,
-      alpha,
-      friction = .9,
-      linkDistance = d3_layout_forceLinkDistance,
-      linkStrength = d3_layout_forceLinkStrength,
-      charge = -30,
-      gravity = .1,
-      theta = .8,
-      interval,
-      nodes = [],
-      links = [],
-      distances,
-      strengths;
-
-  function repulse(node, kc) {
-    return function(quad, x1, y1, x2, y2) {
-      if (quad.point !== node) {
-        var dx = quad.cx - node.x,
-            dy = quad.cy - node.y,
-            dn = 1 / Math.sqrt(dx * dx + dy * dy);
-
-        /* Barnes-Hut criterion. */
-        if ((x2 - x1) * dn < theta) {
-          var k = kc * quad.count * dn * dn;
-          node.px -= dx * k;
-          node.py -= dy * k;
-          return true;
-        }
-
-        if (quad.point && isFinite(dn)) {
-          var k = kc * dn * dn;
-          node.px -= dx * k;
-          node.py -= dy * k;
-        }
-      }
-    };
-  }
-
-  function tick() {
-    var n = nodes.length,
-        m = links.length,
-        q,
-        i, // current index
-        o, // current object
-        s, // current source
-        t, // current target
-        l, // current distance
-        k, // current force
-        x, // x-distance
-        y; // y-distance
-
-    // gauss-seidel relaxation for links
-    for (i = 0; i < m; ++i) {
-      o = links[i];
-      s = o.source;
-      t = o.target;
-      x = t.x - s.x;
-      y = t.y - s.y;
-      if (l = (x * x + y * y)) {
-        l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
-        x *= l;
-        y *= l;
-        t.x -= x * (k = s.weight / (t.weight + s.weight));
-        t.y -= y * k;
-        s.x += x * (k = 1 - k);
-        s.y += y * k;
-      }
-    }
-
-    // apply gravity forces
-    if (k = alpha * gravity) {
-      x = size[0] / 2;
-      y = size[1] / 2;
-      i = -1; if (k) while (++i < n) {
-        o = nodes[i];
-        o.x += (x - o.x) * k;
-        o.y += (y - o.y) * k;
-      }
-    }
-
-    // compute quadtree center of mass and apply charge forces
-    if (k = alpha * charge) {
-      d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes));
-      i = -1; while (++i < n) {
-        if (!(o = nodes[i]).fixed) {
-          q.visit(repulse(o, k));
-        }
-      }
-    }
-
-    // position verlet integration
-    i = -1; while (++i < n) {
-      o = nodes[i];
-      if (o.fixed) {
-        o.x = o.px;
-        o.y = o.py;
-      } else {
-        o.x -= (o.px - (o.px = o.x)) * friction;
-        o.y -= (o.py - (o.py = o.y)) * friction;
-      }
-    }
-
-    event.tick.dispatch({type: "tick", alpha: alpha});
-
-    // simulated annealing, basically
-    return (alpha *= .99) < .005;
-  }
-
-  force.on = function(type, listener) {
-    event[type].add(listener);
-    return force;
-  };
-
-  force.nodes = function(x) {
-    if (!arguments.length) return nodes;
-    nodes = x;
-    return force;
-  };
-
-  force.links = function(x) {
-    if (!arguments.length) return links;
-    links = x;
-    return force;
-  };
-
-  force.size = function(x) {
-    if (!arguments.length) return size;
-    size = x;
-    return force;
-  };
-
-  force.linkDistance = function(x) {
-    if (!arguments.length) return linkDistance;
-    linkDistance = d3.functor(x);
-    return force;
-  };
-
-  // For backwards-compatibility.
-  force.distance = force.linkDistance;
-
-  force.linkStrength = function(x) {
-    if (!arguments.length) return linkStrength;
-    linkStrength = d3.functor(x);
-    return force;
-  };
-
-  force.friction = function(x) {
-    if (!arguments.length) return friction;
-    friction = x;
-    return force;
-  };
-
-  force.charge = function(x) {
-    if (!arguments.length) return charge;
-    charge = x;
-    return force;
-  };
-
-  force.gravity = function(x) {
-    if (!arguments.length) return gravity;
-    gravity = x;
-    return force;
-  };
-
-  force.theta = function(x) {
-    if (!arguments.length) return theta;
-    theta = x;
-    return force;
-  };
-
-  force.start = function() {
-    var i,
-        j,
-        n = nodes.length,
-        m = links.length,
-        w = size[0],
-        h = size[1],
-        neighbors,
-        o;
-
-    for (i = 0; i < n; ++i) {
-      (o = nodes[i]).index = i;
-      o.weight = 0;
-    }
-
-    distances = [];
-    strengths = [];
-    for (i = 0; i < m; ++i) {
-      o = links[i];
-      if (typeof o.source == "number") o.source = nodes[o.source];
-      if (typeof o.target == "number") o.target = nodes[o.target];
-      distances[i] = linkDistance.call(this, o, i);
-      strengths[i] = linkStrength.call(this, o, i);
-      ++o.source.weight;
-      ++o.target.weight;
-    }
-
-    for (i = 0; i < n; ++i) {
-      o = nodes[i];
-      if (isNaN(o.x)) o.x = position("x", w);
-      if (isNaN(o.y)) o.y = position("y", h);
-      if (isNaN(o.px)) o.px = o.x;
-      if (isNaN(o.py)) o.py = o.y;
-    }
-
-    // initialize node position based on first neighbor
-    function position(dimension, size) {
-      var neighbors = neighbor(i),
-          j = -1,
-          m = neighbors.length,
-          x;
-      while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
-      return Math.random() * size;
-    }
-
-    // initialize neighbors lazily
-    function neighbor() {
-      if (!neighbors) {
-        neighbors = [];
-        for (j = 0; j < n; ++j) {
-          neighbors[j] = [];
-        }
-        for (j = 0; j < m; ++j) {
-          var o = links[j];
-          neighbors[o.source.index].push(o.target);
-          neighbors[o.target.index].push(o.source);
-        }
-      }
-      return neighbors[i];
-    }
-
-    return force.resume();
-  };
-
-  force.resume = function() {
-    alpha = .1;
-    d3.timer(tick);
-    return force;
-  };
-
-  force.stop = function() {
-    alpha = 0;
-    return force;
-  };
-
-  // use `node.call(force.drag)` to make nodes draggable
-  force.drag = function() {
-    if (!drag) drag = d3.behavior.drag()
-        .on("dragstart", dragstart)
-        .on("drag", d3_layout_forceDrag)
-        .on("dragend", d3_layout_forceDragEnd);
-
-    this.on("mouseover.force", d3_layout_forceDragOver)
-        .on("mouseout.force", d3_layout_forceDragOut)
-        .call(drag);
-  };
-
-  function dragstart(d) {
-    d3_layout_forceDragOver(d3_layout_forceDragNode = d);
-    d3_layout_forceDragForce = force;
-  }
-
-  return force;
-};
-
-var d3_layout_forceDragForce,
-    d3_layout_forceDragNode;
-
-function d3_layout_forceDragOver(d) {
-  d.fixed |= 2;
-}
-
-function d3_layout_forceDragOut(d) {
-  if (d !== d3_layout_forceDragNode) d.fixed &= 1;
-}
-
-function d3_layout_forceDragEnd() {
-  d3_layout_forceDrag();
-  d3_layout_forceDragNode.fixed &= 1;
-  d3_layout_forceDragForce = d3_layout_forceDragNode = null;
-}
-
-function d3_layout_forceDrag() {
-  d3_layout_forceDragNode.px += d3.event.dx;
-  d3_layout_forceDragNode.py += d3.event.dy;
-  d3_layout_forceDragForce.resume(); // restart annealing
-}
-
-function d3_layout_forceAccumulate(quad) {
-  var cx = 0,
-      cy = 0;
-  quad.count = 0;
-  if (!quad.leaf) {
-    var nodes = quad.nodes,
-        n = nodes.length,
-        i = -1,
-        c;
-    while (++i < n) {
-      c = nodes[i];
-      if (c == null) continue;
-      d3_layout_forceAccumulate(c);
-      quad.count += c.count;
-      cx += c.count * c.cx;
-      cy += c.count * c.cy;
-    }
-  }
-  if (quad.point) {
-    // jitter internal nodes that are coincident
-    if (!quad.leaf) {
-      quad.point.x += Math.random() - .5;
-      quad.point.y += Math.random() - .5;
-    }
-    quad.count++;
-    cx += quad.point.x;
-    cy += quad.point.y;
-  }
-  quad.cx = cx / quad.count;
-  quad.cy = cy / quad.count;
-}
-
-function d3_layout_forceLinkDistance(link) {
-  return 20;
-}
-
-function d3_layout_forceLinkStrength(link) {
-  return 1;
-}
-d3.layout.partition = function() {
-  var hierarchy = d3.layout.hierarchy(),
-      size = [1, 1]; // width, height
-
-  function position(node, x, dx, dy) {
-    var children = node.children;
-    node.x = x;
-    node.y = node.depth * dy;
-    node.dx = dx;
-    node.dy = dy;
-    if (children) {
-      var i = -1,
-          n = children.length,
-          c,
-          d;
-      dx = node.value ? dx / node.value : 0;
-      while (++i < n) {
-        position(c = children[i], x, d = c.value * dx, dy);
-        x += d;
-      }
-    }
-  }
-
-  function depth(node) {
-    var children = node.children,
-        d = 0;
-    if (children) {
-      var i = -1,
-          n = children.length;
-      while (++i < n) d = Math.max(d, depth(children[i]));
-    }
-    return 1 + d;
-  }
-
-  function partition(d, i) {
-    var nodes = hierarchy.call(this, d, i);
-    position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
-    return nodes;
-  }
-
-  partition.size = function(x) {
-    if (!arguments.length) return size;
-    size = x;
-    return partition;
-  };
-
-  return d3_layout_hierarchyRebind(partition, hierarchy);
-};
-d3.layout.pie = function() {
-  var value = Number,
-      sort = null,
-      startAngle = 0,
-      endAngle = 2 * Math.PI;
-
-  function pie(data, i) {
-
-    // Compute the start angle.
-    var a = +(typeof startAngle === "function"
-        ? startAngle.apply(this, arguments)
-        : startAngle);
-
-    // Compute the angular range (end - start).
-    var k = (typeof endAngle === "function"
-        ? endAngle.apply(this, arguments)
-        : endAngle) - startAngle;
-
-    // Optionally sort the data.
-    var index = d3.range(data.length);
-    if (sort != null) index.sort(function(i, j) {
-      return sort(data[i], data[j]);
-    });
-
-    // Compute the numeric values for each data element.
-    var values = data.map(value);
-
-    // Convert k into a scale factor from value to angle, using the sum.
-    k /= values.reduce(function(p, d) { return p + d; }, 0);
-
-    // Compute the arcs!
-    var arcs = index.map(function(i) {
-      return {
-        data: data[i],
-        value: d = values[i],
-        startAngle: a,
-        endAngle: a += d * k
-      };
-    });
-
-    // Return the arcs in the original data's order.
-    return data.map(function(d, i) {
-      return arcs[index[i]];
-    });
-  }
-
-  /**
-   * Specifies the value function *x*, which returns a nonnegative numeric value
-   * for each datum. The default value function is `Number`. The value function
-   * is passed two arguments: the current datum and the current index.
-   */
-  pie.value = function(x) {
-    if (!arguments.length) return value;
-    value = x;
-    return pie;
-  };
-
-  /**
-   * Specifies a sort comparison operator *x*. The comparator is passed two data
-   * elements from the data array, a and b; it returns a negative value if a is
-   * less than b, a positive value if a is greater than b, and zero if a equals
-   * b.
-   */
-  pie.sort = function(x) {
-    if (!arguments.length) return sort;
-    sort = x;
-    return pie;
-  };
-
-  /**
-   * Specifies the overall start angle of the pie chart. Defaults to 0. The
-   * start angle can be specified either as a constant or as a function; in the
-   * case of a function, it is evaluated once per array (as opposed to per
-   * element).
-   */
-  pie.startAngle = function(x) {
-    if (!arguments.length) return startAngle;
-    startAngle = x;
-    return pie;
-  };
-
-  /**
-   * Specifies the overall end angle of the pie chart. Defaults to 2Ï€. The
-   * end angle can be specified either as a constant or as a function; in the
-   * case of a function, it is evaluated once per array (as opposed to per
-   * element).
-   */
-  pie.endAngle = function(x) {
-    if (!arguments.length) return endAngle;
-    endAngle = x;
-    return pie;
-  };
-
-  return pie;
-};
-// data is two-dimensional array of x,y; we populate y0
-d3.layout.stack = function() {
-  var values = Object,
-      order = d3_layout_stackOrders["default"],
-      offset = d3_layout_stackOffsets["zero"],
-      out = d3_layout_stackOut,
-      x = d3_layout_stackX,
-      y = d3_layout_stackY;
-
-  function stack(data, index) {
-
-    // Convert series to canonical two-dimensional representation.
-    var series = data.map(function(d, i) {
-      return values.call(stack, d, i);
-    });
-
-    // Convert each series to canonical [[x,y]] representation.
-    var points = series.map(function(d, i) {
-      return d.map(function(v, i) {
-        return [x.call(stack, v, i), y.call(stack, v, i)];
-      });
-    });
-
-    // Compute the order of series, and permute them.
-    var orders = order.call(stack, points, index);
-    series = d3.permute(series, orders);
-    points = d3.permute(points, orders);
-
-    // Compute the baseline…
-    var offsets = offset.call(stack, points, index);
-
-    // And propagate it to other series.
-    var n = series.length,
-        m = series[0].length,
-        i,
-        j,
-        o;
-    for (j = 0; j < m; ++j) {
-      out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
-      for (i = 1; i < n; ++i) {
-        out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
-      }
-    }
-
-    return data;
-  }
-
-  stack.values = function(x) {
-    if (!arguments.length) return values;
-    values = x;
-    return stack;
-  };
-
-  stack.order = function(x) {
-    if (!arguments.length) return order;
-    order = typeof x === "function" ? x : d3_layout_stackOrders[x];
-    return stack;
-  };
-
-  stack.offset = function(x) {
-    if (!arguments.length) return offset;
-    offset = typeof x === "function" ? x : d3_layout_stackOffsets[x];
-    return stack;
-  };
-
-  stack.x = function(z) {
-    if (!arguments.length) return x;
-    x = z;
-    return stack;
-  };
-
-  stack.y = function(z) {
-    if (!arguments.length) return y;
-    y = z;
-    return stack;
-  };
-
-  stack.out = function(z) {
-    if (!arguments.length) return out;
-    out = z;
-    return stack;
-  };
-
-  return stack;
-}
-
-function d3_layout_stackX(d) {
-  return d.x;
-}
-
-function d3_layout_stackY(d) {
-  return d.y;
-}
-
-function d3_layout_stackOut(d, y0, y) {
-  d.y0 = y0;
-  d.y = y;
-}
-
-var d3_layout_stackOrders = {
-
-  "inside-out": function(data) {
-    var n = data.length,
-        i,
-        j,
-        max = data.map(d3_layout_stackMaxIndex),
-        sums = data.map(d3_layout_stackReduceSum),
-        index = d3.range(n).sort(function(a, b) { return max[a] - max[b]; }),
-        top = 0,
-        bottom = 0,
-        tops = [],
-        bottoms = [];
-    for (i = 0; i < n; ++i) {
-      j = index[i];
-      if (top < bottom) {
-        top += sums[j];
-        tops.push(j);
-      } else {
-        bottom += sums[j];
-        bottoms.push(j);
-      }
-    }
-    return bottoms.reverse().concat(tops);
-  },
-
-  "reverse": function(data) {
-    return d3.range(data.length).reverse();
-  },
-
-  "default": function(data) {
-    return d3.range(data.length);
-  }
-
-};
-
-var d3_layout_stackOffsets = {
-
-  "silhouette": function(data) {
-    var n = data.length,
-        m = data[0].length,
-        sums = [],
-        max = 0,
-        i,
-        j,
-        o,
-        y0 = [];
-    for (j = 0; j < m; ++j) {
-      for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
-      if (o > max) max = o;
-      sums.push(o);
-    }
-    for (j = 0; j < m; ++j) {
-      y0[j] = (max - sums[j]) / 2;
-    }
-    return y0;
-  },
-
-  "wiggle": function(data) {
-    var n = data.length,
-        x = data[0],
-        m = x.length,
-        max = 0,
-        i,
-        j,
-        k,
-        s1,
-        s2,
-        s3,
-        dx,
-        o,
-        o0,
-        y0 = [];
-    y0[0] = o = o0 = 0;
-    for (j = 1; j < m; ++j) {
-      for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
-      for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
-        for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
-          s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
-        }
-        s2 += s3 * data[i][j][1];
-      }
-      y0[j] = o -= s1 ? s2 / s1 * dx : 0;
-      if (o < o0) o0 = o;
-    }
-    for (j = 0; j < m; ++j) y0[j] -= o0;
-    return y0;
-  },
-
-  "expand": function(data) {
-    var n = data.length,
-        m = data[0].length,
-        k = 1 / n,
-        i,
-        j,
-        o,
-        y0 = [];
-    for (j = 0; j < m; ++j) {
-      for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
-      if (o) for (i = 0; i < n; i++) data[i][j][1] /= o;
-      else for (i = 0; i < n; i++) data[i][j][1] = k;
-    }
-    for (j = 0; j < m; ++j) y0[j] = 0;
-    return y0;
-  },
-
-  "zero": function(data) {
-    var j = -1,
-        m = data[0].length,
-        y0 = [];
-    while (++j < m) y0[j] = 0;
-    return y0;
-  }
-
-};
-
-function d3_layout_stackMaxIndex(array) {
-  var i = 1,
-      j = 0,
-      v = array[0][1],
-      k,
-      n = array.length;
-  for (; i < n; ++i) {
-    if ((k = array[i][1]) > v) {
-      j = i;
-      v = k;
-    }
-  }
-  return j;
-}
-
-function d3_layout_stackReduceSum(d) {
-  return d.reduce(d3_layout_stackSum, 0);
-}
-
-function d3_layout_stackSum(p, d) {
-  return p + d[1];
-}
-d3.layout.histogram = function() {
-  var frequency = true,
-      valuer = Number,
-      ranger = d3_layout_histogramRange,
-      binner = d3_layout_histogramBinSturges;
-
-  function histogram(data, i) {
-    var bins = [],
-        values = data.map(valuer, this),
-        range = ranger.call(this, values, i),
-        thresholds = binner.call(this, range, values, i),
-        bin,
-        i = -1,
-        n = values.length,
-        m = thresholds.length - 1,
-        k = frequency ? 1 : 1 / n,
-        x;
-
-    // Initialize the bins.
-    while (++i < m) {
-      bin = bins[i] = [];
-      bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
-      bin.y = 0;
-    }
-
-    // Fill the bins, ignoring values outside the range.
-    i = -1; while(++i < n) {
-      x = values[i];
-      if ((x >= range[0]) && (x <= range[1])) {
-        bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
-        bin.y += k;
-        bin.push(data[i]);
-      }
-    }
-
-    return bins;
-  }
-
-  // Specifies how to extract a value from the associated data. The default
-  // value function is `Number`, which is equivalent to the identity function.
-  histogram.value = function(x) {
-    if (!arguments.length) return valuer;
-    valuer = x;
-    return histogram;
-  };
-
-  // Specifies the range of the histogram. Values outside the specified range
-  // will be ignored. The argument `x` may be specified either as a two-element
-  // array representing the minimum and maximum value of the range, or as a
-  // function that returns the range given the array of values and the current
-  // index `i`. The default range is the extent (minimum and maximum) of the
-  // values.
-  histogram.range = function(x) {
-    if (!arguments.length) return ranger;
-    ranger = d3.functor(x);
-    return histogram;
-  };
-
-  // Specifies how to bin values in the histogram. The argument `x` may be
-  // specified as a number, in which case the range of values will be split
-  // uniformly into the given number of bins. Or, `x` may be an array of
-  // threshold values, defining the bins; the specified array must contain the
-  // rightmost (upper) value, thus specifying n + 1 values for n bins. Or, `x`
-  // may be a function which is evaluated, being passed the range, the array of
-  // values, and the current index `i`, returning an array of thresholds. The
-  // default bin function will divide the values into uniform bins using
-  // Sturges' formula.
-  histogram.bins = function(x) {
-    if (!arguments.length) return binner;
-    binner = typeof x === "number"
-        ? function(range) { return d3_layout_histogramBinFixed(range, x); }
-        : d3.functor(x);
-    return histogram;
-  };
-
-  // Specifies whether the histogram's `y` value is a count (frequency) or a
-  // probability (density). The default value is true.
-  histogram.frequency = function(x) {
-    if (!arguments.length) return frequency;
-    frequency = !!x;
-    return histogram;
-  };
-
-  return histogram;
-};
-
-function d3_layout_histogramBinSturges(range, values) {
-  return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
-}
-
-function d3_layout_histogramBinFixed(range, n) {
-  var x = -1,
-      b = +range[0],
-      m = (range[1] - b) / n,
-      f = [];
-  while (++x <= n) f[x] = m * x + b;
-  return f;
-}
-
-function d3_layout_histogramRange(values) {
-  return [d3.min(values), d3.max(values)];
-}
-d3.layout.hierarchy = function() {
-  var sort = d3_layout_hierarchySort,
-      children = d3_layout_hierarchyChildren,
-      value = d3_layout_hierarchyValue;
-
-  // Recursively compute the node depth and value.
-  // Also converts the data representation into a standard hierarchy structure.
-  function recurse(data, depth, nodes) {
-    var childs = children.call(hierarchy, data, depth),
-        node = d3_layout_hierarchyInline ? data : {data: data};
-    node.depth = depth;
-    nodes.push(node);
-    if (childs) {
-      var i = -1,
-          n = childs.length,
-          c = node.children = [],
-          v = 0,
-          j = depth + 1;
-      while (++i < n) {
-        d = recurse(childs[i], j, nodes);
-        d.parent = node;
-        c.push(d);
-        v += d.value;
-      }
-      if (sort) c.sort(sort);
-      if (value) node.value = v;
-    } else if (value) {
-      node.value = +value.call(hierarchy, data, depth) || 0;
-    }
-    return node;
-  }
-
-  // Recursively re-evaluates the node value.
-  function revalue(node, depth) {
-    var children = node.children,
-        v = 0;
-    if (children) {
-      var i = -1,
-          n = children.length,
-          j = depth + 1;
-      while (++i < n) v += revalue(children[i], j);
-    } else if (value) {
-      v = +value.call(hierarchy, d3_layout_hierarchyInline ? node : node.data, depth) || 0;
-    }
-    if (value) node.value = v;
-    return v;
-  }
-
-  function hierarchy(d) {
-    var nodes = [];
-    recurse(d, 0, nodes);
-    return nodes;
-  }
-
-  hierarchy.sort = function(x) {
-    if (!arguments.length) return sort;
-    sort = x;
-    return hierarchy;
-  };
-
-  hierarchy.children = function(x) {
-    if (!arguments.length) return children;
-    children = x;
-    return hierarchy;
-  };
-
-  hierarchy.value = function(x) {
-    if (!arguments.length) return value;
-    value = x;
-    return hierarchy;
-  };
-
-  // Re-evaluates the `value` property for the specified hierarchy.
-  hierarchy.revalue = function(root) {
-    revalue(root, 0);
-    return root;
-  };
-
-  return hierarchy;
-};
-
-// A method assignment helper for hierarchy subclasses.
-function d3_layout_hierarchyRebind(object, hierarchy) {
-  object.sort = d3.rebind(object, hierarchy.sort);
-  object.children = d3.rebind(object, hierarchy.children);
-  object.links = d3_layout_hierarchyLinks;
-  object.value = d3.rebind(object, hierarchy.value);
-
-  // If the new API is used, enabling inlining.
-  object.nodes = function(d) {
-    d3_layout_hierarchyInline = true;
-    return (object.nodes = object)(d);
-  };
-
-  return object;
-}
-
-function d3_layout_hierarchyChildren(d) {
-  return d.children;
-}
-
-function d3_layout_hierarchyValue(d) {
-  return d.value;
-}
-
-function d3_layout_hierarchySort(a, b) {
-  return b.value - a.value;
-}
-
-// Returns an array source+target objects for the specified nodes.
-function d3_layout_hierarchyLinks(nodes) {
-  return d3.merge(nodes.map(function(parent) {
-    return (parent.children || []).map(function(child) {
-      return {source: parent, target: child};
-    });
-  }));
-}
-
-// For backwards-compatibility, don't enable inlining by default.
-var d3_layout_hierarchyInline = false;
-d3.layout.pack = function() {
-  var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort),
-      size = [1, 1];
-
-  function pack(d, i) {
-    var nodes = hierarchy.call(this, d, i),
-        root = nodes[0];
-
-    // Recursively compute the layout.
-    root.x = 0;
-    root.y = 0;
-    d3_layout_packTree(root);
-
-    // Scale the layout to fit the requested size.
-    var w = size[0],
-        h = size[1],
-        k = 1 / Math.max(2 * root.r / w, 2 * root.r / h);
-    d3_layout_packTransform(root, w / 2, h / 2, k);
-
-    return nodes;
-  }
-
-  pack.size = function(x) {
-    if (!arguments.length) return size;
-    size = x;
-    return pack;
-  };
-
-  return d3_layout_hierarchyRebind(pack, hierarchy);
-};
-
-function d3_layout_packSort(a, b) {
-  return a.value - b.value;
-}
-
-function d3_layout_packInsert(a, b) {
-  var c = a._pack_next;
-  a._pack_next = b;
-  b._pack_prev = a;
-  b._pack_next = c;
-  c._pack_prev = b;
-}
-
-function d3_layout_packSplice(a, b) {
-  a._pack_next = b;
-  b._pack_prev = a;
-}
-
-function d3_layout_packIntersects(a, b) {
-  var dx = b.x - a.x,
-      dy = b.y - a.y,
-      dr = a.r + b.r;
-  return (dr * dr - dx * dx - dy * dy) > .001; // within epsilon
-}
-
-function d3_layout_packCircle(nodes) {
-  var xMin = Infinity,
-      xMax = -Infinity,
-      yMin = Infinity,
-      yMax = -Infinity,
-      n = nodes.length,
-      a, b, c, j, k;
-
-  function bound(node) {
-    xMin = Math.min(node.x - node.r, xMin);
-    xMax = Math.max(node.x + node.r, xMax);
-    yMin = Math.min(node.y - node.r, yMin);
-    yMax = Math.max(node.y + node.r, yMax);
-  }
-
-  // Create node links.
-  nodes.forEach(d3_layout_packLink);
-
-  // Create first node.
-  a = nodes[0];
-  a.x = -a.r;
-  a.y = 0;
-  bound(a);
-
-  // Create second node.
-  if (n > 1) {
-    b = nodes[1];
-    b.x = b.r;
-    b.y = 0;
-    bound(b);
-
-    // Create third node and build chain.
-    if (n > 2) {
-      c = nodes[2];
-      d3_layout_packPlace(a, b, c);
-      bound(c);
-      d3_layout_packInsert(a, c);
-      a._pack_prev = c;
-      d3_layout_packInsert(c, b);
-      b = a._pack_next;
-
-      // Now iterate through the rest.
-      for (var i = 3; i < n; i++) {
-        d3_layout_packPlace(a, b, c = nodes[i]);
-
-        // Search for the closest intersection.
-        var isect = 0, s1 = 1, s2 = 1;
-        for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
-          if (d3_layout_packIntersects(j, c)) {
-            isect = 1;
-            break;
-          }
-        }
-        if (isect == 1) {
-          for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
-            if (d3_layout_packIntersects(k, c)) {
-              if (s2 < s1) {
-                isect = -1;
-                j = k;
-              }
-              break;
-            }
-          }
-        }
-
-        // Update node chain.
-        if (isect == 0) {
-          d3_layout_packInsert(a, c);
-          b = c;
-          bound(c);
-        } else if (isect > 0) {
-          d3_layout_packSplice(a, j);
-          b = j;
-          i--;
-        } else { // isect < 0
-          d3_layout_packSplice(j, b);
-          a = j;
-          i--;
-        }
-      }
-    }
-  }
-
-  // Re-center the circles and return the encompassing radius.
-  var cx = (xMin + xMax) / 2,
-      cy = (yMin + yMax) / 2,
-      cr = 0;
-  for (var i = 0; i < n; i++) {
-    var node = nodes[i];
-    node.x -= cx;
-    node.y -= cy;
-    cr = Math.max(cr, node.r + Math.sqrt(node.x * node.x + node.y * node.y));
-  }
-
-  // Remove node links.
-  nodes.forEach(d3_layout_packUnlink);
-
-  return cr;
-}
-
-function d3_layout_packLink(node) {
-  node._pack_next = node._pack_prev = node;
-}
-
-function d3_layout_packUnlink(node) {
-  delete node._pack_next;
-  delete node._pack_prev;
-}
-
-function d3_layout_packTree(node) {
-  var children = node.children;
-  if (children) {
-    children.forEach(d3_layout_packTree);
-    node.r = d3_layout_packCircle(children);
-  } else {
-    node.r = Math.sqrt(node.value);
-  }
-}
-
-function d3_layout_packTransform(node, x, y, k) {
-  var children = node.children;
-  node.x = (x += k * node.x);
-  node.y = (y += k * node.y);
-  node.r *= k;
-  if (children) {
-    var i = -1, n = children.length;
-    while (++i < n) d3_layout_packTransform(children[i], x, y, k);
-  }
-}
-
-function d3_layout_packPlace(a, b, c) {
-  var da = b.r + c.r,
-      db = a.r + c.r,
-      dx = b.x - a.x,
-      dy = b.y - a.y,
-      dc = Math.sqrt(dx * dx + dy * dy),
-      cos = (db * db + dc * dc - da * da) / (2 * db * dc),
-      theta = Math.acos(cos),
-      x = cos * db,
-      h = Math.sin(theta) * db;
-  dx /= dc;
-  dy /= dc;
-  c.x = a.x + x * dx + h * dy;
-  c.y = a.y + x * dy - h * dx;
-}
-// Implements a hierarchical layout using the cluster (or dendogram) algorithm.
-d3.layout.cluster = function() {
-  var hierarchy = d3.layout.hierarchy().sort(null).value(null),
-      separation = d3_layout_treeSeparation,
-      size = [1, 1]; // width, height
-
-  function cluster(d, i) {
-    var nodes = hierarchy.call(this, d, i),
-        root = nodes[0],
-        previousNode,
-        x = 0,
-        kx,
-        ky;
-
-    // First walk, computing the initial x & y values.
-    d3_layout_treeVisitAfter(root, function(node) {
-      if (node.children) {
-        node.x = d3_layout_clusterX(node.children);
-        node.y = d3_layout_clusterY(node.children);
-      } else {
-        node.x = previousNode ? x += separation(node, previousNode) : 0;
-        node.y = 0;
-        previousNode = node;
-      }
-    });
-
-    // Compute the left-most, right-most, and depth-most nodes for extents.
-    var left = d3_layout_clusterLeft(root),
-        right = d3_layout_clusterRight(root),
-        x0 = left.x - separation(left, right) / 2,
-        x1 = right.x + separation(right, left) / 2;
-
-    // Second walk, normalizing x & y to the desired size.
-    d3_layout_treeVisitAfter(root, function(node) {
-      node.x = (node.x - x0) / (x1 - x0) * size[0];
-      node.y = (1 - node.y / root.y) * size[1];
-    });
-
-    return nodes;
-  }
-
-  cluster.separation = function(x) {
-    if (!arguments.length) return separation;
-    separation = x;
-    return cluster;
-  };
-
-  cluster.size = function(x) {
-    if (!arguments.length) return size;
-    size = x;
-    return cluster;
-  };
-
-  return d3_layout_hierarchyRebind(cluster, hierarchy);
-};
-
-function d3_layout_clusterY(children) {
-  return 1 + d3.max(children, function(child) {
-    return child.y;
-  });
-}
-
-function d3_layout_clusterX(children) {
-  return children.reduce(function(x, child) {
-    return x + child.x;
-  }, 0) / children.length;
-}
-
-function d3_layout_clusterLeft(node) {
-  var children = node.children;
-  return children ? d3_layout_clusterLeft(children[0]) : node;
-}
-
-function d3_layout_clusterRight(node) {
-  var children = node.children;
-  return children ? d3_layout_clusterRight(children[children.length - 1]) : node;
-}
-// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
-d3.layout.tree = function() {
-  var hierarchy = d3.layout.hierarchy().sort(null).value(null),
-      separation = d3_layout_treeSeparation,
-      size = [1, 1]; // width, height
-
-  function tree(d, i) {
-    var nodes = hierarchy.call(this, d, i),
-        root = nodes[0];
-
-    function firstWalk(node, previousSibling) {
-      var children = node.children,
-          layout = node._tree;
-      if (children && (n = children.length)) {
-        var n,
-            firstChild = children[0],
-            previousChild,
-            ancestor = firstChild,
-            child,
-            i = -1;
-        while (++i < n) {
-          child = children[i];
-          firstWalk(child, previousChild);
-          ancestor = apportion(child, previousChild, ancestor);
-          previousChild = child;
-        }
-        d3_layout_treeShift(node);
-        var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
-        if (previousSibling) {
-          layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
-          layout.mod = layout.prelim - midpoint;
-        } else {
-          layout.prelim = midpoint;
-        }
-      } else {
-        if (previousSibling) {
-          layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
-        }
-      }
-    }
-
-    function secondWalk(node, x) {
-      node.x = node._tree.prelim + x;
-      var children = node.children;
-      if (children) {
-        var i = -1,
-            n = children.length;
-        x += node._tree.mod;
-        while (++i < n) {
-          secondWalk(children[i], x);
-        }
-      }
-    }
-
-    function apportion(node, previousSibling, ancestor) {
-      if (previousSibling) {
-        var vip = node,
-            vop = node,
-            vim = previousSibling,
-            vom = node.parent.children[0],
-            sip = vip._tree.mod,
-            sop = vop._tree.mod,
-            sim = vim._tree.mod,
-            som = vom._tree.mod,
-            shift;
-        while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
-          vom = d3_layout_treeLeft(vom);
-          vop = d3_layout_treeRight(vop);
-          vop._tree.ancestor = node;
-          shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
-          if (shift > 0) {
-            d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
-            sip += shift;
-            sop += shift;
-          }
-          sim += vim._tree.mod;
-          sip += vip._tree.mod;
-          som += vom._tree.mod;
-          sop += vop._tree.mod;
-        }
-        if (vim && !d3_layout_treeRight(vop)) {
-          vop._tree.thread = vim;
-          vop._tree.mod += sim - sop;
-        }
-        if (vip && !d3_layout_treeLeft(vom)) {
-          vom._tree.thread = vip;
-          vom._tree.mod += sip - som;
-          ancestor = node;
-        }
-      }
-      return ancestor;
-    }
-
-    // Initialize temporary layout variables.
-    d3_layout_treeVisitAfter(root, function(node, previousSibling) {
-      node._tree = {
-        ancestor: node,
-        prelim: 0,
-        mod: 0,
-        change: 0,
-        shift: 0,
-        number: previousSibling ? previousSibling._tree.number + 1 : 0
-      };
-    });
-
-    // Compute the layout using Buchheim et al.'s algorithm.
-    firstWalk(root);
-    secondWalk(root, -root._tree.prelim);
-
-    // Compute the left-most, right-most, and depth-most nodes for extents.
-    var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost),
-        right = d3_layout_treeSearch(root, d3_layout_treeRightmost),
-        deep = d3_layout_treeSearch(root, d3_layout_treeDeepest),
-        x0 = left.x - separation(left, right) / 2,
-        x1 = right.x + separation(right, left) / 2,
-        y1 = deep.depth || 1;
-
-    // Clear temporary layout variables; transform x and y.
-    d3_layout_treeVisitAfter(root, function(node) {
-      node.x = (node.x - x0) / (x1 - x0) * size[0];
-      node.y = node.depth / y1 * size[1];
-      delete node._tree;
-    });
-
-    return nodes;
-  }
-
-  tree.separation = function(x) {
-    if (!arguments.length) return separation;
-    separation = x;
-    return tree;
-  };
-
-  tree.size = function(x) {
-    if (!arguments.length) return size;
-    size = x;
-    return tree;
-  };
-
-  return d3_layout_hierarchyRebind(tree, hierarchy);
-};
-
-function d3_layout_treeSeparation(a, b) {
-  return a.parent == b.parent ? 1 : 2;
-}
-
-// function d3_layout_treeSeparationRadial(a, b) {
-//   return (a.parent == b.parent ? 1 : 2) / a.depth;
-// }
-
-function d3_layout_treeLeft(node) {
-  return node.children ? node.children[0] : node._tree.thread;
-}
-
-function d3_layout_treeRight(node) {
-  return node.children ? node.children[node.children.length - 1] : node._tree.thread;
-}
-
-function d3_layout_treeSearch(node, compare) {
-  var children = node.children;
-  if (children) {
-    var child,
-        n = children.length,
-        i = -1;
-    while (++i < n) {
-      if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
-        node = child;
-      }
-    }
-  }
-  return node;
-}
-
-function d3_layout_treeRightmost(a, b) {
-  return a.x - b.x;
-}
-
-function d3_layout_treeLeftmost(a, b) {
-  return b.x - a.x;
-}
-
-function d3_layout_treeDeepest(a, b) {
-  return a.depth - b.depth;
-}
-
-function d3_layout_treeVisitAfter(node, callback) {
-  function visit(node, previousSibling) {
-    var children = node.children;
-    if (children) {
-      var child,
-          previousChild = null,
-          i = -1,
-          n = children.length;
-      while (++i < n) {
-        child = children[i];
-        visit(child, previousChild);
-        previousChild = child;
-      }
-    }
-    callback(node, previousSibling);
-  }
-  visit(node, null);
-}
-
-function d3_layout_treeShift(node) {
-  var shift = 0,
-      change = 0,
-      children = node.children,
-      i = children.length,
-      child;
-  while (--i >= 0) {
-    child = children[i]._tree;
-    child.prelim += shift;
-    child.mod += shift;
-    shift += child.shift + (change += child.change);
-  }
-}
-
-function d3_layout_treeMove(ancestor, node, shift) {
-  ancestor = ancestor._tree;
-  node = node._tree;
-  var change = shift / (node.number - ancestor.number);
-  ancestor.change += change;
-  node.change -= change;
-  node.shift += shift;
-  node.prelim += shift;
-  node.mod += shift;
-}
-
-function d3_layout_treeAncestor(vim, node, ancestor) {
-  return vim._tree.ancestor.parent == node.parent
-      ? vim._tree.ancestor
-      : ancestor;
-}
-// Squarified Treemaps by Mark Bruls, Kees Huizing, and Jarke J. van Wijk
-// Modified to support a target aspect ratio by Jeff Heer
-d3.layout.treemap = function() {
-  var hierarchy = d3.layout.hierarchy(),
-      round = Math.round,
-      size = [1, 1], // width, height
-      padding = null,
-      pad = d3_layout_treemapPadNull,
-      sticky = false,
-      stickies,
-      ratio = 0.5 * (1 + Math.sqrt(5)); // golden ratio
-
-  // Compute the area for each child based on value & scale.
-  function scale(children, k) {
-    var i = -1,
-        n = children.length,
-        child,
-        area;
-    while (++i < n) {
-      area = (child = children[i]).value * (k < 0 ? 0 : k);
-      child.area = isNaN(area) || area <= 0 ? 0 : area;
-    }
-  }
-
-  // Recursively arranges the specified node's children into squarified rows.
-  function squarify(node) {
-    if (!node.children) return;
-    var rect = pad(node),
-        row = [],
-        children = node.children.slice(), // copy-on-write
-        child,
-        best = Infinity, // the best row score so far
-        score, // the current row score
-        u = Math.min(rect.dx, rect.dy), // initial orientation
-        n;
-    scale(children, rect.dx * rect.dy / node.value);
-    row.area = 0;
-    while ((n = children.length) > 0) {
-      row.push(child = children[n - 1]);
-      row.area += child.area;
-      if ((score = worst(row, u)) <= best) { // continue with this orientation
-        children.pop();
-        best = score;
-      } else { // abort, and try a different orientation
-        row.area -= row.pop().area;
-        position(row, u, rect, false);
-        u = Math.min(rect.dx, rect.dy);
-        row.length = row.area = 0;
-        best = Infinity;
-      }
-    }
-    if (row.length) {
-      position(row, u, rect, true);
-      row.length = row.area = 0;
-    }
-    node.children.forEach(squarify);
-  }
-
-  // Recursively resizes the specified node's children into existing rows.
-  // Preserves the existing layout!
-  function stickify(node) {
-    if (!node.children) return;
-    var rect = pad(node),
-        children = node.children.slice(), // copy-on-write
-        child,
-        row = [];
-    scale(children, rect.dx * rect.dy / node.value);
-    row.area = 0;
-    while (child = children.pop()) {
-      row.push(child);
-      row.area += child.area;
-      if (child.z != null) {
-        position(row, child.z ? rect.dx : rect.dy, rect, !children.length);
-        row.length = row.area = 0;
-      }
-    }
-    node.children.forEach(stickify);
-  }
-
-  // Computes the score for the specified row, as the worst aspect ratio.
-  function worst(row, u) {
-    var s = row.area,
-        r,
-        rmax = 0,
-        rmin = Infinity,
-        i = -1,
-        n = row.length;
-    while (++i < n) {
-      if (!(r = row[i].area)) continue;
-      if (r < rmin) rmin = r;
-      if (r > rmax) rmax = r;
-    }
-    s *= s;
-    u *= u;
-    return s
-        ? Math.max((u * rmax * ratio) / s, s / (u * rmin * ratio))
-        : Infinity;
-  }
-
-  // Positions the specified row of nodes. Modifies `rect`.
-  function position(row, u, rect, flush) {
-    var i = -1,
-        n = row.length,
-        x = rect.x,
-        y = rect.y,
-        v = u ? round(row.area / u) : 0,
-        o;
-    if (u == rect.dx) { // horizontal subdivision
-      if (flush || v > rect.dy) v = v ? rect.dy : 0; // over+underflow
-      while (++i < n) {
-        o = row[i];
-        o.x = x;
-        o.y = y;
-        o.dy = v;
-        x += o.dx = v ? round(o.area / v) : 0;
-      }
-      o.z = true;
-      o.dx += rect.x + rect.dx - x; // rounding error
-      rect.y += v;
-      rect.dy -= v;
-    } else { // vertical subdivision
-      if (flush || v > rect.dx) v = v ? rect.dx : 0; // over+underflow
-      while (++i < n) {
-        o = row[i];
-        o.x = x;
-        o.y = y;
-        o.dx = v;
-        y += o.dy = v ? round(o.area / v) : 0;
-      }
-      o.z = false;
-      o.dy += rect.y + rect.dy - y; // rounding error
-      rect.x += v;
-      rect.dx -= v;
-    }
-  }
-
-  function treemap(d) {
-    var nodes = stickies || hierarchy(d),
-        root = nodes[0];
-    root.x = 0;
-    root.y = 0;
-    root.dx = size[0];
-    root.dy = size[1];
-    if (stickies) hierarchy.revalue(root);
-    scale([root], root.dx * root.dy / root.value);
-    (stickies ? stickify : squarify)(root);
-    if (sticky) stickies = nodes;
-    return nodes;
-  }
-
-  treemap.size = function(x) {
-    if (!arguments.length) return size;
-    size = x;
-    return treemap;
-  };
-
-  treemap.padding = function(x) {
-    if (!arguments.length) return padding;
-
-    function padFunction(node) {
-      var p = x.call(treemap, node, node.depth);
-      return p == null
-          ? d3_layout_treemapPadNull(node)
-          : d3_layout_treemapPad(node, typeof p === "number" ? [p, p, p, p] : p);
-    }
-
-    function padConstant(node) {
-      return d3_layout_treemapPad(node, x);
-    }
-
-    var type;
-    pad = (padding = x) == null ? d3_layout_treemapPadNull
-        : (type = typeof x) === "function" ? padFunction
-        : type === "number" ? (x = [x, x, x, x], padConstant)
-        : padConstant;
-    return treemap;
-  };
-
-  treemap.round = function(x) {
-    if (!arguments.length) return round != Number;
-    round = x ? Math.round : Number;
-    return treemap;
-  };
-
-  treemap.sticky = function(x) {
-    if (!arguments.length) return sticky;
-    sticky = x;
-    stickies = null;
-    return treemap;
-  };
-
-  treemap.ratio = function(x) {
-    if (!arguments.length) return ratio;
-    ratio = x;
-    return treemap;
-  };
-
-  return d3_layout_hierarchyRebind(treemap, hierarchy);
-};
-
-function d3_layout_treemapPadNull(node) {
-  return {x: node.x, y: node.y, dx: node.dx, dy: node.dy};
-}
-
-function d3_layout_treemapPad(node, padding) {
-  var x = node.x + padding[3],
-      y = node.y + padding[0],
-      dx = node.dx - padding[1] - padding[3],
-      dy = node.dy - padding[0] - padding[2];
-  if (dx < 0) { x += dx / 2; dx = 0; }
-  if (dy < 0) { y += dy / 2; dy = 0; }
-  return {x: x, y: y, dx: dx, dy: dy};
-}
-})();
diff --git a/rtd_phosphonetx/source/html/demoapp/d3.time.js b/rtd_phosphonetx/source/html/demoapp/d3.time.js
deleted file mode 100644
index e1c0831c88e2984fbabc189a5347238bde72abb2..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/html/demoapp/d3.time.js
+++ /dev/null
@@ -1,692 +0,0 @@
-(function(){d3.time = {};
-
-var d3_time = Date;
-d3.time.format = function(template) {
-  var n = template.length;
-
-  function format(date) {
-    var string = [],
-        i = -1,
-        j = 0,
-        c,
-        f;
-    while (++i < n) {
-      if (template.charCodeAt(i) == 37) {
-        string.push(
-            template.substring(j, i),
-            (f = d3_time_formats[c = template.charAt(++i)])
-            ? f(date) : c);
-        j = i + 1;
-      }
-    }
-    string.push(template.substring(j, i));
-    return string.join("");
-  }
-
-  format.parse = function(string) {
-    var date = new d3_time(1900, 0, 1),
-        i = d3_time_parse(date, template, string, 0);
-    if (i != string.length) return null;
-    if (date.hour12) {
-      var hours = date.getHours() % 12;
-      date.setHours(date.hour12pm ? hours + 12 : hours);
-    }
-    delete date.hour12;
-    delete date.hour12pm;
-    return date;
-  };
-
-  format.toString = function() {
-    return template;
-  };
-
-  return format;
-};
-
-function d3_time_parse(date, template, string, j) {
-  var c,
-      p,
-      i = 0,
-      n = template.length,
-      m = string.length;
-  while (i < n) {
-    if (j >= m) return -1;
-    c = template.charCodeAt(i++);
-    if (c == 37) {
-      p = d3_time_parsers[template.charAt(i++)];
-      if (!p || ((j = p(date, string, j)) < 0)) return -1;
-    } else if (c != string.charCodeAt(j++)) {
-      return -1;
-    }
-  }
-  return j;
-}
-
-var d3_time_zfill2 = d3.format("02d"),
-    d3_time_zfill3 = d3.format("03d"),
-    d3_time_zfill4 = d3.format("04d"),
-    d3_time_sfill2 = d3.format("2d");
-
-var d3_time_formats = {
-  a: function(d) { return d3_time_weekdays[d.getDay()].substring(0, 3); },
-  A: function(d) { return d3_time_weekdays[d.getDay()]; },
-  b: function(d) { return d3_time_months[d.getMonth()].substring(0, 3); },
-  B: function(d) { return d3_time_months[d.getMonth()]; },
-  c: d3.time.format("%a %b %e %H:%M:%S %Y"),
-  d: function(d) { return d3_time_zfill2(d.getDate()); },
-  e: function(d) { return d3_time_sfill2(d.getDate()); },
-  H: function(d) { return d3_time_zfill2(d.getHours()); },
-  I: function(d) { return d3_time_zfill2(d.getHours() % 12 || 12); },
-  j: d3_time_dayOfYear,
-  L: function(d) { return d3_time_zfill3(d.getMilliseconds()); },
-  m: function(d) { return d3_time_zfill2(d.getMonth() + 1); },
-  M: function(d) { return d3_time_zfill2(d.getMinutes()); },
-  p: function(d) { return d.getHours() >= 12 ? "PM" : "AM"; },
-  S: function(d) { return d3_time_zfill2(d.getSeconds()); },
-  U: d3_time_weekNumberSunday,
-  w: function(d) { return d.getDay(); },
-  W: d3_time_weekNumberMonday,
-  x: d3.time.format("%m/%d/%y"),
-  X: d3.time.format("%H:%M:%S"),
-  y: function(d) { return d3_time_zfill2(d.getFullYear() % 100); },
-  Y: function(d) { return d3_time_zfill4(d.getFullYear() % 10000); },
-  Z: d3_time_zone,
-  "%": function(d) { return "%"; }
-};
-
-var d3_time_parsers = {
-  a: d3_time_parseWeekdayAbbrev,
-  A: d3_time_parseWeekday,
-  b: d3_time_parseMonthAbbrev,
-  B: d3_time_parseMonth,
-  c: d3_time_parseLocaleFull,
-  d: d3_time_parseDay,
-  e: d3_time_parseDay,
-  H: d3_time_parseHour24,
-  I: d3_time_parseHour12,
-  // j: function(d, s, i) { /*TODO day of year [001,366] */ return i; },
-  L: d3_time_parseMilliseconds,
-  m: d3_time_parseMonthNumber,
-  M: d3_time_parseMinutes,
-  p: d3_time_parseAmPm,
-  S: d3_time_parseSeconds,
-  // U: function(d, s, i) { /*TODO week number (sunday) [00,53] */ return i; },
-  // w: function(d, s, i) { /*TODO weekday [0,6] */ return i; },
-  // W: function(d, s, i) { /*TODO week number (monday) [00,53] */ return i; },
-  x: d3_time_parseLocaleDate,
-  X: d3_time_parseLocaleTime,
-  y: d3_time_parseYear,
-  Y: d3_time_parseFullYear
-  // ,
-  // Z: function(d, s, i) { /*TODO time zone */ return i; },
-  // "%": function(d, s, i) { /*TODO literal % */ return i; }
-};
-
-// Note: weekday is validated, but does not set the date.
-function d3_time_parseWeekdayAbbrev(date, string, i) {
-  return string.substring(i, i += 3).toLowerCase() in d3_time_weekdayAbbrevLookup ? i : -1;
-}
-
-var d3_time_weekdayAbbrevLookup = {
-  sun: 3,
-  mon: 3,
-  tue: 3,
-  wed: 3,
-  thu: 3,
-  fri: 3,
-  sat: 3
-};
-
-// Note: weekday is validated, but does not set the date.
-function d3_time_parseWeekday(date, string, i) {
-  d3_time_weekdayRe.lastIndex = 0;
-  var n = d3_time_weekdayRe.exec(string.substring(i, i + 10));
-  return n ? i += n[0].length : -1;
-}
-
-var d3_time_weekdayRe = /^(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)/ig;
-
-var d3_time_weekdays = [
-  "Sunday",
-  "Monday",
-  "Tuesday",
-  "Wednesday",
-  "Thursday",
-  "Friday",
-  "Saturday"
-];
-
-function d3_time_parseMonthAbbrev(date, string, i) {
-  var n = d3_time_monthAbbrevLookup[string.substring(i, i += 3).toLowerCase()];
-  return n == null ? -1 : (date.setMonth(n), i);
-}
-
-var d3_time_monthAbbrevLookup = {
-  jan: 0,
-  feb: 1,
-  mar: 2,
-  apr: 3,
-  may: 4,
-  jun: 5,
-  jul: 6,
-  aug: 7,
-  sep: 8,
-  oct: 9,
-  nov: 10,
-  dec: 11
-};
-
-function d3_time_parseMonth(date, string, i) {
-  d3_time_monthRe.lastIndex = 0;
-  var n = d3_time_monthRe.exec(string.substring(i, i + 12));
-  return n ? (date.setMonth(d3_time_monthLookup[n[0].toLowerCase()]), i += n[0].length) : -1;
-}
-
-var d3_time_monthRe = /^(?:January|February|March|April|May|June|July|August|September|October|November|December)/ig;
-
-var d3_time_monthLookup = {
-  january: 0,
-  february: 1,
-  march: 2,
-  april: 3,
-  may: 4,
-  june: 5,
-  july: 6,
-  august: 7,
-  september: 8,
-  october: 9,
-  november: 10,
-  december: 11
-};
-
-var d3_time_months = [
-  "January",
-  "February",
-  "March",
-  "April",
-  "May",
-  "June",
-  "July",
-  "August",
-  "September",
-  "October",
-  "November",
-  "December"
-];
-
-function d3_time_parseLocaleFull(date, string, i) {
-  return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
-}
-
-function d3_time_parseLocaleDate(date, string, i) {
-  return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
-}
-
-function d3_time_parseLocaleTime(date, string, i) {
-  return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
-}
-
-function d3_time_parseFullYear(date, string, i) {
-  d3_time_numberRe.lastIndex = 0;
-  var n = d3_time_numberRe.exec(string.substring(i, i + 4));
-  return n ? (date.setFullYear(n[0]), i += n[0].length) : -1;
-}
-
-function d3_time_parseYear(date, string, i) {
-  d3_time_numberRe.lastIndex = 0;
-  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-  return n ? (date.setFullYear(d3_time_century() + +n[0]), i += n[0].length) : -1;
-}
-
-function d3_time_century() {
-  return ~~(new Date().getFullYear() / 1000) * 1000;
-}
-
-function d3_time_parseMonthNumber(date, string, i) {
-  d3_time_numberRe.lastIndex = 0;
-  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-  return n ? (date.setMonth(n[0] - 1), i += n[0].length) : -1;
-}
-
-function d3_time_parseDay(date, string, i) {
-  d3_time_numberRe.lastIndex = 0;
-  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-  return n ? (date.setDate(+n[0]), i += n[0].length) : -1;
-}
-
-// Note: we don't validate that the hour is in the range [0,23].
-function d3_time_parseHour24(date, string, i) {
-  d3_time_numberRe.lastIndex = 0;
-  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-  return n ? (date.setHours(+n[0]), i += n[0].length) : -1;
-}
-
-// Note: we don't validate that the hour is in the range [1,12].
-function d3_time_parseHour12(date, string, i) {
-  date.hour12 = true;
-  return d3_time_parseHour24(date, string, i);
-}
-
-function d3_time_parseMinutes(date, string, i) {
-  d3_time_numberRe.lastIndex = 0;
-  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-  return n ? (date.setMinutes(+n[0]), i += n[0].length) : -1;
-}
-
-function d3_time_parseSeconds(date, string, i) {
-  d3_time_numberRe.lastIndex = 0;
-  var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-  return n ? (date.setSeconds(+n[0]), i += n[0].length) : -1;
-}
-
-function d3_time_parseMilliseconds(date, string, i) {
-  d3_time_numberRe.lastIndex = 0;
-  var n = d3_time_numberRe.exec(string.substring(i, i + 3));
-  return n ? (date.setMilliseconds(+n[0]), i += n[0].length) : -1;
-}
-
-// Note: we don't look at the next directive.
-var d3_time_numberRe = /\s*\d+/;
-
-function d3_time_parseAmPm(date, string, i) {
-  var n = d3_time_amPmLookup[string.substring(i, i += 2).toLowerCase()];
-  return n == null ? -1 : (date.hour12pm = n, i);
-}
-
-var d3_time_amPmLookup = {
-  am: 0,
-  pm: 1
-};
-
-function d3_time_year(d) {
-  return new d3_time(d.getFullYear(), 0, 1);
-}
-
-function d3_time_daysElapsed(d0, d1) {
-  return ~~((d1 - d0) / 864e5 - (d1.getTimezoneOffset() - d0.getTimezoneOffset()) / 1440);
-}
-
-function d3_time_dayOfYear(d) {
-  return d3_time_zfill3(1 + d3_time_daysElapsed(d3_time_year(d), d));
-}
-
-function d3_time_weekNumberSunday(d) {
-  var d0 = d3_time_year(d);
-  return d3_time_zfill2(~~((d3_time_daysElapsed(d0, d) + d0.getDay()) / 7));
-}
-
-function d3_time_weekNumberMonday(d) {
-  var d0 = d3_time_year(d);
-  return d3_time_zfill2(~~((d3_time_daysElapsed(d0, d) + (d0.getDay() + 6) % 7) / 7));
-}
-
-// TODO table of time zone offset names?
-function d3_time_zone(d) {
-  var z = d.getTimezoneOffset(),
-      zs = z > 0 ? "-" : "+",
-      zh = ~~(Math.abs(z) / 60),
-      zm = Math.abs(z) % 60;
-  return zs + d3_time_zfill2(zh) + d3_time_zfill2(zm);
-}
-d3.time.format.utc = function(template) {
-  var local = d3.time.format(template);
-
-  function format(date) {
-    try {
-      d3_time = d3_time_format_utc;
-      var utc = new d3_time();
-      utc._ = date;
-      return local(utc);
-    } finally {
-      d3_time = Date;
-    }
-  }
-
-  format.parse = function(string) {
-    try {
-      d3_time = d3_time_format_utc;
-      var date = local.parse(string);
-      return date && date._;
-    } finally {
-      d3_time = Date;
-    }
-  };
-
-  format.toString = local.toString;
-
-  return format;
-};
-
-function d3_time_format_utc() {
-  this._ = new Date(Date.UTC.apply(this, arguments));
-}
-
-d3_time_format_utc.prototype = {
-  getDate: function() { return this._.getUTCDate(); },
-  getDay: function() { return this._.getUTCDay(); },
-  getFullYear: function() { return this._.getUTCFullYear(); },
-  getHours: function() { return this._.getUTCHours(); },
-  getMilliseconds: function() { return this._.getUTCMilliseconds(); },
-  getMinutes: function() { return this._.getUTCMinutes(); },
-  getMonth: function() { return this._.getUTCMonth(); },
-  getSeconds: function() { return this._.getUTCSeconds(); },
-  getTimezoneOffset: function() { return 0; },
-  valueOf: function() { return this._.getTime(); },
-  setDate: function(x) { this._.setUTCDate(x); },
-  setDay: function(x) { this._.setUTCDay(x); },
-  setFullYear: function(x) { this._.setUTCFullYear(x); },
-  setHours: function(x) { this._.setUTCHours(x); },
-  setMilliseconds: function(x) { this._.setUTCMilliseconds(x); },
-  setMinutes: function(x) { this._.setUTCMinutes(x); },
-  setMonth: function(x) { this._.setUTCMonth(x); },
-  setSeconds: function(x) { this._.setUTCSeconds(x); }
-};
-var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
-
-d3.time.format.iso = Date.prototype.toISOString ? d3_time_formatIsoNative : d3_time_formatIso;
-
-function d3_time_formatIsoNative(date) {
-  return date.toISOString();
-}
-
-d3_time_formatIsoNative.parse = function(string) {
-  return new Date(string);
-};
-
-d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
-function d3_time_range(floor, step, number) {
-  return function(t0, t1, dt) {
-    var time = floor(t0), times = [];
-    if (time < t0) step(time);
-    if (dt > 1) {
-      while (time < t1) {
-        var date = new Date(+time);
-        if (!(number(date) % dt)) times.push(date);
-        step(time);
-      }
-    } else {
-      while (time < t1) times.push(new Date(+time)), step(time);
-    }
-    return times;
-  };
-}
-d3.time.second = function(date) {
-  return new Date(~~(date / 1e3) * 1e3);
-};
-
-d3.time.second.utc = d3.time.second;
-d3.time.seconds = d3_time_range(d3.time.second, function(date) {
-  date.setTime(date.getTime() + 1e3);
-}, function(date) {
-  return date.getSeconds();
-});
-
-d3.time.seconds.utc = d3.time.seconds;
-d3.time.minute = function(date) {
-  return new Date(~~(date / 6e4) * 6e4);
-};
-
-d3.time.minute.utc = d3.time.minute;d3.time.minutes = d3_time_range(d3.time.minute, d3_time_minutesStep, function(date) {
-  return date.getMinutes();
-});
-
-d3.time.minutes.utc = d3_time_range(d3.time.minute, d3_time_minutesStep, function(date) {
-  return date.getUTCMinutes();
-});
-
-function d3_time_minutesStep(date) {
-  date.setTime(date.getTime() + 6e4); // assumes no leap seconds
-}
-d3.time.hour = function(date) {
-  var offset = date.getTimezoneOffset() / 60;
-  return new Date((~~(date / 36e5 - offset) + offset) * 36e5);
-};
-
-d3.time.hour.utc = function(date) {
-  return new Date(~~(date / 36e5) * 36e5);
-};
-d3.time.hours = d3_time_range(d3.time.hour, d3_time_hoursStep, function(date) {
-  return date.getHours();
-});
-
-d3.time.hours.utc = d3_time_range(d3.time.hour.utc, d3_time_hoursStep, function(date) {
-  return date.getUTCHours();
-});
-
-function d3_time_hoursStep(date) {
-  date.setTime(date.getTime() + 36e5);
-}
-d3.time.day = function(date) {
-  return new Date(date.getFullYear(), date.getMonth(), date.getDate());
-};
-
-d3.time.day.utc = function(date) {
-  return new Date(~~(date / 864e5) * 864e5);
-};
-d3.time.days = d3_time_range(d3.time.day, function(date) {
-  date.setDate(date.getDate() + 1);
-}, function(date) {
-  return date.getDate() - 1;
-});
-
-d3.time.days.utc = d3_time_range(d3.time.day.utc, function(date) {
-  date.setUTCDate(date.getUTCDate() + 1);
-}, function(date) {
-  return date.getUTCDate() - 1;
-});
-d3.time.week = function(date) {
-  (date = d3.time.day(date)).setDate(date.getDate() - date.getDay());
-  return date;
-};
-
-d3.time.week.utc = function(date) {
-  (date = d3.time.day.utc(date)).setUTCDate(date.getUTCDate() - date.getUTCDay());
-  return date;
-};
-d3.time.weeks = d3_time_range(d3.time.week, function(date) {
-  date.setDate(date.getDate() + 7);
-}, function(date) {
-  return ~~((date - new Date(date.getFullYear(), 0, 1)) / 6048e5);
-});
-
-d3.time.weeks.utc = d3_time_range(d3.time.week.utc, function(date) {
-  date.setUTCDate(date.getUTCDate() + 7);
-}, function(date) {
-  return ~~((date - Date.UTC(date.getUTCFullYear(), 0, 1)) / 6048e5);
-});
-d3.time.month = function(date) {
-  return new Date(date.getFullYear(), date.getMonth(), 1);
-};
-
-d3.time.month.utc = function(date) {
-  return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));
-};
-d3.time.months = d3_time_range(d3.time.month, function(date) {
-  date.setMonth(date.getMonth() + 1);
-}, function(date) {
-  return date.getMonth();
-});
-
-d3.time.months.utc = d3_time_range(d3.time.month.utc, function(date) {
-  date.setUTCMonth(date.getUTCMonth() + 1);
-}, function(date) {
-  return date.getUTCMonth();
-});
-d3.time.year = function(date) {
-  return new Date(date.getFullYear(), 0, 1);
-};
-
-d3.time.year.utc = function(date) {
-  return new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
-};
-d3.time.years = d3_time_range(d3.time.year, function(date) {
-  date.setFullYear(date.getFullYear() + 1);
-}, function(date) {
-  return date.getFullYear();
-});
-
-d3.time.years.utc = d3_time_range(d3.time.year.utc, function(date) {
-  date.setUTCFullYear(date.getUTCFullYear() + 1);
-}, function(date) {
-  return date.getUTCFullYear();
-});
-// TODO nice
-function d3_time_scale(linear, methods, format) {
-
-  function scale(x) {
-    return linear(x);
-  }
-
-  scale.invert = function(x) {
-    return d3_time_scaleDate(linear.invert(x));
-  };
-
-  scale.domain = function(x) {
-    if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
-    linear.domain(x);
-    return scale;
-  };
-
-  scale.ticks = function(m, k) {
-    var extent = d3_time_scaleExtent(scale.domain());
-    if (typeof m !== "function") {
-      var span = extent[1] - extent[0],
-          target = span / m,
-          i = d3.bisect(d3_time_scaleSteps, target, 1, d3_time_scaleSteps.length - 1);
-      if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
-      m = methods[i];
-      k = m[1];
-      m = m[0];
-    }
-    return m(extent[0], extent[1], k);
-  };
-
-  scale.tickFormat = function() {
-    return format;
-  };
-
-  scale.copy = function() {
-    return d3_time_scale(linear.copy(), methods, format);
-  };
-
-  // TOOD expose d3_scale_linear_rebind?
-  scale.range = d3.rebind(scale, linear.range);
-  scale.rangeRound = d3.rebind(scale, linear.rangeRound);
-  scale.interpolate = d3.rebind(scale, linear.interpolate);
-  scale.clamp = d3.rebind(scale, linear.clamp);
-
-  return scale;
-}
-
-// TODO expose d3_scaleExtent?
-function d3_time_scaleExtent(domain) {
-  var start = domain[0], stop = domain[domain.length - 1];
-  return start < stop ? [start, stop] : [stop, start];
-}
-
-function d3_time_scaleDate(t) {
-  return new Date(t);
-}
-
-function d3_time_scaleFormat(formats) {
-  return function(date) {
-    var i = formats.length - 1, f = formats[i];
-    while (!f[1](date)) f = formats[--i];
-    return f[0](date);
-  };
-}
-
-var d3_time_scaleSteps = [
-  1e3,    // 1-second
-  5e3,    // 5-second
-  15e3,   // 15-second
-  3e4,    // 30-second
-  6e4,    // 1-minute
-  3e5,    // 5-minute
-  9e5,    // 15-minute
-  18e5,   // 30-minute
-  36e5,   // 1-hour
-  108e5,  // 3-hour
-  216e5,  // 6-hour
-  432e5,  // 12-hour
-  864e5,  // 1-day
-  1728e5, // 2-day
-  6048e5, // 1-week
-  1728e6, // 1-month
-  7776e6, // 3-month
-  31536e6 // 1-year
-];
-
-var d3_time_scaleLocalMethods = [
-  [d3.time.seconds, 1],
-  [d3.time.seconds, 5],
-  [d3.time.seconds, 15],
-  [d3.time.seconds, 30],
-  [d3.time.minutes, 1],
-  [d3.time.minutes, 5],
-  [d3.time.minutes, 15],
-  [d3.time.minutes, 30],
-  [d3.time.hours, 1],
-  [d3.time.hours, 3],
-  [d3.time.hours, 6],
-  [d3.time.hours, 12],
-  [d3.time.days, 1],
-  [d3.time.days, 2],
-  [d3.time.weeks, 1],
-  [d3.time.months, 1],
-  [d3.time.months, 3],
-  [d3.time.years, 1]
-];
-
-var d3_time_scaleLocalFormats = [
-  [d3.time.format("%Y"), function(d) { return true; }],
-  [d3.time.format("%B"), function(d) { return d.getMonth(); }],
-  [d3.time.format("%b %d"), function(d) { return d.getDate() != 1; }],
-  [d3.time.format("%a %d"), function(d) { return d.getDay() && d.getDate() != 1; }],
-  [d3.time.format("%I %p"), function(d) { return d.getHours(); }],
-  [d3.time.format("%I:%M"), function(d) { return d.getMinutes(); }],
-  [d3.time.format(":%S"), function(d) { return d.getSeconds() || d.getMilliseconds(); }]
-];
-
-var d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
-
-d3.time.scale = function() {
-  return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
-};
-var d3_time_scaleUTCMethods = [
-  [d3.time.seconds.utc, 1],
-  [d3.time.seconds.utc, 5],
-  [d3.time.seconds.utc, 15],
-  [d3.time.seconds.utc, 30],
-  [d3.time.minutes.utc, 1],
-  [d3.time.minutes.utc, 5],
-  [d3.time.minutes.utc, 15],
-  [d3.time.minutes.utc, 30],
-  [d3.time.hours.utc, 1],
-  [d3.time.hours.utc, 3],
-  [d3.time.hours.utc, 6],
-  [d3.time.hours.utc, 12],
-  [d3.time.days.utc, 1],
-  [d3.time.days.utc, 2],
-  [d3.time.weeks.utc, 1],
-  [d3.time.months.utc, 1],
-  [d3.time.months.utc, 3],
-  [d3.time.years.utc, 1]
-];
-
-var d3_time_scaleUTCFormats = [
-  [d3.time.format.utc("%Y"), function(d) { return true; }],
-  [d3.time.format.utc("%B"), function(d) { return d.getUTCMonth(); }],
-  [d3.time.format.utc("%b %d"), function(d) { return d.getUTCDate() != 1; }],
-  [d3.time.format.utc("%a %d"), function(d) { return d.getUTCDay() && d.getUTCDate() != 1; }],
-  [d3.time.format.utc("%I %p"), function(d) { return d.getUTCHours(); }],
-  [d3.time.format.utc("%I:%M"), function(d) { return d.getUTCMinutes(); }],
-  [d3.time.format.utc(":%S"), function(d) { return d.getUTCSeconds() || d.getUTCMilliseconds(); }]
-];
-
-var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
-
-d3.time.scale.utc = function() {
-  return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
-};
-})();
diff --git a/rtd_phosphonetx/source/html/demoapp/images/openBIS_Logo.png b/rtd_phosphonetx/source/html/demoapp/images/openBIS_Logo.png
deleted file mode 100644
index 87ae5e81899908f3968ea230205322dc19ff4ee5..0000000000000000000000000000000000000000
Binary files a/rtd_phosphonetx/source/html/demoapp/images/openBIS_Logo.png and /dev/null differ
diff --git a/rtd_phosphonetx/source/html/demoapp/images/openBIS_Logo.svg b/rtd_phosphonetx/source/html/demoapp/images/openBIS_Logo.svg
deleted file mode 100644
index 70ac6c77f2774a5a5e8f6875e3c8ae1acb8e952a..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/html/demoapp/images/openBIS_Logo.svg
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 15.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="400.023px" height="174.566px" viewBox="0 0 400.023 174.566" enable-background="new 0 0 400.023 174.566"
-	 xml:space="preserve">
-<g id="Layer_1">
-	<g>
-		<text transform="matrix(1 0 0 1 46.4854 154.2764)"><tspan x="0" y="0" fill="#010101" font-family="'HelveticaNeue-Bold'" font-size="93.505" letter-spacing="-4">open</tspan><tspan x="204.679" y="0" fill="#231F20" font-family="'HelveticaNeue'" font-size="93.505">BIS</tspan></text>
-		<rect x="204.234" y="158.748" fill="none" width="192.64" height="14.936"/>
-		<text transform="matrix(1 0 0 1 204.2329 169.876)" fill="#010101" font-family="'HelveticaNeue'" font-size="15.5842">Biology Information System</text>
-		<g>
-			<g>
-				<g>
-					<g>
-						<polygon fill="#068172" points="125.213,81.967 141.416,98.167 147.252,92.333 131.053,76.132 125.213,76.132 						"/>
-					</g>
-					<g>
-						<g>
-							<polygon fill="#068172" points="120.206,81.967 104.005,98.167 98.168,92.333 114.368,76.132 120.206,76.132 							"/>
-						</g>
-						<g>
-							<polygon fill="#068172" points="120.206,65.286 104.005,49.084 98.168,54.92 114.368,71.12 120.206,71.12 							"/>
-						</g>
-					</g>
-				</g>
-				<g>
-					<polygon fill="#068172" points="125.213,65.286 141.416,49.084 147.252,54.92 131.053,71.12 125.213,71.12 					"/>
-				</g>
-			</g>
-			<g>
-				<g>
-					<polygon fill="#A4A4A4" points="76.131,16.201 92.331,0 98.168,5.836 81.969,22.036 76.13,22.036 					"/>
-				</g>
-				<g>
-					<g>
-						<polygon fill="#ADACAF" points="76.131,32.882 92.331,49.084 98.168,43.247 81.969,27.048 76.13,27.048 						"/>
-					</g>
-					<g>
-						<g>
-							<polygon fill="#ADACAF" points="71.122,32.882 54.921,49.084 49.084,43.247 65.283,27.048 71.123,27.048 							"/>
-						</g>
-						<g>
-							<polygon fill="#ADACAF" points="71.122,16.201 54.921,0 49.084,5.836 65.283,22.036 71.123,22.036 							"/>
-						</g>
-					</g>
-				</g>
-			</g>
-			<g>
-				<g>
-					<polygon fill="#ADACAF" points="27.046,65.286 43.247,49.084 49.083,54.92 32.884,71.12 27.045,71.12 					"/>
-				</g>
-				<g>
-					<polygon fill="#ADACAF" points="27.046,81.967 43.247,98.167 49.083,92.333 32.884,76.132 27.045,76.132 					"/>
-				</g>
-				<g>
-					<polygon fill="#ADACAF" points="22.038,81.967 5.837,98.167 0,92.333 16.199,76.132 22.038,76.132 					"/>
-				</g>
-				<g>
-					<polygon fill="#ADACAF" points="22.038,65.286 5.837,49.084 0,54.92 16.199,71.12 22.038,71.12 					"/>
-				</g>
-			</g>
-		</g>
-	</g>
-</g>
-<g id="Layer_2">
-</g>
-</svg>
diff --git a/rtd_phosphonetx/source/html/demoapp/openbis-demo-app.html b/rtd_phosphonetx/source/html/demoapp/openbis-demo-app.html
deleted file mode 100644
index fde4a9f6ce2360a8e70b3d23de69c0ece64f01d0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/html/demoapp/openbis-demo-app.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-    <title>openBIS Proteomics Demo Web App</title>
-    <link type="text/css" rel="stylesheet" href="body-style.css" />
-    <link type="text/css" rel="stylesheet" href="button.css" />
-    <link type="text/css" rel="stylesheet" href="tree.css" />
-    <script type="text/javascript" src="d3.js"></script>
-    <script type="text/javascript" src="d3.layout.js"></script>
-    <script type="text/javascript" src="d3.time.js"></script>
-    <script type="text/javascript" src="/openbis/resources/js/jquery.js"></script>
-    <script type="text/javascript" src="/openbis/resources/js/openbis.js"></script>
-    <script type="text/javascript" src="proteomics-demo.js"></script>
-    <!-- To speed development, cache the requests -->
-    <!-- <script type="text/javascript" src="/openbis/resources/js/openbis-request-cache.js"></script> -->
-<script>
-
-/// The openbisServer we use for our data
-//var baseURL = 'https://openbis-phosphonetx.ethz.ch'
-var baseURL = 'http://localhost:8888'
-var openbisUrl = baseURL + '/openbis-test-proteomics';
-openbisServer = new openbis(baseURL + '/openbis/openbis', baseURL + '/datastore_server');
-
-
-
-$(document).ready(function() {
-    $('#main').hide();
-    
-	var username = $("#username").value;
-	if(username == null || username.length==0) {
-		$("#username").focus();
-	} else {
-		$("#login-button").focus();
-	}
-    
-    $('#logout-button').click(function() { 
-        openbisServer.logout(function(data) { 
-            $("#login-form-div").show();
-            $("#main").hide();
-            $("#username").focus();
-        });
-        clearTable();
-    });
-    
-    $('#query-button').click(function() {
-        var parameters = { "protein" : $.trim($('#protein').val()), 
-                           "space" : $.trim($('#space').val())};
-        queryForResults(parameters);
-    });
-    
-    $('#login-form').submit(function() {
-         openbisServer.login( $.trim($('#username').val()), $.trim($('#password').val()), function(data) { enterApp(data) })
-    });
-    
-    openbisServer.ifRestoredSessionActive(function(data) { enterApp(data) });
-
-    // Make the ENTER key the default button
-    $("login-form input").keypress(function (e) {
-        if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
-            $('button[type=submit].default').click();
-            return false;
-        } else {
-            return true;
-        }
-    });
-});
-
-</script>
-
-</head>
-<body>
-    <img id="openbis-logo" src="images/openBIS_Logo.png" alt="openBIS" style="position: absolute; right: 10px; height: 100px;"/>
-    <div id="login-form-div">
-        <h1>openBIS Proteomics Demo Web App</h1>
-        <form id="login-form" action="javascript:">
-            <input id="username" type="text" required="required"> 
-            <input id="password" type="password" required="required"> 
-            <button class="login-button" id="login-button" type="submit">Login</button>
-        </form>
-    </div>
-
-    <div id="main">
-        <button id="logout-button">Logout</button>
-        <form id="query-form" action="javascript:">
-            <table>
-              <tr><td>Space</td><td><input id="space" type="text" required="required"></td></tr>
-              <tr><td>Protein</td><td><input id="protein" type="text" required="required"></td></tr>
-              <tr><td></td><td style="text-align: right"><button class="query-button" id="query-button" type="submit">Search</button></td></tr>
-            </table>
-        </form>
-        <div id="waiting" style="display: none;">Please, wait while loading data.</div>
-    </div>
-</body>
-</html>
diff --git a/rtd_phosphonetx/source/html/demoapp/proteomics-demo.js b/rtd_phosphonetx/source/html/demoapp/proteomics-demo.js
deleted file mode 100644
index abda7882c1b7baea19f136727575ca3a18713963..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/html/demoapp/proteomics-demo.js
+++ /dev/null
@@ -1,225 +0,0 @@
-/// How much horizontal space do the inspectors take
-var inspectorsWidth = 100;
-
-/// A helper function for drawing the lines between nodes
-var diagonal = d3.svg.diagonal().projection(function(d) { return [d.y, d.x] }); 
-
-/// The model for the visualization 
-var model = null;
-
-/// The visualization, referenced by functions that display content
-var vis;
-
-var didCreateVis = false;
-
-var indexOfLinkedColumn = 3;
-
-/**
- * Create the DOM elements to store the visualization (tree + inspectors)
- */
-function createVis()
-{ 
-    if (didCreateVis) return;
-    
-    // Create a div to house the tree visualization and the inspectors
-    vis = d3.select("#main").append("div").attr("id", "vis");
-
-    didCreateVis = true;
-}
-
-function displayReturnedResults(data)
-{
-    $("#waiting").hide();
-
-    if (data.error) {
-        console.log(data.error);
-        vis.append("p").text("Could not retrieve data.");
-        return;
-    }
-
-    displayResultsAsGraph(createDataModel(data));
-}
-
-function displayResultsAsGraph(data) 
-{
-    clearVis();
-    if (data.length == 0)
-    {
-        vis.append("p").text("Nothing found.");
-        return;
-    }
-    
-    var delayStep = 20,
-        xOffset = 70,
-        yOffset = 40,
-        xStep = 200,
-        yStep = 30,
-        xLabel = -30,
-        yLabel = 18,
-        columnNames = ['Biological Experiment', 'Biological Sample', 'MS Injection Sample', 'Search Experiment', 'Protein'];
-        
-    var graph = vis.selectAll("svg").data([data]).enter().append("svg:svg")
-        .attr("width", $(window).width() - 50)
-        .attr("height", $(window).height() - 50);
-
-    var g = graph.selectAll("g").data(function(d) { return d; })
-        .enter().append("svg:g")
-        .attr("transform", function(d,i) { return "translate(" + (xOffset + i * xStep) + ", "
-                                                               + yOffset + ")"; });
-    
-    g.append("svg:text")
-        .text(function(d,i) { return columnNames[i]; })
-        .attr("class", "columnHeader")
-        .attr("text-anchor", "middle")
-        .attr("x", 0)
-        .attr("y", -10);
-        
-    g.selectAll("path").data(function(d) { return d[1]; })
-        .enter().append("svg:path")
-        .attr("class", "line")
-        .transition().delay(function(d,i) { return i * delayStep; })
-        .attr("d", function(d,i) { 
-            var y0 = d[0] * yStep;
-            var y1 = d[1] * yStep;
-            return "M0," + y0 
-                 + "Q" + xStep/4 + "," + y0 + "," + xStep/2 + "," + (y0+y1)/2 
-                 + "L" + xStep/2 + "," + (y0+y1)/2 
-                 + "Q" + 3*xStep/4 + "," + y1 + "," + xStep + "," + y1
-                 + "L" + xStep + "," + y1; 
-            })
-
-    var node = g.selectAll("g").data(function(d) { return d[0]; })
-        .enter().append("svg:g")
-        .attr("class", "node")
-        .attr("transform", function(d,i) { return "translate(0, " + (i * yStep) + ")"; });
-        
-    node.append("svg:circle")        
-        .transition().delay(function(d,i) { return i * delayStep; })
-        .attr("r", 5);
-            
-    node.append("svg:text")
-        .on("click", function(d) { if (d.level == indexOfLinkedColumn) {
-                                       window.open(openbisUrl + "/?#entity=EXPERIMENT&permId=" + d.permId, '_blank');
-                                   }
-                                 })
-        .transition().delay(function(d,i) { return i * delayStep; })
-        .text(function(d) { return d.label; })
-        .attr("class", function(d) { return d.level == indexOfLinkedColumn ? "linked" : "notLinked";})
-        .attr("text-anchor", "left")
-        .attr("x", xLabel)
-        .attr("y", yLabel)
-}
-
-
-function Node(level, label, permId) {
-    this.level = level;
-    this.label = label;
-    this.permId = permId;
-}
-
-
-function createDataModel(tableModel)
-{
-    var rows = tableModel.result.rows
-    var maps = [];
-    var permIds = {};
-    
-    for (n = 0; n < rows.length; n++) 
-    {
-        row = rows[n];
-        permIds[row[indexOfLinkedColumn].value] = row[4].value;
-        var accessionNumber = row[5].value;
-        var splitted = accessionNumber.split("|");
-        if (splitted.length > 1)
-        {
-            accessionNumber = splitted[1];
-        }
-        row[5].value = accessionNumber + ": " + row[6].value; // concatenate accession number with description
-        row.splice(6, 1); // remove description
-        row.splice(4, 1); // remove search experiment perm id
-        for (i = 0; i < row.length; i++) {
-            map = maps[i];
-            if (map == null) {
-                map = {};
-                maps[i] = map;
-            }
-            cell = row[i].value;
-            links = map[cell];
-            if (links == null) {
-                links = {};
-                map[cell] = links;
-            }
-            if (i < row.length - 1) {
-                links[row[i + 1].value] = 0;
-            }
-        }
-    }
-    var data = [];
-    for (i = 0; i < maps.length; i++) {
-        var map = maps[i];
-        var elements = [];
-        for (element in map) {
-            var permId = null;
-            if (i == indexOfLinkedColumn)
-            {
-                permId = permIds[element];
-            }
-            elements.push(new Node(i, element, permId));
-        }
-        elements.sort();
-        var indexMap = {};
-        for (j = 0; j < elements.length; j++) {
-            indexMap[elements[j].label] = j;
-        }
-        data.push([elements, [], indexMap]);
-    }
-    
-    for (i = 0; i < maps.length - 1; i++) {
-        var map = maps[i];
-        var from = data[i][0];
-        var links = data[i][1];
-        var indexMap = data[i + 1][2];
-        for (j = 0; j < from.length; j++) {
-            element = from[j];
-            linkedElements = map[element.label];
-            for (linkedElement in linkedElements) {
-                links.push([j, indexMap[linkedElement]]);
-            }
-        }
-    }
-    
-    return data;
-}
-
-function clearVis()
-{
-    $('#vis > *').remove();
-}
-
-/**
- * Request samples matching some criteria from the server and show them in the Page.
- */
-function queryForResults(parameters)
-{
-    $("#waiting").show();
-    openbisServer.createReportFromAggregationService("DSS1", "demo-proteomics-aggregation", parameters, displayReturnedResults);
-//    openbisServer.createReportFromAggregationService("STANDARD", "demo-proteomics-aggregation", parameters, displayReturnedResults);
-}
-
-
-function enterApp(data)
-{
-    if(data.result == null)
-    {
-        alert("Login or password incorrect");
-        $("#username").focus();
-        return;
-    }
-    
-    $("#login-form-div").hide();
-    $("#main").show();
-    
-    $('#openbis-logo').height(30);
-    
-    createVis();
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/html/demoapp/tree.css b/rtd_phosphonetx/source/html/demoapp/tree.css
deleted file mode 100644
index 2d8808b86a6463a3acf29f784c853cc97f0105a8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/html/demoapp/tree.css
+++ /dev/null
@@ -1,36 +0,0 @@
-.node circle {
-	 fill: #fff;
-	 stroke: #444444; 
-	 stroke-width: 1.5px;
-}
-
-.columnHeader {
-	font: 16px;
-	font-weight: bold;
-}
-
-.link {
-	 fill: none;
-	 stroke: #ccc;
-	 stroke-width: 1.5px;
-	 z-index: -1;
-}
-
-.line {
-	fill: none;
-	stroke: steelblue;
-	stroke-width: 1px;
-}
-
-.node {
-	font: 12px "Verdana", sans-serif;
-	z-index: 1;
-	cursor: pointer;
-	position: relative; 
-	left: -15px;
-}
-
-
-.linked:hover {
-  font-weight: bold;  
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/APMSReport.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/APMSReport.java
deleted file mode 100644
index 48e9d481b7103e5ed92d496324a37e7e64f187b5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/APMSReport.java
+++ /dev/null
@@ -1,559 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.dss.proteomics.server.plugins;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.activation.DataHandler;
-import javax.mail.util.ByteArrayDataSource;
-
-import org.apache.commons.io.IOUtils;
-
-import com.csvreader.CsvReader;
-
-import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
-import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
-import ch.systemsx.cisd.common.exceptions.Status;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.mail.EMailAddress;
-import ch.systemsx.cisd.common.string.Template;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.AbstractTableModelReportingPlugin;
-import ch.systemsx.cisd.openbis.dss.generic.shared.DataSetProcessingContext;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IDataSetDirectoryProvider;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IProcessingPluginTask;
-import ch.systemsx.cisd.openbis.dss.generic.shared.ProcessingStatus;
-import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DoubleTableCell;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.StringTableCell;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder;
-
-/**
- * Creates an APMS report from proteins.csv
- * 
- * @author Franz-Josef Elmer
- */
-public class APMSReport extends AbstractTableModelReportingPlugin implements IProcessingPluginTask
-{
-    private static final class Header
-    {
-        private final boolean abundanceHeader;
-
-        private final String header;
-
-        private String biologicalSample;
-
-        private String protein;
-
-        Header(String header, String newHeader)
-        {
-            abundanceHeader = newHeader != null;
-            this.header = abundanceHeader ? newHeader : header;
-        }
-
-        public final String getBiologicalSample()
-        {
-            return biologicalSample;
-        }
-
-        public final void setBiologicalSample(String biologicalSample)
-        {
-            this.biologicalSample = biologicalSample;
-        }
-
-        public final String getProtein()
-        {
-            return protein;
-        }
-
-        public final void setProtein(String protein)
-        {
-            this.protein = protein;
-        }
-
-        public final String getHeader()
-        {
-            return header;
-        }
-
-        public final boolean isAbundanceHeader()
-        {
-            return abundanceHeader;
-        }
-
-        @Override
-        public String toString()
-        {
-            return abundanceHeader ? header + " [" + biologicalSample + ", " + protein + ']'
-                    : header;
-        }
-    }
-
-    private static final class Row
-    {
-        private final String[] values;
-
-        private final Map<String, Integer> columnIndexMap;
-
-        Row(String[] values, Map<String, Integer> columnIndexMap)
-        {
-            this.values = values;
-            this.columnIndexMap = columnIndexMap;
-        }
-
-        public String getValue(String column)
-        {
-            Integer index = columnIndexMap.get(column);
-            return index == null ? "" : values[index];
-        }
-
-        @Override
-        public String toString()
-        {
-            return Arrays.asList(values).toString();
-        }
-    }
-
-    private static final class Table
-    {
-        private final List<Header> headers;
-
-        private final Map<String, Integer> columnIndexMap = new HashMap<String, Integer>();
-
-        private final List<Row> rows = new ArrayList<Row>();
-
-        Table(List<Header> headers)
-        {
-            this.headers = headers;
-            for (int i = 0; i < headers.size(); i++)
-            {
-                columnIndexMap.put(headers.get(i).getHeader(), i);
-            }
-        }
-
-        void add(String[] row)
-        {
-            rows.add(new Row(row, columnIndexMap));
-        }
-
-        public final List<Header> getHeaders()
-        {
-            return headers;
-        }
-
-        public final List<Row> getRows()
-        {
-            return rows;
-        }
-    }
-
-    private static final long serialVersionUID = 1L;
-
-    @Private
-    static final String PROTEIN_FILE_NAME = "proteins.csv";
-
-    private static final String PROTEIN_PROPERTY_CODE_KEY = "protein-property-code";
-
-    @Private
-    static final String DEFAULT_PROTEIN_PROPERTY_CODE = "PROTEIN";
-
-    private static final Template E_MAIL_CONTENT_TEMPLATE =
-            new Template(
-                    "Dear User\n\n"
-                            + "Enclosed you will find the Protein APMS report file for experiment ${experiment-identifier}.\n"
-                            + "Data Set: ${data-set}");
-
-    private final String proteinPropertyCode;
-
-    private IEncapsulatedOpenBISService service;
-
-    public APMSReport(Properties properties, File storeRoot)
-    {
-        super(properties, storeRoot);
-        proteinPropertyCode =
-                properties.getProperty(PROTEIN_PROPERTY_CODE_KEY, DEFAULT_PROTEIN_PROPERTY_CODE);
-    }
-
-    @Override
-    public TableModel createReport(List<DatasetDescription> datasets,
-            DataSetProcessingContext context)
-    {
-        if (datasets.size() != 1)
-        {
-            throw new UserFailureException("Chosen plugin works with exactly one data set. "
-                    + datasets.size() + " data sets selected.");
-        }
-        return createTableModel(datasets.get(0), context.getDirectoryProvider());
-    }
-
-    @Override
-    public ProcessingStatus process(List<DatasetDescription> datasets,
-            DataSetProcessingContext context)
-    {
-        ProcessingStatus status = new ProcessingStatus();
-        for (DatasetDescription datasetDescription : datasets)
-        {
-            try
-            {
-                process(datasetDescription, context);
-                status.addDatasetStatus(datasetDescription, Status.OK);
-            } catch (Exception ex)
-            {
-                status.addDatasetStatus(datasetDescription,
-                        Status.createError("Exception occured: " + ex));
-                operationLog.error("Exception occured while processing " + datasetDescription, ex);
-            }
-        }
-        return status;
-    }
-
-    private void process(DatasetDescription datasetDescription, DataSetProcessingContext context)
-    {
-        try
-        {
-            TableModel table =
-                    createTableModel(datasetDescription, context.getDirectoryProvider());
-            String tableAsString = convertTableToCsvString(table);
-            String experimentIdentifier =
-                    datasetDescription.getSpaceCode() + '/' + datasetDescription.getProjectCode()
-                            + '/' + datasetDescription.getExperimentCode();
-            Template template = E_MAIL_CONTENT_TEMPLATE.createFreshCopy();
-            template.bind("experiment-identifier", experimentIdentifier);
-            template.bind("data-set", datasetDescription.getDataSetCode());
-            ByteArrayDataSource dataSource = new ByteArrayDataSource(tableAsString, "text/plain");
-            context.getMailClient().sendEmailMessageWithAttachment("Protein APMS Report",
-                    template.createText(),
-                    datasetDescription.getExperimentCode() + "-APMS-report.txt",
-                    new DataHandler(dataSource), null, null,
-                    new EMailAddress(context.getUserEmailOrNull()));
-
-        } catch (IOException ex)
-        {
-            throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-        }
-    }
-
-    private TableModel createTableModel(DatasetDescription datasetDescription,
-            IDataSetDirectoryProvider directoryProvider)
-    {
-        File proteinFile = getProteinFile(datasetDescription, directoryProvider);
-        Table table = readTable(proteinFile);
-        addHeaderMetaData(table);
-        SimpleTableModelBuilder builder = new SimpleTableModelBuilder();
-        builder.addHeader("Sample ID");
-        builder.addHeader("Bait");
-        builder.addHeader("Prey");
-        builder.addHeader("freq of obs");
-        builder.addHeader("avg MS1 intensities (normalized for the bait)");
-        builder.addHeader("STDV MS1 intensity");
-        List<Entry<String, List<Header>>> groups = calculateAbundanceColumnGroups(table);
-        List<Row> rows = table.getRows();
-        for (int i = 0; i < rows.size(); i++)
-        {
-            Row row = rows.get(i);
-            addRowsTo(builder, row, i, groups);
-        }
-        return builder.getTableModel();
-    }
-
-    private List<Entry<String, List<Header>>> calculateAbundanceColumnGroups(Table table)
-    {
-        List<Header> headers = table.getHeaders();
-        Map<String, List<Header>> abundanceColumnHeaders = new HashMap<String, List<Header>>();
-        for (Header header : headers)
-        {
-            if (header.isAbundanceHeader())
-            {
-                String biologicalSample = header.getBiologicalSample();
-                List<Header> list = abundanceColumnHeaders.get(biologicalSample);
-                if (list == null)
-                {
-                    list = new ArrayList<Header>();
-                    abundanceColumnHeaders.put(biologicalSample, list);
-                }
-                list.add(header);
-            }
-        }
-        Set<Entry<String, List<Header>>> entrySet = abundanceColumnHeaders.entrySet();
-        List<Entry<String, List<Header>>> entryList =
-                new ArrayList<Map.Entry<String, List<Header>>>(entrySet);
-        Collections.sort(entryList, new Comparator<Entry<String, List<Header>>>()
-            {
-                @Override
-                public int compare(Entry<String, List<Header>> e1, Entry<String, List<Header>> e2)
-                {
-                    String key1 = e1.getKey();
-                    String key2 = e2.getKey();
-                    if (key1 != null && key2 != null)
-                    {
-                        return key1.compareTo(key2);
-                    }
-                    return key1 == null ? (key2 == null ? 0 : 1) : -1;
-                }
-            });
-        return entryList;
-    }
-
-    private void addRowsTo(SimpleTableModelBuilder builder, Row row, int i,
-            List<Entry<String, List<Header>>> groups)
-    {
-        String identifiedProtein = row.getValue("protein");
-        for (Entry<String, List<Header>> group : groups)
-        {
-            String biologicalSample = group.getKey();
-            List<Header> headers = group.getValue();
-            String protein = null;
-            double countNonZeroAbundances = 0;
-            double sum = 0;
-            double sum2 = 0;
-            for (Header header : headers)
-            {
-                if (biologicalSample != null && protein == null)
-                {
-                    protein = header.getProtein();
-                }
-                String value = row.getValue(header.getHeader());
-                try
-                {
-                    double abundance = Double.parseDouble(value);
-                    sum += abundance;
-                    sum2 += abundance * abundance;
-                    if (abundance > 0)
-                    {
-                        countNonZeroAbundances++;
-                    }
-                } catch (NumberFormatException ex)
-                {
-                    throw new UserFailureException((i + 5) + ". row has an invalid value (" + value
-                            + ") for column " + header.getHeader() + ": " + row);
-                }
-            }
-            double averagedAbundance = sum / headers.size();
-            double abundanceStandardDeviation =
-                    Math.sqrt(Math.max(0, sum2 / headers.size() - averagedAbundance
-                            * averagedAbundance));
-            double frequencyOfObservation = countNonZeroAbundances / headers.size();
-            StringTableCell biologicalSampleCell = StringTableCell.wrap(biologicalSample);
-            StringTableCell proteinCell = StringTableCell.wrap(protein);
-            StringTableCell identifiedProteinCell = new StringTableCell(identifiedProtein);
-            DoubleTableCell freqOfObsvCell = new DoubleTableCell(frequencyOfObservation);
-            DoubleTableCell abundanceCell = new DoubleTableCell(averagedAbundance);
-            DoubleTableCell abundanceStdvCell = new DoubleTableCell(abundanceStandardDeviation);
-            builder.addRow(Arrays.<ISerializableComparable> asList(biologicalSampleCell,
-                    proteinCell, identifiedProteinCell, freqOfObsvCell, abundanceCell,
-                    abundanceStdvCell));
-        }
-    }
-
-    private void addHeaderMetaData(Table table)
-    {
-        List<Header> headers = table.getHeaders();
-        for (Header header : headers)
-        {
-            if (header.isAbundanceHeader())
-            {
-                SampleIdentifier sampleIdentifier =
-                        SampleIdentifierFactory.parse("/MS_DATA/"
-                                + header.getHeader().toUpperCase());
-                Sample sample = getService().tryGetSampleWithExperiment(sampleIdentifier);
-                if (sample == null)
-                {
-                    throw new UserFailureException("Unknown sample: " + sampleIdentifier);
-                }
-                List<Sample> parents =
-                        getService().listSamples(
-                                ListSampleCriteria.createForChild(new TechId(sample.getId())));
-                if (parents.size() != 1)
-                {
-                    throw new UserFailureException("Exactly one parent sample expected for "
-                            + sample.getIdentifier() + " instead of " + parents.size());
-                }
-                Sample biologicalSample = parents.get(0);
-                header.setBiologicalSample(biologicalSample.getCode());
-                String protein = tryToFindProteinProperty(biologicalSample);
-                if (protein != null)
-                {
-                    header.setProtein(protein);
-                }
-            }
-        }
-    }
-
-    private String tryToFindProteinProperty(Sample sample)
-    {
-        List<IEntityProperty> sampleProperties = sample.getProperties();
-        for (IEntityProperty property : sampleProperties)
-        {
-            if (property.getPropertyType().getCode().equalsIgnoreCase(proteinPropertyCode))
-            {
-                Material material = property.getMaterial();
-                if (material != null)
-                {
-                    return material.getCode();
-                }
-                return property.tryGetAsString();
-            }
-        }
-        List<Sample> parents =
-                getService().listSamples(
-                        ListSampleCriteria.createForChild(new TechId(sample.getId())));
-        for (Sample parent : parents)
-        {
-            String proteinProperty = tryToFindProteinProperty(parent);
-            if (proteinProperty != null)
-            {
-                return proteinProperty;
-            }
-        }
-        return null;
-    }
-
-    private Table readTable(File file)
-    {
-        FileReader reader = null;
-        try
-        {
-            reader = new FileReader(file);
-            CsvReader csvReader = new CsvReader(reader);
-            csvReader.readRecord();
-            csvReader.readRecord();
-            csvReader.readRecord();
-            Map<String, String> map = createAbundanceColumnMap(csvReader.getRawRecord());
-            csvReader.readRecord();
-            String[] columnHeaders = csvReader.getValues();
-            List<Header> headers = new ArrayList<Header>();
-            for (int i = 0; i < columnHeaders.length; i++)
-            {
-                String header = columnHeaders[i];
-                String newHeader = map.get(header);
-                headers.add(new Header(header, newHeader));
-            }
-            Table table = new Table(headers);
-            while (csvReader.readRecord())
-            {
-                table.add(csvReader.getValues());
-            }
-            return table;
-        } catch (IOException ex)
-        {
-            throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-        } finally
-        {
-            IOUtils.closeQuietly(reader);
-        }
-    }
-
-    private Map<String, String> createAbundanceColumnMap(String abundanceColumnMappingDescription)
-    {
-        int indexOfFirstColon = abundanceColumnMappingDescription.indexOf(':');
-        if (indexOfFirstColon < 0)
-        {
-            throw new UserFailureException("Missing ':' in third line: "
-                    + abundanceColumnMappingDescription);
-        }
-        String[] terms =
-                abundanceColumnMappingDescription.substring(indexOfFirstColon + 1).split(",");
-        Map<String, String> map = new HashMap<String, String>();
-        for (String term : terms)
-        {
-            int indexOfColon = term.indexOf(':');
-            if (indexOfColon < 0)
-            {
-                throw new UserFailureException("Missing ':' in mapping definition: " + term);
-            }
-            String abundanceColumn = "abundance_" + term.substring(0, indexOfColon).trim();
-            String fileName = term.substring(indexOfColon + 1).trim();
-            int lastIndexOfSlash = fileName.lastIndexOf('/');
-            if (lastIndexOfSlash >= 0)
-            {
-                fileName = fileName.substring(lastIndexOfSlash + 1);
-            }
-            int lastIndexOfDot = fileName.lastIndexOf('.');
-            if (lastIndexOfDot >= 0)
-            {
-                fileName = fileName.substring(0, lastIndexOfDot);
-            }
-            map.put(abundanceColumn, fileName);
-        }
-        return map;
-    }
-
-    private File getProteinFile(DatasetDescription datasetDescription,
-            IDataSetDirectoryProvider directoryProvider)
-    {
-        @SuppressWarnings("deprecation")
-        File dataSetDir = getDataSubDir(directoryProvider, datasetDescription);
-        if (dataSetDir.isDirectory() == false)
-        {
-            throw new EnvironmentFailureException("Data set folder is not a directory: "
-                    + dataSetDir);
-        }
-        File[] files = dataSetDir.listFiles();
-        if (files.length == 0)
-        {
-            throw new EnvironmentFailureException("Empty data set folder: " + dataSetDir);
-        }
-        File proteinFile = new File(files[0], PROTEIN_FILE_NAME);
-        if (proteinFile.exists() == false)
-        {
-            throw new UserFailureException("File " + PROTEIN_FILE_NAME + " missing.");
-        }
-        if (proteinFile.isFile() == false)
-        {
-            throw new UserFailureException("File " + PROTEIN_FILE_NAME + " is a directory.");
-        }
-        return proteinFile;
-    }
-
-    private IEncapsulatedOpenBISService getService()
-    {
-        if (service == null)
-        {
-            service = ServiceProvider.getOpenBISService();
-        }
-        return service;
-    }
-
-    // for tests
-    void setService(IEncapsulatedOpenBISService service)
-    {
-        this.service = service;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/DataSetCopier.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/DataSetCopier.java
deleted file mode 100644
index 35ea9750c0542ac054600961bcdc3344d76ab3be..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/DataSetCopier.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.dss.proteomics.server.plugins;
-
-import static ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.DataSetCopier.DESTINATION_KEY;
-
-import java.io.File;
-import java.util.Properties;
-
-import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.AbstractDropboxProcessingPlugin;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.IPathCopierFactory;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.ISshCommandExecutorFactory;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.RsyncCopierFactory;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.SshCommandExecutorFactory;
-import ch.systemsx.cisd.openbis.dss.generic.shared.DataSetProcessingContext;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class DataSetCopier extends AbstractDropboxProcessingPlugin
-{
-    private static final long serialVersionUID = 1L;
-
-    public DataSetCopier(Properties properties, File storeRoot)
-    {
-        this(properties, storeRoot, new RsyncCopierFactory(), new SshCommandExecutorFactory());
-    }
-
-    @Private
-    DataSetCopier(Properties properties, File storeRoot, IPathCopierFactory pathCopierFactory,
-            ISshCommandExecutorFactory sshCommandExecutorFactory)
-    {
-        super(properties, storeRoot, new LocalAndRemoteCopier(properties, pathCopierFactory,
-                sshCommandExecutorFactory));
-    }
-
-    @Override
-    protected String getProcessingDescription(DatasetDescription dataset,
-            DataSetProcessingContext context)
-    {
-        return "Copy to " + properties.getProperty(DESTINATION_KEY);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/LocalAndRemoteCopier.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/LocalAndRemoteCopier.java
deleted file mode 100644
index 6bdf93807219f7d2ea090fa543d9761565c0ce10..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/LocalAndRemoteCopier.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.dss.proteomics.server.plugins;
-
-import java.io.File;
-import java.io.Serializable;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.log4j.Logger;
-
-import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
-import ch.systemsx.cisd.common.exceptions.ExceptionWithStatus;
-import ch.systemsx.cisd.common.exceptions.Status;
-import ch.systemsx.cisd.common.filesystem.BooleanStatus;
-import ch.systemsx.cisd.common.filesystem.FileOperations;
-import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.common.filesystem.HostAwareFile;
-import ch.systemsx.cisd.common.filesystem.IPathCopier;
-import ch.systemsx.cisd.common.filesystem.highwatermark.HostAwareFileWithHighwaterMark;
-import ch.systemsx.cisd.common.filesystem.ssh.ISshCommandExecutor;
-import ch.systemsx.cisd.common.logging.LogCategory;
-import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.common.properties.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.server.IDataSetFileOperationsExecutor;
-import ch.systemsx.cisd.openbis.dss.generic.server.LocalDataSetFileOperationsExcecutor;
-import ch.systemsx.cisd.openbis.dss.generic.server.RemoteDataSetFileOperationsExecutor;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.Copier;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.DataSetCopier;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.IPathCopierFactory;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.ISshCommandExecutorFactory;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IPostRegistrationDatasetHandler;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.RSyncConfig;
-
-/**
- * @author Franz-Josef Elmer
- */
-class LocalAndRemoteCopier implements Serializable, IPostRegistrationDatasetHandler
-{
-
-    @Private
-    static final String MARKER_FILE_PREFIX = "marker-file-prefix";
-
-    @Private
-    static final String SAMPLE_UNKNOWN = "sample-unknown";
-
-    private static final long serialVersionUID = 1L;
-
-    final static Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
-            LocalAndRemoteCopier.class);
-
-    private final Properties properties;
-
-    private final IPathCopierFactory pathCopierFactory;
-
-    private final ISshCommandExecutorFactory sshCommandExecutorFactory;
-
-    private transient IDataSetFileOperationsExecutor executor;
-
-    private transient String destination;
-
-    private String markerFilePrefix;
-
-    LocalAndRemoteCopier(Properties properties, IPathCopierFactory pathCopierFactory,
-            ISshCommandExecutorFactory sshCommandExecutorFactory)
-    {
-        this.properties = properties;
-        this.pathCopierFactory = pathCopierFactory;
-        this.sshCommandExecutorFactory = sshCommandExecutorFactory;
-        markerFilePrefix = properties.getProperty(MARKER_FILE_PREFIX);
-        if (markerFilePrefix != null && markerFilePrefix.length() == 0)
-        {
-            throw new ConfigurationFailureException("marker-file-prefix is an empty string.");
-        }
-        init();
-    }
-
-    private void init()
-    {
-        String hostFile =
-                PropertyUtils.getMandatoryProperty(properties, DataSetCopier.DESTINATION_KEY);
-        HostAwareFile hostAwareFile = HostAwareFileWithHighwaterMark.create(hostFile, -1);
-        String hostOrNull = hostAwareFile.tryGetHost();
-        destination = hostAwareFile.getPath();
-        if (hostOrNull == null)
-        {
-            File sshExecutable = null; // don't use ssh locally
-            File rsyncExecutable = Copier.getExecutable(properties, DataSetCopier.RSYNC_EXEC);
-            IPathCopier copier =
-                    pathCopierFactory.create(rsyncExecutable, sshExecutable,
-                            DataSetCopier.SSH_TIMEOUT_MILLIS, RSyncConfig.getInstance().getAdditionalCommandLineOptions());
-            copier.check();
-            String rsyncModule = hostAwareFile.tryGetRsyncModule();
-            String rsyncPasswordFile =
-                    properties.getProperty(DataSetCopier.RSYNC_PASSWORD_FILE_KEY);
-            executor =
-                    new LocalDataSetFileOperationsExcecutor(
-                            FileOperations.getMonitoredInstanceForCurrentThread(), copier,
-                            rsyncModule, rsyncPasswordFile);
-        } else
-        {
-            File sshExecutable = Copier.getExecutable(properties, DataSetCopier.SSH_EXEC);
-            File rsyncExecutable = Copier.getExecutable(properties, DataSetCopier.RSYNC_EXEC);
-            File gfindExecutable = Copier.getExecutable(properties, DataSetCopier.GFIND_EXEC);
-            IPathCopier copier =
-                    pathCopierFactory.create(rsyncExecutable, sshExecutable,
-                            DataSetCopier.SSH_TIMEOUT_MILLIS, RSyncConfig.getInstance().getAdditionalCommandLineOptions());
-            copier.check();
-            String rsyncModule = hostAwareFile.tryGetRsyncModule();
-            String rsyncPasswordFile =
-                    properties.getProperty(DataSetCopier.RSYNC_PASSWORD_FILE_KEY);
-            FileUtilities.checkPathCopier(copier, hostOrNull, null, rsyncModule, rsyncPasswordFile,
-                    DataSetCopier.SSH_TIMEOUT_MILLIS);
-            ISshCommandExecutor sshCommandExecutor =
-                    sshCommandExecutorFactory.create(sshExecutable, hostOrNull);
-            executor =
-                    new RemoteDataSetFileOperationsExecutor(sshCommandExecutor, copier,
-                            gfindExecutable, hostOrNull, rsyncModule, rsyncPasswordFile,
-                            DataSetCopier.SSH_TIMEOUT_MILLIS);
-        }
-    }
-
-    @Override
-    public void undoLastOperation()
-    {
-    }
-
-    /**
-     * Copies specified data file/folder to destination specified in constructor. The name of the file/folder at the destination is defined by the
-     * data set code.
-     */
-    @Override
-    public Status handle(File originalData, DataSetInformation dataSetInformation,
-            Map<String, String> parameterBindings)
-    {
-        if (destination == null)
-        {
-            init();
-        }
-        try
-        {
-            final File destinationLocalFile = new File(destination);
-            String target = dataSetInformation.getDataSetCode();
-            File targetFolder = new File(destinationLocalFile, target);
-            deleteTargetFolder(targetFolder);
-            executor.copyDataSetToDestination(originalData, destinationLocalFile);
-            executor.renameTo(targetFolder, new File(destination, originalData.getName()));
-            if (markerFilePrefix != null)
-            {
-                executor.createMarkerFile(new File(destination, markerFilePrefix + target));
-            }
-            return Status.OK;
-
-        } catch (ExceptionWithStatus ex)
-        {
-            return ex.getStatus();
-        }
-    }
-
-    private void deleteTargetFolder(File targetFolder)
-    {
-        BooleanStatus targetExists = executor.exists(targetFolder);
-        if (targetExists.isError())
-        {
-            operationLog.error("Could not check existence of '" + targetFolder + "': "
-                    + targetExists.tryGetMessage());
-            throw new ExceptionWithStatus(Status.createError("couldn't check existence"));
-        }
-        if (targetExists.isSuccess())
-        {
-            executor.deleteFolder(targetFolder);
-        }
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbstractDataSetInfoExtractorWithService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbstractDataSetInfoExtractorWithService.java
deleted file mode 100644
index 07158f3b1702bd38ed7e9aed6a5405ad3f4d7e34..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbstractDataSetInfoExtractorWithService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import ch.systemsx.cisd.etlserver.IDataSetInfoExtractor;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-
-/**
- * @author Franz-Josef Elmer
- */
-abstract class AbstractDataSetInfoExtractorWithService implements IDataSetInfoExtractor
-{
-    protected final IEncapsulatedOpenBISService service;
-
-    protected AbstractDataSetInfoExtractorWithService(IEncapsulatedOpenBISService service)
-    {
-        this.service = service;
-
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbstractHandler.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbstractHandler.java
deleted file mode 100644
index fdf05fc0585bf5f2fe9a63b52094bcca8c1070cb..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbstractHandler.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-/**
- * Abstract super class of classes using {@link IProtDAO}.
- *
- * @author Franz-Josef Elmer
- */
-abstract class AbstractHandler
-{
-    protected final IProtDAO dao;
-
-    AbstractHandler(IProtDAO dao)
-    {
-        this.dao = dao;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbstractSampleHandler.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbstractSampleHandler.java
deleted file mode 100644
index 9f102974f9af7fa579dc0006f3c7d7ae61e4208b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbstractSampleHandler.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Experiment;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ListSamplesByPropertyCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-
-/**
- * Abstract super class of classes getting or creating {@link Sample} instances.
- *
- * @author Franz-Josef Elmer
- */
-abstract class AbstractSampleHandler extends AbstractHandler
-{
-    @Private
-    static final String MZXML_FILENAME = "MZXML_FILENAME";
-
-    protected static final class SampleOrError
-    {
-        Sample sample;
-
-        String error;
-    }
-
-    protected final IEncapsulatedOpenBISService openbisService;
-
-    protected final ExperimentIdentifier experimentIdentifier;
-
-    private final Experiment experiment;
-
-    private final Map<String, SampleOrError> samplesOrErrors = new HashMap<String, SampleOrError>();
-
-    private final String delimiter;
-
-    private final boolean restrictedSampleResolving;
-
-    AbstractSampleHandler(IEncapsulatedOpenBISService openbisService, IProtDAO dao,
-            ExperimentIdentifier experimentIdentifier, Experiment experiment, String delimiter,
-            boolean restrictedSampleResolving)
-    {
-        super(dao);
-        this.openbisService = openbisService;
-        this.experimentIdentifier = experimentIdentifier;
-        this.experiment = experiment;
-        this.delimiter = delimiter;
-        this.restrictedSampleResolving = restrictedSampleResolving;
-    }
-
-    protected SampleOrError getOrCreateSampleOrError(String sampleNameAndMore)
-    {
-        int indexOfDelimiter = sampleNameAndMore.indexOf(delimiter);
-        String sampleName;
-        if (indexOfDelimiter < 0)
-        {
-            sampleName = sampleNameAndMore;
-        } else
-        {
-            sampleName = sampleNameAndMore.substring(0, indexOfDelimiter);
-        }
-        SampleOrError sampleOrError = samplesOrErrors.get(sampleName);
-        if (sampleOrError == null)
-        {
-            // first we look for a sample in space MS_DATA
-            SampleIdentifier sampleIdentifier =
-                    SampleIdentifierFactory.parse(sampleName, "/" + CommonConstants.MS_DATA_SPACE);
-            String sampleCode = sampleIdentifier.getSampleCode();
-            ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sample =
-                    openbisService.tryGetSampleWithExperiment(sampleIdentifier);
-            sampleOrError = new SampleOrError();
-            if (sample != null)
-            {
-                sampleOrError.sample = getOrCreateSample(sample.getPermId());
-            } else if (restrictedSampleResolving == false)
-            {
-                // second we look for a sample in same space as search experiment with
-                // a property specified by 'sampleName'
-                String spaceCode = experimentIdentifier.getSpaceCode();
-                List<ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample> list =
-                        openbisService.listSamplesByCriteria(new ListSamplesByPropertyCriteria(
-                                MZXML_FILENAME, sampleName, spaceCode, null));
-                if (list == null || list.size() == 0)
-                {
-                    sampleOrError.error = "an unidentified sample: " + sampleName;
-                } else if (list.size() > 1)
-                {
-                    sampleOrError.error =
-                            "a not uniquely specified sample (" + list.size()
-                                    + " samples are found): " + sampleName;
-                } else
-                {
-                    sample = list.get(0);
-                    sampleOrError.sample = getOrCreateSample(sample.getPermId());
-                }
-            } else
-            {
-                sampleOrError.error = "Couldn't resolve sample: " + sampleIdentifier;
-            }
-            if (sample != null)
-            {
-                handleSample(sampleCode, sample);
-            }
-            samplesOrErrors.put(sampleName, sampleOrError);
-        }
-        return sampleOrError;
-    }
-
-    private Sample getOrCreateSample(String samplePermID)
-    {
-        Sample sample = dao.tryToGetSampleByPermID(samplePermID);
-        if (sample == null)
-        {
-            sample = new Sample();
-            sample.setPermID(samplePermID);
-            sample.setId(dao.createSample(experiment.getId(), samplePermID));
-        }
-        return sample;
-    }
-
-    protected abstract void handleSample(String parameterName,
-            ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sample);
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbundanceHandler.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbundanceHandler.java
deleted file mode 100644
index 38b3223a0ae9b31727762709f7ea5665ff6a230e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbundanceHandler.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Experiment;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Parameter;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
-
-/**
- * Handler of {@link Parameter} objects of type 'abundance'.
- * 
- * @author Franz-Josef Elmer
- */
-class AbundanceHandler extends AbstractSampleHandler
-{
-    private final SampleType sampleType;
-
-    AbundanceHandler(IEncapsulatedOpenBISService openbisService, IProtDAO dao,
-            ExperimentIdentifier experimentIdentifier, Experiment experiment, String delimiter,
-            boolean restrictedSampleResolving)
-    {
-        super(openbisService, dao, experimentIdentifier, experiment, delimiter,
-                restrictedSampleResolving);
-        sampleType = new SampleType();
-        sampleType.setCode(Constants.SEARCH_SAMPLE_TYPE);
-    }
-
-    void addAbundancesToDatabase(Parameter parameter, long proteinID, String proteinName)
-    {
-        Sample sample = getOrCreateSample(parameter.getName(), proteinName);
-        try
-        {
-            double abundance = Double.parseDouble(parameter.getValue());
-            dao.createAbundance(proteinID, sample.getId(), abundance);
-        } catch (NumberFormatException ex)
-        {
-            throw new UserFailureException("Abundance of sample '" + parameter.getName()
-                    + "' of protein '" + proteinName + "' is not a number: " + parameter.getValue());
-        }
-    }
-
-    private Sample getOrCreateSample(String parameterName, String proteinName)
-    {
-        SampleOrError sampleOrError = getOrCreateSampleOrError(parameterName);
-        if (sampleOrError.error != null)
-        {
-            throw new UserFailureException("Protein '" + proteinName
-                    + "' has an abundance value for " + sampleOrError.error);
-        }
-        return sampleOrError.sample;
-    }
-
-    @Override
-    @SuppressWarnings("deprecation")
-    protected void handleSample(String parameterName,
-            ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sample)
-    {
-        NewSample searchSample = new NewSample();
-        searchSample.setSampleType(sampleType);
-        SpaceIdentifier spaceIdentifier =
-                new SpaceIdentifier(experimentIdentifier.getSpaceCode());
-        SampleIdentifier identifier =
-                new SampleIdentifier(spaceIdentifier, parameterName + "_"
-                        + experimentIdentifier.getExperimentCode());
-        searchSample.setIdentifier(identifier.toString());
-        searchSample.setExperimentIdentifier(experimentIdentifier.toString());
-        searchSample.setParentIdentifier(sample.getIdentifier());
-        openbisService.registerSample(searchSample, null);
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/Constants.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/Constants.java
deleted file mode 100644
index b41a7e317822a257fe925c9b7b9e41427c76cf69..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/Constants.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class Constants
-{
-    public static final String NAMESPACE = "http://regis-web.systemsbiology.net/protXML";
-
-    public static final String SEARCH_SAMPLE_TYPE = "SEARCH";
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForMSInjection.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForMSInjection.java
deleted file mode 100644
index a593abbdd80e360c46549809f4fe1f4e31270711..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForMSInjection.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.log4j.Logger;
-
-import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.logging.LogCategory;
-import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.common.properties.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
-import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SampleUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-
-/**
- * Data set info extractor for MS injection data sets. Information is extracted from a properties file (ms-injection.properties) which is expected t
- * be a part of the data set. As a side effect a corresponding sample of type MS_INJECTION is created with the properties of this file.
- * 
- * @author Franz-Josef Elmer
- */
-public class DataSetInfoExtractorForMSInjection extends AbstractDataSetInfoExtractorWithService
-{
-    private final static Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
-            DataSetInfoExtractorForMSInjection.class);
-
-    static final String MS_INJECTION_PROPERTIES_FILE = "ms-injection.properties";
-
-    static final String DATA_SET_PROPERTIES_FILE = "data-set.properties";
-
-    static final String PROJECT_CODE_KEY = "PROJECT_CODE";
-
-    static final String EXPERIMENT_CODE_KEY = "EXPERIMENT_CODE";
-
-    static final String SAMPLE_CODE_KEY = "SAMPLE_CODE";
-
-    static final String BIOLOGICAL_SAMPLE_IDENTIFIER_KEY = "BIOLOGICAL_SAMPLE_IDENTIFIER";
-
-    static final String USER_KEY = "USER";
-
-    static final String DATA_SET_TYPE_KEY = "DATA_SET_TYPE";
-
-    static final String FILE_TYPE_KEY = "FILE_TYPE";
-
-    static final String PARENT_TYPE_KEY = "PARENT_TYPE";
-
-    static final String EXPERIMENT_TYPE_CODE = "MS_INJECT";
-
-    public DataSetInfoExtractorForMSInjection(Properties properties)
-    {
-        this(ServiceProvider.getOpenBISService());
-    }
-
-    DataSetInfoExtractorForMSInjection(IEncapsulatedOpenBISService service)
-    {
-        super(service);
-    }
-
-    @Override
-    public DataSetInformation getDataSetInformation(File incomingDataSetPath,
-            IEncapsulatedOpenBISService openbisService) throws UserFailureException,
-            EnvironmentFailureException
-    {
-        Properties sampleProperties =
-                Util.loadPropertiesFile(incomingDataSetPath, MS_INJECTION_PROPERTIES_FILE);
-        DataSetInformation info = new DataSetInformation();
-        info.setSpaceCode(CommonConstants.MS_DATA_SPACE);
-        info.setSampleCode(PropertyUtils.getMandatoryProperty(sampleProperties, SAMPLE_CODE_KEY));
-        SampleIdentifier sampleIdentifier = info.getSampleIdentifier();
-        ExperimentIdentifier experimentIdentifier = getExperimentIdentifier(sampleProperties);
-        getOrCreateExperiment(experimentIdentifier);
-        info.setExperimentIdentifier(experimentIdentifier);
-        long sampleID =
-                registerOrUpdateSample(sampleIdentifier, experimentIdentifier, sampleProperties);
-
-        Properties dataSetProperties =
-                Util.loadPropertiesFile(incomingDataSetPath, DATA_SET_PROPERTIES_FILE);
-        String dataSetTypeCode =
-                PropertyUtils.getMandatoryProperty(dataSetProperties, DATA_SET_TYPE_KEY);
-        String parentTypeOrNull = dataSetProperties.getProperty(PARENT_TYPE_KEY);
-        dataSetProperties.remove(DATA_SET_TYPE_KEY);
-        dataSetProperties.remove(FILE_TYPE_KEY);
-        dataSetProperties.remove(PARENT_TYPE_KEY);
-        setDataSetPropertiesFor(info, dataSetProperties, dataSetTypeCode);
-        if (parentTypeOrNull != null)
-        {
-            List<AbstractExternalData> dataSets = service.listDataSetsBySampleID(sampleID, false);
-            AbstractExternalData youngestDataSet = null;
-            for (AbstractExternalData dataSet : dataSets)
-            {
-                if (dataSet.getDataSetType().getCode().equals(parentTypeOrNull))
-                {
-                    if (youngestDataSet == null || timeStamp(youngestDataSet) < timeStamp(dataSet))
-                    {
-                        youngestDataSet = dataSet;
-                    }
-                }
-            }
-            if (youngestDataSet != null)
-            {
-                info.setParentDataSetCodes(Arrays.asList(youngestDataSet.getCode()));
-            }
-        }
-        return info;
-    }
-
-    private long registerOrUpdateSample(SampleIdentifier sampleIdentifier,
-            ExperimentIdentifier experimentIdentifier, Properties properties)
-    {
-        SampleType sampleType = service.getSampleType(CommonConstants.MS_INJECTION_SAMPLE_TYPE_CODE);
-        Sample sample = service.tryGetSampleWithExperiment(sampleIdentifier);
-        String biologicalSampleIdentifier = tryToGetBiologicalSampleIdentifier(properties);
-        if (sample == null)
-        {
-            NewSample newSample = new NewSample();
-            newSample.setSampleType(sampleType);
-            newSample.setExperimentIdentifier(experimentIdentifier.toString());
-            newSample.setIdentifier(sampleIdentifier.toString());
-            if (biologicalSampleIdentifier != null)
-            {
-                newSample.setParents(biologicalSampleIdentifier);
-            }
-            IEntityProperty[] sampleProperties = Util.getAndCheckProperties(properties, sampleType);
-            newSample.setProperties(sampleProperties);
-            return service.registerSample(newSample, properties.getProperty(USER_KEY));
-        } else
-        {
-            TechId sampleID = new TechId(sample.getId());
-            List<IEntityProperty> propertiesList =
-                    Util.getProperties(properties, sampleType, new ArrayList<String>());
-            Set<NewAttachment> emptySet = Collections.<NewAttachment> emptySet();
-            int version = sample.getVersion();
-            service.updateSample(new SampleUpdatesDTO(sampleID, propertiesList,
-                    experimentIdentifier, null, emptySet, version, sampleIdentifier, null, 
-                    biologicalSampleIdentifier == null ? null : new String[]
-                    { biologicalSampleIdentifier }));
-            return sample.getId();
-        }
-    }
-
-    private String tryToGetBiologicalSampleIdentifier(Properties properties)
-    {
-        String biologicalSampleIdentifier =
-                properties.getProperty(BIOLOGICAL_SAMPLE_IDENTIFIER_KEY);
-        if (biologicalSampleIdentifier != null)
-        {
-            Sample bioSample =
-                    service.tryGetSampleWithExperiment(SampleIdentifierFactory
-                            .parse(biologicalSampleIdentifier));
-            if (bioSample == null)
-            {
-                // ignore biological sample if it does not exist.
-                biologicalSampleIdentifier = null;
-                operationLog.warn("Property " + BIOLOGICAL_SAMPLE_IDENTIFIER_KEY
-                        + " will be ignored because the specified biological sample "
-                        + biologicalSampleIdentifier + " does not exist.");
-            }
-        }
-        return biologicalSampleIdentifier;
-    }
-
-    private long timeStamp(AbstractExternalData dataSet)
-    {
-        return dataSet.getRegistrationDate().getTime();
-    }
-
-    private void setDataSetPropertiesFor(DataSetInformation info, Properties dataSetProperties,
-            String dataSetTypeCode)
-    {
-        DataSetType dataSetType = service.getDataSetType(dataSetTypeCode).getDataSetType();
-        IEntityProperty[] props = Util.getAndCheckProperties(dataSetProperties, dataSetType);
-        List<NewProperty> properties = new ArrayList<NewProperty>();
-        for (IEntityProperty p : props)
-        {
-            properties.add(new NewProperty(p.getPropertyType().getCode(), p.tryGetAsString()));
-        }
-        info.setDataSetProperties(properties);
-    }
-
-    private long getOrCreateExperiment(ExperimentIdentifier identifier)
-    {
-        Experiment experiment = service.tryGetExperiment(identifier);
-        if (experiment == null)
-        {
-            return service.registerExperiment(new NewExperiment(identifier.toString(),
-                    EXPERIMENT_TYPE_CODE));
-        }
-        return experiment.getId();
-    }
-
-    private ExperimentIdentifier getExperimentIdentifier(Properties msInjectionProperties)
-    {
-        String projectCode =
-                PropertyUtils.getMandatoryProperty(msInjectionProperties, PROJECT_CODE_KEY);
-        String experimentCode =
-                PropertyUtils.getMandatoryProperty(msInjectionProperties, EXPERIMENT_CODE_KEY);
-        return new ExperimentIdentifier(CommonConstants.MS_DATA_SPACE, projectCode, experimentCode);
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForProteinResults.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForProteinResults.java
deleted file mode 100644
index 4e0c8e6a8fcc3001f6a6e9037f8e732fb2feaf40..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForProteinResults.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
-
-import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.common.io.PropertyIOUtils;
-import ch.systemsx.cisd.common.logging.LogCategory;
-import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.common.properties.PropertyUtils;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ParentDataSetCodes;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class DataSetInfoExtractorForProteinResults extends AbstractDataSetInfoExtractorWithService
-{
-    private static final Logger operationLog =
-            LogFactory.getLogger(LogCategory.OPERATION, DataSetInfoExtractorForProteinResults.class);
-
-    static final String NOT_PROCESSED_PROPERTY = "NOT_PROCESSED";
-
-    @Private
-    static final String PROT_XML_SIZE_THRESHOLD = "prot-xml-size-threshold-in-MB";
-
-    private static final int DEFAULT_PROT_XML_SIZE_THRESHOLD = 256;
-
-    @Private
-    static final String EXPERIMENT_TYPE_CODE_KEY = "experiment-type-code";
-
-    @Private
-    static final String EXPERIMENT_CODE_KEY = "experiment-code";
-
-    @Private
-    static final String EXPERIMENT_PROPERTIES_FILE_NAME_KEY = "experiment-properties-file-name";
-
-    @Private
-    static final String DEFAULT_EXPERIMENT_TYPE_CODE = "MS_SEARCH";
-
-    @Private
-    static final String SEPARATOR_KEY = "separator";
-
-    @Private
-    static final String DEFAULT_SEPARATOR = "&";
-
-    @Private
-    static final String DEFAULT_EXPERIMENT_PROPERTIES_FILE_NAME = "search.properties";
-
-    static final String PARENT_DATA_SET_CODES = "parent-data-set-codes";
-
-    static final String EXPERIMENT_IDENTIFIER_KEY = "base-experiment";
-
-    private final String separator;
-
-    private final String experimentPropertiesFileName;
-
-    private final String experimentTypeCode;
-
-    private final long protXmlSizeThreshold;
-
-    public DataSetInfoExtractorForProteinResults(Properties properties)
-    {
-        this(properties, ServiceProvider.getOpenBISService());
-    }
-
-    DataSetInfoExtractorForProteinResults(Properties properties, IEncapsulatedOpenBISService service)
-    {
-        super(service);
-        separator = properties.getProperty(SEPARATOR_KEY, DEFAULT_SEPARATOR);
-        experimentPropertiesFileName =
-                properties.getProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY,
-                        DEFAULT_EXPERIMENT_PROPERTIES_FILE_NAME);
-        experimentTypeCode =
-                properties.getProperty(EXPERIMENT_TYPE_CODE_KEY, DEFAULT_EXPERIMENT_TYPE_CODE);
-        protXmlSizeThreshold = PropertyUtils.getInt(properties, PROT_XML_SIZE_THRESHOLD,
-                DEFAULT_PROT_XML_SIZE_THRESHOLD) * FileUtils.ONE_MB;
-    }
-
-    @Override
-    public DataSetInformation getDataSetInformation(File incomingDataSetPath,
-            IEncapsulatedOpenBISService openbisService) throws UserFailureException,
-            EnvironmentFailureException
-    {
-        String name = incomingDataSetPath.getName();
-        String[] items = StringUtils.splitByWholeSeparator(name, separator);
-        if (items.length < 2)
-        {
-            throw new UserFailureException(
-                    "The name of the data set should have at least two parts separated by '"
-                            + separator + "': " + name);
-        }
-        ProjectIdentifier projectIdentifier = new ProjectIdentifier(items[0], items[1]);
-        Properties properties =
-                loadSearchProperties(new File(incomingDataSetPath, experimentPropertiesFileName));
-        String experimentCode = properties.getProperty(EXPERIMENT_CODE_KEY);
-        if (experimentCode == null)
-        {
-            experimentCode = service.generateCodes("E", EntityKind.EXPERIMENT, 1).get(0);
-        }
-        ExperimentIdentifier experimentIdentifier =
-                new ExperimentIdentifier(projectIdentifier, experimentCode);
-        NewExperiment experiment =
-                new NewExperiment(experimentIdentifier.toString(), experimentTypeCode);
-        ExperimentType experimentType = service.getExperimentType(experimentTypeCode);
-        File protXMLFile = Util.tryGetProtXMLFile(incomingDataSetPath);
-        if (protXMLFile == null)
-        {
-            throw new UserFailureException("No *prot.xml file found in data set '" + incomingDataSetPath + "'.");
-        }
-        long fileSize = protXMLFile.length();
-        if (fileSize > protXmlSizeThreshold)
-        {
-            String reason = "Size of prot.xml file " + protXMLFile.getName() + " is with "
-                    + FileUtilities.byteCountToDisplaySize(fileSize) + " too large. Maximum size is "
-                    + FileUtilities.byteCountToDisplaySize(protXmlSizeThreshold);
-            operationLog.warn(reason);
-            properties.setProperty(NOT_PROCESSED_PROPERTY, reason);
-        }
-
-        experiment.setProperties(Util.getAndCheckProperties(properties, experimentType));
-        DataSetInformation info = new DataSetInformation();
-        info.setExperimentIdentifier(experimentIdentifier);
-        String parentDataSetCodesOrNull = getProperty(properties, PARENT_DATA_SET_CODES);
-        String baseExperimentIdentifier = getProperty(properties, EXPERIMENT_IDENTIFIER_KEY);
-        ParentDataSetCodes parentDataSetCodes =
-                getParentDataSetCodes(parentDataSetCodesOrNull, baseExperimentIdentifier, service);
-        if (parentDataSetCodes.getErrorMessage() == null)
-        {
-            info.setParentDataSetCodes(parentDataSetCodes.getDataSetCodes());
-        } else
-        {
-            throw new UserFailureException(parentDataSetCodes.getErrorMessage());
-        }
-        service.registerExperiment(experiment);
-        return info;
-    }
-
-    /**
-     * Returns data set codes either from the first argument or if <code>null</code> from the data sets of the specified experiment.
-     */
-    static ParentDataSetCodes getParentDataSetCodes(String parentDataSetCodesOrNull,
-            String baseExperimentIdentifier, IEncapsulatedOpenBISService service)
-    {
-        List<AbstractExternalData> parentDataSets = new ArrayList<AbstractExternalData>();
-        StringBuilder builder = new StringBuilder();
-        if (parentDataSetCodesOrNull != null)
-        {
-            for (String code : StringUtils.split(parentDataSetCodesOrNull, ", "))
-            {
-                AbstractExternalData dataSet = service.tryGetDataSet(code);
-                if (dataSet != null)
-                {
-                    parentDataSets.add(dataSet);
-                } else
-                {
-                    builder.append(builder.length() == 0 ? "Unknown data sets: " : ", ");
-                    builder.append(code);
-                }
-            }
-        } else if (baseExperimentIdentifier != null)
-        {
-            ExperimentIdentifier identifier =
-                    new ExperimentIdentifierFactory(baseExperimentIdentifier).createIdentifier();
-            Experiment baseExperiment = service.tryGetExperiment(identifier);
-            if (baseExperiment != null)
-            {
-                parentDataSets.addAll(service.listDataSetsByExperimentID(baseExperiment.getId()));
-            } else
-            {
-                builder.append("Unkown experiment ").append(baseExperimentIdentifier);
-            }
-        }
-        List<String> parentDataSetCodes = new ArrayList<String>();
-        for (AbstractExternalData dataSet : parentDataSets)
-        {
-            parentDataSetCodes.add(dataSet.getCode());
-        }
-        String errorMessage = builder.length() > 0 ? builder.toString() : null;
-        return new ParentDataSetCodes(parentDataSetCodes, errorMessage);
-    }
-
-    private String getProperty(Properties properties, String key)
-    {
-        String property = properties.getProperty(key);
-        if (property == null)
-        {
-            property = properties.getProperty(key.toUpperCase());
-        }
-        return property;
-    }
-
-    private Properties loadSearchProperties(File propertiesFile)
-    {
-        Properties properties;
-        if (propertiesFile.exists() == false)
-        {
-            properties = new Properties();
-        } else
-        {
-            properties = PropertyIOUtils.loadProperties(propertiesFile);
-        }
-        return properties;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DatabaseVersionHolder.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DatabaseVersionHolder.java
deleted file mode 100644
index b4499699df4ac8eccd7fd681130f9bb4ef720dad..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DatabaseVersionHolder.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2012 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import ch.systemsx.cisd.openbis.dss.generic.shared.IDatabaseVersionHolder;
-
-/**
- * Holds the version of the proteomics database.
- *
- * @author Franz-Josef Elmer
- */
-public class DatabaseVersionHolder implements IDatabaseVersionHolder
-{
-    @Override
-    public String getDatabaseVersion()
-    {
-        return "005"; // changed in S124
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/IProtDAO.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/IProtDAO.java
deleted file mode 100644
index 6b5a3982f5b5f3379a46480aa0df8e36f9e8a8dc..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/IProtDAO.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.util.List;
-
-import net.lemnik.eodsql.BaseQuery;
-import net.lemnik.eodsql.Select;
-import net.lemnik.eodsql.Update;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Database;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Experiment;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinReference;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Sample;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Sequence;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IProtDAO extends BaseQuery
-{
-    @Select("select * from experiments where perm_id = ?{1}")
-    public Experiment tryToGetExperimentByPermID(String permID);
-
-    @Select("insert into experiments (perm_id) values (?{1}) returning id")
-    public long createExperiment(String experimentPermID);
-
-    @Select("select * from samples where perm_id = ?{1}")
-    public Sample tryToGetSampleByPermID(String permID);
-
-    @Select("insert into samples (expe_id, perm_id) values (?{1}, ?{2}) returning id")
-    public long createSample(long experimentID, String samplePermID);
-
-    @Select("select * from databases where name_and_version = ?{1}")
-    public Database tryToGetDatabaseByName(String name);
-
-    @Select("insert into databases (name_and_version) values (?{1}) returning id")
-    public long createDatabase(String databaseName);
-
-    @Select("select * from data_sets where perm_id = ?{1}")
-    public ch.systemsx.cisd.openbis.etlserver.proteomics.dto.DataSet tryToGetDataSetByPermID(
-            String permID);
-
-    @Select("insert into data_sets (expe_id, perm_id, db_id) values (?{1}, ?{2}, ?{3}) returning id")
-    public long createDataSet(long experimentID, String dataSetPermID,
-            long databaseID);
-
-    @Update("insert into probability_fdr_mappings (dase_id, probability, false_discovery_rate) "
-            + "values (?{1}, ?{2}, ?{3})")
-    public void createProbabilityToFDRMapping(long dataSetID, double probability,
-            double falseDiscoveryRate);
-
-    @Select("insert into proteins (dase_id, probability) values (?{1}, ?{2}) returning id")
-    public long createProtein(long dataSetID, double probability);
-
-    @Select("insert into peptides (prot_id, sequence, charge) values (?{1}, ?{2}, ?{3}) returning id")
-    public long createPeptide(long proteinID, String sequence, int charge);
-
-    @Select("insert into modified_peptides (pept_id, nterm_mass, cterm_mass) values (?{1}, ?{2}, ?{3}) returning id")
-    public long createModifiedPeptide(long peptideID, double nTermMass, double cTermMass);
-
-    @Select("insert into modifications (mope_id, pos, mass) values (?{1}, ?{2}, ?{3}) returning id")
-    public long createModification(long modPeptideID, int position, double mass);
-
-    @Select("select * from protein_references where accession_number = ?{1}")
-    public ProteinReference tryToGetProteinReference(String accessionNumber);
-
-    @Select("insert into protein_references (accession_number, description) values (?{1}, ?{2}) returning id")
-    public long createProteinReference(String accessionNumber, String description);
-
-    @Update("update protein_references set description = ?{2} where id = ?{1}")
-    public void updateProteinReferenceDescription(long proteinReferenceID, String description);
-
-    @Select("select * from sequences where prre_id = ?{1} and db_id = ?{2}")
-    public List<Sequence> tryToGetSequencesByReferenceAndDatabase(long referenceID, long databaseID);
-
-    @Select("insert into sequences (db_id, prre_id, amino_acid_sequence, checksum) "
-            + "values (?{1.databaseID}, ?{1.proteinReferenceID}, ?{1.sequence}, ?{1.checksum}) "
-            + "returning id")
-    public long createSequence(Sequence sequence);
-
-    @Update("insert into identified_proteins (prot_id, sequ_id, coverage, is_primary) values (?{1}, ?{2}, ?{3}, ?{4})")
-    public void createIdentifiedProtein(long proteinID, long sequenceID, double coverage, boolean primary);
-
-    @Update("insert into abundances (prot_id, samp_id, value) values (?{1}, ?{2}, ?{3})")
-    public void createAbundance(long proteinID, long sampleID, double value);
-
-    @Update("insert into modification_fractions (modi_id, samp_id, fraction) values (?{1}, ?{2}, ?{3})")
-    public void createModificationFraction(long modID, long sampleID, double fraction);
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ModificationFraction.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ModificationFraction.java
deleted file mode 100644
index ac20660201b65bd1752f8a1937a1861329654c72..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ModificationFraction.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.AminoAcidMass;
-
-/**
- * Data class keeping data extracted from a peptide <parameter> element of type 'modification'.
- * 
- * @author Franz-Josef Elmer
- */
-final class ModificationFraction
-{
-    private final String sample;
-
-    private final double fraction;
-
-    private final AminoAcidMass aminoAcidMass;
-
-    ModificationFraction(String sample, String value)
-    {
-        this.sample = sample;
-        String[] parts = value.split(":");
-        if (parts.length != 3)
-        {
-            throw exception(value, "Three parts separated by ':' expected.");
-        }
-        aminoAcidMass = new AminoAcidMass();
-        try
-        {
-            aminoAcidMass.setPosition(Integer.parseInt(parts[0]));
-        } catch (NumberFormatException ex)
-        {
-            throw exception(value, "Position part isn't an integer number: " + parts[0]);
-        }
-        try
-        {
-            aminoAcidMass.setMass(Double.parseDouble(parts[1]));
-        } catch (NumberFormatException ex)
-        {
-            throw exception(value, "Mass part isn't a floating-point number: " + parts[1]);
-        }
-        try
-        {
-            fraction = Double.parseDouble(parts[2]);
-        } catch (NumberFormatException ex)
-        {
-            throw exception(value, "Fraction part isn't a floating-point number: " + parts[2]);
-        }
-    }
-
-    private IllegalArgumentException exception(String value, String message)
-    {
-        return new IllegalArgumentException("Peptide parameter value [" + value
-                + "] for sample '" + sample + "' is invalid: " + message);
-    }
-
-    public String getSample()
-    {
-        return sample;
-    }
-
-    public AminoAcidMass getAminoAcidMass()
-    {
-        return aminoAcidMass;
-    }
-
-    public double getFraction()
-    {
-        return fraction;
-    }
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ModificationFractionHandler.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ModificationFractionHandler.java
deleted file mode 100644
index 4927baaebda70fd19ab41a4e46d83d0f747a65dd..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ModificationFractionHandler.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.util.List;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Experiment;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-
-/**
- * Handler of modification fractions.
- *
- * @author Franz-Josef Elmer
- */
-class ModificationFractionHandler extends AbstractSampleHandler
-{
-    public ModificationFractionHandler(IEncapsulatedOpenBISService openbisService, IProtDAO dao,
-            ExperimentIdentifier experimentIdentifier, Experiment experiment, String delimiter,
-            boolean restrictedSampleResolving)
-    {
-        super(openbisService, dao, experimentIdentifier, experiment, delimiter,
-                restrictedSampleResolving);
-    }
-
-    @Override
-    protected void handleSample(String parameterName,
-            ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sample)
-    {
-        // Do nothing
-    }
-
-    public void addModificationFractions(String peptideSequence, long modID,
-            List<ModificationFraction> modificationFractions)
-    {
-        for (ModificationFraction modificationFraction : modificationFractions)
-        {
-            Sample sample = getOrCreateSample(modificationFraction.getSample(), peptideSequence);
-            double fraction = modificationFraction.getFraction();
-            dao.createModificationFraction(modID, sample.getId(), fraction);
-        }
-    }
-
-    private Sample getOrCreateSample(String sampleName, String peptideSequence)
-    {
-        SampleOrError sampleOrError = getOrCreateSampleOrError(sampleName);
-        if (sampleOrError.error != null)
-        {
-            throw new UserFailureException("Protein '" + peptideSequence
-                    + "' has modification for " + sampleOrError.error);
-        }
-        return sampleOrError.sample;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLLoader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLLoader.java
deleted file mode 100644
index 91ea63764a7b23494f15e17a52b0b77d201b85cf..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLLoader.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.bind.UnmarshallerHandler;
-
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
-import ch.systemsx.cisd.common.xml.XMLInfraStructure;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinProphetDetails;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummary;
-
-/**
- * Loader of protXML file.
- *
- * @author Franz-Josef Elmer
- */
-class ProtXMLLoader
-{
-    private final Unmarshaller unmarshaller;
-
-    private final XMLInfraStructure xmlInfraStructure;
-
-    ProtXMLLoader(boolean validating)
-    {
-        try
-        {
-            JAXBContext context =
-                    JAXBContext.newInstance(ProteinSummary.class, ProteinProphetDetails.class);
-            unmarshaller = context.createUnmarshaller();
-            xmlInfraStructure = new XMLInfraStructure(validating);
-            xmlInfraStructure.setEntityResolver(new EntityResolver()
-                {
-                    @Override
-                    public InputSource resolveEntity(String publicId, String systemId) throws SAXException,
-                            IOException
-                    {
-                        String schemaVersion = systemId.substring(systemId.lastIndexOf('/'));
-                        String resource = "/" + ProtXMLLoader.class.getPackage().getName().replace('.', '/') + schemaVersion;
-                        InputStream inputStream = ProtXMLLoader.class.getResourceAsStream(resource);
-                        return inputStream == null ? null : new InputSource(inputStream);
-                    }
-                });
-
-        } catch (Exception ex)
-        {
-            throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-        }
-    }
-
-    ProteinSummary readProtXML(File dataSet)
-    {
-        try
-        {
-            UnmarshallerHandler unmarshallerHandler = unmarshaller.getUnmarshallerHandler();
-            xmlInfraStructure.parse(new FileReader(dataSet), unmarshallerHandler);
-            Object object = unmarshallerHandler.getResult();
-            if (object instanceof ProteinSummary == false)
-            {
-                throw new IllegalArgumentException("Wrong type: " + object);
-            }
-            return (ProteinSummary) object;
-        } catch (Exception ex)
-        {
-            throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-        }
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLUploader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLUploader.java
deleted file mode 100644
index ae8432153ce23fc04e0e45e341eb31cbb6093dd5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLUploader.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.io.File;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.List;
-import java.util.Properties;
-
-import javax.sql.DataSource;
-
-import org.apache.log4j.Logger;
-
-import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
-import ch.systemsx.cisd.common.logging.LogCategory;
-import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.common.properties.PropertyUtils;
-import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext;
-import ch.systemsx.cisd.etlserver.IDataSetUploader;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummary;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProtXMLUploader implements IDataSetUploader
-{
-    private static final String VALIDATING_XML = "validating-xml";
-
-    private static final String ASSUMING_EXTENDED_PROT_XML = "assuming-extended-prot-xml";
-
-    private static final String MS_INJECTION_SAMPLE_DELIMITER = "delimiter_for_sample_resolving";
-
-    private static final String RESTRICTED_SAMPLE_RESOLVING = "restricted_sample_resolving";
-
-    private static final String DATABASE_ENGINE = "database.engine";
-
-    private static final String DATABASE_URL_HOST_PART = "database.url-host-part";
-
-    private static final String DATABASE_BASIC_NAME = "database.basic-name";
-
-    private static final String DATABASE_KIND = "database.kind";
-
-    private static final String DATABASE_OWNER = "database.owner";
-
-    private static final String DATABASE_PASSWORD = "database.password";
-
-    private static final Logger operationLog =
-            LogFactory.getLogger(LogCategory.OPERATION, ProtXMLUploader.class);
-
-    private static DataSource createDataSource(Properties properties)
-    {
-        DatabaseConfigurationContext context = new DatabaseConfigurationContext();
-        context.setDatabaseEngineCode(properties.getProperty(DATABASE_ENGINE, "postgresql"));
-        context.setUrlHostPart(properties.getProperty(DATABASE_URL_HOST_PART, ""));
-        context.setBasicDatabaseName(properties.getProperty(DATABASE_BASIC_NAME, "proteomics"));
-        context.setDatabaseKind(PropertyUtils.getMandatoryProperty(properties, DATABASE_KIND));
-        context.setOwner(properties.getProperty(DATABASE_OWNER, ""));
-        context.setPassword(properties.getProperty(DATABASE_PASSWORD, ""));
-        return context.getDataSource();
-    }
-
-    private final ProtXMLLoader loader;
-
-    private final IEncapsulatedOpenBISService openbisService;
-
-    private final DataSource dataSource;
-
-    private final boolean assumingExtendedProtXML;
-
-    private final String msInjectionSampleDelimiter;
-
-    private final boolean restrictedSampleResolving;
-
-    private ResultDataSetUploader currentResultDataSetUploader;
-
-    public ProtXMLUploader(Properties properties, IEncapsulatedOpenBISService openbisService)
-    {
-        dataSource = createDataSource(properties);
-        this.openbisService = openbisService;
-        assumingExtendedProtXML = PropertyUtils.getBoolean(properties, ASSUMING_EXTENDED_PROT_XML, false);
-        msInjectionSampleDelimiter = properties.getProperty(MS_INJECTION_SAMPLE_DELIMITER, "~");
-        restrictedSampleResolving = PropertyUtils.getBoolean(properties, RESTRICTED_SAMPLE_RESOLVING, true);
-        loader = new ProtXMLLoader(PropertyUtils.getBoolean(properties, VALIDATING_XML, false));
-    }
-
-    @Override
-    public void upload(File dataSet, DataSetInformation dataSetInformation)
-    {
-        Experiment experiment = dataSetInformation.tryToGetExperiment();
-        if (experiment != null)
-        {
-            List<IEntityProperty> properties = experiment.getProperties();
-            for (IEntityProperty property : properties)
-            {
-                if (property.getPropertyType().getCode().equals(DataSetInfoExtractorForProteinResults.NOT_PROCESSED_PROPERTY))
-                {
-                    return;
-                }
-            }
-        }
-        long time = System.currentTimeMillis();
-        File protXMLFile = Util.tryGetProtXMLFile(dataSet);
-        ProteinSummary summary = loader.readProtXML(protXMLFile);
-        if (operationLog.isInfoEnabled())
-        {
-            operationLog.info(summary.getProteinGroups().size()
-                    + " protein groups are successfully read from '" + protXMLFile + "' in "
-                    + (System.currentTimeMillis() - time) + " msec");
-        }
-        time = System.currentTimeMillis();
-        if (currentResultDataSetUploader != null)
-        {
-            throw new IllegalStateException(
-                    "The previous transaction has been neither commited nor rollbacked.");
-        }
-        currentResultDataSetUploader = createUploader();
-        currentResultDataSetUploader.upload(dataSetInformation, summary);
-        if (operationLog.isInfoEnabled())
-        {
-            operationLog.info("Feeding result database took " + (System.currentTimeMillis() - time)
-                    + " msec.");
-        }
-    }
-
-    @Override
-    public void commit()
-    {
-        try
-        {
-            if (currentResultDataSetUploader != null)
-            {
-                currentResultDataSetUploader.commit();
-            }
-        } finally
-        {
-            currentResultDataSetUploader = null;
-        }
-    }
-
-    @Override
-    public void rollback()
-    {
-        try
-        {
-            if (currentResultDataSetUploader != null)
-            {
-                currentResultDataSetUploader.rollback();
-            }
-        } finally
-        {
-            currentResultDataSetUploader = null;
-        }
-    }
-
-    protected ResultDataSetUploader createUploader()
-    {
-        Connection connection;
-        try
-        {
-            connection = dataSource.getConnection();
-            connection.setAutoCommit(false);
-        } catch (SQLException ex)
-        {
-            throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-        }
-        return new ResultDataSetUploader(connection, openbisService, assumingExtendedProtXML,
-                msInjectionSampleDelimiter, restrictedSampleResolving);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinDescription.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinDescription.java
deleted file mode 100644
index 3b7db8761f1958f21a11293dbc70c2f1a85f8285..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinDescription.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinAnnotation;
-
-final class ProteinDescription
-{
-    static final String DESCRIPTION_KEY = "DE";
-
-    static final String SEQUENCE_KEY = "SEQ";
-
-    static String createKeyValuePair(String key, String value)
-    {
-        return "\\" + key + "=" + value;
-    }
-
-    private String accessionNumber;
-
-    private String description;
-
-    private String sequence;
-
-    public ProteinDescription(ProteinAnnotation annotation, long proteinID,
-            boolean assumingExtendedProtXML)
-    {
-        String proteinDescription = annotation.getDescription();
-        String[] items = proteinDescription.split("\\\\");
-        accessionNumber = tryToGetAccessionNumber(items);
-        description = tryToGetValue(items, DESCRIPTION_KEY);
-        sequence = tryToGetValue(items, SEQUENCE_KEY);
-        if (sequence == null)
-        {
-            if (assumingExtendedProtXML)
-            {
-                throw new UserFailureException(
-                        "Can not find a amino-acid sequence in following protein description: "
-                                + proteinDescription);
-            } else
-            {
-                sequence = "";
-                accessionNumber = getAccessionNumber(annotation, proteinID);
-            }
-        }
-        if (description == null && assumingExtendedProtXML == false)
-        {
-            description = proteinDescription;
-        }
-    }
-
-    private String getAccessionNumber(ProteinAnnotation annotation, long proteinID)
-    {
-        if (annotation.getSwissprotName() != null)
-        {
-            return "sp|" + annotation.getSwissprotName();
-        }
-        if (annotation.getTremblName() != null)
-        {
-            return "tr|" + annotation.getTremblName();
-        }
-        if (annotation.getIpiName() != null)
-        {
-            return "ipi|" + annotation.getIpiName();
-        }
-        if (annotation.getEnsemblName() != null)
-        {
-            return "ens|" + annotation.getEnsemblName();
-        }
-        if (annotation.getRefseqName() != null)
-        {
-            return "rs|" + annotation.getRefseqName();
-        }
-        if (annotation.getLocusLinkName() != null)
-        {
-            return "ll|" + annotation.getLocusLinkName();
-        }
-        if (annotation.getFlybase() != null)
-        {
-            return "fb|" + annotation.getFlybase();
-        }
-        return "unknown|" + proteinID;
-    }
-
-    public final String getAccessionNumber()
-    {
-        return accessionNumber;
-    }
-
-    public final String getDescription()
-    {
-        return description;
-    }
-
-    public final String getSequence()
-    {
-        return sequence;
-    }
-
-    private String tryToGetAccessionNumber(String[] items)
-    {
-        return items == null || items.length == 0 ? null : items[0].trim();
-    }
-
-    private String tryToGetValue(String[] items, String key)
-    {
-        for (String item : items)
-        {
-            int indexOfEqualSign = item.indexOf('=');
-            if (indexOfEqualSign > 0
-                    && item.substring(0, indexOfEqualSign).trim().equalsIgnoreCase(key))
-            {
-                return item.substring(indexOfEqualSign + 1).trim();
-            }
-        }
-        return null;
-    }
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTask.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTask.java
deleted file mode 100644
index eca1c23c62f239b71bfc0b1106d6a01a4bea41ad..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTask.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.log4j.Logger;
-
-import ch.systemsx.cisd.common.logging.LogCategory;
-import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.common.maintenance.IMaintenanceTask;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PhysicalDataSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetBatchUpdateDetails;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewMaterial;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewMetaproject;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewProject;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSpace;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
-import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetBatchUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialUpdateDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.MetaprojectUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SampleUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinResultDataSetParentLinkingTask implements IMaintenanceTask
-{
-    private static final String PARENT_DATA_SET_CODES_KEY =
-            DataSetInfoExtractorForProteinResults.PARENT_DATA_SET_CODES.toUpperCase();
-
-    private static final String BASE_EXPERIMENT_KEY =
-            DataSetInfoExtractorForProteinResults.EXPERIMENT_IDENTIFIER_KEY.toUpperCase();
-
-    private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
-            ProteinResultDataSetParentLinkingTask.class);
-
-    private final IEncapsulatedOpenBISService service;
-
-    public ProteinResultDataSetParentLinkingTask()
-    {
-        this(ServiceProvider.getOpenBISService());
-    }
-
-    ProteinResultDataSetParentLinkingTask(IEncapsulatedOpenBISService service)
-    {
-        this.service = service;
-
-    }
-
-    @Override
-    public void setUp(String pluginName, Properties properties)
-    {
-    }
-
-    @Override
-    public void execute()
-    {
-        List<DataSetBatchUpdatesDTO> dataSetUpdates = new ArrayList<DataSetBatchUpdatesDTO>();
-        List<Project> projects = service.listProjects();
-        for (Project project : projects)
-        {
-            List<Experiment> experiments =
-                    service.listExperiments(new ProjectIdentifier(project.getSpace().getCode(),
-                            project.getCode()));
-            for (Experiment experiment : experiments)
-            {
-                Map<String, IEntityProperty> propertiesMap = getPropertiesMap(experiment);
-                String baseExperimentIdentifier =
-                        tryGetProperty(propertiesMap, BASE_EXPERIMENT_KEY);
-                String parentDataSetCodes =
-                        tryGetProperty(propertiesMap, PARENT_DATA_SET_CODES_KEY);
-                List<String> codes =
-                        DataSetInfoExtractorForProteinResults.getParentDataSetCodes(
-                                parentDataSetCodes, baseExperimentIdentifier, service)
-                                .getDataSetCodes();
-                if (codes.isEmpty())
-                {
-                    continue;
-                }
-                List<AbstractExternalData> dataSets =
-                        service.listDataSetsByExperimentID(experiment.getId());
-                if (dataSets.isEmpty())
-                {
-                    continue;
-                }
-                for (AbstractExternalData ds : dataSets)
-                {
-                    if (ds instanceof PhysicalDataSet == false)
-                    {
-                        continue;
-                    }
-                    PhysicalDataSet dataSet = (PhysicalDataSet) ds;
-                    DataSetBatchUpdatesDTO update = new DataSetBatchUpdatesDTO();
-                    update.setDatasetId(new TechId(dataSet.getId()));
-                    update.setVersion(dataSet.getVersion());
-                    update.setExperimentIdentifierOrNull(ExperimentIdentifierFactory.parse(dataSet
-                            .getExperiment().getIdentifier()));
-                    update.setFileFormatTypeCode(dataSet.getFileFormatType().getCode());
-                    update.setProperties(dataSet.getProperties());
-
-                    // All we want to do is update the parents
-                    update.setDatasetCode(dataSet.getCode());
-                    update.setModifiedParentDatasetCodesOrNull(codes.toArray(new String[0]));
-                    DataSetBatchUpdateDetails details = new DataSetBatchUpdateDetails();
-                    details.setParentsUpdateRequested(true);
-
-                    operationLog.info("Parent data set links of data set " + dataSet.getCode()
-                            + " from experiment " + experiment.getIdentifier()
-                            + " will be updated.");
-                    dataSetUpdates.add(update);
-                }
-            }
-        }
-        service.performEntityOperations(new AtomicEntityOperationDetails(null, null, Collections
-                .<NewSpace> emptyList(), Collections.<NewProject> emptyList(), Collections
-                .<ProjectUpdatesDTO> emptyList(), Collections.<NewExperiment> emptyList(),
-                Collections.<ExperimentUpdatesDTO> emptyList(),
-                Collections.<SampleUpdatesDTO> emptyList(), Collections.<NewSample> emptyList(),
-                Collections.<String, List<NewMaterial>> emptyMap(), Collections
-                        .<MaterialUpdateDTO> emptyList(),
-                Collections.<NewExternalData> emptyList(), dataSetUpdates, Collections
-                        .<NewMetaproject> emptyList(), Collections
-                        .<MetaprojectUpdatesDTO> emptyList(), Collections
-                        .<VocabularyUpdatesDTO> emptyList()));
-        operationLog.info("Parent data set links for " + dataSetUpdates.size()
-                + " data sets have been updated.");
-    }
-
-    private Map<String, IEntityProperty> getPropertiesMap(Experiment experiment)
-    {
-        List<IEntityProperty> properties = experiment.getProperties();
-        Map<String, IEntityProperty> propertiesMap = new HashMap<String, IEntityProperty>();
-        for (IEntityProperty property : properties)
-        {
-            propertiesMap.put(property.getPropertyType().getCode(), property);
-        }
-        return propertiesMap;
-    }
-
-    private String tryGetProperty(Map<String, IEntityProperty> propertiesMap, String key)
-    {
-        IEntityProperty property = propertiesMap.get(key);
-        return property == null ? null : property.tryGetAsString();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ResultDataSetUploader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ResultDataSetUploader.java
deleted file mode 100644
index 06bec5bded049762551ad49ced3dbf6d0b2367ff..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ResultDataSetUploader.java
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.apache.commons.lang3.StringUtils;
-
-import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.AminoAcidMass;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.AnnotatedProtein;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.DataSet;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Database;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Experiment;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Parameter;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Peptide;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.PeptideModification;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Protein;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinAnnotation;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinGroup;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinProphetDetails;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinReference;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummary;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummaryDataFilter;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Sample;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Sequence;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.ProbabilityToFDRCalculator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Occurrence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.OccurrenceUtil;
-import net.lemnik.eodsql.QueryTool;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ResultDataSetUploader extends AbstractHandler
-{
-    private static final double MAX_FALSE_DISCOVERY_RATE = 0.1;
-
-    static final String PARAMETER_TYPE_ABUNDANCE = "abundance";
-
-    static final String PARAMETER_TYPE_MODIFICATION = "modification";
-
-    private final Connection connection;
-
-    private final IEncapsulatedOpenBISService openbisService;
-
-    private final StringBuffer errorMessages;
-
-    private final boolean assumingExtendedProtXML;
-
-    private final String delimiter;
-
-    private final boolean restrictedSampleResolving;
-
-    ResultDataSetUploader(Connection connection, IEncapsulatedOpenBISService openbisService,
-            boolean assumingExtendedProtXML, String delimiter,
-            boolean restrictedSampleResolving)
-    {
-        this(QueryTool.getQuery(connection, IProtDAO.class), connection, openbisService,
-                assumingExtendedProtXML, delimiter, restrictedSampleResolving);
-    }
-
-    ResultDataSetUploader(IProtDAO dao, Connection connection,
-            IEncapsulatedOpenBISService openbisService, boolean assumingExtendedProtXML,
-            String delimiter, boolean restrictedSampleResolving)
-    {
-        super(dao);
-        this.connection = connection;
-        this.openbisService = openbisService;
-        this.assumingExtendedProtXML = assumingExtendedProtXML;
-        this.delimiter = delimiter;
-        this.restrictedSampleResolving = restrictedSampleResolving;
-        this.errorMessages = new StringBuffer();
-    }
-
-    void upload(DataSetInformation dataSetInfo, ProteinSummary summary)
-    {
-        try
-        {
-            Experiment experiment =
-                    getOrCreateExperiment(dataSetInfo.tryToGetExperiment().getPermId());
-            ExperimentIdentifier experimentIdentifier = dataSetInfo.getExperimentIdentifier();
-            String referenceDatabase = summary.getSummaryHeader().getReferenceDatabase();
-            Database database = getOrGreateDatabase(referenceDatabase);
-            DataSet ds =
-                    getOrCreateDataSet(experiment, database, dataSetInfo.getDataSetCode());
-            addToDatabase(ds, experiment, experimentIdentifier, summary);
-        } catch (Throwable throwable)
-        {
-            try
-            {
-                connection.rollback();
-            } catch (SQLException ex)
-            {
-            }
-            throw CheckedExceptionTunnel.wrapIfNecessary(throwable);
-        }
-        if (errorMessages.length() != 0)
-        {
-            rollback();
-            throw UserFailureException.fromTemplate(
-                    "Following errors occurred while uploading protein information"
-                            + " to the dataset database from the dataset '%s': %s" + " ",
-                    dataSetInfo.getDataSetCode(), errorMessages.toString());
-        }
-    }
-
-    /** the uploader should not be used after calling this method */
-    public void rollback()
-    {
-        try
-        {
-            if (connection.isClosed() == false)
-            {
-                connection.rollback();
-                connection.close();
-            }
-        } catch (SQLException ex)
-        {
-            throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-        }
-    }
-
-    /** the uploader should not be used after calling this method */
-    public void commit()
-    {
-        try
-        {
-            connection.commit();
-            connection.close();
-        } catch (SQLException ex)
-        {
-            throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-        }
-    }
-
-    private Database getOrGreateDatabase(String databaseNameAndVersion)
-    {
-        int indexOfLastSlash = databaseNameAndVersion.lastIndexOf('/');
-        String nameOrVersion;
-        if (indexOfLastSlash < 0)
-        {
-            nameOrVersion = databaseNameAndVersion;
-        } else
-        {
-            nameOrVersion = databaseNameAndVersion.substring(indexOfLastSlash + 1);
-        }
-        Database database = dao.tryToGetDatabaseByName(nameOrVersion);
-        if (database == null)
-        {
-            database = new Database();
-            database.setNameAndVersion(nameOrVersion);
-            database.setId(dao.createDatabase(database.getNameAndVersion()));
-        }
-        return database;
-    }
-
-    private DataSet getOrCreateDataSet(Experiment experiment, Database database,
-            String dataSetPermID)
-    {
-        DataSet dataSet = dao.tryToGetDataSetByPermID(dataSetPermID);
-        if (dataSet == null)
-        {
-            dataSet = new DataSet();
-            dataSet.setPermID(dataSetPermID);
-            long experimentID = experiment.getId();
-            dataSet.setExperimentID(experimentID);
-            long databaseID = database.getId();
-            dataSet.setDatabaseID(databaseID);
-            dataSet.setId(dao.createDataSet(experimentID, dataSetPermID, databaseID));
-        }
-        return dataSet;
-    }
-
-    private Experiment getOrCreateExperiment(String experimentPermID)
-    {
-        Experiment experiment = dao.tryToGetExperimentByPermID(experimentPermID);
-        if (experiment == null)
-        {
-            experiment = new Experiment();
-            experiment.setPermID(experimentPermID);
-            experiment.setId(dao.createExperiment(experimentPermID));
-        }
-        return experiment;
-    }
-
-    private void addToDatabase(DataSet dataSet, Experiment experiment,
-            ExperimentIdentifier experimentIdentifier, ProteinSummary summary)
-    {
-        long dataSetID = dataSet.getId();
-        Long databaseID = dataSet.getDatabaseID();
-        AbundanceHandler abundanceHandler =
-                new AbundanceHandler(openbisService, dao, experimentIdentifier, experiment,
-                        delimiter, restrictedSampleResolving);
-        ModificationFractionHandler modificationFractionHandler =
-                new ModificationFractionHandler(openbisService, dao, experimentIdentifier,
-                        experiment, delimiter, restrictedSampleResolving);
-        ProbabilityToFDRCalculator calculator = createProbabilityToFDRMapping(dataSetID, summary);
-        List<ProteinGroup> proteinGroups = summary.getProteinGroups();
-        for (ProteinGroup proteinGroup : proteinGroups)
-        {
-            for (Protein protein : proteinGroup.getProteins())
-            {
-                try
-                {
-                    double fdr = calculator.calculateFDR(protein.getProbability());
-                    if (Double.isNaN(fdr) || fdr <= MAX_FALSE_DISCOVERY_RATE)
-                    {
-                        addProtein(protein, dataSetID, databaseID, abundanceHandler,
-                                modificationFractionHandler);
-                    }
-                } catch (Exception e)
-                {
-                    logException(e, "protein", protein.getName());
-                }
-            }
-        }
-    }
-
-    private void logException(Exception e, String objectType, String instanceDescription)
-    {
-        StringBuffer sb = new StringBuffer();
-        sb.append("Cannot load following '");
-        sb.append(objectType);
-        sb.append("': ");
-        sb.append(instanceDescription);
-        sb.append(" because of the following exception: ");
-        String message = e.getMessage();
-        sb.append(message == null ? e.toString() : message);
-        sb.append("\n");
-        errorMessages.append(sb.toString());
-    }
-
-    private void addProtein(Protein protein, long dataSetID, Long databaseID,
-            AbundanceHandler abundanceHandler,
-            ModificationFractionHandler modificationFractionHandler)
-    {
-        long proteinID = dao.createProtein(dataSetID, protein.getProbability());
-        for (Parameter parameter : protein.getParameters())
-        {
-            if (PARAMETER_TYPE_ABUNDANCE.equals(parameter.getType()))
-            {
-                abundanceHandler.addAbundancesToDatabase(parameter, proteinID, protein.getName());
-            }
-        }
-        List<Peptide> peptides = protein.getPeptides();
-        Set<String> peptideSequences = new HashSet<String>();
-        for (Peptide peptide : peptides)
-        {
-            try
-            {
-                addPeptide(proteinID, peptide, modificationFractionHandler);
-                peptideSequences.add(peptide.getSequence());
-            } catch (Exception e)
-            {
-                logException(e, "peptide", peptide.getSequence().toString());
-            }
-        }
-        createIdentifiedProtein(proteinID, peptideSequences, databaseID, protein.getAnnotation(), true);
-        for (AnnotatedProtein annotatedProtein : protein.getIndistinguishableProteins())
-        {
-            createIdentifiedProtein(proteinID, peptideSequences, databaseID, annotatedProtein.getAnnotation(), false);
-        }
-    }
-
-    private void addPeptide(long proteinID, Peptide peptide,
-            ModificationFractionHandler modificationFractionHandler)
-    {
-        String peptideSequence = peptide.getSequence();
-        int charge = peptide.getCharge();
-        long peptideID = dao.createPeptide(proteinID, peptideSequence, charge);
-        List<PeptideModification> modifications = peptide.getModifications();
-        for (PeptideModification modification : modifications)
-        {
-            try
-            {
-                addPeptideModification(peptideID, modification);
-            } catch (Exception e)
-            {
-                logException(e, "modification", modification.toString());
-            }
-        }
-        List<ModificationFraction> modificationFractions = extractModificationFractions(peptide);
-        if (modificationFractions.isEmpty())
-        {
-            return;
-        }
-        long modPeptideID = dao.createModifiedPeptide(peptideID, 0, 0);
-        Map<AminoAcidMass, List<ModificationFraction>> map =
-                groupByPositionAndMass(modificationFractions);
-        Set<Entry<AminoAcidMass, List<ModificationFraction>>> entrySet = map.entrySet();
-        for (Entry<AminoAcidMass, List<ModificationFraction>> entry : entrySet)
-        {
-            AminoAcidMass positionAndMass = entry.getKey();
-            long modID = createModification(modPeptideID, positionAndMass);
-            List<ModificationFraction> list = entry.getValue();
-            modificationFractionHandler.addModificationFractions(peptideSequence, modID, list);
-        }
-    }
-
-    private Map<AminoAcidMass, List<ModificationFraction>> groupByPositionAndMass(
-            List<ModificationFraction> modificationFractions)
-    {
-        Map<AminoAcidMass, List<ModificationFraction>> result =
-                new HashMap<AminoAcidMass, List<ModificationFraction>>();
-        for (ModificationFraction modificationFraction : modificationFractions)
-        {
-            AminoAcidMass positionAndMass = modificationFraction.getAminoAcidMass();
-            List<ModificationFraction> list = result.get(positionAndMass);
-            if (list == null)
-            {
-                list = new ArrayList<ModificationFraction>();
-                result.put(positionAndMass, list);
-            }
-            list.add(modificationFraction);
-        }
-        return result;
-    }
-
-    private List<ModificationFraction> extractModificationFractions(Peptide peptide)
-    {
-        List<ModificationFraction> result = new ArrayList<ModificationFraction>();
-        for (Parameter parameter : peptide.getParameters())
-        {
-            if (PARAMETER_TYPE_MODIFICATION.equals(parameter.getType()))
-            {
-                result.add(new ModificationFraction(parameter.getName(), parameter.getValue()));
-            }
-        }
-        return result;
-    }
-
-    private void addPeptideModification(long peptideID, PeptideModification modification)
-    {
-        double ntermMass = modification.getNTermMass();
-        double ctermMass = modification.getCTermMass();
-        long modPeptideID = dao.createModifiedPeptide(peptideID, ntermMass, ctermMass);
-        List<AminoAcidMass> aminoAcidMasses = modification.getAminoAcidMasses();
-        for (AminoAcidMass aminoAcidMass : aminoAcidMasses)
-        {
-            createModification(modPeptideID, aminoAcidMass);
-        }
-    }
-
-    private long createModification(long modPeptideID, AminoAcidMass aminoAcidMass)
-    {
-        return dao.createModification(modPeptideID, aminoAcidMass.getPosition(),
-                aminoAcidMass.getMass());
-    }
-
-    private void createIdentifiedProtein(long proteinID, Set<String> peptideSequences,
-            Long databaseID, ProteinAnnotation annotation, boolean primary)
-    {
-        ProteinDescription protDesc =
-                new ProteinDescription(annotation, proteinID, assumingExtendedProtXML);
-        String accessionNumber = protDesc.getAccessionNumber();
-        String description = protDesc.getDescription();
-        ProteinReference proteinReference = dao.tryToGetProteinReference(accessionNumber);
-        if (proteinReference == null)
-        {
-            proteinReference = new ProteinReference();
-            proteinReference.setId(dao.createProteinReference(accessionNumber, description));
-        } else if (StringUtils.equals(description, proteinReference.getDescription()) == false)
-        {
-            dao.updateProteinReferenceDescription(proteinReference.getId(), description);
-        }
-        Sequence sequence =
-                tryFindSequence(proteinReference.getId(), databaseID, protDesc.getSequence());
-        if (sequence == null)
-        {
-            sequence = new Sequence(protDesc.getSequence());
-            sequence.setDatabaseID(databaseID);
-            sequence.setProteinReferenceID(proteinReference.getId());
-            sequence.setId(dao.createSequence(sequence));
-        }
-        double coverage = calculateCoverage(sequence.getSequence(), peptideSequences);
-        dao.createIdentifiedProtein(proteinID, sequence.getId(), coverage, primary);
-    }
-
-    private double calculateCoverage(String aminoAcidSequence, Set<String> peptideSequences)
-    {
-        List<Occurrence> list = OccurrenceUtil.getCoverage(aminoAcidSequence, peptideSequences);
-        int sumPeptides = 0;
-        for (Occurrence occurrence : list)
-        {
-            sumPeptides += occurrence.getWord().length();
-        }
-        return sumPeptides / (double) aminoAcidSequence.length();
-    }
-
-    private Sequence tryFindSequence(long referenceID, Long databaseID, String sequence)
-    {
-        List<Sequence> sequences =
-                dao.tryToGetSequencesByReferenceAndDatabase(referenceID, databaseID);
-        if (sequences == null || sequences.isEmpty())
-        {
-            return null;
-        }
-        for (Sequence foundSequence : sequences)
-        {
-            if (sequence.equals(foundSequence.getSequence()))
-            {
-                return foundSequence;
-            }
-        }
-        return null;
-    }
-
-    private ProbabilityToFDRCalculator createProbabilityToFDRMapping(long dataSetID, ProteinSummary summary)
-    {
-        ProbabilityToFDRCalculator calculator = new ProbabilityToFDRCalculator();
-        Object[] s = summary.getSummaryHeader().getProgramDetails().getSummary();
-        if (s != null)
-        {
-            for (Object object : s)
-            {
-                if (object instanceof ProteinProphetDetails)
-                {
-                    ProteinProphetDetails details = (ProteinProphetDetails) object;
-                    List<ProteinSummaryDataFilter> filters = details.getDataFilters();
-                    for (ProteinSummaryDataFilter proteinSummaryDataFilter : filters)
-                    {
-                        double probability = proteinSummaryDataFilter.getMinProbability();
-                        double fdr = proteinSummaryDataFilter.getFalsePositiveErrorRate();
-                        calculator.add(probability, fdr);
-                        calculator.init();
-                        dao.createProbabilityToFDRMapping(dataSetID, probability, fdr);
-                    }
-                    return calculator;
-                }
-            }
-        }
-        if (assumingExtendedProtXML == false)
-        {
-            return calculator;
-        }
-        throw new UserFailureException("Missing Protein Prophet details.");
-    }
-
-    protected Sample getOrCreateSample(Experiment experiment, String samplePermID)
-    {
-        Sample sample = dao.tryToGetSampleByPermID(samplePermID);
-        if (sample == null)
-        {
-            sample = new Sample();
-            sample.setPermID(samplePermID);
-            sample.setId(dao.createSample(experiment.getId(), samplePermID));
-        }
-        return sample;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/StorageProcessorWithResultDataSetUploader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/StorageProcessorWithResultDataSetUploader.java
deleted file mode 100644
index 876f138a525846824a45a345313fbc1a94cff76d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/StorageProcessorWithResultDataSetUploader.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.io.File;
-import java.util.Properties;
-
-import ch.systemsx.cisd.etlserver.AbstractStrorageProcessorWithUploader;
-import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class StorageProcessorWithResultDataSetUploader extends AbstractStrorageProcessorWithUploader
-{
-
-    public StorageProcessorWithResultDataSetUploader(Properties properties)
-    {
-        super(properties, new ProtXMLUploader(properties, ServiceProvider.getOpenBISService()));
-    }
-
-    @Override
-    protected void logDataSetFileError(File incomingDataSetDirectory, Throwable exception)
-    {
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/TypeExtractorForMSInjection.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/TypeExtractorForMSInjection.java
deleted file mode 100644
index 25cc23e08acdcecd45b7c8b5db3f86615e78e882..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/TypeExtractorForMSInjection.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.DATA_SET_PROPERTIES_FILE;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.DATA_SET_TYPE_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.FILE_TYPE_KEY;
-
-import java.io.File;
-import java.util.Properties;
-
-import ch.systemsx.cisd.common.properties.PropertyUtils;
-import ch.systemsx.cisd.etlserver.ITypeExtractor;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.FileFormatType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LocatorType;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class TypeExtractorForMSInjection implements ITypeExtractor
-{
-    private static final LocatorType LOCATOR_TYPE = new LocatorType(LocatorType.DEFAULT_LOCATOR_TYPE_CODE);
-
-    public TypeExtractorForMSInjection(Properties properties)
-    {
-    }
-
-    @Override
-    public DataSetType getDataSetType(File incomingDataSetPath)
-    {
-        Properties properties = loadProperties(incomingDataSetPath);
-        return new DataSetType(PropertyUtils.getMandatoryProperty(properties, DATA_SET_TYPE_KEY));
-    }
-
-    @Override
-    public FileFormatType getFileFormatType(File incomingDataSetPath)
-    {
-        Properties properties = loadProperties(incomingDataSetPath);
-        return new FileFormatType(PropertyUtils.getMandatoryProperty(properties, FILE_TYPE_KEY));
-    }
-
-    @Override
-    public LocatorType getLocatorType(File incomingDataSetPath)
-    {
-        return LOCATOR_TYPE;
-    }
-
-    @Override
-    public String getProcessorType(File incomingDataSetPath)
-    {
-        return null;
-    }
-
-    @Override
-    public boolean isMeasuredData(File incomingDataSetPath)
-    {
-        return true;
-    }
-
-    private Properties loadProperties(File incomingDataSetPath)
-    {
-        return Util.loadPropertiesFile(incomingDataSetPath, DATA_SET_PROPERTIES_FILE);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/Util.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/Util.java
deleted file mode 100644
index 564c0196f4d43992ecba55087608b128227105c9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/Util.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.io.PropertyIOUtils;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTypePropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-
-/**
- * @author Franz-Josef Elmer
- */
-class Util
-{
-    private Util()
-    {
-    }
-
-    /**
-     * Tries to return the prot.xml file in the specified data set.
-     * 
-     * @return <code>null</code> if non found.
-     */
-    static File tryGetProtXMLFile(File dataSet)
-    {
-        if (dataSet.isDirectory() == false)
-        {
-            return dataSet;
-        }
-        File[] files = dataSet.listFiles();
-        for (File file : files)
-        {
-            if (file.getName().endsWith("prot.xml"))
-            {
-                return file;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns an array of all entity properties defined by the specified entity type for which values are found in the specified {@link Properties}
-     * object.
-     * 
-     * @throws UserFailureException if at least one mandatory property were missed.
-     */
-    static IEntityProperty[] getAndCheckProperties(Properties properties, EntityType entityType)
-    {
-        List<String> missingMandatoryProperties = new ArrayList<String>();
-        List<IEntityProperty> sampleProperties =
-                getProperties(properties, entityType, missingMandatoryProperties);
-        if (missingMandatoryProperties.isEmpty() == false)
-        {
-            throw new UserFailureException("The following mandatory properties are missed: "
-                    + missingMandatoryProperties);
-        }
-        return sampleProperties.toArray(new IEntityProperty[sampleProperties.size()]);
-    }
-
-    /**
-     * Turns specified properties into a list of {@link IEntityProperty} instances in accordance to the property types assigned to the specified
-     * entity type. Keys of missing mandatory properties are added to the specified list.
-     */
-    static List<IEntityProperty> getProperties(Properties properties,
-            EntityType entityType, List<String> missingMandatoryProperties)
-    {
-        List<IEntityProperty> sampleProperties = new ArrayList<IEntityProperty>();
-        List<? extends EntityTypePropertyType<?>> sampleTypePropertyTypes = entityType.getAssignedPropertyTypes();
-        for (EntityTypePropertyType<?> entityTypePropertyType : sampleTypePropertyTypes)
-        {
-            boolean mandatory = entityTypePropertyType.isMandatory();
-            PropertyType propertyType = entityTypePropertyType.getPropertyType();
-            String key = propertyType.getCode();
-            String value = properties.getProperty(key);
-            if (value == null)
-            {
-                if (mandatory)
-                {
-                    missingMandatoryProperties.add(key);
-                }
-            } else
-            {
-                EntityProperty property = new EntityProperty();
-                property.setPropertyType(propertyType);
-                property.setValue(value);
-                sampleProperties.add(property);
-            }
-        }
-        return sampleProperties;
-    }
-
-    static Properties loadPropertiesFile(File incomingDataSetDirectory, String propertiesFileName)
-    {
-        File propertiesFile = new File(incomingDataSetDirectory, propertiesFileName);
-        if (propertiesFile.exists() == false)
-        {
-            throw new UserFailureException("Missing properties file '" + propertiesFileName + "'.");
-        }
-        if (propertiesFile.isFile() == false)
-        {
-            throw new UserFailureException("Properties file '" + propertiesFileName
-                    + "' is a folder.");
-        }
-        return PropertyIOUtils.loadProperties(propertiesFile);
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ASAPRatioPValue.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ASAPRatioPValue.java
deleted file mode 100644
index 6c7181a9a233b2c75525040bb40f08a6bf57068c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ASAPRatioPValue.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Constants;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlRootElement(name = "ASAPRatio_pvalue", namespace = Constants.NAMESPACE)
-@XmlType
-public class ASAPRatioPValue
-{
-    private double adjustedRatioMean;
-
-    private double adjustedRatioStandardDeviation;
-
-    private double adjustedHeavyToLisghtRatioMean;
-
-    private double adjustedHeavyToLisghtRatioStandardDeviation;
-
-    private double pValue;
-
-    private double decimalPValue;
-
-    public ASAPRatioPValue()
-    {
-        System.out.println("ASAPRatioPValue.ASAPRatioPValue()");
-    }
-
-    @XmlAttribute(name = "adj_ratio_mean", required = true)
-    public final double getAdjustedRatioMean()
-    {
-        return adjustedRatioMean;
-    }
-
-    public final void setAdjustedRatioMean(double adjustedRatioMean)
-    {
-        System.out.println("ASAPRatioPValue.setAdjustedRatioMean(" + adjustedRatioMean + ")");
-        this.adjustedRatioMean = adjustedRatioMean;
-    }
-
-    @XmlAttribute(name = "adj_ratio_standard_dev", required = true)
-    public final double getAdjustedRatioStandardDeviation()
-    {
-        return adjustedRatioStandardDeviation;
-    }
-
-    public final void setAdjustedRatioStandardDeviation(double adjustedRatioStandardDeviation)
-    {
-        this.adjustedRatioStandardDeviation = adjustedRatioStandardDeviation;
-    }
-
-    @XmlAttribute(name = "heavy2light_adj_ratio_mean")
-    public final double getAdjustedHeavyToLisghtRatioMean()
-    {
-        return adjustedHeavyToLisghtRatioMean;
-    }
-
-    public final void setAdjustedHeavyToLisghtRatioMean(double adjustedHeavyToLisghtRatioMean)
-    {
-        this.adjustedHeavyToLisghtRatioMean = adjustedHeavyToLisghtRatioMean;
-    }
-
-    @XmlAttribute(name = "heavy2light_adj_ratio_standard_dev")
-    public final double getAdjustedHeavyToLisghtRatioStandardDeviation()
-    {
-        return adjustedHeavyToLisghtRatioStandardDeviation;
-    }
-
-    public final void setAdjustedHeavyToLisghtRatioStandardDeviation(
-            double adjustedHeavyToLisghtRatioStandardDeviation)
-    {
-        this.adjustedHeavyToLisghtRatioStandardDeviation = adjustedHeavyToLisghtRatioStandardDeviation;
-    }
-
-    @XmlAttribute(name = "pvalue")
-    public final double getPValue()
-    {
-        return pValue;
-    }
-
-    public final void setPValue(double value)
-    {
-        pValue = value;
-    }
-
-    @XmlAttribute(name = "decimal_pvalue")
-    public final double getDecimalPValue()
-    {
-        return decimalPValue;
-    }
-
-    public final void setDecimalPValue(double decimalPValue)
-    {
-        this.decimalPValue = decimalPValue;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AbstractDTOWithID.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AbstractDTOWithID.java
deleted file mode 100644
index a1d9fbf02e3842286f9db4d2bfb69e7e55dc6231..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AbstractDTOWithID.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import net.lemnik.eodsql.AutoGeneratedKeys;
-
-/**
- * @author Franz-Josef Elmer
- */
-abstract class AbstractDTOWithID
-{
-    @AutoGeneratedKeys
-    private long id;
-
-    public final long getId()
-    {
-        return id;
-    }
-
-    public final void setId(long id)
-    {
-        this.id = id;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AbstractDTOWithIDAndPermID.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AbstractDTOWithIDAndPermID.java
deleted file mode 100644
index 206520bd52af65db0216c4013128347aabf25fcc..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AbstractDTOWithIDAndPermID.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-abstract class AbstractDTOWithIDAndPermID extends AbstractDTOWithID
-{
-    @ResultColumn("perm_id")
-    private String permID;
-
-    public final String getPermID()
-    {
-        return permID;
-    }
-
-    public final void setPermID(String permID)
-    {
-        this.permID = permID;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AminoAcidMass.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AminoAcidMass.java
deleted file mode 100644
index b2ab23450f4bbb74e4e3d15eeb23e1cf383d35d5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AminoAcidMass.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import javax.xml.bind.annotation.XmlAttribute;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class AminoAcidMass
-{
-    private int position;
-
-    private double mass;
-
-    @XmlAttribute(name = "position", required = true)
-    public final int getPosition()
-    {
-        return position;
-    }
-
-    public final void setPosition(int position)
-    {
-        this.position = position;
-    }
-
-    @XmlAttribute(name = "mass", required = true)
-    public final double getMass()
-    {
-        return mass;
-    }
-
-    public final void setMass(double mass)
-    {
-        this.mass = mass;
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (obj == this)
-        {
-            return true;
-        }
-        if (obj instanceof AminoAcidMass == false)
-        {
-            return false;
-        }
-        AminoAcidMass that = (AminoAcidMass) obj;
-        return this.position == that.position && this.mass == that.mass;
-    }
-
-    @Override
-    public int hashCode()
-    {
-        return (int) (37 * position + mass);
-    }
-
-    @Override
-    public String toString()
-    {
-        return mass + "@" + position;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AnnotatedProtein.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AnnotatedProtein.java
deleted file mode 100644
index 2266b73c96544a02bd273b28b497657952e2ab27..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/AnnotatedProtein.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Constants;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class AnnotatedProtein
-{
-    protected String name;
-
-    protected ProteinAnnotation annotation;
-
-    @XmlAttribute(name = "protein_name", required = true)
-    public final String getName()
-    {
-        return name;
-    }
-
-    public final void setName(String name)
-    {
-        this.name = name;
-    }
-
-    @XmlElement(name = "annotation", namespace = Constants.NAMESPACE)
-    public final ProteinAnnotation getAnnotation()
-    {
-        return annotation;
-    }
-
-    public final void setAnnotation(ProteinAnnotation annotation)
-    {
-        this.annotation = annotation;
-    }
-
-    @Override
-    public String toString()
-    {
-        return annotation == null ? name : name + "[" + annotation.getDescription() + "]";
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/DataSet.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/DataSet.java
deleted file mode 100644
index 778efdb293b7172fe3301f818b7960d762df23f5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/DataSet.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class DataSet extends AbstractDTOWithIDAndPermID
-{
-    @ResultColumn("samp_id")
-    private Long sampleID;
-
-    @ResultColumn("expe_id")
-    private Long experimentID;
-
-    @ResultColumn("db_id")
-    private Long databaseID;
-
-    public final Long getSampleID()
-    {
-        return sampleID;
-    }
-
-    public final void setSampleID(Long sampleID)
-    {
-        this.sampleID = sampleID;
-    }
-
-    public final Long getExperimentID()
-    {
-        return experimentID;
-    }
-
-    public final void setExperimentID(Long experimentID)
-    {
-        this.experimentID = experimentID;
-    }
-
-    public final Long getDatabaseID()
-    {
-        return databaseID;
-    }
-
-    public final void setDatabaseID(Long databaseID)
-    {
-        this.databaseID = databaseID;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Database.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Database.java
deleted file mode 100644
index 1b16ff40284b8f09eda87b91750f29e105ad2c91..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Database.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class Database extends AbstractDTOWithID
-{
-    @ResultColumn("name_and_version")
-    private String nameAndVersion;
-
-    public final String getNameAndVersion()
-    {
-        return nameAndVersion;
-    }
-
-    public final void setNameAndVersion(String nameAndVersion)
-    {
-        this.nameAndVersion = nameAndVersion;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Experiment.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Experiment.java
deleted file mode 100644
index 0959e186f88dd500d9d05616a2a434c524915c63..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Experiment.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class Experiment extends AbstractDTOWithIDAndPermID
-{
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ModificationType.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ModificationType.java
deleted file mode 100644
index b78ea4b891601331962abab542aff3f419a9d822..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ModificationType.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ModificationType extends AbstractDTOWithID
-{
-    private String code;
-
-    @ResultColumn("amino_acid")
-    private String aminoAcid;
-
-    private double mass;
-
-    @ResultColumn("mass_tolerance")
-    private double massTolerance;
-
-    public final String getCode()
-    {
-        return code;
-    }
-
-    public final void setCode(String code)
-    {
-        this.code = code;
-    }
-
-    public final String getAminoAcid()
-    {
-        return aminoAcid;
-    }
-
-    public final void setAminoAcid(String aminoAcid)
-    {
-        this.aminoAcid = aminoAcid;
-    }
-
-    public final double getMass()
-    {
-        return mass;
-    }
-
-    public final void setMass(double mass)
-    {
-        this.mass = mass;
-    }
-
-    public final double getMassTolerance()
-    {
-        return massTolerance;
-    }
-
-    public final void setMassTolerance(double deltaMass)
-    {
-        this.massTolerance = deltaMass;
-    }
-
-    public boolean matches(char aminoAcidSymbol, double m)
-    {
-        if (m < mass - massTolerance)
-        {
-            return false;
-        }
-        if (m > mass + massTolerance)
-        {
-            return false;
-        }
-        return aminoAcid == null || (aminoAcid.length() == 1 && aminoAcid.charAt(0) == aminoAcidSymbol);
-    }
-
-    @Override
-    public String toString()
-    {
-        return code + "=(" + aminoAcid + ":" + mass + "\u00b1" + massTolerance + ")";
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Parameter.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Parameter.java
deleted file mode 100644
index 92187d45081918723a1a25816d72406e223356b4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Parameter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class Parameter
-{
-    private String name;
-
-    private String value;
-
-    private String type;
-
-    @XmlAttribute(name = "name", required = true)
-    public final String getName()
-    {
-        return name;
-    }
-
-    public final void setName(String name)
-    {
-        this.name = name;
-    }
-
-    @XmlAttribute(name = "value", required = true)
-    public final String getValue()
-    {
-        return value;
-    }
-
-    public final void setValue(String value)
-    {
-        this.value = value;
-    }
-
-    @XmlAttribute(name = "type")
-    public final String getType()
-    {
-        return type;
-    }
-
-    public final void setType(String type)
-    {
-        this.type = type;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ParentDataSetCodes.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ParentDataSetCodes.java
deleted file mode 100644
index 5e013d48f5f7ff7650f59030ff2d17efe484b1c3..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ParentDataSetCodes.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import java.util.List;
-
-/**
- * Data transfer object which contains a list of data set codes and an optional error message.
- *
- * @author Franz-Josef Elmer
- */
-public class ParentDataSetCodes
-{
-    private final List<String> dataSetCodes;
-
-    private final String errorMessage;
-
-    public ParentDataSetCodes(List<String> dataSetCodes, String errorMessage)
-    {
-        super();
-        this.dataSetCodes = dataSetCodes;
-        this.errorMessage = errorMessage;
-    }
-
-    public List<String> getDataSetCodes()
-    {
-        return dataSetCodes;
-    }
-
-    public String getErrorMessage()
-    {
-        return errorMessage;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Peptide.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Peptide.java
deleted file mode 100644
index cea00ffdf206e7a670fffa66316666d1dcc27ca9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Peptide.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Constants;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class Peptide
-{
-    private String sequence;
-
-    private int charge;
-
-    private double initialProbability;
-
-    private double weight;
-
-    private List<Parameter> parameters = new ArrayList<Parameter>();
-
-    private List<PeptideModification> modifications = new ArrayList<PeptideModification>();
-
-    @XmlAttribute(name = "peptide_sequence", required = true)
-    public final String getSequence()
-    {
-        return sequence;
-    }
-
-    public final void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-    @XmlAttribute(name = "charge", required = true)
-    public final int getCharge()
-    {
-        return charge;
-    }
-
-    public final void setCharge(int charge)
-    {
-        this.charge = charge;
-    }
-
-    @XmlAttribute(name = "initial_probability", required = true)
-    public final double getInitialProbability()
-    {
-        return initialProbability;
-    }
-
-    public final void setInitialProbability(double initialProbability)
-    {
-        this.initialProbability = initialProbability;
-    }
-
-    @XmlAttribute(name = "weight")
-    public final double getWeight()
-    {
-        return weight;
-    }
-
-    public final void setWeight(double weight)
-    {
-        this.weight = weight;
-    }
-
-    @XmlElement(name = "modification_info", namespace = Constants.NAMESPACE)
-    public final List<PeptideModification> getModifications()
-    {
-        return modifications;
-    }
-
-    public final void setModifications(List<PeptideModification> modifications)
-    {
-        this.modifications = modifications;
-    }
-
-    @XmlElement(name = "parameter", namespace = Constants.NAMESPACE)
-    public final List<Parameter> getParameters()
-    {
-        return parameters;
-    }
-
-    public final void setParameters(List<Parameter> parameters)
-    {
-        this.parameters = parameters;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuilder builder = new StringBuilder();
-        builder.append(sequence);
-        if (charge > 0)
-        {
-            builder.append("(");
-            for (int i = 0; i < charge; i++)
-            {
-                builder.append('+');
-            }
-            builder.append(")");
-        }
-        builder.append("[initialProbability=").append(initialProbability);
-        builder.append(", weight=").append(weight);
-        builder.append("]");
-        return builder.toString();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/PeptideModification.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/PeptideModification.java
deleted file mode 100644
index 6f7f414d3b82a78f579dcb12e94668a1db6454a1..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/PeptideModification.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Constants;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class PeptideModification
-{
-    private String modifiedPeptide;
-
-    private double nTermMass;
-
-    private double cTermMass;
-
-    private List<AminoAcidMass> aminoAcidMasses;
-
-    @XmlAttribute(name = "modified_peptide")
-    public final String getModifiedPeptide()
-    {
-        return modifiedPeptide;
-    }
-
-    public final void setModifiedPeptide(String modifiedPeptide)
-    {
-        this.modifiedPeptide = modifiedPeptide;
-    }
-
-    @XmlAttribute(name = "mod_nterm_mass")
-    public final double getNTermMass()
-    {
-        return nTermMass;
-    }
-
-    public final void setNTermMass(double termMass)
-    {
-        nTermMass = termMass;
-    }
-
-    @XmlAttribute(name = "mod_cterm_mass")
-    public final double getCTermMass()
-    {
-        return cTermMass;
-    }
-
-    public final void setCTermMass(double termMass)
-    {
-        cTermMass = termMass;
-    }
-
-    @XmlElement(name = "mod_aminoacid_mass", namespace = Constants.NAMESPACE)
-    public final List<AminoAcidMass> getAminoAcidMasses()
-    {
-        return aminoAcidMasses;
-    }
-
-    public final void setAminoAcidMasses(List<AminoAcidMass> aminoAcidMasses)
-    {
-        this.aminoAcidMasses = aminoAcidMasses;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuilder builder = new StringBuilder();
-        builder.append("Modification[modifiedPeptide=").append(modifiedPeptide);
-        builder.append(", nTermMass=").append(nTermMass);
-        builder.append(", cTermMass=").append(cTermMass);
-        builder.append("]");
-        if (aminoAcidMasses != null && aminoAcidMasses.isEmpty() == false)
-        {
-            builder.append("(");
-            for (int i = 0; i < aminoAcidMasses.size(); i++)
-            {
-                if (i > 0)
-                {
-                    builder.append(", ");
-                }
-                builder.append(aminoAcidMasses.get(i));
-            }
-            builder.append(")");
-        }
-        return builder.toString();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProgramDetails.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProgramDetails.java
deleted file mode 100644
index 0832a9bd9f5e7060cedb2de74d10fec63629dee4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProgramDetails.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import java.util.Date;
-
-import javax.xml.bind.annotation.XmlAnyElement;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class ProgramDetails
-{
-    private String analysis;
-
-    private Date timestamp;
-
-    private String version;
-
-    private Object[] summary;
-
-    @XmlAttribute(name = "analysis", required = true)
-    public final String getAnalysis()
-    {
-        return analysis;
-    }
-
-    public final void setAnalysis(String analysis)
-    {
-        this.analysis = analysis;
-    }
-
-    // @XmlAttribute(name = "time", required = true)
-    public final Date getTimestamp()
-    {
-        return timestamp;
-    }
-
-    public final void setTimestamp(Date timestamp)
-    {
-        this.timestamp = timestamp;
-    }
-
-    @XmlAttribute(name = "version")
-    public final String getVersion()
-    {
-        return version;
-    }
-
-    public final void setVersion(String version)
-    {
-        this.version = version;
-    }
-
-    @XmlAnyElement(lax = true)
-    public final Object[] getSummary()
-    {
-        return summary;
-    }
-
-    public final void setSummary(Object[] summary)
-    {
-        this.summary = summary;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Protein.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Protein.java
deleted file mode 100644
index 436f04e05866b3d97ccd746667a990220d1ac1ab..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Protein.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Constants;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class Protein extends AnnotatedProtein
-{
-    private double probability;
-
-    private double coverage;
-
-    private int numberOfIndistinguishableProteins;
-
-    private String uniqueStrippedPeptides;
-
-    private String groupSiblingID;
-
-    private int totalNumberOfPeptides;
-
-    private String subsumingProtein;
-
-    private String fractionOfCorrectPeptideIdentifications;
-
-    private List<Parameter> parameters = new ArrayList<Parameter>();
-
-    private List<AnnotatedProtein> indistinguishableProteins = new ArrayList<AnnotatedProtein>();
-
-    private List<Peptide> peptides;
-
-    @XmlAttribute(name = "probability", required = true)
-    public final double getProbability()
-    {
-        return probability;
-    }
-
-    public final void setProbability(double probability)
-    {
-        this.probability = probability;
-    }
-
-    @XmlAttribute(name = "percent_coverage")
-    public final double getCoverage()
-    {
-        return coverage;
-    }
-
-    public final void setCoverage(double coverage)
-    {
-        this.coverage = coverage;
-    }
-
-    @XmlAttribute(name = "n_indistinguishable_proteins", required = true)
-    public final int getNumberOfIndistinguishableProteins()
-    {
-        return numberOfIndistinguishableProteins;
-    }
-
-    public final void setNumberOfIndistinguishableProteins(int numberOfIndistinguishableProteins)
-    {
-        this.numberOfIndistinguishableProteins = numberOfIndistinguishableProteins;
-    }
-
-    @XmlAttribute(name = "unique_stripped_peptides")
-    public final String getUniqueStrippedPeptides()
-    {
-        return uniqueStrippedPeptides;
-    }
-
-    public final void setUniqueStrippedPeptides(String uniqueStrippedPeptides)
-    {
-        this.uniqueStrippedPeptides = uniqueStrippedPeptides;
-    }
-
-    @XmlAttribute(name = "group_sibling_id", required = true)
-    public final String getGroupSiblingID()
-    {
-        return groupSiblingID;
-    }
-
-    public final void setGroupSiblingID(String groupSiblingID)
-    {
-        this.groupSiblingID = groupSiblingID;
-    }
-
-    @XmlAttribute(name = "total_number_peptides")
-    public final int getTotalNumberOfPeptides()
-    {
-        return totalNumberOfPeptides;
-    }
-
-    public final void setTotalNumberOfPeptides(int totalNumberOfPeptides)
-    {
-        this.totalNumberOfPeptides = totalNumberOfPeptides;
-    }
-
-    @XmlAttribute(name = "subsuming_protein_entry")
-    public final String getSubsumingProtein()
-    {
-        return subsumingProtein;
-    }
-
-    public final void setSubsumingProtein(String subsumingProtein)
-    {
-        this.subsumingProtein = subsumingProtein;
-    }
-
-    @XmlAttribute(name = "pct_spectrum_ids")
-    public final String getFractionOfCorrectPeptideIdentifications()
-    {
-        return fractionOfCorrectPeptideIdentifications;
-    }
-
-    public final void setFractionOfCorrectPeptideIdentifications(String fractionOfCorrectPeptideIdentifications)
-    {
-        this.fractionOfCorrectPeptideIdentifications = fractionOfCorrectPeptideIdentifications;
-    }
-
-    @XmlElement(name = "parameter", namespace = Constants.NAMESPACE)
-    public final List<Parameter> getParameters()
-    {
-        return parameters;
-    }
-
-    public final void setParameters(List<Parameter> parameters)
-    {
-        this.parameters = parameters;
-    }
-
-    @XmlElement(name = "indistinguishable_protein", namespace = Constants.NAMESPACE)
-    public final List<AnnotatedProtein> getIndistinguishableProteins()
-    {
-        return indistinguishableProteins;
-    }
-
-    public final void setIndistinguishableProteins(List<AnnotatedProtein> indistinguishableProteins)
-    {
-        this.indistinguishableProteins = indistinguishableProteins;
-    }
-
-    @XmlElement(name = "peptide", namespace = Constants.NAMESPACE)
-    public final List<Peptide> getPeptides()
-    {
-        return peptides;
-    }
-
-    public final void setPeptides(List<Peptide> peptides)
-    {
-        this.peptides = peptides;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuilder builder = new StringBuilder();
-        builder.append(name).append("[probability=").append(probability);
-        builder.append(", coverage=").append(coverage);
-        builder.append(", indistinguishableProteins=").append(numberOfIndistinguishableProteins);
-        if (uniqueStrippedPeptides != null)
-        {
-            builder.append(", uniqueStrippedPeptides=").append(uniqueStrippedPeptides);
-        }
-        builder.append(", groupSiblingID=").append(groupSiblingID);
-        if (totalNumberOfPeptides > 0)
-        {
-            builder.append(", totalNumberOfPeptides=").append(totalNumberOfPeptides);
-        }
-        if (subsumingProtein != null)
-        {
-            builder.append(", subsumingProtein=").append(subsumingProtein);
-        }
-        if (fractionOfCorrectPeptideIdentifications != null)
-        {
-            builder.append(", fractionOfCorrectPeptideIdentifications=").append(fractionOfCorrectPeptideIdentifications);
-        }
-        builder.append("]");
-        if (annotation != null)
-        {
-            builder.append("\n  ").append(annotation);
-        }
-        if (indistinguishableProteins != null && indistinguishableProteins.isEmpty() == false)
-        {
-            builder.append("\n  indistinguishable proteins:");
-            for (AnnotatedProtein protein : indistinguishableProteins)
-            {
-                builder.append("\n    ").append(protein);
-            }
-        }
-        if (peptides != null && peptides.isEmpty() == false)
-        {
-            builder.append("\n  peptides:");
-            for (Peptide peptide : peptides)
-            {
-                builder.append("\n    ").append(peptide);
-                List<PeptideModification> modifications = peptide.getModifications();
-                if (modifications != null && modifications.isEmpty() == false)
-                {
-                    for (PeptideModification modification : modifications)
-                    {
-                        builder.append("\n      ").append(modification);
-                    }
-                }
-            }
-        }
-        return builder.toString();
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinAnnotation.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinAnnotation.java
deleted file mode 100644
index 06c1344ae699c4f3ecc82c457da48be43341c3b5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinAnnotation.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class ProteinAnnotation
-{
-    private String description;
-
-    private String ipiName;
-
-    private String refseqName;
-
-    private String swissprotName;
-
-    private String ensemblName;
-
-    private String tremblName;
-
-    private String locusLinkName;
-
-    private String flybase;
-
-    @XmlAttribute(name = "protein_description", required = true)
-    public final String getDescription()
-    {
-        return description;
-    }
-
-    public final void setDescription(String description)
-    {
-        this.description = description;
-    }
-
-    @XmlAttribute(name = "ipi_name")
-    public final String getIpiName()
-    {
-        return ipiName;
-    }
-
-    public final void setIpiName(String ipiName)
-    {
-        this.ipiName = ipiName;
-    }
-
-    @XmlAttribute(name = "refseq_name")
-    public final String getRefseqName()
-    {
-        return refseqName;
-    }
-
-    public final void setRefseqName(String refseqName)
-    {
-        this.refseqName = refseqName;
-    }
-
-    @XmlAttribute(name = "swissprot_name")
-    public final String getSwissprotName()
-    {
-        return swissprotName;
-    }
-
-    public final void setSwissprotName(String swissprotName)
-    {
-        this.swissprotName = swissprotName;
-    }
-
-    @XmlAttribute(name = "ensembl_name")
-    public final String getEnsemblName()
-    {
-        return ensemblName;
-    }
-
-    public final void setEnsemblName(String ensembleName)
-    {
-        this.ensemblName = ensembleName;
-    }
-
-    @XmlAttribute(name = "trembl_name")
-    public final String getTremblName()
-    {
-        return tremblName;
-    }
-
-    public final void setTremblName(String tremblName)
-    {
-        this.tremblName = tremblName;
-    }
-
-    @XmlAttribute(name = "locus_link_name")
-    public final String getLocusLinkName()
-    {
-        return locusLinkName;
-    }
-
-    public final void setLocusLinkName(String locusLinkName)
-    {
-        this.locusLinkName = locusLinkName;
-    }
-
-    @XmlAttribute(name = "flybase")
-    public final String getFlybase()
-    {
-        return flybase;
-    }
-
-    public final void setFlybase(String flybase)
-    {
-        this.flybase = flybase;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuilder builder = new StringBuilder();
-        builder.append("Annotation[description=").append(description);
-        if (ipiName != null)
-        {
-            builder.append(", ipiName=").append(ipiName);
-        }
-        builder.append("]");
-        return builder.toString();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinGroup.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinGroup.java
deleted file mode 100644
index 24e0e05ea9a410b713439574b2f4987546044cb0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinGroup.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Constants;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class ProteinGroup
-{
-    private String groupNumber;
-
-    private String pseudoName;
-
-    private double probability;
-
-    private List<Protein> proteins;
-
-    @XmlAttribute(name = "group_number", required = true)
-    public final String getGroupNumber()
-    {
-        return groupNumber;
-    }
-
-    public final void setGroupNumber(String groupNumber)
-    {
-        this.groupNumber = groupNumber;
-    }
-
-    @XmlAttribute(name = "pseudo_name")
-    public final String getPseudoName()
-    {
-        return pseudoName;
-    }
-
-    public final void setPseudoName(String pseudoName)
-    {
-        this.pseudoName = pseudoName;
-    }
-
-    @XmlAttribute(name = "probability", required = true)
-    public final double getProbability()
-    {
-        return probability;
-    }
-
-    public final void setProbability(double probability)
-    {
-        this.probability = probability;
-    }
-
-    @XmlElement(name = "protein", namespace = Constants.NAMESPACE)
-    public final List<Protein> getProteins()
-    {
-        return proteins;
-    }
-
-    public final void setProteins(List<Protein> proteins)
-    {
-        this.proteins = proteins;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuilder builder = new StringBuilder();
-        builder.append("PG[number=").append(groupNumber);
-        if (pseudoName != null)
-        {
-            builder.append(", pseudoName=").append(pseudoName);
-        }
-        builder.append(", probability=").append(probability).append("]");
-        if (proteins != null && proteins.size() > 0)
-        {
-            for (Protein protein : proteins)
-            {
-                builder.append("\n  ").append(protein);
-            }
-        }
-        return builder.toString();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinProphetDetails.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinProphetDetails.java
deleted file mode 100644
index cc8727dc7f81e33d9ec9494924e8d34fdda99069..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinProphetDetails.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Constants;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlRootElement(name = "proteinprophet_details", namespace = Constants.NAMESPACE)
-@XmlType
-public class ProteinProphetDetails
-{
-    private String occamFlag;
-
-    private List<ProteinSummaryDataFilter> dataFilters;
-
-    @XmlAttribute(name = "occam_flag", required = true)
-    public final String getOccamFlag()
-    {
-        return occamFlag;
-    }
-
-    public final void setOccamFlag(String occamFlag)
-    {
-        this.occamFlag = occamFlag;
-    }
-
-    @XmlElement(name = "protein_summary_data_filter", namespace = Constants.NAMESPACE)
-    public final List<ProteinSummaryDataFilter> getDataFilters()
-    {
-        return dataFilters;
-    }
-
-    public final void setDataFilters(List<ProteinSummaryDataFilter> dataFilters)
-    {
-        this.dataFilters = dataFilters;
-    }
-
-    @Override
-    public String toString()
-    {
-        return "ProteinProphet[occamFlag=" + occamFlag + "]";
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinReference.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinReference.java
deleted file mode 100644
index 9a3f56fe1bfa40676bf6dbed44e40c0dbcf82085..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinReference.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinReference extends AbstractDTOWithID
-{
-    @ResultColumn("accession_number")
-    private String accessionNumber;
-
-    @ResultColumn("description")
-    private String description;
-
-    public final String getAccessionNumber()
-    {
-        return accessionNumber;
-    }
-
-    public final void setAccessionNumber(String accessionNumber)
-    {
-        this.accessionNumber = accessionNumber;
-    }
-
-    public final String getDescription()
-    {
-        return description;
-    }
-
-    public final void setDescription(String description)
-    {
-        this.description = description;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinSummary.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinSummary.java
deleted file mode 100644
index 55a8526b0e6cce9598445bf007c23e40c6ac09d6..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinSummary.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Constants;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlRootElement(name = "protein_summary", namespace = Constants.NAMESPACE)
-@XmlType
-public class ProteinSummary
-{
-    private String summaryXML;
-
-    private ProteinSummaryHeader summaryHeader;
-
-    private List<ProteinGroup> proteinGroups;
-
-    @XmlAttribute(name = "summary_xml")
-    public final String getSummaryXML()
-    {
-        return summaryXML;
-    }
-
-    public final void setSummaryXML(String summaryXML)
-    {
-        this.summaryXML = summaryXML;
-    }
-
-    @XmlElement(name = "protein_summary_header", namespace = Constants.NAMESPACE)
-    public final ProteinSummaryHeader getSummaryHeader()
-    {
-        return summaryHeader;
-    }
-
-    public final void setSummaryHeader(ProteinSummaryHeader summaryHeader)
-    {
-        this.summaryHeader = summaryHeader;
-    }
-
-    @XmlElement(name = "protein_group", namespace = Constants.NAMESPACE)
-    public final List<ProteinGroup> getProteinGroups()
-    {
-        return proteinGroups;
-    }
-
-    public final void setProteinGroups(List<ProteinGroup> proteinGroups)
-    {
-        this.proteinGroups = proteinGroups;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinSummaryDataFilter.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinSummaryDataFilter.java
deleted file mode 100644
index db809b28390369f89a21f35773eea0f24da5dab3..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinSummaryDataFilter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * Protein Phrophet section with the mapping between probability and FDR (False Discovery Rate).
- *
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class ProteinSummaryDataFilter
-{
-    private double minProbability;
-
-    private double sensitivity;
-
-    private double falsePositiveErrorRate;
-
-    @XmlAttribute(name = "min_probability", required = true)
-    public final double getMinProbability()
-    {
-        return minProbability;
-    }
-
-    public final void setMinProbability(double minProbability)
-    {
-        this.minProbability = minProbability;
-    }
-
-    @XmlAttribute(name = "sensitivity", required = true)
-    public final double getSensitivity()
-    {
-        return sensitivity;
-    }
-
-    public final void setSensitivity(double sensitivity)
-    {
-        this.sensitivity = sensitivity;
-    }
-
-    @XmlAttribute(name = "false_positive_error_rate", required = true)
-    public final double getFalsePositiveErrorRate()
-    {
-        return falsePositiveErrorRate;
-    }
-
-    public final void setFalsePositiveErrorRate(double falsePositiveErrorRate)
-    {
-        this.falsePositiveErrorRate = falsePositiveErrorRate;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinSummaryHeader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinSummaryHeader.java
deleted file mode 100644
index 216543fd617c6cbdf65bca3400c8b000f21683f6..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/ProteinSummaryHeader.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Constants;
-
-/**
- * @author Franz-Josef Elmer
- */
-@XmlType
-public class ProteinSummaryHeader
-{
-    private String referenceDatabase;
-
-    private String winReferenceDatabase;
-
-    private String residueSubstitutions;
-
-    private String organism;
-
-    private String sourceFiles;
-
-    private String sourceFilesAlternative;
-
-    private String winSourceFiles;
-
-    private String sourceFileType;
-
-    private double minimumPeptideProbability;
-
-    private double minimumPeptideWeight;
-
-    private double numberOfPredictedCorrectProteins;
-
-    private int numberOfInput1Spectra;
-
-    private int numberOfInput2Spectra;
-
-    private int numberOfInput3Spectra;
-
-    private double minimumInitialPeptideProbability;
-
-    private double totalEstimatedNumberOfCorrectPeptideAssignments;
-
-    private String sampleEnzyme;
-
-    private ProgramDetails programDetails;
-
-    @XmlAttribute(name = "reference_database", required = true)
-    public final String getReferenceDatabase()
-    {
-        return referenceDatabase;
-    }
-
-    public final void setReferenceDatabase(String referenceDatabase)
-    {
-        this.referenceDatabase = referenceDatabase;
-    }
-
-    @XmlAttribute(name = "win-cyg_reference_database")
-    public final String getWinReferenceDatabase()
-    {
-        return winReferenceDatabase;
-    }
-
-    public final void setWinReferenceDatabase(String winReferenceDatabase)
-    {
-        this.winReferenceDatabase = winReferenceDatabase;
-    }
-
-    @XmlAttribute(name = "residue_substitution_list")
-    public final String getResidueSubstitutions()
-    {
-        return residueSubstitutions;
-    }
-
-    public final void setResidueSubstitutions(String residueSubstitutions)
-    {
-        this.residueSubstitutions = residueSubstitutions;
-    }
-
-    @XmlAttribute(name = "organism")
-    public final String getOrganism()
-    {
-        return organism;
-    }
-
-    public final void setOrganism(String organism)
-    {
-        this.organism = organism;
-    }
-
-    @XmlAttribute(name = "source_files", required = true)
-    public final String getSourceFiles()
-    {
-        return sourceFiles;
-    }
-
-    public final void setSourceFiles(String sourceFiles)
-    {
-        this.sourceFiles = sourceFiles;
-    }
-
-    @XmlAttribute(name = "win-cyg_source_files")
-    public final String getWinSourceFiles()
-    {
-        return winSourceFiles;
-    }
-
-    public final void setWinSourceFiles(String winSourceFiles)
-    {
-        this.winSourceFiles = winSourceFiles;
-    }
-
-    @XmlAttribute(name = "source_files_alt", required = true)
-    public final String getSourceFilesAlternative()
-    {
-        return sourceFilesAlternative;
-    }
-
-    public final void setSourceFilesAlternative(String sourceFilesAlternative)
-    {
-        this.sourceFilesAlternative = sourceFilesAlternative;
-    }
-
-    @XmlAttribute(name = "source_file_xtn")
-    public final String getSourceFileType()
-    {
-        return sourceFileType;
-    }
-
-    public final void setSourceFileType(String sourceFileType)
-    {
-        this.sourceFileType = sourceFileType;
-    }
-
-    @XmlAttribute(name = "min_peptide_probability", required = true)
-    public final double getMinimumPeptideProbability()
-    {
-        return minimumPeptideProbability;
-    }
-
-    public final void setMinimumPeptideProbability(double minimumPeptideProbability)
-    {
-        this.minimumPeptideProbability = minimumPeptideProbability;
-    }
-
-    @XmlAttribute(name = "min_peptide_weight", required = true)
-    public final double getMinimumPeptideWeight()
-    {
-        return minimumPeptideWeight;
-    }
-
-    public final void setMinimumPeptideWeight(double minimumPeptideWeight)
-    {
-        this.minimumPeptideWeight = minimumPeptideWeight;
-    }
-
-    @XmlAttribute(name = "num_predicted_correct_prots", required = true)
-    public final double getNumberOfPredictedCorrectProteins()
-    {
-        return numberOfPredictedCorrectProteins;
-    }
-
-    public final void setNumberOfPredictedCorrectProteins(double numberOfPredictedCorrectProteins)
-    {
-        this.numberOfPredictedCorrectProteins = numberOfPredictedCorrectProteins;
-    }
-
-    @XmlAttribute(name = "num_input_1_spectra", required = true)
-    public final int getNumberOfInput1Spectra()
-    {
-        return numberOfInput1Spectra;
-    }
-
-    public final void setNumberOfInput1Spectra(int numberOfInput1Spectra)
-    {
-        this.numberOfInput1Spectra = numberOfInput1Spectra;
-    }
-
-    @XmlAttribute(name = "num_input_2_spectra", required = true)
-    public final int getNumberOfInput2Spectra()
-    {
-        return numberOfInput2Spectra;
-    }
-
-    public final void setNumberOfInput2Spectra(int numberOfInput2Spectra)
-    {
-        this.numberOfInput2Spectra = numberOfInput2Spectra;
-    }
-
-    @XmlAttribute(name = "num_input_3_spectra", required = true)
-    public final int getNumberOfInput3Spectra()
-    {
-        return numberOfInput3Spectra;
-    }
-
-    public final void setNumberOfInput3Spectra(int numberOfInput3Spectra)
-    {
-        this.numberOfInput3Spectra = numberOfInput3Spectra;
-    }
-
-    @XmlAttribute(name = "initial_min_peptide_prob", required = true)
-    public final double getMinimumInitialPeptideProbability()
-    {
-        return minimumInitialPeptideProbability;
-    }
-
-    public final void setMinimumInitialPeptideProbability(double minimumInitialPeptideProbability)
-    {
-        this.minimumInitialPeptideProbability = minimumInitialPeptideProbability;
-    }
-
-    @XmlAttribute(name = "total_no_spectrum_ids")
-    public final double getTotalEstimatedNumberOfCorrectPeptideAssignments()
-    {
-        return totalEstimatedNumberOfCorrectPeptideAssignments;
-    }
-
-    public final void setTotalEstimatedNumberOfCorrectPeptideAssignments(
-            double totalEstimatedNumberOfCorrectPeptideAssignments)
-    {
-        this.totalEstimatedNumberOfCorrectPeptideAssignments =
-                totalEstimatedNumberOfCorrectPeptideAssignments;
-    }
-
-    @XmlAttribute(name = "sample_enzyme", required = true)
-    public final String getSampleEnzyme()
-    {
-        return sampleEnzyme;
-    }
-
-    public final void setSampleEnzyme(String sampleEnzyme)
-    {
-        this.sampleEnzyme = sampleEnzyme;
-    }
-
-    @XmlElement(name = "program_details", namespace = Constants.NAMESPACE)
-    public final ProgramDetails getProgramDetails()
-    {
-        return programDetails;
-    }
-
-    public final void setProgramDetails(ProgramDetails programDetails)
-    {
-        this.programDetails = programDetails;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Sample.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Sample.java
deleted file mode 100644
index debe7356ee5ea7d12ee8a588c84aa9286da89403..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Sample.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class Sample extends AbstractDTOWithIDAndPermID
-{
-    @ResultColumn("expe_id")
-    private Long experimentID;
-
-    public final Long getExperimentID()
-    {
-        return experimentID;
-    }
-
-    public final void setExperimentID(Long experimentID)
-    {
-        this.experimentID = experimentID;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Sequence.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Sequence.java
deleted file mode 100644
index 0be82ad08a693bfa4ab2e7c757e6a926fab59cba..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/dto/Sequence.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class Sequence extends AbstractDTOWithID
-{
-    @ResultColumn("database_id")
-    private long databaseID;
-
-    @ResultColumn("protein_reference_id")
-    private long proteinReferenceID;
-
-    @ResultColumn("amino_acid_sequence")
-    private String sequence;
-
-    private String checksum;
-
-    // Used by eodsql
-    @SuppressWarnings("unused")
-    private Sequence()
-    {
-    }
-
-    public Sequence(String sequence)
-    {
-        setSequence(sequence);
-        calculateChecksum();
-    }
-
-    public final long getDatabaseID()
-    {
-        return databaseID;
-    }
-
-    public final void setDatabaseID(long databaseID)
-    {
-        this.databaseID = databaseID;
-    }
-
-    public final long getProteinReferenceID()
-    {
-        return proteinReferenceID;
-    }
-
-    public final void setProteinReferenceID(long proteinDescriptionID)
-    {
-        this.proteinReferenceID = proteinDescriptionID;
-    }
-
-    public final String getSequence()
-    {
-        return sequence;
-    }
-
-    public final void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-    public void calculateChecksum()
-    {
-        if (sequence != null)
-        {
-            setChecksum(Integer.toHexString(sequence.hashCode()));
-        }
-    }
-
-    public final String getChecksum()
-    {
-        return checksum;
-    }
-
-    public final void setChecksum(String checksum)
-    {
-        this.checksum = checksum;
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (obj == this)
-        {
-            return true;
-        }
-        if (obj instanceof Sequence == false)
-        {
-            return false;
-        }
-        return ((Sequence) obj).toString().equals(toString());
-    }
-
-    @Override
-    public int hashCode()
-    {
-        return toString().hashCode();
-    }
-
-    @Override
-    public String toString()
-    {
-        return getDatabaseID() + "-" + getProteinReferenceID() + ":" + sequence
-                + "[" + checksum + "]";
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/protXML_v3.xsd b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/protXML_v3.xsd
deleted file mode 100644
index 06037477473d95eefdafa001f1f8c52779713e63..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/protXML_v3.xsd
+++ /dev/null
@@ -1,816 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Wei Yan (Institute for Systems Biology) -->
-<!--W3C Schema generated by XMLSPY v2004 rel. 4 U (http://www.xmlspy.com)-->
-<xs:schema targetNamespace="http://regis-web.systemsbiology.net/protXML" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://regis-web.systemsbiology.net/protXML" xmlns:protx="http://regis-web.systemsbiology.net/protXML" elementFormDefault="qualified">
-	<xs:element name="ASAPRatio_pvalue">
-	<xs:annotation>
-		<xs:documentation>Results of ASAPRatio pvalue analysis (adjusting ASAPRatio ratios for offset of dataset, and determining whether ratios are significantly different from chance values originating from 1:1 proteins)</xs:documentation>
-	</xs:annotation>
-		<xs:complexType>
-			<xs:attribute name="adj_ratio_mean" type="xs:double" use="required">
-				<xs:annotation>
-					<xs:documentation>Ratio adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="adj_ratio_standard_dev" type="xs:double" use="required">
-				<xs:annotation>
-					<xs:documentation>Error adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="heavy2light_adj_ratio_mean" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>Heavy2light ratio adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="heavy2light_adj_ratio_standard_dev" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>Heavy2light error adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="pvalue" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>pvalue (probability of ratio due by chance to 1:1 protein)</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="decimal_pvalue" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>decimal representation of pvalue</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="ASAPRatio">
-	<xs:annotation>
-		<xs:documentation>Results of ASAPRatio quantitation of protein</xs:documentation>
-	</xs:annotation>
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="ASAP_Seq" minOccurs="0" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="ASAP_Peak" maxOccurs="unbounded">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:element name="ASAP_Dta" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:attribute name="peptide_index" type="xs:string" use="required"/>
-												<xs:attribute name="include" type="xs:string" use="required"/>
-											</xs:complexType>
-										</xs:element>
-									</xs:sequence>
-									<xs:attribute name="status" type="xs:string" use="required"/>
-									<xs:attribute name="include" type="xs:string" use="required"/>
-									<xs:attribute name="datanum" type="xs:nonNegativeInteger" use="required"/>
-									<xs:attribute name="ratio_mean" type="xs:double" use="required"/>
-									<xs:attribute name="ratio_standard_dev" type="xs:double" use="required"/>
-									<xs:attribute name="weight" type="xs:double" use="required"/>
-									<xs:attribute name="peptide_binary_ind" type="xs:string" use="required"/>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="status" type="xs:string" use="required"/>
-						<xs:attribute name="include" type="xs:string" use="required"/>
-						<xs:attribute name="datanum" type="xs:nonNegativeInteger" use="required"/>
-						<xs:attribute name="ratio_mean" type="xs:double" use="required"/>
-						<xs:attribute name="ratio_standard_dev" type="xs:double" use="required"/>
-						<xs:attribute name="weight" type="xs:double" use="required"/>
-						<xs:attribute name="light_sequence" type="xs:string" use="required"/>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="ratio_mean" type="xs:double" use="required"/>
-			<xs:attribute name="ratio_standard_dev" type="xs:double" use="required"/>
-			<xs:attribute name="ratio_number_peptides" type="xs:nonNegativeInteger" use="required"/>
-			<xs:attribute name="heavy2light_ratio_mean" type="xs:double"/>
-			<xs:attribute name="heavy2light_ratio_standard_dev" type="xs:double"/>
-			<xs:attribute name="description" type="xs:string"/>
-			<xs:attribute name="status" type="xs:string"/>
-			<xs:attribute name="peptide_inds" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="protein_summary">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="protein_summary_header">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="program_details">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:any namespace="##any" processContents="lax" minOccurs="0">
-											<xs:annotation>
-												<xs:documentation>Wildcard for summary info customized for a particular analysis used to infer protein identifications</xs:documentation>
-											</xs:annotation>
-										</xs:any>
-									</xs:sequence>
-									<xs:attribute name="analysis" type="xs:string" use="required">
-											<xs:annotation>
-												<xs:documentation>Name of analysis used for protein identifications</xs:documentation>
-											</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="time" type="xs:dateTime" use="required">
-											<xs:annotation>
-												<xs:documentation>Time of analysis</xs:documentation>
-											</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="version" type="xs:string"/>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="reference_database" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>full path database name</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="win-cyg_reference_database" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>windows full path database</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="residue_substitution_list" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>residues considered equivalent when comparing peptides</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="organism" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>sample organism (used for annotation purposes)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="source_files" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>input pepXML files</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="source_files_alt" type="xs:string" use="required"/>
-						<xs:attribute name="win-cyg_source_files" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>windows pepXML file names</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="source_file_xtn" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>file type (if not pepXML)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="min_peptide_probability" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>minimum adjusted peptide probability contributing to protein probability</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="min_peptide_weight" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>minimum peptide weight contributing to protein probability</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_predicted_correct_prots" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>total number of predicted correct protein ids (sum of probabilities)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_1_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 1+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_2_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 2+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_3_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 3+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="initial_min_peptide_prob" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>minimum initial peptide probability to contribute to analysis</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="total_no_spectrum_ids" type="xs:double">
-							<xs:annotation>
-								<xs:documentation>total estimated number of correct peptide assignments in dataset</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="sample_enzyme" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>enzyme applied to sample prior to MS/MS</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="analysis_summary" minOccurs="0" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:any namespace="##any" processContents="lax" minOccurs="0">
-								<xs:annotation>
-									<xs:documentation>time of analysis</xs:documentation>
-								</xs:annotation>
-							</xs:any>
-						</xs:sequence>
-						<xs:attribute name="analysis" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>name of protein-level analysis</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-
-						<xs:attribute name="time" type="xs:dateTime" use="required">
-							<xs:annotation>
-								<xs:documentation>time of analysis</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-
-						<xs:attribute name="id" type="xs:nonNegativeInteger" use="required">
-							<xs:annotation>
-								<xs:documentation>unique id corresponding with analysis_result elements</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-
-
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="dataset_derivation">
-				<xs:annotation>
-					<xs:documentation>Source and filtering criteria used to generate dataset</xs:documentation>
-				</xs:annotation>
-					<xs:complexType>
-						<xs:sequence minOccurs="0" maxOccurs="unbounded">
-							<xs:element name="data_filter">
-								<xs:complexType>
-									<xs:attribute name="number" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>generation number (0 is root)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-
-									<xs:attribute name="parent_file" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>File from which derived</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="windows_parent" type="xs:string"/>
-									<xs:attribute name="description" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>filtering criteria applied to data</xs:documentation>
-										</xs:annotation>
-	                                				</xs:attribute>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="generation_no" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>number preceding filter generations</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="protein_group" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="protein" maxOccurs="unbounded">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:anySimpleType">
-														<xs:attribute name="name" type="xs:string" use="required"/>
-														<xs:attribute name="value" type="xs:anySimpleType" use="required"/>
-														<xs:attribute name="type" type="xs:anySimpleType"/>
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="analysis_result" minOccurs="0" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:any namespace="##any" processContents="lax">
-														<xs:annotation>
-															<xs:documentation>wildcard to be substituted with element storing analysis-specific result info</xs:documentation>
-														</xs:annotation>
-													</xs:any>
-
-												</xs:sequence>
-												<xs:attribute name="analysis" type="xs:string" use="required">
-													<xs:annotation>
-														<xs:documentation>name of protein level analysis</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="id" type="xs:nonNegativeInteger" default="1">
-													<xs:annotation>
-														<xs:documentation>unique identifier to analysis_summary element</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="annotation" minOccurs="0">
-											<xs:complexType>
-												<xs:attribute name="protein_description" type="xs:string" use="required"/>
-												<xs:attribute name="ipi_name" type="xs:string"/>
-												<xs:attribute name="refseq_name" type="xs:string"/>
-												<xs:attribute name="swissprot_name" type="xs:string"/>
-												<xs:attribute name="ensembl_name" type="xs:string"/>
-												<xs:attribute name="trembl_name" type="xs:string"/>
-												<xs:attribute name="locus_link_name" type="xs:string"/>
-												<xs:attribute name="flybase" type="xs:string"/>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="indistinguishable_protein" minOccurs="0" maxOccurs="unbounded">
-										<xs:annotation>
-											<xs:documentation>other protein sharing corresponding peptides</xs:documentation>
-										</xs:annotation>
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="annotation" minOccurs="0">
-													<xs:annotation>
-														<xs:documentation>protein description</xs:documentation>
-													</xs:annotation>
-
-														<xs:complexType>
-															<xs:attribute name="protein_description" type="xs:string" use="required">
-																<xs:annotation>
-																	<xs:documentation>description</xs:documentation>
-																</xs:annotation>
-	                                										</xs:attribute>
-
-															<xs:attribute name="ipi_name" type="xs:string"/>
-															<xs:attribute name="refseq_name" type="xs:string"/>
-															<xs:attribute name="swissprot_name" type="xs:string"/>
-															<xs:attribute name="ensembl_name" type="xs:string"/>
-															<xs:attribute name="trembl_name" type="xs:string"/>
-															<xs:attribute name="locus_link_name" type="xs:string"/>
-															<xs:attribute name="flybase" type="xs:string"/>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-												<xs:attribute name="protein_name" type="xs:string" use="required"/>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="peptide" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:anySimpleType">
-																	<xs:attribute name="name" type="xs:string" use="required"/>
-																	<xs:attribute name="value" type="xs:anySimpleType" use="required"/>
-																	<xs:attribute name="type" type="xs:anySimpleType"/>
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-													<xs:element name="modification_info" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:sequence>
-																<xs:element name="mod_aminoacid_mass" minOccurs="0" maxOccurs="unbounded">
-																	<xs:complexType>
-																		<xs:attribute name="position" type="xs:string" use="required"/>
-																		<xs:attribute name="mass" type="xs:string" use="required"/>
-																	</xs:complexType>
-																</xs:element>
-															</xs:sequence>
-															<xs:attribute name="mod_nterm_mass" type="xs:string"/>
-															<xs:attribute name="mod_cterm_mass" type="xs:string"/>
-															<xs:attribute name="modified_peptide" type="xs:string"/>
-														</xs:complexType>
-													</xs:element>
-													<xs:element name="peptide_parent_protein" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:attribute name="protein_name" type="xs:string" use="required"/>
-														</xs:complexType>
-													</xs:element>
-													<xs:element name="indistinguishable_peptide" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:sequence>
-																<xs:element name="modification_info" minOccurs="0" maxOccurs="unbounded">
-																	<xs:complexType>
-																		<xs:sequence>
-																			<xs:element name="mod_aminoacid_mass" minOccurs="0" maxOccurs="unbounded">
-																				<xs:complexType>
-																					<xs:attribute name="position" type="xs:string" use="required"/>
-																					<xs:attribute name="mass" type="xs:string" use="required"/>
-																				</xs:complexType>
-																			</xs:element>
-																		</xs:sequence>
-																		<xs:attribute name="mod_nterm_mass" type="xs:string"/>
-																		<xs:attribute name="mod_cterm_mass" type="xs:string"/>
-																		<xs:attribute name="modified_peptide" type="xs:string"/>
-																	</xs:complexType>
-																</xs:element>
-															</xs:sequence>
-															<xs:attribute name="peptide_sequence" type="xs:string" use="required"/>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-												<xs:attribute name="peptide_sequence" type="xs:string" use="required">
-													<xs:annotation>
-														<xs:documentation>unmodified aa sequence</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="charge" type="xs:positiveInteger" use="required">
-													<xs:annotation>
-														<xs:documentation>precursor ion charge</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="initial_probability" type="xs:double" use="required">
-													<xs:annotation>
-														<xs:documentation>prior to nsp adjustment</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="nsp_adjusted_probability" type="xs:double" use="optional">
-													<xs:annotation>
-														<xs:documentation>after nsp adjustment</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="peptide_group_designator" type="xs:string">
-													<xs:annotation>
-														<xs:documentation>link to spectra with other precursor ion charges assigned to same peptide</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="weight" type="xs:double" default="1.0"/>
-												<xs:attribute name="is_nondegenerate_evidence" type="xs:string" use="required">
-													<xs:annotation>
-														<xs:documentation>confidence that peptide corresponds with this protein (rather than others in which it occurs)</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_enzymatic_termini" type="xs:nonNegativeInteger" use="required">
-													<xs:annotation>
-														<xs:documentation>number of termini consistent with proteolytic cleavage</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_sibling_peptides" type="xs:double">
-													<xs:annotation>
-														<xs:documentation>estimated number of sibling peptides (other identified peptides corresponding to same protein)</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_sibling_peptides_bin" type="xs:integer" default="0">
-													<xs:annotation>
-														<xs:documentation>discretized nsp value</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_instances" type="xs:integer" use="required">
-													<xs:annotation>
-														<xs:documentation>number of times peptide assigned to spectrum of precursor ion charge in dataset</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="calc_neutral_pep_mass" type="xs:double"/>
-												<xs:attribute name="is_contributing_evidence" type="xs:string" use="required"/>
-											</xs:complexType>
-										</xs:element>
-									</xs:sequence>
-									<xs:attribute name="protein_name" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>database protein name</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-
-									<xs:attribute name="probability" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>confidence of protein id</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="percent_coverage" type="xs:double">
-										<xs:annotation>
-											<xs:documentation>percent of protein sequence covered by corresponding peptides</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="n_indistinguishable_proteins" type="xs:integer" use="required">
-										<xs:annotation>
-											<xs:documentation>number of proteins with identical corresponding peptides</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="unique_stripped_peptides" type="xs:string"/>
-									<xs:attribute name="group_sibling_id" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>protein group id</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="total_number_peptides" type="xs:integer">
-										<xs:annotation>
-											<xs:documentation>total number of corresponding peptides that contributed to protein probability</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="subsuming_protein_entry" type="xs:string">
-										<xs:annotation>
-											<xs:documentation>name of portein containing all corresponding peptides, and more</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pct_spectrum_ids" type="xs:string">
-										<xs:annotation>
-											<xs:documentation>fraction of correct dataset peptide identifications corresponding to protein</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-								</xs:complexType>
-								<xs:unique name="unique_result_analysis_id">
-									<xs:annotation>
-										<xs:documentation>can only have one analysis/id combination within each protein element</xs:documentation>
-									</xs:annotation>
-
-									<xs:selector xpath="./protx:analysis_result"/>
-									<xs:field xpath="@analysis"/>
-									<xs:field xpath="@id"/>
-								</xs:unique>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="group_number" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>index</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="pseudo_name" type="xs:string"/>
-						<xs:attribute name="probability" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>group probability (taking contributions from all group member proteins)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-					<xs:unique name="unique_group_sibling_id">
-						<xs:annotation>
-							<xs:documentation>Each group_sibling_id must be unique within a protein group</xs:documentation>
-						</xs:annotation>
-						<xs:selector xpath="./protx:protein"/>
-						<xs:field xpath="@group_sibling_id"/>
-					</xs:unique>
-
-				</xs:element>
-			</xs:sequence>
-		<xs:attribute name="summary_xml" type="xs:string"/>
-		</xs:complexType>
-		<xs:key name="summary_analysis_id">
-			<xs:selector xpath="./protx:analysis_summary"/>
-			<xs:field xpath="@analysis"/>
-			<xs:field xpath="@id"/>
-		</xs:key>
-		<xs:keyref name="result_analysis_id" refer="summary_analysis_id">
-			<xs:annotation>
-				<xs:documentation>analysis and id must correspond with those fields in an analysis_summary element</xs:documentation>
-			</xs:annotation>
-			<xs:selector xpath="./protx:protein_group/protx:protein/protx:analysis_result"/>
-			<xs:field xpath="@analysis"/>
-			<xs:field xpath="@id"/>
-		</xs:keyref>
-		<xs:unique name="unique_group_number">
-			<xs:annotation>
-				<xs:documentation>Requires group numbers be unique for entire dataset</xs:documentation>
-			</xs:annotation>
-			<xs:selector xpath="./protx:protein_group"/>
-			<xs:field xpath="@group_number"/>
-		</xs:unique>
-	</xs:element>
-	<xs:element name="proteinprophet_details">
-		<xs:annotation>
-			<xs:documentation>ProteinProphet analysis details</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="nsp_information">
-					<xs:annotation>
-						<xs:documentation>learned distributions of estimated number of sibling peptides</xs:documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="nsp_distribution" maxOccurs="unbounded">
-								<xs:annotation>
-									<xs:documentation>histogram slice of estimated number of sibling peptides</xs:documentation>
-								</xs:annotation>
-								<xs:complexType>
-									<xs:attribute name="bin_no" type="xs:integer" use="required">
-										<xs:annotation>
-											<xs:documentation>discretized bin number</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="nsp_lower_bound_incl" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>lower bound nsp value (inclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="nsp_upper_bound_excl" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>upper bound nsp value (exclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pos_freq" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of correct peptides in bin</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="neg_freq" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of incorrect peptides in bin</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pos_to_neg_ratio" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of correct / fraction of incorrect</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="alt_pos_to_neg_ratio" type="xs:double">
-										<xs:annotation>
-											<xs:documentation>pos_to_neg_ratio of preceding bin (if greater than that of current bin)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="neighboring_bin_smoothing" type="xs:string" use="required"/>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="protein_summary_data_filter" maxOccurs="unbounded">
-					<xs:annotation>
-						<xs:documentation>predicted error/sensitivity for filtering at minimum probability</xs:documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:attribute name="min_probability" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>filter setting</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="sensitivity" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>predicted sensitivity (fraction of correct results passing filter)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="false_positive_error_rate" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>predicted error rate (fraction of results passing filter than are incorrect)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="predicted_num_correct" type="xs:double">
-							<xs:annotation>
-								<xs:documentation>predicted number of correct results passing filter</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="predicted_num_incorrect" type="xs:double">
-							<xs:annotation>
-								<xs:documentation>predicted number of incorrect results passing filter</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="occam_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not occams razor was used to apportion peptides corresponding to multiple proteins</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="groups_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not related proteins are organized together in common protein groups</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="degen_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not all proteins corresponding to each identified peptide were used in analysis</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="nsp_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not peptide probabilities were adjusted for estimated number of sibling peptides</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="initial_peptide_wt_iters" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>proteinprophet number of initial iterations to compute peptide weights</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="nsp_distribution_iters" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>proteinprophet number of interations used to compute nsp distributions</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="final_peptide_wt_iters" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>proteinprophet number of final interations used to compute final peptide weights</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="run_options" type="xs:string">
-				<xs:annotation>
-					<xs:documentation>special run options</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="XPress_analysis_summary">
-		<xs:complexType>
-			<xs:attribute name="min_peptide_probability" type="xs:double" use="required"/>
-			<xs:attribute name="min_peptide_weight" type="xs:double" use="required"/>
-			<xs:attribute name="min_protein_probability" type="xs:double" use="required"/>
-			<xs:attribute name="reference_isotope" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="ASAP_prot_analysis_summary">
-		<xs:complexType>
-			<xs:attribute name="version" type="xs:string"/>
-			<xs:attribute name="binary_ref_files" type="xs:string"/>
-			<xs:attribute name="min_peptide_probability" type="xs:double" use="required"/>
-			<xs:attribute name="min_peptide_weight" type="xs:double" use="required"/>
-			<xs:attribute name="min_protein_probability" type="xs:double" use="required"/>
-			<xs:attribute name="reference_isotope" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="ASAP_pvalue_analysis_summary">
-		<xs:complexType>
-			<xs:attribute name="asapratio_id" type="xs:nonNegativeInteger" default="1"/>
-			<xs:attribute name="background_ratio_mean" type="xs:double" use="required"/>
-			<xs:attribute name="background_ratio_stdev" type="xs:double" use="required"/>
-			<xs:attribute name="background_fitting_error" type="xs:double" use="required"/>
-			<xs:attribute name="analysis_distribution_file" type="xs:string" use="required"/>
-			<xs:attribute name="full_analysis_distr_file" type="xs:string"/>
-			<xs:attribute name="asap_prot_id" type="xs:nonNegativeInteger" default="1"/>
-		</xs:complexType>
-	</xs:element>
-
-
-	<xs:simpleType name="positiveInt">
-		<xs:restriction base="xs:unsignedInt">
-			<xs:minInclusive value="1"/>
-		</xs:restriction>
-	</xs:simpleType>
-   	<xs:element name="libra_result">
-      	<xs:complexType>
-         	<xs:sequence>
-            	<xs:element name="intensity" maxOccurs="unbounded">
-               		<xs:complexType>
-                  		<xs:attribute name="mz" type="xs:float" use="required"/> 
-                  		<xs:attribute name="ratio" type="xs:float" use="required"/>
-                  		<xs:attribute name="error" type="xs:float" use="required"/>
-               		</xs:complexType>
-            	</xs:element>
-         	</xs:sequence>
-                 <xs:attribute name="number" type="xs:nonNegativeInteger" use="required"/>
-      	</xs:complexType>
-	<xs:unique name="libra_result_channel_index">
-		<xs:selector xpath="."/>
-		<xs:field xpath="@channel"/>
-	</xs:unique>
-
-
-   	</xs:element>
-      	<xs:element name="libra_summary">
-      	<xs:complexType>
-         	<xs:sequence>
-            	<xs:element name="fragment_masses" maxOccurs="unbounded">
-               	<xs:complexType>
-                  	<xs:attribute name="channel" type="positiveInt" use="required"/>
-                  	<xs:attribute name="mz" type="xs:float" use="required"/>
-               	</xs:complexType>
-            	</xs:element>
-            	<xs:element name="isotopic_contributions" minOccurs="0">
-               	<xs:complexType>
-                  	<xs:sequence>
-                     	<xs:element name="contributing_channel" maxOccurs="unbounded">
-                        	<xs:complexType>
-                           	<xs:sequence>
-                              	<xs:element name="affected_channel" maxOccurs="unbounded">
-                                 	<xs:complexType>
-                                    	<xs:attribute name="channel" type="positiveInt" use="required"/>
-                                    	<xs:attribute name="correction" type="xs:float" use="required"/>
-                                 	</xs:complexType>
-                              	</xs:element>
-                           	</xs:sequence>
-                           	<xs:attribute name="channel" type="positiveInt" use="required"/>
-                        	</xs:complexType>
-                     	</xs:element>
-                  	</xs:sequence>
-               	</xs:complexType>
-            	</xs:element>
-         	</xs:sequence>
-         	<xs:attribute name="mass_tolerance" type="xs:float" use="required"/>
-         	<xs:attribute name="centroiding_preference" type="xs:int" use="required"/>
-         	<xs:attribute name="normalization" type="xs:int" use="required"/>
-         	<xs:attribute name="output_type" type="xs:int" use="required"/>
-         	<xs:attribute name="channel_code" type="xs:string"/>
-        	<xs:attribute name="min_pep_prob" type="xs:float" use="required"/>
-         	<xs:attribute name="min_pep_wt" type="xs:float" use="required"/>
-         	<xs:attribute name="min_prot_prob" type="xs:float" use="required"/>
-      	</xs:complexType>
-
-	<xs:key name="libra_channel_index">
-		<xs:selector xpath="./protx:fragment_masses"/>
-		<xs:field xpath="@channel"/>
-	</xs:key>
-	<xs:keyref name="libra_contr_channel_index_ref" refer="libra_channel_index">
-		<xs:selector xpath="./protx:isotopic_contributions/protx:contributing_channel"/>
-		<xs:field xpath="@channel"/>
-	</xs:keyref>
-	<xs:keyref name="libra_aff_channel_index_ref" refer="libra_channel_index">
-		<xs:selector xpath="./protx:isotopic_contributions/protx:contributing_channel/protx:affected_channel"/>
-		<xs:field xpath="@channel"/>
-	</xs:keyref>
-
-   	</xs:element>
-</xs:schema>
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/protXML_v4.xsd b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/protXML_v4.xsd
deleted file mode 100644
index 26809f124c270cd961ca49ad2ee42c191614668d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/protXML_v4.xsd
+++ /dev/null
@@ -1,820 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Wei Yan (Institute for Systems Biology) -->
-<!--W3C Schema generated by XMLSPY v2004 rel. 4 U (http://www.xmlspy.com)-->
-<xs:schema targetNamespace="http://regis-web.systemsbiology.net/protXML" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://regis-web.systemsbiology.net/protXML" xmlns:protx="http://regis-web.systemsbiology.net/protXML" elementFormDefault="qualified">
-	<xs:element name="ASAPRatio_pvalue">
-	<xs:annotation>
-		<xs:documentation>Results of ASAPRatio pvalue analysis (adjusting ASAPRatio ratios for offset of dataset, and determining whether ratios are significantly different from chance values originating from 1:1 proteins)</xs:documentation>
-	</xs:annotation>
-		<xs:complexType>
-			<xs:attribute name="adj_ratio_mean" type="xs:double" use="required">
-				<xs:annotation>
-					<xs:documentation>Ratio adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="adj_ratio_standard_dev" type="xs:double" use="required">
-				<xs:annotation>
-					<xs:documentation>Error adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="heavy2light_adj_ratio_mean" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>Heavy2light ratio adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="heavy2light_adj_ratio_standard_dev" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>Heavy2light error adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="pvalue" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>pvalue (probability of ratio due by chance to 1:1 protein)</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="decimal_pvalue" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>decimal representation of pvalue</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="ASAPRatio">
-	<xs:annotation>
-		<xs:documentation>Results of ASAPRatio quantitation of protein</xs:documentation>
-	</xs:annotation>
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="ASAP_Seq" minOccurs="0" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="ASAP_Peak" maxOccurs="unbounded">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:element name="ASAP_Dta" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:attribute name="peptide_index" type="xs:string" use="required"/>
-												<xs:attribute name="include" type="xs:string" use="required"/>
-											</xs:complexType>
-										</xs:element>
-									</xs:sequence>
-									<xs:attribute name="status" type="xs:string" use="required"/>
-									<xs:attribute name="include" type="xs:string" use="required"/>
-									<xs:attribute name="datanum" type="xs:nonNegativeInteger" use="required"/>
-									<xs:attribute name="ratio_mean" type="xs:double" use="required"/>
-									<xs:attribute name="ratio_standard_dev" type="xs:double" use="required"/>
-									<xs:attribute name="heavy2light_ratio_mean" type="xs:double" use="required"/>	
-									<xs:attribute name="heavy2light_ratio_standard_dev" type="xs:double" use="required"/>
-									<xs:attribute name="weight" type="xs:double" use="required"/>
-									<xs:attribute name="peptide_binary_ind" type="xs:string" use="required"/>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="status" type="xs:string" use="required"/>
-						<xs:attribute name="include" type="xs:string" use="required"/>
-						<xs:attribute name="datanum" type="xs:nonNegativeInteger" use="required"/>
-						<xs:attribute name="ratio_mean" type="xs:double" use="required"/>
-						<xs:attribute name="ratio_standard_dev" type="xs:double" use="required"/>
-						<xs:attribute name="heavy2light_ratio_mean" type="xs:double" use="required"/>		
-						<xs:attribute name="heavy2light_ratio_standard_dev" type="xs:double" use="required"/>
-						<xs:attribute name="weight" type="xs:double" use="required"/>
-						<xs:attribute name="light_sequence" type="xs:string" use="required"/>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="ratio_mean" type="xs:double" use="required"/>
-			<xs:attribute name="ratio_standard_dev" type="xs:double" use="required"/>
-			<xs:attribute name="ratio_number_peptides" type="xs:nonNegativeInteger" use="required"/>
-			<xs:attribute name="heavy2light_ratio_mean" type="xs:double"/>
-			<xs:attribute name="heavy2light_ratio_standard_dev" type="xs:double"/>
-			<xs:attribute name="description" type="xs:string"/>
-			<xs:attribute name="status" type="xs:string"/>
-			<xs:attribute name="peptide_inds" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="protein_summary">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="protein_summary_header">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="program_details">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:any namespace="##any" processContents="lax" minOccurs="0">
-											<xs:annotation>
-												<xs:documentation>Wildcard for summary info customized for a particular analysis used to infer protein identifications</xs:documentation>
-											</xs:annotation>
-										</xs:any>
-									</xs:sequence>
-									<xs:attribute name="analysis" type="xs:string" use="required">
-											<xs:annotation>
-												<xs:documentation>Name of analysis used for protein identifications</xs:documentation>
-											</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="time" type="xs:dateTime" use="required">
-											<xs:annotation>
-												<xs:documentation>Time of analysis</xs:documentation>
-											</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="version" type="xs:string"/>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="reference_database" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>full path database name</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="win-cyg_reference_database" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>windows full path database</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="residue_substitution_list" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>residues considered equivalent when comparing peptides</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="organism" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>sample organism (used for annotation purposes)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="source_files" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>input pepXML files</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="source_files_alt" type="xs:string" use="required"/>
-						<xs:attribute name="win-cyg_source_files" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>windows pepXML file names</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="source_file_xtn" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>file type (if not pepXML)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="min_peptide_probability" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>minimum adjusted peptide probability contributing to protein probability</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="min_peptide_weight" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>minimum peptide weight contributing to protein probability</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_predicted_correct_prots" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>total number of predicted correct protein ids (sum of probabilities)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_1_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 1+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_2_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 2+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_3_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 3+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="initial_min_peptide_prob" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>minimum initial peptide probability to contribute to analysis</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="total_no_spectrum_ids" type="xs:double">
-							<xs:annotation>
-								<xs:documentation>total estimated number of correct peptide assignments in dataset</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="sample_enzyme" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>enzyme applied to sample prior to MS/MS</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="analysis_summary" minOccurs="0" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:any namespace="##any" processContents="lax" minOccurs="0">
-								<xs:annotation>
-									<xs:documentation>time of analysis</xs:documentation>
-								</xs:annotation>
-							</xs:any>
-						</xs:sequence>
-						<xs:attribute name="analysis" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>name of protein-level analysis</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-
-						<xs:attribute name="time" type="xs:dateTime" use="required">
-							<xs:annotation>
-								<xs:documentation>time of analysis</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-
-						<xs:attribute name="id" type="xs:nonNegativeInteger" use="required">
-							<xs:annotation>
-								<xs:documentation>unique id corresponding with analysis_result elements</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-
-
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="dataset_derivation">
-				<xs:annotation>
-					<xs:documentation>Source and filtering criteria used to generate dataset</xs:documentation>
-				</xs:annotation>
-					<xs:complexType>
-						<xs:sequence minOccurs="0" maxOccurs="unbounded">
-							<xs:element name="data_filter">
-								<xs:complexType>
-									<xs:attribute name="number" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>generation number (0 is root)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-
-									<xs:attribute name="parent_file" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>File from which derived</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="windows_parent" type="xs:string"/>
-									<xs:attribute name="description" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>filtering criteria applied to data</xs:documentation>
-										</xs:annotation>
-	                                				</xs:attribute>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="generation_no" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>number preceding filter generations</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="protein_group" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="protein" maxOccurs="unbounded">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:anySimpleType">
-														<xs:attribute name="name" type="xs:string" use="required"/>
-														<xs:attribute name="value" type="xs:anySimpleType" use="required"/>
-														<xs:attribute name="type" type="xs:anySimpleType"/>
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="analysis_result" minOccurs="0" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:any namespace="##any" processContents="lax">
-														<xs:annotation>
-															<xs:documentation>wildcard to be substituted with element storing analysis-specific result info</xs:documentation>
-														</xs:annotation>
-													</xs:any>
-
-												</xs:sequence>
-												<xs:attribute name="analysis" type="xs:string" use="required">
-													<xs:annotation>
-														<xs:documentation>name of protein level analysis</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="id" type="xs:nonNegativeInteger" default="1">
-													<xs:annotation>
-														<xs:documentation>unique identifier to analysis_summary element</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="annotation" minOccurs="0">
-											<xs:complexType>
-												<xs:attribute name="protein_description" type="xs:string" use="required"/>
-												<xs:attribute name="ipi_name" type="xs:string"/>
-												<xs:attribute name="refseq_name" type="xs:string"/>
-												<xs:attribute name="swissprot_name" type="xs:string"/>
-												<xs:attribute name="ensembl_name" type="xs:string"/>
-												<xs:attribute name="trembl_name" type="xs:string"/>
-												<xs:attribute name="locus_link_name" type="xs:string"/>
-												<xs:attribute name="flybase" type="xs:string"/>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="indistinguishable_protein" minOccurs="0" maxOccurs="unbounded">
-										<xs:annotation>
-											<xs:documentation>other protein sharing corresponding peptides</xs:documentation>
-										</xs:annotation>
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="annotation" minOccurs="0">
-													<xs:annotation>
-														<xs:documentation>protein description</xs:documentation>
-													</xs:annotation>
-
-														<xs:complexType>
-															<xs:attribute name="protein_description" type="xs:string" use="required">
-																<xs:annotation>
-																	<xs:documentation>description</xs:documentation>
-																</xs:annotation>
-	                                										</xs:attribute>
-
-															<xs:attribute name="ipi_name" type="xs:string"/>
-															<xs:attribute name="refseq_name" type="xs:string"/>
-															<xs:attribute name="swissprot_name" type="xs:string"/>
-															<xs:attribute name="ensembl_name" type="xs:string"/>
-															<xs:attribute name="trembl_name" type="xs:string"/>
-															<xs:attribute name="locus_link_name" type="xs:string"/>
-															<xs:attribute name="flybase" type="xs:string"/>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-												<xs:attribute name="protein_name" type="xs:string" use="required"/>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="peptide" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:anySimpleType">
-																	<xs:attribute name="name" type="xs:string" use="required"/>
-																	<xs:attribute name="value" type="xs:anySimpleType" use="required"/>
-																	<xs:attribute name="type" type="xs:anySimpleType"/>
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-													<xs:element name="modification_info" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:sequence>
-																<xs:element name="mod_aminoacid_mass" minOccurs="0" maxOccurs="unbounded">
-																	<xs:complexType>
-																		<xs:attribute name="position" type="xs:string" use="required"/>
-																		<xs:attribute name="mass" type="xs:string" use="required"/>
-																	</xs:complexType>
-																</xs:element>
-															</xs:sequence>
-															<xs:attribute name="mod_nterm_mass" type="xs:string"/>
-															<xs:attribute name="mod_cterm_mass" type="xs:string"/>
-															<xs:attribute name="modified_peptide" type="xs:string"/>
-														</xs:complexType>
-													</xs:element>
-													<xs:element name="peptide_parent_protein" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:attribute name="protein_name" type="xs:string" use="required"/>
-														</xs:complexType>
-													</xs:element>
-													<xs:element name="indistinguishable_peptide" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:sequence>
-																<xs:element name="modification_info" minOccurs="0" maxOccurs="unbounded">
-																	<xs:complexType>
-																		<xs:sequence>
-																			<xs:element name="mod_aminoacid_mass" minOccurs="0" maxOccurs="unbounded">
-																				<xs:complexType>
-																					<xs:attribute name="position" type="xs:string" use="required"/>
-																					<xs:attribute name="mass" type="xs:string" use="required"/>
-																				</xs:complexType>
-																			</xs:element>
-																		</xs:sequence>
-																		<xs:attribute name="mod_nterm_mass" type="xs:string"/>
-																		<xs:attribute name="mod_cterm_mass" type="xs:string"/>
-																		<xs:attribute name="modified_peptide" type="xs:string"/>
-																	</xs:complexType>
-																</xs:element>
-															</xs:sequence>
-															<xs:attribute name="peptide_sequence" type="xs:string" use="required"/>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-												<xs:attribute name="peptide_sequence" type="xs:string" use="required">
-													<xs:annotation>
-														<xs:documentation>unmodified aa sequence</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="charge" type="xs:positiveInteger" use="required">
-													<xs:annotation>
-														<xs:documentation>precursor ion charge</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="initial_probability" type="xs:double" use="required">
-													<xs:annotation>
-														<xs:documentation>prior to nsp adjustment</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="nsp_adjusted_probability" type="xs:double" use="optional">
-													<xs:annotation>
-														<xs:documentation>after nsp adjustment</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="peptide_group_designator" type="xs:string">
-													<xs:annotation>
-														<xs:documentation>link to spectra with other precursor ion charges assigned to same peptide</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="weight" type="xs:double" default="1.0"/>
-												<xs:attribute name="is_nondegenerate_evidence" type="xs:string" use="required">
-													<xs:annotation>
-														<xs:documentation>confidence that peptide corresponds with this protein (rather than others in which it occurs)</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_enzymatic_termini" type="xs:nonNegativeInteger" use="required">
-													<xs:annotation>
-														<xs:documentation>number of termini consistent with proteolytic cleavage</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_sibling_peptides" type="xs:double">
-													<xs:annotation>
-														<xs:documentation>estimated number of sibling peptides (other identified peptides corresponding to same protein)</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_sibling_peptides_bin" type="xs:integer" default="0">
-													<xs:annotation>
-														<xs:documentation>discretized nsp value</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_instances" type="xs:integer" use="required">
-													<xs:annotation>
-														<xs:documentation>number of times peptide assigned to spectrum of precursor ion charge in dataset</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="calc_neutral_pep_mass" type="xs:double"/>
-												<xs:attribute name="is_contributing_evidence" type="xs:string" use="required"/>
-											</xs:complexType>
-										</xs:element>
-									</xs:sequence>
-									<xs:attribute name="protein_name" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>database protein name</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-
-									<xs:attribute name="probability" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>confidence of protein id</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="percent_coverage" type="xs:double">
-										<xs:annotation>
-											<xs:documentation>percent of protein sequence covered by corresponding peptides</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="n_indistinguishable_proteins" type="xs:integer" use="required">
-										<xs:annotation>
-											<xs:documentation>number of proteins with identical corresponding peptides</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="unique_stripped_peptides" type="xs:string"/>
-									<xs:attribute name="group_sibling_id" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>protein group id</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="total_number_peptides" type="xs:integer">
-										<xs:annotation>
-											<xs:documentation>total number of corresponding peptides that contributed to protein probability</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="subsuming_protein_entry" type="xs:string">
-										<xs:annotation>
-											<xs:documentation>name of portein containing all corresponding peptides, and more</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pct_spectrum_ids" type="xs:string">
-										<xs:annotation>
-											<xs:documentation>fraction of correct dataset peptide identifications corresponding to protein</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-								</xs:complexType>
-								<xs:unique name="unique_result_analysis_id">
-									<xs:annotation>
-										<xs:documentation>can only have one analysis/id combination within each protein element</xs:documentation>
-									</xs:annotation>
-
-									<xs:selector xpath="./protx:analysis_result"/>
-									<xs:field xpath="@analysis"/>
-									<xs:field xpath="@id"/>
-								</xs:unique>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="group_number" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>index</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="pseudo_name" type="xs:string"/>
-						<xs:attribute name="probability" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>group probability (taking contributions from all group member proteins)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-					<xs:unique name="unique_group_sibling_id">
-						<xs:annotation>
-							<xs:documentation>Each group_sibling_id must be unique within a protein group</xs:documentation>
-						</xs:annotation>
-						<xs:selector xpath="./protx:protein"/>
-						<xs:field xpath="@group_sibling_id"/>
-					</xs:unique>
-
-				</xs:element>
-			</xs:sequence>
-		<xs:attribute name="summary_xml" type="xs:string"/>
-		</xs:complexType>
-		<xs:key name="summary_analysis_id">
-			<xs:selector xpath="./protx:analysis_summary"/>
-			<xs:field xpath="@analysis"/>
-			<xs:field xpath="@id"/>
-		</xs:key>
-		<xs:keyref name="result_analysis_id" refer="summary_analysis_id">
-			<xs:annotation>
-				<xs:documentation>analysis and id must correspond with those fields in an analysis_summary element</xs:documentation>
-			</xs:annotation>
-			<xs:selector xpath="./protx:protein_group/protx:protein/protx:analysis_result"/>
-			<xs:field xpath="@analysis"/>
-			<xs:field xpath="@id"/>
-		</xs:keyref>
-		<xs:unique name="unique_group_number">
-			<xs:annotation>
-				<xs:documentation>Requires group numbers be unique for entire dataset</xs:documentation>
-			</xs:annotation>
-			<xs:selector xpath="./protx:protein_group"/>
-			<xs:field xpath="@group_number"/>
-		</xs:unique>
-	</xs:element>
-	<xs:element name="proteinprophet_details">
-		<xs:annotation>
-			<xs:documentation>ProteinProphet analysis details</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="nsp_information">
-					<xs:annotation>
-						<xs:documentation>learned distributions of estimated number of sibling peptides</xs:documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="nsp_distribution" maxOccurs="unbounded">
-								<xs:annotation>
-									<xs:documentation>histogram slice of estimated number of sibling peptides</xs:documentation>
-								</xs:annotation>
-								<xs:complexType>
-									<xs:attribute name="bin_no" type="xs:integer" use="required">
-										<xs:annotation>
-											<xs:documentation>discretized bin number</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="nsp_lower_bound_incl" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>lower bound nsp value (inclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="nsp_upper_bound_excl" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>upper bound nsp value (exclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pos_freq" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of correct peptides in bin</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="neg_freq" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of incorrect peptides in bin</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pos_to_neg_ratio" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of correct / fraction of incorrect</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="alt_pos_to_neg_ratio" type="xs:double">
-										<xs:annotation>
-											<xs:documentation>pos_to_neg_ratio of preceding bin (if greater than that of current bin)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="neighboring_bin_smoothing" type="xs:string" use="required"/>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="protein_summary_data_filter" maxOccurs="unbounded">
-					<xs:annotation>
-						<xs:documentation>predicted error/sensitivity for filtering at minimum probability</xs:documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:attribute name="min_probability" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>filter setting</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="sensitivity" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>predicted sensitivity (fraction of correct results passing filter)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="false_positive_error_rate" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>predicted error rate (fraction of results passing filter than are incorrect)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="predicted_num_correct" type="xs:double">
-							<xs:annotation>
-								<xs:documentation>predicted number of correct results passing filter</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="predicted_num_incorrect" type="xs:double">
-							<xs:annotation>
-								<xs:documentation>predicted number of incorrect results passing filter</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="occam_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not occams razor was used to apportion peptides corresponding to multiple proteins</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="groups_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not related proteins are organized together in common protein groups</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="degen_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not all proteins corresponding to each identified peptide were used in analysis</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="nsp_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not peptide probabilities were adjusted for estimated number of sibling peptides</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="initial_peptide_wt_iters" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>proteinprophet number of initial iterations to compute peptide weights</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="nsp_distribution_iters" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>proteinprophet number of interations used to compute nsp distributions</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="final_peptide_wt_iters" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>proteinprophet number of final interations used to compute final peptide weights</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="run_options" type="xs:string">
-				<xs:annotation>
-					<xs:documentation>special run options</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="XPress_analysis_summary">
-		<xs:complexType>
-			<xs:attribute name="min_peptide_probability" type="xs:double" use="required"/>
-			<xs:attribute name="min_peptide_weight" type="xs:double" use="required"/>
-			<xs:attribute name="min_protein_probability" type="xs:double" use="required"/>
-			<xs:attribute name="reference_isotope" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="ASAP_prot_analysis_summary">
-		<xs:complexType>
-			<xs:attribute name="version" type="xs:string"/>
-			<xs:attribute name="binary_ref_files" type="xs:string"/>
-			<xs:attribute name="min_peptide_probability" type="xs:double" use="required"/>
-			<xs:attribute name="min_peptide_weight" type="xs:double" use="required"/>
-			<xs:attribute name="min_protein_probability" type="xs:double" use="required"/>
-			<xs:attribute name="reference_isotope" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="ASAP_pvalue_analysis_summary">
-		<xs:complexType>
-			<xs:attribute name="asapratio_id" type="xs:nonNegativeInteger" default="1"/>
-			<xs:attribute name="background_ratio_mean" type="xs:double" use="required"/>
-			<xs:attribute name="background_ratio_stdev" type="xs:double" use="required"/>
-			<xs:attribute name="background_fitting_error" type="xs:double" use="required"/>
-			<xs:attribute name="analysis_distribution_file" type="xs:string" use="required"/>
-			<xs:attribute name="full_analysis_distr_file" type="xs:string"/>
-			<xs:attribute name="asap_prot_id" type="xs:nonNegativeInteger" default="1"/>
-		</xs:complexType>
-	</xs:element>
-
-
-	<xs:simpleType name="positiveInt">
-		<xs:restriction base="xs:unsignedInt">
-			<xs:minInclusive value="1"/>
-		</xs:restriction>
-	</xs:simpleType>
-   	<xs:element name="libra_result">
-      	<xs:complexType>
-         	<xs:sequence>
-            	<xs:element name="intensity" maxOccurs="unbounded">
-               		<xs:complexType>
-                  		<xs:attribute name="mz" type="xs:float" use="required"/> 
-                  		<xs:attribute name="ratio" type="xs:float" use="required"/>
-                  		<xs:attribute name="error" type="xs:float" use="required"/>
-               		</xs:complexType>
-            	</xs:element>
-         	</xs:sequence>
-                 <xs:attribute name="number" type="xs:nonNegativeInteger" use="required"/>
-      	</xs:complexType>
-	<xs:unique name="libra_result_channel_index">
-		<xs:selector xpath="."/>
-		<xs:field xpath="@channel"/>
-	</xs:unique>
-
-
-   	</xs:element>
-      	<xs:element name="libra_summary">
-      	<xs:complexType>
-         	<xs:sequence>
-            	<xs:element name="fragment_masses" maxOccurs="unbounded">
-               	<xs:complexType>
-                  	<xs:attribute name="channel" type="positiveInt" use="required"/>
-                  	<xs:attribute name="mz" type="xs:float" use="required"/>
-               	</xs:complexType>
-            	</xs:element>
-            	<xs:element name="isotopic_contributions" minOccurs="0">
-               	<xs:complexType>
-                  	<xs:sequence>
-                     	<xs:element name="contributing_channel" maxOccurs="unbounded">
-                        	<xs:complexType>
-                           	<xs:sequence>
-                              	<xs:element name="affected_channel" maxOccurs="unbounded">
-                                 	<xs:complexType>
-                                    	<xs:attribute name="channel" type="positiveInt" use="required"/>
-                                    	<xs:attribute name="correction" type="xs:float" use="required"/>
-                                 	</xs:complexType>
-                              	</xs:element>
-                           	</xs:sequence>
-                           	<xs:attribute name="channel" type="positiveInt" use="required"/>
-                        	</xs:complexType>
-                     	</xs:element>
-                  	</xs:sequence>
-               	</xs:complexType>
-            	</xs:element>
-         	</xs:sequence>
-         	<xs:attribute name="mass_tolerance" type="xs:float" use="required"/>
-         	<xs:attribute name="centroiding_preference" type="xs:int" use="required"/>
-         	<xs:attribute name="normalization" type="xs:int" use="required"/>
-         	<xs:attribute name="output_type" type="xs:int" use="required"/>
-         	<xs:attribute name="channel_code" type="xs:string"/>
-        	<xs:attribute name="min_pep_prob" type="xs:float" use="required"/>
-         	<xs:attribute name="min_pep_wt" type="xs:float" use="required"/>
-         	<xs:attribute name="min_prot_prob" type="xs:float" use="required"/>
-      	</xs:complexType>
-
-	<xs:key name="libra_channel_index">
-		<xs:selector xpath="./protx:fragment_masses"/>
-		<xs:field xpath="@channel"/>
-	</xs:key>
-	<xs:keyref name="libra_contr_channel_index_ref" refer="libra_channel_index">
-		<xs:selector xpath="./protx:isotopic_contributions/protx:contributing_channel"/>
-		<xs:field xpath="@channel"/>
-	</xs:keyref>
-	<xs:keyref name="libra_aff_channel_index_ref" refer="libra_channel_index">
-		<xs:selector xpath="./protx:isotopic_contributions/protx:contributing_channel/protx:affected_channel"/>
-		<xs:field xpath="@channel"/>
-	</xs:keyref>
-
-   	</xs:element>
-</xs:schema>
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/protXML_v5.xsd b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/protXML_v5.xsd
deleted file mode 100644
index 28d1a5eaaf371807abb517ee569945ad0f800d52..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/protXML_v5.xsd
+++ /dev/null
@@ -1,934 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Wei Yan (Institute for Systems Biology) -->
-<!--W3C Schema generated by XMLSPY v2004 rel. 4 U (http://www.xmlspy.com)-->
-<xs:schema targetNamespace="http://regis-web.systemsbiology.net/protXML" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://regis-web.systemsbiology.net/protXML" xmlns:protx="http://regis-web.systemsbiology.net/protXML" elementFormDefault="qualified">
-	<xs:element name="ASAPRatio_pvalue">
-	<xs:annotation>
-		<xs:documentation>Results of ASAPRatio pvalue analysis (adjusting ASAPRatio ratios for offset of dataset, and determining whether ratios are significantly different from chance values originating from 1:1 proteins)</xs:documentation>
-	</xs:annotation>
-		<xs:complexType>
-			<xs:attribute name="adj_ratio_mean" type="xs:double" use="required">
-				<xs:annotation>
-					<xs:documentation>Ratio adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="adj_ratio_standard_dev" type="xs:double" use="required">
-				<xs:annotation>
-					<xs:documentation>Error adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="heavy2light_adj_ratio_mean" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>Heavy2light ratio adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="heavy2light_adj_ratio_standard_dev" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>Heavy2light error adjusted for dataset mean value</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="pvalue" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>pvalue (probability of ratio due by chance to 1:1 protein)</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="decimal_pvalue" type="xs:double">
-				<xs:annotation>
-					<xs:documentation>decimal representation of pvalue</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="ASAPRatio">
-	<xs:annotation>
-		<xs:documentation>Results of ASAPRatio quantitation of protein</xs:documentation>
-	</xs:annotation>
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="ASAP_Seq" minOccurs="0" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="ASAP_Peak" maxOccurs="unbounded">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:element name="ASAP_Dta" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:attribute name="peptide_index" type="xs:string" use="required"/>
-												<xs:attribute name="include" type="xs:string" use="required"/>
-											</xs:complexType>
-										</xs:element>
-									</xs:sequence>
-									<xs:attribute name="status" type="xs:string" use="required"/>
-									<xs:attribute name="include" type="xs:string" use="required"/>
-									<xs:attribute name="datanum" type="xs:nonNegativeInteger" use="required"/>
-									<xs:attribute name="ratio_mean" type="xs:double" use="required"/>
-									<xs:attribute name="ratio_standard_dev" type="xs:double" use="required"/>
-									<xs:attribute name="heavy2light_ratio_mean" type="xs:double" use="required"/>	
-									<xs:attribute name="heavy2light_ratio_standard_dev" type="xs:double" use="required"/>
-									<xs:attribute name="weight" type="xs:double" use="required"/>
-									<xs:attribute name="peptide_binary_ind" type="xs:string" use="required"/>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="status" type="xs:string" use="required"/>
-						<xs:attribute name="include" type="xs:string" use="required"/>
-						<xs:attribute name="datanum" type="xs:nonNegativeInteger" use="required"/>
-						<xs:attribute name="ratio_mean" type="xs:double" use="required"/>
-						<xs:attribute name="ratio_standard_dev" type="xs:double" use="required"/>
-						<xs:attribute name="heavy2light_ratio_mean" type="xs:double" use="required"/>		
-						<xs:attribute name="heavy2light_ratio_standard_dev" type="xs:double" use="required"/>
-						<xs:attribute name="weight" type="xs:double" use="required"/>
-						<xs:attribute name="light_sequence" type="xs:string" use="required"/>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="ratio_mean" type="xs:double" use="required"/>
-			<xs:attribute name="ratio_standard_dev" type="xs:double" use="required"/>
-			<xs:attribute name="ratio_number_peptides" type="xs:nonNegativeInteger" use="required"/>
-			<xs:attribute name="heavy2light_ratio_mean" type="xs:double"/>
-			<xs:attribute name="heavy2light_ratio_standard_dev" type="xs:double"/>
-			<xs:attribute name="description" type="xs:string"/>
-			<xs:attribute name="status" type="xs:string"/>
-			<xs:attribute name="peptide_inds" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="protein_summary">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="protein_summary_header">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="program_details">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:any namespace="##any" processContents="lax" minOccurs="0">
-											<xs:annotation>
-												<xs:documentation>Wildcard for summary info customized for a particular analysis used to infer protein identifications</xs:documentation>
-											</xs:annotation>
-										</xs:any>
-									</xs:sequence>
-									<xs:attribute name="analysis" type="xs:string" use="required">
-											<xs:annotation>
-												<xs:documentation>Name of analysis used for protein identifications</xs:documentation>
-											</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="time" type="xs:dateTime" use="required">
-											<xs:annotation>
-												<xs:documentation>Time of analysis</xs:documentation>
-											</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="version" type="xs:string"/>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="reference_database" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>full path database name</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="win-cyg_reference_database" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>windows full path database</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="residue_substitution_list" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>residues considered equivalent when comparing peptides</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="organism" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>sample organism (used for annotation purposes)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="source_files" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>input pepXML files</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="source_files_alt" type="xs:string" use="required"/>
-						<xs:attribute name="win-cyg_source_files" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>windows pepXML file names</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="source_file_xtn" type="xs:string">
-							<xs:annotation>
-								<xs:documentation>file type (if not pepXML)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="min_peptide_probability" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>minimum adjusted peptide probability contributing to protein probability</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="min_peptide_weight" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>minimum peptide weight contributing to protein probability</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_predicted_correct_prots" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>total number of predicted correct protein ids (sum of probabilities)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_1_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 1+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_2_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 2+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_3_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 3+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_4_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 4+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="num_input_5_spectra" type="xs:integer" use="required">
-							<xs:annotation>
-								<xs:documentation>number of spectra from 5+ precursor ions</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="initial_min_peptide_prob" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>minimum initial peptide probability to contribute to analysis</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="total_no_spectrum_ids" type="xs:double">
-							<xs:annotation>
-								<xs:documentation>total estimated number of correct peptide assignments in dataset</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="sample_enzyme" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>enzyme applied to sample prior to MS/MS</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="analysis_summary" minOccurs="0" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:any namespace="##any" processContents="lax" minOccurs="0">
-								<xs:annotation>
-									<xs:documentation>time of analysis</xs:documentation>
-								</xs:annotation>
-							</xs:any>
-						</xs:sequence>
-						<xs:attribute name="analysis" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>name of protein-level analysis</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-
-						<xs:attribute name="time" type="xs:dateTime" use="required">
-							<xs:annotation>
-								<xs:documentation>time of analysis</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-
-						<xs:attribute name="id" type="xs:nonNegativeInteger" use="required">
-							<xs:annotation>
-								<xs:documentation>unique id corresponding with analysis_result elements</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-
-
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="dataset_derivation">
-				<xs:annotation>
-					<xs:documentation>Source and filtering criteria used to generate dataset</xs:documentation>
-				</xs:annotation>
-					<xs:complexType>
-						<xs:sequence minOccurs="0" maxOccurs="unbounded">
-							<xs:element name="data_filter">
-								<xs:complexType>
-									<xs:attribute name="number" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>generation number (0 is root)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-
-									<xs:attribute name="parent_file" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>File from which derived</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="windows_parent" type="xs:string"/>
-									<xs:attribute name="description" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>filtering criteria applied to data</xs:documentation>
-										</xs:annotation>
-	                                				</xs:attribute>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="generation_no" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>number preceding filter generations</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="protein_group" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="protein" maxOccurs="unbounded">
-								<xs:complexType>
-									<xs:sequence>
-										<!-- note: nameValueType defined below -->
-										<xs:element name="parameter" type="nameValueType" minOccurs="0" maxOccurs="unbounded"/>
-										<xs:element name="analysis_result" minOccurs="0" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:any namespace="##any" processContents="lax">
-														<xs:annotation>
-															<xs:documentation>wildcard to be substituted with element storing analysis-specific result info</xs:documentation>
-														</xs:annotation>
-													</xs:any>
-
-												</xs:sequence>
-												<xs:attribute name="analysis" type="xs:string" use="required">
-													<xs:annotation>
-														<xs:documentation>name of protein level analysis</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="id" type="xs:nonNegativeInteger" default="1">
-													<xs:annotation>
-														<xs:documentation>unique identifier to analysis_summary element</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="annotation" minOccurs="0">
-											<xs:complexType>
-												<xs:attribute name="protein_description" type="xs:string" use="required"/>
-												<xs:attribute name="ipi_name" type="xs:string"/>
-												<xs:attribute name="refseq_name" type="xs:string"/>
-												<xs:attribute name="swissprot_name" type="xs:string"/>
-												<xs:attribute name="ensembl_name" type="xs:string"/>
-												<xs:attribute name="trembl_name" type="xs:string"/>
-												<xs:attribute name="locus_link_name" type="xs:string"/>
-												<xs:attribute name="flybase" type="xs:string"/>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="indistinguishable_protein" minOccurs="0" maxOccurs="unbounded">
-										<xs:annotation>
-											<xs:documentation>other protein sharing corresponding peptides</xs:documentation>
-										</xs:annotation>
-											<xs:complexType>
-												<xs:sequence>
-													<!-- note: nameValueType defined below -->
-													<xs:element name="parameter" type="nameValueType" minOccurs="0" maxOccurs="unbounded"/>
-													<xs:element name="annotation" minOccurs="0">
-													<xs:annotation>
-														<xs:documentation>protein description</xs:documentation>
-													</xs:annotation>
-
-														<xs:complexType>
-															<xs:attribute name="protein_description" type="xs:string" use="required">
-																<xs:annotation>
-																	<xs:documentation>description</xs:documentation>
-																</xs:annotation>
-	                                										</xs:attribute>
-
-															<xs:attribute name="ipi_name" type="xs:string"/>
-															<xs:attribute name="refseq_name" type="xs:string"/>
-															<xs:attribute name="swissprot_name" type="xs:string"/>
-															<xs:attribute name="ensembl_name" type="xs:string"/>
-															<xs:attribute name="trembl_name" type="xs:string"/>
-															<xs:attribute name="locus_link_name" type="xs:string"/>
-															<xs:attribute name="flybase" type="xs:string"/>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-												<xs:attribute name="protein_name" type="xs:string" use="required"/>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="peptide" maxOccurs="unbounded">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:anySimpleType">
-																	<xs:attribute name="name" type="xs:string" use="required"/>
-																	<xs:attribute name="value" type="xs:anySimpleType" use="required"/>
-																	<xs:attribute name="type" type="xs:anySimpleType"/>
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-													<xs:element name="modification_info" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:sequence>
-																<xs:element name="mod_aminoacid_mass" minOccurs="0" maxOccurs="unbounded">
-																	<xs:complexType>
-																		<xs:attribute name="position" type="xs:string" use="required"/>
-																		<xs:attribute name="mass" type="xs:string" use="required"/>
-																	</xs:complexType>
-																</xs:element>
-															</xs:sequence>
-															<xs:attribute name="mod_nterm_mass" type="xs:string"/>
-															<xs:attribute name="mod_cterm_mass" type="xs:string"/>
-															<xs:attribute name="modified_peptide" type="xs:string"/>
-														</xs:complexType>
-													</xs:element>
-													<xs:element name="peptide_parent_protein" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:attribute name="protein_name" type="xs:string" use="required"/>
-														</xs:complexType>
-													</xs:element>
-													<xs:element name="indistinguishable_peptide" minOccurs="0" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:sequence>
-																<xs:element name="modification_info" minOccurs="0" maxOccurs="unbounded">
-																	<xs:complexType>
-																		<xs:sequence>
-																			<xs:element name="mod_aminoacid_mass" minOccurs="0" maxOccurs="unbounded">
-																				<xs:complexType>
-																					<xs:attribute name="position" type="xs:string" use="required"/>
-																					<xs:attribute name="mass" type="xs:string" use="required"/>
-																				</xs:complexType>
-																			</xs:element>
-																		</xs:sequence>
-																		<xs:attribute name="mod_nterm_mass" type="xs:string"/>
-																		<xs:attribute name="mod_cterm_mass" type="xs:string"/>
-																		<xs:attribute name="modified_peptide" type="xs:string"/>
-																	</xs:complexType>
-																</xs:element>
-															</xs:sequence>
-															<xs:attribute name="peptide_sequence" type="xs:string" use="required"/>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-												<xs:attribute name="peptide_sequence" type="xs:string" use="required">
-													<xs:annotation>
-														<xs:documentation>unmodified aa sequence</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="charge" type="xs:positiveInteger" use="required">
-													<xs:annotation>
-														<xs:documentation>precursor ion charge</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="initial_probability" type="xs:double" use="required">
-													<xs:annotation>
-														<xs:documentation>prior to nsp adjustment</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="nsp_adjusted_probability" type="xs:double" use="optional">
-													<xs:annotation>
-														<xs:documentation>after nsp adjustment</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="ni_adjusted_probability" type="xs:double" use="optional">
-													<xs:annotation>
-														<xs:documentation>after ni adjustment</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="exp_sibling_ion_instances" type="xs:double" use="optional">
-													<xs:annotation>
-														<xs:documentation>expected sibling ion instances</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="exp_sibling_ion_bin" type="xs:double" use="optional">
-													<xs:annotation>
-														<xs:documentation>expected sibling ion bin</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="exp_tot_instances" type="xs:double" use="optional">
-													<xs:annotation>
-														<xs:documentation>expected total instances</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="peptide_group_designator" type="xs:string">
-													<xs:annotation>
-														<xs:documentation>link to spectra with other precursor ion charges assigned to same peptide</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="weight" type="xs:double" default="1.0"/>
-												<xs:attribute name="is_nondegenerate_evidence" type="xs:string" use="required">
-													<xs:annotation>
-														<xs:documentation>confidence that peptide corresponds with this protein (rather than others in which it occurs)</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_enzymatic_termini" type="xs:nonNegativeInteger" use="required">
-													<xs:annotation>
-														<xs:documentation>number of termini consistent with proteolytic cleavage</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_sibling_peptides" type="xs:double">
-													<xs:annotation>
-														<xs:documentation>estimated number of sibling peptides (other identified peptides corresponding to same protein)</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_sibling_peptides_bin" type="xs:integer" default="0">
-													<xs:annotation>
-														<xs:documentation>discretized nsp value</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="n_instances" type="xs:integer" use="required">
-													<xs:annotation>
-														<xs:documentation>number of times peptide assigned to spectrum of precursor ion charge in dataset</xs:documentation>
-													</xs:annotation>
-												</xs:attribute>
-
-												<xs:attribute name="calc_neutral_pep_mass" type="xs:double"/>
-												<xs:attribute name="is_contributing_evidence" type="xs:string" use="required"/>
-											</xs:complexType>
-										</xs:element>
-									</xs:sequence>
-									<xs:attribute name="protein_name" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>database protein name</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-
-									<xs:attribute name="probability" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>confidence of protein id</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="percent_coverage" type="xs:double">
-										<xs:annotation>
-											<xs:documentation>percent of protein sequence covered by corresponding peptides</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="n_indistinguishable_proteins" type="xs:integer" use="required">
-										<xs:annotation>
-											<xs:documentation>number of proteins with identical corresponding peptides</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="unique_stripped_peptides" type="xs:string"/>
-									<xs:attribute name="group_sibling_id" type="xs:string" use="required">
-										<xs:annotation>
-											<xs:documentation>protein group id</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="total_number_peptides" type="xs:integer">
-										<xs:annotation>
-											<xs:documentation>total number of corresponding peptides that contributed to protein probability</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="subsuming_protein_entry" type="xs:string">
-										<xs:annotation>
-											<xs:documentation>name of portein containing all corresponding peptides, and more</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pct_spectrum_ids" type="xs:string">
-										<xs:annotation>
-											<xs:documentation>fraction of correct dataset peptide identifications corresponding to protein</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-								</xs:complexType>
-								<xs:unique name="unique_result_analysis_id">
-									<xs:annotation>
-										<xs:documentation>can only have one analysis/id combination within each protein element</xs:documentation>
-									</xs:annotation>
-
-									<xs:selector xpath="./protx:analysis_result"/>
-									<xs:field xpath="@analysis"/>
-									<xs:field xpath="@id"/>
-								</xs:unique>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="group_number" type="xs:string" use="required">
-							<xs:annotation>
-								<xs:documentation>index</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="pseudo_name" type="xs:string"/>
-						<xs:attribute name="probability" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>group probability (taking contributions from all group member proteins)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-					<xs:unique name="unique_group_sibling_id">
-						<xs:annotation>
-							<xs:documentation>Each group_sibling_id must be unique within a protein group</xs:documentation>
-						</xs:annotation>
-						<xs:selector xpath="./protx:protein"/>
-						<xs:field xpath="@group_sibling_id"/>
-					</xs:unique>
-
-				</xs:element>
-			</xs:sequence>
-		<xs:attribute name="summary_xml" type="xs:string"/>
-		</xs:complexType>
-		<xs:key name="summary_analysis_id">
-			<xs:selector xpath="./protx:analysis_summary"/>
-			<xs:field xpath="@analysis"/>
-			<xs:field xpath="@id"/>
-		</xs:key>
-		<xs:keyref name="result_analysis_id" refer="summary_analysis_id">
-			<xs:annotation>
-				<xs:documentation>analysis and id must correspond with those fields in an analysis_summary element</xs:documentation>
-			</xs:annotation>
-			<xs:selector xpath="./protx:protein_group/protx:protein/protx:analysis_result"/>
-			<xs:field xpath="@analysis"/>
-			<xs:field xpath="@id"/>
-		</xs:keyref>
-		<xs:unique name="unique_group_number">
-			<xs:annotation>
-				<xs:documentation>Requires group numbers be unique for entire dataset</xs:documentation>
-			</xs:annotation>
-			<xs:selector xpath="./protx:protein_group"/>
-			<xs:field xpath="@group_number"/>
-		</xs:unique>
-	</xs:element>
-	<xs:element name="proteinprophet_details">
-		<xs:annotation>
-			<xs:documentation>ProteinProphet analysis details</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="nsp_information">
-					<xs:annotation>
-						<xs:documentation>learned distributions of estimated number of sibling peptides</xs:documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="nsp_distribution" maxOccurs="unbounded">
-								<xs:annotation>
-									<xs:documentation>histogram slice of estimated number of sibling peptides</xs:documentation>
-								</xs:annotation>
-								<xs:complexType>
-									<xs:attribute name="bin_no" type="xs:integer" use="required">
-										<xs:annotation>
-											<xs:documentation>discretized bin number</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="nsp_lower_bound_incl" type="xs:double" use="optional">
-										<xs:annotation>
-											<xs:documentation>lower bound nsp value (inclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="nsp_upper_bound_excl" type="xs:string" use="optional">
-										<xs:annotation>
-											<xs:documentation>upper bound nsp value (exclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="nsp_lower_bound_excl" type="xs:double" use="optional">
-										<xs:annotation>
-											<xs:documentation>lower bound nsp value (exclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="nsp_upper_bound_incl" type="xs:string" use="optional">
-										<xs:annotation>
-											<xs:documentation>upper bound nsp value (inclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pos_freq" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of correct peptides in bin</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="neg_freq" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of incorrect peptides in bin</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pos_to_neg_ratio" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of correct / fraction of incorrect</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="alt_pos_to_neg_ratio" type="xs:double">
-										<xs:annotation>
-											<xs:documentation>pos_to_neg_ratio of preceding bin (if greater than that of current bin)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute name="neighboring_bin_smoothing" type="xs:string" use="required"/>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="ni_information">
-					<xs:annotation>
-						<xs:documentation>learned distributions of estimated number of peptide instances ("number of instances")</xs:documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="ni_distribution" maxOccurs="unbounded">
-								<xs:annotation>
-									<xs:documentation>histogram slice of estimated number of sibling peptides</xs:documentation>
-								</xs:annotation>
-								<xs:complexType>
-									<xs:attribute name="bin_no" type="xs:integer" use="required">
-										<xs:annotation>
-											<xs:documentation>discretized bin number</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="ni_lower_bound_incl" type="xs:double" use="optional">
-										<xs:annotation>
-											<xs:documentation>lower bound nsp value (inclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="ni_upper_bound_excl" type="xs:string" use="optional">
-										<xs:annotation>
-											<xs:documentation>upper bound nsp value (exclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="ni_lower_bound_excl" type="xs:double" use="optional">
-										<xs:annotation>
-											<xs:documentation>lower bound nsp value (exclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="ni_upper_bound_incl" type="xs:string" use="optional">
-										<xs:annotation>
-											<xs:documentation>upper bound nsp value (inclusive)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pos_freq" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of correct peptides in bin</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="neg_freq" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of incorrect peptides in bin</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="pos_to_neg_ratio" type="xs:double" use="required">
-										<xs:annotation>
-											<xs:documentation>fraction of correct / fraction of incorrect</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-									<xs:attribute name="alt_pos_to_neg_ratio" type="xs:double">
-										<xs:annotation>
-											<xs:documentation>pos_to_neg_ratio of preceding bin (if greater than that of current bin)</xs:documentation>
-										</xs:annotation>
-									</xs:attribute>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<!-- 
-							<xs:attribute name="neighboring_bin_smoothing" type="xs:string" use="required"/>
-						-->
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="protein_summary_data_filter" maxOccurs="unbounded">
-					<xs:annotation>
-						<xs:documentation>predicted error/sensitivity for filtering at minimum probability</xs:documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:attribute name="min_probability" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>filter setting</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="sensitivity" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>predicted sensitivity (fraction of correct results passing filter)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="false_positive_error_rate" type="xs:double" use="required">
-							<xs:annotation>
-								<xs:documentation>predicted error rate (fraction of results passing filter than are incorrect)</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="predicted_num_correct" type="xs:double">
-							<xs:annotation>
-								<xs:documentation>predicted number of correct results passing filter</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-						<xs:attribute name="predicted_num_incorrect" type="xs:double">
-							<xs:annotation>
-								<xs:documentation>predicted number of incorrect results passing filter</xs:documentation>
-							</xs:annotation>
-						</xs:attribute>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="occam_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not occams razor was used to apportion peptides corresponding to multiple proteins</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="groups_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not related proteins are organized together in common protein groups</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="degen_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not all proteins corresponding to each identified peptide were used in analysis</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="nsp_flag" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>whether or not peptide probabilities were adjusted for estimated number of sibling peptides</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="initial_peptide_wt_iters" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>proteinprophet number of initial iterations to compute peptide weights</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="nsp_distribution_iters" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>proteinprophet number of interations used to compute nsp distributions</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="final_peptide_wt_iters" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>proteinprophet number of final interations used to compute final peptide weights</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="run_options" type="xs:string">
-				<xs:annotation>
-					<xs:documentation>special run options</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="XPress_analysis_summary">
-		<xs:complexType>
-			<xs:attribute name="min_peptide_probability" type="xs:double" use="required"/>
-			<xs:attribute name="min_peptide_weight" type="xs:double" use="required"/>
-			<xs:attribute name="min_protein_probability" type="xs:double" use="required"/>
-			<xs:attribute name="reference_isotope" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="ASAP_prot_analysis_summary">
-		<xs:complexType>
-			<xs:attribute name="version" type="xs:string"/>
-			<xs:attribute name="binary_ref_files" type="xs:string"/>
-			<xs:attribute name="min_peptide_probability" type="xs:double" use="required"/>
-			<xs:attribute name="min_peptide_weight" type="xs:double" use="required"/>
-			<xs:attribute name="min_protein_probability" type="xs:double" use="required"/>
-			<xs:attribute name="reference_isotope" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="ASAP_pvalue_analysis_summary">
-		<xs:complexType>
-			<xs:attribute name="asapratio_id" type="xs:nonNegativeInteger" default="1"/>
-			<xs:attribute name="background_ratio_mean" type="xs:double" use="required"/>
-			<xs:attribute name="background_ratio_stdev" type="xs:double" use="required"/>
-			<xs:attribute name="background_fitting_error" type="xs:double" use="required"/>
-			<xs:attribute name="analysis_distribution_file" type="xs:string" use="required"/>
-			<xs:attribute name="full_analysis_distr_file" type="xs:string"/>
-			<xs:attribute name="asap_prot_id" type="xs:nonNegativeInteger" default="1"/>
-		</xs:complexType>
-	</xs:element>
-
-
-	<xs:simpleType name="positiveInt">
-		<xs:restriction base="xs:unsignedInt">
-			<xs:minInclusive value="1"/>
-		</xs:restriction>
-	</xs:simpleType>
-   	<xs:element name="libra_result">
-      	<xs:complexType>
-         	<xs:sequence>
-            	<xs:element name="intensity" maxOccurs="unbounded">
-               		<xs:complexType>
-                  		<xs:attribute name="mz" type="xs:float" use="required"/> 
-                  		<xs:attribute name="ratio" type="xs:float" use="required"/>
-                  		<xs:attribute name="error" type="xs:float" use="required"/>
-               		</xs:complexType>
-            	</xs:element>
-         	</xs:sequence>
-                 <xs:attribute name="number" type="xs:nonNegativeInteger" use="required"/>
-      	</xs:complexType>
-	<xs:unique name="libra_result_channel_index">
-		<xs:selector xpath="."/>
-		<xs:field xpath="@channel"/>
-	</xs:unique>
-
-
-   	</xs:element>
-      	<xs:element name="libra_summary">
-      	<xs:complexType>
-         	<xs:sequence>
-            	<xs:element name="fragment_masses" maxOccurs="unbounded">
-               	<xs:complexType>
-                  	<xs:attribute name="channel" type="positiveInt" use="required"/>
-                  	<xs:attribute name="mz" type="xs:float" use="required"/>
-               	</xs:complexType>
-            	</xs:element>
-            	<xs:element name="isotopic_contributions" minOccurs="0">
-               	<xs:complexType>
-                  	<xs:sequence>
-                     	<xs:element name="contributing_channel" maxOccurs="unbounded">
-                        	<xs:complexType>
-                           	<xs:sequence>
-                              	<xs:element name="affected_channel" maxOccurs="unbounded">
-                                 	<xs:complexType>
-                                    	<xs:attribute name="channel" type="positiveInt" use="required"/>
-                                    	<xs:attribute name="correction" type="xs:float" use="required"/>
-                                 	</xs:complexType>
-                              	</xs:element>
-                           	</xs:sequence>
-                           	<xs:attribute name="channel" type="positiveInt" use="required"/>
-                        	</xs:complexType>
-                     	</xs:element>
-                  	</xs:sequence>
-               	</xs:complexType>
-            	</xs:element>
-         	</xs:sequence>
-         	<xs:attribute name="mass_tolerance" type="xs:float" use="required"/>
-         	<xs:attribute name="centroiding_preference" type="xs:int" use="required"/>
-         	<xs:attribute name="normalization" type="xs:int" use="required"/>
-         	<xs:attribute name="output_type" type="xs:int" use="required"/>
-         	<xs:attribute name="channel_code" type="xs:string"/>
-        	<xs:attribute name="min_pep_prob" type="xs:float" use="required"/>
-         	<xs:attribute name="min_pep_wt" type="xs:float" use="required"/>
-         	<xs:attribute name="min_prot_prob" type="xs:float" use="required"/>
-      	</xs:complexType>
-
-	<xs:key name="libra_channel_index">
-		<xs:selector xpath="./protx:fragment_masses"/>
-		<xs:field xpath="@channel"/>
-	</xs:key>
-	<xs:keyref name="libra_contr_channel_index_ref" refer="libra_channel_index">
-		<xs:selector xpath="./protx:isotopic_contributions/protx:contributing_channel"/>
-		<xs:field xpath="@channel"/>
-	</xs:keyref>
-	<xs:keyref name="libra_aff_channel_index_ref" refer="libra_channel_index">
-		<xs:selector xpath="./protx:isotopic_contributions/protx:contributing_channel/protx:affected_channel"/>
-		<xs:field xpath="@channel"/>
-	</xs:keyref>
-
-   	</xs:element>
-
-	<!-- a loosely-defined, general-purpose type used in the "parameter" element, defined above -->
-	<xs:complexType name="nameValueType">
-		<xs:simpleContent>
-			<xs:extension base="xs:anySimpleType">
-				<xs:attribute name="name" type="xs:string" use="required"/>
-				<xs:attribute name="value" type="xs:anySimpleType" use="required"/>
-				<xs:attribute name="type" type="xs:anySimpleType"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-
-
-</xs:schema>
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/BuildAndEnvironmentInfo.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/BuildAndEnvironmentInfo.java
deleted file mode 100644
index 816e57b8fd76a757acc08bd168be33bc03a34049..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/BuildAndEnvironmentInfo.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics;
-
-import ch.systemsx.cisd.base.utilities.AbstractBuildAndEnvironmentInfo;
-
-/**
- * The build and environment information for PhosphoNetX.
- *
- * @author Franz-Josef Elmer
- */
-public class BuildAndEnvironmentInfo extends AbstractBuildAndEnvironmentInfo
-{
-    private final static String BASE = "rtd_phosphonetx";
-
-    public final static BuildAndEnvironmentInfo INSTANCE = new BuildAndEnvironmentInfo();
-
-    private BuildAndEnvironmentInfo()
-    {
-        super(BASE);
-    }
-
-    /**
-     * Shows build and environment information on the console.
-     */
-    public static void main(String[] args)
-    {
-        System.out.println(INSTANCE);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/OpenBIS.gwt.xml b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/OpenBIS.gwt.xml
deleted file mode 100644
index 338a32080d03d7466bf81320a77a85e385503c8e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/OpenBIS.gwt.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<module>
-    <inherits name='ch.systemsx.cisd.openbis.OpenBIS-without-entry-point'/>
-    
-    <!--
-        // Application entry point 
-     -->    
-    <entry-point class='ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.PhosphoNetXClient' />
-    
-    <script src="proteomics-dictionary.js"/>
-    <public path="client/web/public"/>
-    <source path="client/web/client"/>
-    <source path="shared/basic" />
-    
-</module>
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/OpenBISFirefox.gwt.xml b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/OpenBISFirefox.gwt.xml
deleted file mode 100644
index 28984f69c44d02e5dca193cfd9d233ed90b49b67..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/OpenBISFirefox.gwt.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.1/distro-source/core/src/gwt-module.dtd">
-<module rename-to="ch.systemsx.cisd.openbis.plugin.proteomics.OpenBIS">
-  <inherits name='ch.systemsx.cisd.openbis.OpenBIS-without-entry-point' />
-  <set-property name="user.agent" value="gecko1_8" />
-
-  <entry-point class='ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.PhosphoNetXClient' />
-
-  <script src="proteomics-dictionary.js" />
-  <public path="client/web/public" />
-  <source path="client/web/client" />
-  <source path="shared/basic" />
-</module>
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/OpenBISSafari.gwt.xml b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/OpenBISSafari.gwt.xml
deleted file mode 100644
index 4f39114f92af58c9cea79975e0c8d34dce9ae9d0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/OpenBISSafari.gwt.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.1/distro-source/core/src/gwt-module.dtd">
-<module rename-to="ch.systemsx.cisd.openbis.plugin.proteomics.OpenBIS">
-  <inherits name='ch.systemsx.cisd.openbis.OpenBIS-without-entry-point' />
-  <set-property name="user.agent" value="safari" />
-
-  <entry-point class='ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.PhosphoNetXClient' />
-
-  <script src="proteomics-dictionary.js" />
-  <public path="client/web/public" />
-  <source path="client/web/client" />
-  <source path="shared/basic" />
-</module>
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/FacadeFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/FacadeFactory.java
deleted file mode 100644
index 686fe98b7853ce6e5da5845daf66ed6770e7523f..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/FacadeFactory.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.api.v1;
-
-import ch.systemsx.cisd.openbis.common.api.client.ServiceFinder;
-import ch.systemsx.cisd.common.api.retry.RetryCaller;
-import ch.systemsx.cisd.common.api.retry.RetryProxyFactory;
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
-
-/**
- * Factory of {@link IProteomicsDataApiFacade}.
- * 
- * @author Franz-Josef Elmer
- */
-public class FacadeFactory
-{
-    private static final ServiceFinder SERVICE_FINDER = new ServiceFinder("openbis",
-            IProteomicsDataService.SERVER_URL);
-
-    private static final ServiceFinder GENERIC_INFO_SERVICE_FINDER = new ServiceFinder("openbis",
-            IGeneralInformationService.SERVICE_URL);
-
-    /**
-     * Creates a facade for specified server URL, user Id, and password.
-     */
-    public static IProteomicsDataApiFacade create(final String serverURL, final String userID,
-            final String password)
-    {
-        RetryCaller<IProteomicsDataApiFacade, RuntimeException> caller =
-                new RetryCaller<IProteomicsDataApiFacade, RuntimeException>()
-                    {
-                        @Override
-                        protected IProteomicsDataApiFacade call()
-                        {
-                            IGeneralInformationService infoService =
-                                    createGenericInfoService(serverURL);
-                            IProteomicsDataService service = createService(serverURL);
-                            String sessionToken =
-                                    infoService.tryToAuthenticateForAllServices(userID, password);
-                            if (sessionToken == null)
-                            {
-                                throw new IllegalArgumentException("User " + userID
-                                        + " couldn't be authenticated");
-                            }
-
-                            IProteomicsDataApiFacade facade =
-                                    new ProteomicsDataApiFacade(service, infoService, sessionToken);
-                            return RetryProxyFactory.createProxy(facade);
-                        }
-                    };
-        return caller.callWithRetry();
-    }
-
-    /**
-     * Creates a facade for specified url and sessionToken.
-     */
-    public static IProteomicsDataApiFacade create(final String serverURL, final String sessionToken)
-    {
-        RetryCaller<IProteomicsDataApiFacade, RuntimeException> caller =
-                new RetryCaller<IProteomicsDataApiFacade, RuntimeException>()
-                    {
-                        @Override
-                        protected IProteomicsDataApiFacade call()
-                        {
-                            IProteomicsDataService service = createService(serverURL);
-                            IGeneralInformationService infoService =
-                                    createGenericInfoService(serverURL);
-
-                            IProteomicsDataApiFacade facade =
-                                    new ProteomicsDataApiFacade(service, infoService, sessionToken);
-                            return RetryProxyFactory.createProxy(facade);
-                        }
-                    };
-        return caller.callWithRetry();
-    }
-
-    private static IProteomicsDataService createService(String serverURL)
-    {
-        return SERVICE_FINDER.createService(IProteomicsDataService.class, serverURL);
-    }
-
-    private static IGeneralInformationService createGenericInfoService(String serverURL)
-    {
-        return GENERIC_INFO_SERVICE_FINDER.createService(IGeneralInformationService.class,
-                serverURL);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/IProteomicsDataApiFacade.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/IProteomicsDataApiFacade.java
deleted file mode 100644
index 3a2e13a77e1123a9c17fe54c6b50384677642479..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/IProteomicsDataApiFacade.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.api.v1;
-
-import java.util.List;
-
-import ch.systemsx.cisd.common.api.retry.Retry;
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Project;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataSet;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataStoreServerProcessingPluginInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.MsInjectionDataInfo;
-
-/**
- * Facade for openBIS proteomics data service to be used by a proteomics pipeline server like p-grade.
- * 
- * @author Franz-Josef Elmer
- */
-public interface IProteomicsDataApiFacade
-{
-    /**
-     * Return the session token for the logged-in user.
-     */
-    @Retry
-    public String getSessionToken();
-
-    /**
-     * Returns all samples of type MS_INJECTION in space MS_DATA which have a parent sample which the specified user is allow to read.
-     */
-    @Retry
-    public List<MsInjectionDataInfo> listRawDataSamples(String userID);
-
-    /**
-     * Returns all samples of type MS_INJECTION in space MS_DATA which have a parent sample.
-     */
-    @Retry
-    public List<MsInjectionDataInfo> listAllRawDataSamples(String userID);
-
-    /**
-     * Lists all processing plugins on DSS.
-     */
-    @Retry
-    public List<DataStoreServerProcessingPluginInfo> listDataStoreServerProcessingPluginInfos();
-
-    /**
-     * Processes the data sets of specified samples by the DSS processing plug-in of specified key for the specified user. Only the most recent data
-     * sets of specified type are processed.
-     */
-    @Deprecated
-    public void processingRawData(String userID, String dataSetProcessingKey,
-            long[] rawDataSampleIDs, String dataSetType);
-
-    /**
-     * Processes the specified data sets by the DSS processing plug-in of specified key for the specified user. Implementations should check that the
-     * specified user is allowed to read specified data sets.
-     */
-    public void processDataSets(String userID, String dataSetProcessingKey, List<String> dataSetCodes);
-
-    /**
-     * Returns all projects where the specified user has USER access rights.
-     */
-    @Retry
-    public List<Project> listProjects(String userID);
-
-    /**
-     * Returns all experiments of type <tt>MS_SEARCH</tt> which the specified user is allowed to read.
-     */
-    @Retry
-    public List<Experiment> listSearchExperiments(String userID);
-
-    /**
-     * Returns all experiments of specified type which the specified user is allowed to read.
-     */
-    @Retry
-    public List<Experiment> listExperiments(String sessionToken, String userID, String experimentTypeCode);
-
-    /**
-     * Returns all data sets of specified experiment which the specified user is allowed to read.
-     */
-    @Retry
-    public List<DataSet> listDataSetsByExperiment(String userID, long experimentID);
-
-    /**
-     * Processes the data sets of specified experiments of type <tt>MS_SEARCH</tt> by the DSS processing plug-in of specified key for the specified
-     * user. It will be checked if the experiments are of search experiments and if the user has USER access rights.
-     */
-    @Deprecated
-    public void processSearchData(String userID, String dataSetProcessingKey,
-            long[] searchExperimentIDs);
-
-    /**
-     * Processes the data sets of specified experiments by the DSS processing plug-in of specified key for the specified user. It will be checked if
-     * the experiments are of specified type and if the user has USER access rights.
-     */
-    public void processProteinResultDataSets(String sessionToken, String userID,
-            String dataSetProcessingKey, String experimentTypeCode, long[] experimentIDs);
-
-    /**
-     * Logs current user out.
-     */
-    public void logout();
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/ProteomicsDataApiFacade.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/ProteomicsDataApiFacade.java
deleted file mode 100644
index f80f15696857ea7baf404a07586ccd1f02949e13..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/ProteomicsDataApiFacade.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.api.v1;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService;
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Project;
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Role;
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SpaceWithProjectsAndRoleAssignments;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataSet;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataStoreServerProcessingPluginInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.MsInjectionDataInfo;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ProteomicsDataApiFacade implements IProteomicsDataApiFacade
-{
-    private static final String USER_ROLE_SET = "SPACE_USER";
-
-    private final IProteomicsDataService service;
-
-    private final IGeneralInformationService generalInfoService;
-
-    private final String sessionToken;
-
-    ProteomicsDataApiFacade(IProteomicsDataService service,
-            IGeneralInformationService generalInfoService, String sessionToken)
-    {
-        this.service = service;
-        this.generalInfoService = generalInfoService;
-        this.sessionToken = sessionToken;
-    }
-
-    @Override
-    public String getSessionToken()
-    {
-        return sessionToken;
-    }
-
-    @Override
-    public List<DataStoreServerProcessingPluginInfo> listDataStoreServerProcessingPluginInfos()
-    {
-        return service.listDataStoreServerProcessingPluginInfos(sessionToken);
-    }
-
-    @Override
-    public List<MsInjectionDataInfo> listRawDataSamples(String userID)
-    {
-        return service.listRawDataSamples(sessionToken, userID);
-    }
-
-    @Override
-    public List<MsInjectionDataInfo> listAllRawDataSamples(String userID)
-    {
-        return service.listAllRawDataSamples(sessionToken, userID);
-    }
-
-    @Override
-    @SuppressWarnings("deprecation")
-    public void processingRawData(String userID, String dataSetProcessingKey,
-            long[] rawDataSampleIDs, String dataSetType)
-    {
-        service.processingRawData(sessionToken, userID, dataSetProcessingKey, rawDataSampleIDs,
-                dataSetType);
-    }
-
-    @Override
-    public void processDataSets(String userID, String dataSetProcessingKey,
-            List<String> dataSetCodes)
-    {
-        service.processDataSets(sessionToken, userID, dataSetProcessingKey, dataSetCodes);
-    }
-
-    @Override
-    public List<Project> listProjects(String userID)
-    {
-        Map<String, Set<Role>> namedRoleSets = generalInfoService.listNamedRoleSets(sessionToken);
-        Set<Role> allowedRoles = namedRoleSets.get(USER_ROLE_SET);
-        if (allowedRoles == null)
-        {
-            throw new IllegalStateException("Role set " + USER_ROLE_SET + " not known.");
-        }
-
-        List<SpaceWithProjectsAndRoleAssignments> spaces =
-                generalInfoService.listSpacesWithProjectsAndRoleAssignments(sessionToken, null);
-        List<Project> projects = new ArrayList<Project>();
-        for (SpaceWithProjectsAndRoleAssignments space : spaces)
-        {
-            Set<Role> roles = space.getRoles(userID);
-            roles.retainAll(allowedRoles);
-            if (roles.isEmpty() == false)
-            {
-                for (ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Project project : space
-                        .getProjects())
-                {
-                    projects.add(new Project(project.getId(), project.getPermId(), space.getCode(),
-                            project.getCode(), project.getDescription()));
-                }
-            }
-        }
-        return projects;
-    }
-
-    @Override
-    @SuppressWarnings("deprecation")
-    public List<Experiment> listSearchExperiments(String userID)
-    {
-        return service.listSearchExperiments(sessionToken, userID);
-    }
-
-    @Override
-    public List<Experiment> listExperiments(@SuppressWarnings("hiding") String sessionToken,
-            String userID, String experimentTypeCode)
-    {
-        return service.listExperiments(sessionToken, userID, experimentTypeCode);
-    }
-
-    @Override
-    public List<DataSet> listDataSetsByExperiment(String userID, long experimentID)
-    {
-        return service.listDataSetsByExperiment(sessionToken, userID, experimentID);
-    }
-
-    @Override
-    @SuppressWarnings("deprecation")
-    public void processSearchData(String userID, String dataSetProcessingKey,
-            long[] searchExperimentIDs)
-    {
-        service.processSearchData(sessionToken, userID, dataSetProcessingKey, searchExperimentIDs);
-    }
-
-    @Override
-    public void processProteinResultDataSets(@SuppressWarnings("hiding") String sessionToken,
-            String userID, String dataSetProcessingKey, String experimentTypeCode,
-            long[] experimentIDs)
-    {
-        service.processProteinResultDataSets(sessionToken, userID, dataSetProcessingKey,
-                experimentTypeCode, experimentIDs);
-    }
-
-    @Override
-    public void logout()
-    {
-        generalInfoService.logout(sessionToken);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/ProteomicsDataApiTest.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/ProteomicsDataApiTest.java
deleted file mode 100644
index 548725f59ccbf85ced641da9588ee057447d3b71..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/ProteomicsDataApiTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.api.v1;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Project;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataSet;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataStoreServerProcessingPluginInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.MsInjectionDataInfo;
-
-/**
- * Example of usage of Proteomics Data API.
- * 
- * @author Franz-Josef Elmer
- */
-public class ProteomicsDataApiTest
-{
-    @SuppressWarnings("deprecation")
-    public static void main(String[] args)
-    {
-        if (args.length != 4)
-        {
-            System.err.println("Usage: <openbis-server-url> <login id> <password> <user id>");
-            return;
-        }
-
-        String serverURL = args[0];
-        String loginID = args[1];
-        String password = args[2];
-        String userID = args[3];
-        IProteomicsDataApiFacade facade = FacadeFactory.create(serverURL, loginID, password);
-
-        System.out.println("MS_INJECTION samples:");
-        List<MsInjectionDataInfo> rawDataSamples = facade.listRawDataSamples(userID);
-        for (MsInjectionDataInfo info : rawDataSamples)
-        {
-            Map<String, Date> latestDataSets = info.getLatestDataSetRegistrationDates();
-            if (latestDataSets.isEmpty() == false)
-            {
-                System.out.println("   " + info.getMsInjectionSampleCode() + " -> "
-                        + info.getBiologicalSampleIdentifier() + " -> "
-                        + info.getBiologicalExperimentIdentifier());
-                Experiment experiment = info.getBiologicalExperiment();
-                if (experiment != null)
-                {
-                    System.out.println("   biological experiment: " + experiment.getCode() + " "
-                            + experiment.getProperties());
-                }
-                System.out.println("   latest data sets: "
-                        + info.getLatestDataSetRegistrationDates());
-                Set<DataSet> dataSets = info.getDataSets();
-                for (DataSet dataSet : dataSets)
-                {
-                    print(dataSet, "         ");
-                }
-            }
-        }
-
-        System.out.println("DSS processing plugins:");
-        List<DataStoreServerProcessingPluginInfo> infos =
-                facade.listDataStoreServerProcessingPluginInfos();
-        String dataSetProcessingKey = null;
-        for (DataStoreServerProcessingPluginInfo info : infos)
-        {
-            System.out.println("   key:" + info.getKey() + ", label:'" + info.getLabel()
-                    + "', data set types:" + info.getDatasetTypeCodes());
-            if (info.getDatasetTypeCodes().contains("PROT_RESULT"))
-            {
-                dataSetProcessingKey = info.getKey();
-            }
-        }
-
-        System.out.println("Projects:");
-        List<Project> projects = facade.listProjects(userID);
-        for (Project project : projects)
-        {
-            System.out.println(project);
-        }
-
-        System.out.println("Search Experiments:");
-        List<Experiment> experiments = facade.listSearchExperiments(userID);
-        long[] ids = new long[experiments.size()];
-        for (int i = 0; i < experiments.size(); i++)
-        {
-            Experiment experiment = experiments.get(i);
-            System.out.println(experiment.getSpaceCode() + "/" + experiment.getProjectCode() + "/"
-                    + experiment.getCode() + " [" + experiment.getId() + ", "
-                    + experiment.getRegistrationDate() + "] " + experiment.getProperties());
-            ids[i] = experiment.getId();
-        }
-
-        if (dataSetProcessingKey != null)
-        {
-            System.out.println("Process search data of " + ids.length + " experiments");
-            facade.processSearchData(userID, dataSetProcessingKey, ids);
-        }
-
-        facade.logout();
-    }
-
-    private static void print(DataSet dataSet, String indentation)
-    {
-        System.out.println(indentation + dataSet.getCode() + " " + dataSet.getType() + " "
-                + dataSet.getRegistrationDate() + " " + dataSet.getProperties());
-        Set<DataSet> children = dataSet.getChildren();
-        for (DataSet child : children)
-        {
-            print(child, indentation + "  ");
-        }
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/package.html b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/package.html
deleted file mode 100644
index 4dd85ccc62485056fe423b3fe82c5e3954239a2b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/package.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<html>
-<body>
-Proteomics Data API Facade
-</body>
-</html>
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/Constants.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/Constants.java
deleted file mode 100644
index e547f038f5eb15119d7f1d8b96dd6271e5b3efa4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/Constants.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client;
-
-/**
- * Constants used by client and server of Web presentation layer.
- *
- * @author Franz-Josef Elmer
- */
-public class Constants
-{
-
-    public static final String TECHNOLOGY_NAME = "proteomics";
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/IPhosphoNetXClientService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/IPhosphoNetXClientService.java
deleted file mode 100644
index aeba0b11e815dafc445434f1d429835df61e572b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/IPhosphoNetXClientService.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.IClientService;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentAndReferenceCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinSequenceCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinSummaryByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListSampleAbundanceByProteinCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinByExperiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * * Service interface for the PhosphoNetX GWT client.
- * <p>
- * Each method should declare throwing {@link UserFailureException}. The authorization framework can throw it when the user has insufficient
- * privileges. If it is not marked, the GWT client will report unexpected exception.
- * </p>
- * 
- * @author Franz-Josef Elmer
- */
-public interface IPhosphoNetXClientService extends IClientService
-{
-    public TypedTableResultSet<Sample> listParentlessMsInjectionSamples(
-            DefaultResultSetConfig<String, TableModelRowWithObject<Sample>> criteria)
-            throws UserFailureException;
-
-    public TypedTableResultSet<Sample> listBiologicalSamples(
-            DefaultResultSetConfig<String, TableModelRowWithObject<Sample>> criteria)
-            throws UserFailureException;
-
-    public void linkSamples(Sample parentSample, List<Sample> childSamples) throws UserFailureException;
-
-    public void createAndLinkSamples(NewSample newBiologicalSample,
-            List<Sample> msInjectionSamples) throws UserFailureException;
-
-    public Vocabulary getTreatmentTypeVocabulary() throws UserFailureException;
-
-    public List<AbundanceColumnDefinition> getAbundanceColumnDefinitionsForProteinByExperiment(
-            TechId experimentID, String treatmentTypeOrNull) throws UserFailureException;
-
-    public TypedTableResultSet<ProteinInfo> listProteinsByExperiment(ListProteinByExperimentCriteria criteria)
-            throws UserFailureException;
-
-    public String prepareExportProteins(TableExportCriteria<TableModelRowWithObject<ProteinInfo>> exportCriteria)
-            throws UserFailureException;
-
-    public TypedTableResultSet<ProteinSummary> listProteinSummariesByExperiment(
-            ListProteinSummaryByExperimentCriteria criteria) throws UserFailureException;
-
-    public String prepareExportProteinSummary(TableExportCriteria<TableModelRowWithObject<ProteinSummary>> exportCriteria)
-            throws UserFailureException;
-
-    public ProteinByExperiment getProteinByExperiment(TechId experimentID, TechId proteinReferenceID)
-            throws UserFailureException;
-
-    public TypedTableResultSet<ProteinSequence> listSequencesByProteinReference(
-            ListProteinSequenceCriteria criteria) throws UserFailureException;
-
-    public String prepareExportProteinSequences(
-            TableExportCriteria<TableModelRowWithObject<ProteinSequence>> exportCriteria)
-            throws UserFailureException;
-
-    public TypedTableResultSet<DataSetProtein> listProteinsByExperimentAndReference(
-            ListProteinByExperimentAndReferenceCriteria criteria) throws UserFailureException;
-
-    public String prepareExportDataSetProteins(
-            TableExportCriteria<TableModelRowWithObject<DataSetProtein>> exportCriteria)
-            throws UserFailureException;
-
-    public TypedTableResultSet<ProteinRelatedSample> listProteinRelatedSamplesByProtein(
-            ListSampleAbundanceByProteinCriteria criteria) throws UserFailureException;
-
-    public String prepareExportProteinRelatedSamples(
-            TableExportCriteria<TableModelRowWithObject<ProteinRelatedSample>> exportCriteria)
-            throws UserFailureException;
-
-    public TypedTableResultSet<Sample> listRawDataSamples(
-            IResultSetConfig<String, TableModelRowWithObject<Sample>> criteria) throws UserFailureException;
-
-    public String prepareExportRawDataSamples(TableExportCriteria<TableModelRowWithObject<Sample>> exportCriteria)
-            throws UserFailureException;
-
-    public void processRawData(String dataSetProcessingKey, long[] rawDataSampleIDs,
-            String dataSetType) throws UserFailureException;
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/IPhosphoNetXClientServiceAsync.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/IPhosphoNetXClientServiceAsync.java
deleted file mode 100644
index 7640def96dfeb382bbf48a454582cacbb16326e4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/IPhosphoNetXClientServiceAsync.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client;
-
-import java.util.List;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.IClientServiceAsync;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentAndReferenceCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinSequenceCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinSummaryByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListSampleAbundanceByProteinCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinByExperiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IPhosphoNetXClientServiceAsync extends IClientServiceAsync
-{
-    /** @see IPhosphoNetXClientService#listParentlessMsInjectionSamples(DefaultResultSetConfig) */
-    public void listParentlessMsInjectionSamples(
-            DefaultResultSetConfig<String, TableModelRowWithObject<Sample>> criteria,
-            AsyncCallback<TypedTableResultSet<Sample>> callback);
-
-    /** @see IPhosphoNetXClientService#listBiologicalSamples(DefaultResultSetConfig) */
-    public void listBiologicalSamples(
-            DefaultResultSetConfig<String, TableModelRowWithObject<Sample>> criteria,
-            AsyncCallback<TypedTableResultSet<Sample>> callback);
-
-    /** @see IPhosphoNetXClientService#linkSamples(Sample, List) */
-    public void linkSamples(Sample parentSample, List<Sample> childSamples, AsyncCallback<Void> callback);
-
-    /** @see IPhosphoNetXClientService#createAndLinkSamples(NewSample, List) */
-    public void createAndLinkSamples(NewSample newBiologicalSample,
-            List<Sample> msInjectionSamples, AsyncCallback<Void> callback);
-
-    /** @see IPhosphoNetXClientService#getTreatmentTypeVocabulary() */
-    public void getTreatmentTypeVocabulary(AsyncCallback<Vocabulary> callback);
-
-    /**
-     * @see IPhosphoNetXClientService#getAbundanceColumnDefinitionsForProteinByExperiment(TechId, String)
-     */
-    public void getAbundanceColumnDefinitionsForProteinByExperiment(TechId experimentID,
-            String treatmentTypeOrNull,
-            AsyncCallback<List<AbundanceColumnDefinition>> callback);
-
-    /** @see IPhosphoNetXClientService#listProteinsByExperiment(ListProteinByExperimentCriteria) */
-    public void listProteinsByExperiment(ListProteinByExperimentCriteria criteria,
-            AsyncCallback<TypedTableResultSet<ProteinInfo>> callback);
-
-    /** @see IPhosphoNetXClientService#prepareExportProteins(TableExportCriteria) */
-    public void prepareExportProteins(
-            TableExportCriteria<TableModelRowWithObject<ProteinInfo>> exportCriteria,
-            AsyncCallback<String> callback);
-
-    /** @see IPhosphoNetXClientService#listProteinSummariesByExperiment(ListProteinSummaryByExperimentCriteria) */
-    public void listProteinSummariesByExperiment(ListProteinSummaryByExperimentCriteria criteria,
-            AsyncCallback<TypedTableResultSet<ProteinSummary>> callback);
-
-    /** @see IPhosphoNetXClientService#prepareExportProteinSummary(TableExportCriteria) */
-    public void prepareExportProteinSummary(
-            TableExportCriteria<TableModelRowWithObject<ProteinSummary>> exportCriteria,
-            AsyncCallback<String> callback);
-
-    /** @see IPhosphoNetXClientService#getProteinByExperiment(TechId, TechId) */
-    public void getProteinByExperiment(TechId experimentID, TechId proteinReferenceID,
-            AsyncCallback<ProteinByExperiment> callback);
-
-    /** @see IPhosphoNetXClientService#listSequencesByProteinReference(ListProteinSequenceCriteria) */
-    public void listSequencesByProteinReference(ListProteinSequenceCriteria criteria,
-            AsyncCallback<TypedTableResultSet<ProteinSequence>> callback);
-
-    /** @see IPhosphoNetXClientService#prepareExportProteinSequences(TableExportCriteria) */
-    public void prepareExportProteinSequences(
-            TableExportCriteria<TableModelRowWithObject<ProteinSequence>> exportCriteria,
-            AsyncCallback<String> callback);
-
-    /** @see IPhosphoNetXClientService#listProteinsByExperimentAndReference(ListProteinByExperimentAndReferenceCriteria) */
-    public void listProteinsByExperimentAndReference(
-            ListProteinByExperimentAndReferenceCriteria criteria,
-            AsyncCallback<TypedTableResultSet<DataSetProtein>> callback);
-
-    /** @see IPhosphoNetXClientService#prepareExportDataSetProteins(TableExportCriteria) */
-    public void prepareExportDataSetProteins(TableExportCriteria<TableModelRowWithObject<DataSetProtein>> exportCriteria,
-            AsyncCallback<String> callback);
-
-    /** @see IPhosphoNetXClientService#listProteinRelatedSamplesByProtein(ListSampleAbundanceByProteinCriteria) */
-    public void listProteinRelatedSamplesByProtein(ListSampleAbundanceByProteinCriteria criteria,
-            AsyncCallback<TypedTableResultSet<ProteinRelatedSample>> callback);
-
-    /** @see IPhosphoNetXClientService#prepareExportProteinRelatedSamples(TableExportCriteria) */
-    public void prepareExportProteinRelatedSamples(
-            TableExportCriteria<TableModelRowWithObject<ProteinRelatedSample>> exportCriteria,
-            AsyncCallback<String> callback);
-
-    /** @see IPhosphoNetXClientService#listRawDataSamples(IResultSetConfig) */
-    public void listRawDataSamples(IResultSetConfig<String, TableModelRowWithObject<Sample>> criteria,
-            AsyncCallback<TypedTableResultSet<Sample>> callback);
-
-    /** @see IPhosphoNetXClientService#prepareExportRawDataSamples(TableExportCriteria) */
-    public void prepareExportRawDataSamples(TableExportCriteria<TableModelRowWithObject<Sample>> exportCriteria,
-            AsyncCallback<String> callback);
-
-    /** @see IPhosphoNetXClientService#processRawData(String, long[], String) */
-    public void processRawData(String dataSetProcessingKey, long[] rawDataSampleIDs, String dataSetType, AsyncCallback<Void> callback);
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/AccessionNumberURLCreator.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/AccessionNumberURLCreator.java
deleted file mode 100644
index 9b4caaffd0a342129713096bcfb505cb97190f30..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/AccessionNumberURLCreator.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Franz-Josef Elmer
- */
-class AccessionNumberURLCreator
-{
-    private static final String UNIPROT_URL_TEMPLATE = "http://www.uniprot.org/uniprot/$id";
-
-    private static final String UNIPROT_QUERY_URL_TEMPLATE = "http://www.uniprot.org/uniprot/?query=$id";
-
-    private static final Map<String, String> URL_TEMPLATES = createURLTemplates();
-
-    private static final Map<String, String> createURLTemplates()
-    {
-        HashMap<String, String> map = new HashMap<String, String>();
-        map.put("sp", UNIPROT_URL_TEMPLATE);
-        map.put("tr", UNIPROT_URL_TEMPLATE);
-        map.put("ipi", UNIPROT_QUERY_URL_TEMPLATE);
-        map.put("ens", UNIPROT_QUERY_URL_TEMPLATE);
-        map.put("rs", UNIPROT_QUERY_URL_TEMPLATE);
-        map.put("ll", UNIPROT_QUERY_URL_TEMPLATE);
-        map.put("fb", UNIPROT_QUERY_URL_TEMPLATE);
-        map.put("gi", "http://www.ncbi.nlm.nih.gov/protein/$id");
-        map.put("isb", "http://www.ebi.ac.uk/ebisearch/search.ebi?db=proteinSequences&t=$id");
-        return map;
-    }
-
-    static String tryToCreateURL(String typeOrNull, String accessionNumber)
-    {
-        if (typeOrNull == null)
-        {
-            return eval(UNIPROT_URL_TEMPLATE, accessionNumber);
-        }
-        String template = URL_TEMPLATES.get(typeOrNull);
-        return template == null ? null : eval(template, accessionNumber);
-    }
-
-    private static String eval(String template, String value)
-    {
-        return template.replaceAll("\\$id", value);
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ClientPluginFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ClientPluginFactory.java
deleted file mode 100644
index cfd0dacffd13ff3685bb719fa644c7f00b55ce3b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ClientPluginFactory.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractClientPluginFactory;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ActionContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareWidget;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPlugin;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractRegistrationForm;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractViewer;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.LinkExtractor;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithPermId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedInputWidgetDescription;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.AbstractGenericEntityRegistrationForm;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.DelegatedClientPlugin;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.GenericViewContext;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentEditForm;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentRegistrationForm;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentViewer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext>
-{
-
-    public ClientPluginFactory(IViewContext<ICommonClientServiceAsync> originalViewContext)
-    {
-        super(originalViewContext);
-    }
-
-    @Override
-    protected ViewContext createViewContext(
-            IViewContext<ICommonClientServiceAsync> originalViewContext)
-    {
-        return new ViewContext(originalViewContext);
-    }
-
-    @Override
-    public boolean isEnabled()
-    {
-        return checkEnabledProperty("proteomics");
-    }
-
-    @Override
-    public IModule maybeCreateModule()
-    {
-        return new PhosphoNetXModule(getViewContext());
-    }
-
-    @Override
-    public Set<String> getEntityTypeCodes(EntityKind entityKind)
-    {
-        if (entityKind == EntityKind.EXPERIMENT)
-        {
-            return new HashSet<String>(Arrays.asList("MS_SEARCH", "MS_QUANTIFICATION"));
-        }
-        return Collections.emptySet();
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T extends BasicEntityType, I extends IIdAndCodeHolder> IClientPlugin<T, I> createClientPlugin(
-            EntityKind entityKind)
-    {
-        if (EntityKind.EXPERIMENT.equals(entityKind))
-        {
-            return (IClientPlugin<T, I>) new ExperimentClientPlugin(getViewContext());
-        }
-        throw new UnsupportedOperationException("IClientPlugin for entity kind '" + entityKind
-                + "' not implemented yet.");
-    }
-
-    //
-    // Helper classes
-    //
-
-    private final class ExperimentClientPlugin extends DelegatedClientPlugin<ExperimentType>
-    {
-        private ExperimentClientPlugin(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-        {
-            super(viewContext, EntityKind.EXPERIMENT);
-        }
-
-        //
-        // IViewClientPlugin
-        //
-
-        @Override
-        public final AbstractTabItemFactory createEntityViewer(
-                final IEntityInformationHolderWithPermId entity)
-        {
-            return new AbstractTabItemFactory()
-                {
-                    @Override
-                    public ITabItem create()
-                    {
-                        final DatabaseModificationAwareComponent experimentViewer =
-                                ExperimentViewer.createComponent(getViewContext(), entity.getEntityType(),
-                                        entity);
-                        return DefaultTabItem.create(getTabTitle(), experimentViewer,
-                                getViewContext(), false);
-                    }
-
-                    @Override
-                    public String getId()
-                    {
-                        return GenericExperimentViewer.createId(entity);
-                    }
-
-                    @Override
-                    public HelpPageIdentifier getHelpPageIdentifier()
-                    {
-                        return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT,
-                                HelpPageAction.VIEW);
-                    }
-
-                    @Override
-                    public String getTabTitle()
-                    {
-                        return getViewerTitle(Dict.EXPERIMENT, entity);
-                    }
-
-                    @Override
-                    public String tryGetLink()
-                    {
-                        return LinkExtractor.tryExtract(entity);
-                    }
-                };
-        }
-
-        @Override
-        public DatabaseModificationAwareWidget createRegistrationForEntityType(
-                ExperimentType entityType,
-                Map<String, List<IManagedInputWidgetDescription>> inputWidgetDescriptions,
-                ActionContext context)
-        {
-            GenericExperimentRegistrationForm form =
-                    new GenericExperimentRegistrationForm(getGenericViewContext(),
-                            inputWidgetDescriptions, context, entityType);
-            return new DatabaseModificationAwareWidget(form, form);
-        }
-
-        @Override
-        public AbstractTabItemFactory createEntityEditor(final IIdAndCodeHolder identifiable)
-        {
-            return new AbstractTabItemFactory()
-                {
-                    @Override
-                    public ITabItem create()
-                    {
-                        DatabaseModificationAwareComponent component =
-                                GenericExperimentEditForm.create(getGenericViewContext(),
-                                        identifiable);
-                        return DefaultTabItem.create(getTabTitle(), component, getViewContext(),
-                                true);
-                    }
-
-                    @Override
-                    public String getId()
-                    {
-                        return AbstractGenericEntityRegistrationForm.createId(identifiable,
-                                EntityKind.EXPERIMENT);
-                    }
-
-                    @Override
-                    public HelpPageIdentifier getHelpPageIdentifier()
-                    {
-                        return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT,
-                                HelpPageAction.EDIT);
-                    }
-
-                    @Override
-                    public String getTabTitle()
-                    {
-                        return getEditorTitle(Dict.EXPERIMENT, identifiable);
-                    }
-
-                    @Override
-                    public String tryGetLink()
-                    {
-                        return null;
-                    }
-                };
-        }
-
-        private String getViewerTitle(final String entityKindDictKey,
-                final IIdAndCodeHolder identifiable)
-        {
-            return AbstractViewer.getTitle(getViewContext(), entityKindDictKey, identifiable);
-        }
-
-        private String getEditorTitle(final String entityKindDictKey,
-                final IIdAndCodeHolder identifiable)
-        {
-            return AbstractRegistrationForm.getEditTitle(getViewContext(), entityKindDictKey,
-                    identifiable);
-        }
-
-        private IViewContext<IGenericClientServiceAsync> getGenericViewContext()
-        {
-            return new GenericViewContext(getViewContext().getCommonViewContext());
-        }
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/DataSetProteinGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/DataSetProteinGrid.java
deleted file mode 100644
index 107f6cbbba41c24fe9d96f58e8b2588367883ac2..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/DataSetProteinGrid.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.Arrays;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.DataSetProteinGridColumnIDs;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentAndReferenceCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-
-/**
- * @author Franz-Josef Elmer
- */
-class DataSetProteinGrid extends TypedTableGrid<DataSetProtein>
-{
-    private static final String PREFIX = GenericConstants.ID_PREFIX + "data-set-protein-browser";
-
-    public static final String BROWSER_ID = PREFIX + "_main";
-
-    public static final String GRID_ID = PREFIX + TypedTableGrid.GRID_POSTFIX;
-
-    static IDisposableComponent create(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            IIdAndCodeHolder experimentIdOrNull, TechId proteinReferenceID)
-    {
-        return new DataSetProteinGrid(viewContext, experimentIdOrNull, proteinReferenceID)
-                .asDisposableWithoutToolbar();
-    }
-
-    private static String createWidgetID(IIdAndCodeHolder experimentIdOrNull, TechId proteinReferenceID)
-    {
-        return "-" + (experimentIdOrNull == null ? "" : experimentIdOrNull.getId() + "-")
-                + proteinReferenceID;
-    }
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
-
-    private ListProteinByExperimentAndReferenceCriteria criteria;
-
-    private DataSetProteinGrid(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            IIdAndCodeHolder experimentIdOrNull, TechId proteinReferenceID)
-    {
-        super(viewContext.getCommonViewContext(), BROWSER_ID
-                + createWidgetID(experimentIdOrNull, proteinReferenceID), true,
-                PhosphoNetXDisplayTypeIDGenerator.DATA_SET_PROTEIN_BROWSER_GRID);
-        specificViewContext = viewContext;
-        criteria = new ListProteinByExperimentAndReferenceCriteria();
-        if (experimentIdOrNull != null)
-        {
-            criteria.setExperimentID(new TechId(experimentIdOrNull));
-        }
-        criteria.setProteinReferenceID(proteinReferenceID);
-    }
-
-    @Override
-    protected String translateColumnIdToDictionaryKey(String columnID)
-    {
-        return DataSetProteinGridColumnIDs.FDR.equals(columnID) ? "false_discovery_rate_column"
-                : columnID.toLowerCase();
-    }
-
-    @Override
-    protected List<String> getColumnIdsOfFilters()
-    {
-        return Arrays.asList();
-    }
-
-    @Override
-    protected void listTableRows(
-            DefaultResultSetConfig<String, TableModelRowWithObject<DataSetProtein>> resultSetConfig,
-            AbstractAsyncCallback<TypedTableResultSet<DataSetProtein>> callback)
-    {
-        criteria.copyPagingConfig(resultSetConfig);
-        specificViewContext.getService().listProteinsByExperimentAndReference(criteria, callback);
-    }
-
-    @Override
-    protected void prepareExportEntities(
-            TableExportCriteria<TableModelRowWithObject<DataSetProtein>> exportCriteria,
-            AbstractAsyncCallback<String> callback)
-    {
-        specificViewContext.getService().prepareExportDataSetProteins(exportCriteria, callback);
-    }
-
-    @Override
-    public DatabaseModificationKind[] getRelevantModifications()
-    {
-        return new DatabaseModificationKind[0];
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/Dict.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/Dict.java
deleted file mode 100644
index 1609b15b473657d1e3cdbc83894961b8af9646fc..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/Dict.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class Dict
-{
-    public static final String QUERY_MENU_TITLE = "query_menu_title";
-
-    public static final String SELECTED_EXPERIMENT_LABEL = "selected_experiment_label";
-
-    public static final String FDR_FILTER_LABEL = "false_discovery_rate_filter_label";
-
-    public static final String AGGREGATE_FUNCTION_LABEL = "aggregate_function_label";
-
-    public static final String AGGREGATE_ON_TREATMENT_TYPE_LABEL = "aggregate_on_treatment_type_label";
-
-    public static final String AGGREGATE_ORIGINAL_LABEL = "aggregate_original_label";
-
-    public static final String ACCESSION_NUMBER = "accession_number";
-
-    public static final String PROTEIN_DESCRIPTION = "protein_description";
-
-    public static final String COVERAGE = "coverage";
-
-    public static final String FALSE_DISCOVERY_RATE = "false_discovery_rate";
-
-    public static final String FDR_COMBO_INFO = "fdr_combo_info";
-
-    public static final String DATA_SET = "data_set";
-
-    public static final String PROTEIN_BROWSER = "protein_browser";
-
-    public static final String PROTEIN_SUMMARY = "protein_summary";
-
-    // Experiment Viewer
-
-    public static final String DATA_SET_PROCESSING_SECTION_TITLE = "data_set_processing_section_title";
-
-    // Protein Viewer
-    public static final String PROTEIN_DETAILS_WAITING_MESSAGE = "loading_protein_details_waiting_message";
-
-    public static final String PROTEINS_SECTION = "proteins_section";
-
-    public static final String PRIMARY_PROTEIN = "primary_protein";
-
-    public static final String PROTEIN_IN_EXPERIMENT_TAB_LABEL = "protein_in_experiment_tab_label";
-
-    public static final String EXPERIMENT_LABEL = "experiment_label";
-
-    public static final String SEQUENCE_SHORT_NAME = "sequence_short_name";
-
-    public static final String DATABASE_NAME_AND_VERSION = "database_name_and_version";
-
-    public static final String INDISTINGUISHABLE_PROTEINS = "indistinguishable_proteins";
-
-    public static final String SEQUENCE = "sequence";
-
-    public static final String SEQUENCES = "sequences";
-
-    public static final String DATA_SET_PROTEINS = "data_set_proteins";
-
-    public static final String DATA_SET_PERM_ID = "data_set_perm_id";
-
-    public static final String PROTEIN_COUNT = "protein_count";
-
-    public static final String PEPTIDE_COUNT = "peptide_count";
-
-    public static final String PEPTIDES = "peptides";
-
-    public static final String SEQUENCE_NAME = "sequence_name";
-
-    public static final String FDR = "false_discovery_rate_column";
-
-    // Protein Detail View
-    public static final String PROBABILITY = "protein_probability";
-
-    public static final String BUTTON_DELETE_PROTEIN = "button_delete_protein";
-
-    // SampleAbundance Browser
-
-    public static final String ABUNDANCE = "abundance";
-
-    // RawDataSample Browser
-
-    public static final String BIOLOGICAL_SAMPLE_IDENTIFIER = "biological_sample_identifier";
-
-    public static final String MS_INJECTION_SAMPLE_CODE = "ms_injection_sample_code";
-
-    public static final String COPY_DATA_SETS_BUTTON_LABEL = "copy_data_sets_button_label";
-
-    public static final String COPY_DATA_SETS_TITLE = "copy_data_sets_title";
-
-    public static final String COPY_DATA_SETS_MESSAGE = "copy_data_sets_message";
-
-    public static final String COPY_DATA_SETS_DATA_SET_TYPE_FIELD = "copy_data_sets_data_set_type_field";
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/DisplayTypeIDGenerator.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/DisplayTypeIDGenerator.java
deleted file mode 100644
index 27246608c0e867898f03f9c5284ff184e4c3aa4a..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/DisplayTypeIDGenerator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDisplayTypeIDGenerator;
-
-/**
- * Enum for all generic {@link IDisplayTypeIDGenerator}s.
- * 
- * @author Franz-Josef Elmer
- */
-public enum DisplayTypeIDGenerator implements IDisplayTypeIDGenerator
-{
-    PROTEIN_SECTION("protein-section"),
-
-    ;
-
-    private final String genericNameOrPrefix;
-
-    private DisplayTypeIDGenerator(String genericNameOrPrefix)
-    {
-        this.genericNameOrPrefix = genericNameOrPrefix;
-    }
-
-    @Override
-    public String createID()
-    {
-        return genericNameOrPrefix;
-    }
-
-    @Override
-    public String createID(String suffix)
-    {
-        return genericNameOrPrefix + suffix;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ExperimentViewer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ExperimentViewer.java
deleted file mode 100644
index 58501159bfbb1bd343d6a1562fcd7fc50f97670c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ExperimentViewer.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.DisposableTabContent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.VoidAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.ProcessingDisplayCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.lang.StringEscapeUtils;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedDatasetCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.GenericViewContext;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentViewer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-
-import com.extjs.gxt.ui.client.util.Margins;
-import com.extjs.gxt.ui.client.widget.Component;
-import com.extjs.gxt.ui.client.widget.ContentPanel;
-import com.extjs.gxt.ui.client.widget.LayoutContainer;
-import com.extjs.gxt.ui.client.widget.layout.FitLayout;
-import com.extjs.gxt.ui.client.widget.layout.RowData;
-import com.extjs.gxt.ui.client.widget.layout.RowLayout;
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ExperimentViewer extends GenericExperimentViewer
-{
-    public static DatabaseModificationAwareComponent createComponent(
-            IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            BasicEntityType experimentType, IIdAndCodeHolder experimentId)
-    {
-        ExperimentViewer viewer =
-                new ExperimentViewer(new GenericViewContext(viewContext.getCommonViewContext()),
-                        viewContext, experimentType, experimentId);
-        return new DatabaseModificationAwareComponent(viewer, viewer);
-    }
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
-
-    protected ExperimentViewer(IViewContext<IGenericClientServiceAsync> viewContext,
-            IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext,
-            BasicEntityType experimentType, IIdAndCodeHolder experimentId)
-    {
-        super(viewContext, experimentType, experimentId);
-        this.specificViewContext = specificViewContext;
-    }
-
-    @Override
-    protected List<DisposableTabContent> createAdditionalBrowserSectionPanels()
-    {
-        DisposableTabContent section =
-                new DisposableTabContent(specificViewContext.getMessage(Dict.PROTEINS_SECTION),
-                        specificViewContext, experiment)
-                    {
-                        @Override
-                        protected IDisposableComponent createDisposableContent()
-                        {
-                            return ProteinByExperimentBrowserGrid.create(specificViewContext,
-                                    experimentType, experiment);
-                        }
-                    };
-        section.setIds(DisplayTypeIDGenerator.PROTEIN_SECTION);
-        return Collections.<DisposableTabContent> singletonList(section);
-    }
-
-    @Override
-    protected Component tryCreateLowerLeftComponent()
-    {
-        if (viewContext.isSimpleOrEmbeddedMode())
-        {
-            return null; // no processing in simple view mode
-        }
-        final ContentPanel contentPanel = new ContentPanel(new RowLayout());
-        contentPanel.setHeading(viewContext.getMessage(Dict.DATA_SET_PROCESSING_SECTION_TITLE));
-        viewContext.getCommonService().listExperimentDataSets(
-                new TechId(experimentId),
-                DefaultResultSetConfig
-                        .<String, TableModelRowWithObject<AbstractExternalData>> createFetchAll(), true,
-                new AbstractAsyncCallback<TypedTableResultSet<AbstractExternalData>>(viewContext)
-                    {
-                        @Override
-                        protected void process(TypedTableResultSet<AbstractExternalData> result)
-                        {
-                            AsyncCallback<List<DatastoreServiceDescription>> callBack =
-                                    createCallback(contentPanel, result);
-                            viewContext.getCommonService().listDataStoreServices(
-                                    DataStoreServiceKind.PROCESSING, callBack);
-
-                        }
-                    });
-        return contentPanel;
-    }
-
-    private AsyncCallback<List<DatastoreServiceDescription>> createCallback(
-            final ContentPanel contentPanel, TypedTableResultSet<AbstractExternalData> result)
-    {
-        ResultSet<TableModelRowWithObject<AbstractExternalData>> resultSet = result.getResultSet();
-        String resultSetKey = resultSet.getResultSetKey();
-        viewContext.getCommonService().removeResultSet(resultSetKey,
-                new VoidAsyncCallback<Void>(viewContext));
-        final List<String> dataSetCodes = new ArrayList<String>();
-        for (GridRowModel<TableModelRowWithObject<AbstractExternalData>> gridRowModel : resultSet.getList())
-        {
-            dataSetCodes.add(gridRowModel.getOriginalObject().getObjectOrNull().getCode());
-        }
-        final DisplayedOrSelectedDatasetCriteria criteria =
-                DisplayedOrSelectedDatasetCriteria.createSelectedItems(dataSetCodes);
-        return new AbstractAsyncCallback<List<DatastoreServiceDescription>>(viewContext)
-            {
-                @Override
-                protected void process(List<DatastoreServiceDescription> descriptions)
-                {
-                    for (final DatastoreServiceDescription description : descriptions)
-                    {
-                        String[] dataSetTypes = description.getDatasetTypeCodes();
-                        for (String dataSetType : dataSetTypes)
-                        {
-                            if (dataSetType.equals(CommonConstants.PROT_RESULT_DATA_SET_TYPE))
-                            {
-                                Widget link = createLink(description, criteria);
-                                LayoutContainer wrapper = new LayoutContainer(new FitLayout());
-                                wrapper.add(link);
-                                contentPanel.add(wrapper, new RowData(1, -1, new Margins(5)));
-                            }
-                        }
-                    }
-                    contentPanel.layout();
-                }
-            };
-    }
-
-    private Widget createLink(final DatastoreServiceDescription description,
-            final DisplayedOrSelectedDatasetCriteria criteria)
-    {
-        String href = "";
-        ClickHandler listener = new ClickHandler()
-            {
-                @Override
-                public void onClick(ClickEvent event)
-                {
-                    viewContext.getCommonService().processDatasets(description, criteria,
-                            new ProcessingDisplayCallback(viewContext));
-                }
-            };
-        String label = StringEscapeUtils.unescapeHtml(description.getLabel());
-        return LinkRenderer.getLinkWidget(label, listener, href);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/PhosphoNetXClient.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/PhosphoNetXClient.java
deleted file mode 100644
index 5bad10fedb9fde032101da17e1c758fd020ac8c8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/PhosphoNetXClient.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.IClientServiceAsync;
-import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.Client;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.DefaultClientPluginFactoryProvider;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactoryProvider;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class PhosphoNetXClient extends Client
-{
-    private static final class ClientPluginFactoryProvider extends
-            DefaultClientPluginFactoryProvider
-    {
-        ClientPluginFactoryProvider(IViewContext<ICommonClientServiceAsync> originalViewContext)
-        {
-            super(originalViewContext);
-            registerPluginFactory(new ClientPluginFactory(originalViewContext));
-        }
-
-    }
-
-    @Override
-    protected IClientPluginFactoryProvider createPluginFactoryProvider(
-            final IViewContext<ICommonClientServiceAsync> commonContext)
-    {
-        return new ClientPluginFactoryProvider(commonContext);
-    }
-
-    @Override
-    protected IClientServiceAsync getServiceForRetrievingApplicationInfo(
-            IViewContext<ICommonClientServiceAsync> context)
-    {
-        return new ViewContext(context).getService();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/PhosphoNetXDisplayTypeIDGenerator.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/PhosphoNetXDisplayTypeIDGenerator.java
deleted file mode 100644
index 6561a789ec1904d53991825a4099cdba1399e765..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/PhosphoNetXDisplayTypeIDGenerator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDisplayTypeIDGenerator;
-
-/**
- * @author Franz-Josef Elmer
- */
-public enum PhosphoNetXDisplayTypeIDGenerator implements IDisplayTypeIDGenerator
-{
-    PROTEIN_BY_EXPERIMENT_BROWSER_GRID("protein-by-experiment-browser-grid"),
-
-    PROTEIN_SEQUENCE_BROWSER_GRID("protein-sequence-browser-grid"),
-
-    PROTEIN_SUMMARY_BROWSER_GRID("protein-summary-browser-grid"),
-
-    DATA_SET_PROTEIN_BROWSER_GRID("data-set-protein-browser-grid"),
-
-    RAW_DATA_SAMPLE_BROWSER_GRID("raw-data-sample-browser-grid"),
-
-    PARENT_LESS_MS_INJECTION_SAMPLE_BROWSER_GRID("parent-less-ms-injection-sample-browser-grid"),
-
-    BIOLOGICAL_SAMPLE_BROWSER_GRID("biological-sample-browser-grid"), ;
-
-    private final String genericNameOrPrefix;
-
-    private PhosphoNetXDisplayTypeIDGenerator(String genericNameOrPrefix)
-    {
-        this.genericNameOrPrefix = genericNameOrPrefix;
-    }
-
-    @Override
-    public String createID()
-    {
-        return genericNameOrPrefix;
-    }
-
-    @Override
-    public String createID(String suffix)
-    {
-        return genericNameOrPrefix + suffix;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/PhosphoNetXModule.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/PhosphoNetXModule.java
deleted file mode 100644
index c736783747dfb8d8cf21f53c1305251a43652d13..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/PhosphoNetXModule.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import com.extjs.gxt.ui.client.widget.menu.MenuItem;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.DisposableTabContent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.ActionMenu;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.ITabActionMenuItemDefinition;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TabActionMenuItemFactory;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.basic.URLMethodWithParameters;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard.MsInjectionSampleAnnotationWizard;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class PhosphoNetXModule implements IModule
-{
-    public static final String ID = GenericConstants.ID_PREFIX + "-proteomics-";
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> viewContext;
-
-    public PhosphoNetXModule(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-    {
-        this.viewContext = viewContext;
-    }
-
-    @Override
-    public List<? extends MenuItem> getMenuItems()
-    {
-        ActionMenu msInjectionSampleAnnotatingMenuItem = TabActionMenuItemFactory.createActionMenu(viewContext, ID,
-                new ITabActionMenuItemDefinition<IPhosphoNetXClientServiceAsync>()
-                    {
-
-                        @Override
-                        public String getName()
-                        {
-                            return "ANNOTATE_MS_INJECTION_SAMPLES";
-                        }
-
-                        @Override
-                        public String getHelpPageTitle()
-                        {
-                            return "Wizard for annotation MS INJECTION " + viewContext.getMessage(
-                                    ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict.SAMPLES).toLowerCase();
-                        }
-
-                        @Override
-                        public DatabaseModificationAwareComponent createComponent(
-                                IViewContext<IPhosphoNetXClientServiceAsync> context)
-                        {
-                            return DatabaseModificationAwareComponent.create(new MsInjectionSampleAnnotationWizard(context));
-                        }
-
-                        @Override
-                        public String tryGetLink()
-                        {
-                            URLMethodWithParameters url = new URLMethodWithParameters("");
-                            url.addParameter((String) BasicConstant.LOCATOR_ACTION_PARAMETER, getName());
-                            return url.toString().substring(1);
-                        }
-                    });
-        ActionMenu msInjectionSampleBrowserMenuItem = TabActionMenuItemFactory.createActionMenu(viewContext, ID,
-                new ITabActionMenuItemDefinition<IPhosphoNetXClientServiceAsync>()
-                    {
-
-                        @Override
-                        public String getName()
-                        {
-                            return "ALL_RAW_DATA_SAMPLES";
-                        }
-
-                        @Override
-                        public String getHelpPageTitle()
-                        {
-                            return "MS INJECTION Data Overview";
-                        }
-
-                        @Override
-                        public DatabaseModificationAwareComponent createComponent(
-                                IViewContext<IPhosphoNetXClientServiceAsync> context)
-                        {
-                            return RawDataSampleGrid.create(context);
-                        }
-
-                        @Override
-                        public String tryGetLink()
-                        {
-                            return null;
-                        }
-                    });
-        return Arrays.asList(msInjectionSampleAnnotatingMenuItem, msInjectionSampleBrowserMenuItem);
-    }
-
-    @Override
-    public String getName()
-    {
-        return viewContext.getMessage(Dict.QUERY_MENU_TITLE);
-    }
-
-    @Override
-    public void initialize(AsyncCallback<Void> callback)
-    {
-        callback.onSuccess(null);
-    }
-
-    @Override
-    public Collection<? extends DisposableTabContent> getSections(
-            IEntityInformationHolderWithIdentifier entity)
-    {
-        return new ArrayList<DisposableTabContent>();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinByExperimentBrowerToolBar.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinByExperimentBrowerToolBar.java
deleted file mode 100644
index d58e10da11f3c52bd9b116390a5ec21ae9581605..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinByExperimentBrowerToolBar.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.List;
-
-import com.extjs.gxt.ui.client.event.BaseEvent;
-import com.extjs.gxt.ui.client.event.Events;
-import com.extjs.gxt.ui.client.event.Listener;
-import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
-import com.extjs.gxt.ui.client.event.SelectionChangedListener;
-import com.extjs.gxt.ui.client.store.ListStore;
-import com.extjs.gxt.ui.client.widget.Label;
-import com.extjs.gxt.ui.client.widget.form.CheckBox;
-import com.extjs.gxt.ui.client.widget.form.ComboBox;
-import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
-import com.extjs.gxt.ui.client.widget.toolbar.LabelToolItem;
-import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.SimplifiedBaseModelData;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.VocabularyTermModel;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.VocabularyTermSelectionWidget;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ProteinByExperimentBrowerToolBar extends ToolBar
-{
-    private static final AggregateFunction DEFAULT_AGGREGATE_FUNCTION = AggregateFunction.MEAN;
-
-    private static final class AggregateOnTreatmentTypeSelectionWidget extends
-            VocabularyTermSelectionWidget
-    {
-
-        private final VocabularyTermModel nothingTermModel;
-
-        AggregateOnTreatmentTypeSelectionWidget(
-                IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-        {
-            super("treatmentType", "treatmentType", false, null, viewContext, null, null);
-            setAllowBlank(false);
-            setForceSelection(true);
-            VocabularyTerm nothingTerm = new VocabularyTerm();
-            nothingTerm.setLabel("(nothing)");
-            nothingTermModel = new VocabularyTermModel(nothingTerm);
-            setValue(nothingTermModel);
-            viewContext.getService().getTreatmentTypeVocabulary(
-                    new AbstractAsyncCallback<Vocabulary>(viewContext)
-                        {
-                            @Override
-                            protected void process(Vocabulary vocabulary)
-                            {
-                                setVocabulary(vocabulary);
-                            }
-                        });
-
-        }
-
-        @Override
-        protected List<VocabularyTermModel> convertItems(List<VocabularyTerm> result)
-        {
-            List<VocabularyTermModel> terms = super.convertItems(result);
-            terms.add(0, nothingTermModel);
-            return terms;
-        }
-
-    }
-
-    private abstract static class SimpleModel<T> extends SimplifiedBaseModelData
-    {
-        private static final long serialVersionUID = 1L;
-
-        private static final String PROPERTY = "property";
-
-        private final T object;
-
-        SimpleModel(T object)
-        {
-            this.object = object;
-            set(PROPERTY, render(object));
-        }
-
-        public final T getObject()
-        {
-            return object;
-        }
-
-        protected abstract String render(T modelObject);
-    }
-
-    private static final class FalseDiscoveryRateModel extends SimpleModel<Double>
-    {
-        private static final long serialVersionUID = 1L;
-
-        FalseDiscoveryRateModel(Double falseDiscoveryRate)
-        {
-            super(falseDiscoveryRate);
-        }
-
-        @Override
-        protected String render(Double modelObject)
-        {
-            int percent = (int) (100 * modelObject);
-            int percentFraction = (int) (1000 * modelObject + 0.5) - 10 * percent;
-            return Integer.toString(percent)
-                    + (percentFraction == 0 ? "" : "." + Integer.toString(percentFraction)) + "%";
-        }
-    }
-
-    private static final class AggregateFunctionModel extends SimpleModel<AggregateFunction>
-    {
-        private static final long serialVersionUID = 1L;
-
-        AggregateFunctionModel(AggregateFunction aggregateFunction)
-        {
-            super(aggregateFunction);
-        }
-
-        @Override
-        protected String render(AggregateFunction modelObject)
-        {
-            return modelObject.getLabel();
-        }
-    }
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> viewContext;
-
-    private final ComboBox<FalseDiscoveryRateModel> fdrComboBox;
-
-    private final ComboBox<AggregateFunctionModel> aggregateFunctionComboBox;
-
-    private final VocabularyTermSelectionWidget treatmentTypeComboBox;
-
-    private final CheckBox aggregateOriginalCheckBox;
-
-    private ProteinByExperimentBrowserGrid browserGrid;
-
-    private Experiment experiment;
-
-    private ProteinSummaryGrid summaryGrid;
-
-    ProteinByExperimentBrowerToolBar(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            Experiment experiment)
-    {
-        this.viewContext = viewContext;
-        this.experiment = experiment;
-        setBorders(true);
-        // WORKAROUND to get all elements in the toolbar present independent of the original width
-        // of the parent
-        setWidth(3000);
-        add(new LabelToolItem(viewContext.getMessage(Dict.FDR_FILTER_LABEL)
-                + GenericConstants.LABEL_SEPARATOR));
-        fdrComboBox = createFDRComboBox(new SelectionChangedListener<FalseDiscoveryRateModel>()
-            {
-
-                @Override
-                public void selectionChanged(SelectionChangedEvent<FalseDiscoveryRateModel> se)
-                {
-                    update();
-                }
-            });
-        add(fdrComboBox);
-        add(new Label("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"));
-        add(new LabelToolItem(viewContext.getMessage(Dict.AGGREGATE_FUNCTION_LABEL)
-                + GenericConstants.LABEL_SEPARATOR));
-        aggregateFunctionComboBox =
-                createAggregateFunctionComboBox(new SelectionChangedListener<AggregateFunctionModel>()
-                    {
-
-                        @Override
-                        public void selectionChanged(
-                                SelectionChangedEvent<AggregateFunctionModel> se)
-                        {
-                            update();
-                        }
-
-                    });
-        add(aggregateFunctionComboBox);
-        add(new LabelToolItem(viewContext.getMessage(Dict.AGGREGATE_ON_TREATMENT_TYPE_LABEL)
-                + GenericConstants.LABEL_SEPARATOR));
-        treatmentTypeComboBox = new AggregateOnTreatmentTypeSelectionWidget(viewContext);
-        treatmentTypeComboBox
-                .addSelectionChangedListener(new SelectionChangedListener<VocabularyTermModel>()
-                    {
-
-                        @Override
-                        public void selectionChanged(SelectionChangedEvent<VocabularyTermModel> se)
-                        {
-                            update();
-
-                        }
-                    });
-        add(treatmentTypeComboBox);
-        add(new LabelToolItem(viewContext.getMessage(Dict.AGGREGATE_ORIGINAL_LABEL)
-                + GenericConstants.LABEL_SEPARATOR));
-        aggregateOriginalCheckBox = new CheckBox();
-        aggregateOriginalCheckBox.addListener(Events.Change, new Listener<BaseEvent>()
-            {
-
-                @Override
-                public void handleEvent(BaseEvent be)
-                {
-                    update();
-                }
-            });
-        add(aggregateOriginalCheckBox);
-    }
-
-    private ComboBox<FalseDiscoveryRateModel> createFDRComboBox(
-            SelectionChangedListener<FalseDiscoveryRateModel> changedListener)
-    {
-        ComboBox<FalseDiscoveryRateModel> comboBox = new ComboBox<FalseDiscoveryRateModel>();
-        ListStore<FalseDiscoveryRateModel> listStore = new ListStore<FalseDiscoveryRateModel>();
-        FalseDiscoveryRateModel fdr0 = new FalseDiscoveryRateModel(0.0);
-        listStore.add(fdr0);
-        listStore.add(new FalseDiscoveryRateModel(0.01));
-        listStore.add(new FalseDiscoveryRateModel(0.025));
-        listStore.add(new FalseDiscoveryRateModel(0.05));
-        listStore.add(new FalseDiscoveryRateModel(0.1));
-        comboBox.setStore(listStore);
-        comboBox.setDisplayField(SimpleModel.PROPERTY);
-        comboBox.setValue(fdr0);
-        comboBox.addSelectionChangedListener(changedListener);
-        comboBox.setEnabled(true);
-        comboBox.setWidth(70);
-        comboBox.setTriggerAction(TriggerAction.ALL);
-        AbstractImagePrototype infoIcon =
-                AbstractImagePrototype.create(viewContext.getImageBundle().getInfoIcon());
-        FieldUtil.addInfoIcon(comboBox, viewContext.getMessage(Dict.FDR_COMBO_INFO),
-                infoIcon.createImage(), 3, 3);
-        return comboBox;
-    }
-
-    private ComboBox<AggregateFunctionModel> createAggregateFunctionComboBox(
-            SelectionChangedListener<AggregateFunctionModel> changedListener)
-    {
-        ComboBox<AggregateFunctionModel> comboBox = new ComboBox<AggregateFunctionModel>();
-        ListStore<AggregateFunctionModel> store = new ListStore<AggregateFunctionModel>();
-        AggregateFunctionModel defaultModel = null;
-        for (AggregateFunction aggregateFunction : AggregateFunction.values())
-        {
-            AggregateFunctionModel model = new AggregateFunctionModel(aggregateFunction);
-            store.add(model);
-            if (aggregateFunction == DEFAULT_AGGREGATE_FUNCTION)
-            {
-                defaultModel = model;
-            }
-        }
-        comboBox.setStore(store);
-        comboBox.setDisplayField(SimpleModel.PROPERTY);
-        comboBox.setValue(defaultModel);
-        comboBox.addSelectionChangedListener(changedListener);
-        comboBox.setWidth(100);
-        comboBox.setEnabled(true);
-        comboBox.setTriggerAction(TriggerAction.ALL);
-        return comboBox;
-    }
-
-    Experiment getExperimentOrNull()
-    {
-        return experiment;
-    }
-
-    void setBrowserGrid(ProteinByExperimentBrowserGrid browserGrid)
-    {
-        this.browserGrid = browserGrid;
-    }
-
-    void setSummaryGrid(ProteinSummaryGrid summaryGrid)
-    {
-        this.summaryGrid = summaryGrid;
-    }
-
-    void update()
-    {
-        if (experiment != null)
-        {
-            final TechId experimentID = TechId.create(experiment);
-            browserGrid.setLoadMaskImmediately(true);
-            browserGrid.setPostRefreshCallback(new IDataRefreshCallback()
-                {
-                    @Override
-                    public void postRefresh(boolean wasSuccessful)
-                    {
-                        if (summaryGrid != null)
-                        {
-                            summaryGrid.setLoadMaskImmediately(true);
-                            summaryGrid.update(experimentID);
-                        }
-                    }
-                });
-            double falseDiscoveryRate = getSelection(fdrComboBox, 0.0);
-            AggregateFunction aggregateFunction =
-                    getSelection(aggregateFunctionComboBox, DEFAULT_AGGREGATE_FUNCTION);
-            VocabularyTermModel value = treatmentTypeComboBox.getValue();
-            String treatmentTypeCode = value == null ? null : value.getTerm().getCode();
-            AsyncCallback<List<AbundanceColumnDefinition>> callback =
-                    new AbundanceColumnDefinitionsCallback(viewContext, browserGrid, experimentID,
-                            falseDiscoveryRate, aggregateFunction, treatmentTypeCode,
-                            aggregateOriginalCheckBox.getValue());
-            viewContext.getService().getAbundanceColumnDefinitionsForProteinByExperiment(
-                    experimentID, treatmentTypeCode, callback);
-        }
-    }
-
-    ListProteinByExperimentCriteria getCriteria()
-    {
-        ListProteinByExperimentCriteria criteria = new ListProteinByExperimentCriteria();
-        criteria.setExperimentID(TechId.create(experiment));
-        criteria.setFalseDiscoveryRate(getSelection(fdrComboBox, 0.0));
-        criteria.setAggregateFunction(getSelection(aggregateFunctionComboBox, DEFAULT_AGGREGATE_FUNCTION));
-        VocabularyTermModel value = treatmentTypeComboBox.getValue();
-        String treatmentTypeCode = value == null ? null : value.getTerm().getCode();
-        criteria.setTreatmentTypeCode(treatmentTypeCode);
-        criteria.setAggregateOriginal(aggregateOriginalCheckBox.getValue());
-        return criteria;
-    }
-
-    private <T> T getSelection(ComboBox<? extends SimpleModel<T>> comboBox, T defaultValue)
-    {
-        List<? extends SimpleModel<T>> selection = comboBox.getSelection();
-        return selection.isEmpty() ? defaultValue : selection.get(0).getObject();
-    }
-
-    private static final class AbundanceColumnDefinitionsCallback extends
-            AbstractAsyncCallback<List<AbundanceColumnDefinition>>
-    {
-        private final ProteinByExperimentBrowserGrid browserGrid;
-
-        private final TechId experimentID;
-
-        private final double falseDiscoveryRate;
-
-        private final AggregateFunction aggregateFunction;
-
-        private final String treatmentTypeCode;
-
-        private final boolean aggregateOriginal;
-
-        public AbundanceColumnDefinitionsCallback(IViewContext<?> viewContext,
-                ProteinByExperimentBrowserGrid browserGrid, TechId experimentID, double falseDiscoveryRate,
-                AggregateFunction aggregateFunction, String treatmentTypeCode,
-                boolean aggregateOriginal)
-        {
-            super(viewContext);
-            this.browserGrid = browserGrid;
-            this.experimentID = experimentID;
-            this.falseDiscoveryRate = falseDiscoveryRate;
-            this.aggregateFunction = aggregateFunction;
-            this.treatmentTypeCode = treatmentTypeCode;
-            this.aggregateOriginal = aggregateOriginal;
-        }
-
-        @Override
-        protected void process(List<AbundanceColumnDefinition> result)
-        {
-            browserGrid.update(experimentID, falseDiscoveryRate, aggregateFunction,
-                    treatmentTypeCode, aggregateOriginal, result);
-        }
-
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinByExperimentBrowserGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinByExperimentBrowserGrid.java
deleted file mode 100644
index 0667f7b297ba9fe97bb82feec4f0b452d21875c2..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinByExperimentBrowserGrid.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-
-import com.extjs.gxt.ui.client.widget.Component;
-import com.extjs.gxt.ui.client.widget.LayoutContainer;
-import com.extjs.gxt.ui.client.widget.TabItem;
-import com.extjs.gxt.ui.client.widget.TabPanel;
-import com.extjs.gxt.ui.client.widget.layout.FitLayout;
-import com.extjs.gxt.ui.client.widget.layout.RowData;
-import com.extjs.gxt.ui.client.widget.layout.RowLayout;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICellListenerAndLinkGenerator;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinBrowserColumnIDs;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ProteinByExperimentBrowserGrid extends TypedTableGrid<ProteinInfo>
-{
-    private static final String PREFIX = GenericConstants.ID_PREFIX
-            + "protein-by-experiment-browser";
-
-    // browser consists of the grid and additional toolbars (paging, filtering)
-    public static final String BROWSER_ID = PREFIX + "_main";
-
-    public static final String GRID_ID = PREFIX + TypedTableGrid.GRID_POSTFIX;
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
-
-    private final ProteinByExperimentBrowerToolBar toolbar;
-
-    private ListProteinByExperimentCriteria criteria;
-
-    private IDataRefreshCallback postRefreshCallback = new IDataRefreshCallback()
-        {
-            @Override
-            public void postRefresh(boolean wasSuccessful)
-            {
-            }
-        };
-
-    static IDisposableComponent create(
-            final IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            BasicEntityType experimentType, Experiment experiment)
-    {
-        final IDisposableComponent summaryGrid = ProteinSummaryGrid.create(viewContext);
-        ProteinByExperimentBrowserGrid browserGrid =
-                new ProteinByExperimentBrowserGrid(viewContext, experiment);
-        final IDisposableComponent disposableBrowerGrid = browserGrid.asDisposableWithoutToolbar();
-        final ProteinByExperimentBrowerToolBar toolBar = browserGrid.toolbar;
-        toolBar.setSummaryGrid((ProteinSummaryGrid) summaryGrid.getComponent());
-        final LayoutContainer container = new LayoutContainer();
-        container.setLayout(new RowLayout());
-        container.add(toolBar);
-        TabPanel tabPanel = new TabPanel();
-        tabPanel.add(createTab(disposableBrowerGrid, viewContext, Dict.PROTEIN_BROWSER));
-        tabPanel.add(createTab(summaryGrid, viewContext, Dict.PROTEIN_SUMMARY));
-        container.add(tabPanel, new RowData(1, 1));
-        toolBar.update();
-        return new IDisposableComponent()
-            {
-                @Override
-                public void update(Set<DatabaseModificationKind> observedModifications)
-                {
-                    disposableBrowerGrid.update(observedModifications);
-                    summaryGrid.update(observedModifications);
-                }
-
-                @Override
-                public DatabaseModificationKind[] getRelevantModifications()
-                {
-                    return disposableBrowerGrid.getRelevantModifications();
-                }
-
-                @Override
-                public Component getComponent()
-                {
-                    return container;
-                }
-
-                @Override
-                public void dispose()
-                {
-                    disposableBrowerGrid.dispose();
-                    summaryGrid.dispose();
-                }
-            };
-    }
-
-    private static TabItem createTab(IDisposableComponent disposableComponent,
-            IMessageProvider messageProvider, String titleKey)
-    {
-        TabItem tabItem = new TabItem(messageProvider.getMessage(titleKey));
-        tabItem.setLayout(new FitLayout());
-        Component component = disposableComponent.getComponent();
-        component.setHeight("100%");
-        tabItem.add(component);
-        return tabItem;
-    }
-
-    private ProteinByExperimentBrowserGrid(
-            final IViewContext<IPhosphoNetXClientServiceAsync> viewContext, final Experiment experiment)
-    {
-        super(viewContext.getCommonViewContext(), BROWSER_ID, true,
-                PhosphoNetXDisplayTypeIDGenerator.PROTEIN_BY_EXPERIMENT_BROWSER_GRID);
-        specificViewContext = viewContext;
-        toolbar = new ProteinByExperimentBrowerToolBar(viewContext, experiment);
-        toolbar.setBrowserGrid(this);
-        registerListenerAndLinkGenerator(ProteinBrowserColumnIDs.ACCESSION_NUMBER,
-                new ICellListenerAndLinkGenerator<ProteinInfo>()
-                    {
-                        @Override
-                        public void handle(TableModelRowWithObject<ProteinInfo> rowItem,
-                                boolean keyPressed)
-                        {
-                            AbstractTabItemFactory tabItemFactory =
-                                    ProteinViewer.createTabItemFactory(viewContext,
-                                            toolbar.getExperimentOrNull(),
-                                            rowItem.getObjectOrNull());
-                            tabItemFactory.setInBackground(keyPressed);
-                            DispatcherHelper.dispatchNaviEvent(tabItemFactory);
-                        }
-
-                        @Override
-                        public String tryGetLink(ProteinInfo entity,
-                                ISerializableComparable comparableValue)
-                        {
-                            return ProteinViewLocatorResolver.createLink(experiment, entity);
-                        }
-                    });
-    }
-
-    void update(TechId experimentID, double falseDiscoveryRate,
-            AggregateFunction aggregateFunction, String treatmentTypeCode,
-            boolean aggregateOriginal, List<AbundanceColumnDefinition> definitions)
-    {
-        criteria = new ListProteinByExperimentCriteria();
-        criteria.setExperimentID(experimentID);
-        criteria.setFalseDiscoveryRate(falseDiscoveryRate);
-        criteria.setAggregateFunction(aggregateFunction);
-        criteria.setTreatmentTypeCode(treatmentTypeCode);
-        criteria.setAggregateOriginal(aggregateOriginal);
-        refresh(postRefreshCallback, true);
-    }
-
-    void setPostRefreshCallback(IDataRefreshCallback postRefreshCallback)
-    {
-        this.postRefreshCallback = postRefreshCallback;
-    }
-
-    @Override
-    protected String translateColumnIdToDictionaryKey(String columnID)
-    {
-        return columnID.toLowerCase();
-    }
-
-    @Override
-    protected List<String> getColumnIdsOfFilters()
-    {
-        return Arrays.asList(ProteinBrowserColumnIDs.PROTEIN_DESCRIPTION);
-    }
-
-    @Override
-    protected void listTableRows(
-            DefaultResultSetConfig<String, TableModelRowWithObject<ProteinInfo>> resultSetConfig,
-            AbstractAsyncCallback<TypedTableResultSet<ProteinInfo>> callback)
-    {
-        if (criteria == null)
-        {
-            criteria = toolbar.getCriteria();
-        }
-        criteria.copyPagingConfig(resultSetConfig);
-        specificViewContext.getService().listProteinsByExperiment(criteria, callback);
-    }
-
-    @Override
-    protected void prepareExportEntities(TableExportCriteria<TableModelRowWithObject<ProteinInfo>> exportCriteria,
-            AbstractAsyncCallback<String> callback)
-    {
-        specificViewContext.getService().prepareExportProteins(exportCriteria, callback);
-    }
-
-    @Override
-    public void update(Set<DatabaseModificationKind> observedModifications)
-    {
-        toolbar.update();
-    }
-
-    @Override
-    public DatabaseModificationKind[] getRelevantModifications()
-    {
-        return new DatabaseModificationKind[]
-        { DatabaseModificationKind.createOrDelete(ObjectKind.DATA_SET),
-                DatabaseModificationKind.edit(ObjectKind.SAMPLE) };
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinRelatedSampleGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinRelatedSampleGrid.java
deleted file mode 100644
index 0c430904fc748fa946d8eefd364764509f9daefe..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinRelatedSampleGrid.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright 2008 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.Arrays;
-import java.util.List;
-
-import com.extjs.gxt.ui.client.widget.LayoutContainer;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.LinkExtractor;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICellListenerAndLinkGenerator;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListSampleAbundanceByProteinCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinRelatedSampleGridColumnIDs;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.SampleWithPropertiesAndAbundance;
-
-/**
- * A {@link LayoutContainer} which contains the grid where {@link SampleWithPropertiesAndAbundance}s of specified Protein are displayed.
- * 
- * @author Piotr Buczek
- */
-public class ProteinRelatedSampleGrid extends TypedTableGrid<ProteinRelatedSample>
-{
-    private static final String PREFIX = GenericConstants.ID_PREFIX + "protein_related_sample_grid";
-
-    // browser consists of the grid and additional toolbars (paging, filtering)
-    public static final String BROWSER_ID = PREFIX + "_main";
-
-    public static final String GRID_ID = PREFIX + TypedTableGrid.GRID_POSTFIX;
-
-    public static final String EDIT_BUTTON_ID = BROWSER_ID + "_edit-button";
-
-    public static final String SHOW_DETAILS_BUTTON_ID = BROWSER_ID + "_show-details-button";
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> phosphoViewContext;
-
-    public static IDisposableComponent createGridForProteinSamples(
-            final IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            final TechId proteinReferenceID, Long experimentIDOrNull, final String gridId)
-    {
-        final ListSampleAbundanceByProteinCriteria criteria =
-                new ListSampleAbundanceByProteinCriteria();
-        criteria.setProteinReferenceID(proteinReferenceID);
-        criteria.setExperimentID(experimentIDOrNull);
-        final ProteinRelatedSampleGrid browserGrid =
-                new ProteinRelatedSampleGrid(viewContext, criteria, gridId);
-        return browserGrid.asDisposableWithoutToolbar();
-    }
-
-    private ListSampleAbundanceByProteinCriteria criteria;
-
-    private ProteinRelatedSampleGrid(
-            final IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            ListSampleAbundanceByProteinCriteria criteria, String gridId)
-    {
-        super(viewContext.getCommonViewContext(), gridId, true,
-                DisplayTypeIDGenerator.SAMPLE_DETAILS_GRID);
-        this.phosphoViewContext = viewContext;
-        setId(BROWSER_ID);
-        this.criteria = criteria;
-        registerListenerAndLinkGenerator(ProteinRelatedSampleGridColumnIDs.SAMPLE_IDENTIFIER,
-                new ICellListenerAndLinkGenerator<ProteinRelatedSample>()
-                    {
-
-                        @Override
-                        public void handle(TableModelRowWithObject<ProteinRelatedSample> rowItem,
-                                boolean specialKeyPressed)
-                        {
-                            showEntityInformationHolderViewer(rowItem.getObjectOrNull(), false,
-                                    specialKeyPressed);
-                        }
-
-                        @Override
-                        public String tryGetLink(ProteinRelatedSample entity,
-                                ISerializableComparable comparableValue)
-                        {
-                            return LinkExtractor.tryExtract(entity);
-                        }
-                    });
-    }
-
-    @Override
-    protected void listTableRows(
-            DefaultResultSetConfig<String, TableModelRowWithObject<ProteinRelatedSample>> resultSetConfig,
-            AbstractAsyncCallback<TypedTableResultSet<ProteinRelatedSample>> callback)
-    {
-        criteria.copyPagingConfig(resultSetConfig);
-        phosphoViewContext.getService().listProteinRelatedSamplesByProtein(criteria, callback);
-    }
-
-    @Override
-    protected List<String> getColumnIdsOfFilters()
-    {
-        return Arrays.asList(ProteinRelatedSampleGridColumnIDs.SAMPLE_IDENTIFIER,
-                ProteinRelatedSampleGridColumnIDs.ABUNDANCE);
-    }
-
-    @Override
-    protected void prepareExportEntities(
-            TableExportCriteria<TableModelRowWithObject<ProteinRelatedSample>> exportCriteria,
-            AbstractAsyncCallback<String> callback)
-    {
-        phosphoViewContext.getService().prepareExportProteinRelatedSamples(exportCriteria, callback);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinRenderers.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinRenderers.java
deleted file mode 100644
index ce30c2960cfdf8a7800fbd8ff47dc45f7f3a8c55..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinRenderers.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright 2007 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.extjs.gxt.ui.client.widget.Text;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.InlineHTML;
-import com.google.gwt.user.client.ui.Widget;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.PropertyValueRenderers.EntityInformationHolderPropertyValueRenderer;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.AbstractPropertyValueRenderer;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.IPropertyValueRenderer;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.ExternalHyperlink;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.ProteinViewer.DatasetInformationHolder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AccessionNumberProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Occurrence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.OccurrenceUtil;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Peptide;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.PeptideModification;
-
-/**
- * Utility method for creating {@link IPropertyValueRenderer} instances or directly rendering stuff in {@link ProteinViewer}.
- * 
- * @author Tomasz Pylak
- * @author Franz-Josef Elmer
- */
-public final class ProteinRenderers
-{
-    private static final class Symbol
-    {
-        private final char character;
-
-        private boolean inPeptide;
-
-        private Double mass;
-
-        Symbol(char character)
-        {
-            this.character = character;
-        }
-
-        public char getCharacter()
-        {
-            return character;
-        }
-
-        public boolean isInPeptide()
-        {
-            return inPeptide;
-        }
-
-        public void inPeptide()
-        {
-            this.inPeptide = true;
-        }
-
-        public Double getMass()
-        {
-            return mass;
-        }
-
-        public void setMass(Double mass)
-        {
-            this.mass = mass;
-        }
-    }
-
-    private ProteinRenderers()
-    {
-        // Can not be instantiated
-    }
-
-    /**
-     * Allows to render a property identifier which is a link to an external page with a description.
-     */
-    public final static IPropertyValueRenderer<AccessionNumberProvider> createProteinIdentLinkRenderer(
-            final IViewContext<?> viewContext)
-    {
-        return new AccessionNumberRenderer(viewContext);
-    }
-
-    public final static IPropertyValueRenderer<Peptide> createPeptideRenderer(
-            final IViewContext<?> viewContext)
-    {
-        return new PeptideRenderer(viewContext);
-    }
-
-    public final static IPropertyValueRenderer<Experiment> createExperimentPropertyValueRenderer(
-            final IViewContext<?> viewContext)
-    {
-        return ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.PropertyValueRenderers
-                .createExperimentPropertyValueRenderer(viewContext);
-    }
-
-    public final static IPropertyValueRenderer<DatasetInformationHolder> createEntityInformationPropertyValueRenderer(
-            final IViewContext<?> viewContext)
-    {
-        return new EntityInformationHolderPropertyValueRenderer<DatasetInformationHolder>(
-                viewContext);
-    }
-
-    public static String getFixedWidthHTMLString(String text)
-    {
-        return "<font style='font-family:monospace'>" + text + "</font>";
-    }
-
-    /** Produces an HTML code with all occurrences properly marked */
-    public static String markOccurrencesWithHtml(String proteinSequence, List<Peptide> peptides,
-            int blockLength)
-    {
-        List<Symbol> symbols = createSymbols(proteinSequence, peptides);
-        StringBuilder builder = new StringBuilder();
-        boolean inPeptide = false;
-        for (int i = 0, n = symbols.size(); i < n; i++)
-        {
-            if (i > 0)
-            {
-                if (i % blockLength == 0)
-                {
-                    builder.append(" ");
-                }
-            }
-            Symbol symbol = symbols.get(i);
-            boolean nextInPeptide = symbol.isInPeptide();
-            if (inPeptide != nextInPeptide)
-            {
-                builder.append(nextInPeptide ? "<font color='red'>" : "</font>");
-            }
-            inPeptide = nextInPeptide;
-            Double mass = symbol.getMass();
-            char character = symbol.getCharacter();
-            if (mass == null)
-            {
-                builder.append(character);
-            } else
-            {
-                builder.append(renderAminoAcidSymbol(character, i + 1, mass));
-            }
-
-        }
-        return builder.toString();
-    }
-
-    public static String renderAminoAcidSymbol(char character, Integer positionOrNull, double mass)
-    {
-        String tooltip = positionOrNull == null ? "" : "position=" + positionOrNull + ", ";
-        tooltip += "mass=" + mass;
-
-        return "<font style='text-decoration:underline; cursor:pointer' color='blue' title='"
-                + tooltip + "'>" + character + "</font>";
-    }
-
-    private static List<Symbol> createSymbols(String proteinSequence, List<Peptide> peptides)
-    {
-        List<Symbol> symbols = new ArrayList<Symbol>();
-        for (int i = 0, n = proteinSequence.length(); i < n; i++)
-        {
-            symbols.add(new Symbol(proteinSequence.charAt(i)));
-        }
-
-        for (Peptide peptide : peptides)
-        {
-            List<Occurrence> occurances =
-                    OccurrenceUtil.findAllOccurrences(proteinSequence, peptide.getSequence());
-            List<PeptideModification> modifications = peptide.getModifications();
-            for (Occurrence occurrence : occurances)
-            {
-                int startIndex = occurrence.getStartIndex();
-                for (int i = startIndex, n = occurrence.getEndIndex(); i <= n; i++)
-                {
-                    symbols.get(i).inPeptide();
-                }
-                for (PeptideModification peptideModification : modifications)
-                {
-                    Symbol symbol = symbols.get(startIndex + peptideModification.getPosition() - 1);
-                    symbol.setMass(peptideModification.getMass());
-                }
-            }
-        }
-        return symbols;
-    }
-
-    private final static class AccessionNumberRenderer extends
-            AbstractPropertyValueRenderer<AccessionNumberProvider>
-    {
-
-        AccessionNumberRenderer(final IMessageProvider messageProvider)
-        {
-            super(messageProvider);
-        }
-
-        @Override
-        public Widget getAsWidget(AccessionNumberProvider object)
-        {
-            String accessionNumber = object.getAccessionNumber();
-            String type = object.getAccessionNumberType();
-            String url = AccessionNumberURLCreator.tryToCreateURL(type, accessionNumber);
-            if (url == null)
-            {
-                return new Text(accessionNumber);
-            }
-            return new ExternalHyperlink(accessionNumber, url);
-        }
-    }
-
-    private final static class PeptideRenderer extends AbstractPropertyValueRenderer<Peptide>
-    {
-
-        PeptideRenderer(final IMessageProvider messageProvider)
-        {
-            super(messageProvider);
-        }
-
-        @Override
-        public Widget getAsWidget(Peptide peptide)
-        {
-            StringBuilder builder = new StringBuilder();
-            String sequence = peptide.getSequence();
-            List<PeptideModification> modifications = peptide.getModifications();
-            Map<Integer, PeptideModification> modificationsMap = new HashMap<Integer, PeptideModification>();
-            for (PeptideModification modification : modifications)
-            {
-                modificationsMap.put(modification.getPosition(), modification);
-            }
-            for (int i = 0, n = sequence.length(); i < n; i++)
-            {
-                char c = sequence.charAt(i);
-                PeptideModification peptideModification = modificationsMap.get(i + 1);
-                if (peptideModification != null)
-                {
-                    builder.append(renderAminoAcidSymbol(c, null, peptideModification.getMass()));
-                } else
-                {
-                    builder.append(c);
-                }
-            }
-            final FlowPanel panel = new FlowPanel();
-            panel.add(new InlineHTML(getFixedWidthHTMLString(builder.toString())));
-            return panel;
-        }
-
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSamplesSection.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSamplesSection.java
deleted file mode 100644
index 365c2d64c71456ab55b2c69b939109bace72a979..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSamplesSection.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2008 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import com.extjs.gxt.ui.client.widget.ContentPanel;
-import com.extjs.gxt.ui.client.widget.layout.FitLayout;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.TabContent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDatabaseModificationObserver;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-
-/**
- * {@link TabContent} containing specified protein samples.
- * 
- * @author Piotr Buczek
- */
-public class ProteinSamplesSection extends ContentPanel
-{
-    private static final String PREFIX = "protein-samples-section_";
-
-    public static final String ID_PREFIX = GenericConstants.ID_PREFIX + PREFIX;
-
-    private IDisposableComponent disposableComponent;
-
-    public ProteinSamplesSection(final IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            final TechId proteinReferenceID, IIdAndCodeHolder experimentOrNull)
-    {
-        setHeading(viewContext.getMessage(Dict.SAMPLES));
-        setHeaderVisible(true);
-        setCollapsible(true);
-        setAnimCollapse(false);
-        setBodyBorder(true);
-        setLayout(new FitLayout());
-        Long experimentID = experimentOrNull == null ? null : experimentOrNull.getId();
-        disposableComponent = ProteinRelatedSampleGrid.createGridForProteinSamples(viewContext,
-                proteinReferenceID, experimentID, createGridId(proteinReferenceID));
-        add(disposableComponent.getComponent());
-    }
-
-    // @Private
-    static String createGridId(TechId containerId)
-    {
-        return ID_PREFIX + containerId + "-grid";
-    }
-
-    @Override
-    protected void onDetach()
-    {
-        if (disposableComponent != null)
-        {
-            disposableComponent.dispose();
-        }
-        super.onDetach();
-    }
-
-    IDatabaseModificationObserver tryGetDatabaseModificationObserver()
-    {
-        return disposableComponent;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSequenceGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSequenceGrid.java
deleted file mode 100644
index 05f9e20152d63a130527c4df00c4fbe70882a868..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSequenceGrid.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.Arrays;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinSequenceCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinSequenceGrid extends TypedTableGrid<ProteinSequence>
-{
-    private static final String PREFIX = GenericConstants.ID_PREFIX + "protein-sequence-browser";
-
-    public static final String BROWSER_ID = PREFIX + "_main";
-
-    public static final String GRID_ID = PREFIX + TypedTableGrid.GRID_POSTFIX;
-
-    static IDisposableComponent create(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            Experiment experimentOrNull, TechId proteinReferenceID)
-    {
-        return new ProteinSequenceGrid(viewContext, experimentOrNull, proteinReferenceID)
-                .asDisposableWithoutToolbar();
-    }
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
-
-    private ListProteinSequenceCriteria criteria;
-
-    private ProteinSequenceGrid(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            Experiment experimentOrNull, TechId proteinReferenceID)
-    {
-        super(viewContext.getCommonViewContext(), BROWSER_ID + proteinReferenceID, true,
-                PhosphoNetXDisplayTypeIDGenerator.PROTEIN_SEQUENCE_BROWSER_GRID);
-        specificViewContext = viewContext;
-        criteria = new ListProteinSequenceCriteria();
-        if (experimentOrNull != null)
-        {
-            criteria.setExperimentID(new TechId(experimentOrNull.getId()));
-        }
-        criteria.setProteinReferenceID(proteinReferenceID);
-    }
-
-    @Override
-    protected String translateColumnIdToDictionaryKey(String columnID)
-    {
-        return columnID.toLowerCase();
-    }
-
-    @Override
-    protected List<String> getColumnIdsOfFilters()
-    {
-        return Arrays.asList();
-    }
-
-    @Override
-    protected void listTableRows(
-            DefaultResultSetConfig<String, TableModelRowWithObject<ProteinSequence>> resultSetConfig,
-            AbstractAsyncCallback<TypedTableResultSet<ProteinSequence>> callback)
-    {
-        criteria.copyPagingConfig(resultSetConfig);
-        specificViewContext.getService().listSequencesByProteinReference(criteria, callback);
-    }
-
-    @Override
-    protected void prepareExportEntities(
-            TableExportCriteria<TableModelRowWithObject<ProteinSequence>> exportCriteria,
-            AbstractAsyncCallback<String> callback)
-    {
-        specificViewContext.getService().prepareExportProteinSequences(exportCriteria, callback);
-    }
-
-    @Override
-    public DatabaseModificationKind[] getRelevantModifications()
-    {
-        return new DatabaseModificationKind[0];
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSummaryGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSummaryGrid.java
deleted file mode 100644
index 6dc527a0d59c861db25c48592f412a9fed24ad2f..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSummaryGrid.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.Arrays;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinSummaryByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinSummaryGridColumnIDs;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ProteinSummaryGrid extends TypedTableGrid<ProteinSummary>
-{
-    private static final String PREFIX =
-            GenericConstants.ID_PREFIX + "protein-summary";
-
-    // browser consists of the grid and additional toolbars (paging, filtering)
-    public static final String BROWSER_ID = PREFIX + "_main";
-
-    public static final String GRID_ID = PREFIX + TypedTableGrid.GRID_POSTFIX;
-
-    static IDisposableComponent create(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-    {
-        return new ProteinSummaryGrid(viewContext).asDisposableWithoutToolbar();
-    }
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
-
-    private ListProteinSummaryByExperimentCriteria criteria;
-
-    ProteinSummaryGrid(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-    {
-        super(viewContext.getCommonViewContext(), BROWSER_ID, true,
-                PhosphoNetXDisplayTypeIDGenerator.PROTEIN_SUMMARY_BROWSER_GRID);
-        specificViewContext = viewContext;
-    }
-
-    void update(TechId experimentID)
-    {
-        criteria = new ListProteinSummaryByExperimentCriteria();
-        criteria.setExperimentID(experimentID);
-        refresh(true);
-    }
-
-    @Override
-    protected String translateColumnIdToDictionaryKey(String columnID)
-    {
-        return ProteinSummaryGridColumnIDs.FDR.equals(columnID) ? "false_discovery_rate_column"
-                : columnID.toLowerCase();
-    }
-
-    @Override
-    protected List<String> getColumnIdsOfFilters()
-    {
-        return Arrays.asList(ProteinSummaryGridColumnIDs.FDR);
-    }
-
-    @Override
-    protected void listTableRows(
-            DefaultResultSetConfig<String, TableModelRowWithObject<ProteinSummary>> resultSetConfig,
-            AbstractAsyncCallback<TypedTableResultSet<ProteinSummary>> callback)
-    {
-        if (criteria != null)
-        {
-            criteria.copyPagingConfig(resultSetConfig);
-            specificViewContext.getService().listProteinSummariesByExperiment(criteria, callback);
-        }
-    }
-
-    @Override
-    protected void prepareExportEntities(TableExportCriteria<TableModelRowWithObject<ProteinSummary>> exportCriteria,
-            AbstractAsyncCallback<String> callback)
-    {
-        specificViewContext.getService().prepareExportProteinSummary(exportCriteria, callback);
-    }
-
-    @Override
-    public DatabaseModificationKind[] getRelevantModifications()
-    {
-        return new DatabaseModificationKind[0];
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewLocatorResolver.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewLocatorResolver.java
deleted file mode 100644
index f6d7f3eea2db4ddb976aba705bd8403af09c697b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewLocatorResolver.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.AbstractViewLocatorResolver;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.ViewLocator;
-import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.URLMethodWithParameters;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinByExperiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-
-/**
- * Locator resolver for protein details view.
- *
- * @author Franz-Josef Elmer
- */
-public class ProteinViewLocatorResolver extends AbstractViewLocatorResolver
-{
-    private static final String ACTION = "PROTEIN";
-
-    private static final String EXPERIMENT_PERM_ID = "experimentPermId";
-
-    private static final String PROTEIN_ID = "id";
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> viewContext;
-
-    public ProteinViewLocatorResolver(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-    {
-        super(ACTION);
-        this.viewContext = viewContext;
-    }
-
-    @Override
-    public void resolve(ViewLocator locator) throws UserFailureException
-    {
-        String experimentPermID = getMandatoryParameter(locator, EXPERIMENT_PERM_ID);
-        final TechId proteinID = new TechId(new Long(getMandatoryParameter(locator, PROTEIN_ID)));
-        viewContext.log("resolve protein " + proteinID + " for experiment " + experimentPermID);
-        viewContext.getCommonService().getExperimentInfoByPermId(experimentPermID,
-                new AbstractAsyncCallback<Experiment>(viewContext)
-                    {
-                        @Override
-                        protected void process(final Experiment experiment)
-                        {
-                            IPhosphoNetXClientServiceAsync service =
-                                    ProteinViewLocatorResolver.this.viewContext.getService();
-                            service.getProteinByExperiment(new TechId(experiment.getId()),
-                                    proteinID, new AbstractAsyncCallback<ProteinByExperiment>(
-                                            viewContext)
-                                        {
-                                            @Override
-                                            protected void process(final ProteinByExperiment protein)
-                                            {
-                                                AbstractTabItemFactory tabItemFactory =
-                                                        ProteinViewer
-                                                                .createTabItemFactory(
-                                                                        ProteinViewLocatorResolver.this.viewContext,
-                                                                        experiment, protein);
-                                                DispatcherHelper.dispatchNaviEvent(tabItemFactory);
-                                            }
-
-                                        });
-                        }
-                    });
-    }
-
-    static String createLink(final Experiment experiment, ProteinInfo entity)
-    {
-        URLMethodWithParameters url = new URLMethodWithParameters("");
-        url.addParameter((String) BasicConstant.LOCATOR_ACTION_PARAMETER, ACTION);
-        url.addParameter(ProteinViewLocatorResolver.EXPERIMENT_PERM_ID,
-                experiment.getPermId());
-        url.addParameter(ProteinViewLocatorResolver.PROTEIN_ID,
-                Long.toString(entity.getId().getId()));
-        return url.toStringWithoutDelimiterPrefix();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewer.java
deleted file mode 100644
index d061ad1f615d35ce71cf0eb36714ca25eba13f39..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewer.java
+++ /dev/null
@@ -1,454 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import com.extjs.gxt.ui.client.Style.LayoutRegion;
-import com.extjs.gxt.ui.client.Style.Scroll;
-import com.extjs.gxt.ui.client.widget.ContentPanel;
-import com.extjs.gxt.ui.client.widget.LayoutContainer;
-import com.extjs.gxt.ui.client.widget.TabItem;
-import com.extjs.gxt.ui.client.widget.TabPanel;
-import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
-import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
-import com.extjs.gxt.ui.client.widget.layout.FitLayout;
-import com.extjs.gxt.ui.client.widget.layout.RowData;
-import com.extjs.gxt.ui.client.widget.layout.RowLayout;
-
-import ch.systemsx.cisd.common.shared.basic.string.StringUtils;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AsyncCallbackWithProgressBar;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.DisposableTabContent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.CompositeDatabaseModificationObserver;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDatabaseModificationObserver;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractViewerWithVerticalSplit;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.RowLayoutManager;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.PropertyGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.IBasicProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.IndistinguishableProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Peptide;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinByExperiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinDetails;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinViewer extends AbstractViewerWithVerticalSplit<IEntityInformationHolder>
-        implements IDatabaseModificationObserver
-{
-    private static final int AMINOACIDS_IN_ONE_BLOCK = 10;
-
-    private static final String PREFIX = "protein-viewer_";
-
-    public static final String ID_PREFIX = GenericConstants.ID_PREFIX + PREFIX;
-
-    static AbstractTabItemFactory createTabItemFactory(
-            final IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            final Experiment experiment, final IBasicProteinInfo proteinInfo)
-    {
-        return new AbstractTabItemFactory()
-            {
-                @Override
-                public String getId()
-                {
-                    return createWidgetID(experiment, proteinInfo.getId());
-                }
-
-                @Override
-                public ITabItem create()
-                {
-                    ProteinViewer viewer = new ProteinViewer(viewContext, experiment, proteinInfo);
-                    DatabaseModificationAwareComponent c =
-                            new DatabaseModificationAwareComponent(viewer, viewer);
-                    return DefaultTabItem.create(getTabTitle(), c, viewContext, false);
-                }
-
-                @Override
-                public HelpPageIdentifier getHelpPageIdentifier()
-                {
-                    return HelpPageIdentifier.createSpecific("Protein Viewer");
-                }
-
-                @Override
-                public String getTabTitle()
-                {
-                    String description = getAbbreviatedDescription(proteinInfo);
-                    String identifier = experiment == null ? "?" : experiment.getCode();
-                    return viewContext.getMessage(Dict.PROTEIN_IN_EXPERIMENT_TAB_LABEL,
-                            description, identifier);
-                }
-
-                @Override
-                public String tryGetLink()
-                {
-                    return null;
-                }
-            };
-    }
-
-    private static String getAbbreviatedDescription(final IBasicProteinInfo proteinInfo)
-    {
-        String info = proteinInfo.getDescription();
-        if (info == null)
-        {
-            info = proteinInfo.getAccessionNumber();
-        }
-        return StringUtils.abbreviate(info, 30);
-    }
-
-    static String createWidgetID(IIdAndCodeHolder experimentIdOrNull, TechId proteinReferenceID)
-    {
-        Long experimentID = experimentIdOrNull == null ? null : experimentIdOrNull.getId();
-        return ID_PREFIX + experimentID + "_" + proteinReferenceID.getId();
-    }
-
-    private final Experiment experimentOrNull;
-
-    private final IBasicProteinInfo proteinInfo;
-
-    private final TechId proteinReferenceID;
-
-    private ProteinSamplesSection proteinSamplesSection;
-
-    private ProteinViewer(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            Experiment experiment, IBasicProteinInfo proteinInfo)
-    {
-        super(viewContext, "", createWidgetID(experiment, proteinInfo.getId()), false);
-        this.experimentOrNull = experiment;
-        this.proteinInfo = proteinInfo;
-        this.proteinReferenceID = proteinInfo.getId();
-        reloadAllData();
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    protected final IViewContext<IPhosphoNetXClientServiceAsync> getViewContext()
-    {
-        return (IViewContext<IPhosphoNetXClientServiceAsync>) viewContext;
-    }
-
-    @Override
-    protected void reloadAllData()
-    {
-        if (experimentOrNull != null)
-        {
-            final IViewContext<IPhosphoNetXClientServiceAsync> context = getViewContext();
-            ProteinByExperimentCallback callback = new ProteinByExperimentCallback(context, this);
-            String message =
-                    context.getMessage(Dict.PROTEIN_DETAILS_WAITING_MESSAGE,
-                            proteinInfo.getAccessionNumber());
-            context.getService().getProteinByExperiment(new TechId(experimentOrNull.getId()),
-                    proteinReferenceID, AsyncCallbackWithProgressBar.decorate(callback, message));
-        }
-    }
-
-    private void recreateUI(ProteinByExperiment protein)
-    {
-        setLayout(new BorderLayout());
-        removeAll();
-        setScrollMode(Scroll.AUTO);
-        ContentPanel propertyPanel = createPropertyPanel(protein);
-
-        ProteinDetails details = protein.getDetails();
-        if (details == null)
-        {
-            recreateUIWithDatasetTable(protein, propertyPanel);
-        } else
-        {
-            LayoutContainer centerPanel = new LayoutContainer();
-            RowLayoutManager rowDataManager = new RowLayoutManager(centerPanel, new RowLayout());
-            add(centerPanel, createBorderLayoutData(LayoutRegion.CENTER));
-            rowDataManager.addToContainer(propertyPanel, new RowData(1, 0.5f));
-            List<IndistinguishableProteinInfo> indistinguishableProteins =
-                    details.getIndistinguishableProteinInfos();
-            if (indistinguishableProteins.isEmpty() == false)
-            {
-                List<Peptide> peptides = details.getPeptides();
-                ContentPanel panel =
-                        createIndistinguishableProteinsSection(indistinguishableProteins, peptides);
-                rowDataManager.addToContainer(panel, new RowData(1, 0.3f));
-            }
-            proteinSamplesSection =
-                    new ProteinSamplesSection(getViewContext(), proteinReferenceID,
-                            experimentOrNull);
-            rowDataManager.addToContainer(proteinSamplesSection, new RowData(1, 0.2f));
-            layout();
-        }
-    }
-
-    private ContentPanel createIndistinguishableProteinsSection(
-            List<IndistinguishableProteinInfo> indistinguishableProteins, List<Peptide> peptides)
-    {
-        ContentPanel panel = new ContentPanel(new RowLayout());
-        panel.setHeading(viewContext.getMessage(Dict.INDISTINGUISHABLE_PROTEINS));
-        panel.setCollapsible(true);
-        panel.setHeight("100%");
-        TabPanel tabPanel = new TabPanel();
-        tabPanel.setTabScroll(true);
-        for (IndistinguishableProteinInfo info : indistinguishableProteins)
-        {
-            String accessionNumber = info.getAccessionNumber();
-            TabItem item = new TabItem(accessionNumber);
-            item.setLayout(new FitLayout());
-            PropertyGrid propertyGrid = new PropertyGrid(viewContext, 4, "200");
-            final Map<String, Object> properties = new LinkedHashMap<String, Object>();
-            properties.put(viewContext.getMessage(Dict.ACCESSION_NUMBER), info);
-            propertyGrid.registerPropertyValueRenderer(IndistinguishableProteinInfo.class,
-                    ProteinRenderers.createProteinIdentLinkRenderer(viewContext));
-            properties.put(viewContext.getMessage(Dict.PROTEIN_DESCRIPTION), info.getDescription());
-            String markedSequence = markPeptides(info.getSequence(), peptides);
-            properties.put(viewContext.getMessage(Dict.SEQUENCE_NAME), markedSequence);
-            properties.put(viewContext.getMessage(Dict.COVERAGE), info.getCoverage());
-            propertyGrid.setProperties(properties);
-            ContentPanel contentPanel = new ContentPanel();
-            contentPanel.setHeight("100%");
-            contentPanel.setScrollMode(Scroll.AUTO);
-            contentPanel.add(propertyGrid);
-            item.add(contentPanel);
-            tabPanel.add(item);
-        }
-        panel.add(tabPanel, new RowData(1, 1));
-        return panel;
-    }
-
-    private void recreateUIWithDatasetTable(ProteinByExperiment protein, ContentPanel propertyPanel)
-    {
-        BorderLayoutData layoutData = createBorderLayoutData(LayoutRegion.WEST);
-        layoutData.setSize(400);
-        add(propertyPanel, layoutData);
-        DisposableTabContent sequencesSection =
-                new DisposableTabContent(viewContext.getMessage(Dict.SEQUENCES), viewContext,
-                        proteinReferenceID)
-                    {
-                        @Override
-                        protected IDisposableComponent createDisposableContent()
-                        {
-                            return ProteinSequenceGrid.create(ProteinViewer.this.getViewContext(),
-                                    experimentOrNull, proteinReferenceID);
-                        }
-                    };
-        add(sequencesSection, createRightBorderLayoutData());
-        DisposableTabContent proteinsSection =
-                new DisposableTabContent(viewContext.getMessage(Dict.DATA_SET_PROTEINS),
-                        viewContext, proteinReferenceID)
-                    {
-                        @Override
-                        protected IDisposableComponent createDisposableContent()
-                        {
-                            return DataSetProteinGrid.create(ProteinViewer.this.getViewContext(),
-                                    experimentOrNull, proteinReferenceID);
-                        }
-                    };
-        add(proteinsSection, createBorderLayoutData(LayoutRegion.SOUTH));
-        layout();
-        sequencesSection.setContentVisible(true);
-        proteinsSection.setContentVisible(true);
-    }
-
-    private ContentPanel createPropertyPanel(ProteinByExperiment protein)
-    {
-        PropertyGrid propertyGrid = createPropertyGrid(protein);
-        ContentPanel contentPanel = new ContentPanel();
-        contentPanel.setHeading(viewContext.getMessage(Dict.PRIMARY_PROTEIN));
-        contentPanel.setScrollMode(Scroll.AUTO);
-        contentPanel.setCollapsible(true);
-        contentPanel.add(propertyGrid);
-        return contentPanel;
-    }
-
-    private PropertyGrid createPropertyGrid(ProteinByExperiment protein)
-    {
-        final Map<String, Object> properties = new LinkedHashMap<String, Object>();
-        PropertyGrid propertyGrid = new PropertyGrid(viewContext, 0, "200");
-        if (experimentOrNull != null)
-        {
-            properties.put(viewContext.getMessage(Dict.EXPERIMENT_LABEL), experimentOrNull);
-        }
-        properties.put(viewContext.getMessage(Dict.ACCESSION_NUMBER), protein);
-        propertyGrid.registerPropertyValueRenderer(ProteinByExperiment.class,
-                ProteinRenderers.createProteinIdentLinkRenderer(viewContext));
-
-        properties.put(viewContext.getMessage(Dict.PROTEIN_DESCRIPTION), protein.getDescription());
-        if (protein.getDetails() != null)
-        {
-            addProteinDetails(properties, propertyGrid, protein.getDetails());
-        }
-
-        propertyGrid.resizeRows(properties.size());
-        propertyGrid.setProperties(properties);
-        return propertyGrid;
-    }
-
-    private void addProteinDetails(Map<String, Object> properties, PropertyGrid propertyGrid,
-            ProteinDetails proteinDetails)
-    {
-        properties.put(viewContext.getMessage(Dict.DATABASE_NAME_AND_VERSION),
-                proteinDetails.getDatabaseNameAndVersion());
-        String markedSequence =
-                markPeptides(proteinDetails.getSequence(), proteinDetails.getPeptides());
-        properties.put(viewContext.getMessage(Dict.SEQUENCE_NAME), markedSequence);
-
-        properties.put(viewContext.getMessage(Dict.COVERAGE), proteinDetails.getCoverage());
-
-        propertyGrid.registerPropertyValueRenderer(Peptide.class,
-                ProteinRenderers.createPeptideRenderer(viewContext));
-        properties.put(viewContext.getMessage(Dict.PEPTIDES, proteinDetails.getPeptides().size()),
-                proteinDetails.getPeptides().toArray());
-
-        properties.put(viewContext.getMessage(Dict.PROBABILITY), proteinDetails.getProbability());
-        properties.put(viewContext.getMessage(Dict.FDR), proteinDetails.getFalseDiscoveryRate());
-
-        DatasetInformationHolder dataset = new DatasetInformationHolder(proteinDetails);
-        properties.put(viewContext.getMessage(Dict.DATA_SET_PERM_ID), dataset);
-        propertyGrid.registerPropertyValueRenderer(DatasetInformationHolder.class,
-                ProteinRenderers.createEntityInformationPropertyValueRenderer(viewContext));
-    }
-
-    private static String markPeptides(String sequence, List<Peptide> peptides)
-    {
-        String markedSequence =
-                ProteinRenderers.markOccurrencesWithHtml(sequence, peptides,
-                        AMINOACIDS_IN_ONE_BLOCK);
-        // the letters should have fixed width
-        return ProteinRenderers.getFixedWidthHTMLString(markedSequence);
-    }
-
-    public static class DatasetInformationHolder implements IEntityInformationHolderWithIdentifier
-    {
-        private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-        private final ProteinDetails proteinDetails;
-
-        public DatasetInformationHolder(ProteinDetails proteinDetails)
-        {
-            this.proteinDetails = proteinDetails;
-        }
-
-        @Override
-        public EntityKind getEntityKind()
-        {
-            return EntityKind.DATA_SET;
-        }
-
-        @Override
-        public EntityType getEntityType()
-        {
-            DataSetType dataSetType = new DataSetType();
-            dataSetType.setCode(proteinDetails.getDataSetTypeCode());
-            return dataSetType;
-        }
-
-        @Override
-        public String getIdentifier()
-        {
-            return proteinDetails.getDataSetPermID();
-        }
-
-        @Override
-        public Long getId()
-        {
-            return proteinDetails.getDataSetTechID();
-        }
-
-        @Override
-        public String getCode()
-        {
-            return proteinDetails.getDataSetPermID();
-        }
-
-        @Override
-        public String getPermId()
-        {
-            return getIdentifier();
-        }
-    }
-
-    @Override
-    public DatabaseModificationKind[] getRelevantModifications()
-    {
-        return createDatabaseModificationObserver().getRelevantModifications();
-    }
-
-    @Override
-    public void update(Set<DatabaseModificationKind> observedModifications)
-    {
-        createDatabaseModificationObserver().update(observedModifications);
-    }
-
-    private CompositeDatabaseModificationObserver createDatabaseModificationObserver()
-    {
-        CompositeDatabaseModificationObserver observer =
-                new CompositeDatabaseModificationObserver();
-        if (proteinSamplesSection != null)
-        {
-            observer.addObserver(proteinSamplesSection.tryGetDatabaseModificationObserver());
-        }
-        // TODO 2009-07-31, Piotr Buczek: refresh properties panel?
-        return observer;
-    }
-
-    private static final class ProteinByExperimentCallback extends
-            AbstractAsyncCallback<ProteinByExperiment>
-    {
-        private final ProteinViewer viewer;
-
-        private ProteinByExperimentCallback(
-                final IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-                final ProteinViewer viewer)
-        {
-            super(viewContext);
-            this.viewer = viewer;
-        }
-
-        @Override
-        protected final void process(final ProteinByExperiment result)
-        {
-            viewer.recreateUI(result);
-        }
-
-    }
-
-    @Override
-    protected String getDeleteButtonLabel()
-    {
-        return viewContext.getMessage(Dict.BUTTON_DELETE_PROTEIN);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/RawDataProcessingMenu.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/RawDataProcessingMenu.java
deleted file mode 100644
index 4ceb310e6528bcaab377360e9ea869d515191683..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/RawDataProcessingMenu.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.Dict.COPY_DATA_SETS_MESSAGE;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.Dict.COPY_DATA_SETS_TITLE;
-
-import java.util.List;
-
-import com.extjs.gxt.ui.client.widget.form.TextField;
-import com.extjs.gxt.ui.client.widget.menu.Menu;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.VoidAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.ActionMenu;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.IActionMenuItem;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataConfirmationDialog;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedActionWithResult;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.TextToolItem;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class RawDataProcessingMenu extends TextToolItem
-{
-    private static final class CopyConfirmationDialog extends
-            AbstractDataConfirmationDialog<List<TableModelRowWithObject<Sample>>>
-    {
-        private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
-
-        private final List<TableModelRowWithObject<Sample>> samples;
-
-        private final DatastoreServiceDescription datastoreServiceDescription;
-
-        private TextField<String> dataSetTypeField;
-
-        private CopyConfirmationDialog(
-                IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext,
-                DatastoreServiceDescription datastoreServiceDescription,
-                List<TableModelRowWithObject<Sample>> samples, String title)
-        {
-            super(specificViewContext, samples, title);
-            this.specificViewContext = specificViewContext;
-            this.datastoreServiceDescription = datastoreServiceDescription;
-            this.samples = samples;
-            setWidth(400);
-        }
-
-        @Override
-        protected String createMessage()
-        {
-            String list = "[";
-            String delim = "";
-            for (TableModelRow sample : samples)
-            {
-                list += delim + sample.getValues().get(0);
-                delim = ", ";
-            }
-            list += "]";
-            String label = datastoreServiceDescription.getLabel();
-            return specificViewContext.getMessage(COPY_DATA_SETS_MESSAGE, label, list);
-        }
-
-        @Override
-        protected void executeConfirmedAction()
-        {
-            long[] rawDataSampleIDs = new long[samples.size()];
-            for (int i = 0; i < samples.size(); i++)
-            {
-                rawDataSampleIDs[i] = samples.get(i).getObjectOrNull().getId();
-            }
-            specificViewContext.getService().processRawData(datastoreServiceDescription.getKey(),
-                    rawDataSampleIDs, dataSetTypeField.getValue(),
-                    new VoidAsyncCallback<Void>(specificViewContext));
-        }
-
-        @Override
-        protected void extendForm()
-        {
-            dataSetTypeField = new TextField<String>();
-            dataSetTypeField.setFieldLabel(specificViewContext
-                    .getMessage(Dict.COPY_DATA_SETS_DATA_SET_TYPE_FIELD));
-            dataSetTypeField.setSelectOnFocus(true);
-            dataSetTypeField.setWidth(200);
-            formPanel.add(dataSetTypeField);
-            formPanel.setLabelWidth(100);
-        }
-    }
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> viewContext;
-
-    private final IDelegatedActionWithResult<List<TableModelRowWithObject<Sample>>> selectedDataProvider;
-
-    public RawDataProcessingMenu(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            IDelegatedActionWithResult<List<TableModelRowWithObject<Sample>>> selectedDataProvider)
-    {
-        super(viewContext.getMessage(Dict.COPY_DATA_SETS_BUTTON_LABEL));
-        this.viewContext = viewContext;
-        this.selectedDataProvider = selectedDataProvider;
-        IViewContext<ICommonClientServiceAsync> commonViewContext =
-                viewContext.getCommonViewContext();
-        viewContext.getCommonService().listDataStoreServices(DataStoreServiceKind.PROCESSING,
-                new AbstractAsyncCallback<List<DatastoreServiceDescription>>(commonViewContext)
-                    {
-                        @Override
-                        public final void process(List<DatastoreServiceDescription> plugins)
-                        {
-                            createMenu(plugins);
-                        }
-                    });
-    }
-
-    private void createMenu(List<DatastoreServiceDescription> plugins)
-    {
-        Menu subMenu = new Menu();
-
-        for (final DatastoreServiceDescription datastoreServiceDescription : plugins)
-        {
-            IActionMenuItem actionMenuItem = new IActionMenuItem()
-                {
-
-                    @Override
-                    public String getMenuText(IMessageProvider messageProvider)
-                    {
-                        return datastoreServiceDescription.getLabel();
-                    }
-
-                    @Override
-                    public String getMenuId()
-                    {
-                        return datastoreServiceDescription.getKey();
-                    }
-                };
-            IDelegatedAction action = new IDelegatedAction()
-                {
-
-                    @Override
-                    public void execute()
-                    {
-                        String title = viewContext.getMessage(COPY_DATA_SETS_TITLE);
-                        List<TableModelRowWithObject<Sample>> selectedSamples = selectedDataProvider.execute();
-                        new CopyConfirmationDialog(viewContext, datastoreServiceDescription,
-                                selectedSamples, title).show();
-                    }
-                };
-            subMenu.add(new ActionMenu(actionMenuItem, viewContext, action));
-        }
-        setMenu(subMenu);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/RawDataSampleGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/RawDataSampleGrid.java
deleted file mode 100644
index 67d0e66e6f173096e6aec649708f8b2b574d9f35..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/RawDataSampleGrid.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.createOrDelete;
-import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.edit;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.LinkExtractor;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.DisposableEntityChooser;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICellListenerAndLinkGenerator;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedActionWithResult;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.RawDataSampleGridIDs;
-
-/**
- * @author Franz-Josef Elmer
- */
-class RawDataSampleGrid extends TypedTableGrid<Sample>
-{
-    public static final String BROWSER_ID = GenericConstants.ID_PREFIX + "raw_data_sample_browser";
-
-    public static DatabaseModificationAwareComponent create(
-            final IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-    {
-        RawDataSampleGrid grid = new RawDataSampleGrid(viewContext);
-        DisposableEntityChooser<TableModelRowWithObject<Sample>> disposable =
-                grid.asDisposableWithoutToolbar();
-        return new DatabaseModificationAwareComponent(disposable.getComponent(), disposable);
-    }
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
-
-    RawDataSampleGrid(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-    {
-        super(viewContext.getCommonViewContext(), BROWSER_ID, true,
-                PhosphoNetXDisplayTypeIDGenerator.RAW_DATA_SAMPLE_BROWSER_GRID);
-        specificViewContext = viewContext;
-        allowMultipleSelection();
-        addEntityOperationsLabel();
-        RawDataProcessingMenu button =
-                new RawDataProcessingMenu(viewContext,
-                        new IDelegatedActionWithResult<List<TableModelRowWithObject<Sample>>>()
-                            {
-                                @Override
-                                public List<TableModelRowWithObject<Sample>> execute()
-                                {
-                                    return getSelectedBaseObjects();
-                                }
-                            });
-        enableButtonOnSelectedItems(button);
-        addButton(button);
-        linkMSInjectionSample();
-        linkBiologicalSample();
-    }
-
-    private void linkMSInjectionSample()
-    {
-        registerListenerAndLinkGenerator(RawDataSampleGridIDs.CODE,
-                new ICellListenerAndLinkGenerator<Sample>()
-                    {
-
-                        @Override
-                        public void handle(TableModelRowWithObject<Sample> rowItem,
-                                boolean specialKeyPressed)
-                        {
-                            showEntityInformationHolderViewer(rowItem.getObjectOrNull(), false,
-                                    specialKeyPressed);
-                        }
-
-                        @Override
-                        public String tryGetLink(Sample entity, ISerializableComparable value)
-                        {
-                            return LinkExtractor.tryExtract(entity);
-                        }
-
-                    });
-    }
-
-    private void linkBiologicalSample()
-    {
-        registerListenerAndLinkGenerator(RawDataSampleGridIDs.PARENT,
-                new ICellListenerAndLinkGenerator<Sample>()
-                    {
-
-                        @Override
-                        public void handle(TableModelRowWithObject<Sample> rowItem,
-                                boolean specialKeyPressed)
-                        {
-                            showEntityInformationHolderViewer(rowItem.getObjectOrNull()
-                                    .getGeneratedFrom(), false, specialKeyPressed);
-                        }
-
-                        @Override
-                        public String tryGetLink(Sample entity,
-                                ISerializableComparable comparableValue)
-                        {
-                            return LinkExtractor.tryExtract(entity.getGeneratedFrom());
-                        }
-                    });
-    }
-
-    @Override
-    protected void listTableRows(
-            DefaultResultSetConfig<String, TableModelRowWithObject<Sample>> resultSetConfig,
-            AbstractAsyncCallback<TypedTableResultSet<Sample>> callback)
-    {
-        specificViewContext.getService().listRawDataSamples(resultSetConfig, callback);
-    }
-
-    @Override
-    protected void prepareExportEntities(
-            TableExportCriteria<TableModelRowWithObject<Sample>> exportCriteria,
-            AbstractAsyncCallback<String> callback)
-    {
-        specificViewContext.getService().prepareExportRawDataSamples(exportCriteria, callback);
-    }
-
-    @Override
-    public DatabaseModificationKind[] getRelevantModifications()
-    {
-        return new DatabaseModificationKind[]
-        { createOrDelete(ObjectKind.SAMPLE_TYPE), edit(ObjectKind.SAMPLE_TYPE),
-                edit(ObjectKind.SAMPLE), createOrDelete(ObjectKind.SPACE),
-                createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT),
-                edit(ObjectKind.PROPERTY_TYPE_ASSIGNMENT) };
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ViewContext.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ViewContext.java
deleted file mode 100644
index 45e1ae9cd24da8b1c8a221c8e2a27fa2e00cc47c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ViewContext.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import com.google.gwt.core.client.GWT;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractPluginViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.ViewLocatorResolverRegistry;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.Constants;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-
-/**
- * View context for technology 'proteomics'.
- *
- * @author Franz-Josef Elmer
- */
-public class ViewContext extends AbstractPluginViewContext<IPhosphoNetXClientServiceAsync>
-{
-    public ViewContext(IViewContext<ICommonClientServiceAsync> commonViewContext)
-    {
-        super(commonViewContext);
-    }
-
-    @Override
-    public String getTechnology()
-    {
-        return Constants.TECHNOLOGY_NAME;
-    }
-
-    @Override
-    protected IPhosphoNetXClientServiceAsync createClientServiceAsync()
-    {
-        return GWT.create(IPhosphoNetXClientService.class);
-    }
-
-    @Override
-    protected void initializeLocatorHandlerRegistry(ViewLocatorResolverRegistry handlerRegistry)
-    {
-        super.initializeLocatorHandlerRegistry(handlerRegistry);
-        handlerRegistry.registerHandler(new ProteinViewLocatorResolver(this));
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/columns/.gitignore b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/columns/.gitignore
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/model/.gitignore b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/model/.gitignore
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/BiologicalSampleChoosingPage.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/BiologicalSampleChoosingPage.java
deleted file mode 100644
index b945606005c438caac7a6eec120e736b329af951..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/BiologicalSampleChoosingPage.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard;
-
-import java.util.List;
-
-import com.extjs.gxt.ui.client.data.ModelData;
-import com.extjs.gxt.ui.client.event.Listener;
-import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
-import com.extjs.gxt.ui.client.util.Margins;
-import com.extjs.gxt.ui.client.widget.Label;
-import com.extjs.gxt.ui.client.widget.layout.RowData;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.wizard.WizardPage;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.Dict;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-
-/**
- * Wizard for guiding the user to annotate an MS_INJECTION sample.
- *
- * @author Franz-Josef Elmer
- */
-public class BiologicalSampleChoosingPage extends WizardPage<MsInjectionSampleAnnotationModel>
-{
-    private final IViewContext<IPhosphoNetXClientServiceAsync> viewContext;
-
-    private BiologicalSampleGrid sampleGrid;
-
-    public BiologicalSampleChoosingPage(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            MsInjectionSampleAnnotationModel model)
-    {
-        super(viewContext, MsInjectionAnnotationWizardState.BIOLOGICAL_SAMPLE_CHOOSING, model);
-        this.viewContext = viewContext;
-        setLeftContentByDictionary();
-    }
-
-    @Override
-    public void init()
-    {
-        addToRightContent(
-                new Label(
-                        "Please choose a biological " + viewContext.getMessage(Dict.SAMPLE).toLowerCase() 
-                        + " as annotation of the MS_INJECTION " + viewContext.getMessage(Dict.SAMPLES).toLowerCase() 
-                        + " selected previously:"),
-                new RowData(1, -1, new Margins(10)));
-
-        sampleGrid = new BiologicalSampleGrid(viewContext);
-        sampleGrid.addGridSelectionChangeListener(new Listener<SelectionChangedEvent<ModelData>>()
-            {
-                @Override
-                public void handleEvent(SelectionChangedEvent<ModelData> se)
-                {
-                    List<ModelData> selection = se.getSelection();
-                    boolean enabled = selection.size() == 1;
-                    enableNextButton(enabled);
-                }
-
-            });
-        addToRightContent(sampleGrid, new RowData(1, 400, new Margins(20, 10, 10, 10)));
-    }
-
-    @Override
-    public void deactivate()
-    {
-        List<BaseEntityModel<TableModelRowWithObject<Sample>>> selectedItems =
-                sampleGrid.getSelectedItems();
-        if (selectedItems.isEmpty() == false)
-        {
-            model.setBiologicalSample(selectedItems.get(0).getBaseObject().getObjectOrNull());
-        }
-    }
-
-    @Override
-    public void destroy()
-    {
-        sampleGrid.dispose();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/BiologicalSampleCreatingPage.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/BiologicalSampleCreatingPage.java
deleted file mode 100644
index 95c8589b3860e7fb536b57b779296d237beb5da3..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/BiologicalSampleCreatingPage.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
-import com.extjs.gxt.ui.client.event.SelectionChangedListener;
-import com.extjs.gxt.ui.client.util.Margins;
-import com.extjs.gxt.ui.client.widget.layout.RowData;
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.SampleTypeDisplayID;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.SampleTypeModel;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.SpaceSelectionWidget;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CodeFieldWithGenerator;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ExperimentChooserField;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ExperimentChooserField.ExperimentChooserFieldAdaptor;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.SampleTypeSelectionWidget;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.ClickableFormPanel;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.wizard.WizardPage;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleTypePropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedInputWidgetDescription;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample.AbstractGenericSampleRegisterEditForm;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample.SamplePropertyEditor;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-
-/**
- * Wizard for guiding the user to annotate an MS_INJECTION sample.
- *
- * @author Franz-Josef Elmer
- */
-public class BiologicalSampleCreatingPage extends WizardPage<MsInjectionSampleAnnotationModel>
-{
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> viewContext;
-
-    private ClickableFormPanel formPanel;
-
-    private SampleTypeSelectionWidget sampleTypeSelectionWidget;
-
-    private SampleType sampleType;
-
-    private CodeFieldWithGenerator codeField;
-
-    private SpaceSelectionWidget spaceSelectionWidget;
-
-    private SamplePropertyEditor samplePropertyEditor;
-
-    private ExperimentChooserFieldAdaptor experimentField;
-
-    private Map<String, List<IManagedInputWidgetDescription>> inputWidgetDescriptions = Collections
-            .<String, List<IManagedInputWidgetDescription>> emptyMap();
-
-    public BiologicalSampleCreatingPage(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            MsInjectionSampleAnnotationModel model)
-    {
-        super(viewContext, MsInjectionAnnotationWizardState.BIOLOGICAL_SAMPLE_CREATING, model);
-        this.viewContext = viewContext;
-        setLeftContentByDictionary();
-    }
-
-    @Override
-    public void init()
-    {
-        formPanel = new ClickableFormPanel();
-        formPanel.setHeaderVisible(false);
-        sampleTypeSelectionWidget = new SampleTypeSelectionWidget(viewContext, "bio-samp", true,
-                SampleTypeDisplayID.SAMPLE_REGISTRATION, null)
-            {
-
-                @Override
-                protected void filterTypes(List<SampleType> types)
-                {
-                    for (Iterator<SampleType> iterator = types.iterator(); iterator.hasNext();)
-                    {
-                        SampleType type = iterator.next();
-                        if (type.getCode().startsWith("BIO") == false)
-                        {
-                            iterator.remove();
-                        }
-                    }
-                }
-            };
-        sampleTypeSelectionWidget.addSelectionChangedListener(new SelectionChangedListener<SampleTypeModel>()
-            {
-
-                @Override
-                public void selectionChanged(SelectionChangedEvent<SampleTypeModel> se)
-                {
-                    SampleType sampleTypeOrNull = sampleTypeSelectionWidget.tryGetSelectedSampleType();
-                    if (sampleTypeOrNull != null)
-                    {
-                        onSampleTypeChanged(sampleTypeOrNull);
-                    }
-                }
-            });
-        formPanel.add(sampleTypeSelectionWidget);
-        addToRightContent(formPanel, new RowData(1, 600, new Margins(10)));
-    }
-
-    protected void onSampleTypeChanged(SampleType type)
-    {
-        this.sampleType = type;
-        formPanel.removeAll();
-        formPanel.add(sampleTypeSelectionWidget);
-        codeField =
-                new CodeFieldWithGenerator(viewContext, viewContext.getMessage(Dict.CODE),
-                        type.getGeneratedCodePrefix(), EntityKind.SAMPLE,
-                        type.isAutoGeneratedCode());
-        boolean codeReadonly = type.isAutoGeneratedCode();
-        codeField.setReadOnly(codeReadonly);
-        codeField.setHideTrigger(codeReadonly);
-        formPanel.add(codeField);
-        List<SampleTypePropertyType> types = type.getAssignedPropertyTypes();
-        spaceSelectionWidget =
-                new SpaceSelectionWidget(viewContext, getId(), true, false, viewContext.getModel()
-                        .getSessionContext().getUser().getHomeGroupCode());
-        FieldUtil.markAsMandatory(spaceSelectionWidget);
-        formPanel.add(spaceSelectionWidget);
-        String label = viewContext.getMessage(Dict.EXPERIMENT);
-        experimentField = ExperimentChooserField.create(label, false, null,
-                viewContext.getCommonViewContext());
-        formPanel.add(experimentField.getChooserField());
-
-        samplePropertyEditor =
-                new SamplePropertyEditor("bio-s", inputWidgetDescriptions,
-                        viewContext.getCommonViewContext());
-        samplePropertyEditor.initWithoutProperties(types);
-        samplePropertyEditor.addPropertyFieldsWithFieldsetToPanel(formPanel);
-        formPanel.layout();
-        formPanel.addClickListener(new ClickHandler()
-            {
-                @Override
-                public void onClick(ClickEvent event)
-                {
-                    enableNextButton(formPanel.isValid());
-                }
-            });
-    }
-
-    @Override
-    public void deactivate()
-    {
-        String identifier =
-                AbstractGenericSampleRegisterEditForm.createSampleIdentifier(spaceSelectionWidget,
-                        codeField);
-        String experimentIdentifierOrNull = experimentField.getChooserField().getValue();
-        List<IEntityProperty> properties = samplePropertyEditor.extractProperties();
-        model.defineBiologicalSample(sampleType, identifier, experimentIdentifierOrNull, properties);
-    }
-
-    @Override
-    public void destroy()
-    {
-        spaceSelectionWidget.dispose();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/BiologicalSampleGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/BiologicalSampleGrid.java
deleted file mode 100644
index 707918e0db2b7d61002a489a8a045766c5ffc1dc..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/BiologicalSampleGrid.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard;
-
-import java.util.Arrays;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.BrowserGridPagingToolBar.PagingToolBarButtonKind;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.PhosphoNetXDisplayTypeIDGenerator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.BiologicalSampleGridColumnIDs;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class BiologicalSampleGrid extends TypedTableGrid<Sample>
-{
-    private static final String PREFIX = GenericConstants.ID_PREFIX + "biological_sample";
-
-    public static final String BROWSER_ID = PREFIX + "_main";
-
-    public static final String GRID_ID = PREFIX + TypedTableGrid.GRID_POSTFIX;
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
-
-    public BiologicalSampleGrid(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-    {
-        super(viewContext.getCommonViewContext(), BROWSER_ID, true,
-                PhosphoNetXDisplayTypeIDGenerator.BIOLOGICAL_SAMPLE_BROWSER_GRID);
-        specificViewContext = viewContext;
-        removeButtons(PagingToolBarButtonKind.CONFIG, PagingToolBarButtonKind.EXPORT,
-                PagingToolBarButtonKind.FILTERS);
-        showFiltersBar();
-        setBorders(true);
-    }
-
-    @Override
-    protected void listTableRows(
-            DefaultResultSetConfig<String, TableModelRowWithObject<Sample>> resultSetConfig,
-            AbstractAsyncCallback<TypedTableResultSet<Sample>> callback)
-    {
-        specificViewContext.getService().listBiologicalSamples(resultSetConfig, callback);
-    }
-
-    @Override
-    protected List<String> getColumnIdsOfFilters()
-    {
-        return Arrays.asList(BiologicalSampleGridColumnIDs.IDENTIFIER,
-                BiologicalSampleGridColumnIDs.REGISTRATION_DATE);
-    }
-
-    @Override
-    protected void prepareExportEntities(
-            TableExportCriteria<TableModelRowWithObject<Sample>> exportCriteria,
-            AbstractAsyncCallback<String> callback)
-    {
-    }
-
-    public void dispose()
-    {
-        asDisposableWithoutToolbar().dispose();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionAnnotationWizardState.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionAnnotationWizardState.java
deleted file mode 100644
index aa545172f0438a39bd282a933e76fc15deecee3e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionAnnotationWizardState.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.wizard.IWizardState;
-
-/**
- * States of wizard for annotating MS_INJECTION samples.
- *
- * @author Franz-Josef Elmer
- */
-public enum MsInjectionAnnotationWizardState implements IWizardState
-{
-    MS_INJECTION_SAMPLE_CHOOSING, CHOOSE_OR_CREATE_QUESTION, BIOLOGICAL_SAMPLE_CHOOSING, BIOLOGICAL_SAMPLE_CREATING;
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionSampleAnnotationModel.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionSampleAnnotationModel.java
deleted file mode 100644
index 8c9f7d2e41063603001e9d27f1e578df58d6b56b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionSampleAnnotationModel.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard.MsInjectionAnnotationWizardState.BIOLOGICAL_SAMPLE_CHOOSING;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard.MsInjectionAnnotationWizardState.BIOLOGICAL_SAMPLE_CREATING;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard.MsInjectionAnnotationWizardState.CHOOSE_OR_CREATE_QUESTION;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard.MsInjectionAnnotationWizardState.MS_INJECTION_SAMPLE_CHOOSING;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.VoidAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.wizard.IWizardDataModel;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.wizard.IWizardState;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.wizard.WizardWorkflowModel;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class MsInjectionSampleAnnotationModel implements IWizardDataModel
-{
-    private final IViewContext<IPhosphoNetXClientServiceAsync> context;
-
-    private final WizardWorkflowModel workflowModel;
-
-    private List<Sample> msInjectionSamples = new ArrayList<Sample>();
-
-    private boolean chooseBiologicalSampleFlag;
-
-    private Sample biologicalSample;
-
-    private NewSample newBiologicalSample;
-
-    public MsInjectionSampleAnnotationModel(IViewContext<IPhosphoNetXClientServiceAsync> context)
-    {
-        this.context = context;
-        workflowModel = new WizardWorkflowModel(this);
-        workflowModel.addTransition(MS_INJECTION_SAMPLE_CHOOSING, CHOOSE_OR_CREATE_QUESTION);
-        workflowModel.addTransition(CHOOSE_OR_CREATE_QUESTION, BIOLOGICAL_SAMPLE_CHOOSING);
-        workflowModel.addTransition(CHOOSE_OR_CREATE_QUESTION, BIOLOGICAL_SAMPLE_CREATING);
-    }
-
-    @Override
-    public WizardWorkflowModel getWorkflow()
-    {
-        return workflowModel;
-    }
-
-    @Override
-    public IWizardState determineNextState(IWizardState currentState)
-    {
-        return chooseBiologicalSampleFlag ? BIOLOGICAL_SAMPLE_CHOOSING : BIOLOGICAL_SAMPLE_CREATING;
-    }
-
-    public void setSelectedMsInjectionSample(List<Sample> samples)
-    {
-        msInjectionSamples = samples;
-    }
-
-    public List<Sample> getMsInjectionSamples()
-    {
-        return msInjectionSamples;
-    }
-
-    public void setChooseBiologicalSampleFlag(boolean flag)
-    {
-        chooseBiologicalSampleFlag = flag;
-    }
-
-    public void setBiologicalSample(Sample biologicalSample)
-    {
-        this.biologicalSample = biologicalSample;
-    }
-
-    public void defineBiologicalSample(SampleType sampleType, String identifier,
-            String experimentIdentifierOrNull, List<IEntityProperty> properties)
-    {
-        newBiologicalSample = NewSample.createWithParents(identifier, sampleType, null, null);
-        newBiologicalSample.setProperties(properties.toArray(IEntityProperty.EMPTY_ARRAY));
-        newBiologicalSample.setExperimentIdentifier(experimentIdentifierOrNull);
-    }
-
-    @Override
-    public String finish()
-    {
-        VoidAsyncCallback<Void> callback = new VoidAsyncCallback<Void>(context);
-        if (chooseBiologicalSampleFlag)
-        {
-            context.getService().linkSamples(biologicalSample, msInjectionSamples, callback);
-        } else
-        {
-            context.getService().createAndLinkSamples(newBiologicalSample, msInjectionSamples, callback);
-        }
-        return msInjectionSamples.size() + " MS_INJECTION " + context.getMessage(Dict.SAMPLES).toLowerCase() 
-                + " have been annotated.";
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionSampleAnnotationWizard.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionSampleAnnotationWizard.java
deleted file mode 100644
index 42b6377eb3ec7527aad4fbcf0c21508672442ddd..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionSampleAnnotationWizard.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.wizard.Wizard;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-
-/**
- * Wizard for annotation MS_INJECTION samples.
- *
- * @author Franz-Josef Elmer
- */
-public class MsInjectionSampleAnnotationWizard extends Wizard<MsInjectionSampleAnnotationModel>
-{
-    public MsInjectionSampleAnnotationWizard(IViewContext<IPhosphoNetXClientServiceAsync> context)
-    {
-        super(new MsInjectionSampleAnnotationModel(context));
-        MsInjectionSampleAnnotationModel wizardDataModel = getWizardDataModel();
-        register(new MsInjectionSampleChoosingPage(context, wizardDataModel));
-        register(new QuestionPage(context, wizardDataModel));
-        register(new BiologicalSampleChoosingPage(context, wizardDataModel));
-        register(new BiologicalSampleCreatingPage(context, wizardDataModel));
-        start();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionSampleChoosingPage.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionSampleChoosingPage.java
deleted file mode 100644
index 8499af6467777d1ac08048e5a2a9d0ee915d84f0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/MsInjectionSampleChoosingPage.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.extjs.gxt.ui.client.data.ModelData;
-import com.extjs.gxt.ui.client.event.Listener;
-import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
-import com.extjs.gxt.ui.client.util.Margins;
-import com.extjs.gxt.ui.client.widget.Label;
-import com.extjs.gxt.ui.client.widget.layout.RowData;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.wizard.WizardPage;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-
-/**
- * Wizard for guiding the user to annotate an MS_INJECTION sample.
- *
- * @author Franz-Josef Elmer
- */
-public class MsInjectionSampleChoosingPage extends WizardPage<MsInjectionSampleAnnotationModel>
-{
-    private final IViewContext<IPhosphoNetXClientServiceAsync> viewContext;
-
-    private ParentlessMsInjectionSampleGrid sampleGrid;
-
-    public MsInjectionSampleChoosingPage(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            MsInjectionSampleAnnotationModel model)
-    {
-        super(viewContext, MsInjectionAnnotationWizardState.MS_INJECTION_SAMPLE_CHOOSING, model);
-        this.viewContext = viewContext;
-        setLeftContentByDictionary();
-    }
-
-    @Override
-    public void init()
-    {
-        addToRightContent(new Label(
-                "Please choose one or more MS_INJECTION " + viewContext.getMessage(Dict.SAMPLES).toLowerCase() 
-                + " to be annotated:"), new RowData(1,
-                -1, new Margins(10)));
-
-        sampleGrid = new ParentlessMsInjectionSampleGrid(viewContext);
-        sampleGrid.addGridSelectionChangeListener(new Listener<SelectionChangedEvent<ModelData>>()
-            {
-                @Override
-                public void handleEvent(SelectionChangedEvent<ModelData> se)
-                {
-                    List<ModelData> selection = se.getSelection();
-                    boolean enabled = selection.size() > 0;
-                    enableNextButton(enabled);
-                }
-
-            });
-        addToRightContent(sampleGrid, new RowData(1, 400, new Margins(20, 10, 10, 10)));
-    }
-
-    @Override
-    public void deactivate()
-    {
-        List<BaseEntityModel<TableModelRowWithObject<Sample>>> selectedItems =
-                sampleGrid.getSelectedItems();
-        ArrayList<Sample> samples = new ArrayList<Sample>();
-        for (BaseEntityModel<TableModelRowWithObject<Sample>> item : selectedItems)
-        {
-            samples.add(item.getBaseObject().getObjectOrNull());
-        }
-        model.setSelectedMsInjectionSample(samples);
-    }
-
-    @Override
-    public void destroy()
-    {
-        sampleGrid.dispose();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/ParentlessMsInjectionSampleGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/ParentlessMsInjectionSampleGrid.java
deleted file mode 100644
index 9f61b5e643c7272972cbc03407d87f0ba17d4fd6..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/ParentlessMsInjectionSampleGrid.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard;
-
-import java.util.Arrays;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.BrowserGridPagingToolBar.PagingToolBarButtonKind;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericConstants;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.PhosphoNetXDisplayTypeIDGenerator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ParentlessMsInjectionSampleGridColumnIDs;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ParentlessMsInjectionSampleGrid extends TypedTableGrid<Sample>
-{
-    private static final String PREFIX = GenericConstants.ID_PREFIX
-            + "parentless_ms_injection_sample";
-
-    public static final String BROWSER_ID = PREFIX + "_main";
-
-    public static final String GRID_ID = PREFIX + TypedTableGrid.GRID_POSTFIX;
-
-    private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
-
-    public ParentlessMsInjectionSampleGrid(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
-    {
-        super(viewContext.getCommonViewContext(), BROWSER_ID, true,
-                PhosphoNetXDisplayTypeIDGenerator.PARENT_LESS_MS_INJECTION_SAMPLE_BROWSER_GRID);
-        specificViewContext = viewContext;
-        removeButtons(PagingToolBarButtonKind.CONFIG, PagingToolBarButtonKind.EXPORT,
-                PagingToolBarButtonKind.FILTERS);
-        allowMultipleSelection();
-        showFiltersBar();
-        setBorders(true);
-    }
-
-    @Override
-    protected void listTableRows(
-            DefaultResultSetConfig<String, TableModelRowWithObject<Sample>> resultSetConfig,
-            AbstractAsyncCallback<TypedTableResultSet<Sample>> callback)
-    {
-        specificViewContext.getService()
-                .listParentlessMsInjectionSamples(resultSetConfig, callback);
-    }
-
-    @Override
-    protected List<String> getColumnIdsOfFilters()
-    {
-        return Arrays.asList(ParentlessMsInjectionSampleGridColumnIDs.IDENTIFIER,
-                ParentlessMsInjectionSampleGridColumnIDs.REGISTRATION_DATE);
-    }
-
-    @Override
-    protected void prepareExportEntities(
-            TableExportCriteria<TableModelRowWithObject<Sample>> exportCriteria,
-            AbstractAsyncCallback<String> callback)
-    {
-    }
-
-    public void dispose()
-    {
-        asDisposableWithoutToolbar().dispose();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/QuestionPage.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/QuestionPage.java
deleted file mode 100644
index cd739d5702b2bdd0bdaad4cf3c06b05206bd8c61..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/wizard/QuestionPage.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard;
-
-import com.extjs.gxt.ui.client.util.Margins;
-import com.extjs.gxt.ui.client.widget.Label;
-import com.extjs.gxt.ui.client.widget.form.Radio;
-import com.extjs.gxt.ui.client.widget.form.RadioGroup;
-import com.extjs.gxt.ui.client.widget.layout.RowData;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.wizard.WizardPage;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Dict;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class QuestionPage extends WizardPage<MsInjectionSampleAnnotationModel>
-{
-
-    private Radio chooseSampleRadioButton;
-
-    private RadioGroup radioGroup;
-
-    public QuestionPage(IViewContext<IPhosphoNetXClientServiceAsync> viewContext,
-            MsInjectionSampleAnnotationModel model)
-    {
-        super(viewContext, MsInjectionAnnotationWizardState.CHOOSE_OR_CREATE_QUESTION, model);
-        setLeftContentByDictionary();
-        addToRightContent(new Label("How do you want to annotate your " 
-                + viewContext.getMessage(Dict.SAMPLES).toLowerCase() + "?"), new RowData(1, -1, new Margins(10)));
-        radioGroup = new RadioGroup();
-        radioGroup.setFieldLabel("choose");
-        chooseSampleRadioButton = new Radio();
-        String sampleText = viewContext.getMessage(Dict.SAMPLE).toLowerCase();
-        chooseSampleRadioButton.setBoxLabel("I want to choose an existing biological " + sampleText + ".");
-        chooseSampleRadioButton.setValue(true);
-        radioGroup.add(chooseSampleRadioButton);
-        Radio createSampleRadioButton = new Radio();
-        createSampleRadioButton.setBoxLabel("I want to create a new biological " + sampleText + ".");
-        radioGroup.add(createSampleRadioButton);
-        addToRightContent(radioGroup, new RowData(1, -1, new Margins(10)));
-        enableNextButton(true);
-    }
-
-    @Override
-    public void deactivate()
-    {
-        model.setChooseBiologicalSampleFlag(radioGroup.getValue().equals(chooseSampleRadioButton));
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/BiologicalSampleGridColumnIDs.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/BiologicalSampleGridColumnIDs.java
deleted file mode 100644
index cce385f54ccf5f08b460a2b3c6e12a7c14ef9b79..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/BiologicalSampleGridColumnIDs.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard.ParentlessMsInjectionSampleGrid;
-
-/**
- * IDs of columns of {@link ParentlessMsInjectionSampleGrid}.
- *
- * @author Franz-Josef Elmer
- */
-public class BiologicalSampleGridColumnIDs
-{
-    public static final String IDENTIFIER = "IDENTIFIER";
-
-    public static final String REGISTRATION_DATE = "REGISTRATION_DATE";
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/DataSetProteinGridColumnIDs.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/DataSetProteinGridColumnIDs.java
deleted file mode 100644
index dd979dab26362ac902679520b7c5ed13fffa8c54..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/DataSetProteinGridColumnIDs.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-/**
- * Column IDs for data set protein grid.
- *
- * @author Franz-Josef Elmer
- */
-public class DataSetProteinGridColumnIDs
-{
-    public static final String DATA_SET_PERM_ID = "DATA_SET_PERM_ID";
-
-    public static final String SEQUENCE_NAME = "SEQUENCE_NAME";
-
-    public static final String PEPTIDE_COUNT = "PEPTIDE_COUNT";
-
-    public static final String FDR = "FDR";
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinByExperimentAndReferenceCriteria.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinByExperimentAndReferenceCriteria.java
deleted file mode 100644
index 916a69fab857445469db65f58f221f549edfded8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinByExperimentAndReferenceCriteria.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ListProteinByExperimentAndReferenceCriteria extends
-        DefaultResultSetConfig<String, TableModelRowWithObject<DataSetProtein>> implements IsSerializable
-{
-    private TechId experimentID;
-
-    private TechId proteinReferenceID;
-
-    public final TechId getExperimentID()
-    {
-        return experimentID;
-    }
-
-    public final void setExperimentID(TechId experimentID)
-    {
-        this.experimentID = experimentID;
-    }
-
-    public final TechId getProteinReferenceID()
-    {
-        return proteinReferenceID;
-    }
-
-    public final void setProteinReferenceID(TechId proteinReferenceID)
-    {
-        this.proteinReferenceID = proteinReferenceID;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinByExperimentCriteria.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinByExperimentCriteria.java
deleted file mode 100644
index ff65dae794d464ea3269945f4e9ad380fc0653b8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinByExperimentCriteria.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ListProteinByExperimentCriteria extends
-        DefaultResultSetConfig<String, TableModelRowWithObject<ProteinInfo>> implements
-        IsSerializable
-{
-    private TechId experimentID;
-
-    private double falseDiscoveryRate;
-
-    private AggregateFunction aggregateFunction;
-
-    private String treatmentTypeCode;
-
-    private boolean aggregateOriginal;
-
-    public final TechId getExperimentID()
-    {
-        return experimentID;
-    }
-
-    public final void setExperimentID(TechId experimentID)
-    {
-        this.experimentID = experimentID;
-    }
-
-    public final double getFalseDiscoveryRate()
-    {
-        return falseDiscoveryRate;
-    }
-
-    public final void setFalseDiscoveryRate(double falseDiscoveryRate)
-    {
-        this.falseDiscoveryRate = falseDiscoveryRate;
-    }
-
-    public final AggregateFunction getAggregateFunction()
-    {
-        return aggregateFunction;
-    }
-
-    public void setAggregateFunction(AggregateFunction aggregateFunction)
-    {
-        this.aggregateFunction = aggregateFunction;
-    }
-
-    public final String getTreatmentTypeCode()
-    {
-        return treatmentTypeCode;
-    }
-
-    public final void setTreatmentTypeCode(String treatmentTypeCode)
-    {
-        this.treatmentTypeCode = treatmentTypeCode;
-    }
-
-    public final boolean isAggregateOriginal()
-    {
-        return aggregateOriginal;
-    }
-
-    public final void setAggregateOriginal(boolean aggregateOriginal)
-    {
-        this.aggregateOriginal = aggregateOriginal;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSequenceCriteria.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSequenceCriteria.java
deleted file mode 100644
index 8569e6efc3c818d45bd27956c2accfe9c4679ae1..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSequenceCriteria.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-
-/**
- * Criteria for listing {@link ProteinSequence} instances.
- *
- * @author Franz-Josef Elmer
- */
-public class ListProteinSequenceCriteria extends
-        DefaultResultSetConfig<String, TableModelRowWithObject<ProteinSequence>> implements
-        IsSerializable
-{
-    private TechId proteinReferenceID;
-
-    private TechId experimentID;
-
-    public final TechId getProteinReferenceID()
-    {
-        return proteinReferenceID;
-    }
-
-    public final void setProteinReferenceID(TechId proteinReferenceID)
-    {
-        this.proteinReferenceID = proteinReferenceID;
-    }
-
-    public void setExperimentID(TechId experimentID)
-    {
-        this.experimentID = experimentID;
-    }
-
-    public TechId getExperimentID()
-    {
-        return experimentID;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSummaryByExperimentCriteria.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSummaryByExperimentCriteria.java
deleted file mode 100644
index 3944a71acfb949ac0933f6b08038895f6d651aff..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSummaryByExperimentCriteria.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ListProteinSummaryByExperimentCriteria extends
-        DefaultResultSetConfig<String, TableModelRowWithObject<ProteinSummary>> implements
-        IsSerializable
-{
-    private TechId experimentID;
-
-    public final TechId getExperimentID()
-    {
-        return experimentID;
-    }
-
-    public final void setExperimentID(TechId experimentID)
-    {
-        this.experimentID = experimentID;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListSampleAbundanceByProteinCriteria.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListSampleAbundanceByProteinCriteria.java
deleted file mode 100644
index f191657ee18f58b81f72ed22c6edd05b1465535e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListSampleAbundanceByProteinCriteria.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ListSampleAbundanceByProteinCriteria extends
-        DefaultResultSetConfig<String, TableModelRowWithObject<ProteinRelatedSample>> implements IsSerializable
-{
-    private TechId experimentID;
-
-    private TechId proteinReferenceID;
-
-    public final TechId getExperimentID()
-    {
-        return experimentID;
-    }
-
-    public final void setExperimentID(Long experimentID)
-    {
-        this.experimentID = experimentID == null ? null : new TechId(experimentID);
-    }
-
-    public final TechId getProteinReferenceID()
-    {
-        return proteinReferenceID;
-    }
-
-    public final void setProteinReferenceID(TechId proteinReferenceID)
-    {
-        this.proteinReferenceID = proteinReferenceID;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ParentlessMsInjectionSampleGridColumnIDs.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ParentlessMsInjectionSampleGridColumnIDs.java
deleted file mode 100644
index 5655e9f62f299cde64fcf34bc3df0bb6763d52d9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ParentlessMsInjectionSampleGridColumnIDs.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.wizard.ParentlessMsInjectionSampleGrid;
-
-/**
- * IDs of columns of {@link ParentlessMsInjectionSampleGrid}.
- *
- * @author Franz-Josef Elmer
- */
-public class ParentlessMsInjectionSampleGridColumnIDs
-{
-    public static final String IDENTIFIER = "IDENTIFIER";
-
-    public static final String REGISTRATION_DATE = "REGISTRATION_DATE";
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinBrowserColumnIDs.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinBrowserColumnIDs.java
deleted file mode 100644
index faadf66e0ec68e8aeaefe1a1affc575d09b0ecb2..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinBrowserColumnIDs.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinBrowserColumnIDs
-{
-    public static final String ACCESSION_NUMBER = "ACCESSION_NUMBER";
-
-    public static final String PROTEIN_DESCRIPTION = "PROTEIN_DESCRIPTION";
-
-    public static final String COVERAGE = "COVERAGE";
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinRelatedSampleGridColumnIDs.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinRelatedSampleGridColumnIDs.java
deleted file mode 100644
index 34c9cff25fa5adf639ebc713c549a9fb7e8593aa..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinRelatedSampleGridColumnIDs.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinRelatedSampleGridColumnIDs
-{
-    public static final String SAMPLE_IDENTIFIER = "SAMPLE_IDENTIFIER";
-
-    public static final String SAMPLE_TYPE = "SAMPLE_TYPE";
-
-    public static final String ABUNDANCE = "ABUNDANCE";
-
-    public static final String MODIFIED_AMINO_ACID = "MODIFIED_AMINO_ACID";
-
-    public static final String MODIFICATION_POSITION = "MODIFICATION_POSITION";
-
-    public static final String MODIFICATION_MASS = "MODIFICATION_MASS";
-
-    public static final String MODIFICATION_FRACTION = "MODIFICATION_FRACTION";
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinSequenceGridColumnIDs.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinSequenceGridColumnIDs.java
deleted file mode 100644
index 23a88159c15fdbdecfcf13f6bba6b1b6935af6bf..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinSequenceGridColumnIDs.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.ProteinSequenceGrid;
-
-/**
- * Column IDs of {@link ProteinSequenceGrid}.
- *
- * @author Franz-Josef Elmer
- */
-public class ProteinSequenceGridColumnIDs
-{
-    public static final String SEQUENCE_SHORT_NAME = "SEQUENCE_SHORT_NAME";
-
-    public static final String DATABASE_NAME_AND_VERSION = "DATABASE_NAME_AND_VERSION";
-
-    public static final String SEQUENCE = "SEQUENCE";
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinSummaryGridColumnIDs.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinSummaryGridColumnIDs.java
deleted file mode 100644
index 2f94f198755f2aa4bca906bf103c20027513d2a9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ProteinSummaryGridColumnIDs.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto;
-
-/**
- * Column IDs for protein summary grid.
- *
- * @author Franz-Josef Elmer
- */
-public class ProteinSummaryGridColumnIDs
-{
-    public static final String FDR = "FDR";
-
-    public static final String PROTEIN_COUNT = "PROTEIN_COUNT";
-
-    public static final String PEPTIDE_COUNT = "PEPTIDE_COUNT";
-
-    public static final String DECOY_PROTEIN_COUNT = "DECOY_PROTEIN_COUNT";
-
-    public static final String DECOY_PEPTIDE_COUNT = "DECOY_PEPTIDE_COUNT";
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/public/index.html b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/public/index.html
deleted file mode 100644
index 0298c05ee9d34e4111687025192724d99a78292c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/public/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>openBIS - Biology Information System for Proteomics</title>
-
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<!--  force IE to go to document mode IE8 standards (and avoid the dreadful quirks-mode) -->
-<meta http-equiv="X-UA-Compatible" content="IE=edge" >
-
-<link rel="shortcut icon" href="images/favicon.ico" />
-<link rel="icon" type="image/png" href="images/favicon.png" />
-<link rel="stylesheet" type="text/css" href="resources/css/gxt-all.css" />
-<!-- New Grey / White Style -->
-<link rel="stylesheet" type="text/css" href="resources/css/gxt-gray.css" />
-<link rel="stylesheet" type="text/css" href="resources/css/debug-panel.css" />
-
-<!--
-// This script loads your compiled module. If you add any GWT meta tags, they must be added before this line.
--->
-<script language="javascript"
-	src="ch.systemsx.cisd.openbis.plugin.proteomics.OpenBIS.nocache.js"></script>
-
-<!-- This snippet should be automatically included in all the HTML that wishes to use the debug panel. -->
-<script type="text/javascript" language="javascript">
-    var stats = window.__stats = [];
-    window.__gwtStatsEvent = function(evt) {
-      stats[stats.length] = evt;
-      var listener = window.__stats_listener;
-      listener && listener(evt);
-      return true;
-    }
-</script>
-
-</head>
-<!--
-// The body can have arbitrary html, or you can leave the body empty if you want to create a completely dynamic ui.
--->
-<body>
-<!-- Required by IE (GWT 1.7) -->
-<iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
-<div id="openbis_login_div" style="visibility: hidden">
-<form id="openbis_login_form" method="post" action="javascript:;">
-<table cellspacing="5">
-	<tbody>
-		<tr style="padding-bottom: 5px">
-			<td><span>User:</span></td>
-			<td><input type="text" id="openbis_login_username"
-				name="openbis-username" style="width: 150px;"></td>
-		</tr>
-		<tr style="padding-bottom: 5px">
-			<td><span>Password:</span></td>
-			<td><input type="password" id="openbis_login_password"
-				name="openbis-password" style="width: 150px;"></td>
-		</tr>
-	</tbody>
-</table>
-<input style="margin-left: 200px" type="submit" id="openbis_login_submit" value="Login">
-</form>
-</div>
-</body>
-</html>
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/public/proteomics-dictionary.js b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/public/proteomics-dictionary.js
deleted file mode 100644
index d530628ec0e4998743b1d70dec9fe1ff045fb7d9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/public/proteomics-dictionary.js
+++ /dev/null
@@ -1,101 +0,0 @@
-// Proteomics dictionary
-var proteomics = {
-  ALL_PROTEINS_OF_AN_EXPERIMENT_menu_item: "All Proteins of an Experiment",
-  ALL_PROTEINS_OF_AN_EXPERIMENT_tab_label: "Proteins of an Experiment",
-  selected_experiment_label: "Experiment",
-  false_discovery_rate_filter_label: "False Discovery Rate",
-  aggregate_function_label: "Aggregate Function",
-  aggregate_on_treatment_type_label: "Aggregate on",
-  aggregate_original_label: "Aggregate original", 
-  
-  // Experiment View
-  data_set_processing_section_title: "Available Data Set Processing Tasks",
-    
-  // Protein grid
-  accession_number: "Accession Number",
-  protein_description: "Protein",
-  coverage: "Protein Coverage (in %)",
-  false_discovery_rate: "FDR",
-  fdr_combo_info: "<html><div style='width:250px'>This False Discovery Rate determines which ProteinProphet probability " +
-                    "cut-off is applied to the combined ProteinProphet output. Only proteins above this " +
-                    "probability are displayed in the table.<br/><br/>" + 
-                    "Note, that the spectral counts are not affected by this threshold and values for individual " +
-                    "samples stay unchanged as long as the protein is displayed at all.</div></html>",
-  
-  // Protein in experiment viewer
-  loading_protein_details_waiting_message: "Loading details for protein {0}",
-  proteins_section: "Proteins",
-  protein_in_experiment_tab_label: "{0} in {1}",
-  experiment_label: "Experiment",
-  sequence_short_name: "Sequence Reference",
-  protein_browser: "Proteins",
-  protein_summary: "Protein/Peptide Counts",
-  database_name_and_version: "Database",
-  primary_protein: "Primary Protein and Peptides",
-  indistinguishable_proteins: "Indistinguishable Proteins",
-  sequence: "Amino Acid Sequence",
-  sequences: "Amino Acid Sequences",
-  data_set_proteins: "Data Sets",
-  data_set_perm_id: "Data Set",
-  protein_count: "Proteins (no decoy)",
-  peptide_count: "Peptides (no decoy)",
-  decoy_protein_count: "Proteins (decoy)",
-  decoy_peptide_count: "Peptides (decoy)",
-  peptides: "Peptides ({0})",
-  sequence_name: "Sequence Reference",
-  false_discovery_rate_column: "FDR (Protein Prophet)",
-  protein_probability: "Probability (Protein Prophet)",
-  button_delete_protein: "Delete Protein",
-  
-  // ProteinRelatedSampleGrid
-  openbis_protein_related_sample_grid_main_SAMPLE_IDENTIFIER: "Identifier",
-  openbis_protein_related_sample_grid_main_SAMPLE_TYPE: "Sample Type",
-  openbis_protein_related_sample_grid_main_ABUNDANCE: "Abundance",
-  openbis_protein_related_sample_grid_main_MODIFIED_AMINO_ACID: "Modified Amino Acid",
-  openbis_protein_related_sample_grid_main_MODIFICATION_POSITION: "Modification Position",
-  openbis_protein_related_sample_grid_main_MODIFICATION_MASS: "Modification Mass",
-  openbis_protein_related_sample_grid_main_MODIFICATION_FRACTION: "Modification Fraction",
-  
-  // MS_INJECTION annotation wizard
-  
-  MS_INJECTION_SAMPLE_CHOOSING_left_content: "MS data are added to openBIS in an automated process. "
-        + "The corresponding data sets are associated with samples of type <tt>MS_INJECTION</tt>."
-        + "<p>Before MS data of such samples can be processed in a protein identification pipeline "
-        + "they have to be <b>annotated</b>. In the terminology of openBIS this means: "
-        + "An <tt>MS_INJECTION</tt> sample is linked to a biological sample where "
-        + "the biological sample is the parent and the <tt>MS_INJECTION</tt> sample is the child. "
-        + "The biological sample has all annotations (called properties in openBIS). "
-        + "They define the scientific context of proteins found and have to be created "
-        + "by the user before the MS_INJECTION sample can be linked to it. "
-        + "<p>This wizard helps you adding these important annotations to openBIS.",
-  openbis_parentless_ms_injection_sample_main_IDENTIFIER: "MS_INJECTION Sample",
-  openbis_parentless_ms_injection_sample_main_REGISTRATION_DATE: "Registration Date",
-  CHOOSE_OR_CREATE_QUESTION_left_content: "Annotating the <tt>MS_INJECTION</tt> samples you have chosen "
-        + "means to link them to a <b>biological sample</b>. "
-        + "You can choose an existing biological sample or you can create a new one.",
-  BIOLOGICAL_SAMPLE_CHOOSING_left_content: "Annotating <tt>MS_INJECTION</tt> sample by choosing one biological sample means " 
-        + "that all properties of the biological sample is also for the <tt>MS_INJECTION</tt> to be annotated.",
-  openbis_biological_sample_main_IDENTIFIER: "Biological Sample",
-  openbis_biological_sample_main_REGISTRATION_DATE: "Registration Date",
-  BIOLOGICAL_SAMPLE_CREATING_left_content: "Annotating <tt>MS_INJECTION</tt> sample by creating a new biological sample means " 
-        + "mainly specifying properties of a freshly created biological sample in openBIS.",
-  
-  
-  // RawDataSample Browser
-  
-  ANNOTATE_MS_INJECTION_SAMPLES_menu_item: "Annotate MS INJECTION Samples",
-  ANNOTATE_MS_INJECTION_SAMPLES_tab_label: "MS INJECTION Samples Annotation Wizard",
-  ALL_RAW_DATA_SAMPLES_menu_item: "All MS INJECTION Samples",  
-  ALL_RAW_DATA_SAMPLES_tab_label: "MS INJECTION Samples and Related Biological Samples",  
-  openbis_raw_data_sample_browser_CODE: "MS INJECTION Sample",
-  openbis_raw_data_sample_browser_REGISTRATION_DATE: "Registration Date",
-  openbis_raw_data_sample_browser_PARENT: "Biological Sample",
-  openbis_raw_data_sample_browser_EXPERIMENT: "Biological Experiment",
-  copy_data_sets_button_label: "Process Data Sets",
-  copy_data_sets_title: "Process Data Sets",
-  copy_data_sets_message: "Please, enter the data set type of the data sets of the samples {1} to be processed by '{0}'.", 
-  copy_data_sets_data_set_type_field: "Data Set Type",
-  
-  // LAST LINE: KEEP IT AT THE END
-  lastline: "" // we need a line without a comma
-};
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientService.java
deleted file mode 100644
index 645c5dc68d3f88165bf5eef3783783eb8cd432e1..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientService.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server;
-
-import static ch.systemsx.cisd.common.utilities.SystemTimeProvider.SYSTEM_TIME_PROVIDER;
-
-import java.io.Serializable;
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.aopalliance.intercept.MethodInterceptor;
-import org.aopalliance.intercept.MethodInvocation;
-import org.apache.commons.lang3.time.StopWatch;
-import org.springframework.aop.framework.ProxyFactory;
-import org.springframework.aop.support.DefaultPointcutAdvisor;
-import org.springframework.aop.support.annotation.AnnotationMatchingPointcut;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.stereotype.Component;
-
-import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.common.filesystem.IFreeSpaceProvider;
-import ch.systemsx.cisd.common.filesystem.SimpleFreeSpaceProvider;
-import ch.systemsx.cisd.common.servlet.IRequestContextProvider;
-import ch.systemsx.cisd.common.utilities.ITimeProvider;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.client.web.server.AbstractClientService;
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.DataProviderAdapter;
-import ch.systemsx.cisd.openbis.generic.shared.ICommonServer;
-import ch.systemsx.cisd.openbis.generic.shared.IServer;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.WebClientConfiguration;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SampleUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.util.CacheManager;
-import ch.systemsx.cisd.openbis.generic.shared.util.ICacheManager;
-import ch.systemsx.cisd.openbis.generic.shared.util.Key;
-import ch.systemsx.cisd.openbis.plugin.generic.shared.IGenericServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.BuildAndEnvironmentInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.Constants;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentAndReferenceCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinSequenceCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinSummaryByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListSampleAbundanceByProteinCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset.BiologicalSampleProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset.DataSetProteinProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset.ParentlessMsInjectionSampleProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset.ProteinProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset.ProteinRelatedSampleProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset.ProteinSequenceProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset.ProteinSummaryProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.CacheData;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.ResourceNames;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinByExperiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Component(value = ResourceNames.PROTEOMICS_PLUGIN_SERVICE)
-public class PhosphoNetXClientService extends AbstractClientService implements
-        IPhosphoNetXClientService, InitializingBean
-{
-    private static final String CACHE_VERSION = Integer.toString(ServiceVersionHolder.VERSION);
-
-    @Resource(name = ch.systemsx.cisd.openbis.generic.shared.ResourceNames.COMMON_SERVER)
-    private ICommonServer commonServer;
-
-    @Resource(name = ch.systemsx.cisd.openbis.plugin.generic.shared.ResourceNames.GENERIC_PLUGIN_SERVER)
-    private IGenericServer genericServer;
-
-    @Resource(name = ResourceNames.PROTEOMICS_PLUGIN_SERVER)
-    @Private
-    IPhosphoNetXServer server;
-
-    @Resource(name = ResourceNames.PROTEOMICS_RAW_DATA_SERVICE_WEB)
-    private IProteomicsDataServiceInternal proteomicsDataService;
-
-    @Private
-    ITimeProvider timeProvider = SYSTEM_TIME_PROVIDER;
-
-    public PhosphoNetXClientService()
-    {
-        super();
-    }
-
-    public PhosphoNetXClientService(IRequestContextProvider requestContextProvider)
-    {
-        super(requestContextProvider);
-    }
-
-    @Override
-    public void afterPropertiesSet() throws Exception
-    {
-        WebClientConfiguration webClientConfiguration = getWebClientConfiguration();
-        IFreeSpaceProvider freeSpaceProvider = new SimpleFreeSpaceProvider();
-        final ICacheManager cacheManager =
-                new CacheManager(webClientConfiguration, Constants.TECHNOLOGY_NAME,
-                        timeProvider, freeSpaceProvider, CACHE_VERSION);
-        ProxyFactory proxyFactory = new ProxyFactory(server);
-        proxyFactory.addInterface(IPhosphoNetXServer.class);
-        AnnotationMatchingPointcut pointcut =
-                AnnotationMatchingPointcut.forMethodAnnotation(CacheData.class);
-        proxyFactory.addAdvisor(new DefaultPointcutAdvisor(pointcut, new MethodInterceptor()
-            {
-                @Override
-                public Object invoke(MethodInvocation methodInvocation) throws Throwable
-                {
-                    // assuming first argument is sessionToken which shouldn't be a part of the key
-                    Object[] arguments = methodInvocation.getArguments();
-                    Object[] keyArguments = new Serializable[arguments.length];
-                    Method method = methodInvocation.getMethod();
-                    keyArguments[0] = method.getName();
-                    for (int i = 1; i < keyArguments.length; i++)
-                    {
-                        keyArguments[i] = arguments[i];
-                    }
-                    Key key = new Key(keyArguments);
-                    Object data = cacheManager.tryToGetData(key);
-                    if (data == null)
-                    {
-                        Object serverObject = methodInvocation.getThis();
-                        data = method.invoke(serverObject, arguments);
-                        cacheManager.storeData(key, data);
-                    }
-                    return data;
-                }
-            }));
-        server = (IPhosphoNetXServer) proxyFactory.getProxy();
-    }
-
-    @Override
-    protected IServer getServer()
-    {
-        return server;
-    }
-
-    @Override
-    protected String getVersion()
-    {
-        return BuildAndEnvironmentInfo.INSTANCE.getFullVersion();
-    }
-
-    @Override
-    public TypedTableResultSet<Sample> listParentlessMsInjectionSamples(
-            DefaultResultSetConfig<String, TableModelRowWithObject<Sample>> criteria)
-            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
-    {
-        String sessionToken = getSessionToken();
-        return listEntities(new ParentlessMsInjectionSampleProvider(commonServer, sessionToken),
-                criteria);
-    }
-
-    @Override
-    public TypedTableResultSet<Sample> listBiologicalSamples(
-            DefaultResultSetConfig<String, TableModelRowWithObject<Sample>> criteria)
-            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
-    {
-        String sessionToken = getSessionToken();
-        return listEntities(new BiologicalSampleProvider(commonServer, sessionToken), criteria);
-    }
-
-    @Override
-    public void linkSamples(Sample parentSample, List<Sample> childSamples)
-            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
-    {
-        String sessionToken = getSessionToken();
-        linkSamples(sessionToken, parentSample.getIdentifier(), childSamples);
-    }
-
-    @Override
-    public void createAndLinkSamples(NewSample newBiologicalSample, List<Sample> msInjectionSamples)
-            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
-    {
-        String sessionToken = getSessionToken();
-        List<NewAttachment> noAttachments = Collections.<NewAttachment> emptyList();
-        genericServer.registerSample(sessionToken, newBiologicalSample, noAttachments);
-        linkSamples(sessionToken, newBiologicalSample.getIdentifier(), msInjectionSamples);
-    }
-
-    private void linkSamples(String sessionToken, String identifier, List<Sample> childSamples)
-    {
-        String[] parents = new String[]
-        { identifier };
-        for (Sample childSample : childSamples)
-        {
-            SampleIdentifier childSampleIdentifier =
-                    SampleIdentifierFactory.parse(childSample.getIdentifier());
-            SampleUpdatesDTO update =
-                    new SampleUpdatesDTO(new TechId(childSample),
-                            Collections.<IEntityProperty> emptyList(), null, null,
-                            Collections.<NewAttachment> emptyList(),
-                            childSample.getVersion(), childSampleIdentifier, null, parents);
-            update.setUpdateExperimentLink(false);
-            genericServer.updateSample(sessionToken, update);
-        }
-    }
-
-    @Override
-    public Vocabulary getTreatmentTypeVocabulary()
-    {
-        final String sessionToken = getSessionToken();
-        return server.getTreatmentTypeVocabulary(sessionToken);
-    }
-
-    @Override
-    public List<AbundanceColumnDefinition> getAbundanceColumnDefinitionsForProteinByExperiment(
-            TechId experimentID, String treatmentTypeOrNull)
-    {
-        StopWatch stopWatch = new StopWatch();
-        stopWatch.start();
-        try
-        {
-            final String sessionToken = getSessionToken();
-            return server.getAbundanceColumnDefinitionsForProteinByExperiment(sessionToken,
-                    experimentID, treatmentTypeOrNull);
-        } finally
-        {
-            operationLog.info(stopWatch.getTime()
-                    + " msec for getAbundanceColumnDefinitionsForProteinByExperiment");
-        }
-    }
-
-    @Override
-    public TypedTableResultSet<ProteinInfo> listProteinsByExperiment(
-            ListProteinByExperimentCriteria criteria)
-    {
-        StopWatch stopWatch = new StopWatch();
-        stopWatch.start();
-        try
-        {
-            final String sessionToken = getSessionToken();
-            TechId experimentID = criteria.getExperimentID();
-            double fdr = criteria.getFalseDiscoveryRate();
-            AggregateFunction aggregateFunction = criteria.getAggregateFunction();
-            String treatmentTypeCode = criteria.getTreatmentTypeCode();
-            boolean aggregateOnOriginal = criteria.isAggregateOriginal();
-            return listEntities(new ProteinProvider(server, sessionToken, experimentID, fdr,
-                    aggregateFunction, treatmentTypeCode, aggregateOnOriginal), criteria);
-        } finally
-        {
-            operationLog.info(stopWatch.getTime() + " msec for listProteinsByExperiment");
-        }
-    }
-
-    @Override
-    public String prepareExportProteins(TableExportCriteria<TableModelRowWithObject<ProteinInfo>> exportCriteria)
-    {
-        return prepareExportEntities(exportCriteria);
-    }
-
-    @Override
-    public TypedTableResultSet<ProteinSummary> listProteinSummariesByExperiment(
-            ListProteinSummaryByExperimentCriteria criteria)
-    {
-        StopWatch stopWatch = new StopWatch();
-        stopWatch.start();
-        try
-        {
-            final String sessionToken = getSessionToken();
-            return listEntities(
-                    new ProteinSummaryProvider(server, sessionToken, criteria.getExperimentID()),
-                    criteria);
-        } finally
-        {
-            operationLog.info(stopWatch.getTime() + " msec for listProteinSummariesByExperiment");
-        }
-    }
-
-    @Override
-    public String prepareExportProteinSummary(
-            TableExportCriteria<TableModelRowWithObject<ProteinSummary>> exportCriteria)
-    {
-        return prepareExportEntities(exportCriteria);
-    }
-
-    @Override
-    public ProteinByExperiment getProteinByExperiment(TechId experimentID, TechId proteinReferenceID)
-    {
-        final String sessionToken = getSessionToken();
-        return server.getProteinByExperiment(sessionToken, experimentID, proteinReferenceID);
-    }
-
-    @Override
-    public TypedTableResultSet<ProteinSequence> listSequencesByProteinReference(
-            ListProteinSequenceCriteria criteria)
-    {
-        final String sessionToken = getSessionToken();
-        return listEntities(
-                new ProteinSequenceProvider(server, sessionToken, criteria.getExperimentID(), criteria.getProteinReferenceID()),
-                criteria);
-    }
-
-    @Override
-    public String prepareExportProteinSequences(
-            TableExportCriteria<TableModelRowWithObject<ProteinSequence>> exportCriteria)
-    {
-        return prepareExportEntities(exportCriteria);
-    }
-
-    @Override
-    public TypedTableResultSet<DataSetProtein> listProteinsByExperimentAndReference(
-            ListProteinByExperimentAndReferenceCriteria criteria)
-    {
-        final String sessionToken = getSessionToken();
-        return listEntities(
-                new DataSetProteinProvider(server, sessionToken, criteria.getExperimentID(),
-                        criteria.getProteinReferenceID()), criteria);
-    }
-
-    @Override
-    public String prepareExportDataSetProteins(
-            TableExportCriteria<TableModelRowWithObject<DataSetProtein>> exportCriteria)
-    {
-        return prepareExportEntities(exportCriteria);
-    }
-
-    @Override
-    public TypedTableResultSet<ProteinRelatedSample> listProteinRelatedSamplesByProtein(
-            ListSampleAbundanceByProteinCriteria criteria)
-    {
-        final String sessionToken = getSessionToken();
-        ProteinRelatedSampleProvider provider =
-                new ProteinRelatedSampleProvider(server, sessionToken, criteria.getExperimentID(),
-                        criteria.getProteinReferenceID());
-        return listEntities(provider, criteria);
-    }
-
-    @Override
-    public String prepareExportProteinRelatedSamples(
-            TableExportCriteria<TableModelRowWithObject<ProteinRelatedSample>> exportCriteria)
-            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
-    {
-        return prepareExportEntities(exportCriteria);
-    }
-
-    @Override
-    public TypedTableResultSet<Sample> listRawDataSamples(
-            IResultSetConfig<String, TableModelRowWithObject<Sample>> criteria)
-            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
-    {
-        final String sessionToken = getSessionToken();
-        RawDataSampleProvider rawDataSampleProvider =
-                new RawDataSampleProvider(proteomicsDataService, sessionToken);
-        DataProviderAdapter<Sample> dataProvider =
-                new DataProviderAdapter<Sample>(rawDataSampleProvider);
-        ResultSet<TableModelRowWithObject<Sample>> resultSet = listEntities(criteria, dataProvider);
-        return new TypedTableResultSet<Sample>(resultSet);
-    }
-
-    @Override
-    public String prepareExportRawDataSamples(
-            TableExportCriteria<TableModelRowWithObject<Sample>> exportCriteria)
-    {
-        return prepareExportEntities(exportCriteria);
-    }
-
-    @Override
-    @SuppressWarnings("deprecation")
-    public void processRawData(String dataSetProcessingKey, long[] rawDataSampleIDs,
-            String dataSetType)
-    {
-        proteomicsDataService.processRawData(getSessionToken(), dataSetProcessingKey,
-                rawDataSampleIDs, dataSetType);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientServiceServlet.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientServiceServlet.java
deleted file mode 100644
index ef4ee6191f331f996c50a5a7b0ccac4d0510d020..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientServiceServlet.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.servlet.ModelAndView;
-
-import ch.systemsx.cisd.common.servlet.GWTRPCServiceExporter;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.ResourceNames;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Controller
-public class PhosphoNetXClientServiceServlet extends GWTRPCServiceExporter
-{
-    private static final long serialVersionUID = 1L;
-
-    @Resource(name = ResourceNames.PROTEOMICS_PLUGIN_SERVICE)
-    private IPhosphoNetXClientService service;
-
-    @RequestMapping({ "/proteomics", "/openbis/proteomics" })
-    public final ModelAndView handleRequestExposed(final HttpServletRequest request,
-            final HttpServletResponse response) throws Exception
-    {
-        return super.handleRequest(request, response);
-    }
-
-    @Override
-    protected Object getService()
-    {
-        return service;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/RawDataSampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/RawDataSampleProvider.java
deleted file mode 100644
index 90fe409c4b9168c9474cd62ba384e0a67b2dd867..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/RawDataSampleProvider.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.RawDataSampleGridIDs.CODE;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.RawDataSampleGridIDs.EXPERIMENT;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.RawDataSampleGridIDs.PARENT;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.RawDataSampleGridIDs.REGISTRATION_DATE;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractTableModelProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-class RawDataSampleProvider extends AbstractTableModelProvider<Sample>
-{
-    private final IProteomicsDataServiceInternal service;
-
-    private final String sessionToken;
-
-    RawDataSampleProvider(IProteomicsDataServiceInternal service, String sessionToken)
-    {
-        this.service = service;
-        this.sessionToken = sessionToken;
-    }
-
-    @Override
-    public TypedTableModel<Sample> createTableModel()
-    {
-        List<MsInjectionSample> samples = service.listRawDataSamples(sessionToken);
-        TypedTableModelBuilder<Sample> builder = new TypedTableModelBuilder<Sample>();
-        builder.addColumn(CODE).withDataType(DataTypeCode.VARCHAR);
-        builder.addColumn(REGISTRATION_DATE).withDataType(DataTypeCode.TIMESTAMP)
-                .withDefaultWidth(190);
-        builder.addColumn(PARENT).withDataType(DataTypeCode.VARCHAR);
-        builder.addColumn(EXPERIMENT).withDataType(DataTypeCode.VARCHAR);
-        for (MsInjectionSample msInjectionSample : samples)
-        {
-            Sample sample = msInjectionSample.getSample();
-            builder.addRow(sample);
-            builder.column(CODE).addString(sample.getCode());
-            builder.column(REGISTRATION_DATE).addDate(sample.getRegistrationDate());
-            Sample parent = sample.getGeneratedFrom();
-            builder.column(PARENT).addString(parent.getIdentifier());
-            Experiment experiment = parent.getExperiment();
-            if (experiment != null)
-            {
-                builder.column(EXPERIMENT).addString(experiment.getIdentifier());
-            }
-            builder.columnGroup("MS").addProperties("", sample.getProperties());
-            builder.columnGroup("BIO_").addProperties(parent.getProperties());
-        }
-        return builder.getModel();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/BiologicalSampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/BiologicalSampleProvider.java
deleted file mode 100644
index 8cf8b0eb5d519a6dd891693f43fc97fa7f289b27..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/BiologicalSampleProvider.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.BiologicalSampleGridColumnIDs.IDENTIFIER;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.BiologicalSampleGridColumnIDs.REGISTRATION_DATE;
-
-import java.util.Arrays;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractCommonTableModelProvider;
-import ch.systemsx.cisd.openbis.generic.shared.ICommonServer;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchCriterion;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchField;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleAttributeSearchFieldKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SearchCriteriaConnection;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-
-/**
- * Provider of biological samples registered by the user. A biological sample is a sample with sample type code starting with BIO.
- * 
- * @author Franz-Josef Elmer
- */
-public class BiologicalSampleProvider extends AbstractCommonTableModelProvider<Sample>
-{
-    public BiologicalSampleProvider(ICommonServer commonServer, String sessionToken)
-    {
-        super(commonServer, sessionToken);
-    }
-
-    @Override
-    protected TypedTableModel<Sample> createTableModel()
-    {
-        DetailedSearchCriteria criteria = new DetailedSearchCriteria();
-        criteria.setConnection(SearchCriteriaConnection.MATCH_ALL);
-        DetailedSearchCriterion typeCriterion = new DetailedSearchCriterion();
-        typeCriterion.setField(DetailedSearchField
-                .createAttributeField(SampleAttributeSearchFieldKind.SAMPLE_TYPE));
-        typeCriterion.setValue(CommonConstants.BIOLOGICAL_SAMPLE_PREFIX + "*");
-        DetailedSearchCriterion registratorCriterion = new DetailedSearchCriterion();
-        String userName = commonServer.tryGetSession(sessionToken).getUserName();
-        registratorCriterion.setField(DetailedSearchField.createRegistratorField());
-        registratorCriterion.setValue(userName);
-        criteria.setCriteria(Arrays.asList(typeCriterion, registratorCriterion));
-        List<Sample> samples = commonServer.searchForSamples(sessionToken, criteria);
-        TypedTableModelBuilder<Sample> builder = new TypedTableModelBuilder<Sample>();
-        builder.addColumn(IDENTIFIER);
-        builder.addColumn(REGISTRATION_DATE);
-        for (Sample sample : samples)
-        {
-            builder.addRow(sample);
-            builder.column(IDENTIFIER).addString(sample.getIdentifier());
-            builder.column(REGISTRATION_DATE).addDate(sample.getRegistrationDate());
-            builder.columnGroup("PROPERTY").uneditablePropertyColumns()
-                    .addProperties(sample.getProperties());
-        }
-        return builder.getModel();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/DataSetProteinProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/DataSetProteinProvider.java
deleted file mode 100644
index 1624dc598354439dd0ce03f20c0014b676f077af..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/DataSetProteinProvider.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.DataSetProteinGridColumnIDs.DATA_SET_PERM_ID;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.DataSetProteinGridColumnIDs.FDR;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.DataSetProteinGridColumnIDs.PEPTIDE_COUNT;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.DataSetProteinGridColumnIDs.SEQUENCE_NAME;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractTableModelProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-
-/**
- * Provider of {@link DataSetProtein} instances.
- *
- * @author Franz-Josef Elmer
- */
-public class DataSetProteinProvider extends AbstractTableModelProvider<DataSetProtein>
-{
-    private final IPhosphoNetXServer server;
-
-    private final String sessionToken;
-
-    private final TechId experimentID;
-
-    private final TechId proteinReferenceID;
-
-    public DataSetProteinProvider(IPhosphoNetXServer server, String sessionToken,
-            TechId experimentID, TechId proteinReferenceID)
-    {
-        this.server = server;
-        this.sessionToken = sessionToken;
-        this.experimentID = experimentID;
-        this.proteinReferenceID = proteinReferenceID;
-    }
-
-    @Override
-    protected TypedTableModel<DataSetProtein> createTableModel()
-    {
-        List<DataSetProtein> proteins =
-                server.listProteinsByExperimentAndReference(sessionToken, experimentID,
-                        proteinReferenceID);
-        TypedTableModelBuilder<DataSetProtein> builder =
-                new TypedTableModelBuilder<DataSetProtein>();
-        builder.addColumn(DATA_SET_PERM_ID).withDefaultWidth(200);
-        builder.addColumn(SEQUENCE_NAME).withDefaultWidth(80);
-        builder.addColumn(PEPTIDE_COUNT).withDataType(DataTypeCode.INTEGER).withDefaultWidth(80);
-        builder.addColumn(FDR).withDefaultWidth(80);
-        for (DataSetProtein protein : proteins)
-        {
-            builder.addRow(protein);
-            builder.column(DATA_SET_PERM_ID).addString(protein.getDataSetPermID());
-            builder.column(SEQUENCE_NAME).addString(protein.getSequenceName());
-            builder.column(PEPTIDE_COUNT).addInteger((long) protein.getPeptideCount());
-            int perMille = (int) (1000 * protein.getFalseDiscoveryRate() + 0.5);
-            builder.column(FDR).addString((perMille / 10) + "." + (perMille % 10) + " %");
-        }
-        return builder.getModel();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ParentlessMsInjectionSampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ParentlessMsInjectionSampleProvider.java
deleted file mode 100644
index 3b9feeeef9e84b24c4830556c156afccafff2d89..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ParentlessMsInjectionSampleProvider.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ParentlessMsInjectionSampleGridColumnIDs.IDENTIFIER;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ParentlessMsInjectionSampleGridColumnIDs.REGISTRATION_DATE;
-
-import java.util.Arrays;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractCommonTableModelProvider;
-import ch.systemsx.cisd.openbis.generic.shared.ICommonServer;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchCriterion;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchField;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleAttributeSearchFieldKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SearchCriteriaConnection;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-
-/**
- * Provider of MS_INJECTION samples registered for the user.
- * 
- * @author Franz-Josef Elmer
- */
-public class ParentlessMsInjectionSampleProvider extends AbstractCommonTableModelProvider<Sample>
-{
-    public ParentlessMsInjectionSampleProvider(ICommonServer commonServer, String sessionToken)
-    {
-        super(commonServer, sessionToken);
-    }
-
-    @Override
-    protected TypedTableModel<Sample> createTableModel()
-    {
-        DetailedSearchCriteria criteria = new DetailedSearchCriteria();
-        criteria.setConnection(SearchCriteriaConnection.MATCH_ALL);
-        DetailedSearchCriterion typeCriterion = new DetailedSearchCriterion();
-        typeCriterion.setField(DetailedSearchField
-                .createAttributeField(SampleAttributeSearchFieldKind.SAMPLE_TYPE));
-        typeCriterion.setValue(CommonConstants.MS_INJECTION_SAMPLE_TYPE_CODE);
-        DetailedSearchCriterion spaceCriterion = new DetailedSearchCriterion();
-        spaceCriterion.setField(DetailedSearchField
-                .createAttributeField(SampleAttributeSearchFieldKind.SPACE));
-        spaceCriterion.setValue(CommonConstants.MS_DATA_SPACE);
-        DetailedSearchCriterion registratorCriterion = new DetailedSearchCriterion();
-        String userName = commonServer.tryGetSession(sessionToken).getUserName();
-        registratorCriterion.setField(DetailedSearchField.createRegistratorField());
-        registratorCriterion.setValue(userName);
-        criteria.setCriteria(Arrays.asList(typeCriterion, spaceCriterion, registratorCriterion));
-        List<Sample> samples = commonServer.searchForSamples(sessionToken, criteria);
-        TypedTableModelBuilder<Sample> builder = new TypedTableModelBuilder<Sample>();
-        builder.addColumn(IDENTIFIER).withDefaultWidth(300);
-        builder.addColumn(REGISTRATION_DATE).withDefaultWidth(300);
-        for (Sample sample : samples)
-        {
-            if (sample.getGeneratedFrom() == null)
-            {
-                builder.addRow(sample);
-                builder.column(IDENTIFIER).addString(sample.getIdentifier());
-                builder.column(REGISTRATION_DATE).addDate(sample.getRegistrationDate());
-            }
-        }
-        return builder.getModel();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinProvider.java
deleted file mode 100644
index 38513cf59f0dbd945266e17a3c63932e15e0ac55..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinProvider.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinBrowserColumnIDs.ACCESSION_NUMBER;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinBrowserColumnIDs.COVERAGE;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinBrowserColumnIDs.PROTEIN_DESCRIPTION;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
-import ch.systemsx.cisd.common.exceptions.HighLevelException;
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractTableModelProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.generic.shared.util.IColumn;
-import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Treatment;
-
-/**
- * Provider of {@link ProteinInfo} instances.
- * 
- * @author Franz-Josef Elmer
- */
-public class ProteinProvider extends AbstractTableModelProvider<ProteinInfo>
-{
-    private static final String ABUNDANCE_PROPERTY_KEY = "ABUNDANCE";
-
-    private final IPhosphoNetXServer server;
-
-    private final String sessionToken;
-
-    private final TechId experimentID;
-
-    private final double falseDiscoveryRate;
-
-    private final AggregateFunction aggregateFunction;
-
-    private final String treatmentTypeCode;
-
-    private final boolean aggregateOnOriginal;
-
-    public ProteinProvider(IPhosphoNetXServer server, String sessionToken, TechId experimentID,
-            double falseDiscoveryRate, AggregateFunction function, String treatmentTypeCode,
-            boolean aggregateOnOriginal)
-    {
-        this.server = server;
-        this.sessionToken = sessionToken;
-        this.experimentID = experimentID;
-        this.falseDiscoveryRate = falseDiscoveryRate;
-        this.aggregateFunction = function;
-        this.treatmentTypeCode = treatmentTypeCode;
-        this.aggregateOnOriginal = aggregateOnOriginal;
-    }
-
-    @Override
-    protected TypedTableModel<ProteinInfo> createTableModel()
-    {
-        try
-        {
-
-            List<AbundanceColumnDefinition> abundanceColumnDefinitions =
-                    server.getAbundanceColumnDefinitionsForProteinByExperiment(sessionToken,
-                            experimentID, treatmentTypeCode);
-            List<ProteinInfo> proteins =
-                    server.listProteinsByExperiment(sessionToken, experimentID, falseDiscoveryRate,
-                            aggregateFunction, treatmentTypeCode, aggregateOnOriginal);
-            TypedTableModelBuilder<ProteinInfo> builder = new TypedTableModelBuilder<ProteinInfo>();
-            builder.addColumn(ACCESSION_NUMBER);
-            builder.addColumn(PROTEIN_DESCRIPTION);
-            builder.addColumn(COVERAGE).withDefaultWidth(100);
-            Map<Long, IColumn> sampleIdToAbundanceColumnMap = new HashMap<Long, IColumn>();
-            for (AbundanceColumnDefinition abundanceColumnDefinition : abundanceColumnDefinitions)
-            {
-                long sampleID = abundanceColumnDefinition.getID();
-                String columnID = "abundance-" + Long.toString(sampleID);
-                builder.addColumn(columnID).withDefaultWidth(100);
-                IColumn column = builder.column(columnID);
-                sampleIdToAbundanceColumnMap.put(sampleID, column);
-                String header = abundanceColumnDefinition.getSampleCode();
-                Map<String, String> properties = new HashMap<String, String>();
-                properties.put(ABUNDANCE_PROPERTY_KEY, header);
-                List<Treatment> treatments = abundanceColumnDefinition.getTreatments();
-                if (treatments.isEmpty() == false)
-                {
-                    String delim;
-                    if (header == null)
-                    {
-                        header = "";
-                        delim = "";
-                    } else
-                    {
-                        delim = ": ";
-                    }
-                    for (Treatment treatment : treatments)
-                    {
-                        header += delim + treatment;
-                        delim = ", ";
-                        column.property(treatment.getTypeCode(), treatment.getValue());
-                    }
-                }
-                column.withTitle(header);
-            }
-            for (ProteinInfo protein : proteins)
-            {
-                builder.addRow(protein);
-                builder.column(ACCESSION_NUMBER).addString(protein.getAccessionNumber());
-                builder.column(PROTEIN_DESCRIPTION).addString(protein.getDescription());
-                builder.column(COVERAGE).addDouble(protein.getCoverage());
-                Map<Long, Double> abundances = protein.getAbundances();
-                Set<Entry<Long, Double>> entrySet = abundances.entrySet();
-                for (Entry<Long, Double> entry : entrySet)
-                {
-                    IColumn column = sampleIdToAbundanceColumnMap.get(entry.getKey());
-                    if (column != null)
-                    {
-                        column.addDouble(entry.getValue());
-                    }
-                }
-            }
-            return builder.getModel();
-        } catch (Exception e)
-        {
-            Throwable t = e;
-            while (t != null)
-            {
-                if (t instanceof HighLevelException)
-                {
-                    throw (HighLevelException) t;
-                }
-                t = t.getCause();
-            }
-            throw CheckedExceptionTunnel.wrapIfNecessary(e);
-        }
-
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinRelatedSampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinRelatedSampleProvider.java
deleted file mode 100644
index 5cec3d17095d10a42a15ba27a73b981250f049c1..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinRelatedSampleProvider.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset;
-
-import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode.INTEGER;
-import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode.REAL;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinRelatedSampleGridColumnIDs.ABUNDANCE;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinRelatedSampleGridColumnIDs.MODIFICATION_FRACTION;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinRelatedSampleGridColumnIDs.MODIFICATION_MASS;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinRelatedSampleGridColumnIDs.MODIFICATION_POSITION;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinRelatedSampleGridColumnIDs.MODIFIED_AMINO_ACID;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinRelatedSampleGridColumnIDs.SAMPLE_IDENTIFIER;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinRelatedSampleGridColumnIDs.SAMPLE_TYPE;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractTableModelProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AminoAcid;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-
-/**
- * Provider of {@link ProteinRelatedSample}.
- *
- * @author Franz-Josef Elmer
- */
-public class ProteinRelatedSampleProvider extends AbstractTableModelProvider<ProteinRelatedSample>
-{
-    private static final String PROPERTIES_GROUP = "property-";
-
-    private final IPhosphoNetXServer server;
-
-    private final String sessionToken;
-
-    private final TechId experimentID;
-
-    private final TechId proteinReferenceID;
-
-    public ProteinRelatedSampleProvider(IPhosphoNetXServer server, String sessionToken,
-            TechId experimentID, TechId proteinReferenceID)
-    {
-        this.server = server;
-        this.sessionToken = sessionToken;
-        this.experimentID = experimentID;
-        this.proteinReferenceID = proteinReferenceID;
-    }
-
-    @Override
-    protected TypedTableModel<ProteinRelatedSample> createTableModel()
-    {
-        List<ProteinRelatedSample> samples =
-                server.listProteinRelatedSamplesByProtein(sessionToken, experimentID,
-                        proteinReferenceID);
-        TypedTableModelBuilder<ProteinRelatedSample> builder =
-                new TypedTableModelBuilder<ProteinRelatedSample>();
-        builder.column(SAMPLE_IDENTIFIER);
-        builder.column(SAMPLE_TYPE);
-        builder.column(ABUNDANCE).withDataType(REAL).withDefaultWidth(100);
-        builder.column(MODIFIED_AMINO_ACID);
-        builder.column(MODIFICATION_POSITION).withDataType(INTEGER).withDefaultWidth(100);
-        builder.column(MODIFICATION_MASS).withDataType(REAL).withDefaultWidth(100);
-        builder.column(MODIFICATION_FRACTION).withDataType(REAL).withDefaultWidth(100);
-        for (ProteinRelatedSample sample : samples)
-        {
-            builder.addRow(sample);
-            builder.column(SAMPLE_IDENTIFIER).addString(sample.getIdentifier());
-            builder.column(SAMPLE_TYPE).addString(sample.getEntityType().getCode());
-            builder.column(ABUNDANCE).addDouble(sample.getAbundance());
-            builder.column(MODIFIED_AMINO_ACID).addString(getAminoAcidName(sample));
-            builder.column(MODIFICATION_POSITION).addInteger(sample.getModificationPosition());
-            builder.column(MODIFICATION_MASS).addDouble(sample.getModificationMass());
-            builder.column(MODIFICATION_FRACTION).addDouble(sample.getModificationFraction());
-            builder.columnGroup(PROPERTIES_GROUP).addProperties(sample.getProperties());
-        }
-        return builder.getModel();
-    }
-
-    private String getAminoAcidName(ProteinRelatedSample sample)
-    {
-        char modifiedAminoAcid = sample.getModifiedAminoAcid();
-        if (modifiedAminoAcid == 0)
-        {
-            return null;
-        }
-        try
-        {
-            char aminoAcidSymbol = Character.toUpperCase(modifiedAminoAcid);
-            return AminoAcid.valueOf(Character.toString(aminoAcidSymbol)).getName();
-        } catch (IllegalArgumentException ex)
-        {
-            return "?";
-        }
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProvider.java
deleted file mode 100644
index 12bab9a5210b09a752614816c03584985647bab4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProvider.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinSequenceGridColumnIDs.DATABASE_NAME_AND_VERSION;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinSequenceGridColumnIDs.SEQUENCE;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinSequenceGridColumnIDs.SEQUENCE_SHORT_NAME;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractTableModelProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-
-/**
- * Provider of {@link ProteinSequence} instances.
- *
- * @author Franz-Josef Elmer
- */
-public class ProteinSequenceProvider extends AbstractTableModelProvider<ProteinSequence>
-{
-    private final IPhosphoNetXServer server;
-
-    private final String sessionToken;
-
-    private final TechId experimentID;
-
-    private final TechId proteinReferenceID;
-
-    public ProteinSequenceProvider(IPhosphoNetXServer server, String sessionToken,
-            TechId experimentID, TechId proteinReferenceID)
-    {
-        this.server = server;
-        this.sessionToken = sessionToken;
-        this.experimentID = experimentID;
-        this.proteinReferenceID = proteinReferenceID;
-    }
-
-    @Override
-    protected TypedTableModel<ProteinSequence> createTableModel()
-    {
-        List<ProteinSequence> sequences =
-                server.listProteinSequencesByProteinReference(sessionToken, experimentID, proteinReferenceID);
-        TypedTableModelBuilder<ProteinSequence> builder =
-                new TypedTableModelBuilder<ProteinSequence>();
-        builder.addColumn(SEQUENCE_SHORT_NAME).withDefaultWidth(20);
-        builder.addColumn(DATABASE_NAME_AND_VERSION);
-        builder.addColumn(SEQUENCE).withDefaultWidth(400);
-        for (ProteinSequence sequence : sequences)
-        {
-            builder.addRow(sequence);
-            builder.column(SEQUENCE_SHORT_NAME).addString(sequence.getShortName());
-            builder.column(DATABASE_NAME_AND_VERSION).addString(
-                    sequence.getDatabaseNameAndVersion());
-            builder.column(SEQUENCE).addString(sequence.getSequence());
-        }
-        return builder.getModel();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSummaryProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSummaryProvider.java
deleted file mode 100644
index 4f2b5a1093bca517c476d74950c10ab629a97a8c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSummaryProvider.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinSummaryGridColumnIDs.DECOY_PEPTIDE_COUNT;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinSummaryGridColumnIDs.DECOY_PROTEIN_COUNT;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinSummaryGridColumnIDs.FDR;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinSummaryGridColumnIDs.PEPTIDE_COUNT;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ProteinSummaryGridColumnIDs.PROTEIN_COUNT;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractTableModelProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * Provider of {@link ProteinSummary} instances.
- *
- * @author Franz-Josef Elmer
- */
-public class ProteinSummaryProvider extends AbstractTableModelProvider<ProteinSummary>
-{
-    private final IPhosphoNetXServer server;
-
-    private final String sessionToken;
-
-    private final TechId experimentID;
-
-    public ProteinSummaryProvider(IPhosphoNetXServer server, String sessionToken,
-            TechId experimentID)
-    {
-        this.server = server;
-        this.sessionToken = sessionToken;
-        this.experimentID = experimentID;
-    }
-
-    @Override
-    protected TypedTableModel<ProteinSummary> createTableModel()
-    {
-        List<ProteinSummary> sumaries = server.listProteinSummariesByExperiment(sessionToken, experimentID);
-        TypedTableModelBuilder<ProteinSummary> builder = new TypedTableModelBuilder<ProteinSummary>();
-        builder.addColumn(FDR);
-        builder.addColumn(PROTEIN_COUNT).withDefaultWidth(100);
-        builder.addColumn(PEPTIDE_COUNT).withDefaultWidth(100);
-        builder.addColumn(DECOY_PROTEIN_COUNT).withDefaultWidth(100);
-        builder.addColumn(DECOY_PEPTIDE_COUNT).withDefaultWidth(100);
-        for (ProteinSummary summary : sumaries)
-        {
-            builder.addRow(summary);
-            builder.column(FDR).addDouble(summary.getFDR());
-            builder.column(PROTEIN_COUNT).addInteger((long) summary.getProteinCount());
-            builder.column(PEPTIDE_COUNT).addInteger((long) summary.getPeptideCount());
-            builder.column(DECOY_PROTEIN_COUNT).addInteger((long) summary.getDecoyProteinCount());
-            builder.column(DECOY_PEPTIDE_COUNT).addInteger((long) summary.getDecoyPeptideCount());
-        }
-        return builder.getModel();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServer.java
deleted file mode 100644
index 791c9d90ae5997d29e74a572ac5fd61dfcd9c16e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServer.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server;
-
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import net.lemnik.eodsql.DataSet;
-
-import org.springframework.stereotype.Component;
-
-import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.common.spring.IInvocationLoggerContext;
-import ch.systemsx.cisd.openbis.generic.server.AbstractServer;
-import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.AuthorizationGuard;
-import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.RolesAllowed;
-import ch.systemsx.cisd.openbis.generic.server.authorization.predicate.AbstractTechIdPredicate.ExperimentTechIdPredicate;
-import ch.systemsx.cisd.openbis.generic.server.business.IPropertiesBatchManager;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IVocabularyDAO;
-import ch.systemsx.cisd.openbis.generic.server.plugin.IDataSetTypeSlaveServerPlugin;
-import ch.systemsx.cisd.openbis.generic.server.plugin.ISampleTypeSlaveServerPlugin;
-import ch.systemsx.cisd.openbis.generic.shared.IOpenBisSessionManager;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyPE;
-import ch.systemsx.cisd.openbis.generic.shared.translator.VocabularyTranslator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.AccessionNumberBuilder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IAbundanceColumnDefinitionTable;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IDataSetProteinTable;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IProteinDetailsBO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IProteinInfoTable;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IProteinRelatedSampleTable;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IProteinSequenceTable;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IProteinSummaryTable;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.ISampleProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.ResourceNames;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinByExperiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinDetails;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReference;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Component(ResourceNames.PROTEOMICS_PLUGIN_SERVER)
-public class PhosphoNetXServer extends AbstractServer<IPhosphoNetXServer> implements
-        IPhosphoNetXServer
-{
-    @Resource(name = ResourceNames.PROTEOMICS_DAO_FACTORY)
-    private IPhosphoNetXDAOFactory specificDAOFactory;
-
-    @Resource(name = ResourceNames.PROTEOMICS_BO_FACTORY)
-    private IBusinessObjectFactory specificBOFactory;
-
-    public PhosphoNetXServer()
-    {
-        super();
-    }
-
-    @Private
-    PhosphoNetXServer(IOpenBisSessionManager sessionManager, IDAOFactory daoFactory,
-            IPropertiesBatchManager propertiesBatchManager,
-            IPhosphoNetXDAOFactory specificDAOFactory, IBusinessObjectFactory specificBOFactory,
-            ISampleTypeSlaveServerPlugin sampleTypeSlaveServerPlugin,
-            IDataSetTypeSlaveServerPlugin dataSetTypeSlaveServerPlugin)
-    {
-        super(sessionManager, daoFactory, propertiesBatchManager, sampleTypeSlaveServerPlugin,
-                dataSetTypeSlaveServerPlugin);
-        this.specificDAOFactory = specificDAOFactory;
-        this.specificBOFactory = specificBOFactory;
-    }
-
-    @Override
-    public IPhosphoNetXServer createLogger(IInvocationLoggerContext context)
-    {
-        return new PhosphoNetXServerLogger(getSessionManager(), context);
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER)
-    public Vocabulary getTreatmentTypeVocabulary(String sessionToken) throws UserFailureException
-    {
-        IVocabularyDAO vocabularyDAO = getDAOFactory().getVocabularyDAO();
-        VocabularyPE vocabulary = vocabularyDAO.tryFindVocabularyByCode("TREATMENT_TYPE");
-        return VocabularyTranslator.translate(vocabulary);
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER)
-    public List<AbundanceColumnDefinition> getAbundanceColumnDefinitionsForProteinByExperiment(
-            String sessionToken, @AuthorizationGuard(guardClass = ExperimentTechIdPredicate.class) TechId experimentID, String treatmentTypeOrNull)
-            throws UserFailureException
-    {
-        Session session = getSession(sessionToken);
-        ISampleProvider sampleProvider = specificBOFactory.createSampleProvider(session);
-        sampleProvider.loadByExperimentID(experimentID);
-        return getAbundanceColumnDefinitions(session, sampleProvider, experimentID,
-                treatmentTypeOrNull);
-    }
-
-    private List<AbundanceColumnDefinition> getAbundanceColumnDefinitions(Session session,
-            ISampleProvider sampleProvider, TechId experimentID, String treatmentTypeOrNull)
-    {
-        String experimentPermID = getExperimentPermIDFor(experimentID);
-        IProteinQueryDAO dao = specificDAOFactory.getProteinQueryDAO(experimentID);
-        DataSet<String> samplePermIDs =
-                dao.listAbundanceRelatedSamplePermIDsByExperiment(experimentPermID);
-        try
-        {
-            IAbundanceColumnDefinitionTable table =
-                    specificBOFactory.createAbundanceColumnDefinitionTable(session);
-            for (String samplePermID : samplePermIDs)
-            {
-                table.add(sampleProvider.getSample(samplePermID));
-            }
-            return table.getSortedAndAggregatedDefinitions(treatmentTypeOrNull);
-        } finally
-        {
-            samplePermIDs.close();
-        }
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER)
-    public List<ProteinInfo> listProteinsByExperiment(String sessionToken,
-            @AuthorizationGuard(guardClass = ExperimentTechIdPredicate.class) TechId experimentId, double falseDiscoveryRate,
-            AggregateFunction function,
-            String treatmentTypeCode, boolean aggregateOnOriginal) throws UserFailureException
-    {
-        final Session session = getSession(sessionToken);
-        ISampleProvider sampleProvider = specificBOFactory.createSampleProvider(session);
-        sampleProvider.loadByExperimentID(experimentId);
-        List<AbundanceColumnDefinition> definitions =
-                getAbundanceColumnDefinitions(session, sampleProvider, experimentId,
-                        treatmentTypeCode);
-        IProteinInfoTable table = specificBOFactory.createProteinInfoTable(session, sampleProvider);
-        table.load(definitions, experimentId, falseDiscoveryRate, function, aggregateOnOriginal);
-        return table.getProteinInfos();
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER)
-    public List<ProteinSummary> listProteinSummariesByExperiment(String sessionToken,
-            @AuthorizationGuard(guardClass = ExperimentTechIdPredicate.class) TechId experimentId) throws UserFailureException
-    {
-        final Session session = getSession(sessionToken);
-        IProteinSummaryTable summaryTable = specificBOFactory.createProteinSummaryTable(session);
-        summaryTable.load(experimentId);
-        return summaryTable.getProteinSummaries();
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER)
-    public ProteinByExperiment getProteinByExperiment(String sessionToken,
-            @AuthorizationGuard(guardClass = ExperimentTechIdPredicate.class) TechId experimentID, TechId proteinReferenceID)
-            throws UserFailureException
-    {
-        Session session = getSession(sessionToken);
-        IProteinQueryDAO proteinQueryDAO = specificDAOFactory.getProteinQueryDAO(experimentID);
-        ProteinByExperiment proteinByExperiment = new ProteinByExperiment();
-        ProteinReference proteinReference =
-                proteinQueryDAO.tryToGetProteinReference(proteinReferenceID.getId());
-        if (proteinReference == null)
-        {
-            throw new UserFailureException("No protein reference found for ID: "
-                    + proteinReferenceID);
-        }
-        proteinByExperiment.setId(proteinReferenceID);
-        AccessionNumberBuilder builder =
-                new AccessionNumberBuilder(proteinReference.getAccessionNumber());
-        proteinByExperiment.setAccessionNumber(builder.getAccessionNumber());
-        proteinByExperiment.setAccessionNumberType(builder.getTypeOrNull());
-        proteinByExperiment.setDescription(proteinReference.getDescription());
-        IProteinDetailsBO proteinDetailsBO = specificBOFactory.createProteinDetailsBO(session);
-        proteinDetailsBO.loadByExperimentAndReference(experimentID, proteinReferenceID);
-        proteinByExperiment.setDetails(proteinDetailsBO.getDetailsOrNull());
-        return proteinByExperiment;
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER)
-    public List<ProteinSequence> listProteinSequencesByProteinReference(String sessionToken,
-            @AuthorizationGuard(guardClass = ExperimentTechIdPredicate.class) TechId experimentID, TechId proteinReferenceID)
-            throws UserFailureException
-    {
-        final Session session = getSession(sessionToken);
-        IProteinSequenceTable sequenceTable = specificBOFactory.createProteinSequenceTable(session);
-        sequenceTable.loadByReference(experimentID, proteinReferenceID);
-        return sequenceTable.getSequences();
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER)
-    public List<DataSetProtein> listProteinsByExperimentAndReference(String sessionToken,
-            @AuthorizationGuard(guardClass = ExperimentTechIdPredicate.class) TechId experimentId, TechId proteinReferenceID)
-            throws UserFailureException
-    {
-        final Session session = getSession(sessionToken);
-        IProteinSequenceTable sequenceTable = specificBOFactory.createProteinSequenceTable(session);
-        sequenceTable.loadByReference(experimentId, proteinReferenceID);
-        IDataSetProteinTable dataSetProteinTable =
-                specificBOFactory.createDataSetProteinTable(session);
-        dataSetProteinTable.load(getExperimentPermIDFor(experimentId), proteinReferenceID,
-                sequenceTable);
-        return dataSetProteinTable.getDataSetProteins();
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER)
-    public List<ProteinRelatedSample> listProteinRelatedSamplesByProtein(String sessionToken,
-            @AuthorizationGuard(guardClass = ExperimentTechIdPredicate.class) TechId experimentID, TechId proteinReferenceID)
-            throws UserFailureException
-    {
-        final Session session = getSession(sessionToken);
-
-        IProteinDetailsBO proteinDetailsBO = specificBOFactory.createProteinDetailsBO(session);
-        proteinDetailsBO.loadByExperimentAndReference(experimentID, proteinReferenceID);
-        ProteinDetails detailsOrNull = proteinDetailsBO.getDetailsOrNull();
-        String sequenceOrNull = detailsOrNull == null ? null : detailsOrNull.getSequence();
-        IProteinRelatedSampleTable proteinRelatedSampleTable =
-                specificBOFactory.createProteinRelatedSampleTable(session);
-        proteinRelatedSampleTable.load(session, experimentID, proteinReferenceID, sequenceOrNull);
-        return proteinRelatedSampleTable.getSamples();
-    }
-
-    private String getExperimentPermIDFor(TechId experimentId)
-    {
-        ExperimentPE experiment = getDAOFactory().getExperimentDAO().getByTechId(experimentId);
-        return experiment.getPermId();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerLogger.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerLogger.java
deleted file mode 100644
index 0a3dfe4c53b7c29e0cfd76ca9fdb2dc935cc7cde..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerLogger.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server;
-
-import java.util.List;
-
-import ch.systemsx.cisd.authentication.ISessionManager;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.common.spring.IInvocationLoggerContext;
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerLogger;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinByExperiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class PhosphoNetXServerLogger extends AbstractServerLogger implements IPhosphoNetXServer
-{
-    PhosphoNetXServerLogger(final ISessionManager<Session> sessionManager,
-            IInvocationLoggerContext context)
-    {
-        super(sessionManager, context);
-    }
-
-    @Override
-    public Vocabulary getTreatmentTypeVocabulary(String sessionToken) throws UserFailureException
-    {
-        logAccess(sessionToken, "get_treatment_type_vocabulary");
-        return null;
-    }
-
-    @Override
-    public List<AbundanceColumnDefinition> getAbundanceColumnDefinitionsForProteinByExperiment(
-            String sessionToken, TechId experimentID, String treatmentTypeOrNull)
-            throws UserFailureException
-    {
-        logAccess(sessionToken, "get_abundance_colum_definitions",
-                "EXPERIMENT_ID(%s) TREATMENT_TYPE(%s)", experimentID,
-                treatmentTypeOrNull);
-        return null;
-    }
-
-    @Override
-    public List<ProteinInfo> listProteinsByExperiment(String sessionToken, TechId experimentId,
-            double falseDiscoveryRate, AggregateFunction function, String treatmentTypeCode,
-            boolean aggregateOnOriginal) throws UserFailureException
-    {
-        logAccess(sessionToken, "list_proteins_by_experiment",
-                "ID(%s) FDR(%s) AGGREGATE_FUNCTION(%s) TREATMENT_TYPE(%s) "
-                        + "AGGREGATE_ON_ORIGINAL(%s)", experimentId, falseDiscoveryRate, function
-                        .getLabel(), treatmentTypeCode, aggregateOnOriginal);
-        return null;
-    }
-
-    @Override
-    public List<ProteinSummary> listProteinSummariesByExperiment(String sessionToken,
-            TechId experimentId) throws UserFailureException
-    {
-        logAccess(sessionToken, "list_protein_summaries_by_experiment", "EXPERIMENT_ID(%s)",
-                experimentId);
-        return null;
-    }
-
-    @Override
-    public ProteinByExperiment getProteinByExperiment(String sessionToken, TechId experimentId,
-            TechId proteinReferenceID) throws UserFailureException
-    {
-        logAccess(sessionToken, "get_protein_by_experiment",
-                "EXPERIMENT_ID(%s) PROTEIN_REFERENCE_ID(%s)", experimentId, proteinReferenceID);
-        return null;
-    }
-
-    @Override
-    public List<ProteinSequence> listProteinSequencesByProteinReference(String sessionToken,
-            TechId experimentID, TechId proteinReferenceID) throws UserFailureException
-    {
-        logAccess(sessionToken, "list_protein_sequences_by_reference",
-                "EXPERIMENT_ID(%s) PROTEIN_REFERENCE_ID(%s)", experimentID, proteinReferenceID);
-        return null;
-    }
-
-    @Override
-    public List<DataSetProtein> listProteinsByExperimentAndReference(String sessionToken,
-            TechId experimentId, TechId proteinReferenceID) throws UserFailureException
-    {
-        logAccess(sessionToken, "list_proteins_by_experiment_and_reference",
-                "EXPERIMENT_ID(%s) PROTEIN_REFERENCE_ID(%s)", experimentId, proteinReferenceID);
-        return null;
-    }
-
-    @Override
-    public List<ProteinRelatedSample> listProteinRelatedSamplesByProtein(String sessionToken,
-            TechId experimentID, TechId proteinReferenceID) throws UserFailureException
-    {
-        logAccess(sessionToken, "list_protein_related_samples_by_protein",
-                "EXPERIMENT_ID(%s) PROTEIN_REFERENCE_ID(%s)", experimentID, proteinReferenceID);
-        return null;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ProteomicsDataServiceInternal.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ProteomicsDataServiceInternal.java
deleted file mode 100644
index f9d28fd536ec194583a1e6d80692247509a988c0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ProteomicsDataServiceInternal.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import ch.systemsx.cisd.common.collection.CollectionUtils;
-import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.common.spring.IInvocationLoggerContext;
-import ch.systemsx.cisd.openbis.generic.server.AbstractServer;
-import ch.systemsx.cisd.openbis.generic.server.authorization.AuthorizationDataProvider;
-import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.AuthorizationGuard;
-import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.ReturnValueFilter;
-import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.RolesAllowed;
-import ch.systemsx.cisd.openbis.generic.server.authorization.predicate.AbstractTechIdPredicate.ExperimentTechIdPredicate;
-import ch.systemsx.cisd.openbis.generic.server.authorization.predicate.DataSetCodeCollectionPredicate;
-import ch.systemsx.cisd.openbis.generic.server.authorization.validator.ExperimentValidator;
-import ch.systemsx.cisd.openbis.generic.server.authorization.validator.SamplePropertyAccessValidator;
-import ch.systemsx.cisd.openbis.generic.server.business.IPropertiesBatchManager;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.ICommonBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.IDataSetTable;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataDAO;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityTypeDAO;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExperimentDAO;
-import ch.systemsx.cisd.openbis.generic.shared.IOpenBisSessionManager;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Code;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Metaproject;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServicePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.MetaprojectAssignmentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind;
-import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory;
-import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTranslator;
-import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator;
-import ch.systemsx.cisd.openbis.generic.shared.translator.MetaprojectTranslator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.authorization.validator.ParentSampleValidator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.authorization.validator.RawDataSampleValidator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.ExperimentLoader;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.ISampleLoader;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteomicsDataServiceInternal extends AbstractServer<IProteomicsDataServiceInternal>
-        implements IProteomicsDataServiceInternal
-{
-    private ICommonBusinessObjectFactory commonBoFactory;
-
-    private IOpenBisSessionManager sessionManagerFromConstructor;
-
-    private ExperimentLoader experimentLoader;
-
-    private IBusinessObjectFactory boFactory;
-
-    private IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory;
-
-    public ProteomicsDataServiceInternal()
-    {
-    }
-
-    public ProteomicsDataServiceInternal(IOpenBisSessionManager sessionManager,
-            IDAOFactory daoFactory, ICommonBusinessObjectFactory businessObjectFactory,
-            IBusinessObjectFactory boFactory,
-            IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory)
-    {
-        this(sessionManager, daoFactory, null, businessObjectFactory, boFactory,
-                managedPropertyEvaluatorFactory);
-    }
-
-    ProteomicsDataServiceInternal(IOpenBisSessionManager sessionManager, IDAOFactory daoFactory,
-            IPropertiesBatchManager propertiesBatchManager,
-            ICommonBusinessObjectFactory businessObjectFactory, IBusinessObjectFactory boFactory,
-            IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory)
-    {
-        super(sessionManager, daoFactory, propertiesBatchManager);
-        sessionManagerFromConstructor = sessionManager;
-        this.commonBoFactory = businessObjectFactory;
-        this.boFactory = boFactory;
-        experimentLoader = new ExperimentLoader(getDAOFactory(), managedPropertyEvaluatorFactory);
-        this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory;
-    }
-
-    public void replaceAutoWiredSesseionManagerByConstructorSessionManager()
-    {
-        sessionManager = sessionManagerFromConstructor;
-    }
-
-    @Override
-    public IProteomicsDataServiceInternal createLogger(IInvocationLoggerContext context)
-    {
-        return new ProteomicsDataServiceInternalLogger(getSessionManager(), context);
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_USER)
-    @ReturnValueFilter(validatorClass = RawDataSampleValidator.class)
-    public List<MsInjectionSample> listRawDataSamples(String sessionToken)
-    {
-        return loadAllRawDataSamples(getSession(sessionToken), true);
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_USER)
-    public List<MsInjectionSample> listAllRawDataSamples(String sessionToken)
-    {
-        return loadAllRawDataSamples(getSession(sessionToken), false);
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_USER)
-    public void processRawData(String sessionToken, String dataSetProcessingKey,
-            long[] rawDataSampleIDs, String dataSetType)
-    {
-        Session session = getSession(sessionToken);
-        PersonPE person = session.tryGetPerson();
-
-        List<MsInjectionSample> samples = loadAllRawDataSamples(session, true);
-        Set<Long> sampleIDs = asSet(rawDataSampleIDs);
-        List<String> dataSetCodes = new ArrayList<String>();
-        Map<String, String> parameterBindings = new HashMap<String, String>();
-
-        RawDataSampleValidator validator = new RawDataSampleValidator();
-        validator.init(new AuthorizationDataProvider(getDAOFactory()));
-
-        for (MsInjectionSample sample : samples)
-        {
-            if (validator.isValid(person, sample)
-                    && sampleIDs.contains(sample.getSample().getId()))
-            {
-                Map<String, AbstractExternalData> latestDataSets = sample.getLatestDataSets();
-                AbstractExternalData latestDataSet = latestDataSets.get(dataSetType);
-                if (latestDataSet != null)
-                {
-                    String code = latestDataSet.getCode();
-                    dataSetCodes.add(code);
-                    parameterBindings.put(code, sample.getSample().getCode());
-                }
-            }
-        }
-
-        processDataSets(session, dataSetProcessingKey, dataSetCodes, parameterBindings);
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_USER)
-    public void processDataSets(String sessionToken, String dataSetProcessingKey,
-            @AuthorizationGuard(guardClass = DataSetCodeCollectionPredicate.class) List<String> dataSetCodes)
-    {
-        Session session = getSession(sessionToken);
-        processDataSets(session, dataSetProcessingKey, dataSetCodes, new HashMap<String, String>());
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_USER)
-    @ReturnValueFilter(validatorClass = ExperimentValidator.class)
-    public List<Experiment> listExperiments(String sessionToken, String experimentTypeCode)
-    {
-        Session session = getSession(sessionToken);
-
-        IDAOFactory daoFactory = getDAOFactory();
-        IEntityTypeDAO entityTypeDAO = daoFactory.getEntityTypeDAO(EntityKind.EXPERIMENT);
-        ExperimentTypePE type =
-                (ExperimentTypePE) entityTypeDAO.tryToFindEntityTypeByCode(experimentTypeCode);
-        List<ExperimentPE> experiments =
-                daoFactory.getExperimentDAO().listExperimentsWithProperties(type, null, null);
-        final Collection<MetaprojectAssignmentPE> assignmentPEs =
-                getDAOFactory().getMetaprojectDAO().listMetaprojectAssignmentsForEntities(
-                        session.tryGetPerson(), experiments, EntityKind.EXPERIMENT);
-        Map<Long, Set<Metaproject>> assignments =
-                MetaprojectTranslator.translateMetaprojectAssignments(assignmentPEs);
-        return ExperimentTranslator.translate(experiments, "", assignments,
-                managedPropertyEvaluatorFactory,
-                new SamplePropertyAccessValidator(session, getDAOFactory()));
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_USER)
-    public List<AbstractExternalData> listDataSetsByExperiment(String sessionToken,
-            @AuthorizationGuard(guardClass = ExperimentTechIdPredicate.class) TechId experimentID)
-    {
-        final Session session = getSession(sessionToken);
-
-        IDataSetTable dataSetTable = commonBoFactory.createDataSetTable(session);
-        dataSetTable.loadByExperimentTechId(experimentID);
-        List<DataPE> dataSetPEs = dataSetTable.getDataSets();
-        Collection<MetaprojectAssignmentPE> assignmentPEs =
-                getDAOFactory().getMetaprojectDAO().listMetaprojectAssignmentsForEntities(
-                        session.tryGetPerson(), dataSetPEs, EntityKind.DATA_SET);
-        return DataSetTranslator.translate(dataSetPEs, "", "",
-                MetaprojectTranslator.translateMetaprojectAssignments(assignmentPEs),
-                managedPropertyEvaluatorFactory,
-                new SamplePropertyAccessValidator(session, getDAOFactory()));
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.PROJECT_USER)
-    public void processProteinResultDataSets(String sessionToken, String dataSetProcessingKey,
-            String experimentType, long[] searchExperimentIDs)
-    {
-        Session session = getSession(sessionToken);
-        PersonPE person = session.tryGetPerson();
-
-        List<String> dataSetCodes = new ArrayList<String>();
-        IExperimentDAO experimentDAO = getDAOFactory().getExperimentDAO();
-        IDataDAO dataSetDAO = getDAOFactory().getDataDAO();
-        ExperimentValidator validator = new ExperimentValidator();
-
-        validator.init(new AuthorizationDataProvider(getDAOFactory()));
-
-        for (long experimentID : searchExperimentIDs)
-        {
-            ExperimentPE experiment = experimentDAO.tryGetByTechId(new TechId(experimentID));
-            String actualExperimentTypeCode = experiment.getExperimentType().getCode();
-            if (actualExperimentTypeCode.equals(experimentType) == false)
-            {
-                throw new UserFailureException("Experiment with technical id " + experimentID
-                        + " [" + experiment.getIdentifier() + "] is not of type " + experimentType
-                        + " but of type " + actualExperimentTypeCode + ".");
-            }
-            Experiment translatedExperiment =
-                    ExperimentTranslator.translate(experiment, "", null,
-                            managedPropertyEvaluatorFactory,
-                            new SamplePropertyAccessValidator(session, getDAOFactory()));
-            if (validator.isValid(person, translatedExperiment))
-            {
-                List<DataPE> dataSets = dataSetDAO.listDataSets(experiment);
-                dataSetCodes.addAll(Code.extractCodes(dataSets));
-            }
-        }
-
-        processDataSets(session, dataSetProcessingKey, dataSetCodes, new HashMap<String, String>());
-    }
-
-    private List<MsInjectionSample> loadAllRawDataSamples(Session session, boolean parentHasToBeValid)
-    {
-        List<Sample> samples = loadAccessableSamples(session, parentHasToBeValid);
-        List<Sample> parentSamples = new ArrayList<Sample>();
-        for (Sample sample : samples)
-        {
-            Sample parent = sample.getGeneratedFrom();
-            if (parent != null)
-            {
-                parentSamples.add(parent);
-            }
-        }
-        experimentLoader.enrichWithExperiments(session, parentSamples);
-        Map<Sample, List<AbstractExternalData>> dataSetsBySamples =
-                commonBoFactory.createDatasetLister(session).listAllDataSetsFor(samples);
-        List<MsInjectionSample> result = new ArrayList<MsInjectionSample>();
-        for (Entry<Sample, List<AbstractExternalData>> entry : dataSetsBySamples.entrySet())
-        {
-            result.add(new MsInjectionSample(entry.getKey(), entry.getValue()));
-        }
-        return result;
-    }
-
-    protected List<Sample> loadAccessableSamples(Session session, boolean parentHasToBeValid)
-    {
-        ISampleLoader sampleLoader = boFactory.createSampleLoader(session);
-        List<Sample> samples =
-                sampleLoader.listSamplesWithParentsByTypeAndSpace(
-                        CommonConstants.MS_INJECTION_SAMPLE_TYPE_CODE,
-                        CommonConstants.MS_DATA_SPACE);
-        PersonPE person = session.tryGetPerson();
-        List<Sample> validSamples = new ArrayList<Sample>();
-
-        ParentSampleValidator validator = new ParentSampleValidator();
-        validator.init(new AuthorizationDataProvider(getDAOFactory()));
-
-        for (Sample sample : samples)
-        {
-            if (validator.isValid(person, sample, parentHasToBeValid))
-            {
-                if (validator.isValid(person, sample) == false)
-                {
-                    sample.setParents(Collections.<Sample> emptySet());
-                }
-                validSamples.add(sample);
-            }
-        }
-        return validSamples;
-    }
-
-    private void processDataSets(Session session, String dataSetProcessingKey,
-            List<String> dataSetCodes, Map<String, String> parameterBindings)
-    {
-        try
-        {
-            String dataStoreServerCode = findDataStoreServer(dataSetProcessingKey);
-            IDataSetTable dataSetTable = commonBoFactory.createDataSetTable(session);
-            dataSetTable.processDatasets(dataSetProcessingKey, dataStoreServerCode, dataSetCodes,
-                    parameterBindings);
-        } catch (EnvironmentFailureException ex)
-        {
-            throw new EnvironmentFailureException("Processing data sets " +
-                    CollectionUtils.abbreviate(dataSetCodes, 20) + " with processing plugin '"
-                    + dataSetProcessingKey + "' using bindings " + parameterBindings + " failed.", ex);
-        }
-    }
-
-    private String findDataStoreServer(String dataSetProcessingKey)
-    {
-        List<DataStorePE> dataStores = getDAOFactory().getDataStoreDAO().listDataStores();
-        for (DataStorePE dataStore : dataStores)
-        {
-            Set<DataStoreServicePE> services = dataStore.getServices();
-            for (DataStoreServicePE dataStoreService : services)
-            {
-                if (DataStoreServiceKind.PROCESSING.equals(dataStoreService.getKind())
-                        && dataSetProcessingKey.equals(dataStoreService.getKey()))
-                {
-                    return dataStore.getCode();
-                }
-            }
-        }
-        throw new EnvironmentFailureException("No data store processing service with key '"
-                + dataSetProcessingKey + "' found.");
-    }
-
-    private Set<Long> asSet(long[] ids)
-    {
-        Set<Long> result = new HashSet<Long>();
-        for (long id : ids)
-        {
-            result.add(id);
-        }
-        return result;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ProteomicsDataServiceInternalLogger.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ProteomicsDataServiceInternalLogger.java
deleted file mode 100644
index 964f3b03c4d5bc35b6b8cbd523f8092306326eda..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ProteomicsDataServiceInternalLogger.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server;
-
-import java.util.List;
-
-import ch.systemsx.cisd.authentication.ISessionManager;
-import ch.systemsx.cisd.openbis.common.spring.IInvocationLoggerContext;
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerLogger;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ProteomicsDataServiceInternalLogger extends AbstractServerLogger implements
-        IProteomicsDataServiceInternal
-{
-
-    ProteomicsDataServiceInternalLogger(ISessionManager<Session> sessionManager,
-            IInvocationLoggerContext context)
-    {
-        super(sessionManager, context);
-    }
-
-    @Override
-    public List<MsInjectionSample> listRawDataSamples(String sessionToken)
-    {
-        logAccess(sessionToken, "list_raw_data_samples");
-        return null;
-    }
-
-    @Override
-    public List<MsInjectionSample> listAllRawDataSamples(String sessionToken)
-    {
-        logAccess(sessionToken, "list_all_raw_data_samples");
-        return null;
-    }
-
-    @Override
-    public void processRawData(String sessionToken, String dataSetProcessingKey,
-            long[] rawDataSampleIDs, String dataSetType)
-    {
-        int numberOfDataSets = rawDataSampleIDs == null ? 0 : rawDataSampleIDs.length;
-        logAccess(sessionToken, "copy_raw_data", "NUMBER_OF_DATA_SETS(%s), DATA_SET_TYPE(%s)",
-                numberOfDataSets, dataSetType);
-    }
-
-    @Override
-    public void processDataSets(String sessionToken, String dataSetProcessingKey,
-            List<String> dataSetCodes)
-    {
-        logAccess(sessionToken, "process_data_sets",
-                "DSS_PROCESSING_PLUGIN(%s) NUMBER_OF_DATA_SETS(%s)", dataSetProcessingKey,
-                dataSetCodes.size());
-    }
-
-    @Override
-    public List<Experiment> listExperiments(String sessionToken, String experimentTypeCode)
-    {
-        logAccess(sessionToken, "list_search_experiments", "EXPERIMENT_TYPE(%s)", experimentTypeCode);
-        return null;
-    }
-
-    @Override
-    public List<AbstractExternalData> listDataSetsByExperiment(String sessionToken, TechId experimentID)
-    {
-        logAccess(sessionToken, "list_data_sets_by_experiments", "EXPERIMENT_ID(%s)", experimentID);
-        return null;
-    }
-
-    @Override
-    public void processProteinResultDataSets(String sessionToken, String dataSetProcessingKey,
-            String experimentTypeCode, long[] searchExperimentIDs)
-    {
-        int experimentCount = searchExperimentIDs == null ? 0 : searchExperimentIDs.length;
-        logAccess(sessionToken, "process_protein_result_data_sets",
-                "DSS_PROCESSING_PLUGIN(%s) EXPERIMENT_TYPE(%s) NUMBER_OF_EXPERIMENTS(%s)",
-                dataSetProcessingKey, experimentTypeCode, experimentCount);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/Constants.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/Constants.java
deleted file mode 100644
index e55625dd8f0aac59d3c3181ebce528ca55ddd265..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/Constants.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.api.v1;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class Constants
-{
-    // Spring bean IDs
-    public final static String PROTEOMICS_DATA_SERVICE = "proteomics-data-service";
-
-    public final static String PROTEOMICS_DATA_SERVICE_INTERNAL = "proteomics-data-service-internal";
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataService.java
deleted file mode 100644
index bfabf505a04085e79b7e214d2fea918ec053e0b9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataService.java
+++ /dev/null
@@ -1,413 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.api.v1;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Component;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.common.spring.IInvocationLoggerContext;
-import ch.systemsx.cisd.openbis.generic.server.AbstractServer;
-import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.RolesAllowed;
-import ch.systemsx.cisd.openbis.generic.server.business.IPropertiesBatchManager;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.IOpenBisSessionManager;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServicePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO;
-import ch.systemsx.cisd.openbis.generic.shared.util.DataTypeUtils;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataSet;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataStoreServerProcessingPluginInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.MsInjectionDataInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.PropertyKey;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * Implementation of {@link IProteomicsDataService}.
- * 
- * @author Franz-Josef Elmer
- */
-@Component(Constants.PROTEOMICS_DATA_SERVICE)
-public class ProteomicsDataService extends AbstractServer<IProteomicsDataService> implements
-        IProteomicsDataService
-{
-    private static final String MS_SEARCH = "MS_SEARCH";
-
-    @Resource(name = Constants.PROTEOMICS_DATA_SERVICE_INTERNAL)
-    private IProteomicsDataServiceInternal service;
-
-    public ProteomicsDataService()
-    {
-    }
-
-    public ProteomicsDataService(final IOpenBisSessionManager sessionManager,
-            final IDAOFactory daoFactory, IPropertiesBatchManager propertiesBatchManager,
-            IProteomicsDataServiceInternal service)
-    {
-        super(sessionManager, daoFactory, propertiesBatchManager);
-        this.service = service;
-    }
-
-    @Override
-    public String tryToAuthenticateAtRawDataServer(String userID, String userPassword)
-    {
-        SessionContextDTO session = tryAuthenticate(userID, userPassword);
-        return session == null ? null : session.getSessionToken();
-    }
-
-    @Override
-    public IProteomicsDataService createLogger(IInvocationLoggerContext context)
-    {
-        return new ProteomicsDataServiceLogger(getSessionManager(), context);
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public List<MsInjectionDataInfo> listRawDataSamples(String sessionToken, String userID)
-    {
-        checkSession(sessionToken);
-        SessionContextDTO session = login(userID);
-        try
-        {
-            return translateSamples(service.listRawDataSamples(session.getSessionToken()));
-        } finally
-        {
-            service.logout(session.getSessionToken());
-        }
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public List<MsInjectionDataInfo> listAllRawDataSamples(String sessionToken, String userID)
-    {
-        checkSession(sessionToken);
-        SessionContextDTO session = login(userID);
-        try
-        {
-            return translateSamples(service.listAllRawDataSamples(session.getSessionToken()));
-        } finally
-        {
-            service.logout(session.getSessionToken());
-        }
-    }
-
-    private List<MsInjectionDataInfo> translateSamples(List<MsInjectionSample> samples)
-    {
-        ArrayList<MsInjectionDataInfo> result = new ArrayList<MsInjectionDataInfo>();
-        for (MsInjectionSample sample : samples)
-        {
-            result.add(translate(sample));
-        }
-        return result;
-    }
-
-    private MsInjectionDataInfo translate(MsInjectionSample sample)
-    {
-        MsInjectionDataInfo info = new MsInjectionDataInfo();
-        Sample msiSample = sample.getSample();
-        info.setMsInjectionSampleID(msiSample.getId());
-        info.setMsInjectionSampleCode(msiSample.getCode());
-        info.setMsInjectionSampleRegistrationDate(msiSample.getRegistrationDate());
-        info.setMsInjectionSampleProperties(translate(msiSample.getProperties()));
-        Sample bioSample = msiSample.getGeneratedFrom();
-        if (bioSample != null)
-        {
-            info.setBiologicalSampleID(bioSample.getId());
-            info.setBiologicalSampleIdentifier(bioSample.getIdentifier());
-            Experiment experiment = bioSample.getExperiment();
-            if (experiment != null)
-            {
-                info.setBiologicalExperimentIdentifier(experiment.getIdentifier());
-                info.setBiologicalExperiment(translate(experiment));
-            }
-            info.setBiologicalSampleProperties(translate(bioSample.getProperties()));
-        }
-        List<AbstractExternalData> dataSets = sample.getDataSets();
-        Set<DataSet> transformedDataSets = new HashSet<DataSet>();
-        for (AbstractExternalData dataSet : dataSets)
-        {
-            DataSet transformedDataSet = transform(dataSet);
-            transformedDataSets.add(transformedDataSet);
-        }
-        info.setDataSets(transformedDataSets);
-        Map<String, Date> latestDataSetRegistrationDates = new HashMap<String, Date>();
-        for (Entry<String, AbstractExternalData> entry : sample.getLatestDataSets().entrySet())
-        {
-            latestDataSetRegistrationDates.put(entry.getKey(), entry.getValue()
-                    .getRegistrationDate());
-        }
-        info.setLatestDataSetRegistrationDates(latestDataSetRegistrationDates);
-        return info;
-    }
-
-    private DataSet transform(AbstractExternalData dataSet)
-    {
-        DataSet transformedDataSet = new DataSet();
-        transformedDataSet.setId(dataSet.getId());
-        transformedDataSet.setCode(dataSet.getCode());
-        transformedDataSet.setType(dataSet.getDataSetType().getCode());
-        transformedDataSet.setRegistrationDate(dataSet.getRegistrationDate());
-        transformedDataSet.setProperties(translate(dataSet.getProperties()));
-        Collection<AbstractExternalData> children = dataSet.getChildren();
-        if (children != null && children.isEmpty() == false)
-        {
-            for (AbstractExternalData child : children)
-            {
-                transformedDataSet.addChild(transform(child));
-            }
-        }
-        return transformedDataSet;
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public List<DataStoreServerProcessingPluginInfo> listDataStoreServerProcessingPluginInfos(
-            String sessionToken)
-    {
-        checkSession(sessionToken);
-
-        List<DataStoreServerProcessingPluginInfo> result =
-                new ArrayList<DataStoreServerProcessingPluginInfo>();
-        List<DataStorePE> dataStores = getDAOFactory().getDataStoreDAO().listDataStores();
-        for (DataStorePE dataStore : dataStores)
-        {
-            Set<DataStoreServicePE> services = dataStore.getServices();
-            for (DataStoreServicePE dataStoreService : services)
-            {
-                if (dataStoreService.getKind() == DataStoreServiceKind.PROCESSING)
-                {
-                    result.add(translate(dataStoreService));
-                }
-            }
-        }
-        return result;
-    }
-
-    private DataStoreServerProcessingPluginInfo translate(DataStoreServicePE dataStoreService)
-    {
-        String key = dataStoreService.getKey();
-        String label = dataStoreService.getLabel();
-        List<String> translatedCodes = new ArrayList<String>();
-        Set<DataSetTypePE> datasetTypes = dataStoreService.getDatasetTypes();
-        for (DataSetTypePE dataSetType : datasetTypes)
-        {
-            translatedCodes.add(dataSetType.getCode());
-        }
-        return new DataStoreServerProcessingPluginInfo(key, label, translatedCodes);
-    }
-
-    @Override
-    @SuppressWarnings("deprecation")
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public void processingRawData(String sessionToken, String userID, String dataSetProcessingKey,
-            long[] rawDataSampleIDs, String dataSetType)
-    {
-        checkSession(sessionToken);
-        SessionContextDTO session = login(userID);
-        try
-        {
-            service.processRawData(session.getSessionToken(), dataSetProcessingKey,
-                    rawDataSampleIDs, dataSetType);
-        } finally
-        {
-            service.logout(session.getSessionToken());
-        }
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public void processDataSets(String sessionToken, String userID, String dataSetProcessingKey,
-            List<String> dataSetCodes)
-    {
-        checkSession(sessionToken);
-        SessionContextDTO session = login(userID);
-        try
-        {
-            service.processDataSets(session.getSessionToken(), dataSetProcessingKey, dataSetCodes);
-        } finally
-        {
-            service.logout(session.getSessionToken());
-        }
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public List<ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment> listSearchExperiments(
-            String sessionToken, String userID)
-    {
-        return listExperiments(sessionToken, userID, MS_SEARCH);
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public List<ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment> listExperiments(
-            String sessionToken, String userID, String experimentTypeCode)
-    {
-        checkSession(sessionToken);
-        SessionContextDTO session = login(userID);
-        try
-        {
-            List<Experiment> experiments =
-                    service.listExperiments(session.getSessionToken(), experimentTypeCode);
-            List<ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment> result =
-                    new ArrayList<ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment>();
-            for (Experiment experiment : experiments)
-            {
-                ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment e =
-                        translate(experiment);
-                result.add(e);
-            }
-            return result;
-        } finally
-        {
-            service.logout(session.getSessionToken());
-        }
-    }
-
-    private ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment translate(
-            Experiment experiment)
-    {
-        ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment e =
-                new ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment();
-        e.setId(experiment.getId());
-        e.setCode(experiment.getCode());
-        e.setProjectCode(experiment.getProject().getCode());
-        e.setSpaceCode(experiment.getProject().getSpace().getCode());
-        e.setRegistrationDate(experiment.getRegistrationDate());
-        e.setProperties(translate(experiment.getProperties()));
-        return e;
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public List<DataSet> listDataSetsByExperiment(String sessionToken, String userID,
-            long experimentID)
-    {
-        checkSession(sessionToken);
-        SessionContextDTO session = login(userID);
-        try
-        {
-            List<DataSet> result = new ArrayList<DataSet>();
-            List<AbstractExternalData> dataSets =
-                    service.listDataSetsByExperiment(session.getSessionToken(), new TechId(
-                            experimentID));
-            for (AbstractExternalData dataSet : dataSets)
-            {
-                DataSet ds = new DataSet();
-                ds.setId(dataSet.getId());
-                ds.setCode(dataSet.getCode());
-                ds.setType(dataSet.getDataSetType().getCode());
-                ds.setProperties(translate(dataSet.getProperties()));
-                result.add(ds);
-            }
-            return result;
-        } finally
-        {
-            service.logout(session.getSessionToken());
-        }
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public void processSearchData(String sessionToken, String userID, String dataSetProcessingKey,
-            long[] searchExperimentIDs)
-    {
-        processProteinResultDataSets(sessionToken, userID, dataSetProcessingKey, MS_SEARCH,
-                searchExperimentIDs);
-    }
-
-    @Override
-    @RolesAllowed(RoleWithHierarchy.INSTANCE_OBSERVER)
-    public void processProteinResultDataSets(String sessionToken, String userID,
-            String dataSetProcessingKey, String experimentTypeCode, long[] experimentIDs)
-    {
-        checkSession(sessionToken);
-        SessionContextDTO session = login(userID);
-        try
-        {
-            service.processProteinResultDataSets(session.getSessionToken(), dataSetProcessingKey,
-                    experimentTypeCode, experimentIDs);
-        } finally
-        {
-            service.logout(session.getSessionToken());
-        }
-    }
-
-    private Map<PropertyKey, Serializable> translate(List<IEntityProperty> properties)
-    {
-        if (properties == null)
-        {
-            return null;
-        }
-        HashMap<PropertyKey, Serializable> map = new HashMap<PropertyKey, Serializable>();
-        for (IEntityProperty property : properties)
-        {
-            PropertyType propertyType = property.getPropertyType();
-            PropertyKey key = new PropertyKey(propertyType.getCode(), propertyType.getLabel());
-            DataTypeCode dataTypeCode = propertyType.getDataType().getCode();
-            map.put(key, DataTypeUtils.convertValueTo(dataTypeCode, property.tryGetAsString()));
-        }
-        return map;
-    }
-
-    private SessionContextDTO login(String userID)
-    {
-        SessionContextDTO session = service.tryAuthenticate(userID, "dummy-password");
-        if (session == null)
-        {
-            throw new UserFailureException("Unknown user ID: " + userID);
-        }
-        return session;
-    }
-
-    @Override
-    public int getMajorVersion()
-    {
-        return 1;
-    }
-
-    @Override
-    public int getMinorVersion()
-    {
-        return 3;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataServiceLogger.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataServiceLogger.java
deleted file mode 100644
index a779ee526e0216536c92b3d2a9696fa366a3aa18..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataServiceLogger.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.api.v1;
-
-import java.util.List;
-
-import ch.systemsx.cisd.authentication.ISessionManager;
-import ch.systemsx.cisd.openbis.common.spring.IInvocationLoggerContext;
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerLogger;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataSet;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataStoreServerProcessingPluginInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.MsInjectionDataInfo;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ProteomicsDataServiceLogger extends AbstractServerLogger implements IProteomicsDataService
-{
-
-    ProteomicsDataServiceLogger(ISessionManager<Session> sessionManager, IInvocationLoggerContext context)
-    {
-        super(sessionManager, context);
-    }
-
-    @Override
-    public String tryToAuthenticateAtRawDataServer(String userID, String userPassword)
-    {
-        return null;
-    }
-
-    @Override
-    public List<MsInjectionDataInfo> listRawDataSamples(String sessionToken, String userID)
-    {
-        logAccess(sessionToken, "list_raw_data_samples", "USER_ID(%s)", userID);
-        return null;
-    }
-
-    @Override
-    public List<MsInjectionDataInfo> listAllRawDataSamples(String sessionToken, String userID)
-    {
-        logAccess(sessionToken, "list_all_raw_data_samples", "USER_ID(%s)", userID);
-        return null;
-    }
-
-    @Override
-    public List<DataStoreServerProcessingPluginInfo> listDataStoreServerProcessingPluginInfos(
-            String sessionToken)
-    {
-        logAccess(sessionToken, "list_data_store_services", "");
-        return null;
-    }
-
-    @Override
-    public void processingRawData(String sessionToken, String userID, String dataSetProcessingKey,
-            long[] rawDataSampleIDs, String dataSetType)
-    {
-        int numberOfDataSets = rawDataSampleIDs == null ? 0 : rawDataSampleIDs.length;
-        logAccess(sessionToken, "copy_raw_data",
-                "USER_ID(%s) DSS_PROCESSING_PLUGIN(%s) NUMBER_OF_DATA_SETS(%s) DATA_SET_TYPE(%s)",
-                userID, dataSetProcessingKey, numberOfDataSets, dataSetType);
-    }
-
-    @Override
-    public void processDataSets(String sessionToken, String userID, String dataSetProcessingKey,
-            List<String> dataSetCodes)
-    {
-        logAccess(sessionToken, "process_data_sets",
-                "USER_ID(%s) DSS_PROCESSING_PLUGIN(%s) DATA_SETS(%s)", userID,
-                dataSetProcessingKey, dataSetCodes);
-    }
-
-    @Override
-    public List<Experiment> listSearchExperiments(String sessionToken, String userID)
-    {
-        logAccess(sessionToken, "list_search_experiments");
-        return null;
-    }
-
-    @Override
-    public List<Experiment> listExperiments(String sessionToken, String userID,
-            String experimentTypeCode)
-    {
-        logAccess(sessionToken, "list_search_experiments", "EXPERIMENT_TYPE(%s)", experimentTypeCode);
-        return null;
-    }
-
-    @Override
-    public List<DataSet> listDataSetsByExperiment(String sessionToken, String userID,
-            long experimentID)
-    {
-        logAccess(sessionToken, "list_data_sets_by_experiment", "EXPERIMENT_ID(%s)", experimentID);
-        return null;
-    }
-
-    @Override
-    public void processSearchData(String sessionToken, String userID, String dataSetProcessingKey,
-            long[] searchExperimentIDs)
-    {
-        int numberOfDataSets = searchExperimentIDs == null ? 0 : searchExperimentIDs.length;
-        logAccess(sessionToken, "copy_search_data", "NUMBER_OF_DATA_SETS(%s)", numberOfDataSets);
-    }
-
-    @Override
-    public void processProteinResultDataSets(String sessionToken, String userID,
-            String dataSetProcessingKey, String experimentTypeCode, long[] experimentIDs)
-    {
-        int experimentCount = experimentIDs == null ? 0 : experimentIDs.length;
-        logAccess(sessionToken, "process_protein_result_data_sets",
-                "DSS_PROCESSING_PLUGIN(%s) EXPERIMENT_TYPE(%s) NUMBER_OF_EXPERIMENTS(%s)",
-                dataSetProcessingKey, experimentTypeCode, experimentCount);
-    }
-
-    @Override
-    public int getMajorVersion()
-    {
-        return 1;
-    }
-
-    @Override
-    public int getMinorVersion()
-    {
-        return 0;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataServiceServer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataServiceServer.java
deleted file mode 100644
index a5f5715dbdedfe8f6e9951e0b663a0bfe0499f6e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataServiceServer.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.api.v1;
-
-import java.io.IOException;
-
-import javax.annotation.Resource;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import ch.systemsx.cisd.openbis.common.api.server.AbstractApiServiceExporter;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
-
-/**
- * Server wrapping {@link IProteomicsDataService}.
- * 
- * @author Franz-Josef Elmer
- */
-@Controller
-public class ProteomicsDataServiceServer extends AbstractApiServiceExporter
-{
-    @Resource(name = Constants.PROTEOMICS_DATA_SERVICE)
-    private IProteomicsDataService service;
-
-    @Override
-    public void afterPropertiesSet()
-    {
-        establishService(IProteomicsDataService.class, service, IProteomicsDataService.SERVICE_NAME,
-                IProteomicsDataService.SERVER_URL);
-        super.afterPropertiesSet();
-    }
-
-    @RequestMapping(
-    { IProteomicsDataService.SERVER_URL, "/openbis" + IProteomicsDataService.SERVER_URL })
-    @Override
-    public void handleRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException
-    {
-        super.handleRequest(request, response);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/authorization/validator/ParentSampleValidator.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/authorization/validator/ParentSampleValidator.java
deleted file mode 100644
index 8d7ad5842d51a1b88e16accbde9889508a7f8724..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/authorization/validator/ParentSampleValidator.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.authorization.validator;
-
-import ch.systemsx.cisd.openbis.generic.server.authorization.project.provider.project.ProjectProviderFromSample;
-import ch.systemsx.cisd.openbis.generic.server.authorization.validator.AbstractValidator;
-import ch.systemsx.cisd.openbis.generic.server.authorization.validator.IValidator;
-import ch.systemsx.cisd.openbis.generic.server.authorization.validator.SpaceValidator;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ParentSampleValidator extends AbstractValidator<Sample>
-{
-    private IValidator<Space> validator = new SpaceValidator();
-
-    @Override
-    public boolean doValidation(PersonPE person, Sample value)
-    {
-        return isValid(person, value, true);
-    }
-
-    public boolean isValid(PersonPE person, Sample sample, boolean parentHasToBeValid)
-    {
-        Sample parent = sample.getGeneratedFrom();
-
-        if (parent != null)
-        {
-            Space space = parent.getSpace();
-
-            if (parentHasToBeValid == false || space == null || validator.isValid(person, space))
-            {
-                return true;
-            } else
-            {
-                return isValidPA(person, new ProjectProviderFromSample(parent));
-            }
-        }
-
-        return false;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/authorization/validator/RawDataSampleValidator.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/authorization/validator/RawDataSampleValidator.java
deleted file mode 100644
index 1e280e19880dbb1e429f6f63301ce6ee20cc8117..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/authorization/validator/RawDataSampleValidator.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.authorization.validator;
-
-import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider;
-import ch.systemsx.cisd.openbis.generic.server.authorization.validator.IValidator;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-public final class RawDataSampleValidator implements IValidator<MsInjectionSample>
-{
-    private IValidator<Sample> validator = new ParentSampleValidator();
-
-    @Override
-    public boolean isValid(PersonPE person, MsInjectionSample sample)
-    {
-        return validator.isValid(person, sample.getSample());
-    }
-
-    @Override
-    public void init(IAuthorizationDataProvider authorizationDataProvider)
-    {
-        validator.init(authorizationDataProvider);
-    }
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBusinessObject.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBusinessObject.java
deleted file mode 100644
index e32a00999cb64548b098774b0fbef3edb94b4f06..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBusinessObject.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-
-/**
- * @author Franz-Josef Elmer
- */
-abstract class AbstractBusinessObject
-{
-    private final IDAOFactory daoFactory;
-
-    private final IPhosphoNetXDAOFactory specificDAOFactory;
-
-    private final Session session;
-
-    AbstractBusinessObject(IDAOFactory daoFactory, IPhosphoNetXDAOFactory specificDAOFactory, Session session)
-    {
-        this.daoFactory = daoFactory;
-        this.specificDAOFactory = specificDAOFactory;
-        this.session = session;
-    }
-
-    protected final PersonPE getRegistrator()
-    {
-        PersonPE registrator = session.tryGetPerson();
-        assert registrator != null : "Session with unknown person: " + session;
-        return registrator;
-    }
-
-    protected final IDAOFactory getDaoFactory()
-    {
-        return daoFactory;
-    }
-
-    protected final IPhosphoNetXDAOFactory getSpecificDAOFactory()
-    {
-        return specificDAOFactory;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceColumnDefinitionTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceColumnDefinitionTable.java
deleted file mode 100644
index e8544ad2d3cdf037fb5a10c59a23a5d4b973e25e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceColumnDefinitionTable.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Treatment;
-
-/**
- * @author Franz-Josef Elmer
- */
-class AbundanceColumnDefinitionTable extends AbstractBusinessObject implements IAbundanceColumnDefinitionTable
-{
-    private final TreatmentFinder treatmentFinder;
-
-    private final Map<Long, AbundanceColumnDefinition> columnDefinitions;
-
-    AbundanceColumnDefinitionTable(IDAOFactory daoFactory,
-            IPhosphoNetXDAOFactory specificDAOFactory, Session session)
-    {
-        super(daoFactory, specificDAOFactory, session);
-        treatmentFinder = new TreatmentFinder();
-        columnDefinitions = new TreeMap<Long, AbundanceColumnDefinition>();
-    }
-
-    @Override
-    public void add(Sample sample)
-    {
-        Sample parent = sample.getGeneratedFrom();
-        Sample sampleOrParent = parent == null ? sample : parent;
-        Long sampleID = sampleOrParent.getId();
-        AbundanceColumnDefinition columnDefinition = columnDefinitions.get(sampleID);
-        if (columnDefinition == null)
-        {
-            columnDefinition = new AbundanceColumnDefinition();
-            columnDefinition.addSampleID(sampleID);
-            columnDefinition.setSampleCode(sampleOrParent.getCode());
-            columnDefinition.setTreatments(treatmentFinder.findTreatmentsOf(sampleOrParent));
-            columnDefinitions.put(sampleID, columnDefinition);
-        }
-    }
-
-    @Override
-    public List<AbundanceColumnDefinition> getSortedAndAggregatedDefinitions(
-            String treatmentTypeOrNull)
-    {
-        Collection<AbundanceColumnDefinition> values = columnDefinitions.values();
-        List<AbundanceColumnDefinition> definitions = new ArrayList<AbundanceColumnDefinition>();
-        if (treatmentTypeOrNull == null)
-        {
-            definitions.addAll(values);
-        } else
-        {
-            Collection<List<AbundanceColumnDefinition>> groupedDefinitions =
-                    groupDefinitions(values, definitions, treatmentTypeOrNull);
-            for (List<AbundanceColumnDefinition> group : groupedDefinitions)
-            {
-                AbundanceColumnDefinition definition = new AbundanceColumnDefinition();
-                AbundanceColumnDefinition firstDefinition = group.get(0);
-                Treatment treatment =
-                        tryToFindTreatmentByTypeCode(firstDefinition, treatmentTypeOrNull);
-                definition.setTreatments(Arrays.asList(treatment));
-                for (AbundanceColumnDefinition abundanceColumnDefinition : group)
-                {
-                    definition.addSampleIDsOf(abundanceColumnDefinition);
-                }
-                definitions.add(definition);
-            }
-        }
-
-        Collections.sort(definitions);
-        return definitions;
-    }
-
-    private Collection<List<AbundanceColumnDefinition>> groupDefinitions(
-            Collection<AbundanceColumnDefinition> values,
-            List<AbundanceColumnDefinition> definitions, String treatmentType)
-    {
-        Map<String, List<AbundanceColumnDefinition>> groupedDefinitions =
-                new HashMap<String, List<AbundanceColumnDefinition>>();
-        for (AbundanceColumnDefinition definition : values)
-        {
-            Treatment treatment = tryToFindTreatmentByTypeCode(definition, treatmentType);
-            if (treatment == null)
-            {
-                definitions.add(definition);
-            } else
-            {
-                String treatmentValue = treatment.getValue();
-                List<AbundanceColumnDefinition> list = groupedDefinitions.get(treatmentValue);
-                if (list == null)
-                {
-                    list = new ArrayList<AbundanceColumnDefinition>();
-                    groupedDefinitions.put(treatmentValue, list);
-                }
-                list.add(definition);
-            }
-        }
-        return groupedDefinitions.values();
-    }
-
-    private Treatment tryToFindTreatmentByTypeCode(AbundanceColumnDefinition definition,
-            String typeCode)
-    {
-        List<Treatment> treatments = definition.getTreatments();
-        for (Treatment treatment : treatments)
-        {
-            if (treatment.getTypeCode().equals(typeCode))
-            {
-                return treatment;
-            }
-        }
-        return null;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceManager.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceManager.java
deleted file mode 100644
index 63b8985b5e4eeb5a6107b9ed3a1877e2aeccd0c4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceManager.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinAbundance;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReferenceWithProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinWithAbundances;
-
-/**
- * @author Franz-Josef Elmer
- */
-class AbundanceManager
-{
-    private final List<ProteinWithAbundances> proteins = new ArrayList<ProteinWithAbundances>();
-
-    private final ISampleProvider sampleProvider;
-
-    private final Set<Long> sampleIDs = new TreeSet<Long>();
-
-    AbundanceManager(ISampleProvider sampleProvider)
-    {
-        this.sampleProvider = sampleProvider;
-    }
-
-    public void handle(ProteinReferenceWithProtein proteinReference, List<ProteinAbundance> listOrNull)
-    {
-        String accessionNumber = proteinReference.getAccessionNumber();
-        ProteinWithAbundances protein = new ProteinWithAbundances();
-        protein.setCoverage(proteinReference.getCoverage());
-        protein.setId(proteinReference.getId());
-        protein.setDescription(proteinReference.getDescription());
-        protein.setAccessionNumber(accessionNumber);
-        proteins.add(protein);
-        if (listOrNull != null)
-        {
-            for (ProteinAbundance proteinAbundance : listOrNull)
-            {
-                String samplePermID = proteinAbundance.getSamplePermID();
-                Long sampleID = getSampleIDOrParentSampleID(samplePermID);
-                sampleIDs.add(sampleID);
-                protein.addAbundanceFor(sampleID, proteinAbundance.getAbundance());
-            }
-        }
-    }
-
-    private Long getSampleIDOrParentSampleID(String samplePermID)
-    {
-        Sample sample = sampleProvider.getSample(samplePermID);
-        Sample parent = sample.getGeneratedFrom();
-        return parent == null ? sample.getId() : parent.getId();
-    }
-
-    public Collection<ProteinWithAbundances> getProteinsWithAbundances()
-    {
-        return proteins;
-    }
-
-    public final Collection<Long> getSampleIDs()
-    {
-        return sampleIDs;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AccessionNumberBuilder.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AccessionNumberBuilder.java
deleted file mode 100644
index 2e0049c285ccad20a3655e0c6bb932fb3c13c8f2..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AccessionNumberBuilder.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-/**
- * Parses accession numbers of the form
- * 
- * <pre>
- * ['DECOY_'][&lt;type&gt;'|']&lt;accession number&gt;['|'&lt;some string&gt;]
- * </pre>
- *
- * @author Franz-Josef Elmer
- */
-public class AccessionNumberBuilder
-{
-    static final String DECOY_PREFIX = "DECOY_";
-
-    private static final char SEPARATOR = '|';
-
-    private final String typeOrNull;
-
-    private final String accessionNumber;
-
-    public AccessionNumberBuilder(String fullAccessionNumber)
-    {
-        int indexOfFirstSeparator = fullAccessionNumber.indexOf(SEPARATOR);
-        if (indexOfFirstSeparator < 0)
-        {
-            typeOrNull = null;
-            accessionNumber = fullAccessionNumber;
-        } else
-        {
-            String firstItem = fullAccessionNumber.substring(0, indexOfFirstSeparator);
-            int decoyPrefixIndex = firstItem.startsWith(DECOY_PREFIX) ? DECOY_PREFIX.length() : 0;
-            String prefix = firstItem.substring(0, decoyPrefixIndex);
-            typeOrNull = firstItem.substring(decoyPrefixIndex);
-            int startIndex = indexOfFirstSeparator + 1;
-            int indexOfSecondSeparator = fullAccessionNumber.indexOf(SEPARATOR, startIndex);
-            if (indexOfSecondSeparator < 0)
-            {
-                accessionNumber =
-                        addPrefixIfNecessary(prefix, fullAccessionNumber.substring(startIndex));
-            } else
-            {
-                accessionNumber =
-                        addPrefixIfNecessary(prefix,
-                                fullAccessionNumber.substring(startIndex, indexOfSecondSeparator));
-            }
-        }
-    }
-
-    private String addPrefixIfNecessary(String prefix, String string)
-    {
-        return string.startsWith(prefix) ? string : prefix + string;
-    }
-
-    public final String getTypeOrNull()
-    {
-        return typeOrNull;
-    }
-
-    public final String getAccessionNumber()
-    {
-        return accessionNumber;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/BusinessObjectFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/BusinessObjectFactory.java
deleted file mode 100644
index c7b486a1e57b270573efe64f073dabff33d829d6..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/BusinessObjectFactory.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import ch.systemsx.cisd.openbis.generic.server.business.bo.ICommonBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.AbstractPluginBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class BusinessObjectFactory extends AbstractPluginBusinessObjectFactory implements
-        IBusinessObjectFactory
-{
-    private final IDAOFactory daoFactory;
-
-    private final IPhosphoNetXDAOFactory specificDAOFactory;
-
-    private final ICommonBusinessObjectFactory businessObjectFactory;
-
-    public BusinessObjectFactory(IDAOFactory daoFactory, IPhosphoNetXDAOFactory specificDAOFactory,
-            ICommonBusinessObjectFactory businessObjectFactory)
-    {
-        this.daoFactory = daoFactory;
-        this.specificDAOFactory = specificDAOFactory;
-        this.businessObjectFactory = businessObjectFactory;
-    }
-
-    @Override
-    public ISampleLister createSampleLister(Session session)
-    {
-        return getCommonBusinessObjectFactory().createSampleLister(session);
-    }
-
-    @Override
-    public IAbundanceColumnDefinitionTable createAbundanceColumnDefinitionTable(Session session)
-    {
-        return new AbundanceColumnDefinitionTable(daoFactory, specificDAOFactory, session);
-    }
-
-    @Override
-    public IProteinInfoTable createProteinInfoTable(Session session, ISampleProvider sampleProvider)
-    {
-        return new ProteinInfoTable(daoFactory, specificDAOFactory, session, sampleProvider);
-    }
-
-    @Override
-    public IProteinSummaryTable createProteinSummaryTable(Session session)
-    {
-        return new ProteinSummaryTable(daoFactory, specificDAOFactory, session);
-    }
-
-    @Override
-    public IProteinSequenceTable createProteinSequenceTable(Session session)
-    {
-        return new ProteinSequenceTable(daoFactory, specificDAOFactory, session);
-    }
-
-    @Override
-    public IDataSetProteinTable createDataSetProteinTable(Session session)
-    {
-        return new DataSetProteinTable(daoFactory, specificDAOFactory, session);
-    }
-
-    @Override
-    public IProteinDetailsBO createProteinDetailsBO(Session session)
-    {
-        return new ProteinDetailsBO(daoFactory, specificDAOFactory, session);
-    }
-
-    @Override
-    public IProteinRelatedSampleTable createProteinRelatedSampleTable(Session session)
-    {
-        return new ProteinRelatedSampleTable(daoFactory, specificDAOFactory,
-                getManagedPropertyEvaluatorFactory());
-    }
-
-    @Override
-    public ISampleTable createSampleTable(Session session)
-    {
-        return new SampleTable(daoFactory, specificDAOFactory, session,
-                getManagedPropertyEvaluatorFactory());
-    }
-
-    @Override
-    public ISampleIDProvider createSampleIDProvider(Session session)
-    {
-        return new SampleIDProvider(daoFactory.getSampleDAO());
-    }
-
-    @Override
-    public ISampleProvider createSampleProvider(Session session)
-    {
-        return new SampleProvider(session, this);
-    }
-
-    @Override
-    public ISampleLoader createSampleLoader(Session session)
-    {
-        return new SampleLoader(session, daoFactory, businessObjectFactory);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/DataSetProteinTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/DataSetProteinTable.java
deleted file mode 100644
index b15527159032a68c2b4083b3d5b6dfaa547a6ad8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/DataSetProteinTable.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.lemnik.eodsql.DataSet;
-
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IdentifiedProtein;
-
-/**
- * @author Franz-Josef Elmer
- */
-class DataSetProteinTable extends AbstractBusinessObject implements IDataSetProteinTable
-{
-    private List<DataSetProtein> dataSetProteins;
-
-    DataSetProteinTable(IDAOFactory daoFactory, IPhosphoNetXDAOFactory specificDAOFactory,
-            Session session)
-    {
-        super(daoFactory, specificDAOFactory, session);
-    }
-
-    @Override
-    public List<DataSetProtein> getDataSetProteins()
-    {
-        return dataSetProteins;
-    }
-
-    @Override
-    public void load(String experimentPermID, TechId proteinReferenceID,
-            IProteinSequenceTable sequenceTable)
-    {
-        IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(experimentPermID);
-        ErrorModel errorModel = new ErrorModel(proteinQueryDAO);
-        DataSet<IdentifiedProtein> proteins =
-                proteinQueryDAO.listProteinsByProteinReferenceAndExperiment(experimentPermID,
-                        proteinReferenceID.getId());
-        dataSetProteins = new ArrayList<DataSetProtein>();
-        for (IdentifiedProtein protein : proteins)
-        {
-            errorModel.setFalseDiscoveryRateFor(protein);
-            DataSetProtein dataSetProtein = new DataSetProtein();
-            dataSetProtein.setDataSetID(new TechId(protein.getDataSetID()));
-            dataSetProtein.setDataSetPermID(protein.getDataSetPermID());
-            dataSetProtein.setFalseDiscoveryRate(protein.getFalseDiscoveryRate());
-            dataSetProtein.setPeptideCount(protein.getPeptideCount());
-            dataSetProtein.setProteinID(new TechId(protein.getProteinID()));
-            dataSetProtein.setSequenceName(sequenceTable.getShortName(protein.getDatabaseID()));
-            dataSetProteins.add(dataSetProtein);
-        }
-        proteins.close();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModel.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModel.java
deleted file mode 100644
index fbeec454b95fabecf5346619daf1d6042b0b3923..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModel.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import net.lemnik.eodsql.DataSet;
-
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.ProbabilityToFDRCalculator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IdentifiedProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProbabilityFDRMapping;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReferenceWithProtein;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ErrorModel
-{
-    private final Map<Long, ProbabilityToFDRCalculator> calculators =
-            new HashMap<Long, ProbabilityToFDRCalculator>();
-
-    private final IProteinQueryDAO dao;
-
-    ErrorModel(IProteinQueryDAO dao)
-    {
-        this.dao = dao;
-    }
-
-    boolean passProtein(ProteinReferenceWithProtein protein, double falseDiscoveryRate)
-    {
-        ProbabilityToFDRCalculator calculator = getCalculator(protein.getDataSetID());
-        double fdr = calculator.calculateFDR(protein.getProbability());
-        return Double.isNaN(fdr) || fdr <= falseDiscoveryRate;
-    }
-
-    void setFalseDiscoveryRateFor(IdentifiedProtein protein)
-    {
-        long dataSetID = protein.getDataSetID();
-        double probability = protein.getProbability();
-        protein.setFalseDiscoveryRate(calculateFalsDiscoveryRate(dataSetID, probability));
-    }
-
-    double calculateFalsDiscoveryRate(long dataSetID, double probability)
-    {
-        ProbabilityToFDRCalculator calculator = getCalculator(dataSetID);
-        return calculator.calculateFDR(probability);
-    }
-
-    private ProbabilityToFDRCalculator getCalculator(long dataSetID)
-    {
-        ProbabilityToFDRCalculator calculator = calculators.get(dataSetID);
-        if (calculator == null)
-        {
-            calculator = new ProbabilityToFDRCalculator();
-            DataSet<ProbabilityFDRMapping> mappings = dao.getProbabilityFDRMapping(dataSetID);
-            for (ProbabilityFDRMapping probabilityFDRMapping : mappings)
-            {
-                double probability = probabilityFDRMapping.getProbability();
-                double falseDiscoveryRate = probabilityFDRMapping.getFalseDiscoveryRate();
-                calculator.add(probability, falseDiscoveryRate);
-            }
-            mappings.close();
-            calculator.init();
-            calculators.put(dataSetID, calculator);
-        }
-        return calculator;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ExperimentLoader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ExperimentLoader.java
deleted file mode 100644
index 50c8f79d2c664073611e9cac67516dc07271ac34..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ExperimentLoader.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import ch.systemsx.cisd.openbis.generic.server.authorization.validator.SamplePropertyAccessValidator;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory;
-import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator;
-import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator.LoadableFields;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ExperimentLoader
-{
-    private final IDAOFactory daoFactory;
-
-    private final IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory;
-
-    public ExperimentLoader(IDAOFactory daoFactory,
-            IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory)
-    {
-        this.daoFactory = daoFactory;
-        this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory;
-    }
-
-    public void enrichWithExperiments(Session session, Collection<Sample> samples)
-    {
-        Map<Long, List<Sample>> samplesByID = new LinkedHashMap<Long, List<Sample>>();
-        for (Sample sample : samples)
-        {
-            Experiment experiment = sample.getExperiment();
-            if (experiment != null)
-            {
-                Long id = experiment.getId();
-                List<Sample> list = samplesByID.get(id);
-                if (list == null)
-                {
-                    list = new ArrayList<Sample>();
-                    samplesByID.put(id, list);
-                }
-                list.add(sample);
-            }
-        }
-        List<ExperimentPE> experiments =
-                daoFactory.getExperimentDAO().listExperimentsWithProperties(samplesByID.keySet());
-        for (ExperimentPE experiment : experiments)
-        {
-            Experiment e =
-                    ExperimentTranslator.translate(experiment, "", null,
-                            managedPropertyEvaluatorFactory,
-                            new SamplePropertyAccessValidator(session, daoFactory), LoadableFields.PROPERTIES);
-            List<Sample> list = samplesByID.get(experiment.getId());
-            for (Sample sample : list)
-            {
-                sample.setExperiment(e);
-            }
-        }
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IAbundanceColumnDefinitionTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IAbundanceColumnDefinitionTable.java
deleted file mode 100644
index 8b1420e641cbb2bfaf013a5dc4be4fa284b37037..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IAbundanceColumnDefinitionTable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IAbundanceColumnDefinitionTable
-{
-    public void add(Sample sample);
-
-    public List<AbundanceColumnDefinition> getSortedAndAggregatedDefinitions(
-            String treatmentTypeOrNull);
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IBusinessObjectFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IBusinessObjectFactory.java
deleted file mode 100644
index 2efc9007f38817176235852bb9eb6022c934757b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IBusinessObjectFactory.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IBusinessObjectFactory
-{
-    public ISampleLister createSampleLister(Session session);
-
-    public IAbundanceColumnDefinitionTable createAbundanceColumnDefinitionTable(Session session);
-
-    public IProteinInfoTable createProteinInfoTable(Session session,
-            ISampleProvider sampleProvider);
-
-    public IProteinSummaryTable createProteinSummaryTable(Session session);
-
-    public IProteinSequenceTable createProteinSequenceTable(Session session);
-
-    public IDataSetProteinTable createDataSetProteinTable(Session session);
-
-    public IProteinDetailsBO createProteinDetailsBO(Session session);
-
-    public IProteinRelatedSampleTable createProteinRelatedSampleTable(Session session);
-
-    public ISampleTable createSampleTable(Session session);
-
-    public ISampleIDProvider createSampleIDProvider(Session session);
-
-    public ISampleProvider createSampleProvider(Session session);
-
-    public ISampleLoader createSampleLoader(Session session);
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IDataSetProteinTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IDataSetProteinTable.java
deleted file mode 100644
index 6785f2a998d03414ce9a0396b51d3f841dd367d5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IDataSetProteinTable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IDataSetProteinTable
-{
-    public List<DataSetProtein> getDataSetProteins();
-
-    public void load(String experimentPermID, TechId proteinReferenceID,
-            IProteinSequenceTable sequenceTable);
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinDetailsBO.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinDetailsBO.java
deleted file mode 100644
index 2aeefffc70082eecaa91aeb26688833e8bc500ed..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinDetailsBO.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinDetails;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IProteinDetailsBO
-{
-
-    public void loadByExperimentAndReference(TechId experimentID, TechId proteinReferenceID);
-
-    public ProteinDetails getDetailsOrNull();
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinInfoTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinInfoTable.java
deleted file mode 100644
index 97ce2def45949f87cd80530ad8a1dfb5f28f195d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinInfoTable.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-
-/**
- * Business object for loading proteins together with their abundances.
- *
- * @author Franz-Josef Elmer
- */
-public interface IProteinInfoTable
-{
-    /**
-     * Loads proteins of all data sets registered for the specified experiment. All proteins are filtered out if their false discovery rate is larger
-     * then the specified one. Abundance values are aggregated in accordance with <code>aggregateOnOriginal</code>, abundance column definitions, and
-     * aggregate function.
-     */
-    public void load(List<AbundanceColumnDefinition> definitions, TechId experimentId,
-            double falseDiscoveryRate, AggregateFunction function, boolean aggregateOnOriginal);
-
-    public List<ProteinInfo> getProteinInfos();
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinRelatedSampleTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinRelatedSampleTable.java
deleted file mode 100644
index 38f02ccfc28f213dd29bedfac59453b1f99225a2..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinRelatedSampleTable.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-
-/**
- * Interface to business object for collection of {@link ProteinRelatedSample} instances.
- *
- * @author Franz-Josef Elmer
- */
-public interface IProteinRelatedSampleTable
-{
-    public void load(Session session, TechId experimentID, TechId proteinReferenceID, String sequenceOrNull);
-
-    public List<ProteinRelatedSample> getSamples();
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSequenceTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSequenceTable.java
deleted file mode 100644
index f19c618ac72bf5d82df63f4a81fdca5689a0df5c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSequenceTable.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IProteinSequenceTable
-{
-
-    public void loadByReference(TechId experimentID, TechId proteinReferenceID);
-
-    public List<ProteinSequence> getSequences();
-
-    public String getShortName(long databaseID);
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSummaryTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSummaryTable.java
deleted file mode 100644
index de570feda6cd2bf0fcf869e27aee2a3af708a147..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSummaryTable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IProteinSummaryTable
-{
-
-    public void load(TechId experimentID);
-
-    public List<ProteinSummary> getProteinSummaries();
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleIDProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleIDProvider.java
deleted file mode 100644
index e363ec393e7e0292e60c7df6e0616f40f0c09df6..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleIDProvider.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
-
-/**
- * Provides the ID of a sample or its parent.
- *
- * @author Franz-Josef Elmer
- */
-public interface ISampleIDProvider
-{
-    /**
-     * Returns the ID of the specified sample or the ID of its parent if it exist.
-     * 
-     * @throws UserFailureException if no sample could be found.
-     */
-    public long getSampleIDOrParentSampleID(String samplePermID);
-
-    public SamplePE getSampleOrParentSample(String samplePermID);
-
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleLoader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleLoader.java
deleted file mode 100644
index cfa34fdf1eb5f34d160ee079bc6845792ed1de66..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleLoader.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-
-/**
- * Loader for sample having a parent.
- *
- * @author Franz-Josef Elmer
- */
-public interface ISampleLoader
-{
-    public List<Sample> listSamplesWithParentsByTypeAndSpace(String sampleTypeCode, String spaceCode);
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleProvider.java
deleted file mode 100644
index 47423c1036b006d2ed37fec2dcfee8ab682e6181..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-
-/**
- * Provides samples of an experiments.
- *
- * @author Franz-Josef Elmer
- */
-public interface ISampleProvider
-{
-    /**
-     * Loads all samples registered for the specified experiment.
-     */
-    public void loadByExperimentID(TechId experimentID);
-
-    /**
-     * Returns the sample for specified permID.
-     * 
-     * @throws UserFailureException if sample not found.
-     */
-    public Sample getSample(String permID);
-
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleTable.java
deleted file mode 100644
index 08fabca7b1f524a8bf0614cb90dd9c6f4e6f250b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ISampleTable.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.SampleWithPropertiesAndAbundance;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface ISampleTable
-{
-
-    public void loadSamplesWithAbundance(Session session, TechId experimentID, TechId proteinReferenceID);
-
-    public List<SampleWithPropertiesAndAbundance> getSamples();
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinDetailsBO.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinDetailsBO.java
deleted file mode 100644
index c7b94a9afcc9b557f1187153eced1efb0f5326bb..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinDetailsBO.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import net.lemnik.eodsql.DataSet;
-
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.IndistinguishableProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Peptide;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.PeptideModification;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinDetails;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IdentifiedProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IndistinguishableProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.PeptideWithModification;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ProteinDetailsBO extends AbstractBusinessObject implements IProteinDetailsBO
-{
-    private ProteinDetails details;
-
-    ProteinDetailsBO(IDAOFactory daoFactory, IPhosphoNetXDAOFactory specificDAOFactory,
-            Session session)
-    {
-        super(daoFactory, specificDAOFactory, session);
-    }
-
-    @Override
-    public ProteinDetails getDetailsOrNull()
-    {
-        return details;
-    }
-
-    @Override
-    public void loadByExperimentAndReference(TechId experimentID, TechId proteinReferenceID)
-    {
-        String experimentPermID = getExperimentPermIDFor(experimentID);
-        IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(experimentID);
-        DataSet<IdentifiedProtein> proteins =
-                proteinQueryDAO.listProteinsByProteinReferenceAndExperiment(experimentPermID,
-                        proteinReferenceID.getId());
-        try
-        {
-            if (proteins.size() == 1)
-            {
-                ErrorModel errorModel = new ErrorModel(proteinQueryDAO);
-                IdentifiedProtein protein = proteins.get(0);
-                errorModel.setFalseDiscoveryRateFor(protein);
-                details = new ProteinDetails();
-                details.setSequence(protein.getSequence());
-                details.setDatabaseNameAndVersion(protein.getDatabaseNameAndVersion());
-                details.setProbability(protein.getProbability());
-                details.setCoverage(100 * protein.getCoverage());
-                details.setFalseDiscoveryRate(protein.getFalseDiscoveryRate());
-                String dataSetPermID = protein.getDataSetPermID();
-                details.setDataSetPermID(dataSetPermID);
-                DataPE ds = getDaoFactory().getDataDAO().tryToFindDataSetByCode(dataSetPermID);
-                if (ds != null)
-                {
-                    details.setDataSetTechID(ds.getId());
-                    details.setDataSetTypeCode(ds.getDataSetType().getCode());
-                }
-                details.setPeptides(loadPeptides(proteinQueryDAO, protein));
-                long proteinID = protein.getProteinID();
-                details.setProteinID(new TechId(proteinID));
-                details.setIndistinguishableProteinInfos(loadIndistinguishableProteinInfos(proteinQueryDAO, proteinID));
-            }
-        } finally
-        {
-            proteins.close();
-        }
-    }
-
-    private List<IndistinguishableProteinInfo> loadIndistinguishableProteinInfos(IProteinQueryDAO proteinQueryDAO, long proteinID)
-    {
-        DataSet<IndistinguishableProtein> proteins =
-                proteinQueryDAO.listIndistinguishableProteinsByProteinID(proteinID);
-        try
-        {
-            List<IndistinguishableProteinInfo> infos =
-                    new ArrayList<IndistinguishableProteinInfo>();
-            for (IndistinguishableProtein protein : proteins)
-            {
-                IndistinguishableProteinInfo info = new IndistinguishableProteinInfo();
-                AccessionNumberBuilder builder =
-                        new AccessionNumberBuilder(protein.getAccessionNumber());
-                info.setAccessionNumber(builder.getAccessionNumber());
-                info.setAccessionNumberType(builder.getTypeOrNull());
-                info.setDescription(protein.getDescription());
-                info.setSequence(protein.getSequence());
-                info.setCoverage(100 * protein.getCoverage());
-                infos.add(info);
-            }
-            return infos;
-        } finally
-        {
-            proteins.close();
-        }
-    }
-
-    private List<Peptide> loadPeptides(IProteinQueryDAO proteinQueryDAO, IdentifiedProtein protein)
-    {
-        DataSet<PeptideWithModification> identifiedPeptides =
-                proteinQueryDAO.listIdentifiedPeptidesByProtein(protein.getProteinID());
-        try
-        {
-            Map<Long, Peptide> peps = new HashMap<Long, Peptide>();
-            for (PeptideWithModification peptidWithModification : identifiedPeptides)
-            {
-                long id = peptidWithModification.getId();
-                Peptide peptide = peps.get(id);
-                if (peptide == null)
-                {
-                    peptide = new Peptide();
-                    peptide.setSequence(peptidWithModification.getSequence());
-                    peps.put(id, peptide);
-                }
-                Integer position = peptidWithModification.getPosition();
-                Double mass = peptidWithModification.getMass();
-                if (position != null && mass != null)
-                {
-                    PeptideModification peptideModification = new PeptideModification();
-                    peptideModification.setPosition(position);
-                    peptideModification.setMass(mass);
-                    peptide.getModifications().add(peptideModification);
-                }
-            }
-            List<Peptide> result = new ArrayList<Peptide>(peps.values());
-            Collections.sort(result, new Comparator<Peptide>()
-                {
-                    @Override
-                    public int compare(Peptide p1, Peptide p2)
-                    {
-                        return p1.getSequence().compareTo(p2.getSequence());
-                    }
-                });
-            return result;
-        } finally
-        {
-            identifiedPeptides.close();
-        }
-    }
-
-    private String getExperimentPermIDFor(TechId experimentId)
-    {
-        ExperimentPE experiment = getDaoFactory().getExperimentDAO().getByTechId(experimentId);
-        return experiment.getPermId();
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTable.java
deleted file mode 100644
index 6e09f0cc8b3efb04198f7357bdec09e8c841bd76..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTable.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import net.lemnik.eodsql.DataSet;
-
-import org.apache.log4j.Logger;
-
-import ch.systemsx.cisd.common.logging.LogCategory;
-import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExperimentDAO;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinAbundance;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReferenceWithProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinWithAbundances;
-
-/**
- * Implementation based of {@link IDAOFactory} and {@link IPhosphoNetXDAOFactory}.
- * 
- * @author Franz-Josef Elmer
- */
-class ProteinInfoTable extends AbstractBusinessObject implements IProteinInfoTable
-{
-    protected static final Logger operationLog =
-            LogFactory.getLogger(LogCategory.OPERATION, ProteinInfoTable.class);
-
-    private List<ProteinInfo> infos;
-
-    private final ISampleProvider sampleProvider;
-
-    ProteinInfoTable(IDAOFactory daoFactory, IPhosphoNetXDAOFactory specificDAOFactory,
-            Session session, ISampleProvider sampleProvider)
-    {
-        super(daoFactory, specificDAOFactory, session);
-        this.sampleProvider = sampleProvider;
-    }
-
-    @Override
-    public List<ProteinInfo> getProteinInfos()
-    {
-        if (infos == null)
-        {
-            throw new IllegalStateException("No proteins loaded.");
-        }
-        return infos;
-    }
-
-    @Override
-    public void load(List<AbundanceColumnDefinition> definitions, TechId experimentID,
-            double falseDiscoveryRate, AggregateFunction function, boolean aggregateOnOriginal)
-    {
-        IExperimentDAO experimentDAO = getDaoFactory().getExperimentDAO();
-        String permID = experimentDAO.getByTechId(experimentID).getPermId();
-        AbundanceManager abundanceManager = setUpAbundanceManager(permID, falseDiscoveryRate);
-        Collection<ProteinWithAbundances> proteins = abundanceManager.getProteinsWithAbundances();
-        infos = new ArrayList<ProteinInfo>(proteins.size());
-        for (ProteinWithAbundances protein : proteins)
-        {
-            ProteinInfo proteinInfo = new ProteinInfo();
-            proteinInfo.setId(new TechId(protein.getId()));
-            AccessionNumberBuilder builder = new AccessionNumberBuilder(protein.getAccessionNumber());
-            proteinInfo.setCoverage(100 * protein.getCoverage());
-            proteinInfo.setAccessionNumber(builder.getAccessionNumber());
-            proteinInfo.setDescription(protein.getDescription());
-            proteinInfo.setExperimentID(experimentID);
-            Map<Long, Double> abundances = new HashMap<Long, Double>();
-            for (AbundanceColumnDefinition abundanceColumnDefinition : definitions)
-            {
-                double[] abundanceValues = new double[0];
-                List<Long> ids = abundanceColumnDefinition.getSampleIDs();
-                for (Long sampleID : ids)
-                {
-                    double[] values = protein.getAbundancesForSample(sampleID);
-                    if (values != null && values.length > 0 && aggregateOnOriginal == false)
-                    {
-                        values = new double[] { function.aggregate(values) };
-                    }
-                    abundanceValues = concatenate(abundanceValues, values);
-                }
-                if (abundanceValues.length > 0)
-                {
-                    double aggregatedAbundance = function.aggregate(abundanceValues);
-                    abundances.put(abundanceColumnDefinition.getID(), aggregatedAbundance);
-                }
-            }
-            proteinInfo.setAbundances(abundances);
-            infos.add(proteinInfo);
-        }
-        Collections.sort(infos, new Comparator<ProteinInfo>()
-            {
-
-                @Override
-                public int compare(ProteinInfo p1, ProteinInfo p2)
-                {
-                    String an1 = p1.getAccessionNumber();
-                    String an2 = p2.getAccessionNumber();
-                    return an1 == null ? -1 : (an2 == null ? 1 : an1.compareToIgnoreCase(an2));
-                }
-            });
-    }
-
-    private AbundanceManager setUpAbundanceManager(String experimentPermID,
-            double falseDiscoveryRate)
-    {
-        AbundanceManager abundanceManager = new AbundanceManager(sampleProvider);
-        IPhosphoNetXDAOFactory specificDAOFactory = getSpecificDAOFactory();
-        IProteinQueryDAO dao = specificDAOFactory.getProteinQueryDAO(experimentPermID);
-        long time = System.currentTimeMillis();
-        DataSet<ProteinReferenceWithProtein> dataSet =
-                dao.listProteinReferencesByExperiment(experimentPermID);
-        List<ProteinReferenceWithProtein> proteins = new ArrayList<ProteinReferenceWithProtein>();
-        LongOpenHashSet proteinIDs = new LongOpenHashSet();
-        try
-        {
-            for (ProteinReferenceWithProtein protein : dataSet)
-            {
-                proteins.add(protein);
-                proteinIDs.add(protein.getProteinID());
-            }
-        } finally
-        {
-            dataSet.close();
-        }
-        operationLog.info("(" + (System.currentTimeMillis() - time) + "ms) for listProteinReferencesByExperiment");
-        Map<Long, List<ProteinAbundance>> abundancesPerProtein = getAbudancesPerProtein(dao, proteinIDs);
-        ErrorModel errorModel = new ErrorModel(dao);
-        for (ProteinReferenceWithProtein protein : proteins)
-        {
-            if (errorModel.passProtein(protein, falseDiscoveryRate))
-            {
-                List<ProteinAbundance> list = abundancesPerProtein.get(protein.getProteinID());
-                abundanceManager.handle(protein, list);
-            }
-        }
-        return abundanceManager;
-    }
-
-    private Map<Long, List<ProteinAbundance>> getAbudancesPerProtein(IProteinQueryDAO dao, LongOpenHashSet proteinIDs)
-    {
-        long time = System.currentTimeMillis();
-        DataSet<ProteinAbundance> dataSet = dao.listProteinWithAbundanceByExperiment(proteinIDs);
-        List<ProteinAbundance> proteinAbundances = new ArrayList<ProteinAbundance>();
-        try
-        {
-            for (ProteinAbundance proteinAbundance : dataSet)
-            {
-                proteinAbundances.add(proteinAbundance);
-            }
-        } finally
-        {
-            dataSet.close();
-        }
-        operationLog.info("(" + (System.currentTimeMillis() - time) + "ms) for listProteinWithAbundanceByExperiment");
-        Map<Long, List<ProteinAbundance>> abundancesPerProtein =
-                new HashMap<Long, List<ProteinAbundance>>();
-        for (ProteinAbundance proteinAbundance : proteinAbundances)
-        {
-            long proteinID = proteinAbundance.getId();
-            List<ProteinAbundance> list = abundancesPerProtein.get(proteinID);
-            if (list == null)
-            {
-                list = new ArrayList<ProteinAbundance>();
-                abundancesPerProtein.put(proteinID, list);
-            }
-            list.add(proteinAbundance);
-        }
-        return abundancesPerProtein;
-    }
-
-    private static double[] concatenate(double[] array1OrNull, double[] array2OrNull)
-    {
-        if (array1OrNull == null || array1OrNull.length == 0)
-        {
-            return array2OrNull;
-        }
-        if (array2OrNull == null || array2OrNull.length == 0)
-        {
-            return array1OrNull;
-        }
-        double[] newArray = new double[array1OrNull.length + array2OrNull.length];
-        System.arraycopy(array1OrNull, 0, newArray, 0, array1OrNull.length);
-        System.arraycopy(array2OrNull, 0, newArray, array1OrNull.length, array2OrNull.length);
-        return newArray;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTable.java
deleted file mode 100644
index c884b253e98effa723f6ea57bcfe7e5bff0ff190..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTable.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import net.lemnik.eodsql.DataSet;
-import ch.systemsx.cisd.openbis.generic.server.authorization.validator.SamplePropertyAccessValidator;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PropertyTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory;
-import ch.systemsx.cisd.openbis.generic.shared.translator.EntityPropertyTranslator;
-import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTypeTranslator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Occurrence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.OccurrenceUtil;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.AbstractSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.SampleAbundance;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.SamplePeptideModification;
-
-/**
- * Implementation of {@link IProteinRelatedSampleTable}.
- * 
- * @author Franz-Josef Elmer
- */
-class ProteinRelatedSampleTable implements IProteinRelatedSampleTable
-{
-    private final IDAOFactory daoFactory;
-
-    private final IPhosphoNetXDAOFactory specificDAOFactory;
-
-    private final IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory;
-
-    private List<ProteinRelatedSample> result;
-
-    ProteinRelatedSampleTable(IDAOFactory daoFactory, IPhosphoNetXDAOFactory specificDAOFactory,
-            IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory)
-    {
-        this.daoFactory = daoFactory;
-        this.specificDAOFactory = specificDAOFactory;
-        this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory;
-    }
-
-    @Override
-    public List<ProteinRelatedSample> getSamples()
-    {
-        return result;
-    }
-
-    @Override
-    public void load(Session session, TechId experimentID, TechId proteinReferenceID, String sequenceOrNull)
-    {
-        String experimentPermID =
-                daoFactory.getExperimentDAO().getByTechId(experimentID).getPermId();
-        IProteinQueryDAO proteinQueryDAO = specificDAOFactory.getProteinQueryDAO(experimentID);
-        Map<String, List<SampleAbundance>> sampleAbundanceMap =
-                createSampleMap(proteinQueryDAO.listSampleAbundanceByProtein(experimentPermID,
-                        proteinReferenceID.getId()));
-        Map<String, List<SamplePeptideModification>> samplePeptideModificationMap =
-                createSampleMap(proteinQueryDAO.listSamplePeptideModificatioByProtein(
-                        experimentPermID, proteinReferenceID.getId()));
-        result = new ArrayList<ProteinRelatedSample>();
-        SampleIDProvider sampleIDProvider = new SampleIDProvider(daoFactory.getSampleDAO());
-        Map<PropertyTypePE, PropertyType> cache = new HashMap<PropertyTypePE, PropertyType>();
-        Map<MaterialTypePE, MaterialType> materialTypeCache = new HashMap<MaterialTypePE, MaterialType>();
-        for (Entry<String, List<SampleAbundance>> entry : sampleAbundanceMap.entrySet())
-        {
-            String key = entry.getKey();
-            SamplePE sample = sampleIDProvider.getSampleOrParentSample(key);
-            List<SampleAbundance> sampleAbundances = entry.getValue();
-            List<SamplePeptideModification> samplePeptideModifications =
-                    samplePeptideModificationMap.get(key);
-            if (samplePeptideModifications == null)
-            {
-                for (SampleAbundance sampleAbundance : sampleAbundances)
-                {
-                    ProteinRelatedSample s = createFrom(sample, materialTypeCache, cache, session);
-                    s.setAbundance(sampleAbundance.getAbundance());
-                    result.add(s);
-                }
-            } else
-            {
-                for (SampleAbundance sampleAbundance : sampleAbundances)
-                {
-                    Double abundance = sampleAbundance.getAbundance();
-                    result.addAll(createSamplesForPeptideModifications(samplePeptideModifications,
-                            sample, abundance, sequenceOrNull, materialTypeCache, cache, session));
-                }
-            }
-        }
-        for (Entry<String, List<SamplePeptideModification>> entry : samplePeptideModificationMap
-                .entrySet())
-        {
-            String key = entry.getKey();
-            if (sampleAbundanceMap.containsKey(key) == false)
-            {
-                SamplePE sample = sampleIDProvider.getSampleOrParentSample(key);
-                List<SamplePeptideModification> samplePeptideModifications = entry.getValue();
-                result.addAll(createSamplesForPeptideModifications(samplePeptideModifications,
-                        sample, null, sequenceOrNull, materialTypeCache, cache, session));
-            }
-        }
-    }
-
-    private List<ProteinRelatedSample> createSamplesForPeptideModifications(
-            List<SamplePeptideModification> samplePeptideModifications, SamplePE sample,
-            Double abundanceOrNull, String sequenceOrNull, 
-            Map<MaterialTypePE, MaterialType> materialTypeCache, Map<PropertyTypePE, PropertyType> cache
-            , Session session)
-    {
-        List<ProteinRelatedSample> samples = new ArrayList<ProteinRelatedSample>();
-        for (SamplePeptideModification samplePeptideModification : samplePeptideModifications)
-        {
-            int position = samplePeptideModification.getPosition();
-            if (sequenceOrNull != null)
-            {
-                List<Occurrence> occurances =
-                        OccurrenceUtil.findAllOccurrences(sequenceOrNull,
-                                samplePeptideModification.getSequence());
-                for (Occurrence occurrence : occurances)
-                {
-                    samples.add(createProteinRelatedSample(samplePeptideModification, sample,
-                            abundanceOrNull, position + occurrence.getStartIndex(), materialTypeCache, cache, session));
-                }
-            } else
-            {
-                samples.add(createProteinRelatedSample(samplePeptideModification, sample,
-                        abundanceOrNull, position, materialTypeCache, cache, session));
-            }
-        }
-        return samples;
-    }
-
-    private ProteinRelatedSample createProteinRelatedSample(
-            SamplePeptideModification samplePeptideModification, SamplePE sample,
-            Double abundanceOrNull, int position, 
-            Map<MaterialTypePE, MaterialType> materialTypeCache, Map<PropertyTypePE, PropertyType> cache
-            , Session session)
-    {
-        ProteinRelatedSample s = createFrom(sample, materialTypeCache, cache, session);
-        s.setAbundance(abundanceOrNull);
-        int index = samplePeptideModification.getPosition() - 1;
-        String sequence = samplePeptideModification.getSequence();
-        if (index >= 0 && index < sequence.length())
-        {
-            s.setModifiedAminoAcid(sequence.charAt(index));
-        }
-        s.setModificationFraction(samplePeptideModification.getFraction());
-        s.setModificationMass(samplePeptideModification.getMass());
-        s.setModificationPosition((long) position);
-        return s;
-    }
-
-    private ProteinRelatedSample createFrom(SamplePE sample, Map<MaterialTypePE, MaterialType> materialTypeCache, 
-            Map<PropertyTypePE, PropertyType> cache, Session session)
-    {
-        ProteinRelatedSample s = new ProteinRelatedSample();
-        s.setCode(sample.getCode());
-        s.setEntityType(SampleTypeTranslator.translate(sample.getSampleType(), materialTypeCache, cache));
-        s.setId(sample.getId());
-        s.setIdentifier(sample.getIdentifier());
-        s.setPermId(sample.getPermId());
-        s.setProperties(EntityPropertyTranslator.translate(sample.getProperties(), materialTypeCache, cache,
-                managedPropertyEvaluatorFactory,
-                new SamplePropertyAccessValidator(session, daoFactory)));
-        return s;
-    }
-
-    private <T extends AbstractSample> Map<String, List<T>> createSampleMap(DataSet<T> items)
-    {
-        Map<String, List<T>> map = new LinkedHashMap<String, List<T>>();
-        try
-        {
-            for (T item : items)
-            {
-                String samplePermID = item.getSamplePermID();
-                List<T> list = map.get(samplePermID);
-                if (list == null)
-                {
-                    list = new ArrayList<T>();
-                    map.put(samplePermID, list);
-                }
-                list.add(item);
-            }
-        } finally
-        {
-            items.close();
-        }
-        return map;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSequenceTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSequenceTable.java
deleted file mode 100644
index 46492166070cd9cbbb61baa2a9f3b38e9ab38265..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSequenceTable.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import net.lemnik.eodsql.DataSet;
-
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.Sequence;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ProteinSequenceTable extends AbstractBusinessObject implements IProteinSequenceTable
-{
-    private List<ProteinSequence> proteinSequences;
-
-    private Map<Long, String> databaseIDToShortNameMap;
-
-    ProteinSequenceTable(IDAOFactory daoFactory, IPhosphoNetXDAOFactory specificDAOFactory,
-            Session session)
-    {
-        super(daoFactory, specificDAOFactory, session);
-    }
-
-    @Override
-    public List<ProteinSequence> getSequences()
-    {
-        if (proteinSequences == null)
-        {
-            throw new IllegalStateException("Sequences not loaded.");
-        }
-        return proteinSequences;
-    }
-
-    @Override
-    public String getShortName(long databaseID)
-    {
-        if (databaseIDToShortNameMap == null)
-        {
-            throw new IllegalStateException("Sequences not loaded.");
-        }
-        String shortName = databaseIDToShortNameMap.get(databaseID);
-        if (shortName == null)
-        {
-            throw new IllegalArgumentException("No sequence found for databaseID " + databaseID);
-        }
-        return shortName;
-    }
-
-    @Override
-    public void loadByReference(TechId experimentID, TechId proteinReferenceID)
-    {
-        IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(experimentID);
-        DataSet<Sequence> sequences =
-                proteinQueryDAO.listProteinSequencesByProteinReference(proteinReferenceID.getId());
-        proteinSequences = new ArrayList<ProteinSequence>(sequences.size());
-        databaseIDToShortNameMap = new HashMap<Long, String>();
-        int number = 0;
-        for (Sequence sequence : sequences)
-        {
-            ProteinSequence proteinSequence = new ProteinSequence();
-            proteinSequence.setId(new TechId(sequence.getId()));
-            String shortName = createShortName(number++);
-            proteinSequence.setShortName(shortName);
-            proteinSequence.setSequence(sequence.getSequence());
-            long databaseID = sequence.getDatabaseID();
-            proteinSequence.setDatabaseID(new TechId(databaseID));
-            proteinSequence.setDatabaseNameAndVersion(sequence.getDatabaseNameAndVersion());
-            proteinSequences.add(proteinSequence);
-            databaseIDToShortNameMap.put(databaseID, shortName);
-        }
-        sequences.close();
-    }
-
-    private String createShortName(int number)
-    {
-        StringBuilder builder = new StringBuilder();
-        int n = number;
-        while (n > 0 || builder.length() == 0)
-        {
-            builder.insert(0, "ABCEDEFGHIJKLMNOPQRSTUVWXYZ".charAt(n % 26));
-            n /= 26;
-        }
-        return builder.toString();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTable.java
deleted file mode 100644
index 44e994ffdb05f837216845c7d8b86eff5c854776..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTable.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import net.lemnik.eodsql.DataSet;
-
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExperimentDAO;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReferenceWithProbabilityAndPeptide;
-
-/**
- * @author Franz-Josef Elmer
- */
-class ProteinSummaryTable extends AbstractBusinessObject implements IProteinSummaryTable
-{
-    static final double[] FDR_LEVELS = new double[]
-    { 0, 0.01, 0.025, 0.05, 0.1 };
-
-    private static final class Counter
-    {
-
-        private final double fdrLevel;
-
-        private final Set<Long> proteins;
-
-        private final Set<Long> decoyProteins;
-
-        private final Set<String> peptides;
-
-        private final Set<String> decoyPeptides;
-
-        Counter(double fdrLevel)
-        {
-            this.fdrLevel = fdrLevel;
-            proteins = new HashSet<Long>();
-            decoyProteins = new HashSet<Long>();
-            peptides = new HashSet<String>();
-            decoyPeptides = new HashSet<String>();
-        }
-
-        public ProteinSummary getProteinSummary()
-        {
-            ProteinSummary proteinSummary = new ProteinSummary();
-            proteinSummary.setFDR(fdrLevel);
-            proteinSummary.setProteinCount(proteins.size());
-            proteinSummary.setPeptideCount(peptides.size());
-            proteinSummary.setDecoyProteinCount(decoyProteins.size());
-            proteinSummary.setDecoyPeptideCount(decoyPeptides.size());
-            return proteinSummary;
-        }
-
-        public void handle(double fdr, ProteinReferenceWithProbabilityAndPeptide protein)
-        {
-            if (Double.isNaN(fdr) || fdr <= fdrLevel)
-            {
-                String accessionNumber = protein.getAccessionNumber();
-                if (accessionNumber.startsWith(AccessionNumberBuilder.DECOY_PREFIX))
-                {
-                    decoyProteins.add(protein.getId());
-                    decoyPeptides.add(protein.getPeptideSequence());
-                } else
-                {
-                    proteins.add(protein.getId());
-                    peptides.add(protein.getPeptideSequence());
-                }
-            }
-        }
-    }
-
-    private List<ProteinSummary> summaries;
-
-    ProteinSummaryTable(IDAOFactory daoFactory, IPhosphoNetXDAOFactory specificDAOFactory,
-            Session session)
-    {
-        super(daoFactory, specificDAOFactory, session);
-    }
-
-    @Override
-    public List<ProteinSummary> getProteinSummaries()
-    {
-        return summaries;
-    }
-
-    @Override
-    public void load(TechId experimentID)
-    {
-        IExperimentDAO experimentDAO = getDaoFactory().getExperimentDAO();
-        String permID = experimentDAO.getByTechId(experimentID).getPermId();
-        IProteinQueryDAO dao = getSpecificDAOFactory().getProteinQueryDAO(experimentID);
-        ErrorModel errorModel = new ErrorModel(dao);
-        DataSet<ProteinReferenceWithProbabilityAndPeptide> resultSet =
-                dao.listProteinsWithProbabilityAndPeptidesByExperiment(permID);
-        List<Counter> counters = new ArrayList<Counter>(FDR_LEVELS.length);
-        for (double fdrLevel : FDR_LEVELS)
-        {
-            counters.add(new Counter(fdrLevel));
-        }
-        try
-        {
-            for (ProteinReferenceWithProbabilityAndPeptide protein : resultSet)
-            {
-                long dataSetID = protein.getDataSetID();
-                double probability = protein.getProbability();
-                double fdr = errorModel.calculateFalsDiscoveryRate(dataSetID, probability);
-                for (Counter counter : counters)
-                {
-                    counter.handle(fdr, protein);
-                }
-            }
-            summaries = getSummaries(counters);
-        } finally
-        {
-            resultSet.close();
-        }
-    }
-
-    private List<ProteinSummary> getSummaries(List<Counter> counters)
-    {
-        List<ProteinSummary> list = new ArrayList<ProteinSummary>(counters.size());
-        for (Counter counter : counters)
-        {
-            list.add(counter.getProteinSummary());
-        }
-        return list;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleIDProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleIDProvider.java
deleted file mode 100644
index 663533f5b4fa2f2047f8b5b1e1ae518b35a3cd02..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleIDProvider.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleDAO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
-import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
-
-/**
- * Implementation based on {@link ISampleDAO}.
- *
- * @author Franz-Josef Elmer
- */
-public class SampleIDProvider implements ISampleIDProvider
-{
-    private final ISampleDAO sampleDAO;
-
-    private final Map<String, SamplePE> samples = new LinkedHashMap<String, SamplePE>();
-
-    public SampleIDProvider(ISampleDAO sampleDAO)
-    {
-        this.sampleDAO = sampleDAO;
-    }
-
-    @Override
-    public long getSampleIDOrParentSampleID(String samplePermID)
-    {
-        return HibernateUtils.getId(getSampleOrParentSample(samplePermID));
-    }
-
-    @Override
-    public SamplePE getSampleOrParentSample(String samplePermID)
-    {
-        SamplePE sample = samples.get(samplePermID);
-        if (sample == null)
-        {
-            sample = sampleDAO.tryToFindByPermID(samplePermID);
-            if (sample == null)
-            {
-                throw new UserFailureException("No sample found for permID " + samplePermID);
-            }
-            SamplePE parentSample = sample.getGeneratedFrom();
-            if (parentSample != null)
-            {
-                sample = parentSample;
-            }
-            samples.put(samplePermID, sample);
-        }
-        return sample;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleLoader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleLoader.java
deleted file mode 100644
index cf40e60ebfffb2fd32c785bc4d22a4b313c0f83d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleLoader.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import ch.systemsx.cisd.common.collection.IValidator;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.ICommonBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListOrSearchSampleCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SampleRelationshipSkeleton;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SampleSkeleton;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SampleTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class SampleLoader implements ISampleLoader
-{
-    private final Session session;
-
-    private final IDAOFactory daoFactory;
-
-    private final ICommonBusinessObjectFactory businessObjectFactory;
-
-    public SampleLoader(Session session, IDAOFactory daoFactory,
-            ICommonBusinessObjectFactory businessObjectFactory)
-    {
-        this.session = session;
-        this.daoFactory = daoFactory;
-        this.businessObjectFactory = businessObjectFactory;
-
-    }
-
-    @Override
-    public List<Sample> listSamplesWithParentsByTypeAndSpace(String sampleTypeCode, String spaceCode)
-    {
-        ISampleLister sampleLister = businessObjectFactory.createSampleLister(session);
-        Set<Long> filteredSampleIDs = getSampleIDs(sampleLister, sampleTypeCode, spaceCode);
-        ListOrSearchSampleCriteria criteria = new ListOrSearchSampleCriteria(filteredSampleIDs);
-        criteria.setEnrichDependentSamplesWithProperties(true);
-        List<Sample> samples = sampleLister.list(criteria);
-        ArrayList<Sample> samplesWithParent = new ArrayList<Sample>();
-        for (Sample sample : samples)
-        {
-            if (sample.getParents().size() == 1)
-            {
-                samplesWithParent.add(sample);
-            }
-        }
-        return samplesWithParent;
-    }
-
-    private Set<Long> getSampleIDs(ISampleLister sampleLister, String sampleTypeCode,
-            String spaceCode)
-    {
-        SampleTypePE sampleTypePE =
-                daoFactory.getSampleTypeDAO().tryFindSampleTypeByCode(sampleTypeCode);
-        if (sampleTypePE == null)
-        {
-            return Collections.emptySet();
-        }
-        final Long sampleTypeID = sampleTypePE.getId();
-        SpacePE space =
-                daoFactory.getSpaceDAO().tryFindSpaceByCode(spaceCode);
-        if (space == null)
-        {
-            return Collections.emptySet();
-        }
-        final Long spaceID = space.getId();
-        List<SampleSkeleton> sampleSkeletons =
-                sampleLister.listSampleBy(new IValidator<SampleSkeleton>()
-                    {
-                        @Override
-                        public boolean isValid(SampleSkeleton sampleSkeleton)
-                        {
-                            return spaceID.equals(sampleSkeleton.getSpaceID())
-                                    && sampleTypeID.equals(sampleSkeleton.getTypeID());
-                        }
-                    });
-        final Set<Long> sampleIDs = new HashSet<Long>();
-        for (SampleSkeleton sampleSkeleton : sampleSkeletons)
-        {
-            sampleIDs.add(sampleSkeleton.getId());
-        }
-        final long relationshipTypeID =
-                sampleLister
-                        .getRelationshipTypeID(BasicConstant.PARENT_CHILD_INTERNAL_RELATIONSHIP);
-        @SuppressWarnings("deprecation")
-        List<SampleRelationshipSkeleton> relationshipSkeletons =
-                sampleLister.listSampleRelationshipsBy(new IValidator<SampleRelationshipSkeleton>()
-                    {
-                        @Override
-                        public boolean isValid(SampleRelationshipSkeleton skeleton)
-                        {
-                            return skeleton.getRelationshipTypeID() == relationshipTypeID
-                                    && sampleIDs.contains(skeleton.getChildSampleID());
-                        }
-                    });
-        Set<Long> filteredSampleIDs = new HashSet<Long>();
-        for (SampleRelationshipSkeleton sampleRelationShipSkeleton : relationshipSkeletons)
-        {
-            filteredSampleIDs.add(sampleRelationShipSkeleton.getChildSampleID());
-        }
-        return filteredSampleIDs;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleProvider.java
deleted file mode 100644
index da9493facb0e110dbfd22237fd3d5a18bf70cdd8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleProvider.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListOrSearchSampleCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-
-/**
- * @author Franz-Josef Elmer
- */
-class SampleProvider implements ISampleProvider
-{
-    private final Session session;
-
-    private final IBusinessObjectFactory boFactory;
-
-    private Map<String, Sample> samplesByPermIDs;
-
-    SampleProvider(Session session, IBusinessObjectFactory boFactory)
-    {
-        this.session = session;
-        this.boFactory = boFactory;
-    }
-
-    @Override
-    public void loadByExperimentID(TechId experimentID)
-    {
-        samplesByPermIDs = new HashMap<String, Sample>();
-        ListSampleCriteria criteria = ListSampleCriteria.createForExperiment(experimentID);
-        ISampleLister lister = boFactory.createSampleLister(session);
-        ListOrSearchSampleCriteria criteria2 = new ListOrSearchSampleCriteria(criteria);
-        criteria2.setEnrichDependentSamplesWithProperties(true);
-        gatherSamplesAndAncestorsRecursively(lister, criteria2);
-    }
-
-    private void gatherSamplesAndAncestorsRecursively(ISampleLister lister,
-            ListOrSearchSampleCriteria criteria)
-    {
-        List<Sample> list = lister.list(criteria);
-        Set<Long> sampleIDs = new LinkedHashSet<Long>();
-        for (Sample sample : list)
-        {
-            samplesByPermIDs.put(sample.getPermId(), sample);
-            sampleIDs.add(sample.getId());
-        }
-        if (sampleIDs.isEmpty())
-        {
-            return;
-        }
-        ListSampleCriteria criteria2 =
-                ListSampleCriteria.createForChildren(sampleIDs);
-        ListOrSearchSampleCriteria criteria3 = new ListOrSearchSampleCriteria(criteria2);
-        criteria3.setEnrichDependentSamplesWithProperties(true);
-        gatherSamplesAndAncestorsRecursively(lister, criteria3);
-    }
-
-    @Override
-    public Sample getSample(String permID)
-    {
-        Sample sample = samplesByPermIDs.get(permID);
-        if (sample == null)
-        {
-            throw new UserFailureException(
-                    "No sample with following perm ID registered in openBIS: " + permID);
-        }
-        return sample;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleTable.java
deleted file mode 100644
index 7bab99e446a29e3ab08adf1b7ceddcff62c86230..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleTable.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import net.lemnik.eodsql.DataSet;
-import ch.systemsx.cisd.common.collection.IValidator;
-import ch.systemsx.cisd.openbis.generic.server.authorization.validator.SamplePropertyAccessValidator;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleDAO;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifierHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PropertyTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory;
-import ch.systemsx.cisd.openbis.generic.shared.translator.EntityPropertyTranslator;
-import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTypeTranslator;
-import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.SampleWithPropertiesAndAbundance;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.SampleAbundance;
-
-/**
- * @author Franz-Josef Elmer
- */
-class SampleTable extends AbstractBusinessObject implements ISampleTable
-{
-    private List<SampleWithPropertiesAndAbundance> samples =
-            new ArrayList<SampleWithPropertiesAndAbundance>();
-
-    private SampleIDProvider sampleIDProvider;
-
-    private IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory;
-
-    SampleTable(IDAOFactory daoFactory, IPhosphoNetXDAOFactory specificDAOFactory, Session session,
-            IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory)
-    {
-        super(daoFactory, specificDAOFactory, session);
-        sampleIDProvider = new SampleIDProvider(daoFactory.getSampleDAO());
-        this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory;
-    }
-
-    @Override
-    public List<SampleWithPropertiesAndAbundance> getSamples()
-    {
-        return samples;
-    }
-
-    @Override
-    public void loadSamplesWithAbundance(Session session, TechId experimentID, TechId proteinReferenceID)
-    {
-        samples = new ArrayList<SampleWithPropertiesAndAbundance>();
-        IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(experimentID);
-        IDAOFactory daoFactory = getDaoFactory();
-        String experimentPermID =
-                daoFactory.getExperimentDAO().getByTechId(experimentID).getPermId();
-        DataSet<SampleAbundance> sampleAbundances =
-                proteinQueryDAO.listSampleAbundanceByProtein(experimentPermID,
-                        proteinReferenceID.getId());
-        try
-        {
-            ISampleDAO sampleDAO = daoFactory.getSampleDAO();
-            for (SampleAbundance sampleAbundance : sampleAbundances)
-            {
-                SampleWithPropertiesAndAbundance sample = new SampleWithPropertiesAndAbundance();
-                sample.setAbundance(sampleAbundance.getAbundance());
-                String samplePermID = sampleAbundance.getSamplePermID();
-                long sampleID = sampleIDProvider.getSampleIDOrParentSampleID(samplePermID);
-                SamplePE samplePE = sampleDAO.getByTechId(new TechId(sampleID));
-                fillSampleData(sample, samplePE, managedPropertyEvaluatorFactory,
-                        new SamplePropertyAccessValidator(session, daoFactory));
-                samples.add(sample);
-            }
-        } finally
-        {
-            sampleAbundances.close();
-        }
-    }
-
-    private final static void fillSampleData(final SampleWithPropertiesAndAbundance result,
-            final SamplePE samplePE,
-            IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory,
-            IValidator<IIdentifierHolder> samplePropertyAccessValidator)
-    {
-        result.setId(HibernateUtils.getId(samplePE));
-        result.setPermId(samplePE.getPermId());
-        result.setCode(samplePE.getCode());
-        result.setIdentifier(samplePE.getIdentifier());
-        result.setSampleType(SampleTypeTranslator.translate(samplePE.getSampleType(),
-                new HashMap<MaterialTypePE, MaterialType>(), new HashMap<PropertyTypePE, PropertyType>()));
-        result.setProperties(EntityPropertyTranslator.translate(samplePE.getProperties(),
-                new HashMap<MaterialTypePE, MaterialType>(), new HashMap<PropertyTypePE, PropertyType>(), 
-                managedPropertyEvaluatorFactory, samplePropertyAccessValidator));
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/TreatmentFinder.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/TreatmentFinder.java
deleted file mode 100644
index 2aa35c622e4cf48323dfa41f719e09eecf388e30..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/TreatmentFinder.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.lang3.StringUtils;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Treatment;
-
-/**
- * Helper class which gathers properties in a sample and its ancestor samples defining sample treatments. Treatments of the same type will be
- * overridden by descendants.
- *
- * @author Franz-Josef Elmer
- */
-public class TreatmentFinder
-{
-    public static final String TREATMENT_TYPE_CODE = "TREATMENT_TYPE";
-
-    public static final String TREATMENT_VALUE_CODE = "TREATMENT_VALUE";
-
-    /**
-     * Returns all treatments found for specified sample and its ancestors.
-     */
-    public List<Treatment> findTreatmentsOf(Sample sample)
-    {
-        Map<String, Treatment> treatments = new LinkedHashMap<String, Treatment>();
-        findAndAddTreatments(treatments, sample);
-        List<Treatment> treatmentList = new ArrayList<Treatment>(treatments.values());
-        Collections.sort(treatmentList);
-        return treatmentList;
-    }
-
-    private void findAndAddTreatments(Map<String, Treatment> treatments, Sample sampleOrNull)
-    {
-        if (sampleOrNull == null)
-        {
-            return;
-        }
-        findAndAddTreatments(treatments, sampleOrNull.getGeneratedFrom());
-        List<IEntityProperty> properties = sampleOrNull.getProperties();
-        Map<String, Treatment> codeTreatmentMap = new HashMap<String, Treatment>();
-        for (IEntityProperty property : properties)
-        {
-            PropertyType propertyType = property.getPropertyType();
-            String code = propertyType.getCode();
-            if (code.startsWith(TREATMENT_TYPE_CODE))
-            {
-                String treatmentCode = code.substring(TREATMENT_TYPE_CODE.length());
-                VocabularyTerm vocabularyTerm = property.getVocabularyTerm();
-                if (vocabularyTerm == null)
-                {
-                    throw new UserFailureException("Data type of property type '" + code
-                            + "' must be a vocabulary.");
-                }
-                Treatment treatment = getOrCreateTreatment(codeTreatmentMap, treatmentCode);
-                treatment.setType(getLabelOrCode(vocabularyTerm));
-                treatment.setTypeCode(vocabularyTerm.getCode());
-            } else if (code.startsWith(TREATMENT_VALUE_CODE))
-            {
-                String treatmentCode = code.substring(TREATMENT_VALUE_CODE.length());
-                Treatment treatment = getOrCreateTreatment(codeTreatmentMap, treatmentCode);
-                DataTypeCode dataType = propertyType.getDataType().getCode();
-                treatment.setValueType(dataType.toString());
-                String value = getValue(property);
-                treatment.setValue(value);
-            }
-        }
-        Collection<Treatment> treatmentsToBeAdded = codeTreatmentMap.values();
-        for (Treatment treatment : treatmentsToBeAdded)
-        {
-            Treatment superTreatment = treatments.get(treatment.getType());
-            if (superTreatment == null)
-            {
-                treatments.put(treatment.getType(), treatment);
-            } else
-            {
-                superTreatment.setValue(treatment.getValue());
-            }
-        }
-    }
-
-    private String getValue(IEntityProperty property)
-    {
-        Material material = property.getMaterial();
-        if (material != null)
-        {
-            return material.getCode();
-        }
-        VocabularyTerm vocabularyTerm = property.getVocabularyTerm();
-        return vocabularyTerm == null ? property.getValue() : getLabelOrCode(vocabularyTerm);
-    }
-
-    private String getLabelOrCode(VocabularyTerm vocabularyTerm)
-    {
-        String label = vocabularyTerm.getLabel();
-        if (StringUtils.isBlank(label))
-        {
-            label = vocabularyTerm.getCode();
-        }
-        return label;
-    }
-
-    private Treatment getOrCreateTreatment(Map<String, Treatment> codeTreatmentMap,
-            String treatmentCode)
-    {
-        Treatment treatment = codeTreatmentMap.get(treatmentCode);
-        if (treatment == null)
-        {
-            treatment = new Treatment();
-            treatment.setType("");
-            treatment.setTypeCode("");
-            treatment.setValue("");
-            treatment.setValueType(DataTypeCode.VARCHAR.toString());
-            codeTreatmentMap.put(treatmentCode, treatment);
-        }
-        return treatment;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IPhosphoNetXDAOFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IPhosphoNetXDAOFactory.java
deleted file mode 100644
index 22cf326c808b1eb46b8544767e406c1ab46515bf..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IPhosphoNetXDAOFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-
-/**
- * A factory for PhosphoNetX specific DAOs.
- * 
- * @author Franz-Josef Elmer
- */
-public interface IPhosphoNetXDAOFactory
-{
-    public IProteinQueryDAO getProteinQueryDAO(TechId experimentID);
-
-    public IProteinQueryDAO getProteinQueryDAO(String experimentPermID);
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IProteinQueryDAO.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IProteinQueryDAO.java
deleted file mode 100644
index 861f24b02cee8414d92803053262b6438326ff0c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IProteinQueryDAO.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess;
-
-import it.unimi.dsi.fastutil.longs.LongSet;
-import net.lemnik.eodsql.BaseQuery;
-import net.lemnik.eodsql.DataSet;
-import net.lemnik.eodsql.Select;
-
-import ch.systemsx.cisd.common.db.mapper.LongSetMapper;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IdentifiedProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IndistinguishableProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.PeptideWithModification;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProbabilityFDRMapping;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinAbundance;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReference;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReferenceWithProbabilityAndPeptide;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReferenceWithProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.SampleAbundance;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.SamplePeptideModification;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.Sequence;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IProteinQueryDAO extends BaseQuery
-{
-    @Select(sql = "select * from probability_fdr_mappings where dase_id = ?{1}", disconnected = true)
-    public DataSet<ProbabilityFDRMapping> getProbabilityFDRMapping(long dataSetID);
-
-    @Select("select d.id as data_set_id, p.id as protein_id, probability, coverage, "
-            + "pr.id, accession_number, description from protein_references as pr "
-            + "left join sequences as s on s.prre_id = pr.id "
-            + "left join identified_proteins as ip on ip.sequ_id = s.id "
-            + "left join proteins as p on ip.prot_id = p.id "
-            + "left join data_sets as d on p.dase_id = d.id "
-            + "left join experiments as e on d.expe_id = e.id where e.perm_id = ?{1} and ip.is_primary = 't'")
-    public DataSet<ProteinReferenceWithProtein> listProteinReferencesByExperiment(
-            String experimentPermID);
-
-    @Select(sql = "select p.id, a.value, s.perm_id "
-            + "from proteins as p join abundances as a on p.id = a.prot_id "
-            + "left join samples as s on a.samp_id = s.id "
-            + "where p.id = any (?{1})", parameterBindings = { LongSetMapper.class })
-    public DataSet<ProteinAbundance> listProteinWithAbundanceByExperiment(LongSet proteinIDs);
-
-    @Select(sql = "select p.dase_id as data_set_id, p.probability, s.prre_id as id, pr.accession_number, pe.sequence "
-            + "from identified_proteins as ip left join sequences as s on ip.sequ_id = s.id "
-            + "left join protein_references as pr on s.prre_id = pr.id "
-            + "left join proteins as p on ip.prot_id = p.id "
-            + "left join peptides as pe on pe.prot_id = p.id "
-            + "left join data_sets as d on p.dase_id = d.id "
-            + "left join experiments as e on d.expe_id = e.id "
-            + "where e.perm_id = ?{1} and ip.is_primary = 't'")
-    public DataSet<ProteinReferenceWithProbabilityAndPeptide> listProteinsWithProbabilityAndPeptidesByExperiment(
-            String experimentPermID);
-
-    @Select("select distinct s.perm_id "
-            + "from abundances as a left join proteins as p on a.prot_id = p.id "
-            + "                     left join data_sets as d on p.dase_id = d.id "
-            + "                     left join experiments as e on d.expe_id = e.id "
-            + "                     left join samples as s on a.samp_id = s.id "
-            + "where e.perm_id = ?{1} order by s.perm_id")
-    public DataSet<String> listAbundanceRelatedSamplePermIDsByExperiment(String experimentPermID);
-
-    @Select("select * from protein_references where id = ?{1}")
-    public ProteinReference tryToGetProteinReference(long proteinReferenceID);
-
-    @Select("select s.id, db_id, amino_acid_sequence, name_and_version "
-            + "from sequences as s join databases as d on s.db_id = d.id "
-            + "where s.prre_id = ?{1} order by name_and_version")
-    public DataSet<Sequence> listProteinSequencesByProteinReference(long proteinReferenceID);
-
-    @Select("select ds.id as data_set_id, ds.perm_id as data_set_perm_id, p.id as protein_id, "
-            + "probability, coverage, count(pe.id) as peptide_count, amino_acid_sequence, s.db_id, name_and_version "
-            + "from data_sets as ds join experiments as e on ds.expe_id = e.id "
-            + "                     join proteins as p on p.dase_id = ds.id "
-            + "                     join identified_proteins as ip on ip.prot_id = p.id "
-            + "                     join sequences as s on ip.sequ_id = s.id "
-            + "                     join databases as db on s.db_id = db.id "
-            + "                     left join peptides as pe on pe.prot_id = p.id "
-            + "where s.prre_id = ?{2} and e.perm_id = ?{1} and ip.is_primary = 't' "
-            + "group by data_set_id, data_set_perm_id, protein_id, probability, coverage, "
-            + "         amino_acid_sequence, s.db_id, name_and_version order by data_set_perm_id")
-    public DataSet<IdentifiedProtein> listProteinsByProteinReferenceAndExperiment(
-            String experimentPermID, long proteinReferenceID);
-
-    @Select("select pe.id, sequence, pos, mass "
-            + "from peptides as pe left join modified_peptides as mp on mp.pept_id = pe.id "
-            + "                    left join modifications as m on m.mope_id = mp.id "
-            + "where prot_id = ?{1} order by pe.id")
-    public DataSet<PeptideWithModification> listIdentifiedPeptidesByProtein(long proteinID);
-
-    @Select("select accession_number, description, amino_acid_sequence, coverage "
-            + "from identified_proteins as ip join sequences as s on ip.sequ_id = s.id "
-            + "                               join protein_references as pr on s.prre_id = pr.id "
-            + "where ip.prot_id = ?{1} and ip.is_primary = 'f'")
-    public DataSet<IndistinguishableProtein> listIndistinguishableProteinsByProteinID(long proteinID);
-
-    @Select("select distinct a.id, samples.perm_id, value "
-            + "from abundances as a left join proteins as p on a.prot_id = p.id "
-            + "                     left join data_sets as d on p.dase_id = d.id "
-            + "                     left join experiments as e on d.expe_id = e.id "
-            + "                     left join identified_proteins as ip on ip.prot_id = p.id "
-            + "                     left join sequences as s on ip.sequ_id = s.id "
-            + "                     left join samples on a.samp_id = samples.id "
-            + "where e.perm_id = ?{1} and s.prre_id = ?{2} and ip.is_primary = 't'")
-    public DataSet<SampleAbundance> listSampleAbundanceByProtein(String experimentPermID,
-            long proteinReferenceID);
-
-    @Select("select distinct mf.id, samples.perm_id, fraction, pos, mass, sequence "
-            + "from modification_fractions as mf left join modifications as m on mf.modi_id = m.id "
-            + "                     left join modified_peptides as mp on m.mope_id = mp.id "
-            + "                     left join peptides as pe on mp.pept_id = pe.id "
-            + "                     left join proteins as p on pe.prot_id = p.id "
-            + "                     left join data_sets as d on p.dase_id = d.id "
-            + "                     left join experiments as e on d.expe_id = e.id "
-            + "                     left join identified_proteins as ip on ip.prot_id = p.id "
-            + "                     left join sequences as s on ip.sequ_id = s.id "
-            + "                     left join samples on mf.samp_id = samples.id "
-            + "where e.perm_id = ?{1} and s.prre_id = ?{2} and ip.is_primary = 't'")
-    public DataSet<SamplePeptideModification> listSamplePeptideModificatioByProtein(
-            String experimentPermID, long proteinReferenceID);
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/PhosphoNetXDAOFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/PhosphoNetXDAOFactory.java
deleted file mode 100644
index a9823517b4bd30f17e79bb899d9c71a0e4edfac0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/PhosphoNetXDAOFactory.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.db;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.sql.DataSource;
-
-import net.lemnik.eodsql.QueryTool;
-
-import org.apache.log4j.Logger;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.logging.LogCategory;
-import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataDAO;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataSourceProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class PhosphoNetXDAOFactory implements IPhosphoNetXDAOFactory
-{
-    private static final Logger operationLog =
-            LogFactory.getLogger(LogCategory.OPERATION, PhosphoNetXDAOFactory.class);
-
-    private final Map<DataSource, IProteinQueryDAO> daos = new HashMap<DataSource, IProteinQueryDAO>();
-
-    private final IDAOFactory daoFactory;
-
-    private final IDataSourceProvider dataSourceProvider;
-
-    public PhosphoNetXDAOFactory(IDataSourceProvider dataSourceProvider, IDAOFactory daoFactory)
-    {
-        this.dataSourceProvider = dataSourceProvider;
-        this.daoFactory = daoFactory;
-        if (operationLog.isInfoEnabled())
-        {
-            operationLog.info("DAO factory for proteomics created.");
-        }
-    }
-
-    @Override
-    public IProteinQueryDAO getProteinQueryDAO(String experimentPermID)
-    {
-        ExperimentPE experiment = daoFactory.getExperimentDAO().tryGetByPermID(experimentPermID);
-        if (experiment == null)
-        {
-            throw new UserFailureException("No experiment with following perm ID found: "
-                    + experimentPermID);
-        }
-        return getProteinQueryDAO(experiment);
-    }
-
-    @Override
-    public IProteinQueryDAO getProteinQueryDAO(TechId experimentID)
-    {
-        ExperimentPE experiment = daoFactory.getExperimentDAO().tryGetByTechId(experimentID);
-        if (experiment == null)
-        {
-            throw new UserFailureException("No experiment with following technical ID found: "
-                    + experimentID);
-        }
-        return getProteinQueryDAO(experiment);
-    }
-
-    public IProteinQueryDAO getProteinQueryDAO(ExperimentPE experiment)
-    {
-        DataSource dataSource = getDataSource(experiment);
-        IProteinQueryDAO dao = daos.get(dataSource);
-        if (dao == null)
-        {
-            dao = QueryTool.getQuery(dataSource, IProteinQueryDAO.class);
-            daos.put(dataSource, dao);
-        }
-        return dao;
-    }
-
-    private DataSource getDataSource(ExperimentPE experiment)
-    {
-        IDataDAO dataDAO = daoFactory.getDataDAO();
-
-        List<DataPE> dataSets = dataDAO.listDataSets(experiment);
-        Set<String> dataStores = new HashSet<String>();
-        for (DataPE data : dataSets)
-        {
-            dataStores.add(data.getDataStore().getCode());
-        }
-        if (dataStores.isEmpty())
-        {
-            throw new UserFailureException("Experiment with " + experiment.getIdentifier()
-                    + " has no data sets.");
-        }
-        if (dataStores.size() > 1)
-        {
-            throw new UserFailureException("Experiment with " + experiment.getIdentifier()
-                    + " has data sets from more than one store. The stores are the following: "
-                    + dataStores);
-        }
-        DataSource dataSource =
-                dataSourceProvider.getDataSourceByDataStoreServerCode(dataStores.iterator()
-                        .next(), "proteomics");
-        return dataSource;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/migration/MigrationStepFrom002To003.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/migration/MigrationStepFrom002To003.java
deleted file mode 100644
index df1252a3761bd9415ee2720737288b24bda9c798..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/migration/MigrationStepFrom002To003.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.db.migration;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.sql.DataSource;
-
-import org.apache.log4j.Logger;
-import org.springframework.dao.DataAccessException;
-import org.springframework.jdbc.core.JdbcOperations;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.core.ResultSetExtractor;
-
-import ch.systemsx.cisd.common.logging.LogCategory;
-import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.dbmigration.java.MigrationStepAdapter;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Occurrence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.OccurrenceUtil;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class MigrationStepFrom002To003 extends MigrationStepAdapter
-{
-    private static final long MB = 1024 * 1024;
-
-    private static final Logger operationLog =
-            LogFactory.getLogger(LogCategory.OPERATION, MigrationStepFrom002To003.class);
-
-    @Override
-    public void performPostMigration(JdbcTemplate simpleJdbcTemplate, DataSource dataSource)
-            throws DataAccessException
-    {
-        List<Object[]> coverageValues = calculateCoverageValues(simpleJdbcTemplate);
-        operationLog.info("update " + coverageValues.size() + " identified proteins");
-        simpleJdbcTemplate.batchUpdate("update identified_proteins set coverage = ? where id = ?",
-                coverageValues);
-    }
-
-    private List<Object[]> calculateCoverageValues(JdbcTemplate simpleJdbcTemplate)
-    {
-        logMemory();
-        JdbcOperations jdbcOperations = simpleJdbcTemplate;
-        final Map<Long, List<String>> peptides = getPeptides(jdbcOperations);
-        logMemory();
-        final List<Object[]> values = new ArrayList<Object[]>();
-        jdbcOperations.query("select ip.id, ip.prot_id, s.amino_acid_sequence "
-                + "from identified_proteins as ip "
-                + "join sequences as s on ip.sequ_id = s.id where coverage is null",
-                new ResultSetExtractor()
-                    {
-                        @Override
-                        public Object extractData(ResultSet rs) throws SQLException,
-                                DataAccessException
-                        {
-                            while (rs.next())
-                            {
-                                long id = rs.getLong(1);
-                                long proteinID = rs.getLong(2);
-                                String sequence = rs.getString(3);
-                                List<String> peptideSequences = peptides.get(proteinID);
-                                double coverage = calculateCoverage(sequence, peptideSequences);
-                                values.add(new Object[] { coverage, id });
-                            }
-                            return null;
-                        }
-                    });
-        logMemory();
-        return values;
-    }
-
-    private Map<Long, List<String>> getPeptides(JdbcOperations jdbcOperations)
-    {
-        final Map<Long, List<String>> peptides = new HashMap<Long, List<String>>();
-        jdbcOperations.query("select prot_id, sequence from peptides order by prot_id",
-                new ResultSetExtractor()
-                    {
-                        @Override
-                        public Object extractData(ResultSet rs) throws SQLException,
-                                DataAccessException
-                        {
-                            long currentProteinID = -1;
-                            ArrayList<String> list = null;
-                            while (rs.next())
-                            {
-                                long proteinID = rs.getLong(1);
-                                if (list == null || proteinID != currentProteinID)
-                                {
-                                    if (list != null)
-                                    {
-                                        list.trimToSize();
-                                    }
-                                    currentProteinID = proteinID;
-                                    list = new ArrayList<String>();
-                                    peptides.put(proteinID, list);
-                                }
-                                list.add(rs.getString(2));
-                            }
-                            return null;
-                        }
-                    });
-        return peptides;
-    }
-
-    private double calculateCoverage(String sequence, List<String> peptides)
-    {
-        Set<String> distinctPeptides = new HashSet<String>(peptides);
-        List<Occurrence> list = OccurrenceUtil.getCoverage(sequence, distinctPeptides);
-        int sumPeptides = 0;
-        for (Occurrence occurrence : list)
-        {
-            sumPeptides += occurrence.getWord().length();
-        }
-        return sumPeptides / (double) sequence.length();
-    }
-
-    private void logMemory()
-    {
-        Runtime runtime = Runtime.getRuntime();
-        long usedMemory = (runtime.totalMemory() - runtime.freeMemory()) / MB;
-        operationLog.info(usedMemory + " MB used, " + runtime.totalMemory() / MB + " MB total");
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/CacheData.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/CacheData.java
deleted file mode 100644
index ebaf25b670ae1342b12499ce78a8f12fa7ae1e8b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/CacheData.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Annotation for methods to cache their return values.
- *
- * @author Franz-Josef Elmer
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.METHOD)
-@Inherited
-public @interface CacheData
-{
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IPhosphoNetXServer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IPhosphoNetXServer.java
deleted file mode 100644
index 102159813051c89ce00f2b088af1b82384a079cf..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IPhosphoNetXServer.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared;
-
-import java.util.List;
-
-import org.springframework.transaction.annotation.Transactional;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.IServer;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.DataSetProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinByExperiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IPhosphoNetXServer extends IServer
-{
-    @Transactional
-    public Vocabulary getTreatmentTypeVocabulary(String sessionToken) throws UserFailureException;
-
-    @Transactional
-    @CacheData
-    public List<AbundanceColumnDefinition> getAbundanceColumnDefinitionsForProteinByExperiment(
-            String sessionToken, TechId experimentID, String treatmentTypeOrNull)
-            throws UserFailureException;
-
-    @Transactional
-    @CacheData
-    public List<ProteinInfo> listProteinsByExperiment(String sessionToken, TechId experimentId,
-            double falseDiscoveryRate, AggregateFunction function, String treatmentTypeCode,
-            boolean aggregateOnOriginal) throws UserFailureException;
-
-    @Transactional
-    @CacheData
-    public List<ProteinSummary> listProteinSummariesByExperiment(String sessionToken,
-            TechId experimentId) throws UserFailureException;
-
-    @Transactional
-    public ProteinByExperiment getProteinByExperiment(String sessionToken, TechId experimentId,
-            TechId proteinReferenceID) throws UserFailureException;
-
-    @Transactional
-    public List<ProteinSequence> listProteinSequencesByProteinReference(String sessionToken,
-            TechId experimentID, TechId proteinReferenceID) throws UserFailureException;
-
-    @Transactional
-    public List<DataSetProtein> listProteinsByExperimentAndReference(String sessionToken,
-            TechId experimentId, TechId proteinReferenceID) throws UserFailureException;
-
-    @Transactional
-    public List<ProteinRelatedSample> listProteinRelatedSamplesByProtein(String sessionToken,
-            TechId experimentID, TechId proteinReferenceID) throws UserFailureException;
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IProteomicsDataServiceInternal.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IProteomicsDataServiceInternal.java
deleted file mode 100644
index 04e941dc98c698b0ee53de946c78da11684550f0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IProteomicsDataServiceInternal.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared;
-
-import java.util.List;
-
-import org.springframework.transaction.annotation.Transactional;
-
-import ch.systemsx.cisd.openbis.generic.shared.IServer;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-public interface IProteomicsDataServiceInternal extends IServer
-{
-    /**
-     * Returns all samples of type MS_INJECTION in group MS_DATA which have a parent sample which the specified user is allow to read.
-     */
-    @Transactional
-    public List<MsInjectionSample> listRawDataSamples(String sessionToken);
-
-    /**
-     * Returns all samples of type MS_INJECTION in group MS_DATA which have a parent sample.
-     */
-    @Transactional
-    public List<MsInjectionSample> listAllRawDataSamples(String sessionToken);
-
-    @Deprecated
-    @Transactional
-    public void processRawData(String sessionToken, String dataSetProcessingKey,
-            long[] rawDataSampleIDs, String dataSetType);
-
-    @Transactional
-    public void processDataSets(String sessionToken, String dataSetProcessingKey,
-            List<String> dataSetCodes);
-
-    @Transactional
-    public List<Experiment> listExperiments(String sessionToken, String experimentTypeCode);
-
-    @Transactional
-    public List<AbstractExternalData> listDataSetsByExperiment(String sessionToken, TechId experimentID);
-
-    @Transactional
-    public void processProteinResultDataSets(String sessionToken, String dataSetProcessingKey,
-            String experimentTypeCode, long[] searchExperimentIDs);
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/ProbabilityToFDRCalculator.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/ProbabilityToFDRCalculator.java
deleted file mode 100644
index ebb6dbd9dd26a637d2f9beba2c77870cd36639d5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/ProbabilityToFDRCalculator.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public final class ProbabilityToFDRCalculator
-{
-    private static final class MappingEntry implements Comparable<ProbabilityToFDRCalculator.MappingEntry>
-    {
-        private final double probability;
-
-        private final double fdr;
-
-        MappingEntry(double probability, double fdr)
-        {
-            this.probability = probability;
-            this.fdr = fdr;
-        }
-
-        @Override
-        public int compareTo(ProbabilityToFDRCalculator.MappingEntry that)
-        {
-            return probability < that.probability ? -1 : (probability > that.probability ? 1
-                    : 0);
-        }
-
-        @Override
-        public String toString()
-        {
-            return probability + " = " + fdr;
-        }
-    }
-
-    private final List<ProbabilityToFDRCalculator.MappingEntry> mappingEntries = new ArrayList<ProbabilityToFDRCalculator.MappingEntry>();
-
-    public void add(double probability, double falseDiscoveryRate)
-    {
-        mappingEntries.add(new MappingEntry(probability, falseDiscoveryRate));
-    }
-
-    public void init()
-    {
-        Collections.sort(mappingEntries);
-    }
-
-    public double calculateFDR(double probability)
-    {
-        if (mappingEntries.isEmpty())
-        {
-            return Double.NaN;
-        }
-        int index = Collections.binarySearch(mappingEntries, new MappingEntry(probability, 0));
-        if (index >= 0)
-        {
-            return mappingEntries.get(index).fdr;
-        }
-        // calculate by linear interpolation
-        int index1 = -index - 1;
-        int index0 = index1 - 1;
-        assert index0 >= 0;
-        ProbabilityToFDRCalculator.MappingEntry m0 = mappingEntries.get(index0);
-        ProbabilityToFDRCalculator.MappingEntry m1 = mappingEntries.get(index1);
-        double scale = (m1.fdr - m0.fdr) / (m1.probability - m0.probability);
-        return m0.fdr + scale * (probability - m0.probability);
-    }
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/ResourceNames.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/ResourceNames.java
deleted file mode 100644
index e1d3f6edb57c908b431f758328220de66f12db59..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/ResourceNames.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ResourceNames
-{
-    private ResourceNames()
-    {
-    }
-
-    public final static String PROTEOMICS_PLUGIN_SERVICE = "proteomics-plugin-service";
-
-    public final static String PROTEOMICS_PLUGIN_SERVER = "proteomics-plugin-server";
-
-    public final static String PROTEOMICS_RAW_DATA_SERVICE_WEB = "proteomics-data-service-web";
-
-    public final static String PROTEOMICS_DAO_FACTORY = "proteomics-dao-factory";
-
-    public final static String PROTEOMICS_BO_FACTORY = "proteomics-bo-factory";
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/IProteomicsDataService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/IProteomicsDataService.java
deleted file mode 100644
index ec18a32bb19cde8b5826648dfe2703e5f0d34ac8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/IProteomicsDataService.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1;
-
-import java.util.List;
-
-import org.springframework.transaction.annotation.Transactional;
-
-import ch.systemsx.cisd.common.api.IRpcService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.api.v1.IProteomicsDataApiFacade;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataSet;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataStoreServerProcessingPluginInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.MsInjectionDataInfo;
-
-/**
- * Interface used by {@link IProteomicsDataApiFacade}.
- * 
- * @author Franz-Josef Elmer
- */
-public interface IProteomicsDataService extends IRpcService
-{
-    /**
-     * Name of this service for which it is registered at the RPC name server.
-     */
-    public static final String SERVICE_NAME = "proteomics-data";
-
-    /**
-     * Service part of the URL to access this service remotely.
-     */
-    public static final String SERVER_URL = "/rmi-" + SERVICE_NAME + "-v1";
-
-    /**
-     * Tries to authenticate specified user with specified password. Returns session token if succeeded otherwise <code>null</code> is returned.
-     */
-    @Transactional
-    public String tryToAuthenticateAtRawDataServer(String userID, String userPassword);
-
-    /**
-     * Logout the session with the specified session token.
-     */
-    @Transactional
-    public void logout(String sessionToken);
-
-    /**
-     * Returns all samples of type MS_INJECTION in space MS_DATA which have a parent sample which the specified user is allowed to read.
-     */
-    @Transactional
-    public List<MsInjectionDataInfo> listRawDataSamples(String sessionToken, String userID);
-
-    /**
-     * Returns all samples of type MS_INJECTION in space MS_DATA which have a parent sample.
-     */
-    @Transactional
-    public List<MsInjectionDataInfo> listAllRawDataSamples(String sessionToken, String userID);
-
-    /**
-     * Lists all processing plugins on DSS.
-     */
-    @Transactional
-    public List<DataStoreServerProcessingPluginInfo> listDataStoreServerProcessingPluginInfos(
-            String sessionToken);
-
-    /**
-     * Processes the data sets of specified samples by the DSS processing plug-in of specified key for the specified user. Implementations should
-     * check that the specified user is allowed to read specified samples.
-     */
-    @Deprecated
-    @Transactional
-    public void processingRawData(String sessionToken, String userID, String dataSetProcessingKey,
-            long[] rawDataSampleIDs, String dataSetType);
-
-    /**
-     * Processes the specified data sets by the DSS processing plug-in of specified key for the specified user. Implementations should check that the
-     * specified user is allowed to read specified data sets.
-     */
-    @Transactional
-    public void processDataSets(String sessionToken, String userID, String dataSetProcessingKey,
-            List<String> dataSetCodes);
-
-    /**
-     * Returns all experiments of type <tt>MS_SEARCH</tt> which the specified user is allowed to read.
-     */
-    @Deprecated
-    @Transactional
-    public List<Experiment> listSearchExperiments(String sessionToken, String userID);
-
-    /**
-     * Returns all experiments of specified type which the specified user is allowed to read.
-     */
-    @Transactional
-    public List<Experiment> listExperiments(String sessionToken, String userID,
-            String experimentTypeCode);
-
-    /**
-     * Returns all data sets of specified experiment which the specified user is allowed to read.
-     */
-    @Transactional
-    public List<DataSet> listDataSetsByExperiment(String sessionToken, String userID,
-            long experimentID);
-
-    /**
-     * Processes the data sets of specified experiments of type <tt>MS_SEARCH</tt> by the DSS processing plug-in of specified key for the specified
-     * user. It will be checked if the experiments are of search experiments and if the user is allowed to read them.
-     */
-    @Deprecated
-    @Transactional
-    public void processSearchData(String sessionToken, String userID, String dataSetProcessingKey,
-            long[] searchExperimentIDs);
-
-    /**
-     * Processes the data sets of specified experiments by the DSS processing plug-in of specified key for the specified user. It will be checked if
-     * the experiments are of specified type and if the user is allowed to read them.
-     */
-    @Transactional
-    public void processProteinResultDataSets(String sessionToken, String userID,
-            String dataSetProcessingKey, String experimentTypeCode, long[] experimentIDs);
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/DataSet.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/DataSet.java
deleted file mode 100644
index c26386280c099379efd4114fbd7cc8a658e1467a..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/DataSet.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Date Set bean with properties, children and parents.
- *
- * @author Franz-Josef Elmer
- */
-public class DataSet implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    private long id;
-
-    private String code;
-
-    private String type;
-
-    private Date registrationDate;
-
-    private Map<PropertyKey, Serializable> properties;
-
-    private Set<DataSet> parents = new HashSet<DataSet>();
-
-    private Set<DataSet> children = new HashSet<DataSet>();
-
-    public final long getId()
-    {
-        return id;
-    }
-
-    public final void setId(long id)
-    {
-        this.id = id;
-    }
-
-    public final String getCode()
-    {
-        return code;
-    }
-
-    public final void setCode(String code)
-    {
-        this.code = code;
-    }
-
-    public final String getType()
-    {
-        return type;
-    }
-
-    public final void setType(String type)
-    {
-        this.type = type;
-    }
-
-    public final Date getRegistrationDate()
-    {
-        return registrationDate;
-    }
-
-    public final void setRegistrationDate(Date registrationDate)
-    {
-        this.registrationDate = registrationDate;
-    }
-
-    public final Map<PropertyKey, Serializable> getProperties()
-    {
-        return properties;
-    }
-
-    public final void setProperties(Map<PropertyKey, Serializable> properties)
-    {
-        this.properties = properties;
-    }
-
-    public final Set<DataSet> getParents()
-    {
-        return parents;
-    }
-
-    public final Set<DataSet> getChildren()
-    {
-        return children;
-    }
-
-    public void addChild(DataSet child)
-    {
-        getChildren().add(child);
-        child.getParents().add(this);
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/DataStoreServerProcessingPluginInfo.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/DataStoreServerProcessingPluginInfo.java
deleted file mode 100644
index 2f1ed5b2a11849f01edd94f491048f6e1d4ea526..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/DataStoreServerProcessingPluginInfo.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Information about a processing plugin on a Data Store Server (DSS).
- *
- * @author Franz-Josef Elmer
- */
-public class DataStoreServerProcessingPluginInfo implements Serializable
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private final String key;
-
-    private final String label;
-
-    private final List<String> datasetTypeCodes;
-
-    /**
-     * Create a new instance for specified key, label and data set type codes.
-     */
-    public DataStoreServerProcessingPluginInfo(String key, String label, List<String> datasetTypeCodes)
-    {
-        this.key = key;
-        this.label = label;
-        this.datasetTypeCodes = Collections.unmodifiableList(new ArrayList<String>(datasetTypeCodes));
-    }
-
-    /**
-     * Returns a unique key of the plugin.
-     */
-    public String getKey()
-    {
-        return key;
-    }
-
-    /**
-     * Returns a human readable name of the plugin.
-     */
-    public String getLabel()
-    {
-        return label;
-    }
-
-    /**
-     * Returns a list data set type codes for all data sets for which the plugin is available.
-     */
-    public List<String> getDatasetTypeCodes()
-    {
-        return datasetTypeCodes;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/Experiment.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/Experiment.java
deleted file mode 100644
index 22280ab490fde7a9b0203fe00bdd358fe3c75168..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/Experiment.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.util.Map;
-
-/**
- * Experiment bean with properties.
- *
- * @author Franz-Josef Elmer
- */
-public class Experiment implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    private long id;
-
-    private String spaceCode;
-
-    private String projectCode;
-
-    private String code;
-
-    private Date registrationDate;
-
-    private Map<PropertyKey, Serializable> properties;
-
-    public final long getId()
-    {
-        return id;
-    }
-
-    public final void setId(long id)
-    {
-        this.id = id;
-    }
-
-    public final String getSpaceCode()
-    {
-        return spaceCode;
-    }
-
-    public final void setSpaceCode(String spaceCode)
-    {
-        this.spaceCode = spaceCode;
-    }
-
-    public final String getProjectCode()
-    {
-        return projectCode;
-    }
-
-    public final void setProjectCode(String projectCode)
-    {
-        this.projectCode = projectCode;
-    }
-
-    public final String getCode()
-    {
-        return code;
-    }
-
-    public final void setCode(String code)
-    {
-        this.code = code;
-    }
-
-    public final Date getRegistrationDate()
-    {
-        return registrationDate;
-    }
-
-    public final void setRegistrationDate(Date registrationDate)
-    {
-        this.registrationDate = registrationDate;
-    }
-
-    public final Map<PropertyKey, Serializable> getProperties()
-    {
-        return properties;
-    }
-
-    public final void setProperties(Map<PropertyKey, Serializable> properties)
-    {
-        this.properties = properties;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/MsInjectionDataInfo.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/MsInjectionDataInfo.java
deleted file mode 100644
index 5ad6c9f5383183d28b399777bc4896e9dd07e5f4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/MsInjectionDataInfo.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Informations about an MS_INJECTION sample and its related biological sample. There are attributes for
- * <ul>
- * <li>MS_INJECTION sample: ID, properties, code and registration date
- * <li>Biological sample: identifier and properties
- * <li>Biological experiment (i.e. experiment of biological sample) if present: identifier and properties
- * <li>Registration dates of the most recently registered data sets for each data set type
- * <li>All data sets including the derived ones of the MS_INJECTION sample with their type, registration date, and properties.
- * </ul>
- *
- * @author Franz-Josef Elmer
- */
-public class MsInjectionDataInfo implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    private long msInjectionSampleID;
-
-    private String msInjectionSampleCode;
-
-    private Date msInjectionSampleRegistrationDate;
-
-    private Map<PropertyKey, Serializable> msInjectionSampleProperties;
-
-    private long biologicalSampleID;
-
-    private String biologicalSampleIdentifier;
-
-    private String biologicalExperimentIdentifier;
-
-    private Experiment biologicalExperiment;
-
-    private Map<PropertyKey, Serializable> biologicalSampleProperties;
-
-    private Set<DataSet> dataSets;
-
-    private Map<String, Date> latestDataSetRegistrationDates;
-
-    public long getMsInjectionSampleID()
-    {
-        return msInjectionSampleID;
-    }
-
-    public void setMsInjectionSampleID(long msInjectionSampleID)
-    {
-        this.msInjectionSampleID = msInjectionSampleID;
-    }
-
-    public String getMsInjectionSampleCode()
-    {
-        return msInjectionSampleCode;
-    }
-
-    public void setMsInjectionSampleCode(String msInjectionSampleCode)
-    {
-        this.msInjectionSampleCode = msInjectionSampleCode;
-    }
-
-    public Date getMsInjectionSampleRegistrationDate()
-    {
-        return msInjectionSampleRegistrationDate;
-    }
-
-    public void setMsInjectionSampleRegistrationDate(Date msInjectionSampleRegistrationDate)
-    {
-        this.msInjectionSampleRegistrationDate = msInjectionSampleRegistrationDate;
-    }
-
-    public Map<PropertyKey, Serializable> getMsInjectionSampleProperties()
-    {
-        return msInjectionSampleProperties;
-    }
-
-    public void setMsInjectionSampleProperties(
-            Map<PropertyKey, Serializable> msInjectionSampleProperties)
-    {
-        this.msInjectionSampleProperties = msInjectionSampleProperties;
-    }
-
-    public long getBiologicalSampleID()
-    {
-        return biologicalSampleID;
-    }
-
-    public void setBiologicalSampleID(long biologicalSampleID)
-    {
-        this.biologicalSampleID = biologicalSampleID;
-    }
-
-    public String getBiologicalSampleIdentifier()
-    {
-        return biologicalSampleIdentifier;
-    }
-
-    public void setBiologicalSampleIdentifier(String biologicalSampleIdentifier)
-    {
-        this.biologicalSampleIdentifier = biologicalSampleIdentifier;
-    }
-
-    public final String getBiologicalExperimentIdentifier()
-    {
-        return biologicalExperimentIdentifier;
-    }
-
-    public final void setBiologicalExperimentIdentifier(String biologicalExperimentIdentifier)
-    {
-        this.biologicalExperimentIdentifier = biologicalExperimentIdentifier;
-    }
-
-    public final Experiment getBiologicalExperiment()
-    {
-        return biologicalExperiment;
-    }
-
-    public final void setBiologicalExperiment(Experiment biologicalExperiment)
-    {
-        this.biologicalExperiment = biologicalExperiment;
-    }
-
-    public Map<PropertyKey, Serializable> getBiologicalSampleProperties()
-    {
-        return biologicalSampleProperties;
-    }
-
-    public void setBiologicalSampleProperties(Map<PropertyKey, Serializable> biologicalSampleProperties)
-    {
-        this.biologicalSampleProperties = biologicalSampleProperties;
-    }
-
-    public final Set<DataSet> getDataSets()
-    {
-        return dataSets;
-    }
-
-    public final void setDataSets(Set<DataSet> dataSets)
-    {
-        this.dataSets = dataSets;
-    }
-
-    public Map<String, Date> getLatestDataSetRegistrationDates()
-    {
-        return latestDataSetRegistrationDates;
-    }
-
-    public void setLatestDataSetRegistrationDates(Map<String, Date> latestDataSetRegistrationDates)
-    {
-        this.latestDataSetRegistrationDates = latestDataSetRegistrationDates;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/PropertyKey.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/PropertyKey.java
deleted file mode 100644
index e38c444fc02da0b9bd8d02e56409a0efe018254f..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/PropertyKey.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto;
-
-import java.io.Serializable;
-
-/**
- * Immutable class of a property key. Two instances are equal if their IDs are equal.
- *
- * @author Franz-Josef Elmer
- */
-public final class PropertyKey implements Serializable
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private final String id;
-
-    private final String label;
-
-    /**
-     * Creates a new instance for specified ID and label.
-     */
-    public PropertyKey(String id, String label)
-    {
-        this.id = id;
-        this.label = label;
-    }
-
-    /**
-     * Returns the ID.
-     */
-    public String getId()
-    {
-        return id;
-    }
-
-    /**
-     * Returns the label.
-     */
-    public String getLabel()
-    {
-        return label;
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (this == obj)
-        {
-            return true;
-        }
-        if (obj instanceof PropertyKey == false)
-        {
-            return false;
-        }
-        PropertyKey key = (PropertyKey) obj;
-        return key.id.equals(id);
-    }
-
-    @Override
-    public int hashCode()
-    {
-        return id.hashCode();
-    }
-
-    /**
-     * Renders this key in the form <code>&lt;label&gt;[&lt;id&gt;]</code>.
-     */
-    @Override
-    public String toString()
-    {
-        return label + "[" + id + "]";
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/package.html b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/package.html
deleted file mode 100644
index 0bdd5dde03bf0939dc3fcf4e4e28d6bb781f9085..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/api/v1/dto/package.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<html>
-<body>
-Data Transfer Objects
-</body>
-</html>
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/CommonConstants.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/CommonConstants.java
deleted file mode 100644
index bc01bc3b1d9eac4933de1895889b56cb9917ab2b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/CommonConstants.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic;
-
-/**
- * Commons constants used in DSS and AS.
- *
- * @author Franz-Josef Elmer
- */
-public class CommonConstants
-{
-
-    public static final String MS_INJECTION_SAMPLE_TYPE_CODE = "MS_INJECTION";
-
-    public static final String BIOLOGICAL_SAMPLE_PREFIX = "BIO";
-
-    public static final String MS_DATA_SPACE = "MS_DATA";
-
-    public static final String PROT_RESULT_DATA_SET_TYPE = "PROT_RESULT";
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AbundanceColumnDefinition.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AbundanceColumnDefinition.java
deleted file mode 100644
index b5283af313987688e2115bc7adae0278bbe48e87..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AbundanceColumnDefinition.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class AbundanceColumnDefinition implements Serializable,
-        Comparable<AbundanceColumnDefinition>
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private List<Long> sampleIDs = new ArrayList<Long>(1);
-
-    private String sampleCode;
-
-    private List<Treatment> treatments;
-
-    public final long getID()
-    {
-        long id = 0;
-        for (Long sampleID : sampleIDs)
-        {
-            id = 37 * id + sampleID;
-        }
-        return id;
-    }
-
-    public final List<Long> getSampleIDs()
-    {
-        return sampleIDs;
-    }
-
-    public final void addSampleIDsOf(AbundanceColumnDefinition definition)
-    {
-        sampleIDs.addAll(definition.getSampleIDs());
-    }
-
-    public final void addSampleID(long sampleID)
-    {
-        sampleIDs.add(sampleID);
-    }
-
-    public final String getSampleCode()
-    {
-        return sampleCode;
-    }
-
-    public final void setSampleCode(String sampleCode)
-    {
-        this.sampleCode = sampleCode;
-    }
-
-    public final List<Treatment> getTreatments()
-    {
-        return treatments;
-    }
-
-    public final void setTreatments(List<Treatment> treatments)
-    {
-        this.treatments = treatments;
-    }
-
-    @Override
-    public int compareTo(AbundanceColumnDefinition that)
-    {
-        if (this.treatments != null && that.treatments != null)
-        {
-            for (int i = 0, n = Math.min(this.treatments.size(), that.treatments.size()); i < n; i++)
-            {
-                Treatment thisTreatment = this.treatments.get(i);
-                Treatment thatTreatment = that.treatments.get(i);
-                int diff = thisTreatment.compareTo(thatTreatment);
-                if (diff != 0)
-                {
-                    return diff;
-                }
-            }
-            int sizeDiff = this.treatments.size() - that.treatments.size();
-            if (sizeDiff != 0)
-            {
-                return sizeDiff;
-            }
-        }
-        if (this.sampleCode != null && that.sampleCode != null)
-        {
-            return this.sampleCode.compareTo(that.sampleCode);
-        }
-        return 0;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AccessionNumberProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AccessionNumberProvider.java
deleted file mode 100644
index 9b3c2dc7d97db56b9ba9470640969ff9c9b3671a..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AccessionNumberProvider.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class AccessionNumberProvider implements Serializable
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private String accessionNumberType;
-
-    private String accessionNumber;
-
-    public final String getAccessionNumberType()
-    {
-        return accessionNumberType;
-    }
-
-    public final void setAccessionNumberType(String accessionNumberType)
-    {
-        this.accessionNumberType = accessionNumberType;
-    }
-
-    public final String getAccessionNumber()
-    {
-        return accessionNumber;
-    }
-
-    public final void setAccessionNumber(String accessionNumber)
-    {
-        this.accessionNumber = accessionNumber;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AggregateFunction.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AggregateFunction.java
deleted file mode 100644
index cf515ba4cbb9b106ddd62df6e7053a5cef73c822..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AggregateFunction.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-import java.util.Arrays;
-
-/**
- * Aggregate functions.
- * 
- * @author Franz-Josef Elmer
- */
-public enum AggregateFunction implements Serializable
-{
-    MEAN("mean")
-    {
-        @Override
-        public double aggregate(double[] values)
-        {
-            return SUM.aggregate(values) / values.length;
-        }
-    },
-    MEDIAN("median")
-    {
-        @Override
-        public double aggregate(double[] values)
-        {
-            Arrays.sort(values);
-            int i = values.length / 2;
-            return values.length % 2 == 0 ? (values[i - 1] + values[i]) / 2 : values[i];
-        }
-    },
-    SUM("sum")
-    {
-        @Override
-        public double aggregate(double[] values)
-        {
-            double sum = 0;
-            for (double value : values)
-            {
-                sum += value;
-            }
-            return sum;
-        }
-    },
-    MIN("minimum")
-    {
-        @Override
-        public double aggregate(double[] values)
-        {
-            double min = Double.MAX_VALUE;
-            for (double value : values)
-            {
-                min = Math.min(min, value);
-            }
-            return min;
-        }
-    },
-    MAX("maximum")
-    {
-        @Override
-        public double aggregate(double[] values)
-        {
-            double max = -Double.MAX_VALUE;
-            for (double value : values)
-            {
-                max = Math.max(max, value);
-            }
-            return max;
-        }
-    },
-    COUNT("count")
-    {
-        @Override
-        public double aggregate(double[] values)
-        {
-            return values.length;
-        }
-    },
-    ;
-
-    private final String label;
-
-    private AggregateFunction(String label)
-    {
-        this.label = label;
-    }
-
-    public final String getLabel()
-    {
-        return label;
-    }
-
-    /**
-     * Aggregates the specified array of numbers to one number.
-     * 
-     * @param values an array with at least one value.
-     */
-    public abstract double aggregate(double[] values);
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AminoAcid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AminoAcid.java
deleted file mode 100644
index 65afabc07f7195e3d22c43153abe88d11098eb03..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AminoAcid.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-/**
- * Amino acid symbols and names.
- *
- * @author Franz-Josef Elmer
- */
-public enum AminoAcid
-{
-    A("Alanine", "Ala"),
-    R("Arginine", "Arg"),
-    N("Asparagine", "Asn"),
-    D("Aspartic acid", "Asp"),
-    C("Cysteine", "Cys"),
-    E("Glutamic acid", "Glu"),
-    Q("Glutamine", "Gln"),
-    G("Glycine", "Gly"),
-    H("Histidine", "His"),
-    I("Isoleucine", "Ile"),
-    L("Leucine", "Leu"),
-    K("Lysine", "Lys"),
-    M("Methionine", "Met"),
-    F("Phenylalanine", "Phe"),
-    P("Proline", "Pro"),
-    S("Serine", "Ser"),
-    T("Threonine", "Thr"),
-    W("Tryptophan", "Trp"),
-    Y("Tyrosine", "Tyr"),
-    V("Valine", "Val");
-
-    private final String name;
-
-    private final String longSymbol;
-
-    private AminoAcid(String name, String longSymbol)
-    {
-        this.name = name;
-        this.longSymbol = longSymbol;
-    }
-
-    public String getName()
-    {
-        return name;
-    }
-
-    public String getLongSymbol()
-    {
-        return longSymbol;
-    }
-
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/DataSetProtein.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/DataSetProtein.java
deleted file mode 100644
index 24bcfe9de562a1785b2e33ff3ef35198e959b2c9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/DataSetProtein.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class DataSetProtein implements Serializable
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private String dataSetPermID;
-
-    private TechId dataSetID;
-
-    private TechId proteinID;
-
-    private String sequenceName;
-
-    private int peptideCount;
-
-    private double falseDiscoveryRate;
-
-    public final String getDataSetPermID()
-    {
-        return dataSetPermID;
-    }
-
-    public final void setDataSetPermID(String dataSetPermID)
-    {
-        this.dataSetPermID = dataSetPermID;
-    }
-
-    public final TechId getDataSetID()
-    {
-        return dataSetID;
-    }
-
-    public final void setDataSetID(TechId dataSetID)
-    {
-        this.dataSetID = dataSetID;
-    }
-
-    public final TechId getProteinID()
-    {
-        return proteinID;
-    }
-
-    public final void setProteinID(TechId proteinID)
-    {
-        this.proteinID = proteinID;
-    }
-
-    public final String getSequenceName()
-    {
-        return sequenceName;
-    }
-
-    public final void setSequenceName(String sequenceName)
-    {
-        this.sequenceName = sequenceName;
-    }
-
-    public final int getPeptideCount()
-    {
-        return peptideCount;
-    }
-
-    public final void setPeptideCount(int peptideCount)
-    {
-        this.peptideCount = peptideCount;
-    }
-
-    public final double getFalseDiscoveryRate()
-    {
-        return falseDiscoveryRate;
-    }
-
-    public final void setFalseDiscoveryRate(double falseDiscoveryRate)
-    {
-        this.falseDiscoveryRate = falseDiscoveryRate;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/IBasicProteinInfo.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/IBasicProteinInfo.java
deleted file mode 100644
index 03174e43498357553b6db4edfad417c90206c7dc..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/IBasicProteinInfo.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-
-/**
- * Common interface of DTOs with protein informations.
- *
- * @author Franz-Josef Elmer
- */
-public interface IBasicProteinInfo
-{
-
-    public TechId getId();
-
-    public String getAccessionNumber();
-
-    public String getDescription();
-
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/IndistinguishableProteinInfo.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/IndistinguishableProteinInfo.java
deleted file mode 100644
index 2aa9840b46eefdf7138b2d59f81164342c9adcaa..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/IndistinguishableProteinInfo.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class IndistinguishableProteinInfo extends AccessionNumberProvider
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private String sequence;
-
-    private String description;
-
-    private double coverage;
-
-    public final String getSequence()
-    {
-        return sequence;
-    }
-
-    public final void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-    public final String getDescription()
-    {
-        return description;
-    }
-
-    public final void setDescription(String description)
-    {
-        this.description = description;
-    }
-
-    public void setCoverage(double coverage)
-    {
-        this.coverage = coverage;
-    }
-
-    public double getCoverage()
-    {
-        return coverage;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/Occurrence.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/Occurrence.java
deleted file mode 100644
index d6d48313e6914c049f1381fc075d75f40b70dfef..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/Occurrence.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-/**
- * The occurrence of a word in a text. Occurrences are comparable by their start indexes.
- * 
- * @author Tomasz Pylak
- */
-public class Occurrence implements Comparable<Occurrence>
-{
-    private final String word;
-
-    private final int startIndex;
-
-    /**
-     * Creates a new instance of the specified word which appears at the specified start index.
-     */
-    public Occurrence(String word, int startIndex)
-    {
-        this.word = word;
-        this.startIndex = startIndex;
-    }
-
-    public String getWord()
-    {
-        return word;
-    }
-
-    public int getStartIndex()
-    {
-        return startIndex;
-    }
-
-    public int getEndIndex()
-    {
-        return startIndex + word.length() - 1;
-    }
-
-    @Override
-    public int compareTo(Occurrence o)
-    {
-        return getStartIndex() - o.getStartIndex();
-    }
-
-    @Override
-    public String toString()
-    {
-        return "[" + word + "@" + startIndex + "]";
-    }
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/OccurrenceUtil.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/OccurrenceUtil.java
deleted file mode 100644
index 37ec915c463858a3809ecd3fa9fcaf6067c941b0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/OccurrenceUtil.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Helper class for calculating peptide on protein coverage.
- *
- * @author Franz-Josef Elmer
- */
-public class OccurrenceUtil
-{
-    /**
-     * Returns a list of non-overlapping sequences built by the specified peptides covering the specified protein.
-     */
-    public static List<Occurrence> getCoverage(String protein, Collection<String> peptides)
-    {
-        ArrayList<Occurrence> list = new ArrayList<Occurrence>();
-        List<Occurrence> sortedList = calcSortedOccurrences(protein, peptides);
-        if (sortedList.isEmpty() == false)
-        {
-            Occurrence current = sortedList.get(0);
-            for (int i = 1; i < sortedList.size(); i++)
-            {
-                String currentPeptide = current.getWord();
-                Occurrence next = sortedList.get(i);
-                int diff = next.getStartIndex() - current.getStartIndex();
-                if (current.getWord().length() < diff)
-                {
-                    list.add(current);
-                    current = next;
-                } else if (current.getEndIndex() < next.getEndIndex())
-                {
-                    String mergedPeptides = currentPeptide.substring(0, diff) + next.getWord();
-                    current = new Occurrence(mergedPeptides, current.getStartIndex());
-                }
-            }
-            list.add(current);
-        }
-        return list;
-    }
-
-    // calculates a list of all words occurences, sorts it be starting position
-    private static List<Occurrence> calcSortedOccurrences(String protein, Collection<String> peptides)
-    {
-        List<Occurrence> result = new ArrayList<Occurrence>();
-        for (String word : peptides)
-        {
-            result.addAll(findAllOccurrences(protein, word));
-        }
-        Collections.sort(result);
-        return result;
-    }
-
-    public static List<Occurrence> findAllOccurrences(String protein, String peptide)
-    {
-        List<Occurrence> result = new ArrayList<Occurrence>();
-        int startIndex = 0;
-        while (true)
-        {
-            int occurrenceIndex = protein.indexOf(peptide, startIndex);
-            if (occurrenceIndex == -1)
-            {
-                break;
-            }
-            result.add(new Occurrence(peptide, occurrenceIndex));
-            startIndex = occurrenceIndex + 1; // maybe the word overlaps with itself?
-        }
-        Collections.sort(result);
-        return result;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/Peptide.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/Peptide.java
deleted file mode 100644
index d38fe54e9d78182e6c908a651166b0a2b1853613..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/Peptide.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * Peptide sequence and optional modifications.
- * 
- * @author Tomasz Pylak
- */
-public class Peptide implements Serializable
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private String sequence;
-
-    private List<PeptideModification> modifications = new ArrayList<PeptideModification>();
-
-    public String getSequence()
-    {
-        return sequence;
-    }
-
-    public void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-    public List<PeptideModification> getModifications()
-    {
-        return modifications;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/PeptideModification.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/PeptideModification.java
deleted file mode 100644
index 4a16ac6928c34a53f90e8c35cad0753aa3ac7e27..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/PeptideModification.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * Position and mass of a modified amino acid in a peptide.
- *
- * @author Franz-Josef Elmer
- */
-public class PeptideModification implements Serializable
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private int position;
-
-    private double mass;
-
-    public int getPosition()
-    {
-        return position;
-    }
-
-    public void setPosition(int position)
-    {
-        this.position = position;
-    }
-
-    public double getMass()
-    {
-        return mass;
-    }
-
-    public void setMass(double mass)
-    {
-        this.mass = mass;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinByExperiment.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinByExperiment.java
deleted file mode 100644
index 842a9de87b678669ce9cd6cc11046bfa3d530f12..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinByExperiment.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinByExperiment extends AccessionNumberProvider implements IBasicProteinInfo
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private TechId id;
-
-    private String description;
-
-    private ProteinDetails details;
-
-    @Override
-    public final String getDescription()
-    {
-        return description;
-    }
-
-    public final void setDescription(String description)
-    {
-        this.description = description;
-    }
-
-    public ProteinDetails getDetails()
-    {
-        return details;
-    }
-
-    public void setDetails(ProteinDetails details)
-    {
-        this.details = details;
-    }
-
-    @Override
-    public final TechId getId()
-    {
-        return id;
-    }
-
-    public final void setId(TechId id)
-    {
-        this.id = id;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinDetails.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinDetails.java
deleted file mode 100644
index 2edd1672ba6a1e4871f70de5798af47e8aab199f..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinDetails.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Tomasz Pylak
- */
-public class ProteinDetails implements Serializable
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private String sequence;
-
-    private String databaseNameAndVersion;
-
-    private double probability;
-
-    private double coverage;
-
-    private double falseDiscoveryRate;
-
-    private String dataSetPermID;
-
-    private Long dataSetTechID;
-
-    private String dataSetTypeCode;
-
-    private TechId proteinID;
-
-    private List<Peptide> peptides;
-
-    private List<IndistinguishableProteinInfo> indistinguishableProteinInfos;
-
-    public String getSequence()
-    {
-        return sequence;
-    }
-
-    public void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-    public String getDatabaseNameAndVersion()
-    {
-        return databaseNameAndVersion;
-    }
-
-    public void setDatabaseNameAndVersion(String databaseNameAndVersion)
-    {
-        this.databaseNameAndVersion = databaseNameAndVersion;
-    }
-
-    public double getFalseDiscoveryRate()
-    {
-        return falseDiscoveryRate;
-    }
-
-    public double getProbability()
-    {
-        return probability;
-    }
-
-    public void setProbability(double probability)
-    {
-        this.probability = probability;
-    }
-
-    public void setCoverage(double coverage)
-    {
-        this.coverage = coverage;
-    }
-
-    public double getCoverage()
-    {
-        return coverage;
-    }
-
-    public void setFalseDiscoveryRate(double falseDiscoveryRate)
-    {
-        this.falseDiscoveryRate = falseDiscoveryRate;
-    }
-
-    public String getDataSetPermID()
-    {
-        return dataSetPermID;
-    }
-
-    public void setDataSetPermID(String dataSetPermID)
-    {
-        this.dataSetPermID = dataSetPermID;
-    }
-
-    public final TechId getProteinID()
-    {
-        return proteinID;
-    }
-
-    public final void setProteinID(TechId proteinID)
-    {
-        this.proteinID = proteinID;
-    }
-
-    public List<Peptide> getPeptides()
-    {
-        return peptides;
-    }
-
-    public void setPeptides(List<Peptide> peptides)
-    {
-        this.peptides = peptides;
-    }
-
-    public Long getDataSetTechID()
-    {
-        return dataSetTechID;
-    }
-
-    public void setDataSetTechID(Long dataSetTechID)
-    {
-        this.dataSetTechID = dataSetTechID;
-    }
-
-    public String getDataSetTypeCode()
-    {
-        return dataSetTypeCode;
-    }
-
-    public void setDataSetTypeCode(String dataSetTypeCode)
-    {
-        this.dataSetTypeCode = dataSetTypeCode;
-    }
-
-    public void setIndistinguishableProteinInfos(
-            List<IndistinguishableProteinInfo> indistinguishableProteinInfos)
-    {
-        this.indistinguishableProteinInfos = indistinguishableProteinInfos;
-    }
-
-    public List<IndistinguishableProteinInfo> getIndistinguishableProteinInfos()
-    {
-        return indistinguishableProteinInfos;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinInfo.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinInfo.java
deleted file mode 100644
index 10c4a395c4e98dd957ef4eb30c66f965f7bdb72d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinInfo.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-import java.util.Map;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinInfo implements Serializable, IBasicProteinInfo
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private TechId id;
-
-    private String accessionNumber;
-
-    private TechId experimentID;
-
-    private String dataSetPermID;
-
-    private String description;
-
-    private double coverage;
-
-    private Map<Long, Double> abundances;
-
-    @Override
-    public final TechId getId()
-    {
-        return id;
-    }
-
-    public final void setId(TechId id)
-    {
-        this.id = id;
-    }
-
-    public final TechId getExperimentID()
-    {
-        return experimentID;
-    }
-
-    public final void setExperimentID(TechId experimentID)
-    {
-        this.experimentID = experimentID;
-    }
-
-    public final String getDataSetPermID()
-    {
-        return dataSetPermID;
-    }
-
-    public final void setDataSetPermID(String dataSetPermID)
-    {
-        this.dataSetPermID = dataSetPermID;
-    }
-
-    @Override
-    public final String getAccessionNumber()
-    {
-        return accessionNumber;
-    }
-
-    public final void setAccessionNumber(String accessionNumber)
-    {
-        this.accessionNumber = accessionNumber;
-    }
-
-    @Override
-    public final String getDescription()
-    {
-        return description;
-    }
-
-    public final void setDescription(String description)
-    {
-        this.description = description;
-    }
-
-    public final Map<Long, Double> getAbundances()
-    {
-        return abundances;
-    }
-
-    public final void setAbundances(Map<Long, Double> abundances)
-    {
-        this.abundances = abundances;
-    }
-
-    public void setCoverage(double coverage)
-    {
-        this.coverage = coverage;
-    }
-
-    public double getCoverage()
-    {
-        return coverage;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinRelatedSample.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinRelatedSample.java
deleted file mode 100644
index d1198c0e951183e160d238b9b1151ddc070c2c74..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinRelatedSample.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithProperties;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * Sample related to a protein. Contains information about abundance and amino-acid modification.
- *
- * @author Franz-Josef Elmer
- */
-public class ProteinRelatedSample implements Serializable, IEntityInformationHolderWithProperties
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private Long id;
-
-    private String permId;
-
-    private String code;
-
-    private String identifier;
-
-    private BasicEntityType entityType;
-
-    private List<IEntityProperty> properties;
-
-    private Double abundance;
-
-    private char modifiedAminoAcid;
-
-    private Long modificationPosition;
-
-    private Double modificationMass;
-
-    private Double modificationFraction;
-
-    @Override
-    public Long getId()
-    {
-        return id;
-    }
-
-    public void setId(Long id)
-    {
-        this.id = id;
-    }
-
-    @Override
-    public String getPermId()
-    {
-        return permId;
-    }
-
-    public void setPermId(String permId)
-    {
-        this.permId = permId;
-    }
-
-    @Override
-    public String getCode()
-    {
-        return code;
-    }
-
-    public void setCode(String code)
-    {
-        this.code = code;
-    }
-
-    @Override
-    public BasicEntityType getEntityType()
-    {
-        return entityType;
-    }
-
-    public void setEntityType(BasicEntityType entityType)
-    {
-        this.entityType = entityType;
-    }
-
-    @Override
-    public String getIdentifier()
-    {
-        return identifier;
-    }
-
-    public void setIdentifier(String identifier)
-    {
-        this.identifier = identifier;
-    }
-
-    public Double getAbundance()
-    {
-        return abundance;
-    }
-
-    public void setAbundance(Double abundance)
-    {
-        this.abundance = abundance;
-    }
-
-    public char getModifiedAminoAcid()
-    {
-        return modifiedAminoAcid;
-    }
-
-    public void setModifiedAminoAcid(char modifiedAminoAcid)
-    {
-        this.modifiedAminoAcid = modifiedAminoAcid;
-    }
-
-    public Long getModificationPosition()
-    {
-        return modificationPosition;
-    }
-
-    public void setModificationPosition(Long modificationPosition)
-    {
-        this.modificationPosition = modificationPosition;
-    }
-
-    public Double getModificationMass()
-    {
-        return modificationMass;
-    }
-
-    public void setModificationMass(Double modificationMass)
-    {
-        this.modificationMass = modificationMass;
-    }
-
-    public Double getModificationFraction()
-    {
-        return modificationFraction;
-    }
-
-    public void setModificationFraction(Double modificationFraction)
-    {
-        this.modificationFraction = modificationFraction;
-    }
-
-    @Override
-    public EntityKind getEntityKind()
-    {
-        return EntityKind.SAMPLE;
-    }
-
-    @Override
-    public List<IEntityProperty> getProperties()
-    {
-        return properties;
-    }
-
-    public void setProperties(List<IEntityProperty> properties)
-    {
-        this.properties = properties;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinSequence.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinSequence.java
deleted file mode 100644
index 7f9a97bd49449a6fb2021f3e07971cce41443a49..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinSequence.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinSequence implements Serializable
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private String shortName;
-
-    private TechId id;
-
-    private TechId databaseID;
-
-    private String sequence;
-
-    private String databaseNameAndVersion;
-
-    public final String getShortName()
-    {
-        return shortName;
-    }
-
-    public final void setShortName(String version)
-    {
-        this.shortName = version;
-    }
-
-    public final TechId getId()
-    {
-        return id;
-    }
-
-    public final void setId(TechId id)
-    {
-        this.id = id;
-    }
-
-    public final TechId getDatabaseID()
-    {
-        return databaseID;
-    }
-
-    public final void setDatabaseID(TechId databaseID)
-    {
-        this.databaseID = databaseID;
-    }
-
-    public final String getSequence()
-    {
-        return sequence;
-    }
-
-    public final void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-    public final String getDatabaseNameAndVersion()
-    {
-        return databaseNameAndVersion;
-    }
-
-    public final void setDatabaseNameAndVersion(String databaseNameAndVersion)
-    {
-        this.databaseNameAndVersion = databaseNameAndVersion;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinSummary.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinSummary.java
deleted file mode 100644
index db708980a9f4eb632357246a66845b9037bdb743..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/ProteinSummary.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinSummary implements Serializable
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private double fdr;
-
-    private int proteinCount;
-
-    private int decoyProteinCount;
-
-    private int peptideCount;
-
-    private int decoyPeptideCount;
-
-    public double getFDR()
-    {
-        return fdr;
-    }
-
-    public void setFDR(double fdr)
-    {
-        this.fdr = fdr;
-    }
-
-    public int getProteinCount()
-    {
-        return proteinCount;
-    }
-
-    public void setProteinCount(int proteinCount)
-    {
-        this.proteinCount = proteinCount;
-    }
-
-    public int getPeptideCount()
-    {
-        return peptideCount;
-    }
-
-    public void setPeptideCount(int peptideCount)
-    {
-        this.peptideCount = peptideCount;
-    }
-
-    public void setDecoyProteinCount(int decoyProteinCount)
-    {
-        this.decoyProteinCount = decoyProteinCount;
-    }
-
-    public int getDecoyProteinCount()
-    {
-        return decoyProteinCount;
-    }
-
-    public void setDecoyPeptideCount(int decoyPeptideCount)
-    {
-        this.decoyPeptideCount = decoyPeptideCount;
-    }
-
-    public int getDecoyPeptideCount()
-    {
-        return decoyPeptideCount;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/RawDataSampleGridIDs.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/RawDataSampleGridIDs.java
deleted file mode 100644
index 35e9064d0fbe5e776aca3c547235ac6525e919a3..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/RawDataSampleGridIDs.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class RawDataSampleGridIDs
-{
-    public static final String EXPERIMENT = "EXPERIMENT";
-
-    public static final String PARENT = "PARENT";
-
-    public static final String REGISTRATION_DATE = "REGISTRATION_DATE";
-
-    public static final String CODE = "CODE";
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/SampleWithPropertiesAndAbundance.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/SampleWithPropertiesAndAbundance.java
deleted file mode 100644
index a91dfd0f7861564d8fdd2a145017cf8263481c00..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/SampleWithPropertiesAndAbundance.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-import java.util.List;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithPermId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityPropertiesHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class SampleWithPropertiesAndAbundance implements Serializable,
-        IEntityInformationHolderWithPermId, IEntityPropertiesHolder
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private Long id;
-
-    private String permId;
-
-    private String identifier;
-
-    private String code;
-
-    private SampleType sampleType;
-
-    private List<IEntityProperty> properties;
-
-    private double abundance;
-
-    @Override
-    public final Long getId()
-    {
-        return id;
-    }
-
-    public final void setId(Long id)
-    {
-        this.id = id;
-    }
-
-    public final String getIdentifier()
-    {
-        return identifier;
-    }
-
-    public final void setIdentifier(String identifier)
-    {
-        this.identifier = identifier;
-    }
-
-    @Override
-    public final String getCode()
-    {
-        return code;
-    }
-
-    public void setCode(final String code)
-    {
-        this.code = code;
-    }
-
-    @Override
-    public EntityType getEntityType()
-    {
-        return getSampleType();
-    }
-
-    @Override
-    public EntityKind getEntityKind()
-    {
-        return EntityKind.SAMPLE;
-    }
-
-    public SampleType getSampleType()
-    {
-        return sampleType;
-    }
-
-    public void setSampleType(final SampleType sampleType)
-    {
-        this.sampleType = sampleType;
-    }
-
-    @Override
-    public List<IEntityProperty> getProperties()
-    {
-        return properties;
-    }
-
-    public final void setProperties(List<IEntityProperty> properties)
-    {
-        this.properties = properties;
-    }
-
-    public final double getAbundance()
-    {
-        return abundance;
-    }
-
-    public final void setAbundance(double abundance)
-    {
-        this.abundance = abundance;
-    }
-
-    @Override
-    public String getPermId()
-    {
-        return permId;
-    }
-
-    public void setPermId(String permId)
-    {
-        this.permId = permId;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/Treatment.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/Treatment.java
deleted file mode 100644
index 1b2e630e2b6b9f7af6424461b268e9f966ef0f5e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/Treatment.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.io.Serializable;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class Treatment implements Serializable, Comparable<Treatment>
-{
-    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-
-    private String value;
-
-    private String type;
-
-    private String typeCode;
-
-    private String valueType;
-
-    public final String getValue()
-    {
-        return value;
-    }
-
-    public final void setValue(String value)
-    {
-        this.value = value;
-    }
-
-    public final String getValueType()
-    {
-        return valueType;
-    }
-
-    public final void setValueType(String valueType)
-    {
-        this.valueType = valueType;
-    }
-
-    public final String getType()
-    {
-        return type;
-    }
-
-    public final void setType(String type)
-    {
-        this.type = type;
-    }
-
-    public final String getTypeCode()
-    {
-        return typeCode;
-    }
-
-    public final void setTypeCode(String typeCode)
-    {
-        this.typeCode = typeCode;
-    }
-
-    public final String getLabel()
-    {
-        return value + " " + type;
-    }
-
-    @Override
-    public int compareTo(Treatment that)
-    {
-        int typeComparisonResult = this.type.toLowerCase().compareTo(that.type.toLowerCase());
-        if (typeComparisonResult != 0)
-        {
-            return typeComparisonResult;
-        }
-        double thisNumber = convert(this.value);
-        double thatNumber = convert(that.value);
-        if (Double.isNaN(thisNumber) || Double.isNaN(thatNumber))
-        {
-            return this.value.compareTo(that.value);
-        }
-        return Double.compare(thisNumber, thatNumber);
-    }
-
-    private double convert(String numberOrString)
-    {
-        try
-        {
-            return Double.parseDouble(numberOrString);
-        } catch (NumberFormatException e)
-        {
-            return Double.NaN;
-        }
-    }
-
-    @Override
-    public String toString()
-    {
-        return getLabel();
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/AbstractDTOWithID.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/AbstractDTOWithID.java
deleted file mode 100644
index 1151a854d381c9b4f9857a7e90cfaaf59827ce04..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/AbstractDTOWithID.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import java.io.Serializable;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-abstract class AbstractDTOWithID implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("id")
-    private long id;
-
-    public final long getId()
-    {
-        return id;
-    }
-
-    public final void setId(long id)
-    {
-        this.id = id;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/AbstractSample.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/AbstractSample.java
deleted file mode 100644
index e1759e519c657b0627f871b9118e85181ddb10c1..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/AbstractSample.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * Abstract super class of sample.
- *
- * @author Franz-Josef Elmer
- */
-public abstract class AbstractSample extends AbstractDTOWithID
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("perm_id")
-    private String samplePermID;
-
-    public final String getSamplePermID()
-    {
-        return samplePermID;
-    }
-
-    public final void setSamplePermID(String samplePermID)
-    {
-        this.samplePermID = samplePermID;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/IdentifiedProtein.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/IdentifiedProtein.java
deleted file mode 100644
index 8ad58fd5700db6593e127446f22d7232b0c468d9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/IdentifiedProtein.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class IdentifiedProtein extends AbstractDTOWithID
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("data_set_id")
-    private long dataSetID;
-
-    @ResultColumn("data_set_perm_id")
-    private String dataSetPermID;
-
-    @ResultColumn("protein_id")
-    private long proteinID;
-
-    @ResultColumn("peptide_count")
-    private int peptideCount;
-
-    @ResultColumn("amino_acid_sequence")
-    private String sequence;
-
-    @ResultColumn("db_id")
-    private long databaseID;
-
-    @ResultColumn("name_and_version")
-    private String databaseNameAndVersion;
-
-    @ResultColumn("probability")
-    private double probability;
-
-    @ResultColumn("coverage")
-    private double coverage;
-
-    private double falseDiscoveryRate;
-
-    public final String getDataSetPermID()
-    {
-        return dataSetPermID;
-    }
-
-    public final void setDataSetPermID(String dataSetPermID)
-    {
-        this.dataSetPermID = dataSetPermID;
-    }
-
-    public final int getPeptideCount()
-    {
-        return peptideCount;
-    }
-
-    public final void setPeptideCount(int accessionNumber)
-    {
-        this.peptideCount = accessionNumber;
-    }
-
-    public final String getSequence()
-    {
-        return sequence;
-    }
-
-    public final void setSequence(String description)
-    {
-        this.sequence = description;
-    }
-
-    public final long getDataSetID()
-    {
-        return dataSetID;
-    }
-
-    public final void setDataSetID(long dataSetID)
-    {
-        this.dataSetID = dataSetID;
-    }
-
-    public final long getProteinID()
-    {
-        return proteinID;
-    }
-
-    public final void setProteinID(long proteinID)
-    {
-        this.proteinID = proteinID;
-    }
-
-    public final double getProbability()
-    {
-        return probability;
-    }
-
-    public final void setProbability(double probability)
-    {
-        this.probability = probability;
-    }
-
-    public void setCoverage(double coverage)
-    {
-        this.coverage = coverage;
-    }
-
-    public double getCoverage()
-    {
-        return coverage;
-    }
-
-    public final double getFalseDiscoveryRate()
-    {
-        return falseDiscoveryRate;
-    }
-
-    public final void setFalseDiscoveryRate(double falseDiscoveryRate)
-    {
-        this.falseDiscoveryRate = falseDiscoveryRate;
-    }
-
-    public final long getDatabaseID()
-    {
-        return databaseID;
-    }
-
-    public final void setDatabase(long databaseID)
-    {
-        this.databaseID = databaseID;
-    }
-
-    public final String getDatabaseNameAndVersion()
-    {
-        return databaseNameAndVersion;
-    }
-
-    public final void setDatabaseNameAndVersion(String databaseNameAndVersion)
-    {
-        this.databaseNameAndVersion = databaseNameAndVersion;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/IndistinguishableProtein.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/IndistinguishableProtein.java
deleted file mode 100644
index 874b525c03df1cd725b2711dea58bf3145a2f9aa..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/IndistinguishableProtein.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class IndistinguishableProtein extends ProteinReference
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("amino_acid_sequence")
-    private String sequence;
-
-    @ResultColumn("coverage")
-    private double coverage;
-
-    public void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-    public String getSequence()
-    {
-        return sequence;
-    }
-
-    public void setCoverage(double coverage)
-    {
-        this.coverage = coverage;
-    }
-
-    public double getCoverage()
-    {
-        return coverage;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/MsInjectionSample.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/MsInjectionSample.java
deleted file mode 100644
index 5f3b22888cc8a8242fdec322ce5fc55c1826bf90..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/MsInjectionSample.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class MsInjectionSample
-{
-    private final Sample sample;
-
-    private final Map<String, AbstractExternalData> latestDataSets = new LinkedHashMap<String, AbstractExternalData>();
-
-    private final List<AbstractExternalData> dataSets;
-
-    public MsInjectionSample(Sample sample, List<AbstractExternalData> dataSets)
-    {
-        this.sample = sample;
-        this.dataSets = dataSets;
-        add(dataSets);
-    }
-
-    private void add(Collection<AbstractExternalData> datasets)
-    {
-        if (datasets != null)
-        {
-            for (AbstractExternalData dataSet : datasets)
-            {
-                addLatestDataSet(dataSet);
-                add(dataSet.getChildren());
-            }
-        }
-    }
-
-    public Sample getSample()
-    {
-        return sample;
-    }
-
-    public final List<AbstractExternalData> getDataSets()
-    {
-        return dataSets;
-    }
-
-    public Map<String, AbstractExternalData> getLatestDataSets()
-    {
-        return latestDataSets;
-    }
-
-    private void addLatestDataSet(AbstractExternalData dataSet)
-    {
-        String dataSetTypeCode = dataSet.getDataSetType().getCode();
-        Date registrationDate = dataSet.getRegistrationDate();
-        AbstractExternalData latestDataSet = latestDataSets.get(dataSetTypeCode);
-        if (latestDataSet == null
-                || latestDataSet.getRegistrationDate().getTime() < registrationDate.getTime())
-        {
-            latestDataSets.put(dataSetTypeCode, dataSet);
-        }
-    }
-
-    @Override
-    public String toString()
-    {
-        return sample.getIdentifier() + ":" + latestDataSets;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/PeptideWithModification.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/PeptideWithModification.java
deleted file mode 100644
index 9258feb2f41aa0d02bab574099f4eca661828354..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/PeptideWithModification.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class PeptideWithModification extends AbstractDTOWithID
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("sequence")
-    private String sequence;
-
-    @ResultColumn("pos")
-    private Integer position;
-
-    @ResultColumn("mass")
-    private Double mass;
-
-    public final String getSequence()
-    {
-        return sequence;
-    }
-
-    public final void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-    public Integer getPosition()
-    {
-        return position;
-    }
-
-    public void setPosition(Integer position)
-    {
-        this.position = position;
-    }
-
-    public Double getMass()
-    {
-        return mass;
-    }
-
-    public void setMass(Double mass)
-    {
-        this.mass = mass;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProbabilityFDRMapping.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProbabilityFDRMapping.java
deleted file mode 100644
index f3f365e9495d4fd2e49493f4cd167aeeddf4773c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProbabilityFDRMapping.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProbabilityFDRMapping
-{
-    @ResultColumn("probability")
-    private double probability;
-
-    @ResultColumn("false_discovery_rate")
-    private double falseDiscoveryRate;
-
-    public final double getProbability()
-    {
-        return probability;
-    }
-
-    public final void setProbability(double probability)
-    {
-        this.probability = probability;
-    }
-
-    public final double getFalseDiscoveryRate()
-    {
-        return falseDiscoveryRate;
-    }
-
-    public final void setFalseDiscoveryRate(double falseDiscoveryRate)
-    {
-        this.falseDiscoveryRate = falseDiscoveryRate;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinAbundance.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinAbundance.java
deleted file mode 100644
index 348751605172f4b15eacf0df3ccbf20249662434..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinAbundance.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import java.io.Serializable;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinAbundance extends AbstractDTOWithID implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("value")
-    private double abundance;
-
-    @ResultColumn("perm_id")
-    private String samplePermID;
-
-    public double getAbundance()
-    {
-        return abundance;
-    }
-
-    public void setAbundance(double abundance)
-    {
-        this.abundance = abundance;
-    }
-
-    public String getSamplePermID()
-    {
-        return samplePermID;
-    }
-
-    public void setSampleID(String samplePermID)
-    {
-        this.samplePermID = samplePermID;
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReference.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReference.java
deleted file mode 100644
index ef998e95d3c710f2773a2bbc5c39ce89fe83592a..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReference.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import java.io.Serializable;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinReference extends AbstractDTOWithID implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("accession_number")
-    private String accessionNumber;
-
-    @ResultColumn("description")
-    private String description;
-
-    public final String getAccessionNumber()
-    {
-        return accessionNumber;
-    }
-
-    public final void setAccessionNumber(String accessionNumber)
-    {
-        this.accessionNumber = accessionNumber;
-    }
-
-    public final String getDescription()
-    {
-        return description;
-    }
-
-    public final void setDescription(String description)
-    {
-        this.description = description;
-    }
-
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReferenceWithProbability.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReferenceWithProbability.java
deleted file mode 100644
index 8d30c84c2903577bb751ec218945059303479080..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReferenceWithProbability.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import java.io.Serializable;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinReferenceWithProbability extends ProteinReference implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("data_set_id")
-    private long dataSetID;
-
-    @ResultColumn("probability")
-    private double probability;
-
-    @ResultColumn("coverage")
-    private double coverage;
-
-    @ResultColumn("abundance")
-    private Double abundance;
-
-    @ResultColumn("sample_perm_id")
-    private String samplePermID;
-
-    public final long getDataSetID()
-    {
-        return dataSetID;
-    }
-
-    public final void setDataSetID(long dataSetID)
-    {
-        this.dataSetID = dataSetID;
-    }
-
-    public final double getProbability()
-    {
-        return probability;
-    }
-
-    public final void setProbability(double probability)
-    {
-        this.probability = probability;
-    }
-
-    public final Double getAbundance()
-    {
-        return abundance;
-    }
-
-    public final void setAbundance(Double abundance)
-    {
-        this.abundance = abundance;
-    }
-
-    public final String getSamplePermID()
-    {
-        return samplePermID;
-    }
-
-    public final void setSamplePermID(String samplePermID)
-    {
-        this.samplePermID = samplePermID;
-    }
-
-    public void setCoverage(double coverage)
-    {
-        this.coverage = coverage;
-    }
-
-    public double getCoverage()
-    {
-        return coverage;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReferenceWithProbabilityAndPeptide.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReferenceWithProbabilityAndPeptide.java
deleted file mode 100644
index 5f75d2fb2a1a0d497e8d57a73368b7dd3785942f..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReferenceWithProbabilityAndPeptide.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinReferenceWithProbabilityAndPeptide extends ProteinReferenceWithProbability
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("sequence")
-    private String peptideSequence;
-
-    public String getPeptideSequence()
-    {
-        return peptideSequence;
-    }
-
-    public void setPeptideSequence(String peptideSequence)
-    {
-        this.peptideSequence = peptideSequence;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReferenceWithProtein.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReferenceWithProtein.java
deleted file mode 100644
index bf572eea798ca4168786f7e25719e9db88f1559a..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinReferenceWithProtein.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import java.io.Serializable;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinReferenceWithProtein extends ProteinReference implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("data_set_id")
-    private long dataSetID;
-
-    @ResultColumn("protein_id")
-    private long proteinID;
-
-    @ResultColumn("probability")
-    private double probability;
-
-    @ResultColumn("coverage")
-    private double coverage;
-
-    public final long getDataSetID()
-    {
-        return dataSetID;
-    }
-
-    public final void setDataSetID(long dataSetID)
-    {
-        this.dataSetID = dataSetID;
-    }
-
-    public long getProteinID()
-    {
-        return proteinID;
-    }
-
-    public void setProteinID(long proteinID)
-    {
-        this.proteinID = proteinID;
-    }
-
-    public final double getProbability()
-    {
-        return probability;
-    }
-
-    public final void setProbability(double probability)
-    {
-        this.probability = probability;
-    }
-
-    public void setCoverage(double coverage)
-    {
-        this.coverage = coverage;
-    }
-
-    public double getCoverage()
-    {
-        return coverage;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinWithAbundances.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinWithAbundances.java
deleted file mode 100644
index 1d12fa3b75f1292e5672f6c3c359a75de25ad231..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/ProteinWithAbundances.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import it.unimi.dsi.fastutil.doubles.DoubleArrayList;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinWithAbundances extends ProteinReference
-{
-    private static final long serialVersionUID = 1L;
-
-    private static final double[] EMPTY_ARRAY = new double[0];
-
-    private double coverage;
-
-    private final Map<Long, DoubleArrayList> abundances = new LinkedHashMap<Long, DoubleArrayList>();
-
-    public double getCoverage()
-    {
-        return coverage;
-    }
-
-    public void setCoverage(double coverage)
-    {
-        this.coverage = coverage;
-    }
-
-    public void addAbundanceFor(long sampleID, double abundance)
-    {
-        DoubleArrayList list = abundances.get(sampleID);
-        if (list == null)
-        {
-            list = new DoubleArrayList();
-            abundances.put(sampleID, list);
-        }
-        list.add(abundance);
-    }
-
-    public Set<Long> getSampleIDs()
-    {
-        return abundances.keySet();
-    }
-
-    public double[] getAbundancesForSample(long sampleID)
-    {
-        DoubleArrayList list = abundances.get(sampleID);
-        return list == null ? EMPTY_ARRAY : list.toDoubleArray();
-    }
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/SampleAbundance.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/SampleAbundance.java
deleted file mode 100644
index aa93de91f45e65a91e69621a78fa2dea94a5059e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/SampleAbundance.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class SampleAbundance extends AbstractSample
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("value")
-    private double abundance;
-
-    public final double getAbundance()
-    {
-        return abundance;
-    }
-
-    public final void setAbundance(double abundance)
-    {
-        this.abundance = abundance;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/SamplePeptideModification.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/SamplePeptideModification.java
deleted file mode 100644
index 8a4de328d767caa736e470ba01792eeb57c2199c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/SamplePeptideModification.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class SamplePeptideModification extends AbstractSample
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("fraction")
-    private double fraction;
-
-    @ResultColumn("pos")
-    private int position;
-
-    @ResultColumn("mass")
-    private double mass;
-
-    @ResultColumn("sequence")
-    private String sequence;
-
-    public double getFraction()
-    {
-        return fraction;
-    }
-
-    public void setFraction(double fraction)
-    {
-        this.fraction = fraction;
-    }
-
-    public int getPosition()
-    {
-        return position;
-    }
-
-    public void setPosition(int position)
-    {
-        this.position = position;
-    }
-
-    public double getMass()
-    {
-        return mass;
-    }
-
-    public void setMass(double mass)
-    {
-        this.mass = mass;
-    }
-
-    public String getSequence()
-    {
-        return sequence;
-    }
-
-    public void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/Sequence.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/Sequence.java
deleted file mode 100644
index 69a91f9365599b5255fe45d77fa574dff9ec6fc5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/dto/Sequence.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto;
-
-import net.lemnik.eodsql.ResultColumn;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class Sequence extends AbstractDTOWithID
-{
-    private static final long serialVersionUID = 1L;
-
-    @ResultColumn("amino_acid_sequence")
-    private String sequence;
-
-    @ResultColumn("db_id")
-    private long databaseID;
-
-    @ResultColumn("name_and_version")
-    private String databaseNameAndVersion;
-
-    public final String getSequence()
-    {
-        return sequence;
-    }
-
-    public final void setSequence(String sequence)
-    {
-        this.sequence = sequence;
-    }
-
-    public final long getDatabaseID()
-    {
-        return databaseID;
-    }
-
-    public final void setDatabaseID(long databaseID)
-    {
-        this.databaseID = databaseID;
-    }
-
-    public final String getDatabaseNameAndVersion()
-    {
-        return databaseNameAndVersion;
-    }
-
-    public final void setDatabaseNameAndVersion(String databaseNameAndVersion)
-    {
-        this.databaseNameAndVersion = databaseNameAndVersion;
-    }
-
-}
diff --git a/rtd_phosphonetx/source/java/proteomics-applicationContext.xml b/rtd_phosphonetx/source/java/proteomics-applicationContext.xml
deleted file mode 100644
index a67901501d179841daa04964339269b83944ff06..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/proteomics-applicationContext.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:tx="http://www.springframework.org/schema/tx"
-    xsi:schemaLocation="http://www.springframework.org/schema/beans
-                        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-                        http://www.springframework.org/schema/tx
-                        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
-
-    <import resource="applicationContext.xml"/>
-    <import resource="proteomics-plugin-applicationContext.xml"/>
-
-</beans>
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/proteomics-plugin-applicationContext.xml b/rtd_phosphonetx/source/java/proteomics-plugin-applicationContext.xml
deleted file mode 100644
index ea3245ffbb5affceb8b2267a5f57c12f0c64e2d8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/proteomics-plugin-applicationContext.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:tx="http://www.springframework.org/schema/tx"
-    xsi:schemaLocation="http://www.springframework.org/schema/beans
-                        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-                        http://www.springframework.org/schema/tx
-                        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
-    
-    <bean id="proteomics-dao-factory"
-          class="ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.db.PhosphoNetXDAOFactory">
-        <constructor-arg ref="dss-based-data-source-provider"/>
-        <constructor-arg ref="dao-factory"/>
-    </bean>
-    
-    <bean id="proteomics-bo-factory"
-          class="ch.systemsx.cisd.openbis.plugin.proteomics.server.business.BusinessObjectFactory">
-        <constructor-arg ref="dao-factory"/>
-        <constructor-arg ref="proteomics-dao-factory"/>
-        <constructor-arg ref="common-business-object-factory" />
-    </bean>      
-    
-    <!-- 
-        // Proteomics Data Server 
-    -->
-    
-    <bean id="proteomics-data-service-internal" 
-          class="ch.systemsx.cisd.openbis.plugin.proteomics.server.ProteomicsDataServiceInternal" 
-          init-method="replaceAutoWiredSesseionManagerByConstructorSessionManager">
-        <constructor-arg>
-            <bean class="ch.systemsx.cisd.openbis.generic.server.OpenBisSessionManager">
-                <constructor-arg>
-                    <bean class="ch.systemsx.cisd.openbis.generic.server.SessionFactory" />
-                </constructor-arg>
-                <constructor-arg>
-                    <bean class="ch.systemsx.cisd.openbis.generic.shared.LogMessagePrefixGenerator" />
-                </constructor-arg>
-                <constructor-arg ref="dummy-authentication-service" />
-                <constructor-arg>
-                    <bean class="ch.systemsx.cisd.common.servlet.RequestContextProviderAdapter">
-                        <constructor-arg ref="request-context-provider" />
-                    </bean>
-                </constructor-arg>
-                <constructor-arg value="${session-timeout}" />
-                <constructor-arg value="${session-timeout-no-login}" />
-                <constructor-arg ref="dao-factory"/>
-            </bean>
-        </constructor-arg>
-        <constructor-arg ref="dao-factory"/>
-        <constructor-arg ref="common-business-object-factory" />
-        <constructor-arg ref="proteomics-bo-factory" />
-        <constructor-arg ref="managed-property-evaluator-factory" />
-    </bean>
-    
-    <bean id="proteomics-data-service-web" 
-          class="ch.systemsx.cisd.openbis.plugin.proteomics.server.ProteomicsDataServiceInternal">
-        <constructor-arg ref="session-manager" />
-        <constructor-arg ref="dao-factory"/>
-        <constructor-arg ref="common-business-object-factory" />
-        <constructor-arg ref="proteomics-bo-factory" />
-        <constructor-arg ref="managed-property-evaluator-factory" />
-    </bean>
-    
-</beans>
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/java/service.properties b/rtd_phosphonetx/source/java/service.properties
deleted file mode 100644
index ecb4704b89224aace477828a2e8da280f0c2a165..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/java/service.properties
+++ /dev/null
@@ -1,67 +0,0 @@
-authentication-service = dummy-authentication-service
-
-# The time after which an inactive session is expired by the service (in minutes).
-session-timeout = 720
-
-# Authorization
-# Supported: 'no-authorization' and 'active-authorization'
-authorization-component-factory = active-authorization
-
-authorization.project-level.enabled = true
-authorization.project-level.users = .*\\_pa\\_on
-
-dss-rpc.put.dss-code = DSS1
-
-script-folder = ../openbis/source/
-
-# Supported: currently only 'postgresql' is supported
-database.engine = postgresql
-database.create-from-scratch = false
-# For debugging set this value to true.
-database.script-single-step-mode = false
-database.url-host-part =
-database.kind = phosphonetx
-# database.kind = system_test
-# database.kind = system_test_strict
-# database.kind = system_test_plates_on_demand
-# database.kind = system_test_multi_groups
-database.owner =
-database.owner-password =
-database.admin-user = 
-database.admin-password =
-
-crowd.service.host = crowd.systemsx.ch
-crowd.service.port = 8443
-crowd.application.name = lims
-crowd.application.password =
-
-# The database instance local unique identifier. Used when the new database is created.
-database-instance = CISD
-
-# The URL of the CIFEX server
-cifex-url = https://cifex.ethz.ch:443
-
-trusted-cross-origin-domains= *
-
-# Hibernate Search
-# The working directory.
-hibernate.search.index-base = ./targets/indices_${database.kind}
-# One of NO_INDEX, SKIP_IF_MARKER_FOUND, INDEX_FROM_SCRATCH.
-# If not specified, default (SKIP_IF_MARKER_FOUND) is taken.
-hibernate.search.index-mode = SKIP_IF_MARKER_FOUND
-# Defines the maximum number of elements indexed before flushing the transaction-bound queue.
-# Default is 1000.
-hibernate.search.batch-size = 1000
-# Maximum number of search results
-hibernate.search.maxResults = 100000
-
-web-client-configuration-file = etc/web-client.properties
-
-proteomics-database-kind = dev
-
-core-plugins-folder = source/core-plugins
-
-
-
-
-jython-version=2.7
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/001/schema-001.dez b/rtd_phosphonetx/source/sql/proteomics/postgresql/001/schema-001.dez
deleted file mode 100644
index 8fb86063bc3c09ea2b676e3bd6a8348b31683cd4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/001/schema-001.dez
+++ /dev/null
@@ -1,26083 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?><dezign>
-
-<FILEFORMATVERSION>51</FILEFORMATVERSION>
-<VERSION>
-<PROJECTSETTINGS>
-<PROJECTFILENAME>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\phosphonetx.dez</PROJECTFILENAME>
-<MODIFIED>2009-09-28</MODIFIED>
-<CREATED>2009-06-29</CREATED>
-<CREATED2></CREATED2>
-<PROJECTNAME></PROJECTNAME>
-<DESCRIPTION></DESCRIPTION>
-<AUTHOR></AUTHOR>
-<COPYRIGHT></COPYRIGHT>
-<LASTGENERATEDFILES>N:\user\cisd\felmer\phosphonetx\schema-001.sql;N:\user\cisd\felmer\phosphonetx\drop.sql;C:\Users\felmer\Documents\CreateDBLog_200909281.txt</LASTGENERATEDFILES>
-</PROJECTSETTINGS>
-<CONNECTIONSETTINGS>
-<SQLFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLFILE>
-<CONNECTIONTYPE>SQLFILE</CONNECTIONTYPE>
-<DBID>postgresql8</DBID>
-</CONNECTIONSETTINGS>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>175</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>N:\user\cisd\felmer\phosphonetx\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>N:\user\cisd\felmer\phosphonetx\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>256</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SPECTRUM_REFERENCE</NAME>
-<ID>171</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>100</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOPE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_%table%_%counter%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ACCESSION_NUMBER</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>256</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>ACCESSION_NUMBER</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>136</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NTERM_MASS</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CTERM_MASS</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>SPECTRUM_REFERENCES</NAME>
-<ID>160</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SPECTRUM_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>REFERENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>171</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>100</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_FRACTIONS</NAME>
-<ID>173</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MODI_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>FRACTION</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>138</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>136</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>139</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>136</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>7</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PEPTIDES_SPECTRUM_REFERENCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>172</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>160</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PEPTIDES_SPECTRUM_REFERENCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>2</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MODIFICATIONS_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>174</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>19</PARENTOBJECTID>
-<CHILDOBJECTID>173</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MODIFICATIONS_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>175</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>173</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-<DIAGRAMS>
-<DisplayPreferences>
-<USEINDICATORLINE>0</USEINDICATORLINE>
-<INDICATORBITMAPS>0</INDICATORBITMAPS>
-<PKINDICATOR>PK</PKINDICATOR>
-<FKINDICATOR>FK</FKINDICATOR>
-<PFINDICATOR>PF</PFINDICATOR>
-<NOTNULLINDICATOR>*</NOTNULLINDICATOR>
-<INDICATORPOSITION>0</INDICATORPOSITION>
-<DEFTEXTAREACOLOR>16777215</DEFTEXTAREACOLOR>
-<DEFENTCOLOR>16777215</DEFENTCOLOR>
-<DEFSTAMPCOLOR>16777215</DEFSTAMPCOLOR>
-<DEFGROUPBOXCOLOR>8421504</DEFGROUPBOXCOLOR>
-<DEFTEXTAREALINECOLOR>0</DEFTEXTAREALINECOLOR>
-<DEFENTLINECOLOR>0</DEFENTLINECOLOR>
-<DEFSTAMPLINECOLOR>0</DEFSTAMPLINECOLOR>
-<DEFSUBCATLINECOLOR>0</DEFSUBCATLINECOLOR>
-<DEFCONLINECOLOR>0</DEFCONLINECOLOR>
-<DEFGROUPBOXLINECOLOR>0</DEFGROUPBOXLINECOLOR>
-<DEFTEXTAREATRANSPARENT>0</DEFTEXTAREATRANSPARENT>
-<DEFSTAMPTRANSPARENT>0</DEFSTAMPTRANSPARENT>
-<DEFTEXTAREALINEWIDTH>1</DEFTEXTAREALINEWIDTH>
-<DEFSTAMPLINEWIDTH>1</DEFSTAMPLINEWIDTH>
-<DEFGROUPBOXLINEWIDTH>0</DEFGROUPBOXLINEWIDTH>
-<DEFTEXTAREALINESTYLE>0</DEFTEXTAREALINESTYLE>
-<DEFSTAMPLINESTYLE>0</DEFSTAMPLINESTYLE>
-<DEFGROUPBOXLINESTYLE>0</DEFGROUPBOXLINESTYLE>
-<ENTNAMEFONT>Arial,9,B,0,clNavy,0</ENTNAMEFONT>
-<ENTPKFONT>Arial,8,B,0,clWindowText,0</ENTPKFONT>
-<ENTFKFONT>Arial,8,I,0,clWindowText,0</ENTFKFONT>
-<ENTATTRFONT>Arial,8,,0,clWindowText,0</ENTATTRFONT>
-<TEXTAREAFONT>Arial,8,,0,clWindowText,0</TEXTAREAFONT>
-<GROUPBOXFONT>Arial,8,,0,clWindowText,0</GROUPBOXFONT>
-<CAPTIONFONT>Arial,8,,0,clWindowText,0</CAPTIONFONT>
-</DisplayPreferences>
-<DIAGRAM>
-<ID>1</ID>
-<NAME>Main Diagram</NAME>
-<DESC></DESC>
-<TODO></TODO>
-<ISMAINDIAGRAM>1</ISMAINDIAGRAM>
-<BGCOLOR>16777215</BGCOLOR>
-<DISPLAYLEVEL>0</DISPLAYLEVEL>
-<VISIBLEATTR>2</VISIBLEATTR>
-<CAPTIONSTYLE>0</CAPTIONSTYLE>
-<SHOWPKINDICATOR>1</SHOWPKINDICATOR>
-<SHOWFKINDICATOR>1</SHOWFKINDICATOR>
-<SHOWNOTNULLINDICATOR>1</SHOWNOTNULLINDICATOR>
-<NOTATION>0</NOTATION>
-</DIAGRAM>
-<CONTROLS>
-<ENTITYCONTROLS>
-<ENTC>
-<ID>16</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>136</W>
-<H>63</H>
-<L>544</L>
-<T>11</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>17</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>139</W>
-<H>108</H>
-<L>295</L>
-<T>11</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>19</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>177</W>
-<H>93</H>
-<L>12</L>
-<T>628</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>21</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>187</W>
-<H>93</H>
-<L>271</L>
-<T>480</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>23</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>180</W>
-<H>78</H>
-<L>274</L>
-<T>328</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>24</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>136</W>
-<H>78</H>
-<L>12</L>
-<T>11</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>25</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>250</W>
-<H>108</H>
-<L>736</L>
-<T>328</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>47</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>142</W>
-<H>78</H>
-<L>541</L>
-<T>328</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>91</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>161</W>
-<H>93</H>
-<L>114</L>
-<T>182</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>96</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>245</W>
-<H>93</H>
-<L>490</L>
-<T>182</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>98</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>252</W>
-<H>78</H>
-<L>734</L>
-<T>480</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>110</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>252</W>
-<H>63</H>
-<L>734</L>
-<T>107</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>136</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>183</W>
-<H>93</H>
-<L>273</L>
-<T>628</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>160</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>214</W>
-<H>78</H>
-<L>505</L>
-<T>480</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>173</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>164</W>
-<H>93</H>
-<L>12</L>
-<T>480</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-</ENTITYCONTROLS>
-<SUBCATEGORYCONTROLS>
-</SUBCATEGORYCONTROLS>
-<TEXTAREACONTROLS>
-</TEXTAREACONTROLS>
-<STAMPCONTROLS>
-</STAMPCONTROLS>
-<GROUPBOXESCONTROLS>
-</GROUPBOXESCONTROLS>
-<RELATIONSHIPCONNECTORS>
-<RELC>
-<ID>29</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>4921</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>2870</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>543</X>
-<Y>42</Y>
-</POINT>
-<POINT>
-<X>480</X>
-<Y>42</Y>
-</POINT>
-<POINT>
-<X>480</X>
-<Y>42</Y>
-</POINT>
-<POINT>
-<X>434</X>
-<Y>42</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>30</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>3611</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>148</X>
-<Y>50</Y>
-</POINT>
-<POINT>
-<X>219</X>
-<Y>50</Y>
-</POINT>
-<POINT>
-<X>219</X>
-<Y>50</Y>
-</POINT>
-<POINT>
-<X>294</X>
-<Y>50</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>36</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>4973</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>364</X>
-<Y>406</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>428</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>428</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>479</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>46</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>4964</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>364</X>
-<Y>119</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>183</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>183</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>327</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>48</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>454</X>
-<Y>367</Y>
-</POINT>
-<POINT>
-<X>489</X>
-<Y>367</Y>
-</POINT>
-<POINT>
-<X>489</X>
-<Y>367</Y>
-</POINT>
-<POINT>
-<X>540</X>
-<Y>367</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>50</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>2840</FROMRELATIVEX>
-<FROMRELATIVEY>3611</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>735</X>
-<Y>367</Y>
-</POINT>
-<POINT>
-<X>705</X>
-<Y>367</Y>
-</POINT>
-<POINT>
-<X>705</X>
-<Y>367</Y>
-</POINT>
-<POINT>
-<X>683</X>
-<Y>367</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>92</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>8750</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>1056</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>131</X>
-<Y>89</Y>
-</POINT>
-<POINT>
-<X>131</X>
-<Y>143</Y>
-</POINT>
-<POINT>
-<X>131</X>
-<Y>143</Y>
-</POINT>
-<POINT>
-<X>131</X>
-<Y>181</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>94</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>0</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>9938</TORELATIVEX>
-<TORELATIVEY>4194</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>274</X>
-<Y>327</Y>
-</POINT>
-<POINT>
-<X>274</X>
-<Y>299</Y>
-</POINT>
-<POINT>
-<X>274</X>
-<Y>299</Y>
-</POINT>
-<POINT>
-<X>274</X>
-<Y>275</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>97</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>8369</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>411</X>
-<Y>119</Y>
-</POINT>
-<POINT>
-<X>411</X>
-<Y>161</Y>
-</POINT>
-<POINT>
-<X>612</X>
-<Y>161</Y>
-</POINT>
-<POINT>
-<X>612</X>
-<Y>181</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>111</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5040</FROMRELATIVEX>
-<FROMRELATIVEY>7619</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>1296</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>861</X>
-<Y>170</Y>
-</POINT>
-<POINT>
-<X>861</X>
-<Y>235</Y>
-</POINT>
-<POINT>
-<X>861</X>
-<Y>235</Y>
-</POINT>
-<POINT>
-<X>861</X>
-<Y>327</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>112</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5040</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>3611</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>861</X>
-<Y>479</Y>
-</POINT>
-<POINT>
-<X>861</X>
-<Y>447</Y>
-</POINT>
-<POINT>
-<X>861</X>
-<Y>447</Y>
-</POINT>
-<POINT>
-<X>861</X>
-<Y>436</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>125</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>952</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>9444</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>733</X>
-<Y>113</Y>
-</POINT>
-<POINT>
-<X>578</X>
-<Y>113</Y>
-</POINT>
-<POINT>
-<X>578</X>
-<Y>113</Y>
-</POINT>
-<POINT>
-<X>434</X>
-<Y>113</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>138</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>4973</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>4973</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>364</X>
-<Y>573</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>585</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>585</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>627</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>139</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>929</FROMRELATIVEX>
-<FROMRELATIVEY>4946</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>4946</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>272</X>
-<Y>674</Y>
-</POINT>
-<POINT>
-<X>237</X>
-<Y>674</Y>
-</POINT>
-<POINT>
-<X>237</X>
-<Y>674</Y>
-</POINT>
-<POINT>
-<X>189</X>
-<Y>674</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>172</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>4194</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>458</X>
-<Y>519</Y>
-</POINT>
-<POINT>
-<X>469</X>
-<Y>519</Y>
-</POINT>
-<POINT>
-<X>469</X>
-<Y>519</Y>
-</POINT>
-<POINT>
-<X>504</X>
-<Y>519</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>174</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>4633</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>94</X>
-<Y>627</Y>
-</POINT>
-<POINT>
-<X>94</X>
-<Y>585</Y>
-</POINT>
-<POINT>
-<X>94</X>
-<Y>585</Y>
-</POINT>
-<POINT>
-<X>94</X>
-<Y>573</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>175</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>4146</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>80</X>
-<Y>89</Y>
-</POINT>
-<POINT>
-<X>80</X>
-<Y>202</Y>
-</POINT>
-<POINT>
-<X>80</X>
-<Y>202</Y>
-</POINT>
-<POINT>
-<X>80</X>
-<Y>479</Y>
-</POINT>
-</POINTS>
-</RELC>
-</RELATIONSHIPCONNECTORS>
-<SUBCATEGORYCONNECTORS>
-</SUBCATEGORYCONNECTORS>
-</CONTROLS>
-</DIAGRAMS>
-</VERSION><VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>1</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-06-29</VERSIONLABEL>
-<VERSIONDATE>2009-06-29 10:58</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>46</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\targets\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>BINARY_DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>18</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>PK_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SPEC_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>SPECTRA_COUNT</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SPEC_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DELTA_MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>9</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>IDDA_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>IDDA_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_SEQUENCES</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_STATISTICS</NAME>
-<ID>22</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>2</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>PK_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>PRST_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PROTEINS_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_SEQUENCES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PRST_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>SPECTRA</NAME>
-<ID>26</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SPECTRA</NAME>
-<NAMETEMPLATE>PK_SPECTRA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>3</DOMAINID>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-<SEQUENCE>
-<NAME>SEQ</NAME>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<INCREMENT>1</INCREMENT>
-<SEED>0</SEED>
-<MAX>NOMAXVALUE</MAX>
-<MIN>NOMINVALUE</MIN>
-<CACHE></CACHE>
-<CACHECODE></CACHECODE>
-<CYCLE></CYCLE>
-<ORDER></ORDER>
-</SEQUENCE>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>31</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>26</PARENTOBJECTID>
-<CHILDOBJECTID>18</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>35</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>18</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>37</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>39</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>41</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>22</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>43</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>44</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>2</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-06-29 1</VERSIONLABEL>
-<VERSIONDATE>2009-06-29 11:02</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>46</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\targets\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>BINARY_DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>18</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>PK_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SPEC_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>SPECTRA_COUNT</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SPEC_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DELTA_MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>9</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>IDDA_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>IDDA_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_SEQUENCES</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_STATISTICS</NAME>
-<ID>22</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>2</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>PK_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>PRST_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PROTEINS_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_SEQUENCES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PRST_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IDX_PROTEINS_3</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_3</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>SPECTRA</NAME>
-<ID>26</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SPECTRA</NAME>
-<NAMETEMPLATE>PK_SPECTRA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>3</DOMAINID>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>31</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>26</PARENTOBJECTID>
-<CHILDOBJECTID>18</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>35</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>18</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>37</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>39</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>41</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>22</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>43</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>44</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>3</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-06-29 2</VERSIONLABEL>
-<VERSIONDATE>2009-06-29 12:29</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>48</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\targets\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>BINARY_DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>18</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>PK_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SPEC_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>SPECTRA_COUNT</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SPEC_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DELTA_MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>9</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>IDDA_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>IDDA_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_SEQUENCES</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>22</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>2</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>PK_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>PRST_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PROTEINS_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_SEQUENCES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PRST_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IDX_PROTEINS_3</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_3</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>SPECTRA</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>26</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SPECTRA</NAME>
-<NAMETEMPLATE>PK_SPECTRA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>3</DOMAINID>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>31</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>26</PARENTOBJECTID>
-<CHILDOBJECTID>18</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>35</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>18</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>37</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>39</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>41</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>22</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>43</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>44</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>4</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-06-30</VERSIONLABEL>
-<VERSIONDATE>2009-06-30 09:00</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>97</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\targets\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>BINARY_DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DELTA_MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>93</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>5</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-06</VERSIONLABEL>
-<VERSIONDATE>2009-07-06 13:15</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>135</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>N:\user\cisd\felmer\phosphonetx\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>N:\user\cisd\felmer\phosphonetx\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER</DTLISTNAME>
-<LE>1</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS_TOLERANCE</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>93</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>6</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-06 1</VERSIONLABEL>
-<VERSIONDATE>2009-07-06 13:30</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>135</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>N:\user\cisd\felmer\phosphonetx\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>N:\user\cisd\felmer\phosphonetx\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER</DTLISTNAME>
-<LE>1</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS_TOLERANCE</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>93</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>7</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-07</VERSIONLABEL>
-<VERSIONDATE>2009-07-07 08:01</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>135</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>N:\user\cisd\felmer\phosphonetx\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>N:\user\cisd\felmer\phosphonetx\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER</DTLISTNAME>
-<LE>1</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS_TOLERANCE</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>8</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-15</VERSIONLABEL>
-<VERSIONDATE>2009-07-15 15:52</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>139</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOPE_ID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFIED_PEPTIDES</NAME>
-<ID>136</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NTERM_MASS</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CTERM_MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PEPTIDES_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>138</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>136</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PEPTIDES_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>MODIFIED_PEPTIDES_MODIFICATIONS</NAMETEMPLATE>
-<ID>139</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>136</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>MODIFIED_PEPTIDES_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>7</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>9</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-15 1</VERSIONLABEL>
-<VERSIONDATE>2009-07-15 15:53</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>139</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOPE_ID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFIED_PEPTIDES</NAME>
-<ID>136</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NTERM_MASS</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CTERM_MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PEPTIDES_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>138</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>136</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PEPTIDES_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>MODIFIED_PEPTIDES_MODIFICATIONS</NAMETEMPLATE>
-<ID>139</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>136</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>MODIFIED_PEPTIDES_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>7</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-
-</dezign>
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/001/schema-001.png b/rtd_phosphonetx/source/sql/proteomics/postgresql/001/schema-001.png
deleted file mode 100644
index 69f33d205fd55433318b8e294148b3eb20267d5d..0000000000000000000000000000000000000000
Binary files a/rtd_phosphonetx/source/sql/proteomics/postgresql/001/schema-001.png and /dev/null differ
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/001/schema-001.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/001/schema-001.sql
deleted file mode 100644
index 5aaa048555bba96d45fcc2fa27e0976638a3de3c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/001/schema-001.sql
+++ /dev/null
@@ -1,284 +0,0 @@
-/* ---------------------------------------------------------------------- */
-/* Script generated with: DeZign for Databases v5.2.3                     */
-/* Target DBMS:           PostgreSQL 8                                    */
-/* Project file:          schema-001.dez                                  */
-/* Project name:                                                          */
-/* Author:                                                                */
-/* Script type:           Database creation script                        */
-/* Created on:            2009-09-28 08:43                                */
-/* Model version:         Version 2009-09-28                              */
-/* ---------------------------------------------------------------------- */
-
-
-/* ---------------------------------------------------------------------- */
-/* Domains                                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE DOMAIN CHECKSUM AS CHARACTER VARYING(8);
-
-CREATE DOMAIN CODE AS CHARACTER VARYING(40);
-
-CREATE DOMAIN DESCRIPTION AS CHARACTER VARYING(2000);
-
-CREATE DOMAIN INTEGER_NUMBER AS INTEGER;
-
-CREATE DOMAIN REAL_NUMBER AS DOUBLE PRECISION;
-
-CREATE DOMAIN LONG_SEQUENCE AS TEXT;
-
-CREATE DOMAIN SHORT_DESCRIPTION AS CHARACTER VARYING(200);
-
-CREATE DOMAIN TECH_ID AS BIGINT;
-
-CREATE DOMAIN SHORT_SEQUENCE AS CHARACTER VARYING(1000);
-
-CREATE DOMAIN ACCESSION_NUMBER AS CHARACTER VARYING(256);
-
-CREATE DOMAIN SPECTRUM_REFERENCE AS CHARACTER VARYING(100);
-
-/* ---------------------------------------------------------------------- */
-/* Tables                                                                 */
-/* ---------------------------------------------------------------------- */
-
-/* ---------------------------------------------------------------------- */
-/* Add table "EXPERIMENTS"                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE EXPERIMENTS (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_EXPERIMENTS PRIMARY KEY (ID),
-    CONSTRAINT TUC_EXPERIMENTS_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATA_SETS"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATA_SETS (
-    ID BIGSERIAL  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    DB_ID TECH_ID  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_DATA_SETS PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATA_SETS_1 UNIQUE (PERM_ID)
-);
-
-CREATE INDEX IX_FK_DATA_SETS_EXPERIMENTS ON DATA_SETS (EXPE_ID);
-
-CREATE INDEX IX_FK_DATA_SETS_SAMPLES ON DATA_SETS (SAMP_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATIONS"                                              */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATIONS (
-    ID BIGSERIAL  NOT NULL,
-    MOPE_ID TECH_ID  NOT NULL,
-    POS INTEGER_NUMBER  NOT NULL,
-    MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATIONS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PEPTIDES"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQUENCE SHORT_SEQUENCE  NOT NULL,
-    CHARGE INTEGER_NUMBER  NOT NULL,
-    CONSTRAINT PK_PEPTIDES PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_PEPTIDES_PROTEINS ON PEPTIDES (PROT_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEINS"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROTEINS PRIMARY KEY (ID)
-);
-
-CREATE INDEX IDX_PROTEINS_1 ON PROTEINS (DASE_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SAMPLES"                                                    */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SAMPLES (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    CONSTRAINT PK_SAMPLES PRIMARY KEY (ID),
-    CONSTRAINT TUC_SAMPLES_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SEQUENCES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SEQUENCES (
-    ID BIGSERIAL  NOT NULL,
-    DB_ID TECH_ID  NOT NULL,
-    PRRE_ID TECH_ID  NOT NULL,
-    AMINO_ACID_SEQUENCE LONG_SEQUENCE  NOT NULL,
-    CHECKSUM CHECKSUM  NOT NULL,
-    CONSTRAINT PK_SEQUENCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "IDENTIFIED_PROTEINS"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE IDENTIFIED_PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQU_ID TECH_ID  NOT NULL,
-    CONSTRAINT PK_IDENTIFIED_PROTEINS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "ABUNDANCES"                                                 */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE ABUNDANCES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID  NOT NULL,
-    VALUE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_ABUNDANCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROBABILITY_FDR_MAPPINGS"                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROBABILITY_FDR_MAPPINGS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    FALSE_DISCOVERY_RATE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROBABILITY_FDR_MAPPINGS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEIN_REFERENCES"                                         */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEIN_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    ACCESSION_NUMBER ACCESSION_NUMBER  NOT NULL,
-    DESCRIPTION DESCRIPTION,
-    CONSTRAINT PK_PROTEIN_REFERENCES PRIMARY KEY (ID),
-    CONSTRAINT TUC_PROTEIN_REFERENCES_1 UNIQUE (ACCESSION_NUMBER)
-);
-
-CREATE INDEX IDX_PROTEIN_REFERENCES_1 ON PROTEIN_REFERENCES (ACCESSION_NUMBER);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATABASES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATABASES (
-    ID BIGSERIAL  NOT NULL,
-    NAME_AND_VERSION SHORT_DESCRIPTION  NOT NULL,
-    CONSTRAINT PK_DATABASES PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATABASES_1 UNIQUE (NAME_AND_VERSION)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFIED_PEPTIDES"                                          */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFIED_PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    NTERM_MASS REAL_NUMBER  NOT NULL,
-    CTERM_MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFIED_PEPTIDES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SPECTRUM_REFERENCES"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SPECTRUM_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    REFERENCE SPECTRUM_REFERENCE  NOT NULL,
-    CONSTRAINT PK_SPECTRUM_REFERENCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATION_FRACTIONS"                                     */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATION_FRACTIONS (
-    ID BIGSERIAL  NOT NULL,
-    MODI_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    FRACTION REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATION_FRACTIONS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Foreign key constraints                                                */
-/* ---------------------------------------------------------------------- */
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_EX_FK 
-    FOREIGN KEY (EXPE_ID) REFERENCES EXPERIMENTS (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_SA_FK 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DATABASES_DATA_SETS 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE MODIFICATIONS ADD CONSTRAINT MODIFIED_PEPTIDES_MODIFICATIONS 
-    FOREIGN KEY (MOPE_ID) REFERENCES MODIFIED_PEPTIDES (ID);
-
-ALTER TABLE PEPTIDES ADD CONSTRAINT PE_PR_FK 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID);
-
-ALTER TABLE PROTEINS ADD CONSTRAINT DATA_SETS_PROTEINS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID);
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT DATABASES_SEQUENCES 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT PROTEIN_REFERENCES_SEQUENCES 
-    FOREIGN KEY (PRRE_ID) REFERENCES PROTEIN_REFERENCES (ID);
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT PROTEINS_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID);
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT SEQUENCES_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (SEQU_ID) REFERENCES SEQUENCES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT SAMPLES_ABUNDANCES 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT PROTEINS_ABUNDANCES 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID);
-
-ALTER TABLE PROBABILITY_FDR_MAPPINGS ADD CONSTRAINT DATA_SETS_PROBABILITY_FDR_MAPPINGS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID);
-
-ALTER TABLE MODIFIED_PEPTIDES ADD CONSTRAINT PEPTIDES_MODIFIED_PEPTIDES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID);
-
-ALTER TABLE SPECTRUM_REFERENCES ADD CONSTRAINT PEPTIDES_SPECTRUM_REFERENCES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID);
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT MODIFICATIONS_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (MODI_ID) REFERENCES MODIFICATIONS (ID);
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT SAMPLES_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/002/schema-002.png b/rtd_phosphonetx/source/sql/proteomics/postgresql/002/schema-002.png
deleted file mode 100755
index 69f33d205fd55433318b8e294148b3eb20267d5d..0000000000000000000000000000000000000000
Binary files a/rtd_phosphonetx/source/sql/proteomics/postgresql/002/schema-002.png and /dev/null differ
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/002/schema-002.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/002/schema-002.sql
deleted file mode 100755
index 4d4128aa57edc9996323abd3542d5de110d9395c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/002/schema-002.sql
+++ /dev/null
@@ -1,292 +0,0 @@
-/* ---------------------------------------------------------------------- */
-/* Script generated with: DeZign for Databases v5.2.3                     */
-/* Target DBMS:           PostgreSQL 8                                    */
-/* Project file:          schema.dez                                      */
-/* Project name:                                                          */
-/* Author:                                                                */
-/* Script type:           Database creation script                        */
-/* Created on:            2009-12-07 11:03                                */
-/* Model version:         Version 2009-12-07                              */
-/* ---------------------------------------------------------------------- */
-
-
-/* ---------------------------------------------------------------------- */
-/* Domains                                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE DOMAIN CHECKSUM AS CHARACTER VARYING(8);
-
-CREATE DOMAIN CODE AS CHARACTER VARYING(40);
-
-CREATE DOMAIN DESCRIPTION AS CHARACTER VARYING(2000);
-
-CREATE DOMAIN INTEGER_NUMBER AS INTEGER;
-
-CREATE DOMAIN REAL_NUMBER AS DOUBLE PRECISION;
-
-CREATE DOMAIN LONG_SEQUENCE AS TEXT;
-
-CREATE DOMAIN SHORT_DESCRIPTION AS CHARACTER VARYING(200);
-
-CREATE DOMAIN TECH_ID AS BIGINT;
-
-CREATE DOMAIN SHORT_SEQUENCE AS CHARACTER VARYING(1000);
-
-CREATE DOMAIN ACCESSION_NUMBER AS CHARACTER VARYING(256);
-
-CREATE DOMAIN SPECTRUM_REFERENCE AS CHARACTER VARYING(100);
-
-/* ---------------------------------------------------------------------- */
-/* Tables                                                                 */
-/* ---------------------------------------------------------------------- */
-
-/* ---------------------------------------------------------------------- */
-/* Add table "EXPERIMENTS"                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE EXPERIMENTS (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_EXPERIMENTS PRIMARY KEY (ID),
-    CONSTRAINT TUC_EXPERIMENTS_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATA_SETS"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATA_SETS (
-    ID BIGSERIAL  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    DB_ID TECH_ID  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_DATA_SETS PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATA_SETS_1 UNIQUE (PERM_ID)
-);
-
-CREATE INDEX IX_FK_DATA_SETS_EXPERIMENTS ON DATA_SETS (EXPE_ID);
-
-CREATE INDEX IX_FK_DATA_SETS_SAMPLES ON DATA_SETS (SAMP_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATIONS"                                              */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATIONS (
-    ID BIGSERIAL  NOT NULL,
-    MOPE_ID TECH_ID  NOT NULL,
-    POS INTEGER_NUMBER  NOT NULL,
-    MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATIONS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PEPTIDES"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQUENCE SHORT_SEQUENCE  NOT NULL,
-    CHARGE INTEGER_NUMBER  NOT NULL,
-    CONSTRAINT PK_PEPTIDES PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_PEPTIDES_PROTEINS ON PEPTIDES (PROT_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEINS"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROTEINS PRIMARY KEY (ID)
-);
-
-CREATE INDEX IDX_PROTEINS_1 ON PROTEINS (DASE_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SAMPLES"                                                    */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SAMPLES (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    CONSTRAINT PK_SAMPLES PRIMARY KEY (ID),
-    CONSTRAINT TUC_SAMPLES_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SEQUENCES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SEQUENCES (
-    ID BIGSERIAL  NOT NULL,
-    DB_ID TECH_ID  NOT NULL,
-    PRRE_ID TECH_ID  NOT NULL,
-    AMINO_ACID_SEQUENCE LONG_SEQUENCE  NOT NULL,
-    CHECKSUM CHECKSUM  NOT NULL,
-    CONSTRAINT PK_SEQUENCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "IDENTIFIED_PROTEINS"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE IDENTIFIED_PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQU_ID TECH_ID  NOT NULL,
-    CONSTRAINT PK_IDENTIFIED_PROTEINS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "ABUNDANCES"                                                 */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE ABUNDANCES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID  NOT NULL,
-    VALUE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_ABUNDANCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROBABILITY_FDR_MAPPINGS"                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROBABILITY_FDR_MAPPINGS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    FALSE_DISCOVERY_RATE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROBABILITY_FDR_MAPPINGS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEIN_REFERENCES"                                         */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEIN_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    ACCESSION_NUMBER ACCESSION_NUMBER  NOT NULL,
-    DESCRIPTION DESCRIPTION,
-    CONSTRAINT PK_PROTEIN_REFERENCES PRIMARY KEY (ID),
-    CONSTRAINT TUC_PROTEIN_REFERENCES_1 UNIQUE (ACCESSION_NUMBER)
-);
-
-CREATE INDEX IDX_PROTEIN_REFERENCES_1 ON PROTEIN_REFERENCES (ACCESSION_NUMBER);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATABASES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATABASES (
-    ID BIGSERIAL  NOT NULL,
-    NAME_AND_VERSION SHORT_DESCRIPTION  NOT NULL,
-    CONSTRAINT PK_DATABASES PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATABASES_1 UNIQUE (NAME_AND_VERSION)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFIED_PEPTIDES"                                          */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFIED_PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    NTERM_MASS REAL_NUMBER  NOT NULL,
-    CTERM_MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFIED_PEPTIDES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SPECTRUM_REFERENCES"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SPECTRUM_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    REFERENCE SPECTRUM_REFERENCE  NOT NULL,
-    CONSTRAINT PK_SPECTRUM_REFERENCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATION_FRACTIONS"                                     */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATION_FRACTIONS (
-    ID BIGSERIAL  NOT NULL,
-    MODI_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    FRACTION REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATION_FRACTIONS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "EVENTS"                                                     */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE EVENTS (
-    LAST_SEEN_DELETION_EVENT_ID TECH_ID  NOT NULL
-);
-
-/* ---------------------------------------------------------------------- */
-/* Foreign key constraints                                                */
-/* ---------------------------------------------------------------------- */
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_EX_FK 
-    FOREIGN KEY (EXPE_ID) REFERENCES EXPERIMENTS (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_SA_FK 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DATABASES_DATA_SETS 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE MODIFICATIONS ADD CONSTRAINT MODIFIED_PEPTIDES_MODIFICATIONS 
-    FOREIGN KEY (MOPE_ID) REFERENCES MODIFIED_PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE PEPTIDES ADD CONSTRAINT PE_PR_FK 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROTEINS ADD CONSTRAINT DATA_SETS_PROTEINS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT DATABASES_SEQUENCES 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT PROTEIN_REFERENCES_SEQUENCES 
-    FOREIGN KEY (PRRE_ID) REFERENCES PROTEIN_REFERENCES (ID);
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT PROTEINS_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT SEQUENCES_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (SEQU_ID) REFERENCES SEQUENCES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT SAMPLES_ABUNDANCES 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT PROTEINS_ABUNDANCES 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROBABILITY_FDR_MAPPINGS ADD CONSTRAINT DATA_SETS_PROBABILITY_FDR_MAPPINGS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFIED_PEPTIDES ADD CONSTRAINT PEPTIDES_MODIFIED_PEPTIDES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE SPECTRUM_REFERENCES ADD CONSTRAINT PEPTIDES_SPECTRUM_REFERENCES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT MODIFICATIONS_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (MODI_ID) REFERENCES MODIFICATIONS (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT SAMPLES_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/003/grant-003.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/003/grant-003.sql
deleted file mode 100644
index 2e85f4fb1f6fcbb7f072005f9d1ab5ad9e1fe713..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/003/grant-003.sql
+++ /dev/null
@@ -1,18 +0,0 @@
--- Granting SELECT privilege to group PHOSPHONETX_READONLY
-
-GRANT SELECT ON TABLE EXPERIMENTS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE DATA_SETS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE MODIFICATIONS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PEPTIDES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PROTEINS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE SAMPLES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE SEQUENCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE IDENTIFIED_PROTEINS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE ABUNDANCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PROBABILITY_FDR_MAPPINGS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PROTEIN_REFERENCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE DATABASES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE MODIFIED_PEPTIDES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE SPECTRUM_REFERENCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE MODIFICATION_FRACTIONS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE EVENTS TO GROUP PHOSPHONETX_READONLY;
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/003/schema-003.png b/rtd_phosphonetx/source/sql/proteomics/postgresql/003/schema-003.png
deleted file mode 100755
index da8cae484122317fee9b24a68fa70670bec52989..0000000000000000000000000000000000000000
Binary files a/rtd_phosphonetx/source/sql/proteomics/postgresql/003/schema-003.png and /dev/null differ
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/003/schema-003.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/003/schema-003.sql
deleted file mode 100755
index 4dd90b2711ca06f202543708fd0d7e3caef40f6c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/003/schema-003.sql
+++ /dev/null
@@ -1,293 +0,0 @@
-/* ---------------------------------------------------------------------- */
-/* Script generated with: DeZign for Databases v5.2.3                     */
-/* Target DBMS:           PostgreSQL 8                                    */
-/* Project file:          schema.dez                                      */
-/* Project name:                                                          */
-/* Author:                                                                */
-/* Script type:           Database creation script                        */
-/* Created on:            2010-03-31 16:10                                */
-/* Model version:         Version 2010-03-31                              */
-/* ---------------------------------------------------------------------- */
-
-
-/* ---------------------------------------------------------------------- */
-/* Domains                                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE DOMAIN CHECKSUM AS CHARACTER VARYING(8);
-
-CREATE DOMAIN CODE AS CHARACTER VARYING(40);
-
-CREATE DOMAIN DESCRIPTION AS CHARACTER VARYING(2000);
-
-CREATE DOMAIN INTEGER_NUMBER AS INTEGER;
-
-CREATE DOMAIN REAL_NUMBER AS DOUBLE PRECISION;
-
-CREATE DOMAIN LONG_SEQUENCE AS TEXT;
-
-CREATE DOMAIN SHORT_DESCRIPTION AS CHARACTER VARYING(200);
-
-CREATE DOMAIN TECH_ID AS BIGINT;
-
-CREATE DOMAIN SHORT_SEQUENCE AS CHARACTER VARYING(1000);
-
-CREATE DOMAIN ACCESSION_NUMBER AS CHARACTER VARYING(256);
-
-CREATE DOMAIN SPECTRUM_REFERENCE AS CHARACTER VARYING(100);
-
-/* ---------------------------------------------------------------------- */
-/* Tables                                                                 */
-/* ---------------------------------------------------------------------- */
-
-/* ---------------------------------------------------------------------- */
-/* Add table "EXPERIMENTS"                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE EXPERIMENTS (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_EXPERIMENTS PRIMARY KEY (ID),
-    CONSTRAINT TUC_EXPERIMENTS_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATA_SETS"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATA_SETS (
-    ID BIGSERIAL  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    DB_ID TECH_ID  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_DATA_SETS PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATA_SETS_1 UNIQUE (PERM_ID)
-);
-
-CREATE INDEX IX_FK_DATA_SETS_EXPERIMENTS ON DATA_SETS (EXPE_ID);
-
-CREATE INDEX IX_FK_DATA_SETS_SAMPLES ON DATA_SETS (SAMP_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATIONS"                                              */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATIONS (
-    ID BIGSERIAL  NOT NULL,
-    MOPE_ID TECH_ID  NOT NULL,
-    POS INTEGER_NUMBER  NOT NULL,
-    MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATIONS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PEPTIDES"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQUENCE SHORT_SEQUENCE  NOT NULL,
-    CHARGE INTEGER_NUMBER  NOT NULL,
-    CONSTRAINT PK_PEPTIDES PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_PEPTIDES_PROTEINS ON PEPTIDES (PROT_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEINS"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROTEINS PRIMARY KEY (ID)
-);
-
-CREATE INDEX IDX_PROTEINS_1 ON PROTEINS (DASE_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SAMPLES"                                                    */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SAMPLES (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    CONSTRAINT PK_SAMPLES PRIMARY KEY (ID),
-    CONSTRAINT TUC_SAMPLES_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SEQUENCES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SEQUENCES (
-    ID BIGSERIAL  NOT NULL,
-    DB_ID TECH_ID  NOT NULL,
-    PRRE_ID TECH_ID  NOT NULL,
-    AMINO_ACID_SEQUENCE LONG_SEQUENCE  NOT NULL,
-    CHECKSUM CHECKSUM  NOT NULL,
-    CONSTRAINT PK_SEQUENCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "IDENTIFIED_PROTEINS"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE IDENTIFIED_PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQU_ID TECH_ID  NOT NULL,
-    COVERAGE REAL_NUMBER,
-    CONSTRAINT PK_IDENTIFIED_PROTEINS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "ABUNDANCES"                                                 */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE ABUNDANCES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID  NOT NULL,
-    VALUE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_ABUNDANCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROBABILITY_FDR_MAPPINGS"                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROBABILITY_FDR_MAPPINGS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    FALSE_DISCOVERY_RATE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROBABILITY_FDR_MAPPINGS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEIN_REFERENCES"                                         */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEIN_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    ACCESSION_NUMBER ACCESSION_NUMBER  NOT NULL,
-    DESCRIPTION DESCRIPTION,
-    CONSTRAINT PK_PROTEIN_REFERENCES PRIMARY KEY (ID),
-    CONSTRAINT TUC_PROTEIN_REFERENCES_1 UNIQUE (ACCESSION_NUMBER)
-);
-
-CREATE INDEX IDX_PROTEIN_REFERENCES_1 ON PROTEIN_REFERENCES (ACCESSION_NUMBER);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATABASES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATABASES (
-    ID BIGSERIAL  NOT NULL,
-    NAME_AND_VERSION SHORT_DESCRIPTION  NOT NULL,
-    CONSTRAINT PK_DATABASES PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATABASES_1 UNIQUE (NAME_AND_VERSION)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFIED_PEPTIDES"                                          */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFIED_PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    NTERM_MASS REAL_NUMBER  NOT NULL,
-    CTERM_MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFIED_PEPTIDES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SPECTRUM_REFERENCES"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SPECTRUM_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    REFERENCE SPECTRUM_REFERENCE  NOT NULL,
-    CONSTRAINT PK_SPECTRUM_REFERENCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATION_FRACTIONS"                                     */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATION_FRACTIONS (
-    ID BIGSERIAL  NOT NULL,
-    MODI_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    FRACTION REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATION_FRACTIONS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "EVENTS"                                                     */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE EVENTS (
-    LAST_SEEN_DELETION_EVENT_ID TECH_ID  NOT NULL
-);
-
-/* ---------------------------------------------------------------------- */
-/* Foreign key constraints                                                */
-/* ---------------------------------------------------------------------- */
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_EX_FK 
-    FOREIGN KEY (EXPE_ID) REFERENCES EXPERIMENTS (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_SA_FK 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DATABASES_DATA_SETS 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE MODIFICATIONS ADD CONSTRAINT MODIFIED_PEPTIDES_MODIFICATIONS 
-    FOREIGN KEY (MOPE_ID) REFERENCES MODIFIED_PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE PEPTIDES ADD CONSTRAINT PE_PR_FK 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROTEINS ADD CONSTRAINT DATA_SETS_PROTEINS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT DATABASES_SEQUENCES 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT PROTEIN_REFERENCES_SEQUENCES 
-    FOREIGN KEY (PRRE_ID) REFERENCES PROTEIN_REFERENCES (ID);
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT PROTEINS_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT SEQUENCES_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (SEQU_ID) REFERENCES SEQUENCES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT SAMPLES_ABUNDANCES 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT PROTEINS_ABUNDANCES 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROBABILITY_FDR_MAPPINGS ADD CONSTRAINT DATA_SETS_PROBABILITY_FDR_MAPPINGS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFIED_PEPTIDES ADD CONSTRAINT PEPTIDES_MODIFIED_PEPTIDES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE SPECTRUM_REFERENCES ADD CONSTRAINT PEPTIDES_SPECTRUM_REFERENCES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT MODIFICATIONS_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (MODI_ID) REFERENCES MODIFICATIONS (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT SAMPLES_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/004/grant-004.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/004/grant-004.sql
deleted file mode 100644
index 2e85f4fb1f6fcbb7f072005f9d1ab5ad9e1fe713..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/004/grant-004.sql
+++ /dev/null
@@ -1,18 +0,0 @@
--- Granting SELECT privilege to group PHOSPHONETX_READONLY
-
-GRANT SELECT ON TABLE EXPERIMENTS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE DATA_SETS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE MODIFICATIONS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PEPTIDES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PROTEINS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE SAMPLES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE SEQUENCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE IDENTIFIED_PROTEINS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE ABUNDANCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PROBABILITY_FDR_MAPPINGS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PROTEIN_REFERENCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE DATABASES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE MODIFIED_PEPTIDES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE SPECTRUM_REFERENCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE MODIFICATION_FRACTIONS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE EVENTS TO GROUP PHOSPHONETX_READONLY;
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/004/schema-004.png b/rtd_phosphonetx/source/sql/proteomics/postgresql/004/schema-004.png
deleted file mode 100755
index fceffeedd9cb97b93e06432546eb207feba07418..0000000000000000000000000000000000000000
Binary files a/rtd_phosphonetx/source/sql/proteomics/postgresql/004/schema-004.png and /dev/null differ
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/004/schema-004.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/004/schema-004.sql
deleted file mode 100755
index 824269ff55a707aa7124dbd2b18b3e0f6c4f6a4a..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/004/schema-004.sql
+++ /dev/null
@@ -1,296 +0,0 @@
-/* ---------------------------------------------------------------------- */
-/* Script generated with: DeZign for Databases v5.2.3                     */
-/* Target DBMS:           PostgreSQL 8                                    */
-/* Project file:          schema.dez                                      */
-/* Project name:                                                          */
-/* Author:                                                                */
-/* Script type:           Database creation script                        */
-/* Created on:            2010-05-27 14:26                                */
-/* Model version:         Version 2010-05-27                              */
-/* ---------------------------------------------------------------------- */
-
-
-/* ---------------------------------------------------------------------- */
-/* Domains                                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE DOMAIN CHECKSUM AS CHARACTER VARYING(8);
-
-CREATE DOMAIN CODE AS CHARACTER VARYING(40);
-
-CREATE DOMAIN DESCRIPTION AS CHARACTER VARYING(2000);
-
-CREATE DOMAIN INTEGER_NUMBER AS INTEGER;
-
-CREATE DOMAIN REAL_NUMBER AS DOUBLE PRECISION;
-
-CREATE DOMAIN LONG_SEQUENCE AS TEXT;
-
-CREATE DOMAIN SHORT_DESCRIPTION AS CHARACTER VARYING(200);
-
-CREATE DOMAIN TECH_ID AS BIGINT;
-
-CREATE DOMAIN SHORT_SEQUENCE AS CHARACTER VARYING(1000);
-
-CREATE DOMAIN ACCESSION_NUMBER AS CHARACTER VARYING(256);
-
-CREATE DOMAIN SPECTRUM_REFERENCE AS CHARACTER VARYING(100);
-
-CREATE DOMAIN BOOLEAN_CHAR AS BOOLEAN DEFAULT FALSE;
-
-/* ---------------------------------------------------------------------- */
-/* Tables                                                                 */
-/* ---------------------------------------------------------------------- */
-
-/* ---------------------------------------------------------------------- */
-/* Add table "EXPERIMENTS"                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE EXPERIMENTS (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_EXPERIMENTS PRIMARY KEY (ID),
-    CONSTRAINT TUC_EXPERIMENTS_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATA_SETS"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATA_SETS (
-    ID BIGSERIAL  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    DB_ID TECH_ID  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_DATA_SETS PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATA_SETS_1 UNIQUE (PERM_ID)
-);
-
-CREATE INDEX IX_FK_DATA_SETS_EXPERIMENTS ON DATA_SETS (EXPE_ID);
-
-CREATE INDEX IX_FK_DATA_SETS_SAMPLES ON DATA_SETS (SAMP_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATIONS"                                              */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATIONS (
-    ID BIGSERIAL  NOT NULL,
-    MOPE_ID TECH_ID  NOT NULL,
-    POS INTEGER_NUMBER  NOT NULL,
-    MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATIONS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PEPTIDES"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQUENCE SHORT_SEQUENCE  NOT NULL,
-    CHARGE INTEGER_NUMBER  NOT NULL,
-    CONSTRAINT PK_PEPTIDES PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_PEPTIDES_PROTEINS ON PEPTIDES (PROT_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEINS"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROTEINS PRIMARY KEY (ID)
-);
-
-CREATE INDEX IDX_PROTEINS_1 ON PROTEINS (DASE_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SAMPLES"                                                    */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SAMPLES (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    CONSTRAINT PK_SAMPLES PRIMARY KEY (ID),
-    CONSTRAINT TUC_SAMPLES_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SEQUENCES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SEQUENCES (
-    ID BIGSERIAL  NOT NULL,
-    DB_ID TECH_ID  NOT NULL,
-    PRRE_ID TECH_ID  NOT NULL,
-    AMINO_ACID_SEQUENCE LONG_SEQUENCE  NOT NULL,
-    CHECKSUM CHECKSUM  NOT NULL,
-    CONSTRAINT PK_SEQUENCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "IDENTIFIED_PROTEINS"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE IDENTIFIED_PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQU_ID TECH_ID  NOT NULL,
-    COVERAGE REAL_NUMBER,
-    IS_PRIMARY BOOLEAN_CHAR  NOT NULL,
-    CONSTRAINT PK_IDENTIFIED_PROTEINS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "ABUNDANCES"                                                 */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE ABUNDANCES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID  NOT NULL,
-    VALUE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_ABUNDANCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROBABILITY_FDR_MAPPINGS"                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROBABILITY_FDR_MAPPINGS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    FALSE_DISCOVERY_RATE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROBABILITY_FDR_MAPPINGS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEIN_REFERENCES"                                         */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEIN_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    ACCESSION_NUMBER ACCESSION_NUMBER  NOT NULL,
-    DESCRIPTION DESCRIPTION,
-    CONSTRAINT PK_PROTEIN_REFERENCES PRIMARY KEY (ID),
-    CONSTRAINT TUC_PROTEIN_REFERENCES_1 UNIQUE (ACCESSION_NUMBER)
-);
-
-CREATE INDEX IDX_PROTEIN_REFERENCES_1 ON PROTEIN_REFERENCES (ACCESSION_NUMBER);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATABASES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATABASES (
-    ID BIGSERIAL  NOT NULL,
-    NAME_AND_VERSION SHORT_DESCRIPTION  NOT NULL,
-    CONSTRAINT PK_DATABASES PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATABASES_1 UNIQUE (NAME_AND_VERSION)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFIED_PEPTIDES"                                          */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFIED_PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    NTERM_MASS REAL_NUMBER  NOT NULL,
-    CTERM_MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFIED_PEPTIDES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SPECTRUM_REFERENCES"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SPECTRUM_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    REFERENCE SPECTRUM_REFERENCE  NOT NULL,
-    CONSTRAINT PK_SPECTRUM_REFERENCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATION_FRACTIONS"                                     */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATION_FRACTIONS (
-    ID BIGSERIAL  NOT NULL,
-    MODI_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    FRACTION REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATION_FRACTIONS PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "EVENTS"                                                     */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE EVENTS (
-    LAST_SEEN_DELETION_EVENT_ID TECH_ID  NOT NULL
-);
-
-/* ---------------------------------------------------------------------- */
-/* Foreign key constraints                                                */
-/* ---------------------------------------------------------------------- */
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_EX_FK 
-    FOREIGN KEY (EXPE_ID) REFERENCES EXPERIMENTS (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_SA_FK 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DATABASES_DATA_SETS 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE MODIFICATIONS ADD CONSTRAINT MODIFIED_PEPTIDES_MODIFICATIONS 
-    FOREIGN KEY (MOPE_ID) REFERENCES MODIFIED_PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE PEPTIDES ADD CONSTRAINT PE_PR_FK 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROTEINS ADD CONSTRAINT DATA_SETS_PROTEINS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT DATABASES_SEQUENCES 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT PROTEIN_REFERENCES_SEQUENCES 
-    FOREIGN KEY (PRRE_ID) REFERENCES PROTEIN_REFERENCES (ID);
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT PROTEINS_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT SEQUENCES_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (SEQU_ID) REFERENCES SEQUENCES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT SAMPLES_ABUNDANCES 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT PROTEINS_ABUNDANCES 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROBABILITY_FDR_MAPPINGS ADD CONSTRAINT DATA_SETS_PROBABILITY_FDR_MAPPINGS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFIED_PEPTIDES ADD CONSTRAINT PEPTIDES_MODIFIED_PEPTIDES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE SPECTRUM_REFERENCES ADD CONSTRAINT PEPTIDES_SPECTRUM_REFERENCES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT MODIFICATIONS_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (MODI_ID) REFERENCES MODIFICATIONS (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT SAMPLES_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/005/grant-005.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/005/grant-005.sql
deleted file mode 100644
index 2e85f4fb1f6fcbb7f072005f9d1ab5ad9e1fe713..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/005/grant-005.sql
+++ /dev/null
@@ -1,18 +0,0 @@
--- Granting SELECT privilege to group PHOSPHONETX_READONLY
-
-GRANT SELECT ON TABLE EXPERIMENTS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE DATA_SETS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE MODIFICATIONS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PEPTIDES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PROTEINS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE SAMPLES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE SEQUENCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE IDENTIFIED_PROTEINS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE ABUNDANCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PROBABILITY_FDR_MAPPINGS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE PROTEIN_REFERENCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE DATABASES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE MODIFIED_PEPTIDES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE SPECTRUM_REFERENCES TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE MODIFICATION_FRACTIONS TO GROUP PHOSPHONETX_READONLY;
-GRANT SELECT ON TABLE EVENTS TO GROUP PHOSPHONETX_READONLY;
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/005/schema-005.png b/rtd_phosphonetx/source/sql/proteomics/postgresql/005/schema-005.png
deleted file mode 100755
index fceffeedd9cb97b93e06432546eb207feba07418..0000000000000000000000000000000000000000
Binary files a/rtd_phosphonetx/source/sql/proteomics/postgresql/005/schema-005.png and /dev/null differ
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/005/schema-005.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/005/schema-005.sql
deleted file mode 100755
index ac882b6f7f95c258cc5bced92fa286c8e844232b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/005/schema-005.sql
+++ /dev/null
@@ -1,310 +0,0 @@
-/* ---------------------------------------------------------------------- */
-/* Script generated with: DeZign for Databases v5.2.3                     */
-/* Target DBMS:           PostgreSQL 8                                    */
-/* Project file:          schema.dez                                      */
-/* Project name:                                                          */
-/* Author:                                                                */
-/* Script type:           Database creation script                        */
-/* Created on:            2011-06-08 08:28                                */
-/* Model version:         Version 2011-06-08                              */
-/* ---------------------------------------------------------------------- */
-
-
-/* ---------------------------------------------------------------------- */
-/* Domains                                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE DOMAIN CHECKSUM AS CHARACTER VARYING(8);
-
-CREATE DOMAIN CODE AS CHARACTER VARYING(40);
-
-CREATE DOMAIN DESCRIPTION AS CHARACTER VARYING(2000);
-
-CREATE DOMAIN INTEGER_NUMBER AS INTEGER;
-
-CREATE DOMAIN REAL_NUMBER AS DOUBLE PRECISION;
-
-CREATE DOMAIN LONG_SEQUENCE AS TEXT;
-
-CREATE DOMAIN SHORT_DESCRIPTION AS CHARACTER VARYING(200);
-
-CREATE DOMAIN TECH_ID AS BIGINT;
-
-CREATE DOMAIN SHORT_SEQUENCE AS CHARACTER VARYING(1000);
-
-CREATE DOMAIN ACCESSION_NUMBER AS CHARACTER VARYING(256);
-
-CREATE DOMAIN SPECTRUM_REFERENCE AS CHARACTER VARYING(100);
-
-CREATE DOMAIN BOOLEAN_CHAR AS BOOLEAN DEFAULT FALSE;
-
-/* ---------------------------------------------------------------------- */
-/* Tables                                                                 */
-/* ---------------------------------------------------------------------- */
-
-/* ---------------------------------------------------------------------- */
-/* Add table "EXPERIMENTS"                                                */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE EXPERIMENTS (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_EXPERIMENTS PRIMARY KEY (ID),
-    CONSTRAINT TUC_EXPERIMENTS_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATA_SETS"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATA_SETS (
-    ID BIGSERIAL  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    DB_ID TECH_ID  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    CONSTRAINT PK_DATA_SETS PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATA_SETS_1 UNIQUE (PERM_ID)
-);
-
-CREATE INDEX IX_FK_DATA_SETS_EXPERIMENTS ON DATA_SETS (EXPE_ID);
-
-CREATE INDEX IX_FK_DATA_SETS_SAMPLES ON DATA_SETS (SAMP_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATIONS"                                              */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATIONS (
-    ID BIGSERIAL  NOT NULL,
-    MOPE_ID TECH_ID  NOT NULL,
-    POS INTEGER_NUMBER  NOT NULL,
-    MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATIONS PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_MODIFICATIONS_MODIFIED_PEPTIDES ON MODIFICATIONS (MOPE_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PEPTIDES"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQUENCE SHORT_SEQUENCE  NOT NULL,
-    CHARGE INTEGER_NUMBER  NOT NULL,
-    CONSTRAINT PK_PEPTIDES PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_PEPTIDES_PROTEINS ON PEPTIDES (PROT_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEINS"                                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROTEINS PRIMARY KEY (ID)
-);
-
-CREATE INDEX IDX_PROTEINS_1 ON PROTEINS (DASE_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SAMPLES"                                                    */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SAMPLES (
-    ID BIGSERIAL  NOT NULL,
-    PERM_ID CODE  NOT NULL,
-    EXPE_ID TECH_ID  NOT NULL,
-    CONSTRAINT PK_SAMPLES PRIMARY KEY (ID),
-    CONSTRAINT TUC_SAMPLES_1 UNIQUE (PERM_ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SEQUENCES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SEQUENCES (
-    ID BIGSERIAL  NOT NULL,
-    DB_ID TECH_ID  NOT NULL,
-    PRRE_ID TECH_ID  NOT NULL,
-    AMINO_ACID_SEQUENCE LONG_SEQUENCE  NOT NULL,
-    CHECKSUM CHECKSUM  NOT NULL,
-    CONSTRAINT PK_SEQUENCES PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_SEQUENCES_PROTEIN_REFERENCES ON SEQUENCES (PRRE_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "IDENTIFIED_PROTEINS"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE IDENTIFIED_PROTEINS (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SEQU_ID TECH_ID  NOT NULL,
-    COVERAGE REAL_NUMBER,
-    IS_PRIMARY BOOLEAN_CHAR  NOT NULL,
-    CONSTRAINT PK_IDENTIFIED_PROTEINS PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_IDENTIFIED_PROTEINS_PROTEINS ON IDENTIFIED_PROTEINS (PROT_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "ABUNDANCES"                                                 */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE ABUNDANCES (
-    ID BIGSERIAL  NOT NULL,
-    PROT_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID  NOT NULL,
-    VALUE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_ABUNDANCES PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_ABUNDANCES_PROTEINS ON ABUNDANCES (PROT_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROBABILITY_FDR_MAPPINGS"                                   */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROBABILITY_FDR_MAPPINGS (
-    ID BIGSERIAL  NOT NULL,
-    DASE_ID TECH_ID  NOT NULL,
-    PROBABILITY REAL_NUMBER  NOT NULL,
-    FALSE_DISCOVERY_RATE REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_PROBABILITY_FDR_MAPPINGS PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_PROBABILITY_FDR_MAPPINGS_DATA_SETS ON PROBABILITY_FDR_MAPPINGS (DASE_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "PROTEIN_REFERENCES"                                         */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE PROTEIN_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    ACCESSION_NUMBER ACCESSION_NUMBER  NOT NULL,
-    DESCRIPTION DESCRIPTION,
-    CONSTRAINT PK_PROTEIN_REFERENCES PRIMARY KEY (ID),
-    CONSTRAINT TUC_PROTEIN_REFERENCES_1 UNIQUE (ACCESSION_NUMBER)
-);
-
-CREATE INDEX IDX_PROTEIN_REFERENCES_1 ON PROTEIN_REFERENCES (ACCESSION_NUMBER);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "DATABASES"                                                  */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE DATABASES (
-    ID BIGSERIAL  NOT NULL,
-    NAME_AND_VERSION SHORT_DESCRIPTION  NOT NULL,
-    CONSTRAINT PK_DATABASES PRIMARY KEY (ID),
-    CONSTRAINT TUC_DATABASES_1 UNIQUE (NAME_AND_VERSION)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFIED_PEPTIDES"                                          */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFIED_PEPTIDES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    NTERM_MASS REAL_NUMBER  NOT NULL,
-    CTERM_MASS REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFIED_PEPTIDES PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_MODIFIED_PEPTIDES_PEPTIDES ON MODIFIED_PEPTIDES (PEPT_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "SPECTRUM_REFERENCES"                                        */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE SPECTRUM_REFERENCES (
-    ID BIGSERIAL  NOT NULL,
-    PEPT_ID TECH_ID  NOT NULL,
-    REFERENCE SPECTRUM_REFERENCE  NOT NULL,
-    CONSTRAINT PK_SPECTRUM_REFERENCES PRIMARY KEY (ID)
-);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "MODIFICATION_FRACTIONS"                                     */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE MODIFICATION_FRACTIONS (
-    ID BIGSERIAL  NOT NULL,
-    MODI_ID TECH_ID  NOT NULL,
-    SAMP_ID TECH_ID,
-    FRACTION REAL_NUMBER  NOT NULL,
-    CONSTRAINT PK_MODIFICATION_FRACTIONS PRIMARY KEY (ID)
-);
-
-CREATE INDEX IX_FK_MODIFICATION_FRACTIONS_MODIFICATIONS ON MODIFICATION_FRACTIONS (MODI_ID);
-
-/* ---------------------------------------------------------------------- */
-/* Add table "EVENTS"                                                     */
-/* ---------------------------------------------------------------------- */
-
-CREATE TABLE EVENTS (
-    LAST_SEEN_DELETION_EVENT_ID TECH_ID  NOT NULL
-);
-
-/* ---------------------------------------------------------------------- */
-/* Foreign key constraints                                                */
-/* ---------------------------------------------------------------------- */
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_EX_FK 
-    FOREIGN KEY (EXPE_ID) REFERENCES EXPERIMENTS (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DA_SA_FK 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE DATA_SETS ADD CONSTRAINT DATABASES_DATA_SETS 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE MODIFICATIONS ADD CONSTRAINT MODIFIED_PEPTIDES_MODIFICATIONS 
-    FOREIGN KEY (MOPE_ID) REFERENCES MODIFIED_PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE PEPTIDES ADD CONSTRAINT PE_PR_FK 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROTEINS ADD CONSTRAINT DATA_SETS_PROTEINS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT DATABASES_SEQUENCES 
-    FOREIGN KEY (DB_ID) REFERENCES DATABASES (ID);
-
-ALTER TABLE SEQUENCES ADD CONSTRAINT PROTEIN_REFERENCES_SEQUENCES 
-    FOREIGN KEY (PRRE_ID) REFERENCES PROTEIN_REFERENCES (ID);
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT PROTEINS_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT SEQUENCES_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (SEQU_ID) REFERENCES SEQUENCES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT SAMPLES_ABUNDANCES 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
-
-ALTER TABLE ABUNDANCES ADD CONSTRAINT PROTEINS_ABUNDANCES 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROBABILITY_FDR_MAPPINGS ADD CONSTRAINT DATA_SETS_PROBABILITY_FDR_MAPPINGS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFIED_PEPTIDES ADD CONSTRAINT PEPTIDES_MODIFIED_PEPTIDES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE SPECTRUM_REFERENCES ADD CONSTRAINT PEPTIDES_SPECTRUM_REFERENCES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT MODIFICATIONS_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (MODI_ID) REFERENCES MODIFICATIONS (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT SAMPLES_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID);
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-001-002.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-001-002.sql
deleted file mode 100644
index 36900c0353f3e94c6d1750a4517929ec58e96d1d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-001-002.sql
+++ /dev/null
@@ -1,41 +0,0 @@
-CREATE TABLE EVENTS (
-    LAST_SEEN_DELETION_EVENT_ID TECH_ID  NOT NULL
-);
-
-
-ALTER TABLE MODIFICATIONS DROP CONSTRAINT MODIFIED_PEPTIDES_MODIFICATIONS;
-ALTER TABLE MODIFICATIONS ADD CONSTRAINT MODIFIED_PEPTIDES_MODIFICATIONS 
-    FOREIGN KEY (MOPE_ID) REFERENCES MODIFIED_PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE PEPTIDES DROP CONSTRAINT PE_PR_FK;
-ALTER TABLE PEPTIDES ADD CONSTRAINT PE_PR_FK 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROTEINS DROP CONSTRAINT DATA_SETS_PROTEINS; 
-ALTER TABLE PROTEINS ADD CONSTRAINT DATA_SETS_PROTEINS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE IDENTIFIED_PROTEINS DROP CONSTRAINT PROTEINS_IDENTIFIED_PROTEINS;
-ALTER TABLE IDENTIFIED_PROTEINS ADD CONSTRAINT PROTEINS_IDENTIFIED_PROTEINS 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-    
-ALTER TABLE ABUNDANCES DROP CONSTRAINT PROTEINS_ABUNDANCES;
-ALTER TABLE ABUNDANCES ADD CONSTRAINT PROTEINS_ABUNDANCES 
-    FOREIGN KEY (PROT_ID) REFERENCES PROTEINS (ID) ON DELETE CASCADE;
-
-ALTER TABLE PROBABILITY_FDR_MAPPINGS DROP CONSTRAINT DATA_SETS_PROBABILITY_FDR_MAPPINGS;
-ALTER TABLE PROBABILITY_FDR_MAPPINGS ADD CONSTRAINT DATA_SETS_PROBABILITY_FDR_MAPPINGS 
-    FOREIGN KEY (DASE_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFIED_PEPTIDES DROP CONSTRAINT PEPTIDES_MODIFIED_PEPTIDES;
-ALTER TABLE MODIFIED_PEPTIDES ADD CONSTRAINT PEPTIDES_MODIFIED_PEPTIDES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE SPECTRUM_REFERENCES DROP CONSTRAINT PEPTIDES_SPECTRUM_REFERENCES;
-ALTER TABLE SPECTRUM_REFERENCES ADD CONSTRAINT PEPTIDES_SPECTRUM_REFERENCES 
-    FOREIGN KEY (PEPT_ID) REFERENCES PEPTIDES (ID) ON DELETE CASCADE;
-
-ALTER TABLE MODIFICATION_FRACTIONS DROP CONSTRAINT MODIFICATIONS_MODIFICATION_FRACTIONS;
-ALTER TABLE MODIFICATION_FRACTIONS ADD CONSTRAINT MODIFICATIONS_MODIFICATION_FRACTIONS 
-    FOREIGN KEY (MODI_ID) REFERENCES MODIFICATIONS (ID) ON DELETE CASCADE;
-    
\ No newline at end of file
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-002-003.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-002-003.sql
deleted file mode 100644
index 639f94657a5f066a34d862909c8e7ded53784ad6..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-002-003.sql
+++ /dev/null
@@ -1,4 +0,0 @@
--- JAVA ch.systemsx.cisd.openbis.plugin.phosphonetx.server.dataaccess.db.migration.MigrationStepFrom002To003
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD COLUMN COVERAGE REAL_NUMBER;
-
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-003-004.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-003-004.sql
deleted file mode 100644
index 84d3d8a841b803eab39cba657d98ffd029532b8d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-003-004.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-CREATE DOMAIN BOOLEAN_CHAR AS BOOLEAN DEFAULT FALSE;
-
-ALTER TABLE IDENTIFIED_PROTEINS ADD COLUMN IS_PRIMARY BOOLEAN_CHAR NOT NULL;
-
-UPDATE IDENTIFIED_PROTEINS SET IS_PRIMARY = 'T' WHERE ID = ANY(SELECT MIN(ID) FROM IDENTIFIED_PROTEINS GROUP BY PROT_ID);
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-004-005.sql b/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-004-005.sql
deleted file mode 100644
index fb183f726adecd5629e15775891a7fef0c12d313..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/migration/migration-004-005.sql
+++ /dev/null
@@ -1,14 +0,0 @@
-DROP INDEX IF EXISTS IX_FK_MODIFICATION_FRACTIONS_MODIFICATIONS;
-CREATE INDEX IX_FK_MODIFICATION_FRACTIONS_MODIFICATIONS ON MODIFICATION_FRACTIONS (MODI_ID);
-DROP INDEX IF EXISTS IX_FK_MODIFICATIONS_MODIFIED_PEPTIDES;
-CREATE INDEX IX_FK_MODIFICATIONS_MODIFIED_PEPTIDES ON MODIFICATIONS (MOPE_ID);
-DROP INDEX IF EXISTS IX_FK_MODIFIED_PEPTIDES_PEPTIDES;
-CREATE INDEX IX_FK_MODIFIED_PEPTIDES_PEPTIDES ON MODIFIED_PEPTIDES (PEPT_ID);
-DROP INDEX IF EXISTS IX_FK_ABUNDANCES_PROTEINS;
-CREATE INDEX IX_FK_ABUNDANCES_PROTEINS ON ABUNDANCES (PROT_ID);
-DROP INDEX IF EXISTS IX_FK_IDENTIFIED_PROTEINS_PROTEINS;
-CREATE INDEX IX_FK_IDENTIFIED_PROTEINS_PROTEINS ON IDENTIFIED_PROTEINS (PROT_ID);
-DROP INDEX IF EXISTS IX_FK_SEQUENCES_PROTEIN_REFERENCES;
-CREATE INDEX IX_FK_SEQUENCES_PROTEIN_REFERENCES ON SEQUENCES (PRRE_ID);
-DROP INDEX IF EXISTS IX_FK_PROBABILITY_FDR_MAPPINGS_DATA_SETS;
-CREATE INDEX IX_FK_PROBABILITY_FDR_MAPPINGS_DATA_SETS ON PROBABILITY_FDR_MAPPINGS (DASE_ID);
diff --git a/rtd_phosphonetx/source/sql/proteomics/postgresql/schema.dez b/rtd_phosphonetx/source/sql/proteomics/postgresql/schema.dez
deleted file mode 100755
index 4c8ebf447f362fd14c27f10b342daf24861bbf42..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/source/sql/proteomics/postgresql/schema.dez
+++ /dev/null
@@ -1,26376 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?><dezign>
-
-<FILEFORMATVERSION>51</FILEFORMATVERSION>
-<VERSION>
-<PROJECTSETTINGS>
-<PROJECTFILENAME>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\phosphonetx.dez</PROJECTFILENAME>
-<MODIFIED>2011-06-08</MODIFIED>
-<CREATED>2009-06-29</CREATED>
-<CREATED2></CREATED2>
-<PROJECTNAME></PROJECTNAME>
-<DESCRIPTION></DESCRIPTION>
-<AUTHOR></AUTHOR>
-<COPYRIGHT></COPYRIGHT>
-<LASTGENERATEDFILES>G:\phosphonetx\datamodel\schema.sql;G:\phosphonetx\datamodel\drop.sql;\CreateDBLog_201106081.txt</LASTGENERATEDFILES>
-</PROJECTSETTINGS>
-<CONNECTIONSETTINGS>
-<SQLFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLFILE>
-<CONNECTIONTYPE>SQLFILE</CONNECTIONTYPE>
-<DBID>postgresql8</DBID>
-</CONNECTIONSETTINGS>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>236</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>G:\phosphonetx\datamodel\schema.sql</SQLCREATEFILE>
-<SQLDROPFILE>G:\phosphonetx\datamodel\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>256</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SPECTRUM_REFERENCE</NAME>
-<ID>171</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>100</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>BOOLEAN_CHAR</NAME>
-<ID>188</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BOOLEAN</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<DEFCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>FALSE</VALUE>
-<CONLEVEL>0</CONLEVEL>
-<CONTYPE>6</CONTYPE>
-<ATTRIBUTEIDS>
-</ATTRIBUTEIDS>
-</DEFCON>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>6</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOPE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>7</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_%table%_%counter%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_SEQUENCES_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>IX_FK_SEQUENCES_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PRRE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>COVERAGE</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>IS_PRIMARY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>188</DOMAINID>
-<DT>
-<DTLISTNAME>BOOLEAN</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-<DEFCON>
-<NAME></NAME>
-<NAMETEMPLATE>DEF_%table%_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>FALSE</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>6</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</DEFCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_IDENTIFIED_PROTEINS_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFIED_PROTEINS_PROTEINS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_ABUNDANCES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_ABUNDANCES_PROTEINS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PROBABILITY_FDR_MAPPINGS_DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_PROBABILITY_FDR_MAPPINGS_DATA_SETS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ACCESSION_NUMBER</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>256</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>ACCESSION_NUMBER</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_%table%_%counter%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>136</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NTERM_MASS</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CTERM_MASS</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFIED_PEPTIDES_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFIED_PEPTIDES_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SPECTRUM_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>160</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SPECTRUM_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>REFERENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>171</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>100</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>173</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MODI_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>FRACTION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATION_FRACTIONS_MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATION_FRACTIONS_MODIFICATIONS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MODI_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>EVENTS</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>176</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>2</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<ATTRIBUTES>
-<ATTR>
-<NAME>LAST_SEEN_DELETION_EVENT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>2</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>2</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>2</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>2</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>2</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>138</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>136</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>2</DELETERULE>
-<CONSTRAINT>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>139</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>136</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>2</DELETERULE>
-<CONSTRAINT>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>7</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PEPTIDES_SPECTRUM_REFERENCES</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>172</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>160</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>2</DELETERULE>
-<CONSTRAINT>
-<NAME>PEPTIDES_SPECTRUM_REFERENCES</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>2</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MODIFICATIONS_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>174</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>19</PARENTOBJECTID>
-<CHILDOBJECTID>173</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>2</DELETERULE>
-<CONSTRAINT>
-<NAME>MODIFICATIONS_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>%parent%_%child%</NAMETEMPLATE>
-<ID>175</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>173</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_MODIFICATION_FRACTIONS</NAME>
-<NAMETEMPLATE>%relname%</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-<DIAGRAMS>
-<DisplayPreferences>
-<USEINDICATORLINE>0</USEINDICATORLINE>
-<INDICATORBITMAPS>0</INDICATORBITMAPS>
-<PKINDICATOR>PK</PKINDICATOR>
-<FKINDICATOR>FK</FKINDICATOR>
-<PFINDICATOR>PF</PFINDICATOR>
-<NOTNULLINDICATOR>*</NOTNULLINDICATOR>
-<INDICATORPOSITION>0</INDICATORPOSITION>
-<DEFTEXTAREACOLOR>16777215</DEFTEXTAREACOLOR>
-<DEFENTCOLOR>16777215</DEFENTCOLOR>
-<DEFSTAMPCOLOR>16777215</DEFSTAMPCOLOR>
-<DEFGROUPBOXCOLOR>8421504</DEFGROUPBOXCOLOR>
-<DEFTEXTAREALINECOLOR>0</DEFTEXTAREALINECOLOR>
-<DEFENTLINECOLOR>0</DEFENTLINECOLOR>
-<DEFSTAMPLINECOLOR>0</DEFSTAMPLINECOLOR>
-<DEFSUBCATLINECOLOR>0</DEFSUBCATLINECOLOR>
-<DEFCONLINECOLOR>0</DEFCONLINECOLOR>
-<DEFGROUPBOXLINECOLOR>0</DEFGROUPBOXLINECOLOR>
-<DEFTEXTAREATRANSPARENT>0</DEFTEXTAREATRANSPARENT>
-<DEFSTAMPTRANSPARENT>0</DEFSTAMPTRANSPARENT>
-<DEFTEXTAREALINEWIDTH>1</DEFTEXTAREALINEWIDTH>
-<DEFSTAMPLINEWIDTH>1</DEFSTAMPLINEWIDTH>
-<DEFGROUPBOXLINEWIDTH>0</DEFGROUPBOXLINEWIDTH>
-<DEFTEXTAREALINESTYLE>0</DEFTEXTAREALINESTYLE>
-<DEFSTAMPLINESTYLE>0</DEFSTAMPLINESTYLE>
-<DEFGROUPBOXLINESTYLE>0</DEFGROUPBOXLINESTYLE>
-<ENTNAMEFONT>Arial,9,B,0,clNavy,0</ENTNAMEFONT>
-<ENTPKFONT>Arial,8,B,0,clWindowText,0</ENTPKFONT>
-<ENTFKFONT>Arial,8,I,0,clWindowText,0</ENTFKFONT>
-<ENTATTRFONT>Arial,8,,0,clWindowText,0</ENTATTRFONT>
-<TEXTAREAFONT>Arial,8,,0,clWindowText,0</TEXTAREAFONT>
-<GROUPBOXFONT>Arial,8,,0,clWindowText,0</GROUPBOXFONT>
-<CAPTIONFONT>Arial,8,,0,clWindowText,0</CAPTIONFONT>
-</DisplayPreferences>
-<DIAGRAM>
-<ID>1</ID>
-<NAME>Main Diagram</NAME>
-<DESC></DESC>
-<TODO></TODO>
-<ISMAINDIAGRAM>1</ISMAINDIAGRAM>
-<BGCOLOR>16777215</BGCOLOR>
-<DISPLAYLEVEL>0</DISPLAYLEVEL>
-<VISIBLEATTR>2</VISIBLEATTR>
-<CAPTIONSTYLE>0</CAPTIONSTYLE>
-<SHOWPKINDICATOR>1</SHOWPKINDICATOR>
-<SHOWFKINDICATOR>1</SHOWFKINDICATOR>
-<SHOWNOTNULLINDICATOR>1</SHOWNOTNULLINDICATOR>
-<NOTATION>0</NOTATION>
-</DIAGRAM>
-<CONTROLS>
-<ENTITYCONTROLS>
-<ENTC>
-<ID>16</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>136</W>
-<H>63</H>
-<L>544</L>
-<T>1</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>17</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>139</W>
-<H>108</H>
-<L>295</L>
-<T>1</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>19</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>177</W>
-<H>93</H>
-<L>12</L>
-<T>628</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>21</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>187</W>
-<H>93</H>
-<L>271</L>
-<T>480</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>23</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>180</W>
-<H>78</H>
-<L>274</L>
-<T>328</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>24</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>136</W>
-<H>78</H>
-<L>12</L>
-<T>1</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>25</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>250</W>
-<H>108</H>
-<L>754</L>
-<T>328</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>47</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>184</W>
-<H>108</H>
-<L>518</L>
-<T>328</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>91</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>161</W>
-<H>93</H>
-<L>114</L>
-<T>182</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>96</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>243</W>
-<H>93</H>
-<L>490</L>
-<T>182</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>98</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>252</W>
-<H>78</H>
-<L>752</L>
-<T>480</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>110</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>252</W>
-<H>63</H>
-<L>752</L>
-<T>91</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>136</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>183</W>
-<H>93</H>
-<L>273</L>
-<T>628</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>160</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>214</W>
-<H>78</H>
-<L>505</L>
-<T>480</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>173</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>164</W>
-<H>93</H>
-<L>12</L>
-<T>480</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-<ENTC>
-<ID>176</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<W>226</W>
-<H>48</H>
-<L>778</L>
-<T>1</T>
-<BRUSH>0,16777215</BRUSH>
-<PEN>0,1,4,0</PEN>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<TR>0</TR>
-<AS>1</AS>
-</ENTC>
-</ENTITYCONTROLS>
-<SUBCATEGORYCONTROLS>
-</SUBCATEGORYCONTROLS>
-<TEXTAREACONTROLS>
-</TEXTAREACONTROLS>
-<STAMPCONTROLS>
-</STAMPCONTROLS>
-<GROUPBOXESCONTROLS>
-</GROUPBOXESCONTROLS>
-<RELATIONSHIPCONNECTORS>
-<RELC>
-<ID>29</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>4921</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>2870</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>543</X>
-<Y>32</Y>
-</POINT>
-<POINT>
-<X>480</X>
-<Y>32</Y>
-</POINT>
-<POINT>
-<X>480</X>
-<Y>32</Y>
-</POINT>
-<POINT>
-<X>434</X>
-<Y>32</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>30</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>3611</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>148</X>
-<Y>40</Y>
-</POINT>
-<POINT>
-<X>219</X>
-<Y>40</Y>
-</POINT>
-<POINT>
-<X>219</X>
-<Y>40</Y>
-</POINT>
-<POINT>
-<X>294</X>
-<Y>40</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>36</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>4973</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>364</X>
-<Y>406</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>428</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>428</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>479</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>46</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>4964</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>364</X>
-<Y>109</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>183</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>183</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>327</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>48</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>3611</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>454</X>
-<Y>367</Y>
-</POINT>
-<POINT>
-<X>489</X>
-<Y>367</Y>
-</POINT>
-<POINT>
-<X>489</X>
-<Y>367</Y>
-</POINT>
-<POINT>
-<X>517</X>
-<Y>367</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>50</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>2840</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>753</X>
-<Y>382</Y>
-</POINT>
-<POINT>
-<X>722</X>
-<Y>382</Y>
-</POINT>
-<POINT>
-<X>722</X>
-<Y>382</Y>
-</POINT>
-<POINT>
-<X>702</X>
-<Y>382</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>92</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>8750</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>1056</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>131</X>
-<Y>79</Y>
-</POINT>
-<POINT>
-<X>131</X>
-<Y>143</Y>
-</POINT>
-<POINT>
-<X>131</X>
-<Y>143</Y>
-</POINT>
-<POINT>
-<X>131</X>
-<Y>181</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>94</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>0</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>9938</TORELATIVEX>
-<TORELATIVEY>4194</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>274</X>
-<Y>327</Y>
-</POINT>
-<POINT>
-<X>274</X>
-<Y>299</Y>
-</POINT>
-<POINT>
-<X>274</X>
-<Y>299</Y>
-</POINT>
-<POINT>
-<X>274</X>
-<Y>275</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>97</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>8369</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>411</X>
-<Y>109</Y>
-</POINT>
-<POINT>
-<X>411</X>
-<Y>161</Y>
-</POINT>
-<POINT>
-<X>612</X>
-<Y>161</Y>
-</POINT>
-<POINT>
-<X>612</X>
-<Y>181</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>111</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5040</FROMRELATIVEX>
-<FROMRELATIVEY>7619</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>1296</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>879</X>
-<Y>154</Y>
-</POINT>
-<POINT>
-<X>879</X>
-<Y>235</Y>
-</POINT>
-<POINT>
-<X>879</X>
-<Y>235</Y>
-</POINT>
-<POINT>
-<X>879</X>
-<Y>327</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>112</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5040</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>3611</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>879</X>
-<Y>479</Y>
-</POINT>
-<POINT>
-<X>879</X>
-<Y>447</Y>
-</POINT>
-<POINT>
-<X>879</X>
-<Y>447</Y>
-</POINT>
-<POINT>
-<X>879</X>
-<Y>436</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>125</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>1429</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>9167</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>751</X>
-<Y>100</Y>
-</POINT>
-<POINT>
-<X>578</X>
-<Y>100</Y>
-</POINT>
-<POINT>
-<X>578</X>
-<Y>100</Y>
-</POINT>
-<POINT>
-<X>434</X>
-<Y>100</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>138</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>4973</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>4973</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>364</X>
-<Y>573</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>585</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>585</Y>
-</POINT>
-<POINT>
-<X>364</X>
-<Y>627</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>139</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>929</FROMRELATIVEX>
-<FROMRELATIVEY>4946</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>4946</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>272</X>
-<Y>674</Y>
-</POINT>
-<POINT>
-<X>237</X>
-<Y>674</Y>
-</POINT>
-<POINT>
-<X>237</X>
-<Y>674</Y>
-</POINT>
-<POINT>
-<X>189</X>
-<Y>674</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>172</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>4194</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>458</X>
-<Y>519</Y>
-</POINT>
-<POINT>
-<X>469</X>
-<Y>519</Y>
-</POINT>
-<POINT>
-<X>469</X>
-<Y>519</Y>
-</POINT>
-<POINT>
-<X>504</X>
-<Y>519</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>174</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>4633</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>5000</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>94</X>
-<Y>627</Y>
-</POINT>
-<POINT>
-<X>94</X>
-<Y>585</Y>
-</POINT>
-<POINT>
-<X>94</X>
-<Y>585</Y>
-</POINT>
-<POINT>
-<X>94</X>
-<Y>573</Y>
-</POINT>
-</POINTS>
-</RELC>
-<RELC>
-<ID>175</ID>
-<DIAGRAMID>1</DIAGRAMID>
-<FONT>Arial,8,,0,clWindowText,0</FONT>
-<PEN>1,1,4,0</PEN>
-<FROMRELATIVEX>5000</FROMRELATIVEX>
-<FROMRELATIVEY>5000</FROMRELATIVEY>
-<TORELATIVEX>4146</TORELATIVEX>
-<TORELATIVEY>5000</TORELATIVEY>
-<POINTS>
-<POINT>
-<X>80</X>
-<Y>79</Y>
-</POINT>
-<POINT>
-<X>80</X>
-<Y>202</Y>
-</POINT>
-<POINT>
-<X>80</X>
-<Y>202</Y>
-</POINT>
-<POINT>
-<X>80</X>
-<Y>479</Y>
-</POINT>
-</POINTS>
-</RELC>
-</RELATIONSHIPCONNECTORS>
-<SUBCATEGORYCONNECTORS>
-</SUBCATEGORYCONNECTORS>
-</CONTROLS>
-</DIAGRAMS>
-</VERSION><VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>1</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-06-29</VERSIONLABEL>
-<VERSIONDATE>2009-06-29 10:58</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>46</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\targets\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>BINARY_DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>18</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>PK_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SPEC_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>SPECTRA_COUNT</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SPEC_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DELTA_MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>9</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>IDDA_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>IDDA_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_SEQUENCES</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_STATISTICS</NAME>
-<ID>22</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>2</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>PK_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>PRST_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PROTEINS_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_SEQUENCES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PRST_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>SPECTRA</NAME>
-<ID>26</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SPECTRA</NAME>
-<NAMETEMPLATE>PK_SPECTRA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>3</DOMAINID>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-<SEQUENCE>
-<NAME>SEQ</NAME>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<INCREMENT>1</INCREMENT>
-<SEED>0</SEED>
-<MAX>NOMAXVALUE</MAX>
-<MIN>NOMINVALUE</MIN>
-<CACHE></CACHE>
-<CACHECODE></CACHECODE>
-<CYCLE></CYCLE>
-<ORDER></ORDER>
-</SEQUENCE>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>31</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>26</PARENTOBJECTID>
-<CHILDOBJECTID>18</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>35</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>18</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>37</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>39</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>41</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>22</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>43</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>44</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>2</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-06-29 1</VERSIONLABEL>
-<VERSIONDATE>2009-06-29 11:02</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>46</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\targets\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>BINARY_DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>18</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>PK_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SPEC_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>SPECTRA_COUNT</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SPEC_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DELTA_MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>9</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>IDDA_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>IDDA_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_SEQUENCES</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_STATISTICS</NAME>
-<ID>22</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>2</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>PK_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>PRST_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PROTEINS_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_SEQUENCES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PRST_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IDX_PROTEINS_3</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_3</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>SPECTRA</NAME>
-<ID>26</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SPECTRA</NAME>
-<NAMETEMPLATE>PK_SPECTRA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>3</DOMAINID>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>31</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>26</PARENTOBJECTID>
-<CHILDOBJECTID>18</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>35</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>18</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>37</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>39</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>41</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>22</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>43</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>44</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>3</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-06-29 2</VERSIONLABEL>
-<VERSIONDATE>2009-06-29 12:29</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>48</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\targets\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>BINARY_DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>18</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>PK_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SPEC_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>SPECTRA_COUNT</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAME>
-<NAMETEMPLATE>IX_FK_IDENTIFICATION_DATA_SPECTRA</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SPEC_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DELTA_MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>9</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>IDDA_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_IDENTIFICATION_DATA</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>IDDA_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_SEQUENCES</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>22</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>2</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>PK_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>PRST_ID</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>ABUNDANCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PROTEINS_SEQUENCES</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_SEQUENCES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SEQU_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_PROTEIN_STATISTICS</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PRST_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>6</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IDX_PROTEINS_3</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_3</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>SPECTRA</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>26</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SPECTRA</NAME>
-<NAMETEMPLATE>PK_SPECTRA</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>3</DOMAINID>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>31</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>26</PARENTOBJECTID>
-<CHILDOBJECTID>18</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ID_SP_FK</NAME>
-<NAMETEMPLATE>ID_SP_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>35</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>18</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_ID_FK</NAME>
-<NAMETEMPLATE>PE_ID_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>37</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_SE_FK</NAME>
-<NAMETEMPLATE>PE_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>39</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_SE_FK</NAME>
-<NAMETEMPLATE>PR_SE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>41</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>22</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PR_PS_FK</NAME>
-<NAMETEMPLATE>PR_PS_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>43</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PROTEINS</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>44</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_PEPTIDES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>8</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>8</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>4</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-06-30</VERSIONLABEL>
-<VERSIONDATE>2009-06-30 09:00</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>97</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\targets\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>BINARY_DATA</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BYTEA</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DELTA_MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>0</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>93</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>5</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-06</VERSIONLABEL>
-<VERSIONDATE>2009-07-06 13:15</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>135</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>N:\user\cisd\felmer\phosphonetx\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>N:\user\cisd\felmer\phosphonetx\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER</DTLISTNAME>
-<LE>1</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS_TOLERANCE</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>93</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>6</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-06 1</VERSIONLABEL>
-<VERSIONDATE>2009-07-06 13:30</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>135</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>N:\user\cisd\felmer\phosphonetx\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>N:\user\cisd\felmer\phosphonetx\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>14</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES_TYPES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_ABUNDANCES_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_ABUNDANCES_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER</DTLISTNAME>
-<LE>1</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS_TOLERANCE</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>ABTY_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>93</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>14</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>ABUNDANCES_TYPES_ABUNDANCES</NAME>
-<NAMETEMPLATE>ABUNDANCES_TYPES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>7</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-07</VERSIONLABEL>
-<VERSIONDATE>2009-07-07 08:01</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>135</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>N:\user\cisd\felmer\phosphonetx\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>N:\user\cisd\felmer\phosphonetx\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOTY_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PEPT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>MOTY_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>20</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATION_TYPES</NAME>
-<NAMETEMPLATE>PK_MODIFICATION_TYPES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CODE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER</DTLISTNAME>
-<LE>1</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-<ATTR>
-<NAME>MASS_TOLERANCE</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_MODIFICATION_TYPES_1</NAME>
-<NAMETEMPLATE>TUC_MODIFICATION_TYPES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>32</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_PE_FK</NAME>
-<NAMETEMPLATE>MO_PE_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>33</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>20</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MO_MT_FK</NAME>
-<NAMETEMPLATE>MO_MT_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>8</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-15</VERSIONLABEL>
-<VERSIONDATE>2009-07-15 15:52</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>139</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOPE_ID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFIED_PEPTIDES</NAME>
-<ID>136</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NTERM_MASS</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CTERM_MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PEPTIDES_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>138</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>136</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PEPTIDES_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>MODIFIED_PEPTIDES_MODIFICATIONS</NAMETEMPLATE>
-<ID>139</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>136</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>MODIFIED_PEPTIDES_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>7</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-<VERSION>
-<VERSIONINFO>
-<VERSIONNUMBER>9</VERSIONNUMBER>
-<VERSIONLABEL>Version 2009-07-15 1</VERSIONLABEL>
-<VERSIONDATE>2009-07-15 15:53</VERSIONDATE>
-<VERSIONCOMMENTS></VERSIONCOMMENTS>
-<VERSIONTYPE>DB</VERSIONTYPE>
-<VERSIONTYPEDESC>Data dictionary only (no diagrams)</VERSIONTYPEDESC>
-</VERSIONINFO>
-<DATADICT>
-<DBID>postgresql8</DBID>
-<LASTID>139</LASTID>
-<DDSETTINGS>
-<PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE>
-<FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE>
-<CCONNAMETEMPLATE>CC_%table%_%column%</CCONNAMETEMPLATE>
-<NOTNULLCONNAMETEMPLATE>NN_%column%</NOTNULLCONNAMETEMPLATE>
-<DEFAULTCONNAMETEMPLATE>DEF_%table%_%column%</DEFAULTCONNAMETEMPLATE>
-<TUCONNAMETEMPLATE>TUC_%table%_%counter%</TUCONNAMETEMPLATE>
-<TCCONNAMETEMPLATE>TCC_%table%_%counter%</TCCONNAMETEMPLATE>
-<RELNAMETEMPLATE>%parent%_%child%</RELNAMETEMPLATE>
-<INDEXNAMETEMPLATE>IDX_%table%_%counter%</INDEXNAMETEMPLATE>
-<DEFTABLEOPTIONS></DEFTABLEOPTIONS>
-<DEFINDEXOPTIONS></DEFINDEXOPTIONS>
-<BEGINDATABASESCRIPT></BEGINDATABASESCRIPT>
-<ENDDATABASESCRIP></ENDDATABASESCRIP>
-<BEGINALTERDATABASESCRIPT></BEGINALTERDATABASESCRIPT>
-<ENDALTERDATABASESCRIP></ENDALTERDATABASESCRIP>
-<BEGINDROPDATABASESCRIPT></BEGINDROPDATABASESCRIPT>
-<ENDDROPDATABASESCRIP></ENDDROPDATABASESCRIP>
-<GENDIALOGSELECTEDOBJECTS></GENDIALOGSELECTEDOBJECTS>
-<GENTABLES>1</GENTABLES>
-<GENTABLEOPTIONS>1</GENTABLEOPTIONS>
-<GENCONSTRAINTS>1</GENCONSTRAINTS>
-<GENINDEXES>1</GENINDEXES>
-<GENTRIGGERS>1</GENTRIGGERS>
-<GENVIEWS>1</GENVIEWS>
-<GENPROCEDURES>1</GENPROCEDURES>
-<GENSEQUENCES>1</GENSEQUENCES>
-<GENRELATIONSHIPS>1</GENRELATIONSHIPS>
-<GENBEGINENDTABLESCRIPTS>1</GENBEGINENDTABLESCRIPTS>
-<GENBEGINENDDBSCRIPTS>1</GENBEGINENDDBSCRIPTS>
-<GLOBALPREFIX></GLOBALPREFIX>
-<AUTOCREATEINDEXESONKEYS>0</AUTOCREATEINDEXESONKEYS>
-<CONVERTDOMAINS>0</CONVERTDOMAINS>
-<IGNORECOMMENTS>0</IGNORECOMMENTS>
-<USESCHEMANAMES>0</USESCHEMANAMES>
-<UCONNAMETEMPLATE></UCONNAMETEMPLATE>
-<SQLCREATEFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLCREATEFILE>
-<SQLDROPFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\drop.sql</SQLDROPFILE>
-</DDSETTINGS>
-<DOMAINS>
-<DOMAIN>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>CODE</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>DESCRIPTION</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>INTEGER_NUMBER</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>REAL_NUMBER</NAME>
-<ID>8</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>LONG_SEQUENCE</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_DESCRIPTION</NAME>
-<ID>11</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>TECH_ID</NAME>
-<ID>12</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>SHORT_SEQUENCE</NAME>
-<ID>69</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-<DOMAIN>
-<NAME>UNIPROT_ACCESSION_NUMBER</NAME>
-<ID>109</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</DOMAIN>
-</DOMAINS>
-<ENTITIES>
-<ENT>
-<NAME>EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>16</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_EXPERIMENTS</NAME>
-<NAMETEMPLATE>PK_EXPERIMENTS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_EXPERIMENTS_1</NAME>
-<NAMETEMPLATE>TUC_EXPERIMENTS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATA_SETS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>17</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>3</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATA_SETS</NAME>
-<NAMETEMPLATE>PK_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_EXPERIMENTS</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_EXPERIMENTS</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>EXPE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>4</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-<INDEX>
-<NAME>IX_FK_DATA_SETS_SAMPLES</NAME>
-<NAMETEMPLATE>IX_FK_DATA_SETS_SAMPLES</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>SAMP_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>5</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATA_SETS_1</NAME>
-<NAMETEMPLATE>TUC_DATA_SETS_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFICATIONS</NAME>
-<NAMETEMPLATE>IX_FK_MODIFICATIONS_PEPTIDES</NAMETEMPLATE>
-<ID>19</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>7</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFICATIONS</NAME>
-<NAMETEMPLATE>PK_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MOPE_ID</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>POS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>MASS</NAME>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PEPTIDES</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_ABUNDANCES</NAMETEMPLATE>
-<ID>21</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>10</ATTRLASTID>
-<IDXLASTID>5</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQUENCE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>69</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>1000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHARGE</NAME>
-<ID>7</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>7</DOMAINID>
-<DT>
-<DTLISTNAME>INTEGER</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IX_FK_PEPTIDES_PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PEPTIDES_PROTEINS</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>PROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>PROTEINS</NAME>
-<NAMETEMPLATE>IX_FK_PROTEINS_DATA_SETS</NAMETEMPLATE>
-<ID>23</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>11</ATTRLASTID>
-<IDXLASTID>7</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEINS</NAME>
-<NAMETEMPLATE>PK_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>10</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<ID>9</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>9</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEINS_1</NAME>
-<NAMETEMPLATE>IDX_PROTEINS_1</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>DASE_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>10</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-</ENT>
-<ENT>
-<NAME>SAMPLES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>24</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_SAMPLES</NAME>
-<NAMETEMPLATE>PK_SAMPLES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PERM_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>5</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>EXPE_ID</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_SAMPLES_1</NAME>
-<NAMETEMPLATE>TUC_SAMPLES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>SEQUENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>25</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_SEQUENCES</NAME>
-<NAMETEMPLATE>PK_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DB_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PRRE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>AMINO_ACID_SEQUENCE</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>9</DOMAINID>
-<DT>
-<DTLISTNAME>TEXT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CHECKSUM</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>4</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>8</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>47</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PK_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SEQU_ID</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>91</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>6</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_ABUNDANCES</NAME>
-<NAMETEMPLATE>PK_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>SAMP_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>VALUE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>6</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>96</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>PK_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DASE_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PROBABILITY</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>FALSE_DISCOVERY_RATE</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-<ENT>
-<NAME>PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>98</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>4</ATTRLASTID>
-<IDXLASTID>2</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_PROTEIN_REFERENCES</NAME>
-<NAMETEMPLATE>PK_PROTEIN_REFERENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>UNIPROT_ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>109</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>40</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>DESCRIPTION</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>6</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>2000</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-</ATTR>
-</ATTRIBUTES>
-<INDEXES>
-<INDEX>
-<NAME>IDX_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>IDX_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<RELID>0</RELID>
-<AUTOIDXTYPE>0</AUTOIDXTYPE>
-<IDXCOLS>
-<IDXCOL>
-<NAME>UNIPROT_ID</NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<IDXCOLATTRID>3</IDXCOLATTRID>
-</IDXCOL>
-</IDXCOLS>
-</INDEX>
-</INDEXES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_PROTEIN_REFERENCES_1</NAME>
-<NAMETEMPLATE>TUC_PROTEIN_REFERENCES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>DATABASES</NAME>
-<NAMETEMPLATE>PK_%table%</NAMETEMPLATE>
-<ID>110</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>3</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>2</CONLASTID>
-<PKCON>
-<NAME>PK_DATABASES</NAME>
-<NAMETEMPLATE>PK_DATABASES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NAME_AND_VERSION</NAME>
-<NAMETEMPLATE>NN_%column%</NAMETEMPLATE>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>11</DOMAINID>
-<DT>
-<DTLISTNAME>CHARACTER VARYING</DTLISTNAME>
-<LE>200</LE>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-<CONSTRAINTS>
-<CONSTRAINT>
-<NAME>TUC_DATABASES_1</NAME>
-<NAMETEMPLATE>TUC_DATABASES_1</NAMETEMPLATE>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>2</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-</CONSTRAINTS>
-</ENT>
-<ENT>
-<NAME>MODIFIED_PEPTIDES</NAME>
-<ID>136</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<ATTRLASTID>5</ATTRLASTID>
-<IDXLASTID>1</IDXLASTID>
-<TRGLASTID>1</TRGLASTID>
-<CONLASTID>1</CONLASTID>
-<PKCON>
-<NAME>PK_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PK_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>3</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</PKCON>
-<ATTRIBUTES>
-<ATTR>
-<NAME>ID</NAME>
-<ID>2</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>-1</DOMAINID>
-<DT>
-<DTLISTNAME>BIGSERIAL</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>2</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>PEPT_ID</NAME>
-<ID>3</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>12</DOMAINID>
-<DT>
-<DTLISTNAME>BIGINT</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>NTERM_MASS</NAME>
-<ID>4</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-<ATTR>
-<NAME>CTERM_MASS</NAME>
-<ID>5</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<DOMAINID>8</DOMAINID>
-<DT>
-<DTLISTNAME>DOUBLE PRECISION</DTLISTNAME>
-<SD>0</SD>
-<INC>1</INC>
-</DT>
-<NNCON>
-<NAME></NAME>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<VALUE>1</VALUE>
-<CONLEVEL>1</CONLEVEL>
-<CONTYPE>5</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</NNCON>
-</ATTR>
-</ATTRIBUTES>
-</ENT>
-</ENTITIES>
-<SUBCATEGORIES>
-</SUBCATEGORIES>
-<TEXTAREAS>
-</TEXTAREAS>
-<GROUPBOXES>
-</GROUPBOXES>
-<STAMPS>
-</STAMPS>
-<SEQUENCES>
-</SEQUENCES>
-<PROCEDURES>
-</PROCEDURES>
-<VIEWS>
-</VIEWS>
-<RELATIONSHIPS>
-<REL>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>29</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>16</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_EX_FK</NAME>
-<NAMETEMPLATE>DA_EX_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>30</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DA_SA_FK</NAME>
-<NAMETEMPLATE>DA_SA_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>36</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>21</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PE_PR_FK</NAME>
-<NAMETEMPLATE>PE_PR_FK</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>46</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>23</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROTEINS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>10</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>10</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>48</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>PROTEINS_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>50</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>25</PARENTOBJECTID>
-<CHILDOBJECTID>47</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SEQUENCES_IDENTIFIED_PROTEINS</NAME>
-<NAMETEMPLATE>SEQUENCES_IDENTIFIED_PROTEINS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>92</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>24</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>SAMPLES_ABUNDANCES</NAME>
-<NAMETEMPLATE>SAMPLES_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>4</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>4</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>94</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>23</PARENTOBJECTID>
-<CHILDOBJECTID>91</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEINS_ABUNDANCES</NAME>
-<NAMETEMPLATE>PROTEINS_ABUNDANCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>97</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>17</PARENTOBJECTID>
-<CHILDOBJECTID>96</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAME>
-<NAMETEMPLATE>DATA_SETS_PROBABILITY_FDR_MAPPINGS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>111</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_SEQUENCES</NAME>
-<NAMETEMPLATE>DATABASES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>5</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>5</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>112</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>98</PARENTOBJECTID>
-<CHILDOBJECTID>25</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PROTEIN_REFERENCES_SEQUENCES</NAME>
-<NAMETEMPLATE>PROTEIN_REFERENCES_SEQUENCES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>125</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>110</PARENTOBJECTID>
-<CHILDOBJECTID>17</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>DATABASES_DATA_SETS</NAME>
-<NAMETEMPLATE>DATABASES_DATA_SETS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>6</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>6</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PEPTIDES_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>138</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>21</PARENTOBJECTID>
-<CHILDOBJECTID>136</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>PEPTIDES_MODIFIED_PEPTIDES</NAME>
-<NAMETEMPLATE>PEPTIDES_MODIFIED_PEPTIDES</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>3</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>3</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-<REL>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>MODIFIED_PEPTIDES_MODIFICATIONS</NAMETEMPLATE>
-<ID>139</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<PARENTOBJECTID>136</PARENTOBJECTID>
-<CHILDOBJECTID>19</CHILDOBJECTID>
-<CARDINALITY>0</CARDINALITY>
-<RELTYPE>1</RELTYPE>
-<MANDATORYPARENT>1</MANDATORYPARENT>
-<UPDATERULE>0</UPDATERULE>
-<DELETERULE>0</DELETERULE>
-<CONSTRAINT>
-<NAME>MODIFIED_PEPTIDES_MODIFICATIONS</NAME>
-<NAMETEMPLATE>MODIFIED_PEPTIDES_MODIFICATIONS</NAMETEMPLATE>
-<ID>1</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<CONLEVEL>2</CONLEVEL>
-<CONTYPE>4</CONTYPE>
-<ATTRIBUTEIDS>
-<ATTRIBUTEID>7</ATTRIBUTEID>
-</ATTRIBUTEIDS>
-</CONSTRAINT>
-<PAIRS>
-<PAIR>
-<NAME></NAME>
-<ID>0</ID>
-<POSNR>0</POSNR>
-<SCHEMA></SCHEMA>
-<DESC></DESC>
-<KEYID>2</KEYID>
-<FOREIGNKEYID>7</FOREIGNKEYID>
-</PAIR>
-</PAIRS>
-</REL>
-</RELATIONSHIPS>
-<SUBCATEGORYCONNECTIONS>
-</SUBCATEGORYCONNECTIONS>
-</DATADICT>
-</VERSION>
-
-</dezign>
\ No newline at end of file
diff --git a/rtd_phosphonetx/sourceTest/core-plugins/core-plugins.properties b/rtd_phosphonetx/sourceTest/core-plugins/core-plugins.properties
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/APMSReportTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/APMSReportTest.java
deleted file mode 100644
index 84e93ffbf16c8e7509d555835de1b4bc8c5278f7..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/APMSReportTest.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.dss.proteomics.server.plugins;
-
-import static ch.systemsx.cisd.openbis.dss.proteomics.server.plugins.APMSReport.DEFAULT_PROTEIN_PROPERTY_CODE;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.activation.DataHandler;
-
-import org.apache.commons.io.IOUtils;
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.hamcrest.core.IsNull;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.rinn.restrictions.Friend;
-import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.common.mail.EMailAddress;
-import ch.systemsx.cisd.common.mail.IMailClient;
-import ch.systemsx.cisd.common.test.RecordingMatcher;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.MockDataSetDirectoryProvider;
-import ch.systemsx.cisd.openbis.dss.generic.shared.Constants;
-import ch.systemsx.cisd.openbis.dss.generic.shared.DataSetProcessingContext;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.ProcessingStatus;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.SampleBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
-import ch.systemsx.cisd.openbis.generic.shared.dto.builders.DatasetDescriptionBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Friend(toClasses = APMSReport.class)
-public class APMSReportTest extends AbstractFileSystemTestCase
-{
-    private static final String EXAMPLE_PROTEINS =
-            "# Protein abundances computed from file 'result.consensusXML'\n"
-                    + "# Parameters (relevant only): top=3, average=median, include_all, consensus:normalize\n"
-                    + "# Files/samples associated with abundance values below:"
-                    + " 0: '/cluster/s1.featureXML',"
-                    + " 1: '/cluster/s2.featureXML',"
-                    + " 2: '/cluster/s3.featureXML'\n"
-                    + "\"protein\",\"n_proteins\",\"protein_score\",\"n_peptides\",\"abundance_0\",\"abundance_1\",\"abundance_2\"\n"
-                    + "\"P1\",1,1,5,1.5,2.5,3.5\n" + "\"P2\",1,1,6,11.5,0,13.5\n"
-                    + "\"P3\",1,1,14,21.5,22.5,0\n";
-
-    private Mockery context;
-
-    private APMSReport report;
-
-    private IEncapsulatedOpenBISService service;
-
-    private IMailClient mailClient;
-
-    private DataSetProcessingContext processingContext;
-
-    @BeforeMethod
-    public void beforeMethod()
-    {
-        File dataSetFolder = createDataSet("1");
-        FileUtilities.writeToFile(new File(dataSetFolder, APMSReport.PROTEIN_FILE_NAME),
-                EXAMPLE_PROTEINS);
-        createDataSet("2");
-
-        context = new Mockery();
-        service = context.mock(IEncapsulatedOpenBISService.class);
-        mailClient = context.mock(IMailClient.class);
-        report = new APMSReport(new Properties(), workingDirectory);
-        report.setService(service);
-        MockDataSetDirectoryProvider directoryProvider =
-                new MockDataSetDirectoryProvider(workingDirectory, Constants.DEFAULT_SHARE_ID);
-        processingContext =
-                new DataSetProcessingContext(null, directoryProvider,
-                        Collections.<String, String> emptyMap(), mailClient, "test-user", "a@bc.de");
-    }
-
-    private File createDataSet(String location)
-    {
-        File share = new File(workingDirectory, Constants.DEFAULT_SHARE_ID);
-        File originalFolder = new File(new File(share, location), "original");
-        originalFolder.mkdirs();
-        File dataSetFolder = new File(originalFolder, "data-set-folder");
-        dataSetFolder.mkdirs();
-        return dataSetFolder;
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProcess() throws IOException
-    {
-        Sample b2 = new SampleBuilder("/S/B2").id(12).getSample();
-        prepareGetSample(new SampleBuilder("/MS_DATA/S1").id(1).childOf(b2).getSample());
-        prepareGetSample(new SampleBuilder("/MS_DATA/S2").id(2).childOf(b2).getSample());
-        prepareGetSample(new SampleBuilder("/MS_DATA/S3").id(3).childOf(b2).getSample());
-        DatasetDescriptionBuilder ds1 =
-                new DatasetDescriptionBuilder("ds1").location("1").space("s").project("p")
-                        .experiment("e");
-        DatasetDescriptionBuilder ds2 = new DatasetDescriptionBuilder("ds2").location("2");
-        List<DatasetDescription> dataSets =
-                Arrays.asList(ds1.getDatasetDescription(), ds2.getDatasetDescription());
-        final RecordingMatcher<String> subjectMatcher = new RecordingMatcher<String>();
-        final RecordingMatcher<String> contentMatcher = new RecordingMatcher<String>();
-        final RecordingMatcher<String> fileNameMatcher = new RecordingMatcher<String>();
-        final RecordingMatcher<DataHandler> attachmentMatcher = new RecordingMatcher<DataHandler>();
-        final RecordingMatcher<EMailAddress[]> addressesMatcher =
-                new RecordingMatcher<EMailAddress[]>();
-        context.checking(new Expectations()
-            {
-                {
-                    one(mailClient).sendEmailMessageWithAttachment(with(subjectMatcher),
-                            with(contentMatcher), with(fileNameMatcher), with(attachmentMatcher),
-                            with(new IsNull<EMailAddress>()), with(new IsNull<EMailAddress>()),
-                            with(addressesMatcher));
-                }
-            });
-
-        ProcessingStatus status = report.process(dataSets, processingContext);
-        assertEquals("Protein APMS Report", subjectMatcher.recordedObject());
-        assertEquals("Dear User\n\n"
-                + "Enclosed you will find the Protein APMS report file for experiment s/p/e.\n"
-                + "Data Set: ds1", contentMatcher.recordedObject());
-        @SuppressWarnings("unchecked")
-        List<String> fileLines =
-                IOUtils.readLines(attachmentMatcher.recordedObject().getInputStream());
-        assertEquals("Sample ID,Bait,Prey,freq of obs,"
-                + "avg MS1 intensities (normalized for the bait),STDV MS1 intensity",
-                fileLines.get(0));
-        assertEquals(4, fileLines.size());
-        assertEquals("[ERROR: \"Exception occured: "
-                + UserFailureException.class.getName() + ": File "
-                + APMSReport.PROTEIN_FILE_NAME + " missing.\"]", status.getErrorStatuses()
-                .toString());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testCreateReport()
-    {
-        Sample master =
-                new SampleBuilder("/master").property(DEFAULT_PROTEIN_PROPERTY_CODE, "Q1")
-                        .getSample();
-        Sample b1 = new SampleBuilder("/S/B1").id(11).childOf(master).getSample();
-        Sample b2 = new SampleBuilder("/S/B2").id(12).getSample();
-        prepareGetSample(new SampleBuilder("/MS_DATA/S1").id(1).childOf(b1).getSample());
-        prepareGetSample(new SampleBuilder("/MS_DATA/S2").id(2).childOf(b1).getSample());
-        prepareGetSample(new SampleBuilder("/MS_DATA/S3").id(3).childOf(b2).getSample());
-        DatasetDescriptionBuilder ds1 = new DatasetDescriptionBuilder("ds1").location("1");
-        List<DatasetDescription> dataSets = Arrays.asList(ds1.getDatasetDescription());
-
-        TableModel table = report.createReport(dataSets, processingContext);
-
-        List<TableModelColumnHeader> headers = table.getHeader();
-        assertEquals("[Sample ID, Bait, Prey, freq of obs, "
-                + "avg MS1 intensities (normalized for the bait), STDV MS1 intensity]",
-                headers.toString());
-        List<TableModelRow> rows = table.getRows();
-        assertEquals("[B1, Q1, P1, 1.0, 2.0, 0.5]", rows.get(0).getValues().toString());
-        assertEquals("[B2, , P1, 1.0, 3.5, 0.0]", rows.get(1).getValues().toString());
-        assertEquals("[B1, Q1, P2, 0.5, 5.75, 5.75]", rows.get(2).getValues().toString());
-        assertEquals("[B2, , P2, 1.0, 13.5, 0.0]", rows.get(3).getValues().toString());
-        assertEquals("[B1, Q1, P3, 1.0, 22.0, 0.5]", rows.get(4).getValues().toString());
-        assertEquals("[B2, , P3, 0.0, 0.0, 0.0]", rows.get(5).getValues().toString());
-        assertEquals(3 * 2, rows.size());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testCreateReportForMissingProteinsFile()
-    {
-        DatasetDescriptionBuilder ds = new DatasetDescriptionBuilder("ds2").location("2");
-        try
-        {
-            report.createReport(Arrays.asList(ds.getDatasetDescription()), processingContext);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("File " + APMSReport.PROTEIN_FILE_NAME + " missing.", ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testCreateReportForTwoDataSets()
-    {
-        DatasetDescriptionBuilder ds1 = new DatasetDescriptionBuilder("ds1").location("1");
-        DatasetDescriptionBuilder ds2 = new DatasetDescriptionBuilder("ds2").location("2");
-        try
-        {
-            report.createReport(
-                    Arrays.asList(ds1.getDatasetDescription(), ds2.getDatasetDescription()), null);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Chosen plugin works with exactly one data set. 2 data sets selected.",
-                    ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    private void prepareGetSample(final Sample sample)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetSampleWithExperiment(
-                            SampleIdentifierFactory.parse(sample.getIdentifier()));
-                    will(returnValue(sample));
-                }
-            });
-        prepareGetAncestors(sample);
-    }
-
-    protected void prepareGetAncestors(final Sample sample)
-    {
-        List<IEntityProperty> properties = sample.getProperties();
-        for (IEntityProperty property : properties)
-        {
-            if (property.getPropertyType().getCode().equals(DEFAULT_PROTEIN_PROPERTY_CODE))
-            {
-                return;
-            }
-        }
-        final Set<Sample> parents = sample.getParents();
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).listSamples(with(new BaseMatcher<ListSampleCriteria>()
-                        {
-                            @Override
-                            public boolean matches(Object item)
-                            {
-                                return sample.getId() == ((ListSampleCriteria) item)
-                                        .getChildSampleId().getId();
-                            }
-
-                            @Override
-                            public void describeTo(Description description)
-                            {
-                                description.appendText("parents of " + sample.getIdentifier());
-                            }
-                        }));
-                    will(returnValue(new ArrayList<Sample>(parents)));
-                }
-            });
-        for (Sample parent : parents)
-        {
-            prepareGetAncestors(parent);
-        }
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/LocalAndRemoteCopierTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/LocalAndRemoteCopierTest.java
deleted file mode 100644
index cf6469dc4312cf69a1829744be7a5411c4d0a07c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/dss/proteomics/server/plugins/LocalAndRemoteCopierTest.java
+++ /dev/null
@@ -1,392 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.dss.proteomics.server.plugins;
-
-import static ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.DataSetCopier.SSH_TIMEOUT_MILLIS;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.commons.io.FileUtils;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.rinn.restrictions.Friend;
-import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
-import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
-import ch.systemsx.cisd.common.concurrent.ExecutionResult;
-import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
-import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
-import ch.systemsx.cisd.common.exceptions.Status;
-import ch.systemsx.cisd.common.filesystem.BooleanStatus;
-import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.common.filesystem.IPathCopier;
-import ch.systemsx.cisd.common.filesystem.ssh.ISshCommandExecutor;
-import ch.systemsx.cisd.common.process.ProcessResult;
-import ch.systemsx.cisd.common.utilities.ITextHandler;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.DataSetCopier;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.IPathCopierFactory;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.ISshCommandExecutorFactory;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.RSyncConfig;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Friend(toClasses = LocalAndRemoteCopier.class)
-public class LocalAndRemoteCopierTest extends AbstractFileSystemTestCase
-{
-    private static final ProcessResult OK_RESULT = new ProcessResult(Arrays.asList(""), 0, null,
-            ExecutionResult.create(null), null, 0, (List<String>) null, null, null, null);
-
-    private static final String SAMPLE_CODE = "my-sample";
-
-    private static final DataSetType DATA_SET_TYPE = new DataSetType("MY");
-
-    private static final DataSetKind DATA_SET_KIND = DataSetKind.PHYSICAL;
-
-    private static final String DATA_SET_CODE = "my-dataset-123";
-
-    private static final String FOLDER_NAME = DATA_SET_CODE;
-
-    private static final String DATA = "hello test";
-
-    private Mockery context;
-
-    private File dataSet;
-
-    private IPathCopierFactory copierFactory;
-
-    private IPathCopier copier;
-
-    private ISshCommandExecutorFactory sshExecutorFactory;
-
-    private ISshCommandExecutor sshExecutor;
-
-    private File destination;
-
-    private File dataFile;
-
-    private File rsyncExec;
-
-    private File sshExec;
-
-    @BeforeMethod
-    public void beforeMethod() throws Exception
-    {
-        context = new Mockery();
-        copierFactory = context.mock(IPathCopierFactory.class);
-        copier = context.mock(IPathCopier.class);
-        sshExecutorFactory = context.mock(ISshCommandExecutorFactory.class);
-        sshExecutor = context.mock(ISshCommandExecutor.class);
-        dataSet = new File(workingDirectory, "data-set");
-        dataSet.mkdirs();
-        dataFile = new File(dataSet, "data.txt");
-        FileUtilities.writeToFile(dataFile, DATA);
-        destination = new File(workingDirectory, "destination");
-        destination.mkdirs();
-        rsyncExec = new File(workingDirectory, "my-rsync");
-        rsyncExec.createNewFile();
-        sshExec = new File(workingDirectory, "my-rssh");
-        sshExec.createNewFile();
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testLocalWithKnownSample()
-    {
-        Properties properties = new Properties();
-        prepareCopier(properties);
-        properties.setProperty(DataSetCopier.DESTINATION_KEY, destination.getPath());
-        LocalAndRemoteCopier msInjectionCopier =
-                new LocalAndRemoteCopier(properties, copierFactory, sshExecutorFactory);
-        prepareForCheckingLastModifiedDate();
-
-        DataSetInformation dataSetInformation = new DataSetInformation();
-        dataSetInformation.setDataSetCode(DATA_SET_CODE);
-        dataSetInformation.setDataSetType(DATA_SET_TYPE);
-        dataSetInformation.setDataSetKind(DATA_SET_KIND);
-        HashMap<String, String> parameterBindings = new HashMap<String, String>();
-        parameterBindings.put(DATA_SET_CODE, SAMPLE_CODE);
-        Status status = msInjectionCopier.handle(dataSet, dataSetInformation, parameterBindings);
-
-        assertEquals(Status.OK, status);
-        File copiedDataSet = new File(destination, FOLDER_NAME);
-        assertEquals(true, copiedDataSet.isDirectory());
-        assertEquals(dataSet.lastModified(), copiedDataSet.lastModified());
-        assertEquals(DATA, FileUtilities.loadToString(new File(copiedDataSet, dataFile.getName()))
-                .trim());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testLocalWithUnknownSample()
-    {
-        Properties properties = new Properties();
-        prepareCopier(properties);
-        properties.setProperty(DataSetCopier.DESTINATION_KEY, destination.getPath());
-        LocalAndRemoteCopier msInjectionCopier =
-                new LocalAndRemoteCopier(properties, copierFactory, sshExecutorFactory);
-
-        DataSetInformation dataSetInformation = new DataSetInformation();
-        dataSetInformation.setDataSetCode(DATA_SET_CODE);
-        dataSetInformation.setDataSetType(DATA_SET_TYPE);
-        dataSetInformation.setDataSetKind(DATA_SET_KIND);
-        HashMap<String, String> parameterBindings = new HashMap<String, String>();
-        Status status = msInjectionCopier.handle(dataSet, dataSetInformation, parameterBindings);
-
-        assertEquals(Status.OK, status);
-        File copiedDataSet = new File(destination, DATA_SET_CODE);
-        assertEquals(true, copiedDataSet.isDirectory());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testLocalWithAlreadyExistingDestination()
-    {
-        Properties properties = new Properties();
-        prepareCopier(properties);
-        properties.setProperty(DataSetCopier.DESTINATION_KEY, destination.getPath());
-        LocalAndRemoteCopier msInjectionCopier =
-                new LocalAndRemoteCopier(properties, copierFactory, sshExecutorFactory);
-        File copiedDataSet = new File(destination, FOLDER_NAME);
-        copiedDataSet.mkdirs();
-        File dummy = new File(copiedDataSet, "dummy");
-        FileUtilities.writeToFile(dummy, "hello");
-
-        DataSetInformation dataSetInformation = new DataSetInformation();
-        dataSetInformation.setDataSetCode(DATA_SET_CODE);
-        dataSetInformation.setDataSetType(DATA_SET_TYPE);
-        dataSetInformation.setDataSetKind(DATA_SET_KIND);
-        HashMap<String, String> parameterBindings = new HashMap<String, String>();
-        parameterBindings.put(DATA_SET_CODE, SAMPLE_CODE);
-        Status status = msInjectionCopier.handle(dataSet, dataSetInformation, parameterBindings);
-
-        assertEquals(Status.OK, status);
-        assertEquals(true, copiedDataSet.isDirectory());
-        assertEquals(DATA, FileUtilities.loadToString(new File(copiedDataSet, dataFile.getName()))
-                .trim());
-        assertEquals(false, dummy.exists());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testRemoteWithMarkerFile()
-    {
-        Properties properties = new Properties();
-        properties.setProperty(LocalAndRemoteCopier.MARKER_FILE_PREFIX, "MARKER-");
-        properties.setProperty(DataSetCopier.DESTINATION_KEY, "localhost:" + destination.getPath());
-        properties.setProperty(DataSetCopier.RSYNC_EXEC + "-executable", rsyncExec.getPath());
-        properties.setProperty(DataSetCopier.SSH_EXEC + "-executable", sshExec.getPath());
-        context.checking(new Expectations()
-            {
-                {
-                    one(copierFactory).create(rsyncExec, sshExec, DataSetCopier.SSH_TIMEOUT_MILLIS,
-                            RSyncConfig.getInstance().getAdditionalCommandLineOptions());
-                    will(returnValue(copier));
-
-                    one(copier).check();
-                    one(copier).checkRsyncConnectionViaSsh("localhost", null,
-                            DataSetCopier.SSH_TIMEOUT_MILLIS);
-                    will(returnValue(true));
-
-                    one(sshExecutorFactory).create(sshExec, "localhost");
-                    will(returnValue(sshExecutor));
-
-                    final String copiedDataSet = new File(destination, FOLDER_NAME).getPath();
-                    one(sshExecutor).exists(copiedDataSet, SSH_TIMEOUT_MILLIS);
-                    will(returnValue(BooleanStatus.createTrue()));
-
-                    one(sshExecutor).executeCommandRemotely("rm -rf " + copiedDataSet,
-                            SSH_TIMEOUT_MILLIS);
-                    will(returnValue(OK_RESULT));
-
-                    one(copier).copyToRemote(dataSet, destination.getPath(), "localhost", null, null, null, null);
-                    will(returnValue(Status.OK));
-
-                    one(sshExecutor).executeCommandRemotely(
-                            "mv " + new File(destination, dataSet.getName()) + " " + copiedDataSet,
-                            SSH_TIMEOUT_MILLIS);
-                    will(returnValue(OK_RESULT));
-
-                    one(sshExecutor).executeCommandRemotely(
-                            "touch " + new File(destination, "MARKER-" + FOLDER_NAME),
-                            SSH_TIMEOUT_MILLIS);
-                    will(returnValue(OK_RESULT));
-                }
-            });
-        LocalAndRemoteCopier msInjectionCopier =
-                new LocalAndRemoteCopier(properties, copierFactory, sshExecutorFactory);
-
-        DataSetInformation dataSetInformation = new DataSetInformation();
-        dataSetInformation.setDataSetCode(DATA_SET_CODE);
-        dataSetInformation.setDataSetType(DATA_SET_TYPE);
-        dataSetInformation.setDataSetKind(DATA_SET_KIND);
-        HashMap<String, String> parameterBindings = new HashMap<String, String>();
-        parameterBindings.put(DATA_SET_CODE, SAMPLE_CODE);
-        Status status = msInjectionCopier.handle(dataSet, dataSetInformation, parameterBindings);
-
-        assertEquals(Status.OK, status);
-        context.assertIsSatisfied();
-    }
-
-    private void prepareForCheckingLastModifiedDate()
-    {
-        // Sleep long enough to test last modified date of target will be same as of source.
-        try
-        {
-            Thread.sleep(2000);
-        } catch (InterruptedException ex)
-        {
-            // ignored
-        }
-    }
-
-    private void prepareCopier(Properties properties)
-    {
-        properties.setProperty(DataSetCopier.RSYNC_EXEC + "-executable", rsyncExec.getPath());
-        context.checking(new Expectations()
-            {
-                {
-                    one(copierFactory).create(rsyncExec, null, DataSetCopier.SSH_TIMEOUT_MILLIS,
-                            RSyncConfig.getInstance().getAdditionalCommandLineOptions());
-                    will(returnValue(new MockCopier()));
-                }
-            });
-    }
-
-    private final class MockCopier implements IPathCopier
-    {
-
-        @Override
-        public boolean isProgressEnabled()
-        {
-            return false;
-        }
-
-        @Override
-        public boolean terminate()
-        {
-            return false;
-        }
-
-        @Override
-        public boolean isRemote()
-        {
-            return false;
-        }
-
-        @Override
-        public void check() throws EnvironmentFailureException, ConfigurationFailureException
-        {
-        }
-
-        @Override
-        public Status copy(File sourcePath, File destinationDirectory,
-                ITextHandler stdoutHandlerOrNull, ITextHandler stderrHandlerOrNull)
-        {
-            return null;
-        }
-
-        @Override
-        public Status copyContent(File sourcePath, File destinationDirectory,
-                ITextHandler stdoutHandlerOrNull, ITextHandler stderrHandlerOrNull)
-        {
-            return null;
-        }
-
-        @Override
-        public Status copyToRemote(File sourcePath, String destinationDirectory,
-                String destinationHostOrNull, String rsyncModuleNameOrNull,
-                String rsyncPasswordFileOrNull,
-                ITextHandler stdoutHandlerOrNull, ITextHandler stderrHandlerOrNull)
-        {
-            try
-            {
-                FileUtils.copyDirectoryToDirectory(dataSet, new File(destinationDirectory));
-            } catch (IOException ex)
-            {
-                throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-            }
-            File file = new File(destinationDirectory, dataSet.getName());
-            file.setLastModified(dataSet.lastModified());
-            return Status.OK;
-        }
-
-        @Override
-        public Status copyContentToRemote(File sourcePath, String destinationDirectory,
-                String destinationHostOrNull, String rsyncModuleNameOrNull,
-                String rsyncPasswordFileOrNull,
-                ITextHandler stdoutHandlerOrNull, ITextHandler stderrHandlerOrNull)
-        {
-            return null;
-        }
-
-        @Override
-        public Status copyFromRemote(String sourcePath, String sourceHost,
-                File destinationDirectory, String rsyncModuleNameOrNull,
-                String rsyncPasswordFileOrNull,
-                ITextHandler stdoutHandlerOrNull, ITextHandler stderrHandlerOrNull)
-        {
-            return null;
-        }
-
-        @Override
-        public Status copyContentFromRemote(String sourcePath, String sourceHost,
-                File destinationDirectory, String rsyncModuleNameOrNull,
-                String rsyncPasswordFileOrNull,
-                ITextHandler stdoutHandlerOrNull, ITextHandler stderrHandlerOrNull)
-        {
-            return null;
-        }
-
-        @Override
-        public boolean checkRsyncConnectionViaSsh(String host, String rsyncExecutableOnHostOrNull,
-                long millisToWaitForCompletion)
-        {
-            return false;
-        }
-
-        @Override
-        public boolean checkRsyncConnectionViaRsyncServer(String host, String rsyncModule,
-                String rsyncPassworFileOrNull, long millisToWaitForCompletion)
-        {
-            return false;
-        }
-
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbundanceHandlerTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbundanceHandlerTest.java
deleted file mode 100644
index 2f71d9dd3a56f6599483e24e3048ab7129bd8369..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/AbundanceHandlerTest.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.hamcrest.core.IsNull;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Experiment;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Parameter;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ListSamplesByPropertyCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class AbundanceHandlerTest extends AssertJUnit
-{
-    private static final String SPACE_CODE = "G1";
-
-    private static final SpaceIdentifier SPACE_IDENTIFIER = new SpaceIdentifier(SPACE_CODE);
-
-    private static final String EXPERIMENT_CODE = "E1";
-
-    private static final SpaceIdentifier SPACE_IDENTIFIER_MS = new SpaceIdentifier(
-            CommonConstants.MS_DATA_SPACE);
-
-    private static final String PARAMETER_VALUE = "1234.5";
-
-    private static final double ABUNDANCE = 1234.5;
-
-    private static final String PARAMETER_NAME = "ABC12";
-
-    private static final SampleIdentifier SAMPLE_IDENTIFER = new SampleIdentifier(SPACE_IDENTIFIER_MS,
-            PARAMETER_NAME);
-
-    private static final ExperimentIdentifier EXPERIMENT_IDENTIFIER = new ExperimentIdentifier(
-            new ProjectIdentifier(SPACE_CODE, "P1"), EXPERIMENT_CODE);
-
-    private static final String SAMPLE_PERM_ID = "s12-34";
-
-    private static final String EXPERIMENT_PERM_ID = "e12345-42";
-
-    private static final long EXPERIMENT_ID = 42;
-
-    private static final long SAMPLE_ID = 43;
-
-    private static final long PROTEIN_ID = 4711;
-
-    private static final String PROTEIN_NAME = "my protein";
-
-    private static final ListSamplesByPropertyCriteria CRITERIA =
-            new ListSamplesByPropertyCriteria(AbundanceHandler.MZXML_FILENAME, PARAMETER_NAME,
-                    SPACE_CODE, null);
-
-    private Mockery context;
-
-    private IProtDAO dao;
-
-    private IEncapsulatedOpenBISService service;
-
-    private Experiment experiment;
-
-    private AbundanceHandler handler;
-
-    @BeforeMethod
-    public void beforeMethod()
-    {
-        context = new Mockery();
-        dao = context.mock(IProtDAO.class);
-        service = context.mock(IEncapsulatedOpenBISService.class);
-        experiment = new Experiment();
-        experiment.setPermID(EXPERIMENT_PERM_ID);
-        experiment.setId(EXPERIMENT_ID);
-        handler = new AbundanceHandler(service, dao, EXPERIMENT_IDENTIFIER, experiment, "+", false);
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testAddAbundanceValueWhichIsNotANumber()
-    {
-        prepareCreateSampleIdentifiedByCode();
-
-        try
-        {
-            handler.addAbundancesToDatabase(createParameter("blabla"), PROTEIN_ID, PROTEIN_NAME);
-            fail("UserFailureException expected");
-        } catch (UserFailureException e)
-        {
-            assertEquals("Abundance of sample '" + PARAMETER_NAME + "' of protein '" + PROTEIN_NAME
-                    + "' is not a number: blabla", e.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testAddTwoAbundanceValuesForASampleIdentifiedByCode()
-    {
-        prepareCreateSampleIdentifiedByCode();
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).createAbundance(PROTEIN_ID, SAMPLE_ID, ABUNDANCE);
-                    one(dao).createAbundance(PROTEIN_ID, SAMPLE_ID, 1.5);
-                }
-            });
-
-        handler.addAbundancesToDatabase(createParameter(PARAMETER_VALUE), PROTEIN_ID, PROTEIN_NAME);
-        handler.addAbundancesToDatabase(createParameter("1.5"), PROTEIN_ID, PROTEIN_NAME);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testAddTwoAbundanceValuesForASampleIdentifiedByCodeAndSpace()
-    {
-        String sampleIdentifier = "/" + SPACE_CODE + "/" + PARAMETER_NAME;
-        prepareCreateSampleIdentifiedByIdentifier(sampleIdentifier);
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).createAbundance(PROTEIN_ID, SAMPLE_ID, ABUNDANCE);
-                    one(dao).createAbundance(PROTEIN_ID, SAMPLE_ID, 1.5);
-                }
-            });
-
-        handler.addAbundancesToDatabase(createParameter(sampleIdentifier, PARAMETER_VALUE),
-                PROTEIN_ID, PROTEIN_NAME);
-        handler.addAbundancesToDatabase(createParameter(sampleIdentifier, "1.5"), PROTEIN_ID,
-                PROTEIN_NAME);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testAddTwoAbundanceValuesForASampleIdentifiedByPropertyButNoSampleFound()
-    {
-        prepareCreateSampleIdentifiedByProperty(Arrays.<Sample> asList());
-
-        try
-        {
-            handler.addAbundancesToDatabase(createParameter(PARAMETER_VALUE), PROTEIN_ID,
-                    PROTEIN_NAME);
-            fail("UserFailureException expected");
-        } catch (UserFailureException e)
-        {
-            assertEquals("Protein '" + PROTEIN_NAME
-                    + "' has an abundance value for an unidentified sample: " + PARAMETER_NAME,
-                    e.getMessage());
-        }
-
-        try
-        {
-            handler.addAbundancesToDatabase(createParameter(PARAMETER_VALUE), PROTEIN_ID,
-                    PROTEIN_NAME);
-            fail("UserFailureException expected");
-        } catch (UserFailureException e)
-        {
-            assertEquals("Protein '" + PROTEIN_NAME
-                    + "' has an abundance value for an unidentified sample: " + PARAMETER_NAME,
-                    e.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testAddAbundanceValuesForASampleIdentifiedByPropertyButTwoSamplesFound()
-    {
-        Sample sample = new Sample();
-        sample.setPermId(SAMPLE_PERM_ID);
-        prepareCreateSampleIdentifiedByProperty(Arrays.<Sample> asList(sample, sample));
-
-        try
-        {
-            handler.addAbundancesToDatabase(createParameter(PARAMETER_VALUE), PROTEIN_ID,
-                    PROTEIN_NAME);
-            fail("UserFailureException expected");
-        } catch (UserFailureException e)
-        {
-            assertEquals("Protein '" + PROTEIN_NAME
-                    + "' has an abundance value for a not uniquely specified sample "
-                    + "(2 samples are found): " + PARAMETER_NAME, e.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testAddAbundanceValuesForASampleIdentifiedByProperty()
-    {
-        final Sample sample = new Sample();
-        sample.setPermId(SAMPLE_PERM_ID);
-        sample.setIdentifier("blabla");
-        prepareCreateSampleIdentifiedByProperty(Arrays.<Sample> asList(sample));
-        prepareCreateSample();
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).createAbundance(PROTEIN_ID, SAMPLE_ID, ABUNDANCE);
-                    one(service).registerSample(with(new BaseMatcher<NewSample>()
-                        {
-
-                            @Override
-                            @SuppressWarnings("deprecation")
-                            public boolean matches(Object item)
-                            {
-                                if (item instanceof NewSample)
-                                {
-                                    NewSample newSample = (NewSample) item;
-                                    assertEquals(SPACE_IDENTIFIER + "/" + PARAMETER_NAME + "_"
-                                            + EXPERIMENT_CODE, newSample.getIdentifier());
-                                    assertEquals(EXPERIMENT_IDENTIFIER.toString(),
-                                            newSample.getExperimentIdentifier());
-                                    assertEquals(sample.getIdentifier(),
-                                            newSample.getParentIdentifier());
-                                    return true;
-                                }
-                                return false;
-                            }
-
-                            @Override
-                            public void describeTo(Description description)
-                            {
-
-                            }
-                        }), with(new IsNull<String>()));
-                }
-            });
-
-        handler.addAbundancesToDatabase(
-                createParameter(PARAMETER_NAME + "+blabla.xml", PARAMETER_VALUE), PROTEIN_ID,
-                PROTEIN_NAME);
-
-        context.assertIsSatisfied();
-    }
-
-    private Parameter createParameter(String value)
-    {
-        return createParameter(PARAMETER_NAME, value);
-    }
-
-    Parameter createParameter(String parameterName, String value)
-    {
-        Parameter parameter = new Parameter();
-        parameter.setName(parameterName);
-        parameter.setValue(value);
-        return parameter;
-    }
-
-    private void prepareCreateSampleIdentifiedByCode()
-    {
-        prepareCreateSampleIdentifiedByIdentifier(PARAMETER_NAME);
-    }
-
-    void prepareCreateSampleIdentifiedByIdentifier(final String sampleIdentifier)
-    {
-        Sample sample = new Sample();
-        sample.setPermId(SAMPLE_PERM_ID);
-        sample.setIdentifier(sampleIdentifier);
-        prepareGetSample(
-                SampleIdentifierFactory
-                        .parse(sampleIdentifier, "/" + CommonConstants.MS_DATA_SPACE).toString(),
-                sample);
-        prepareCreateSample();
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).registerSample(with(new BaseMatcher<NewSample>()
-                        {
-                            @Override
-                            @SuppressWarnings("deprecation")
-                            public boolean matches(Object item)
-                            {
-                                if (item instanceof NewSample)
-                                {
-                                    NewSample newSample = (NewSample) item;
-                                    assertEquals(SPACE_IDENTIFIER + "/" + PARAMETER_NAME + "_"
-                                            + EXPERIMENT_CODE, newSample.getIdentifier());
-                                    assertEquals(EXPERIMENT_IDENTIFIER.toString(),
-                                            newSample.getExperimentIdentifier());
-                                    assertEquals(sampleIdentifier, newSample.getParentIdentifier());
-                                    return true;
-                                }
-                                return false;
-                            }
-
-                            @Override
-                            public void describeTo(Description description)
-                            {
-
-                            }
-                        }), with(new IsNull<String>()));
-                }
-            });
-    }
-
-    private void prepareCreateSample()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).tryToGetSampleByPermID(SAMPLE_PERM_ID);
-                    will(returnValue(null));
-
-                    one(dao).createSample(EXPERIMENT_ID, SAMPLE_PERM_ID);
-                    will(returnValue(SAMPLE_ID));
-                }
-            });
-    }
-
-    private void prepareCreateSampleIdentifiedByProperty(final List<Sample> samples)
-    {
-        prepareGetSample(SAMPLE_IDENTIFER.toString(), null);
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).listSamplesByCriteria(
-                            with(new BaseMatcher<ListSamplesByPropertyCriteria>()
-                                {
-                                    @Override
-                                    public boolean matches(Object item)
-                                    {
-                                        return CRITERIA.toString().equals(item.toString());
-                                    }
-
-                                    @Override
-                                    public void describeTo(Description description)
-                                    {
-                                        description.appendValue(CRITERIA);
-
-                                    }
-                                }));
-                    will(returnValue(samples));
-                }
-            });
-    }
-
-    private void prepareGetSample(final String expectedSampleIdentifier, final Sample sample)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetSampleWithExperiment(
-                            with(new BaseMatcher<SampleIdentifier>()
-                                {
-
-                                    @Override
-                                    public boolean matches(Object item)
-                                    {
-                                        return expectedSampleIdentifier.equals(item.toString());
-                                    }
-
-                                    @Override
-                                    public void describeTo(Description description)
-                                    {
-                                        description.appendValue(expectedSampleIdentifier);
-
-                                    }
-                                }));
-                    will(returnValue(sample));
-                }
-            });
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForMSInjectionTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForMSInjectionTest.java
deleted file mode 100644
index d6c11894cb1cb7c60389a74b2463506174950283..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForMSInjectionTest.java
+++ /dev/null
@@ -1,722 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.BIOLOGICAL_SAMPLE_IDENTIFIER_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.DATA_SET_PROPERTIES_FILE;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.DATA_SET_TYPE_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.EXPERIMENT_CODE_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.EXPERIMENT_TYPE_CODE;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.MS_INJECTION_PROPERTIES_FILE;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.PARENT_TYPE_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.PROJECT_CODE_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.SAMPLE_CODE_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.USER_KEY;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.commons.io.IOUtils;
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
-import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
-import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.etlserver.IDataSetInfoExtractor;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetTypePropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetTypeWithVocabularyTerms;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PhysicalDataSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleTypePropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SampleUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class DataSetInfoExtractorForMSInjectionTest extends AbstractFileSystemTestCase
-{
-    private static final String PROJECT_CODE = "MS2";
-
-    private static final String EXPERIMENT_CODE = "2010-02";
-
-    private static final String SAMPLE_CODE = "U09-1242";
-
-    private static final String SAMPLE_IDENTIFIER =
-            SpaceIdentifier.Constants.IDENTIFIER_SEPARATOR + CommonConstants.MS_DATA_SPACE
-                    + SpaceIdentifier.Constants.IDENTIFIER_SEPARATOR + SAMPLE_CODE;
-
-    private static final String EXPERIMENT_IDENTIFIER =
-            SpaceIdentifier.Constants.IDENTIFIER_SEPARATOR + CommonConstants.MS_DATA_SPACE
-                    + SpaceIdentifier.Constants.IDENTIFIER_SEPARATOR + PROJECT_CODE
-                    + SpaceIdentifier.Constants.IDENTIFIER_SEPARATOR + EXPERIMENT_CODE;
-
-    private static final long EXPERIMENT_ID = 42;
-
-    private static final long SAMPLE_ID = 43;
-
-    private static final String SAMPLE_PROPERTY = "name";
-
-    private Mockery context;
-
-    private IEncapsulatedOpenBISService service;
-
-    private IDataSetInfoExtractor extractor;
-
-    private File dataSet;
-
-    @BeforeMethod
-    public void beforeMethod()
-    {
-        context = new Mockery();
-        service = context.mock(IEncapsulatedOpenBISService.class);
-        extractor = new DataSetInfoExtractorForMSInjection(service);
-        dataSet = new File(workingDirectory, "data-set");
-        dataSet.mkdirs();
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testMissingPropertiesFile()
-    {
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Missing properties file '" + MS_INJECTION_PROPERTIES_FILE + "'.", ex
-                    .getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testPropertiesFileIsAFolder()
-    {
-        new File(dataSet, MS_INJECTION_PROPERTIES_FILE).mkdir();
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Properties file '" + MS_INJECTION_PROPERTIES_FILE + "' is a folder.", ex
-                    .getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testMissingSampleCode()
-    {
-        Properties properties = new Properties();
-        save(properties, MS_INJECTION_PROPERTIES_FILE);
-
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("ConfigurationFailureException expected");
-        } catch (ConfigurationFailureException ex)
-        {
-            assertEquals("Given key '" + SAMPLE_CODE_KEY + "' not found in properties '[]'", ex
-                    .getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testMissingProjectCode()
-    {
-        Properties properties = new Properties();
-
-        properties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        save(properties, MS_INJECTION_PROPERTIES_FILE);
-
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("ConfigurationFailureException expected");
-        } catch (ConfigurationFailureException ex)
-        {
-            assertEquals("Given key '" + PROJECT_CODE_KEY + "' not found in properties '["
-                    + SAMPLE_CODE_KEY + "]'", ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testMissingExperimentCode()
-    {
-        Properties properties = new Properties();
-        properties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        properties.setProperty(PROJECT_CODE_KEY, PROJECT_CODE);
-        save(properties, MS_INJECTION_PROPERTIES_FILE);
-
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("ConfigurationFailureException expected");
-        } catch (ConfigurationFailureException ex)
-        {
-            assertEquals("Given key '" + EXPERIMENT_CODE_KEY + "' not found in properties '["
-                    + PROJECT_CODE_KEY + ", " + SAMPLE_CODE_KEY + "]'", ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testMissingDataSetPropertiesFile()
-    {
-        Properties sampleProperties = new Properties();
-        sampleProperties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        sampleProperties.setProperty(PROJECT_CODE_KEY, PROJECT_CODE);
-        sampleProperties.setProperty(EXPERIMENT_CODE_KEY, EXPERIMENT_CODE);
-        sampleProperties.setProperty(USER_KEY, "user1");
-        save(sampleProperties, MS_INJECTION_PROPERTIES_FILE);
-        SampleTypePropertyType pt = createPropertyType(SAMPLE_CODE_KEY, true);
-        prepareGetExperimentAndGetSampleType(true, pt);
-        prepareRegisterSample(null);
-
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Missing properties file '" + DATA_SET_PROPERTIES_FILE + "'.", ex
-                    .getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testMissingDataSetType()
-    {
-        Properties sampleProperties = new Properties();
-        sampleProperties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        sampleProperties.setProperty(PROJECT_CODE_KEY, PROJECT_CODE);
-        sampleProperties.setProperty(EXPERIMENT_CODE_KEY, EXPERIMENT_CODE);
-        sampleProperties.setProperty(USER_KEY, "user1");
-        save(sampleProperties, MS_INJECTION_PROPERTIES_FILE);
-        Properties dataSetProperties = new Properties();
-        save(dataSetProperties, DATA_SET_PROPERTIES_FILE);
-        SampleTypePropertyType pt = createPropertyType(SAMPLE_CODE_KEY, true);
-        prepareGetExperimentAndGetSampleType(true, pt);
-        prepareRegisterSample(null);
-
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("ConfigurationFailureException expected");
-        } catch (ConfigurationFailureException ex)
-        {
-            assertEquals("Given key '" + DATA_SET_TYPE_KEY + "' not found in properties '[]'", ex
-                    .getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testRegisterRawData()
-    {
-        Properties sampleProperties = new Properties();
-        sampleProperties.setProperty(PROJECT_CODE_KEY, PROJECT_CODE);
-        sampleProperties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        sampleProperties.setProperty(EXPERIMENT_CODE_KEY, EXPERIMENT_CODE);
-        sampleProperties.setProperty(USER_KEY, "user1");
-        sampleProperties.setProperty("TEMPERATURE", "47.11");
-        save(sampleProperties, MS_INJECTION_PROPERTIES_FILE);
-        Properties dataSetProperties = new Properties();
-        dataSetProperties.setProperty(DATA_SET_TYPE_KEY, "RAW_DATA");
-        dataSetProperties.setProperty("CENTROID", "true");
-        dataSetProperties.setProperty("BLABLA", "blub");
-        save(dataSetProperties, DATA_SET_PROPERTIES_FILE);
-        SampleTypePropertyType pt1 = createPropertyType(SAMPLE_CODE_KEY, true);
-        SampleTypePropertyType pt2 = createPropertyType("VOLUME", false);
-        prepareGetExperimentAndGetSampleType(false, pt1, pt2);
-        prepareRegisterSample(null);
-        prepareGetDataSetType("RAW_DATA", createDataSetPropertyType("CENTROID", false));
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals(CommonConstants.MS_DATA_SPACE, info.getSpaceCode());
-        assertEquals(SAMPLE_CODE, info.getSampleCode());
-        assertEquals(EXPERIMENT_IDENTIFIER, info.getExperimentIdentifier().toString());
-        List<NewProperty> dProps = info.getDataSetProperties();
-        assertEquals(1, dProps.size());
-        assertEquals("CENTROID", dProps.get(0).getPropertyCode());
-        assertEquals("true", dProps.get(0).getValue());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testRegisterRawDataAndLinkToBiologicalSampe()
-    {
-        Properties sampleProperties = new Properties();
-        sampleProperties.setProperty(PROJECT_CODE_KEY, PROJECT_CODE);
-        sampleProperties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        sampleProperties.setProperty(EXPERIMENT_CODE_KEY, EXPERIMENT_CODE);
-        sampleProperties.setProperty(BIOLOGICAL_SAMPLE_IDENTIFIER_KEY, "bio-sample");
-        sampleProperties.setProperty(USER_KEY, "user1");
-        sampleProperties.setProperty("TEMPERATURE", "47.11");
-        save(sampleProperties, MS_INJECTION_PROPERTIES_FILE);
-        Properties dataSetProperties = new Properties();
-        dataSetProperties.setProperty(DATA_SET_TYPE_KEY, "RAW_DATA");
-        dataSetProperties.setProperty("CENTROID", "true");
-        dataSetProperties.setProperty("BLABLA", "blub");
-        save(dataSetProperties, DATA_SET_PROPERTIES_FILE);
-        SampleTypePropertyType pt1 = createPropertyType(SAMPLE_CODE_KEY, true);
-        SampleTypePropertyType pt2 = createPropertyType("VOLUME", false);
-        prepareGetExperimentAndGetSampleType(false, pt1, pt2);
-        prepareRegisterSample("bio-sample");
-        prepareGetDataSetType("RAW_DATA", createDataSetPropertyType("CENTROID", false));
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetSampleWithExperiment(SampleIdentifierFactory.parse("bio-sample"));
-                    will(returnValue(new Sample()));
-                }
-            });
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals(CommonConstants.MS_DATA_SPACE, info.getSpaceCode());
-        assertEquals(SAMPLE_CODE, info.getSampleCode());
-        assertEquals(EXPERIMENT_IDENTIFIER, info.getExperimentIdentifier().toString());
-        List<NewProperty> dProps = info.getDataSetProperties();
-        assertEquals(1, dProps.size());
-        assertEquals("CENTROID", dProps.get(0).getPropertyCode());
-        assertEquals("true", dProps.get(0).getValue());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testRegisterSupersedingRawDataWhichUpdatesSampleProperties()
-    {
-        Properties sampleProperties = new Properties();
-        sampleProperties.setProperty(PROJECT_CODE_KEY, PROJECT_CODE);
-        sampleProperties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        sampleProperties.setProperty(EXPERIMENT_CODE_KEY, EXPERIMENT_CODE);
-        sampleProperties.setProperty(SAMPLE_PROPERTY, "Isaac");
-        sampleProperties.setProperty("TEMPERATURE", "47.11");
-        save(sampleProperties, MS_INJECTION_PROPERTIES_FILE);
-        Properties dataSetProperties = new Properties();
-        dataSetProperties.setProperty(DATA_SET_TYPE_KEY, "RAW_DATA");
-        dataSetProperties.setProperty("CENTROID", "true");
-        dataSetProperties.setProperty("BLABLA", "blub");
-        save(dataSetProperties, DATA_SET_PROPERTIES_FILE);
-        prepareGetExperimentAndGetSampleType(false, createPropertyType(SAMPLE_PROPERTY, true));
-        prepareUpdateSample("Isaac", null);
-        prepareGetDataSetType("RAW_DATA", createDataSetPropertyType("CENTROID", false));
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals(CommonConstants.MS_DATA_SPACE, info.getSpaceCode());
-        assertEquals(SAMPLE_CODE, info.getSampleCode());
-        assertEquals(EXPERIMENT_IDENTIFIER, info.getExperimentIdentifier().toString());
-        List<NewProperty> dProps = info.getDataSetProperties();
-        assertEquals(1, dProps.size());
-        assertEquals("CENTROID", dProps.get(0).getPropertyCode());
-        assertEquals("true", dProps.get(0).getValue());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testRegisterSupersedingRawDataWhichUpdatesSampleParent()
-    {
-        Properties sampleProperties = new Properties();
-        sampleProperties.setProperty(BIOLOGICAL_SAMPLE_IDENTIFIER_KEY, "bio-sample");
-        sampleProperties.setProperty(PROJECT_CODE_KEY, PROJECT_CODE);
-        sampleProperties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        sampleProperties.setProperty(EXPERIMENT_CODE_KEY, EXPERIMENT_CODE);
-        sampleProperties.setProperty(SAMPLE_PROPERTY, "Isaac");
-        sampleProperties.setProperty("TEMPERATURE", "47.11");
-        save(sampleProperties, MS_INJECTION_PROPERTIES_FILE);
-        Properties dataSetProperties = new Properties();
-        dataSetProperties.setProperty(DATA_SET_TYPE_KEY, "RAW_DATA");
-        dataSetProperties.setProperty("CENTROID", "true");
-        dataSetProperties.setProperty("BLABLA", "blub");
-        save(dataSetProperties, DATA_SET_PROPERTIES_FILE);
-        prepareGetExperimentAndGetSampleType(false, createPropertyType(SAMPLE_PROPERTY, true));
-        prepareUpdateSample("Isaac", new String[] { "bio-sample" });
-        prepareGetDataSetType("RAW_DATA", createDataSetPropertyType("CENTROID", false));
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetSampleWithExperiment(
-                            SampleIdentifierFactory.parse("bio-sample"));
-                    will(returnValue(new Sample()));
-                }
-            });
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals(CommonConstants.MS_DATA_SPACE, info.getSpaceCode());
-        assertEquals(SAMPLE_CODE, info.getSampleCode());
-        assertEquals(EXPERIMENT_IDENTIFIER, info.getExperimentIdentifier().toString());
-        List<NewProperty> dProps = info.getDataSetProperties();
-        assertEquals(1, dProps.size());
-        assertEquals("CENTROID", dProps.get(0).getPropertyCode());
-        assertEquals("true", dProps.get(0).getValue());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testRegisterParentDataSet()
-    {
-        Properties sampleProperties = new Properties();
-        sampleProperties.setProperty(PROJECT_CODE_KEY, PROJECT_CODE);
-        sampleProperties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        sampleProperties.setProperty(EXPERIMENT_CODE_KEY, EXPERIMENT_CODE);
-        sampleProperties.setProperty(SAMPLE_PROPERTY, "Albert");
-        save(sampleProperties, MS_INJECTION_PROPERTIES_FILE);
-        Properties dataSetProperties = new Properties();
-        dataSetProperties.setProperty(DATA_SET_TYPE_KEY, "MZXML_DATA");
-        dataSetProperties.setProperty(PARENT_TYPE_KEY, "RAW_DATA");
-        save(dataSetProperties, DATA_SET_PROPERTIES_FILE);
-        SampleTypePropertyType pt1 = createPropertyType(SAMPLE_PROPERTY, false);
-        SampleTypePropertyType pt2 = createPropertyType("VOLUME", false);
-        SampleTypePropertyType pt3 = createPropertyType("TEMPERATURE", false);
-        prepareGetExperimentAndGetSampleType(true, pt1, pt2, pt3);
-        prepareUpdateSample(null, null);
-        prepareGetDataSetType("MZXML_DATA");
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).listDataSetsBySampleID(SAMPLE_ID, false);
-                    AbstractExternalData ds1 = createDataSet("RAW_DATA", "raw1", 11);
-                    AbstractExternalData ds2 = createDataSet("MZXML_DATA", "mzxml1", 13);
-                    AbstractExternalData ds3 = createDataSet("RAW_DATA", "raw2", 12);
-                    will(returnValue(Arrays.asList(ds1, ds2, ds3)));
-                }
-            });
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals(CommonConstants.MS_DATA_SPACE, info.getSpaceCode());
-        assertEquals(SAMPLE_CODE, info.getSampleCode());
-        assertEquals(new SampleIdentifier(new SpaceIdentifier(CommonConstants.MS_DATA_SPACE),
-                SAMPLE_CODE), info.getSampleIdentifier());
-        assertEquals(EXPERIMENT_IDENTIFIER, info.getExperimentIdentifier().toString());
-        assertEquals(0, info.getDataSetProperties().size());
-        List<String> parentDataSetCodes = info.getParentDataSetCodes();
-        assertEquals("raw2", parentDataSetCodes.get(0));
-        assertEquals(1, parentDataSetCodes.size());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testMissingMandatoryProperties()
-    {
-        Properties properties = new Properties();
-        properties.setProperty(PROJECT_CODE_KEY, PROJECT_CODE);
-        properties.setProperty(SAMPLE_CODE_KEY, SAMPLE_CODE);
-        properties.setProperty(EXPERIMENT_CODE_KEY, EXPERIMENT_CODE);
-        save(properties, MS_INJECTION_PROPERTIES_FILE);
-        SampleTypePropertyType pt1 = createPropertyType(SAMPLE_CODE_KEY, true);
-        SampleTypePropertyType pt2 = createPropertyType("VOLUME", true);
-        SampleTypePropertyType pt3 = createPropertyType("TEMPERATURE", true);
-        prepareGetExperimentAndGetSampleType(true, pt1, pt2, pt3);
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetSampleWithExperiment(
-                            SampleIdentifierFactory.parse(SAMPLE_IDENTIFIER));
-                    will(returnValue(null));
-                }
-            });
-
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("The following mandatory properties are missed: [VOLUME, TEMPERATURE]", ex
-                    .getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    private void prepareGetExperimentAndGetSampleType(final boolean experimentExists,
-            final SampleTypePropertyType... sampleTypePropertyTypes)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    ExperimentIdentifier identifier =
-                            new ExperimentIdentifier(CommonConstants.MS_DATA_SPACE, PROJECT_CODE,
-                                    EXPERIMENT_CODE);
-                    one(service).tryGetExperiment(identifier);
-                    Experiment experiment = new Experiment();
-                    experiment.setId(EXPERIMENT_ID);
-                    will(returnValue(experimentExists ? experiment : null));
-
-                    if (experimentExists == false)
-                    {
-                        one(service).registerExperiment(
-                                new NewExperiment(identifier.toString(), EXPERIMENT_TYPE_CODE));
-                    }
-                }
-            });
-        prepareGetSampleType(sampleTypePropertyTypes);
-    }
-
-    private void prepareGetSampleType(final SampleTypePropertyType... sampleTypePropertyTypes)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).getSampleType(CommonConstants.MS_INJECTION_SAMPLE_TYPE_CODE);
-                    SampleType sampleType = new SampleType();
-                    sampleType.setCode(CommonConstants.MS_INJECTION_SAMPLE_TYPE_CODE);
-                    sampleType.setSampleTypePropertyTypes(Arrays.asList(sampleTypePropertyTypes));
-                    will(returnValue(sampleType));
-                }
-            });
-    }
-
-    private void prepareGetDataSetType(final String dataSetType,
-            final DataSetTypePropertyType... types)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).getDataSetType(dataSetType);
-                    DataSetTypeWithVocabularyTerms result = new DataSetTypeWithVocabularyTerms();
-                    DataSetType type = new DataSetType(dataSetType);
-                    type.setDataSetTypePropertyTypes(Arrays.asList(types));
-                    result.setDataSetType(type);
-                    will(returnValue(result));
-                }
-            });
-    }
-
-    private void prepareRegisterSample(final String parentIdentifier)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetSampleWithExperiment(
-                            SampleIdentifierFactory.parse(SAMPLE_IDENTIFIER));
-                    will(returnValue(null));
-
-                    one(service).registerSample(with(new BaseMatcher<NewSample>()
-                        {
-                            @Override
-                            public boolean matches(Object item)
-                            {
-                                if (item instanceof NewSample)
-                                {
-                                    NewSample sample = (NewSample) item;
-                                    assertEquals(CommonConstants.MS_INJECTION_SAMPLE_TYPE_CODE, sample.getSampleType().getCode());
-                                    assertEquals(SAMPLE_IDENTIFIER, sample.getIdentifier());
-                                    assertEquals(EXPERIMENT_IDENTIFIER, sample
-                                            .getExperimentIdentifier());
-                                    String[] parents = sample.getParentsOrNull();
-                                    assertEquals(parentIdentifier, parents == null ? null : parents[0]);
-                                    IEntityProperty[] properties = sample.getProperties();
-                                    Map<String, IEntityProperty> map =
-                                            new HashMap<String, IEntityProperty>();
-                                    for (IEntityProperty property : properties)
-                                    {
-                                        map.put(property.getPropertyType().getCode(), property);
-                                    }
-
-                                    assertEquals(SAMPLE_CODE, map.get(SAMPLE_CODE_KEY).getValue());
-                                    assertEquals(1, map.size());
-                                    return true;
-                                }
-                                return false;
-                            }
-
-                            @Override
-                            public void describeTo(Description description)
-                            {
-                                description.appendText(SAMPLE_IDENTIFIER);
-                            }
-                        }), with("user1"));
-                }
-            });
-    }
-
-    private void prepareUpdateSample(final String newName, final String[] expectedModifiedParentCodesOrNull)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetSampleWithExperiment(
-                            SampleIdentifierFactory.parse(SAMPLE_IDENTIFIER));
-                    Sample sample = new Sample();
-                    sample.setId(SAMPLE_ID);
-                    sample.setModificationDate(new Date(4711));
-                    sample.setProperties(Arrays.<IEntityProperty> asList(createProperty(
-                            SAMPLE_PROPERTY, "Albert")));
-                    SampleType sampleType = new SampleType();
-                    sampleType.setSampleTypePropertyTypes(Arrays.asList(createPropertyType(
-                            SAMPLE_PROPERTY, true)));
-                    sample.setSampleType(sampleType);
-                    will(returnValue(sample));
-
-                    one(service).updateSample(with(new BaseMatcher<SampleUpdatesDTO>()
-                        {
-                            @Override
-                            public boolean matches(Object item)
-                            {
-                                if (item instanceof SampleUpdatesDTO)
-                                {
-                                    SampleUpdatesDTO sampleUpdate = (SampleUpdatesDTO) item;
-                                    assertEquals(SAMPLE_ID, sampleUpdate.getSampleIdOrNull()
-                                            .getId().longValue());
-                                    assertEquals(0, sampleUpdate.getAttachments().size());
-                                    assertEquals(null, sampleUpdate.getContainerIdentifierOrNull());
-                                    Assert.assertEquals(
-                                            sampleUpdate.getModifiedParentCodesOrNull(),
-                                            expectedModifiedParentCodesOrNull);
-                                    assertEquals(EXPERIMENT_IDENTIFIER, sampleUpdate
-                                            .getExperimentIdentifierOrNull().toString());
-                                    assertEquals(SAMPLE_IDENTIFIER, sampleUpdate
-                                            .getSampleIdentifier().toString());
-                                    List<IEntityProperty> properties = sampleUpdate.getProperties();
-                                    assertEquals(SAMPLE_PROPERTY, properties.get(0)
-                                            .getPropertyType().getCode());
-                                    assertEquals(newName == null ? "Albert" : newName, properties
-                                            .get(0).getValue());
-                                    assertEquals(1, properties.size());
-                                    return true;
-                                }
-                                return false;
-                            }
-
-                            @Override
-                            public void describeTo(Description description)
-                            {
-                            }
-                        }));
-                }
-            });
-    }
-
-    private void save(Properties properties, String fileName)
-    {
-        File propertiesFile = new File(dataSet, fileName);
-        FileOutputStream outputStream = null;
-        try
-        {
-            outputStream = new FileOutputStream(propertiesFile);
-            properties.store(outputStream, null);
-        } catch (IOException ex)
-        {
-            throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-        } finally
-        {
-            IOUtils.closeQuietly(outputStream);
-        }
-    }
-
-    private SampleTypePropertyType createPropertyType(String key, boolean mandatory)
-    {
-        SampleTypePropertyType stpt = new SampleTypePropertyType();
-        stpt.setMandatory(mandatory);
-        PropertyType propertyType = new PropertyType();
-        propertyType.setCode(key);
-        stpt.setPropertyType(propertyType);
-        return stpt;
-    }
-
-    private DataSetTypePropertyType createDataSetPropertyType(String key, boolean mandatory)
-    {
-        DataSetTypePropertyType etpt = new DataSetTypePropertyType();
-        etpt.setMandatory(mandatory);
-        PropertyType propertyType = new PropertyType();
-        propertyType.setCode(key);
-        etpt.setPropertyType(propertyType);
-        return etpt;
-    }
-
-    private EntityProperty createProperty(String name, String value)
-    {
-        EntityProperty entityProperty = new EntityProperty();
-        PropertyType propertyType = new PropertyType();
-        propertyType.setCode(name);
-        entityProperty.setPropertyType(propertyType);
-        entityProperty.setValue(value);
-        return entityProperty;
-    }
-
-    private AbstractExternalData createDataSet(String type, String code, int timestamp)
-    {
-        PhysicalDataSet ds = new PhysicalDataSet();
-        ds.setDataSetType(new DataSetType(type));
-        ds.setCode(code);
-        ds.setRegistrationDate(new Date(timestamp));
-        return ds;
-    }
-
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForProteinResultsTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForProteinResultsTest.java
deleted file mode 100644
index a6d4275ff7ffcebe7292542c9657a00c5c24bc57..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DataSetInfoExtractorForProteinResultsTest.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForProteinResults.DEFAULT_EXPERIMENT_TYPE_CODE;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForProteinResults.EXPERIMENT_IDENTIFIER_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForProteinResults.EXPERIMENT_PROPERTIES_FILE_NAME_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForProteinResults.EXPERIMENT_TYPE_CODE_KEY;
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForProteinResults.PARENT_DATA_SET_CODES;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.rinn.restrictions.Friend;
-import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.common.test.RecordingMatcher;
-import ch.systemsx.cisd.etlserver.IDataSetInfoExtractor;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentTypePropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.DataSetBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.ExperimentBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Friend(toClasses = DataSetInfoExtractorForProteinResults.class)
-public class DataSetInfoExtractorForProteinResultsTest extends AbstractFileSystemTestCase
-{
-    private static final String PARENT_DATA_SET_CODES_KEY =
-            DataSetInfoExtractorForProteinResults.PARENT_DATA_SET_CODES.toUpperCase();
-
-    private Mockery context;
-
-    private IEncapsulatedOpenBISService service;
-
-    private File dataSet;
-
-    private File protXmlFile;
-
-    @BeforeMethod
-    public void beforeMethod()
-    {
-        context = new Mockery();
-        service = context.mock(IEncapsulatedOpenBISService.class);
-        dataSet = new File(workingDirectory, "space1&project1");
-        dataSet.mkdirs();
-        protXmlFile = new File(dataSet, "prot.xml");
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testWithNonDefaultExperimentTypeAndPropertiesFileName()
-    {
-        FileUtilities.writeToFile(protXmlFile, "");
-        String propertiesFile = "my.properties";
-        FileUtilities.writeToFile(new File(dataSet, propertiesFile), "answer=42\nblabla=blub\n"
-                + EXPERIMENT_IDENTIFIER_KEY + "= /TEST/PROJECT/EXP_TO_BE_IGNORED\n"
-                + PARENT_DATA_SET_CODES + "=1 2  3   4\n");
-        Properties properties = new Properties();
-        String experimentType = "MY_EXPERIMENT";
-        properties.setProperty(EXPERIMENT_TYPE_CODE_KEY, experimentType);
-        properties.setProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY, propertiesFile);
-        prepareGetDataSet("1");
-        prepareGetDataSet("2");
-        prepareGetDataSet("3");
-        prepareGetDataSet("4");
-        prepare(experimentType);
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).registerExperiment(with(any(NewExperiment.class)));
-                }
-            });
-
-        IDataSetInfoExtractor extractor = createExtractor(properties);
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals("/SPACE1/PROJECT1/E4711", info.getExperimentIdentifier().toString());
-        assertEquals("[1, 2, 3, 4]", info.getParentDataSetCodes().toString());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testWithProvidedExperimentCode()
-    {
-        FileUtilities.writeToFile(protXmlFile, "");
-        String propertiesFile = "my.properties";
-        FileUtilities.writeToFile(new File(dataSet, propertiesFile), "answer=42\nblabla=blub\n"
-                + DataSetInfoExtractorForProteinResults.EXPERIMENT_CODE_KEY + "= MY_EXP1\n");
-        Properties properties = new Properties();
-        String experimentType = "MY_EXPERIMENT";
-        properties.setProperty(EXPERIMENT_TYPE_CODE_KEY, experimentType);
-        properties.setProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY, propertiesFile);
-        prepare(experimentType, false);
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).registerExperiment(with(any(NewExperiment.class)));
-                }
-            });
-
-        IDataSetInfoExtractor extractor = createExtractor(properties);
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals("/SPACE1/PROJECT1/MY_EXP1", info.getExperimentIdentifier().toString());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testRegistrationWithOneMandatoryProperty()
-    {
-        FileUtilities.writeToFile(protXmlFile, "");
-        FileUtilities.writeToFile(new File(dataSet,
-                DataSetInfoExtractorForProteinResults.DEFAULT_EXPERIMENT_PROPERTIES_FILE_NAME),
-                "answer=42\nblabla=blub\n" + PARENT_DATA_SET_CODES + "=1 2  3   4\n");
-        prepare(DEFAULT_EXPERIMENT_TYPE_CODE);
-        prepareGetDataSet("1");
-        prepareGetDataSet("2");
-        prepareGetDataSet("3");
-        prepareGetDataSet("4");
-
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).registerExperiment(with(new BaseMatcher<NewExperiment>()
-                        {
-                            @Override
-                            public boolean matches(Object item)
-                            {
-                                if (item instanceof NewExperiment)
-                                {
-                                    NewExperiment experiment = (NewExperiment) item;
-                                    assertEquals(DEFAULT_EXPERIMENT_TYPE_CODE,
-                                            experiment.getExperimentTypeCode());
-                                    IEntityProperty[] properties = experiment.getProperties();
-                                    assertEquals(1, properties.length);
-                                    assertEquals("answer", properties[0].getPropertyType()
-                                            .getCode());
-                                    assertEquals("42", properties[0].tryGetAsString());
-                                    return true;
-                                }
-                                return false;
-                            }
-
-                            @Override
-                            public void describeTo(Description description)
-                            {
-                            }
-                        }));
-                }
-            });
-
-        IDataSetInfoExtractor extractor = createExtractor(new Properties());
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals("/SPACE1/PROJECT1/E4711", info.getExperimentIdentifier().toString());
-        assertEquals("[1, 2, 3, 4]", info.getParentDataSetCodes().toString());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testRegistrationWithMissingProtXmlFile()
-    {
-        prepare(DEFAULT_EXPERIMENT_TYPE_CODE);
-
-        IDataSetInfoExtractor extractor = createExtractor(new Properties());
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("No *prot.xml file found in data set '" + dataSet + "'.", ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testRegistrationWithMissingMandatoryProperty()
-    {
-        FileUtilities.writeToFile(protXmlFile, "");
-        prepare(DEFAULT_EXPERIMENT_TYPE_CODE);
-
-        IDataSetInfoExtractor extractor = createExtractor(new Properties());
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("The following mandatory properties are missed: [answer]", ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testWithParentDataSetsDefinedByBaseExperimentAndProtXmlFileTooLarge()
-    {
-        FileUtilities.writeToFile(protXmlFile, "abc");
-        String propertiesFile = "my.properties";
-        FileUtilities.writeToFile(new File(dataSet, propertiesFile), "answer=42\nblabla=blub\n"
-                + EXPERIMENT_IDENTIFIER_KEY + "= /TEST/PROJECT/EXP1\n");
-        Properties properties = new Properties();
-        String experimentType = "MY_EXPERIMENT";
-        properties.setProperty(EXPERIMENT_TYPE_CODE_KEY, experimentType);
-        properties.setProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY, propertiesFile);
-        properties.setProperty(DataSetInfoExtractorForProteinResults.PROT_XML_SIZE_THRESHOLD, "0");
-        prepare(experimentType);
-        final RecordingMatcher<NewExperiment> experimentMatcher = new RecordingMatcher<NewExperiment>();
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetExperiment(
-                            new ExperimentIdentifier(new ProjectIdentifier("TEST", "PROJECT"),
-                                    "EXP1"));
-                    Experiment experiment = new ExperimentBuilder().id(123789L).getExperiment();
-                    will(returnValue(experiment));
-
-                    one(service).listDataSetsByExperimentID(experiment.getId());
-                    AbstractExternalData ds1 = new DataSetBuilder().code("ds1").getDataSet();
-                    AbstractExternalData ds2 = new DataSetBuilder().code("ds2").getDataSet();
-                    will(returnValue(Arrays.asList(ds1, ds2)));
-
-                    one(service).registerExperiment(with(experimentMatcher));
-                }
-            });
-
-        IDataSetInfoExtractor extractor = createExtractor(properties);
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals("/SPACE1/PROJECT1/E4711", info.getExperimentIdentifier().toString());
-        assertEquals("[ds1, ds2]", info.getParentDataSetCodes().toString());
-        IEntityProperty[] expProps = experimentMatcher.recordedObject().getProperties();
-        assertEquals("Size of prot.xml file prot.xml is with 3 bytes too large. Maximum size is 0 bytes",
-                asMap(expProps).get(DataSetInfoExtractorForProteinResults.NOT_PROCESSED_PROPERTY).getValue());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testWithUnkownBaseExperiment()
-    {
-        FileUtilities.writeToFile(protXmlFile, "");
-        String propertiesFile = "my.properties";
-        FileUtilities.writeToFile(new File(dataSet, propertiesFile), "answer=42\nblabla=blub\n"
-                + EXPERIMENT_IDENTIFIER_KEY + "= /TEST/PROJECT/EXP1\n");
-        Properties properties = new Properties();
-        String experimentType = "MY_EXPERIMENT";
-        properties.setProperty(EXPERIMENT_TYPE_CODE_KEY, experimentType);
-        properties.setProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY, propertiesFile);
-        prepare(experimentType);
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetExperiment(
-                            new ExperimentIdentifier(new ProjectIdentifier("TEST", "PROJECT"),
-                                    "EXP1"));
-                    will(returnValue(null));
-
-                }
-            });
-
-        IDataSetInfoExtractor extractor = createExtractor(properties);
-
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("UserFailureException expected.");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Unkown experiment /TEST/PROJECT/EXP1", ex.getMessage());
-        }
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testWithUnkownParentDataSets()
-    {
-        FileUtilities.writeToFile(protXmlFile, "");
-        String propertiesFile = "my.properties";
-        FileUtilities.writeToFile(new File(dataSet, propertiesFile), "answer=42\nblabla=blub\n"
-                + EXPERIMENT_IDENTIFIER_KEY + "= /TEST/PROJECT/EXP1\n" + PARENT_DATA_SET_CODES_KEY
-                + " = ds1 ds2, ds3");
-        Properties properties = new Properties();
-        String experimentType = "MY_EXPERIMENT";
-        properties.setProperty(EXPERIMENT_TYPE_CODE_KEY, experimentType);
-        properties.setProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY, propertiesFile);
-        prepare(experimentType);
-        prepareGetDataSet("ds1");
-        prepareGetDataSet("ds2", null);
-        prepareGetDataSet("ds3", null);
-
-        IDataSetInfoExtractor extractor = createExtractor(properties);
-
-        try
-        {
-            extractor.getDataSetInformation(dataSet, service);
-            fail("UserFailureException expected.");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Unknown data sets: ds2, ds3", ex.getMessage());
-        }
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testWithParentDataSetsSeparatedBySpaces()
-    {
-        FileUtilities.writeToFile(protXmlFile, "");
-        String propertiesFile = "my.properties";
-        FileUtilities.writeToFile(new File(dataSet, propertiesFile), "answer=42\nblabla=blub\n"
-                + EXPERIMENT_IDENTIFIER_KEY + "= /TEST/PROJECT/EXP1\n" + PARENT_DATA_SET_CODES_KEY
-                + " = ds1     ds2");
-        Properties properties = new Properties();
-        String experimentType = "MY_EXPERIMENT";
-        properties.setProperty(EXPERIMENT_TYPE_CODE_KEY, experimentType);
-        properties.setProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY, propertiesFile);
-        prepare(experimentType);
-        prepareGetDataSet("ds1");
-        prepareGetDataSet("ds2");
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).registerExperiment(with(any(NewExperiment.class)));
-                }
-            });
-
-        IDataSetInfoExtractor extractor = createExtractor(properties);
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals("/SPACE1/PROJECT1/E4711", info.getExperimentIdentifier().toString());
-        assertEquals("[ds1, ds2]", info.getParentDataSetCodes().toString());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testWithParentDataSetsSeparatedByComma()
-    {
-        FileUtilities.writeToFile(protXmlFile, "");
-        String propertiesFile = "my.properties";
-        FileUtilities.writeToFile(new File(dataSet, propertiesFile), "answer=42\nblabla=blub\n"
-                + PARENT_DATA_SET_CODES_KEY + " = ds1,ds2");
-        Properties properties = new Properties();
-        String experimentType = "MY_EXPERIMENT";
-        properties.setProperty(EXPERIMENT_TYPE_CODE_KEY, experimentType);
-        properties.setProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY, propertiesFile);
-        prepare(experimentType);
-        prepareGetDataSet("ds1");
-        prepareGetDataSet("ds2");
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).registerExperiment(with(any(NewExperiment.class)));
-                }
-            });
-
-        IDataSetInfoExtractor extractor = createExtractor(properties);
-
-        DataSetInformation info = extractor.getDataSetInformation(dataSet, service);
-
-        assertEquals("/SPACE1/PROJECT1/E4711", info.getExperimentIdentifier().toString());
-        assertEquals("[ds1, ds2]", info.getParentDataSetCodes().toString());
-        context.assertIsSatisfied();
-    }
-
-    private void prepare(final String experimentType)
-    {
-        prepare(experimentType, true);
-    }
-
-    private void prepare(final String experimentType, final boolean experimentCodeGenerated)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    if (experimentCodeGenerated)
-                    {
-                        one(service).generateCodes("E", EntityKind.EXPERIMENT, 1);
-                        will(returnValue(Collections.singletonList("E4711")));
-                    }
-
-                    one(service).getExperimentType(experimentType);
-                    ExperimentType type = new ExperimentType();
-                    ExperimentTypePropertyType etpt1 = new ExperimentTypePropertyType();
-                    PropertyType propertyType1 = new PropertyType();
-                    propertyType1.setCode("answer");
-                    etpt1.setPropertyType(propertyType1);
-                    etpt1.setMandatory(true);
-                    ExperimentTypePropertyType etpt2 = new ExperimentTypePropertyType();
-                    PropertyType propertyType2 = new PropertyType();
-                    propertyType2.setCode(DataSetInfoExtractorForProteinResults.NOT_PROCESSED_PROPERTY);
-                    etpt2.setPropertyType(propertyType2);
-                    type.setExperimentTypePropertyTypes(Arrays.asList(etpt1, etpt2));
-                    will(returnValue(type));
-                }
-            });
-    }
-
-    private void prepareGetDataSet(final String dataSetCode)
-    {
-        prepareGetDataSet(dataSetCode, new DataSetBuilder().code(dataSetCode).getDataSet());
-    }
-
-    private void prepareGetDataSet(final String dataSetCode, final AbstractExternalData data)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetDataSet(dataSetCode);
-                    will(returnValue(data));
-                }
-            });
-    }
-
-    private Map<String, IEntityProperty> asMap(IEntityProperty[] properties)
-    {
-        Map<String, IEntityProperty> result = new HashMap<String, IEntityProperty>();
-        for (IEntityProperty property : properties)
-        {
-            result.put(property.getPropertyType().getCode(), property);
-        }
-        return result;
-    }
-
-    private IDataSetInfoExtractor createExtractor(Properties properties)
-    {
-        return new DataSetInfoExtractorForProteinResults(properties, service);
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLLoaderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLLoaderTest.java
deleted file mode 100644
index a9664abc6a86be49a2c6f2d04c811c4ce7c1ed16..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLLoaderTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.io.File;
-import java.util.List;
-
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.ProtXMLLoader;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.AminoAcidMass;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.AnnotatedProtein;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Parameter;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Peptide;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.PeptideModification;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Protein;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinGroup;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinProphetDetails;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummary;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummaryDataFilter;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummaryHeader;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProtXMLLoaderTest extends ProtXMLTestCase
-{
-    @Test
-    public void test()
-    {
-        File file = new File(workingDirectory, "test.xml");
-        FileUtilities.writeToFile(file, EXAMPLE);
-        ProteinSummary summary = new ProtXMLLoader(true).readProtXML(file);
-
-        ProteinSummaryHeader header = summary.getSummaryHeader();
-        assertEquals("some/path/uniprot.HUMAN.v125.fasta", header.getReferenceDatabase());
-        ProteinProphetDetails proteinProphet =
-                (ProteinProphetDetails) summary.getSummaryHeader().getProgramDetails().getSummary()[0];
-        List<ProteinSummaryDataFilter> dataFilters = proteinProphet.getDataFilters();
-        assertEquals(1, dataFilters.size());
-        assertEquals(0.25, dataFilters.get(0).getMinProbability());
-        assertEquals(1.0, dataFilters.get(0).getSensitivity());
-        assertEquals(0.5, dataFilters.get(0).getFalsePositiveErrorRate());
-
-        List<ProteinGroup> groups = summary.getProteinGroups();
-        assertEquals(2, groups.size());
-        assertEquals(1.0, groups.get(0).getProbability());
-        List<Protein> proteins = groups.get(0).getProteins();
-        assertEquals(2, proteins.size());
-        Protein protein1 = proteins.get(0);
-        assertEquals(1.0, protein1.getProbability());
-        List<Parameter> parameters = protein1.getParameters();
-        assertEquals(2, parameters.size());
-        assertEquals("key1", parameters.get(0).getName());
-        assertEquals("value1", parameters.get(0).getValue());
-        assertEquals("type1", parameters.get(0).getType());
-        assertEquals("key2", parameters.get(1).getName());
-        assertEquals("value2", parameters.get(1).getValue());
-        assertEquals("type2", parameters.get(1).getType());
-        assertEquals("P42", protein1.getAnnotation().getDescription());
-        List<AnnotatedProtein> indistinguishableProteins = protein1.getIndistinguishableProteins();
-        assertEquals(2, indistinguishableProteins.size());
-        assertEquals("P43", indistinguishableProteins.get(0).getAnnotation().getDescription());
-        assertEquals("P44", indistinguishableProteins.get(1).getAnnotation().getDescription());
-        List<Peptide> peptides = protein1.getPeptides();
-        assertEquals(2, peptides.size());
-        assertEquals("VYQIDGNYSR", peptides.get(0).getSequence());
-        assertEquals(1, peptides.get(0).getModifications().size());
-        PeptideModification peptideModification = peptides.get(0).getModifications().get(0);
-        assertEquals(42.0, peptideModification.getNTermMass());
-        assertEquals(24.25, peptideModification.getCTermMass());
-        List<AminoAcidMass> masses = peptideModification.getAminoAcidMasses();
-        assertEquals(2, masses.size());
-        assertEquals(1, masses.get(0).getPosition());
-        assertEquals(115.25, masses.get(0).getMass());
-        assertEquals(4, masses.get(1).getPosition());
-        assertEquals(31.75, masses.get(1).getMass());
-        assertEquals("ITSN", peptides.get(1).getSequence());
-        assertEquals(0, peptides.get(1).getModifications().size());
-        Protein protein2 = proteins.get(1);
-        assertEquals(0.0, protein2.getProbability());
-        assertEquals("Q42", protein2.getAnnotation().getDescription());
-        assertEquals(0, protein2.getIndistinguishableProteins().size());
-        assertEquals(1, protein2.getPeptides().size());
-        assertEquals("YSR", protein2.getPeptides().get(0).getSequence());
-        assertEquals(0, protein2.getPeptides().get(0).getModifications().size());
-
-        assertEquals(0.75, groups.get(1).getProbability());
-        assertEquals(1, groups.get(1).getProteins().size());
-        Protein protein = groups.get(1).getProteins().get(0);
-        assertEquals(0.75, protein.getProbability());
-        assertEquals("R42", protein.getAnnotation().getDescription());
-        assertEquals(0, protein.getIndistinguishableProteins().size());
-        assertEquals(1, protein.getPeptides().size());
-        assertEquals("IYSR", protein.getPeptides().get(0).getSequence());
-        assertEquals(0, protein.getPeptides().get(0).getModifications().size());
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLTestCase.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLTestCase.java
deleted file mode 100644
index d94493700d847f4c83de8b0eff4538d5f16f1108..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLTestCase.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
-
-/**
- * @author Franz-Josef Elmer
- */
-public abstract class ProtXMLTestCase extends AbstractFileSystemTestCase
-{
-
-    protected static final String EXAMPLE =
-            "<?xml version='1.0' encoding='UTF-8'?>\n"
-                    + "<protein_summary xmlns='http://regis-web.systemsbiology.net/protXML' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' "
-                    +
-                    "xsi:schemaLocation='http://regis-web.systemsbiology.net/protXML http://sashimi.sourceforge.net/schema_revision/protXML/protXML_v5.xsd'>\n"
-                    + "<protein_summary_header reference_database='some/path/uniprot.HUMAN.v125.fasta' residue_substitution_list='I -> L' "
-                    +
-                    "source_files='/home/lars/tmp/interact.pep.xml' source_files_alt='/home/lars/tmp/interact.pep.xml' min_peptide_probability='0.20' min_peptide_weight='0.50' num_predicted_correct_prots='755.6' num_input_1_spectra='0' num_input_2_spectra='77824' num_input_3_spectra='38201' num_input_4_spectra='0' num_input_5_spectra='0' initial_min_peptide_prob='0.05' total_no_spectrum_ids='104665.2' sample_enzyme='trypsin'>\n"
-                    + " <program_details analysis='' time='2009-08-12T09:08:07'>\n"
-                    + " <proteinprophet_details occam_flag='true' groups_flag='Y' degen_flag='Y' nsp_flag='Y' initial_peptide_wt_iters='2' "
-                    +
-                    "nsp_distribution_iters='2' final_peptide_wt_iters='4' run_options='XML'>\n"
-                    + " <nsp_information neighboring_bin_smoothing='Y'>\n"
-                    + "   <nsp_distribution bin_no='0' nsp_lower_bound_incl='0.00' nsp_upper_bound_incl='0.00' pos_freq='0.003' neg_freq='0.320' pos_to_neg_ratio='0.01'/>\n"
-                    + " </nsp_information>\n"
-                    + " <ni_information>\n"
-                    + "   <ni_distribution bin_no='1' pos_freq='42' neg_freq='42' pos_to_neg_ratio='1'/>\n"
-                    + " </ni_information>\n"
-                    + " <protein_summary_data_filter min_probability='0.25' sensitivity='1' false_positive_error_rate='0.5' predicted_num_correct='9' "
-                    +
-                    "predicted_num_incorrect='4'/>\n"
-                    + " </proteinprophet_details>\n"
-                    + " </program_details>\n"
-                    + "</protein_summary_header>\n"
-                    + "<dataset_derivation generation_no='1'/>\n"
-                    + "<protein_group probability='1' group_number='1'>\n"
-                    + " <protein probability='1' protein_name='a' n_indistinguishable_proteins='3' group_sibling_id='0'>\n"
-                    + "  <parameter name='key1' value='value1' type='type1'/>\n"
-                    + "  <parameter name='key2' value='value2' type='type2'/>\n"
-                    + "  <annotation protein_description='P42'/>\n"
-                    + "  <indistinguishable_protein protein_name='a'><annotation protein_description='P43'/></indistinguishable_protein>\n"
-                    + "  <indistinguishable_protein protein_name='a'><annotation protein_description='P44'/></indistinguishable_protein>\n"
-                    + "  <peptide peptide_sequence='VYQIDGNYSR' charge='1' initial_probability='0' is_nondegenerate_evidence='true' n_enzymatic_termini='1' n_instances='1' is_contributing_evidence='N'>\n"
-                    + "   <modification_info mod_nterm_mass='42' mod_cterm_mass='24.25'>\n"
-                    + "    <mod_aminoacid_mass position='1' mass='115.25'/>\n"
-                    + "    <mod_aminoacid_mass position='4' mass='31.75'/>\n"
-                    + "   </modification_info>\n"
-                    + "  </peptide>\n"
-                    + "  <peptide peptide_sequence='ITSN' charge='1' initial_probability='0' is_nondegenerate_evidence='Y' n_enzymatic_termini='1' n_instances='1' is_contributing_evidence='N'/>\n"
-                    + " </protein>\n"
-                    + " <protein probability='0' protein_name='a' n_indistinguishable_proteins='1' group_sibling_id='1'>\n"
-                    + "  <annotation protein_description='Q42'/>\n"
-                    + "  <peptide peptide_sequence='YSR' charge='1' initial_probability='0' is_nondegenerate_evidence='Y' n_enzymatic_termini='1' n_instances='1' is_contributing_evidence='N'/>\n"
-                    + " </protein>\n"
-                    + "</protein_group>\n"
-                    + "<protein_group probability='0.75' group_number='2'>\n"
-                    + " <protein probability='0.75' protein_name='a' n_indistinguishable_proteins='1' group_sibling_id='2'>\n"
-                    + "  <annotation protein_description='R42'/>\n"
-                    + "  <peptide peptide_sequence='IYSR' charge='1' initial_probability='0' is_nondegenerate_evidence='Y' n_enzymatic_termini='1' n_instances='1' is_contributing_evidence='N'/>\n"
-                    + " </protein>\n"
-                    + "</protein_group>\n"
-                    + "</protein_summary>\n";
-
-    /**
-     *
-     *
-     */
-    public ProtXMLTestCase()
-    {
-        super();
-    }
-
-    /**
-     * @param cleanAfterMethod
-     */
-    public ProtXMLTestCase(boolean cleanAfterMethod)
-    {
-        super(cleanAfterMethod);
-    }
-
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLUploaderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLUploaderTest.java
deleted file mode 100644
index 28a17c1fff12acbda91c7c168e358712ecf09c7b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProtXMLUploaderTest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.io.File;
-import java.util.Properties;
-
-import org.jmock.Mockery;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummary;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummaryHeader;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.ExperimentBuilder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProtXMLUploaderTest extends ProtXMLTestCase
-{
-    private static final class MockUploader extends ProtXMLUploader
-    {
-        private final IEncapsulatedOpenBISService openbisService;
-
-        private DataSetInformation dataSetInformation;
-
-        private ProteinSummary proteinSummary;
-
-        public MockUploader(Properties properties, IEncapsulatedOpenBISService openbisService)
-        {
-            super(properties, openbisService);
-            this.openbisService = openbisService;
-        }
-
-        @Override
-        protected ResultDataSetUploader createUploader()
-        {
-            return new ResultDataSetUploader(null, null, null, true, "+", false)
-                {
-                    @Override
-                    void upload(DataSetInformation dataSetInfo, ProteinSummary summary)
-                    {
-                        dataSetInformation = dataSetInfo;
-                        proteinSummary = summary;
-                    }
-                };
-        }
-
-        public IEncapsulatedOpenBISService getService()
-        {
-            return openbisService;
-        }
-
-        public DataSetInformation getDataSetInformation()
-        {
-            return dataSetInformation;
-        }
-
-        public ProteinSummary getProteinSummary()
-        {
-            return proteinSummary;
-        }
-    }
-
-    private Mockery context;
-
-    private IEncapsulatedOpenBISService service;
-
-    private MockUploader uploader;
-
-    @BeforeMethod
-    public void startUp()
-    {
-        context = new Mockery();
-        service = context.mock(IEncapsulatedOpenBISService.class);
-        Properties properties = new Properties();
-        properties.setProperty("database.kind", "test");
-        uploader = new MockUploader(properties, service);
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testDataSetIsProtXMLFile()
-    {
-        File file = new File(workingDirectory, "test.xml");
-        FileUtilities.writeToFile(file, EXAMPLE);
-        DataSetInformation dataSetInformation = new DataSetInformation();
-
-        uploader.upload(file, dataSetInformation);
-
-        assertSame(service, uploader.getService());
-        assertSame(dataSetInformation, uploader.getDataSetInformation());
-        ProteinSummaryHeader header = uploader.getProteinSummary().getSummaryHeader();
-        assertEquals("some/path/uniprot.HUMAN.v125.fasta", header.getReferenceDatabase());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testDataSetIsFolderWithProtXMLFile()
-    {
-        File dataSet = new File(workingDirectory, "data-set");
-        dataSet.mkdir();
-        FileUtilities.writeToFile(new File(dataSet, "test-prot.xml"), EXAMPLE);
-        DataSetInformation dataSetInformation = new DataSetInformation();
-
-        uploader.upload(dataSet, dataSetInformation);
-
-        assertSame(service, uploader.getService());
-        assertSame(dataSetInformation, uploader.getDataSetInformation());
-        ProteinSummaryHeader header = uploader.getProteinSummary().getSummaryHeader();
-        assertEquals("some/path/uniprot.HUMAN.v125.fasta", header.getReferenceDatabase());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testDataSetIsFolderWithProtXMLFileToBeTooLarge()
-    {
-        File dataSet = new File(workingDirectory, "data-set");
-        dataSet.mkdir();
-        FileUtilities.writeToFile(new File(dataSet, "test-prot.xml"), EXAMPLE);
-        DataSetInformation dataSetInformation = new DataSetInformation();
-        dataSetInformation.setExperiment(new ExperimentBuilder().property(
-                DataSetInfoExtractorForProteinResults.NOT_PROCESSED_PROPERTY, "too large").getExperiment());
-
-        uploader.upload(dataSet, dataSetInformation);
-
-        assertEquals(null, uploader.getDataSetInformation());
-        context.assertIsSatisfied();
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinDescriptionTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinDescriptionTest.java
deleted file mode 100644
index 977515a90c156660041a4fd3b04b0b2d4016e059..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinDescriptionTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.ProteinDescription;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinAnnotation;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinDescriptionTest extends AssertJUnit
-{
-    @Test
-    public void testWithOutAccessionNumber()
-    {
-        ProteinAnnotation annotation = createAnnotation("Q92902");
-        try
-        {
-            new ProteinDescription(annotation, 0, true);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Can not find a amino-acid sequence in following protein description: Q92902", ex.getMessage());
-        }
-    }
-
-    @Test
-    public void testWithAccessionNumberAndSequence()
-    {
-        ProteinAnnotation annotation =
-                createAnnotation("Q92902 \\ID=HPS1_HUMAN \\MODRES= "
-                        + "\\VARIANT=(55|.|)(100|E|D)(186|A|V)(283|G|W)(480|A|T) "
-                        + "\\NCBITAXID=9606 \\DE=Hermansky-Pudlak syndrome 1 protein "
-                        + "\\SEQ=MKCVLVATEGAEVLFYWTDQEFEESLRLKFGQSENEEEELPA");
-        ProteinDescription description = new ProteinDescription(annotation, 0, true);
-        assertEquals("Q92902", description.getAccessionNumber());
-        assertEquals("Hermansky-Pudlak syndrome 1 protein", description.getDescription());
-        assertEquals("MKCVLVATEGAEVLFYWTDQEFEESLRLKFGQSENEEEELPA", description.getSequence());
-    }
-
-    @Test
-    public void testWithSwissProtNameAsAccessionNumber()
-    {
-        ProteinAnnotation annotation = createAnnotation("my protein");
-        ProteinDescription description = new ProteinDescription(annotation, 4711, false);
-
-        assertEquals("my protein", description.getDescription());
-        assertEquals("", description.getSequence());
-        assertEquals("sp|swissprot-42", description.getAccessionNumber());
-    }
-
-    @Test
-    public void testWithTremblNameAsAccessionNumber()
-    {
-        ProteinAnnotation annotation = createAnnotation("my protein");
-        annotation.setSwissprotName(null);
-        ProteinDescription description = new ProteinDescription(annotation, 4711, false);
-
-        assertEquals("my protein", description.getDescription());
-        assertEquals("", description.getSequence());
-        assertEquals("tr|trembl-42", description.getAccessionNumber());
-    }
-
-    @Test
-    public void testWithIpiNameAsAccessionNumber()
-    {
-        ProteinAnnotation annotation = createAnnotation("my protein");
-        annotation.setSwissprotName(null);
-        annotation.setTremblName(null);
-        ProteinDescription description = new ProteinDescription(annotation, 4711, false);
-
-        assertEquals("my protein", description.getDescription());
-        assertEquals("", description.getSequence());
-        assertEquals("ipi|ipi-42", description.getAccessionNumber());
-    }
-
-    @Test
-    public void testWithEnsemblNameAsAccessionNumber()
-    {
-        ProteinAnnotation annotation = createAnnotation("my protein");
-        annotation.setSwissprotName(null);
-        annotation.setTremblName(null);
-        annotation.setIpiName(null);
-        ProteinDescription description = new ProteinDescription(annotation, 4711, false);
-
-        assertEquals("my protein", description.getDescription());
-        assertEquals("", description.getSequence());
-        assertEquals("ens|ensembl-42", description.getAccessionNumber());
-    }
-
-    @Test
-    public void testWithRefSeqNameAsAccessionNumber()
-    {
-        ProteinAnnotation annotation = createAnnotation("my protein");
-        annotation.setSwissprotName(null);
-        annotation.setTremblName(null);
-        annotation.setIpiName(null);
-        annotation.setEnsemblName(null);
-        ProteinDescription description = new ProteinDescription(annotation, 4711, false);
-
-        assertEquals("my protein", description.getDescription());
-        assertEquals("", description.getSequence());
-        assertEquals("rs|refseq-42", description.getAccessionNumber());
-    }
-
-    @Test
-    public void testWithLocusLinkNameAsAccessionNumber()
-    {
-        ProteinAnnotation annotation = createAnnotation("my protein");
-        annotation.setSwissprotName(null);
-        annotation.setTremblName(null);
-        annotation.setIpiName(null);
-        annotation.setEnsemblName(null);
-        annotation.setRefseqName(null);
-        ProteinDescription description = new ProteinDescription(annotation, 4711, false);
-
-        assertEquals("my protein", description.getDescription());
-        assertEquals("", description.getSequence());
-        assertEquals("ll|locus-link-42", description.getAccessionNumber());
-    }
-
-    @Test
-    public void testWithFlybaseNameAsAccessionNumber()
-    {
-        ProteinAnnotation annotation = createAnnotation("my protein");
-        annotation.setSwissprotName(null);
-        annotation.setTremblName(null);
-        annotation.setIpiName(null);
-        annotation.setEnsemblName(null);
-        annotation.setRefseqName(null);
-        annotation.setLocusLinkName(null);
-        ProteinDescription description = new ProteinDescription(annotation, 4711, false);
-
-        assertEquals("my protein", description.getDescription());
-        assertEquals("", description.getSequence());
-        assertEquals("fb|flybase-42", description.getAccessionNumber());
-    }
-
-    @Test
-    public void testWithNoAccessionNumber()
-    {
-        ProteinAnnotation annotation = new ProteinAnnotation();
-        annotation.setDescription("");
-        ProteinDescription description = new ProteinDescription(annotation, 4711, false);
-
-        assertEquals("", description.getDescription());
-        assertEquals("", description.getSequence());
-        assertEquals("unknown|4711", description.getAccessionNumber());
-    }
-
-    private ProteinAnnotation createAnnotation(String description)
-    {
-        ProteinAnnotation proteinAnnotation = new ProteinAnnotation();
-        proteinAnnotation.setDescription(description);
-        proteinAnnotation.setEnsemblName("ensembl-42");
-        proteinAnnotation.setFlybase("flybase-42");
-        proteinAnnotation.setIpiName("ipi-42");
-        proteinAnnotation.setLocusLinkName("locus-link-42");
-        proteinAnnotation.setRefseqName("refseq-42");
-        proteinAnnotation.setSwissprotName("swissprot-42");
-        proteinAnnotation.setTremblName("trembl-42");
-        return proteinAnnotation;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTaskTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTaskTest.java
deleted file mode 100644
index 9392844d0dafe4ec8e4c7845d2369944e8ac3a7f..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTaskTest.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.log4j.Level;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.logging.BufferedAppender;
-import ch.systemsx.cisd.common.test.RecordingMatcher;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PhysicalDataSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.DataSetBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.ExperimentBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetBatchUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
-import ch.systemsx.cisd.openbis.util.LogRecordingUtils;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinResultDataSetParentLinkingTaskTest extends AssertJUnit
-{
-    private static final String PARENT_DATA_SET_CODES_KEY =
-            DataSetInfoExtractorForProteinResults.PARENT_DATA_SET_CODES.toUpperCase();
-
-    private static final String BASE_EXPERIMENT_KEY =
-            DataSetInfoExtractorForProteinResults.EXPERIMENT_IDENTIFIER_KEY.toUpperCase();
-
-    private BufferedAppender logRecorder;
-
-    private Mockery context;
-
-    private IEncapsulatedOpenBISService service;
-
-    private ProteinResultDataSetParentLinkingTask task;
-
-    @BeforeMethod
-    public void beforeMethod()
-    {
-        logRecorder = LogRecordingUtils.createRecorder("%-5p %c - %m%n", Level.DEBUG);
-        context = new Mockery();
-        service = context.mock(IEncapsulatedOpenBISService.class);
-        task = new ProteinResultDataSetParentLinkingTask(service);
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        logRecorder.reset();
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void test()
-    {
-        final Experiment e1 =
-                new ExperimentBuilder().id(1).identifier("/S/P1/E1").property("ABC", "non-sense")
-                        .getExperiment();
-        final Experiment e2 =
-                new ExperimentBuilder().id(2).identifier("/A/P2/E2")
-                        .property(PARENT_DATA_SET_CODES_KEY, "non-sense2").getExperiment();
-        final Experiment e3 =
-                new ExperimentBuilder().id(3).identifier("/A/P2/E3")
-                        .property(PARENT_DATA_SET_CODES_KEY, "ds1, ds3").getExperiment();
-        final Experiment e4 =
-                new ExperimentBuilder().id(4).identifier("/S/P1/E4")
-                        .property(BASE_EXPERIMENT_KEY, "/S/P1/E1").getExperiment();
-        final PhysicalDataSet ds1 =
-                new DataSetBuilder(1).code("ds1").fileFormat("A").experiment(e1)
-                        .version(11).getDataSet();
-        final PhysicalDataSet ds2 =
-                new DataSetBuilder(2).code("ds2").fileFormat("B").experiment(e4)
-                        .version(22).getDataSet();
-        final PhysicalDataSet ds3 =
-                new DataSetBuilder(3).code("ds3").fileFormat("C").experiment(e3)
-                        .version(33).property("ALPHA", "3.1").getDataSet();
-        final RecordingMatcher<AtomicEntityOperationDetails> operationRecorder =
-                new RecordingMatcher<AtomicEntityOperationDetails>();
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).listProjects();
-                    will(returnValue(Arrays.asList(e1.getProject(), e2.getProject())));
-
-                    one(service).listExperiments(new ProjectIdentifier("S", "P1"));
-                    will(returnValue(Arrays.asList(e1, e4)));
-
-                    one(service).listExperiments(new ProjectIdentifier("A", "P2"));
-                    will(returnValue(Arrays.asList(e2, e3)));
-
-                    one(service).tryGetExperiment(ExperimentIdentifierFactory.parse("/S/P1/E1"));
-                    will(returnValue(e1));
-
-                    one(service).tryGetDataSet("non-sense2");
-                    will(returnValue(null));
-
-                    one(service).tryGetDataSet("ds1");
-                    will(returnValue(ds1));
-
-                    one(service).tryGetDataSet("ds3");
-                    will(returnValue(ds3));
-
-                    one(service).listDataSetsByExperimentID(e1.getId());
-                    will(returnValue(Arrays.asList(ds1)));
-
-                    one(service).listDataSetsByExperimentID(e3.getId());
-                    will(returnValue(Arrays.asList(ds3)));
-
-                    one(service).listDataSetsByExperimentID(e4.getId());
-                    will(returnValue(Arrays.asList(ds2)));
-
-                    one(service).performEntityOperations(with(operationRecorder));
-                }
-            });
-
-        task.execute();
-
-        assertEquals("INFO  OPERATION.ProteinResultDataSetParentLinkingTask - "
-                + "Parent data set links of data set ds2 "
-                + "from experiment /S/P1/E4 will be updated.\n"
-                + "INFO  OPERATION.ProteinResultDataSetParentLinkingTask - "
-                + "Parent data set links of data set ds3 "
-                + "from experiment /A/P2/E3 will be updated.\n"
-                + "INFO  OPERATION.ProteinResultDataSetParentLinkingTask - "
-                + "Parent data set links for 2 data sets have been updated.",
-                logRecorder.getLogContent());
-        List<DataSetBatchUpdatesDTO> dataSetUpdates =
-                operationRecorder.recordedObject().getDataSetUpdates();
-        assertEquals(2L, dataSetUpdates.get(0).getDatasetId().getId().longValue());
-        assertEquals(22, dataSetUpdates.get(0).getVersion());
-        assertEquals("B", dataSetUpdates.get(0).getFileFormatTypeCode());
-        assertEquals("[]", dataSetUpdates.get(0).getProperties().toString());
-        assertEquals(e4.getIdentifier(), dataSetUpdates.get(0).getExperimentIdentifierOrNull()
-                .toString());
-        assertEquals("[ds1]",
-                Arrays.asList(dataSetUpdates.get(0).getModifiedParentDatasetCodesOrNull())
-                        .toString());
-        assertEquals(3L, dataSetUpdates.get(1).getDatasetId().getId().longValue());
-        assertEquals(33, dataSetUpdates.get(1).getVersion());
-        assertEquals("C", dataSetUpdates.get(1).getFileFormatTypeCode());
-        assertEquals("[ALPHA: 3.1]", dataSetUpdates.get(1).getProperties().toString());
-        assertEquals(e3.getIdentifier(), dataSetUpdates.get(1).getExperimentIdentifierOrNull()
-                .toString());
-        assertEquals("[ds1, ds3]",
-                Arrays.asList(dataSetUpdates.get(1).getModifiedParentDatasetCodesOrNull())
-                        .toString());
-        assertEquals(2, dataSetUpdates.size());
-        context.assertIsSatisfied();
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ResultDataSetUploaderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ResultDataSetUploaderTest.java
deleted file mode 100644
index fb70ac7b248f1321d6dd7608ad43fc59e8e857a3..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ResultDataSetUploaderTest.java
+++ /dev/null
@@ -1,705 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.hamcrest.core.IsNull;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.test.AssertionUtil;
-import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.AminoAcidMass;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.AnnotatedProtein;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.DataSet;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Database;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Experiment;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Parameter;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Peptide;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.PeptideModification;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProgramDetails;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Protein;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinAnnotation;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinGroup;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinProphetDetails;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinReference;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummary;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummaryDataFilter;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.ProteinSummaryHeader;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.dto.Sequence;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ListSamplesByPropertyCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ResultDataSetUploaderTest extends AssertJUnit
-{
-    private static final long MOD_PEPTIDE_ID = 101L;
-
-    private static final long PEPTIDE_ID = 99L;
-
-    private static final long CELL_LYSATE_ID1 = 88L;
-
-    private static final String CELL_LYSATE1 = "cell_lysate1";
-
-    private static final String CELL_LYSATE_PERM_ID1 = "c1";
-
-    private static final long SEQUENCE_ID = 77L;
-
-    private static final long PROTEIN_REFERENCE_ID = 66L;
-
-    private static final String UNIPROT_ID1 = "unipr1";
-
-    private static final String PROTEIN_NAME1 = "my protein";
-
-    private static final String SEQUENCE1 = "seq";
-
-    private static final String UNIPROT_ID2 = "unipr2";
-
-    private static final String PROTEIN_NAME2 = "my 2. protein";
-
-    private static final String SEQUENCE2 = "seqe";
-
-    private static final long PROTEIN1_ID = 55L;
-
-    private static final long DATA_SET_ID = 42L;
-
-    private static final String DATA_SET_CODE = "ds1";
-
-    private static final long DATABASE_ID = 33l;
-
-    private static final String NAME_AND_VERSION = "uniprot.HUMAN.v123.fasta";
-
-    private static final String REFERENCE_DATABASE = "/here/and/there/" + NAME_AND_VERSION;
-
-    private static final String EXPERIMENT_CODE = "E1";
-
-    private static final long EXPERIMENT_ID = 11l;
-
-    private static final String EXPERIMENT_PERM_ID = "e1234";
-
-    private static final String SAMPLE_PERM_ID = "s1234";
-
-    private static final String DB_INSTANCE = "DB";
-
-    private static final String SPACE_CODE = "S1";
-
-    private static final String PROJECT_CODE = "P1";
-
-    private Mockery context;
-
-    private Connection connection;
-
-    private IEncapsulatedOpenBISService service;
-
-    private IProtDAO dao;
-
-    private ResultDataSetUploader uploader;
-
-    @BeforeMethod
-    public void beforeMethod()
-    {
-        context = new Mockery();
-        connection = context.mock(Connection.class);
-        dao = context.mock(IProtDAO.class);
-        service = context.mock(IEncapsulatedOpenBISService.class);
-
-        uploader = new ResultDataSetUploader(dao, connection, service, true, "+", false);
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testNoProteinsGetExperimentSampleDatabaseAndDataSet()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).tryToGetExperimentByPermID(EXPERIMENT_PERM_ID);
-                    Experiment experiment = new Experiment();
-                    experiment.setPermID(EXPERIMENT_PERM_ID);
-                    experiment.setId(EXPERIMENT_ID);
-                    will(returnValue(experiment));
-
-                    one(dao).tryToGetDatabaseByName(NAME_AND_VERSION);
-                    Database database = new Database();
-                    database.setNameAndVersion(NAME_AND_VERSION);
-                    database.setId(DATABASE_ID);
-                    will(returnValue(database));
-
-                    one(dao).tryToGetDataSetByPermID(DATA_SET_CODE);
-                    DataSet dataSet = new DataSet();
-                    dataSet.setId(DATA_SET_ID);
-                    dataSet.setDatabaseID(DATABASE_ID);
-                    will(returnValue(dataSet));
-                }
-            });
-
-        uploader.upload(createDataSetInfo(), createProteinSummary());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testNoProteinsCreateExperimentSampleDatabaseAndDataSet()
-    {
-        prepareForCreatingExperimentSampleDatabaseAndDataSet();
-
-        uploader.upload(createDataSetInfo(), createProteinSummary());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testEmptyProteinGroup()
-    {
-        prepareForCreatingExperimentSampleDatabaseAndDataSet();
-
-        ProteinSummary summary = createProteinSummary();
-        summary.getProteinGroups().add(createProteinGroup());
-        uploader.upload(createDataSetInfo(), summary);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProteinWithIndistiguishableProtein()
-    {
-        prepareForCreatingExperimentSampleDatabaseAndDataSet();
-        double probability = 1.0;
-        prepareForCreatingProtein(probability);
-        ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1);
-        prepareForCreatingIdentifiedProtein(a1, false, true);
-        ProteinAnnotation a2 = createAnnotation(UNIPROT_ID2, PROTEIN_NAME2, SEQUENCE2);
-        prepareForCreatingIdentifiedProtein(a2, true, false);
-
-        ProteinSummary summary = createProteinSummary();
-        Protein p1 = createProtein(probability, a1, a2);
-        p1.setPeptides(Collections.<Peptide> emptyList());
-        summary.getProteinGroups().add(createProteinGroup(p1));
-
-        uploader.upload(createDataSetInfo(), summary);
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProteinGroupWithTwoProteins()
-    {
-        prepareForCreatingExperimentSampleDatabaseAndDataSet();
-        double probability = 1.0;
-        ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1);
-        prepareForCreatingProtein(probability);
-        prepareForCreatingIdentifiedProtein(a1, false, true);
-        Protein p1 = createProtein(probability, a1);
-        p1.setPeptides(Collections.<Peptide> emptyList());
-        ProteinAnnotation a2 = createAnnotation(UNIPROT_ID2, PROTEIN_NAME2, SEQUENCE2);
-        probability = 0.99;
-        prepareForCreatingProtein(probability);
-        prepareForCreatingIdentifiedProtein(a2, false, true);
-        Protein p2 = createProtein(probability, a2);
-        p2.setPeptides(Collections.<Peptide> emptyList());
-
-        ProteinSummary summary = createProteinSummary();
-        summary.getProteinGroups().add(createProteinGroup(p1, p2));
-
-        uploader.upload(createDataSetInfo(), summary);
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testAbundancesForSameSampleInTwoDifferentProteins()
-    {
-        prepareForCreatingExperimentSampleDatabaseAndDataSet();
-        double probability = 0.75;
-        ProteinSummary summary = createProteinSummary();
-        prepareForCreatingProtein(probability);
-        ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1);
-        prepareForCreatingIdentifiedProtein(a1, false, true);
-        Protein p1 = createProtein(probability, a1);
-        p1.setName(PROTEIN_NAME1);
-        p1.getParameters().add(createAbundance(CELL_LYSATE1, 2.5));
-        p1.getParameters().add(new Parameter());
-        prepareCreateSample();
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).registerSample(with(any(NewSample.class)), with(new IsNull<String>()));
-
-                    one(dao).createAbundance(PROTEIN1_ID, CELL_LYSATE_ID1, 2.5);
-                }
-            });
-        p1.setPeptides(Collections.<Peptide> emptyList());
-
-        prepareForCreatingProtein(probability);
-        summary.getProteinGroups().add(createProteinGroup(p1));
-        ProteinAnnotation a2 = createAnnotation(UNIPROT_ID2, PROTEIN_NAME2, SEQUENCE2);
-        prepareForCreatingIdentifiedProtein(a2, false, true);
-        Protein p2 = createProtein(probability, a2);
-        p2.setName(PROTEIN_NAME1);
-        p2.getParameters().add(createAbundance(CELL_LYSATE1, 42.5));
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).createAbundance(PROTEIN1_ID, CELL_LYSATE_ID1, 42.5);
-                }
-            });
-        p2.setPeptides(Collections.<Peptide> emptyList());
-        summary.getProteinGroups().add(createProteinGroup(p2));
-        prepareForCommit();
-
-        uploader.upload(createDataSetInfo(), summary);
-        uploader.commit();
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testAbundancesForNonExistingSample()
-    {
-        prepareForCreatingExperimentSampleDatabaseAndDataSet();
-        double probability = 0.75;
-        prepareForCreatingProtein(probability);
-        ProteinSummary summary = createProteinSummary();
-        Protein p1 = createProtein(probability);
-        p1.setName(PROTEIN_NAME1);
-        p1.getParameters().add(createAbundance(CELL_LYSATE1, 2.5));
-        p1.getParameters().add(new Parameter());
-        final SpaceIdentifier groupIdentifier = new SpaceIdentifier(CommonConstants.MS_DATA_SPACE);
-        final SampleIdentifier sampleIdentifier =
-                new SampleIdentifier(groupIdentifier, CELL_LYSATE1);
-        final ListSamplesByPropertyCriteria criteria =
-                new ListSamplesByPropertyCriteria(AbstractSampleHandler.MZXML_FILENAME, CELL_LYSATE1,
-                        SPACE_CODE, null);
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetSampleWithExperiment(sampleIdentifier);
-                    will(returnValue(null));
-
-                    one(service).listSamplesByCriteria(
-                            with(new BaseMatcher<ListSamplesByPropertyCriteria>()
-                                {
-                                    @Override
-                                    public boolean matches(Object item)
-                                    {
-                                        return criteria.toString().equals(item.toString());
-                                    }
-
-                                    @Override
-                                    public void describeTo(Description description)
-                                    {
-                                        description.appendValue(criteria);
-                                    }
-                                }));
-                }
-            });
-        p1.setPeptides(Collections.<Peptide> emptyList());
-        summary.getProteinGroups().add(createProteinGroup(p1));
-        prepareForRollback();
-
-        try
-        {
-            uploader.upload(createDataSetInfo(), summary);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            AssertionUtil.assertContains("Protein '" + PROTEIN_NAME1
-                    + "' has an abundance value for an unidentified sample: " + CELL_LYSATE1, ex
-                    .getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProteinWithUnmodifiedPeptide()
-    {
-        prepareForCreatingExperimentSampleDatabaseAndDataSet();
-        double probability = 1.0;
-        prepareForCreatingProtein(probability);
-        ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1);
-        prepareForCreatingIdentifiedProtein(a1, false, true);
-
-        ProteinSummary summary = createProteinSummary();
-        Protein p1 = createProtein(probability, a1);
-        final Peptide peptide = new Peptide();
-        peptide.setSequence("abcd");
-        peptide.setCharge(3);
-        p1.setPeptides(Arrays.asList(peptide));
-        summary.getProteinGroups().add(createProteinGroup(p1));
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).createPeptide(PROTEIN1_ID, peptide.getSequence(), peptide.getCharge());
-                    will(returnValue(PEPTIDE_ID));
-                }
-            });
-
-        uploader.upload(createDataSetInfo(), summary);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProteinWithModifiedPeptide()
-    {
-        prepareForCreatingExperimentSampleDatabaseAndDataSet();
-        double probability = 1.0;
-        prepareForCreatingProtein(probability);
-        ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1);
-        prepareForCreatingIdentifiedProtein(a1, false, true);
-
-        ProteinSummary summary = createProteinSummary();
-        Protein p1 = createProtein(probability, a1);
-        final Peptide peptide = new Peptide();
-        peptide.setSequence("abcd");
-        peptide.setCharge(3);
-        final PeptideModification modification = new PeptideModification();
-        modification.setNTermMass(42);
-        modification.setCTermMass(4711);
-        final AminoAcidMass mass = new AminoAcidMass();
-        mass.setMass(123);
-        mass.setPosition(1);
-        modification.setAminoAcidMasses(Arrays.asList(mass));
-        peptide.getModifications().add(modification);
-        p1.setPeptides(Arrays.asList(peptide));
-        summary.getProteinGroups().add(createProteinGroup(p1));
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).createPeptide(PROTEIN1_ID, peptide.getSequence(), peptide.getCharge());
-                    will(returnValue(PEPTIDE_ID));
-
-                    one(dao).createModifiedPeptide(PEPTIDE_ID, modification.getNTermMass(),
-                            modification.getCTermMass());
-                    will(returnValue(MOD_PEPTIDE_ID));
-
-                    one(dao).createModification(MOD_PEPTIDE_ID, mass.getPosition(), mass.getMass());
-                }
-            });
-
-        uploader.upload(createDataSetInfo(), summary);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProteinWithPeptideWithModificationParameter()
-    {
-        prepareForCreatingExperimentSampleDatabaseAndDataSet();
-        double probability = 1.0;
-        prepareForCreatingProtein(probability);
-        ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1);
-        prepareForCreatingIdentifiedProtein(a1, false, true);
-
-        ProteinSummary summary = createProteinSummary();
-        Protein p1 = createProtein(probability, a1);
-        final Peptide peptide = new Peptide();
-        Parameter parameter = new Parameter();
-        parameter.setName(CELL_LYSATE1);
-        parameter.setValue("2:9.5:0.125");
-        parameter.setType(ResultDataSetUploader.PARAMETER_TYPE_MODIFICATION);
-        peptide.setParameters(Arrays.asList(parameter));
-        peptide.setSequence("abcd");
-        peptide.setCharge(3);
-        p1.setPeptides(Arrays.asList(peptide));
-        summary.getProteinGroups().add(createProteinGroup(p1));
-        prepareCreateSample();
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).createPeptide(PROTEIN1_ID, peptide.getSequence(), peptide.getCharge());
-                    will(returnValue(PEPTIDE_ID));
-
-                    one(dao).createModifiedPeptide(PEPTIDE_ID, 0, 0);
-                    will(returnValue(MOD_PEPTIDE_ID));
-
-                    one(dao).createModification(MOD_PEPTIDE_ID, 2, 9.5);
-                    will(returnValue(157L));
-
-                    one(dao).createModificationFraction(157L, CELL_LYSATE_ID1, 0.125);
-                }
-            });
-
-        uploader.upload(createDataSetInfo(), summary);
-
-        context.assertIsSatisfied();
-    }
-
-    private Parameter createAbundance(String sampleCode, double value)
-    {
-        Parameter parameter = new Parameter();
-        parameter.setName(sampleCode);
-        parameter.setValue(Double.toString(value));
-        parameter.setType(ResultDataSetUploader.PARAMETER_TYPE_ABUNDANCE);
-        return parameter;
-    }
-
-    private Protein createProtein(double probability, ProteinAnnotation... annotations)
-    {
-        Protein protein = new Protein();
-        protein.setProbability(probability);
-        if (annotations.length > 0)
-        {
-            protein.setAnnotation(annotations[0]);
-        }
-        List<AnnotatedProtein> indistinguishableProteins = new ArrayList<AnnotatedProtein>();
-        for (int i = 1; i < annotations.length; i++)
-        {
-            AnnotatedProtein annotatedProtein = new AnnotatedProtein();
-            annotatedProtein.setAnnotation(annotations[i]);
-            indistinguishableProteins.add(annotatedProtein);
-        }
-        protein.setIndistinguishableProteins(indistinguishableProteins);
-        return protein;
-    }
-
-    private ProteinAnnotation createAnnotation(String uniprotID, String description, String sequence)
-    {
-        ProteinAnnotation proteinAnnotation = new ProteinAnnotation();
-        proteinAnnotation.setDescription(uniprotID
-                + " "
-                + ProteinDescription.createKeyValuePair(ProteinDescription.DESCRIPTION_KEY,
-                        description) + " "
-                + ProteinDescription.createKeyValuePair(ProteinDescription.SEQUENCE_KEY, sequence));
-        return proteinAnnotation;
-    }
-
-    private ProteinGroup createProteinGroup(Protein... proteins)
-    {
-        ProteinGroup proteinGroup = new ProteinGroup();
-        proteinGroup.setProteins(Arrays.asList(proteins));
-        return proteinGroup;
-    }
-
-    private void prepareForCreatingProtein(final double probability)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).createProtein(DATA_SET_ID, probability);
-                    will(returnValue(PROTEIN1_ID));
-                }
-            });
-    }
-
-    private void prepareCreateSample()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).tryGetSampleWithExperiment(
-                            new SampleIdentifier(new SpaceIdentifier(
-                                    CommonConstants.MS_DATA_SPACE), CELL_LYSATE1));
-                    ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sample =
-                            new ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample();
-                    sample.setPermId(CELL_LYSATE_PERM_ID1);
-                    will(returnValue(sample));
-                    one(dao).tryToGetSampleByPermID(CELL_LYSATE_PERM_ID1);
-                    will(returnValue(null));
-                    one(dao).createSample(EXPERIMENT_ID, CELL_LYSATE_PERM_ID1);
-                    will(returnValue(CELL_LYSATE_ID1));
-                }
-            });
-    }
-
-    private void prepareForCreatingIdentifiedProtein(ProteinAnnotation annotation,
-            final boolean referenceExist, final boolean primary)
-    {
-        ProteinDescription proteinDescription = new ProteinDescription(annotation, 0, true);
-        final String uniprotID = proteinDescription.getAccessionNumber();
-        final String description = proteinDescription.getDescription();
-        final String sequence = proteinDescription.getSequence();
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).tryToGetProteinReference(uniprotID);
-                    if (referenceExist == false)
-                    {
-                        will(returnValue(null));
-
-                        one(dao).createProteinReference(uniprotID, description);
-                        will(returnValue(PROTEIN_REFERENCE_ID));
-                    } else
-                    {
-                        ProteinReference proteinReference = new ProteinReference();
-                        proteinReference.setId(PROTEIN_REFERENCE_ID);
-                        will(returnValue(proteinReference));
-
-                        one(dao).updateProteinReferenceDescription(PROTEIN_REFERENCE_ID,
-                                description);
-                    }
-
-                    one(dao).tryToGetSequencesByReferenceAndDatabase(PROTEIN_REFERENCE_ID,
-                            DATABASE_ID);
-                    Sequence seq = new Sequence(sequence);
-                    seq.setId(SEQUENCE_ID);
-                    if (referenceExist == false)
-                    {
-                        will(returnValue(null));
-
-                        seq.setDatabaseID(DATABASE_ID);
-                        seq.setProteinReferenceID(PROTEIN_REFERENCE_ID);
-                        one(dao).createSequence(seq);
-                        will(returnValue(SEQUENCE_ID));
-                    } else
-                    {
-                        will(returnValue(Arrays.asList(seq)));
-                    }
-
-                    one(dao).createIdentifiedProtein(PROTEIN1_ID, SEQUENCE_ID, 0, primary);
-                }
-            });
-    }
-
-    private void prepareForCreatingExperimentSampleDatabaseAndDataSet()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).tryToGetExperimentByPermID(EXPERIMENT_PERM_ID);
-                    will(returnValue(null));
-                    one(dao).createExperiment(EXPERIMENT_PERM_ID);
-                    will(returnValue(EXPERIMENT_ID));
-
-                    one(dao).tryToGetDatabaseByName(NAME_AND_VERSION);
-                    will(returnValue(null));
-                    one(dao).createDatabase(NAME_AND_VERSION);
-                    will(returnValue(DATABASE_ID));
-
-                    one(dao).tryToGetDataSetByPermID(DATA_SET_CODE);
-                    will(returnValue(null));
-                    one(dao).createDataSet(EXPERIMENT_ID, DATA_SET_CODE, DATABASE_ID);
-                    will(returnValue(DATA_SET_ID));
-                }
-            });
-    }
-
-    private void prepareForCommit()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    try
-                    {
-                        one(connection).commit();
-                        one(connection).close();
-                    } catch (SQLException ex)
-                    {
-                        throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-                    }
-                }
-            });
-    }
-
-    private void prepareForRollback()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    try
-                    {
-                        one(connection).isClosed();
-                        will(returnValue(false));
-                        one(connection).rollback();
-                        one(connection).close();
-                    } catch (SQLException ex)
-                    {
-                        throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-                    }
-                }
-            });
-    }
-
-    private DataSetInformation createDataSetInfo()
-    {
-        DataSetInformation info = new DataSetInformation();
-        info.setExperimentIdentifier(new ExperimentIdentifier(SPACE_CODE, PROJECT_CODE, EXPERIMENT_CODE));
-        info.setDataSetCode(DATA_SET_CODE);
-        ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sample =
-                new ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample();
-        sample.setPermId(SAMPLE_PERM_ID);
-        ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment experiment =
-                new ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment();
-        experiment.setPermId(EXPERIMENT_PERM_ID);
-        sample.setExperiment(experiment);
-        Space space = new Space();
-        space.setCode(SPACE_CODE);
-        sample.setSpace(space);
-        info.setSample(sample);
-        return info;
-    }
-
-    private ProteinSummary createProteinSummary()
-    {
-        ProteinSummary proteinSummary = new ProteinSummary();
-        ProteinSummaryHeader proteinSummaryHeader = new ProteinSummaryHeader();
-        proteinSummaryHeader.setReferenceDatabase(REFERENCE_DATABASE);
-        ProgramDetails programDetails = new ProgramDetails();
-        ProteinProphetDetails proteinProphetDetails = new ProteinProphetDetails();
-        ProteinSummaryDataFilter m1 = createFilter(0.5, 0.125);
-        ProteinSummaryDataFilter m2 = createFilter(1.0, 0.0);
-        proteinProphetDetails.setDataFilters(Arrays.asList(m1, m2));
-        programDetails.setSummary(new Object[]
-        { proteinProphetDetails });
-        proteinSummaryHeader.setProgramDetails(programDetails);
-        proteinSummary.setSummaryHeader(proteinSummaryHeader);
-        proteinSummary.setProteinGroups(new ArrayList<ProteinGroup>());
-        return proteinSummary;
-    }
-
-    private ProteinSummaryDataFilter createFilter(final double probability, final double fdr)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(dao).createProbabilityToFDRMapping(DATA_SET_ID, probability, fdr);
-                }
-            });
-        ProteinSummaryDataFilter mapping = new ProteinSummaryDataFilter();
-        mapping.setMinProbability(probability);
-        mapping.setFalsePositiveErrorRate(fdr);
-        return mapping;
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/TypeExtractorForMSInjectionTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/TypeExtractorForMSInjectionTest.java
deleted file mode 100644
index d1ec3a35ec2513e4026e9ffa1259f5ce8abc4942..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/TypeExtractorForMSInjectionTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import static ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForMSInjection.DATA_SET_PROPERTIES_FILE;
-
-import java.io.File;
-import java.util.Properties;
-
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.TypeExtractorForMSInjection;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LocatorType;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class TypeExtractorForMSInjectionTest extends AbstractFileSystemTestCase
-{
-    @Test
-    public void testMissingDataSetPropertiesFile()
-    {
-        TypeExtractorForMSInjection extractor = new TypeExtractorForMSInjection(new Properties());
-        try
-        {
-            extractor.getDataSetType(workingDirectory);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Missing properties file '" + DATA_SET_PROPERTIES_FILE + "'.", ex.getMessage());
-        }
-    }
-
-    @Test
-    public void testGetDataSetType()
-    {
-        FileUtilities.writeToFile(new File(workingDirectory, DATA_SET_PROPERTIES_FILE), "DATA_SET_TYPE = RAW");
-        TypeExtractorForMSInjection extractor = new TypeExtractorForMSInjection(new Properties());
-        DataSetType dataSetType = extractor.getDataSetType(workingDirectory);
-        assertEquals("RAW", dataSetType.getCode());
-    }
-
-    @Test
-    public void testGetProcessorType()
-    {
-        FileUtilities.writeToFile(new File(workingDirectory, DATA_SET_PROPERTIES_FILE), "DATA_SET_TYPE = RAW");
-        TypeExtractorForMSInjection extractor = new TypeExtractorForMSInjection(new Properties());
-        assertEquals(null, extractor.getProcessorType(workingDirectory));
-    }
-
-    @Test
-    public void testGetFileFormatType()
-    {
-        FileUtilities.writeToFile(new File(workingDirectory, DATA_SET_PROPERTIES_FILE), "FILE_TYPE = XML");
-        TypeExtractorForMSInjection extractor = new TypeExtractorForMSInjection(new Properties());
-        assertEquals("XML", extractor.getFileFormatType(workingDirectory).getCode());
-    }
-
-    @Test
-    public void testGetLocatorType()
-    {
-        FileUtilities.writeToFile(new File(workingDirectory, DATA_SET_PROPERTIES_FILE), "FILE_TYPE = XML");
-        TypeExtractorForMSInjection extractor = new TypeExtractorForMSInjection(new Properties());
-        assertEquals(LocatorType.DEFAULT_LOCATOR_TYPE_CODE, extractor.getLocatorType(workingDirectory).getCode());
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/UtilTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/UtilTest.java
deleted file mode 100644
index 7742a5a902d54a6586236e49fca5d4cc3b825908..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/UtilTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.etlserver.proteomics;
-
-import java.util.Arrays;
-import java.util.Properties;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.Util;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleTypePropertyType;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class UtilTest extends AssertJUnit
-{
-    @Test
-    public void testGetAndCheckProperties()
-    {
-        SampleType entityType = new SampleType();
-        SampleTypePropertyType etpt1 = createETPT("answer", false);
-        SampleTypePropertyType etpt2 = createETPT("greetings", true);
-        entityType.setSampleTypePropertyTypes(Arrays.asList(etpt1, etpt2));
-        Properties properties = new Properties();
-        properties.setProperty("greetings", "hello");
-        properties.setProperty("blabla", "blub");
-
-        IEntityProperty[] entityProperties = Util.getAndCheckProperties(properties, entityType);
-
-        assertEquals(1, entityProperties.length);
-        assertEquals("greetings", entityProperties[0].getPropertyType().getCode());
-        assertEquals("hello", entityProperties[0].tryGetAsString());
-    }
-
-    @Test
-    public void testGetAndCheckPropertiesForMissingMandatoryProperty()
-    {
-        SampleType entityType = new SampleType();
-        SampleTypePropertyType etpt1 = createETPT("answer", true);
-        SampleTypePropertyType etpt2 = createETPT("greetings", true);
-        entityType.setSampleTypePropertyTypes(Arrays.asList(etpt1, etpt2));
-        Properties properties = new Properties();
-        properties.setProperty("greetings", "hello");
-
-        try
-        {
-            Util.getAndCheckProperties(properties, entityType);
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("The following mandatory properties are missed: [answer]", ex.getMessage());
-        }
-    }
-
-    private SampleTypePropertyType createETPT(String code, boolean mandatory)
-    {
-        PropertyType propertyType = new PropertyType();
-        propertyType.setCode(code);
-        SampleTypePropertyType etpt = new SampleTypePropertyType();
-        etpt.setPropertyType(propertyType);
-        etpt.setMandatory(mandatory);
-        return etpt;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/DependencyCheckingTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/DependencyCheckingTest.java
deleted file mode 100644
index c5d317bd38f6e56ecf3712b19bd18245f49a30d8..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/DependencyCheckingTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics;
-
-import ch.systemsx.cisd.common.test.AbstractDependencyCheckingTestCase;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class DependencyCheckingTest extends AbstractDependencyCheckingTestCase
-{
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/ProteomicsDataApiFacadeTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/ProteomicsDataApiFacadeTest.java
deleted file mode 100644
index 82048aff03aad181415f1eeb91927b66f72ff958..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/api/v1/ProteomicsDataApiFacadeTest.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.api.v1;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService;
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Project;
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Role;
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SpaceWithProjectsAndRoleAssignments;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataStoreServerProcessingPluginInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.MsInjectionDataInfo;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteomicsDataApiFacadeTest extends AssertJUnit
-{
-    private static final String SESSION_TOKEN = "Session-42";
-
-    private Mockery context;
-
-    private IProteomicsDataService proteomicsDataService;
-
-    private IGeneralInformationService generalInfoService;
-
-    private IProteomicsDataApiFacade facade;
-
-    @BeforeMethod
-    public void beforeMethod()
-    {
-        context = new Mockery();
-        proteomicsDataService = context.mock(IProteomicsDataService.class);
-        generalInfoService = context.mock(IGeneralInformationService.class);
-        facade = new ProteomicsDataApiFacade(proteomicsDataService, generalInfoService, SESSION_TOKEN);
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testGetSessionToken()
-    {
-        assertEquals(SESSION_TOKEN, facade.getSessionToken());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testLogout()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(generalInfoService).logout(SESSION_TOKEN);
-                }
-            });
-
-        facade.logout();
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListDataStoreServerProcessingPluginInfos()
-    {
-        final List<DataStoreServerProcessingPluginInfo> result =
-                new LinkedList<DataStoreServerProcessingPluginInfo>();
-        context.checking(new Expectations()
-            {
-                {
-                    one(proteomicsDataService).listDataStoreServerProcessingPluginInfos(SESSION_TOKEN);
-                    will(returnValue(result));
-                }
-            });
-
-        assertSame(result, facade.listDataStoreServerProcessingPluginInfos());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListRawDataSamples()
-    {
-        final List<MsInjectionDataInfo> result = new LinkedList<MsInjectionDataInfo>();
-        context.checking(new Expectations()
-            {
-                {
-                    one(proteomicsDataService).listRawDataSamples(SESSION_TOKEN, "user1");
-                    will(returnValue(result));
-                }
-            });
-
-        assertSame(result, facade.listRawDataSamples("user1"));
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListAllRawDataSamples()
-    {
-        final List<MsInjectionDataInfo> result = new LinkedList<MsInjectionDataInfo>();
-        context.checking(new Expectations()
-            {
-                {
-                    one(proteomicsDataService).listAllRawDataSamples(SESSION_TOKEN, "user1");
-                    will(returnValue(result));
-                }
-            });
-
-        assertSame(result, facade.listAllRawDataSamples("user1"));
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProcessDataSets()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(proteomicsDataService).processDataSets(SESSION_TOKEN, "user1", "key",
-                            Arrays.asList("ds1", "ds2"));
-                }
-            });
-
-        facade.processDataSets("user1", "key", Arrays.asList("ds1", "ds2"));
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListProjectsButNoUserRoles()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(generalInfoService).listNamedRoleSets(SESSION_TOKEN);
-                    will(returnValue(new HashMap<String, Set<Role>>()));
-                }
-            });
-
-        try
-        {
-            facade.listProjects("user1");
-            fail("IllegalStateException expected");
-        } catch (IllegalStateException ex)
-        {
-            assertEquals("Role set SPACE_USER not known.", ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListProjects()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(generalInfoService).listNamedRoleSets(SESSION_TOKEN);
-                    HashMap<String, Set<Role>> sets = new HashMap<String, Set<Role>>();
-                    HashSet<Role> set = new HashSet<Role>();
-                    set.add(new Role("R1", true));
-                    set.add(new Role("R2", false));
-                    sets.put("SPACE_USER", set);
-                    will(returnValue(sets));
-
-                    one(generalInfoService).listSpacesWithProjectsAndRoleAssignments(SESSION_TOKEN, null);
-                    SpaceWithProjectsAndRoleAssignments a = createSpace("A", "alpha", "beta");
-                    a.add("user1", new Role("R1", true));
-                    a.add("user1", new Role("R3", false));
-                    SpaceWithProjectsAndRoleAssignments b = createSpace("B", "gamma");
-                    b.add("user1", new Role("R2", true));
-                    will(returnValue(Arrays.asList(a, b)));
-                }
-            });
-
-        List<Project> projects = facade.listProjects("user1");
-
-        assertEquals("[/A/alpha, /A/beta]", projects.toString());
-        context.assertIsSatisfied();
-    }
-
-    private SpaceWithProjectsAndRoleAssignments createSpace(String spaceCode, String... projects)
-    {
-        SpaceWithProjectsAndRoleAssignments space = new SpaceWithProjectsAndRoleAssignments(spaceCode);
-        long id = 1;
-        for (String project : projects)
-        {
-            space.add(new Project(id, Long.toString(id), spaceCode, project, null));
-            ++id;
-        }
-        return space;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinRenderersTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinRenderersTest.java
deleted file mode 100644
index 9676c640cba10f9c03259d39af9eacae462b6f40..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinRenderersTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application;
-
-import java.util.Arrays;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.application.ProteinRenderers;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Peptide;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.PeptideModification;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinRenderersTest extends AssertJUnit
-{
-    @Test
-    public void testRenderAminoAcidSymbol()
-    {
-        assertEquals("<font style='text-decoration:underline; cursor:pointer' "
-                + "color='blue' title='mass=4.5'>A</font>",
-                ProteinRenderers.renderAminoAcidSymbol('A', null, 4.5));
-        assertEquals("<font style='text-decoration:underline; cursor:pointer' "
-                + "color='blue' title='position=42, mass=4.5'>A</font>",
-                ProteinRenderers.renderAminoAcidSymbol('A', 42, 4.5));
-    }
-
-    @Test
-    public void testMarkOccurrencesWithHtml()
-    {
-        Peptide p1 = peptide("defgh:2=4.25");
-        Peptide p2 = peptide("ijk:1=-2.75");
-        Peptide p3 = peptide("jko");
-        Peptide p4 = peptide("jjab");
-        String e = ProteinRenderers.renderAminoAcidSymbol('e', 5, 4.25);
-        String i1 = ProteinRenderers.renderAminoAcidSymbol('i', 9, -2.75);
-        String i2 = ProteinRenderers.renderAminoAcidSymbol('i', 15, -2.75);
-        assertEquals(
-                "abc<font color='red'>d" + e + " fgh" + i1 + "j k</font>lmn<font color='red'>"
-                        + i2 + " jko</font>pq rstu",
-                ProteinRenderers.markOccurrencesWithHtml("abcdefghijklmnijkopqrstu",
-                        Arrays.asList(p1, p2, p3, p4), 5));
-    }
-
-    private Peptide peptide(String description)
-    {
-        Peptide peptide = new Peptide();
-        int indexOfColon = description.indexOf(':');
-        if (indexOfColon < 0)
-        {
-            peptide.setSequence(description);
-            return peptide;
-        }
-        peptide.setSequence(description.substring(0, indexOfColon));
-        String[] modificationDescriptions = description.substring(indexOfColon + 1).split(",");
-        for (String modificationDescription : modificationDescriptions)
-        {
-            String[] posAndMass = modificationDescription.split("=");
-            PeptideModification peptideModification = new PeptideModification();
-            peptideModification.setPosition(Integer.parseInt(posAndMass[0]));
-            peptideModification.setMass(Double.parseDouble(posAndMass[1]));
-            peptide.getModifications().add(peptideModification);
-        }
-        return peptide;
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/.gitignore b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/.gitignore
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientServiceTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientServiceTest.java
deleted file mode 100644
index 6eee125b577dfe12c22d17e4244a4d6b51f07eb1..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientServiceTest.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Properties;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.rinn.restrictions.Friend;
-import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.common.servlet.IRequestContextProvider;
-import ch.systemsx.cisd.common.utilities.MockTimeProvider;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GridRowModels;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSetFetchConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
-import ch.systemsx.cisd.openbis.generic.client.web.server.AbstractClientService;
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.DefaultResultSet;
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IOriginalDataProvider;
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IResultSet;
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IResultSetManager;
-import ch.systemsx.cisd.openbis.generic.shared.WebClientConfigurationProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel;
-import ch.systemsx.cisd.openbis.generic.shared.basic.SessionConstants;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
-import ch.systemsx.cisd.openbis.generic.shared.util.CacheManager;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.Constants;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinByExperimentCriteria;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.PhosphoNetXClientService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Treatment;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Friend(toClasses = { AbstractClientService.class, PhosphoNetXClientService.class, CacheManager.class })
-public class PhosphoNetXClientServiceTest extends AbstractFileSystemTestCase
-{
-    private static final String SESSION_TOKEN = "session-token";
-
-    private static final class SimpleResultSetManager<K> implements IResultSetManager<K>
-    {
-
-        @Override
-        public <T> IResultSet<K, T> getResultSet(String sessionToken,
-                IResultSetConfig<K, T> resultConfig, IOriginalDataProvider<T> dataProvider)
-                throws UserFailureException
-        {
-            List<TableModelColumnHeader> headers = dataProvider.getHeaders();
-            List<T> originalData = dataProvider.getOriginalData(Integer.MAX_VALUE);
-            List<GridRowModel<T>> rows = new ArrayList<GridRowModel<T>>();
-            for (int i = 0; i < originalData.size(); i++)
-            {
-                T rowData = originalData.get(i);
-                rows.add(new GridRowModel<T>(rowData, null));
-            }
-            return new DefaultResultSet<K, T>(resultConfig.getCacheConfig().tryGetResultSetKey(),
-                    new GridRowModels<T>(rows, headers, null, null), rows.size(), false);
-        }
-
-        @Override
-        public void removeResultSet(K resultSetKey) throws UserFailureException
-        {
-        }
-
-        @Override
-        public void lockResultSet(K resultSetKey)
-        {
-        }
-
-    }
-
-    private Mockery context;
-
-    private IPhosphoNetXServer server;
-
-    private PhosphoNetXClientService clientService;
-
-    private IRequestContextProvider requestContextProvider;
-
-    private HttpServletRequest request;
-
-    private HttpSession httpSession;
-
-    private File cacheFolder;
-
-    @BeforeMethod
-    public final void beforeMethod() throws Exception
-    {
-        context = new Mockery();
-        server = context.mock(IPhosphoNetXServer.class);
-        requestContextProvider = context.mock(IRequestContextProvider.class);
-        request = context.mock(HttpServletRequest.class);
-        httpSession = context.mock(HttpSession.class);
-        clientService = new PhosphoNetXClientService();
-        clientService.server = server;
-        clientService.requestContextProvider = requestContextProvider;
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(requestContextProvider).getHttpServletRequest();
-                    will(returnValue(request));
-
-                    allowing(request).getSession(false);
-                    will(returnValue(httpSession));
-
-                    allowing(httpSession).getAttribute("openbis-session-token");
-                    will(returnValue(SESSION_TOKEN));
-
-                    allowing(httpSession).getAttribute(SessionConstants.OPENBIS_RESULT_SET_MANAGER);
-                    will(returnValue(new SimpleResultSetManager<String>()));
-                }
-            });
-        Properties properties = new Properties();
-        cacheFolder = new File(workingDirectory, "cache");
-        if (cacheFolder.exists())
-        {
-            assertTrue(FileUtilities.deleteRecursively(cacheFolder));
-        }
-        properties.setProperty("technologies", Constants.TECHNOLOGY_NAME);
-        properties.setProperty(Constants.TECHNOLOGY_NAME + "." + CacheManager.CACHE_FOLDER_KEY,
-                cacheFolder.getPath());
-        clientService.webClientConfigurationProvider =
-                new WebClientConfigurationProvider(properties);
-        clientService.timeProvider = new MockTimeProvider();
-        clientService.afterPropertiesSet();
-    }
-
-    @AfterMethod
-    public final void afterMethod()
-    {
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testGetAbundanceColumnDefinitionsForProteinByExperiment()
-    {
-        final TechId experimentID = new TechId(41L);
-        final AbundanceColumnDefinition colDef = new AbundanceColumnDefinition();
-        colDef.setSampleCode("S1");
-        Treatment treatment = new Treatment();
-        treatment.setType("type1");
-        treatment.setTypeCode("code");
-        colDef.setTreatments(Arrays.asList(treatment));
-        context.checking(new Expectations()
-            {
-                {
-                    one(server).getAbundanceColumnDefinitionsForProteinByExperiment(SESSION_TOKEN,
-                            experimentID, null);
-                    will(returnValue(Arrays.asList(colDef)));
-                }
-            });
-
-        List<AbundanceColumnDefinition> colDefs =
-                clientService.getAbundanceColumnDefinitionsForProteinByExperiment(experimentID,
-                        null);
-        colDefs =
-                clientService.getAbundanceColumnDefinitionsForProteinByExperiment(experimentID,
-                        null);
-        assertEquals(colDef.getSampleCode(), colDefs.get(0).getSampleCode());
-        assertEquals(treatment.getType(), colDefs.get(0).getTreatments().get(0).getType());
-        assertEquals(1, colDefs.size());
-        assertEquals(3, cacheFolder.listFiles().length);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListProteinsByExperiment()
-    {
-        final TechId experimentID1 = new TechId(42L);
-        final TechId experimentID2 = new TechId(4711L);
-        final AbundanceColumnDefinition colDef = new AbundanceColumnDefinition();
-        colDef.setSampleCode("S1");
-        Treatment treatment = new Treatment();
-        treatment.setType("type1");
-        treatment.setTypeCode("code");
-        colDef.setTreatments(Arrays.asList(treatment));
-        final double fdr1 = 0.125;
-        final double fdr2 = 0.25;
-        final AggregateFunction f1 = AggregateFunction.MAX;
-        final AggregateFunction f2 = AggregateFunction.MIN;
-        final String treatment1 = "t1";
-        final String treatment2 = "t2";
-        final ProteinInfo p1 = createProtein(1);
-        final ProteinInfo p2 = createProtein(2);
-        final ProteinInfo p3 = createProtein(3);
-        final ProteinInfo p4 = createProtein(4);
-        final ProteinInfo p5 = createProtein(5);
-        final ProteinInfo p6 = createProtein(6);
-        context.checking(new Expectations()
-            {
-                {
-                    one(server).getAbundanceColumnDefinitionsForProteinByExperiment(SESSION_TOKEN,
-                            experimentID1, treatment1);
-                    will(returnValue(Arrays.asList(colDef)));
-                    one(server).getAbundanceColumnDefinitionsForProteinByExperiment(SESSION_TOKEN,
-                            experimentID1, treatment2);
-                    will(returnValue(Arrays.asList(colDef)));
-                    one(server).getAbundanceColumnDefinitionsForProteinByExperiment(SESSION_TOKEN,
-                            experimentID2, treatment1);
-                    will(returnValue(Arrays.asList(colDef)));
-                    one(server).listProteinsByExperiment(SESSION_TOKEN, experimentID1, fdr1, f1,
-                            treatment1, false);
-                    will(returnValue(Arrays.asList(p1)));
-                    one(server).listProteinsByExperiment(SESSION_TOKEN, experimentID2, fdr1, f1,
-                            treatment1, false);
-                    will(returnValue(Arrays.asList(p2)));
-                    one(server).listProteinsByExperiment(SESSION_TOKEN, experimentID1, fdr2, f1,
-                            treatment1, false);
-                    will(returnValue(Arrays.asList(p3)));
-                    one(server).listProteinsByExperiment(SESSION_TOKEN, experimentID1, fdr1, f2,
-                            treatment1, false);
-                    will(returnValue(Arrays.asList(p4)));
-                    one(server).listProteinsByExperiment(SESSION_TOKEN, experimentID1, fdr1, f1,
-                            treatment2, false);
-                    will(returnValue(Arrays.asList(p5)));
-                    one(server).listProteinsByExperiment(SESSION_TOKEN, experimentID1, fdr1, f1,
-                            treatment1, true);
-                    will(returnValue(Arrays.asList(p6)));
-
-                }
-            });
-
-        listAndCheckProteins(p1, experimentID1, fdr1, f1, treatment1, false);
-        listAndCheckProteins(p2, experimentID2, fdr1, f1, treatment1, false);
-        listAndCheckProteins(p3, experimentID1, fdr2, f1, treatment1, false);
-        listAndCheckProteins(p4, experimentID1, fdr1, f2, treatment1, false);
-        listAndCheckProteins(p5, experimentID1, fdr1, f1, treatment2, false);
-        listAndCheckProteins(p6, experimentID1, fdr1, f1, treatment1, true);
-        listAndCheckProteins(p1, experimentID1, fdr1, f1, treatment1, false);
-        listAndCheckProteins(p2, experimentID2, fdr1, f1, treatment1, false);
-        listAndCheckProteins(p3, experimentID1, fdr2, f1, treatment1, false);
-        listAndCheckProteins(p4, experimentID1, fdr1, f2, treatment1, false);
-        listAndCheckProteins(p5, experimentID1, fdr1, f1, treatment2, false);
-        listAndCheckProteins(p6, experimentID1, fdr1, f1, treatment1, true);
-        assertEquals("Unexpectd number of files: " + Arrays.asList(cacheFolder.listFiles()), 19,
-                cacheFolder.listFiles().length);
-
-        context.assertIsSatisfied();
-    }
-
-    private void listAndCheckProteins(ProteinInfo protein, TechId experimentId,
-            double falseDiscoveryRate, AggregateFunction function, String treatmentTypeCode,
-            boolean aggregateOnOriginal)
-    {
-        ListProteinByExperimentCriteria criteria = new ListProteinByExperimentCriteria();
-        criteria.setCacheConfig(ResultSetFetchConfig.createFetchFromCache("key"));
-        criteria.setExperimentID(experimentId);
-        criteria.setFalseDiscoveryRate(falseDiscoveryRate);
-        criteria.setAggregateFunction(function);
-        criteria.setTreatmentTypeCode(treatmentTypeCode);
-        criteria.setAggregateOriginal(aggregateOnOriginal);
-        TypedTableResultSet<ProteinInfo> rs = clientService.listProteinsByExperiment(criteria);
-        ProteinInfo actualProtein = rs.getResultSet().getList().get(0).getOriginalObject().getObjectOrNull();
-        assertEquals(protein.getId(), actualProtein.getId());
-        assertEquals(protein.getDescription(), actualProtein.getDescription());
-        assertEquals(1, rs.getResultSet().getTotalLength());
-    }
-
-    private ProteinInfo createProtein(long id)
-    {
-        ProteinInfo protein = new ProteinInfo();
-        protein.setId(new TechId(id));
-        protein.setDescription("Protein " + id);
-        protein.setAbundances(new HashMap<Long, Double>());
-        return protein;
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/RawDataSampleProviderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/RawDataSampleProviderTest.java
deleted file mode 100644
index 8cac244ce9460b1ff8c2b7a78e14965edf26023d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/RawDataSampleProviderTest.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.RawDataSampleGridIDs.CODE;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.RawDataSampleGridIDs.PARENT;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.RawDataSampleGridIDs.REGISTRATION_DATE;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
-import org.jmock.Expectations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.rinn.restrictions.Friend;
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.RawDataSampleProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Friend(toClasses = RawDataSampleProvider.class)
-public class RawDataSampleProviderTest extends AbstractServerTestCase
-{
-    private IProteomicsDataServiceInternal service;
-
-    private RawDataSampleProvider provider;
-
-    @Override
-    @BeforeMethod
-    public final void setUp()
-    {
-        super.setUp();
-        service = context.mock(IProteomicsDataServiceInternal.class);
-        provider = new RawDataSampleProvider(service, SESSION_TOKEN);
-    }
-
-    @Test
-    public void testGetHeadersForNoData()
-    {
-        prepareListRawDataSamples();
-
-        List<TableModelColumnHeader> headers = provider.getTableModel(Integer.MAX_VALUE).getHeader();
-
-        assertFixedColumns(headers);
-        assertEquals(4, headers.size());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testGetHeaders()
-    {
-        Sample ms1 = sample("MS1", sample("ABC", "alpha", "beta"), "one");
-        Sample ms2 = sample("MS2", sample("DE", "gamma", "beta"), "one");
-        Sample ms3 = sample("MS3", sample("DE", "gamma", "alpha"), "two");
-        prepareListRawDataSamples(ms1, ms2, ms3);
-
-        List<TableModelColumnHeader> headers = provider.getTableModel(Integer.MAX_VALUE).getHeader();
-
-        assertFixedColumns(headers);
-        assertPropertyHeader("one", "USER-ONE", 4, headers);
-        assertPropertyHeader("two", "USER-TWO", 5, headers);
-        assertPropertyHeader("alpha", "BIO_USER-ALPHA", 6, headers);
-        assertPropertyHeader("beta", "BIO_USER-BETA", 7, headers);
-        assertPropertyHeader("gamma", "BIO_USER-GAMMA", 8, headers);
-        assertEquals(9, headers.size());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testGetOriginalDataForNoData()
-    {
-        prepareListRawDataSamples();
-
-        List<TableModelRowWithObject<Sample>> data = provider.getTableModel(Integer.MAX_VALUE).getRows();
-
-        assertEquals(0, data.size());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testGetOriginalData()
-    {
-        Sample ms1 = sample("MS1", sample("ABC", "beta", "alpha"), "one");
-        Sample ms2 = sample("MS2", sample("DE", "gamma", "beta"), "one");
-        Sample parent = sample("FG", "alpha", "gamma");
-        Experiment experiment = new Experiment();
-        experiment.setIdentifier("/G/P/E1");
-        parent.setExperiment(experiment);
-        Sample ms3 = sample("MS3", parent, "2");
-        prepareListRawDataSamples(ms1, ms2, ms3);
-
-        TypedTableModel<Sample> tableModel = provider.getTableModel(Integer.MAX_VALUE);
-        List<TableModelRowWithObject<Sample>> data = tableModel.getRows();
-
-        assertEquals(3, data.size());
-        assertEquals("[null, null, null, null, 2, one, alpha, beta, gamma]", tableModel.getHeader().toString());
-        assertRow("MS1, Mon Mar 30 17:18:20 CET 1970, /G/ABC, , , 3, 6, 4, ", data.get(0));
-        assertRow("MS2, Mon Mar 30 17:20:00 CET 1970, /G/DE, , , 3, , 5, 5", data.get(1));
-        assertRow("MS3, Mon Mar 30 17:21:40 CET 1970, /G/FG, /G/P/E1, 1, , 5, , 6", data.get(2));
-        context.assertIsSatisfied();
-    }
-
-    private void assertRow(String expectedRow, TableModelRow row)
-    {
-        StringBuilder builder = new StringBuilder();
-        int length = expectedRow.split(",").length;
-        for (int i = 0; i < length; i++)
-        {
-            if (builder.length() > 0)
-            {
-                builder.append(", ");
-            }
-            builder.append(row.getValues().get(i));
-        }
-        assertEquals(expectedRow, builder.toString());
-    }
-
-    private void assertFixedColumns(List<TableModelColumnHeader> headers)
-    {
-        assertUntitledHeader(CODE, 0, DataTypeCode.VARCHAR, headers.get(0));
-        assertUntitledHeader(REGISTRATION_DATE, 1, DataTypeCode.TIMESTAMP, headers.get(1));
-        assertUntitledHeader(PARENT, 2, DataTypeCode.VARCHAR, headers.get(2));
-    }
-
-    private void assertUntitledHeader(String expectedCode, int expectedIndex,
-            DataTypeCode expectedType, TableModelColumnHeader header)
-    {
-        assertHeader(null, expectedCode, expectedIndex, expectedType, header);
-    }
-
-    private void assertPropertyHeader(String expectedLabel, String expectedCode, int index, List<TableModelColumnHeader> headers)
-    {
-        TableModelColumnHeader header = headers.get(index);
-        assertHeader(expectedLabel, expectedCode, index, DataTypeCode.INTEGER, header);
-    }
-
-    private void assertHeader(String expectedTitle, String expectedCode, int expectedIndex,
-            DataTypeCode expectedType, TableModelColumnHeader header)
-    {
-        assertEquals(expectedTitle, header.getTitle());
-        assertEquals(expectedCode, header.getId());
-        assertEquals(expectedIndex, header.getIndex());
-        assertEquals(expectedType, header.getDataType());
-    }
-
-    private Sample sample(String code, Sample parent, String... properties)
-    {
-        Sample sample = sample(code, properties);
-        sample.setGeneratedFrom(parent);
-        return sample;
-    }
-
-    private Sample sample(String code, String... properties)
-    {
-        Sample sample = new Sample();
-        sample.setCode(code);
-        sample.setIdentifier("/G/" + code);
-        sample.setId((long) code.hashCode());
-        sample.setRegistrationDate(new Date(code.hashCode() * 100000L));
-        sample.setProperties(createProperties(properties));
-        return sample;
-    }
-
-    private List<IEntityProperty> createProperties(String... labels)
-    {
-        ArrayList<IEntityProperty> properties = new ArrayList<IEntityProperty>();
-        for (String label : labels)
-        {
-            GenericEntityProperty property = new GenericEntityProperty();
-            PropertyType propertyType = new PropertyType();
-            propertyType.setLabel(label);
-            propertyType.setCode(propertyType.getLabel().toUpperCase());
-            propertyType.setSimpleCode(propertyType.getCode());
-            DataType dataType = new DataType();
-            dataType.setCode(DataTypeCode.INTEGER);
-            propertyType.setDataType(dataType);
-            property.setPropertyType(propertyType);
-            property.setValue(Integer.toString(label.length() + properties.size()));
-            properties.add(property);
-        }
-        return properties;
-    }
-
-    private void prepareListRawDataSamples(final Sample... samples)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(service).listRawDataSamples(SESSION_TOKEN);
-                    List<MsInjectionSample> list = new ArrayList<MsInjectionSample>();
-                    for (Sample sample : samples)
-                    {
-                        list.add(new MsInjectionSample(sample, Arrays.<AbstractExternalData> asList()));
-                    }
-                    will(returnValue(list));
-                }
-            });
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProviderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProviderTest.java
deleted file mode 100644
index 01b17862c6cbdafa52a2b376b08283d9a4266538..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProviderTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset;
-
-import java.util.Arrays;
-
-import org.jmock.Expectations;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractProviderTest;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset.ProteinSequenceProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequence;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinSequenceProviderTest extends AbstractProviderTest
-{
-    @Test
-    public void test()
-    {
-        final ProteinSequence ps = new ProteinSequence();
-        ps.setShortName("short-name");
-        ps.setDatabaseNameAndVersion("db-version");
-        ps.setSequence("ABC");
-        final IPhosphoNetXServer phosphonetxServer = context.mock(IPhosphoNetXServer.class);
-        context.checking(new Expectations()
-            {
-                {
-                    one(phosphonetxServer).listProteinSequencesByProteinReference(SESSION_TOKEN, new TechId(42), new TechId(43));
-                    will(returnValue(Arrays.asList(ps)));
-                }
-            });
-        ProteinSequenceProvider provider =
-                new ProteinSequenceProvider(phosphonetxServer, SESSION_TOKEN, new TechId(42), new TechId(43));
-
-        TypedTableModel<ProteinSequence> model = provider.createTableModel();
-
-        assertEquals("[SEQUENCE_SHORT_NAME, DATABASE_NAME_AND_VERSION, SEQUENCE]", getHeaderIDs(model).toString());
-        assertEquals("[VARCHAR, VARCHAR, VARCHAR]", getHeaderDataTypes(model).toString());
-        assertEquals("[null, null, null]", getHeaderEntityKinds(model).toString());
-        assertSame(ps, model.getRows().get(0).getObjectOrNull());
-        assertEquals("[short-name, db-version, ABC]", model.getRows().get(0).getValues().toString());
-        assertEquals(1, model.getRows().size());
-        context.assertIsSatisfied();
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSummaryProviderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSummaryProviderTest.java
deleted file mode 100644
index bcd305c722136307cc06079f8b9d80fb1ca6bc93..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSummaryProviderTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset;
-
-import java.util.Arrays;
-
-import org.jmock.Expectations;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractProviderTest;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel;
-import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.server.resultset.ProteinSummaryProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinSummaryProviderTest extends AbstractProviderTest
-{
-    @Test
-    public void test()
-    {
-        final ProteinSummary ps = new ProteinSummary();
-        ps.setFDR(0.125);
-        ps.setProteinCount(42);
-        ps.setPeptideCount(4711);
-        ps.setDecoyProteinCount(2);
-        ps.setDecoyPeptideCount(5);
-        final IPhosphoNetXServer phosphonetxServer = context.mock(IPhosphoNetXServer.class);
-        context.checking(new Expectations()
-            {
-                {
-                    one(phosphonetxServer).listProteinSummariesByExperiment(SESSION_TOKEN,
-                            new TechId(12));
-                    will(returnValue(Arrays.asList(ps)));
-                }
-            });
-        ProteinSummaryProvider provider =
-                new ProteinSummaryProvider(phosphonetxServer, SESSION_TOKEN, new TechId(12));
-
-        TypedTableModel<ProteinSummary> model = provider.createTableModel();
-
-        assertEquals(
-                "[FDR, PROTEIN_COUNT, PEPTIDE_COUNT, DECOY_PROTEIN_COUNT, DECOY_PEPTIDE_COUNT]",
-                getHeaderIDs(model).toString());
-        assertEquals("[REAL, INTEGER, INTEGER, INTEGER, INTEGER]", getHeaderDataTypes(model)
-                .toString());
-        assertEquals("[null, null, null, null, null]", getHeaderEntityKinds(model).toString());
-        assertSame(ps, model.getRows().get(0).getObjectOrNull());
-        assertEquals("[0.125, 42, 4711, 2, 5]", model.getRows().get(0).getValues().toString());
-        assertEquals(1, model.getRows().size());
-        context.assertIsSatisfied();
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerTest.java
deleted file mode 100644
index 7c0980fc7aba97e44231e4ddefe35847680a1e9c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerTest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.jmock.Expectations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.rinn.restrictions.Friend;
-import ch.systemsx.cisd.openbis.common.eodsql.MockDataSet;
-import ch.systemsx.cisd.openbis.generic.server.plugin.IDataSetTypeSlaveServerPlugin;
-import ch.systemsx.cisd.openbis.generic.server.plugin.ISampleTypeSlaveServerPlugin;
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IAbundanceColumnDefinitionTable;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IProteinDetailsBO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IProteinRelatedSampleTable;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.ISampleProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinDetails;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Friend(toClasses = PhosphoNetXServer.class)
-public class PhosphoNetXServerTest extends AbstractServerTestCase
-{
-    private static final TechId EXPERIMENT_ID = new TechId(42L);
-
-    private static final String EXPERIMENT_PERM_ID = "e123-45";
-
-    private static final String SAMPLE_PERM_ID = "s34-56";
-
-    private IPhosphoNetXDAOFactory phosphoNetXDAOFactory;
-
-    private IBusinessObjectFactory boFactory;
-
-    private ISampleTypeSlaveServerPlugin sampleTypeSlaveServerPlugin;
-
-    private IDataSetTypeSlaveServerPlugin dataSetTypeSlaveServerPlugin;
-
-    private IProteinQueryDAO proteinDAO;
-
-    private PhosphoNetXServer server;
-
-    private IAbundanceColumnDefinitionTable abundanceColumnDefinitionTable;
-
-    private ISampleProvider sampleProvider;
-
-    private IProteinDetailsBO proteinDetailsBO;
-
-    private IProteinRelatedSampleTable proteinRelatedSampleTable;
-
-    @Override
-    @BeforeMethod
-    public void setUp()
-    {
-        super.setUp();
-        phosphoNetXDAOFactory = context.mock(IPhosphoNetXDAOFactory.class);
-        boFactory = context.mock(IBusinessObjectFactory.class);
-        sampleTypeSlaveServerPlugin = context.mock(ISampleTypeSlaveServerPlugin.class);
-        dataSetTypeSlaveServerPlugin = context.mock(IDataSetTypeSlaveServerPlugin.class);
-        proteinDAO = context.mock(IProteinQueryDAO.class);
-        abundanceColumnDefinitionTable = context.mock(IAbundanceColumnDefinitionTable.class);
-        proteinDetailsBO = context.mock(IProteinDetailsBO.class);
-        proteinRelatedSampleTable = context.mock(IProteinRelatedSampleTable.class);
-        sampleProvider = context.mock(ISampleProvider.class);
-        server =
-                new PhosphoNetXServer(sessionManager, daoFactory, propertiesBatchManager,
-                        phosphoNetXDAOFactory, boFactory, sampleTypeSlaveServerPlugin,
-                        dataSetTypeSlaveServerPlugin);
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(boFactory).createProteinDetailsBO(session);
-                    will(returnValue(proteinDetailsBO));
-
-                    allowing(boFactory).createProteinRelatedSampleTable(session);
-                    will(returnValue(proteinRelatedSampleTable));
-                }
-            });
-    }
-
-    @Test
-    public void testGetAbundanceColumnDefinitionsForProteinByExperiment()
-    {
-        prepareGetSession();
-        final MockDataSet<String> mockDataSet = new MockDataSet<String>();
-        mockDataSet.add(SAMPLE_PERM_ID);
-        final List<AbundanceColumnDefinition> result = Arrays.asList();
-        context.checking(new Expectations()
-            {
-                {
-                    one(experimentDAO).getByTechId(EXPERIMENT_ID);
-                    ExperimentPE experimentPE = new ExperimentPE();
-                    experimentPE.setPermId(EXPERIMENT_PERM_ID);
-                    will(returnValue(experimentPE));
-
-                    allowing(phosphoNetXDAOFactory).getProteinQueryDAO(EXPERIMENT_ID);
-                    will(returnValue(proteinDAO));
-
-                    one(proteinDAO).listAbundanceRelatedSamplePermIDsByExperiment(EXPERIMENT_PERM_ID);
-                    will(returnValue(mockDataSet));
-
-                    one(boFactory).createAbundanceColumnDefinitionTable(session);
-                    will(returnValue(abundanceColumnDefinitionTable));
-
-                    one(boFactory).createSampleProvider(session);
-                    will(returnValue(sampleProvider));
-
-                    one(sampleProvider).loadByExperimentID(EXPERIMENT_ID);
-
-                    one(sampleProvider).getSample(SAMPLE_PERM_ID);
-                    Sample sample = new Sample();
-                    sample.setPermId(SAMPLE_PERM_ID);
-                    will(returnValue(sample));
-
-                    one(abundanceColumnDefinitionTable).add(sample);
-
-                    one(abundanceColumnDefinitionTable).getSortedAndAggregatedDefinitions("PH");
-                    will(returnValue(result));
-                }
-            });
-
-        List<AbundanceColumnDefinition> definitions =
-                server.getAbundanceColumnDefinitionsForProteinByExperiment(SESSION_TOKEN,
-                        EXPERIMENT_ID, "PH");
-        assertSame(result, definitions);
-        assertEquals(true, mockDataSet.hasCloseBeenInvoked());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListProteinRelatedSamplesByProtein()
-    {
-        prepareGetSession();
-        final TechId experimentID = new TechId(42);
-        final TechId proteinReferenceID = new TechId(4711);
-        final List<Object> result = Arrays.asList();
-        context.checking(new Expectations()
-            {
-                {
-                    one(proteinDetailsBO).loadByExperimentAndReference(experimentID,
-                            proteinReferenceID);
-                    one(proteinDetailsBO).getDetailsOrNull();
-                    ProteinDetails details = new ProteinDetails();
-                    String sequence = "abcdefabcab";
-                    details.setSequence(sequence);
-                    will(returnValue(details));
-
-                    one(proteinRelatedSampleTable).load(session, experimentID, proteinReferenceID, sequence);
-                    one(proteinRelatedSampleTable).getSamples();
-                    will(returnValue(result));
-                }
-            });
-
-        List<ProteinRelatedSample> list =
-                server.listProteinRelatedSamplesByProtein(SESSION_TOKEN, experimentID,
-                        proteinReferenceID);
-
-        assertSame(result, list);
-        context.assertIsSatisfied();
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ProteomicsDataServiceInternalTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ProteomicsDataServiceInternalTest.java
deleted file mode 100644
index 7d4729d7446bc2ec23d55ad371d65c4bfa8a8765..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ProteomicsDataServiceInternalTest.java
+++ /dev/null
@@ -1,449 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server;
-
-import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind.PROCESSING;
-import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind.QUERIES;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-
-import org.jmock.Expectations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.rinn.restrictions.Friend;
-import ch.systemsx.cisd.openbis.generic.server.TestJythonEvaluatorPool;
-import ch.systemsx.cisd.openbis.generic.server.authorization.TestAuthorizationConfig;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.ICommonBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
-import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PhysicalDataSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.DataSetBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServicePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.EntityPropertyPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.RoleAssignmentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind;
-import ch.systemsx.cisd.openbis.generic.shared.managed_property.ManagedPropertyEvaluatorFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.ISampleLoader;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.CommonConstants;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Friend(toClasses = ProteomicsDataServiceInternal.class)
-public class ProteomicsDataServiceInternalTest extends AbstractServerTestCase
-{
-    private static final String GROUP_CODE = "g";
-
-    private static final String COPY_PROCESSING_KEY = "copy-data-sets";
-
-    private static final String EXPERIMENT_TYPE = "EXPE";
-
-    private IProteomicsDataServiceInternal service;
-
-    private ICommonBusinessObjectFactory commonBoFactory;
-
-    private ExperimentTypePE experimentType;
-
-    private IBusinessObjectFactory boFactory;
-
-    private ISampleLoader sampleLoader;
-
-    @Override
-    @BeforeMethod
-    public final void setUp()
-    {
-        super.setUp();
-        commonBoFactory = context.mock(ICommonBusinessObjectFactory.class);
-        boFactory = context.mock(IBusinessObjectFactory.class);
-        sampleLoader = context.mock(ISampleLoader.class);
-        service =
-                new ProteomicsDataServiceInternal(sessionManager, daoFactory,
-                        propertiesBatchManager, commonBoFactory, boFactory,
-                        new ManagedPropertyEvaluatorFactory(null, new TestJythonEvaluatorPool()));
-        experimentType = new ExperimentTypePE();
-        experimentType.setCode(EXPERIMENT_TYPE);
-        PersonPE person = new PersonPE();
-        RoleAssignmentPE roleAssignment = new RoleAssignmentPE();
-        roleAssignment.setRole(RoleCode.ADMIN);
-        SpacePE group = new SpacePE();
-        group.setCode("Space-0");
-        roleAssignment.setSpace(group);
-        person.setRoleAssignments(Collections.singleton(roleAssignment));
-        session.setPerson(person);
-    }
-
-    @Test
-    public void testListRawDataSamples()
-    {
-        prepareGetSession();
-        prepareListRawDataSamples(42L);
-
-        List<MsInjectionSample> samples = service.listRawDataSamples(SESSION_TOKEN);
-
-        assertEquals(42L, samples.get(0).getSample().getId().longValue());
-        assertEquals(1, samples.size());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProcessDataSets()
-    {
-        prepareGetSession();
-        HashMap<String, String> parameterBindings = new HashMap<String, String>();
-        prepareProcessDataSets(session, parameterBindings, "ds1", "ds2");
-
-        service.processDataSets(SESSION_TOKEN, COPY_PROCESSING_KEY, Arrays.asList("ds1", "ds2"));
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListExperiments()
-    {
-        prepareGetSession();
-        final ExperimentPE e1 = experiment(1);
-        final ExperimentPE e2 = experiment(2, "a");
-        prepareListExperiments(e1, e2);
-
-        List<Experiment> list = service.listExperiments(SESSION_TOKEN, EXPERIMENT_TYPE);
-
-        assertEquals("/G/P/e1", list.get(0).getIdentifier());
-        assertEquals(1, list.get(0).getRegistrationDate().getTime());
-        assertEquals(0, list.get(0).getProperties().size());
-        assertEquals("/G/P/e2", list.get(1).getIdentifier());
-        assertEquals(4, list.get(1).getRegistrationDate().getTime());
-        assertEquals("A", list.get(1).getProperties().get(0).getPropertyType().getCode());
-        assertEquals("a-value", list.get(1).getProperties().get(0).getValue());
-        assertEquals(1, list.get(1).getProperties().size());
-        assertEquals(2, list.size());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProcessSearchData()
-    {
-        final Session testSession = createSessionAndPrepareGetSession(GROUP_CODE);
-        final ExperimentPE e1 = experiment(1);
-        final ExperimentPE e2 = experiment(2, "a");
-        context.checking(new Expectations()
-            {
-                {
-                    one(experimentDAO).tryGetByTechId(new TechId(e1.getId()));
-                    will(returnValue(e1));
-
-                    one(dataSetDAO).listDataSets(e1);
-                    ExternalDataPE ds1 = new ExternalDataPE();
-                    ds1.setCode("ds1");
-                    will(returnValue(Arrays.asList(ds1)));
-
-                    one(experimentDAO).tryGetByTechId(new TechId(e2.getId()));
-                    will(returnValue(e2));
-
-                    one(dataSetDAO).listDataSets(e2);
-                    ExternalDataPE ds2 = new ExternalDataPE();
-                    ds2.setCode("ds2");
-                    will(returnValue(Arrays.asList(ds2)));
-                }
-            });
-        prepareProcessDataSets(testSession, new HashMap<String, String>(), "ds1", "ds2");
-
-        service.processProteinResultDataSets(SESSION_TOKEN, COPY_PROCESSING_KEY, EXPERIMENT_TYPE,
-                new long[] { e1.getId(), e2.getId() });
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProcessSearchDataFilteredByValidator()
-    {
-        Session testSession = createSessionAndPrepareGetSession(GROUP_CODE + 2);
-        final ExperimentPE e1 = experiment(1);
-        final ExperimentPE e2 = experiment(2, "a");
-
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(daoFactory).getAuthorizationConfig();
-                    will(returnValue(new TestAuthorizationConfig(false, false)));
-
-                    one(experimentDAO).tryGetByTechId(new TechId(e1.getId()));
-                    will(returnValue(e1));
-
-                    one(experimentDAO).tryGetByTechId(new TechId(e2.getId()));
-                    will(returnValue(e2));
-                }
-            });
-        prepareProcessDataSets(testSession, new HashMap<String, String>());
-
-        service.processProteinResultDataSets(SESSION_TOKEN, COPY_PROCESSING_KEY, EXPERIMENT_TYPE,
-                new long[] { e1.getId(), e2.getId() });
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProcessSearchDataFilteredByIds()
-    {
-        Session testSession = createSessionAndPrepareGetSession(GROUP_CODE);
-        final ExperimentPE e1 = experiment(1);
-        context.checking(new Expectations()
-            {
-                {
-                    one(experimentDAO).tryGetByTechId(new TechId(e1.getId()));
-                    will(returnValue(e1));
-
-                    one(dataSetDAO).listDataSets(e1);
-                    ExternalDataPE ds1 = new ExternalDataPE();
-                    ds1.setCode("ds1");
-                    will(returnValue(Arrays.asList(ds1)));
-                }
-            });
-        prepareProcessDataSets(testSession, new HashMap<String, String>(), "ds1");
-
-        service.processProteinResultDataSets(SESSION_TOKEN, COPY_PROCESSING_KEY, EXPERIMENT_TYPE,
-                new long[] { e1.getId() });
-
-        context.assertIsSatisfied();
-    }
-
-    private Session createSessionAndPrepareGetSession(String spaceCode)
-    {
-        final Session testSession =
-                new Session(CommonTestUtils.USER_ID, SESSION_TOKEN, PRINCIPAL, "remote-host", 1);
-        PersonPE person = new PersonPE();
-        RoleAssignmentPE roleAssignmentPE = new RoleAssignmentPE();
-        SpacePE group = new SpacePE();
-        group.setCode(spaceCode);
-        roleAssignmentPE.setRole(RoleCode.ADMIN);
-        roleAssignmentPE.setSpace(group);
-        person.setRoleAssignments(new HashSet<RoleAssignmentPE>(Arrays.asList(roleAssignmentPE)));
-        testSession.setPerson(person);
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(sessionManager).getSession(SESSION_TOKEN);
-                    will(returnValue(testSession));
-                }
-            });
-        return testSession;
-    }
-
-    private void prepareListExperiments(final ExperimentPE... experiments)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(daoFactory).getEntityTypeDAO(EntityKind.EXPERIMENT);
-                    will(returnValue(entityTypeDAO));
-
-                    one(entityTypeDAO).tryToFindEntityTypeByCode(EXPERIMENT_TYPE);
-                    will(returnValue(experimentType));
-
-                    one(experimentDAO).listExperimentsWithProperties(experimentType, null, null);
-                    will(returnValue(Arrays.asList(experiments)));
-
-                    one(metaprojectDAO).listMetaprojectAssignmentsForEntities(
-                            session.tryGetPerson(), Arrays.asList(experiments),
-                            EntityKind.EXPERIMENT);
-                }
-            });
-    }
-
-    private void prepareProcessDataSets(final Session testSession,
-            final Map<String, String> parameterBindings, final String... dataSetCodes)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(dataStoreDAO).listDataStores();
-                    DataStorePE s1 =
-                            store("s1", service("a", PROCESSING),
-                                    service(COPY_PROCESSING_KEY, QUERIES));
-                    DataStorePE s2 = store("s2", service(COPY_PROCESSING_KEY, PROCESSING));
-                    will(returnValue(Arrays.asList(s1, s2)));
-
-                    one(commonBoFactory).createDataSetTable(testSession);
-                    will(returnValue(dataSetTable));
-
-                    one(dataSetTable).processDatasets(COPY_PROCESSING_KEY, "s2",
-                            Arrays.asList(dataSetCodes), parameterBindings);
-                }
-
-            });
-    }
-
-    private void prepareListRawDataSamples(final Long... sampleIDs)
-    {
-        final List<Sample> samples = new ArrayList<Sample>();
-        final LinkedHashSet<Long> experimentIds = new LinkedHashSet<Long>();
-        final List<ExperimentPE> bioExperiments = new ArrayList<ExperimentPE>();
-        for (Long id : sampleIDs)
-        {
-            Sample sample = new Sample();
-            sample.setId(id);
-            sample.setCode("s-" + id);
-            sample.setIdentifier("S" + id);
-            Experiment experiment = new Experiment();
-            experiment.setId(id * 10);
-            sample.setExperiment(experiment);
-            Sample parent = new Sample();
-            parent.setId(id * 100);
-            Space space = new Space();
-            space.setCode("Space-" + id % 2);
-            parent.setSpace(space);
-            Experiment parentExperiment = new Experiment();
-            parentExperiment.setId(id * 20);
-            parent.setExperiment(parentExperiment);
-            sample.setGeneratedFrom(parent);
-            samples.add(sample);
-            if (id % 2 == 0)
-            {
-                ExperimentPE bioExperiment =
-                        createExperiment("e-type", "exp-" + id, space.getCode());
-                bioExperiment.setId(parentExperiment.getId());
-                bioExperiments.add(bioExperiment);
-                experimentIds.add(bioExperiment.getId());
-            }
-        }
-        context.checking(new Expectations()
-            {
-                {
-                    one(boFactory).createSampleLoader(session);
-                    will(returnValue(sampleLoader));
-
-                    one(sampleLoader).listSamplesWithParentsByTypeAndSpace(
-                            CommonConstants.MS_INJECTION_SAMPLE_TYPE_CODE,
-                            CommonConstants.MS_DATA_SPACE);
-                    will(returnValue(samples));
-
-                    one(experimentDAO).listExperimentsWithProperties(experimentIds);
-                    will(returnValue(bioExperiments));
-
-                    List<Sample> filteredSamples = new ArrayList<Sample>();
-                    Map<Sample, List<PhysicalDataSet>> dataSetsBySamples =
-                            new HashMap<Sample, List<PhysicalDataSet>>();
-                    for (Sample sample : samples)
-                    {
-                        if ("Space-0".equals(sample.getGeneratedFrom().getSpace().getCode()))
-                        {
-                            Long id = sample.getId();
-                            String dataSetType = "dt-" + id % 2;
-                            long ds1Id = id * 1000;
-                            PhysicalDataSet ds1 =
-                                    new DataSetBuilder(ds1Id).code("ds-" + id)
-                                            .registrationDate(new Date(ds1Id)).sample(sample)
-                                            .type(dataSetType).getDataSet();
-
-                            long ds2Id = (id + 1) * 1001;
-                            PhysicalDataSet ds2 =
-                                    new DataSetBuilder(ds2Id).code("ds-" + id + 1)
-                                            .registrationDate(new Date(ds2Id)).sample(sample)
-                                            .type(dataSetType).getDataSet();
-
-                            long ds2ChildId = ds2.getId() + 1;
-                            PhysicalDataSet ds2Child =
-                                    new DataSetBuilder(ds2ChildId).code(ds2.getCode() + "-child")
-                                            .registrationDate(new Date(ds2ChildId)).sample(sample)
-                                            .type(dataSetType).getDataSet();
-
-                            ds2.setChildren(Arrays.<AbstractExternalData> asList(ds2Child));
-                            dataSetsBySamples.put(sample, Arrays.asList(ds1, ds2));
-
-                            filteredSamples.add(sample);
-                        }
-                    }
-
-                    one(commonBoFactory).createDatasetLister(session);
-                    will(returnValue(datasetLister));
-
-                    one(datasetLister).listAllDataSetsFor(filteredSamples);
-                    will(returnValue(dataSetsBySamples));
-
-                }
-            });
-    }
-
-    private ExperimentPE experiment(long id, String... properties)
-    {
-        ExperimentPE experiment = new ExperimentPE();
-        experiment.setExperimentType(experimentType);
-        experiment.setId(id);
-        experiment.setCode("e" + id);
-        ProjectPE project = new ProjectPE();
-        project.setCode("p");
-        SpacePE group =
-                CommonTestUtils.createSpace(GROUP_CODE);
-        project.setSpace(group);
-        experiment.setProject(project);
-        experiment.setRegistrationDate(new Date(id * id));
-        if (properties.length > 0)
-        {
-            LinkedHashSet<EntityPropertyPE> props = new LinkedHashSet<EntityPropertyPE>();
-            for (String property : properties)
-            {
-                props.add(CommonTestUtils.createExperimentPropertyPE(property, EXPERIMENT_TYPE,
-                        DataTypeCode.VARCHAR, property + "-value"));
-            }
-            experiment.setProperties(props);
-        }
-        return experiment;
-    }
-
-    private DataStorePE store(String code, DataStoreServicePE... services)
-    {
-        DataStorePE store = new DataStorePE();
-        store.setCode(code);
-        store.setServices(new LinkedHashSet<DataStoreServicePE>(Arrays.asList(services)));
-        return store;
-    }
-
-    private DataStoreServicePE service(String key, DataStoreServiceKind kind)
-    {
-        DataStoreServicePE dataStoreService = new DataStoreServicePE();
-        dataStoreService.setKey(key);
-        dataStoreService.setKind(kind);
-        return dataStoreService;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ServerInterfaceRegressionTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ServerInterfaceRegressionTest.java
deleted file mode 100644
index e00a088a3c2000160687c7935ce208516d3f3d85..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/ServerInterfaceRegressionTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2012 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server;
-
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.server.util.AnnotationAppliedTestCase;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ServerInterfaceRegressionTest extends AnnotationAppliedTestCase
-{
-    @Test
-    public void testServerAnnotations()
-    {
-        assertMandatoryMethodAnnotations(IPhosphoNetXServer.class, PhosphoNetXServer.class, null);
-    }
-
-    @Test
-    public void testDataServiceInternalAnnotations()
-    {
-        assertMandatoryMethodAnnotations(IProteomicsDataServiceInternal.class,
-                ProteomicsDataServiceInternal.class, null);
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataServiceTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataServiceTest.java
deleted file mode 100644
index 6d981e82a8346fff1ff706d3fe2e6c34d2c6072f..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ProteomicsDataServiceTest.java
+++ /dev/null
@@ -1,426 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.api.v1;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.jmock.Expectations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServicePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataSet;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.DataStoreServerProcessingPluginInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.MsInjectionDataInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.PropertyKey;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteomicsDataServiceTest extends AbstractServerTestCase
-{
-    private static final String MS_SEARCH = "MS_SEARCH";
-
-    private static final String RAW_DATA = "RAW_DATA";
-
-    private static final String MZXML_DATA = "MZXML_DATA";
-
-    private IProteomicsDataServiceInternal internalService;
-
-    private IProteomicsDataService service;
-
-    private SessionContextDTO session2;
-
-    @Override
-    @BeforeMethod
-    public final void setUp()
-    {
-        super.setUp();
-        internalService = context.mock(IProteomicsDataServiceInternal.class);
-        service =
-                new ProteomicsDataService(sessionManager, daoFactory, propertiesBatchManager,
-                        internalService);
-        session2 = new SessionContextDTO();
-        session2.setSessionToken(SESSION_TOKEN + "2");
-    }
-
-    @Test
-    public void testListDataStoreServerProcessingPluginInfos()
-    {
-        prepareGetSession();
-        DataStoreServicePE s1 = new DataStoreServicePE();
-        s1.setKind(DataStoreServiceKind.QUERIES);
-        DataStoreServicePE s2 = new DataStoreServicePE();
-        s2.setKind(DataStoreServiceKind.PROCESSING);
-        s2.setKey("my-key");
-        s2.setLabel("my label");
-        DataSetTypePE dataSetType = new DataSetTypePE();
-        dataSetType.setCode("my type");
-        s2.setDatasetTypes(Collections.singleton(dataSetType));
-        final DataStorePE store = new DataStorePE();
-        store.setServices(new HashSet<DataStoreServicePE>(Arrays.asList(s1, s2)));
-        context.checking(new Expectations()
-            {
-                {
-                    one(dataStoreDAO).listDataStores();
-                    will(returnValue(Arrays.asList(store)));
-                }
-            });
-
-        List<DataStoreServerProcessingPluginInfo> infos =
-                service.listDataStoreServerProcessingPluginInfos(SESSION_TOKEN);
-
-        assertEquals(s2.getKey(), infos.get(0).getKey());
-        assertEquals(s2.getLabel(), infos.get(0).getLabel());
-        assertEquals(Arrays.asList(dataSetType.getCode()), infos.get(0).getDatasetTypeCodes());
-        assertEquals(1, infos.size());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListRawDataSamplesForUnknownUser()
-    {
-        prepareGetSession();
-        prepareLoginLogout(null);
-
-        try
-        {
-            service.listRawDataSamples(SESSION_TOKEN, "abc");
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Unknown user ID: abc", ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListRawDataSamples()
-    {
-        prepareGetSession();
-        prepareLoginLogout(session2);
-        final Sample sample = new Sample();
-        sample.setId(4711L);
-        sample.setCode("ms-inj-42");
-        sample.setRegistrationDate(new Date(4711));
-        IEntityProperty p1 = property("integer", DataTypeCode.INTEGER, "123456");
-        IEntityProperty p2 = property("real", DataTypeCode.REAL, "1.25");
-        IEntityProperty p3 = property("string", DataTypeCode.VARCHAR, "hello");
-        sample.setProperties(Arrays.asList(p1, p2, p3));
-        Sample parent = new Sample();
-        parent.setId(4710L);
-        parent.setIdentifier("parent");
-        IEntityProperty p4 = property("boolean", DataTypeCode.BOOLEAN, "true");
-        IEntityProperty p5 = property("link", DataTypeCode.HYPERLINK, "link");
-        parent.setProperties(Arrays.asList(p4, p5));
-        Experiment experiment = new Experiment();
-        experiment.setId(4747L);
-        experiment.setCode("exp1");
-        Project project = new Project();
-        project.setCode("project1");
-        Space space = new Space();
-        space.setCode("space1");
-        project.setSpace(space);
-        experiment.setProject(project);
-        experiment.setRegistrationDate(new Date(1234567));
-        IEntityProperty p6 = property("ex", DataTypeCode.VARCHAR, "exp");
-        experiment.setProperties(Arrays.<IEntityProperty> asList(p6));
-        parent.setExperiment(experiment);
-        sample.setGeneratedFrom(parent);
-        final AbstractExternalData ds1 = createDataSet(RAW_DATA, 10);
-        final AbstractExternalData ds2 = createDataSet(MZXML_DATA, 20);
-        AbstractExternalData ds3 = createDataSet(MZXML_DATA, 15);
-        AbstractExternalData ds4 = createDataSet(RAW_DATA, 30);
-        ds2.setChildren(Arrays.asList(ds3));
-        ds3.setChildren(Arrays.asList(ds4));
-        context.checking(new Expectations()
-            {
-                {
-                    one(internalService).listRawDataSamples(session2.getSessionToken());
-                    MsInjectionSample msInjectionSample = new MsInjectionSample(sample, Arrays.asList(ds1, ds2));
-                    will(returnValue(Arrays.asList(msInjectionSample)));
-                }
-            });
-
-        List<MsInjectionDataInfo> infos = service.listRawDataSamples(SESSION_TOKEN, "abc");
-
-        MsInjectionDataInfo info = infos.get(0);
-        assertEquals(sample.getId().longValue(), info.getMsInjectionSampleID());
-        assertEquals(sample.getCode(), info.getMsInjectionSampleCode());
-        assertEquals(sample.getRegistrationDate(), info.getMsInjectionSampleRegistrationDate());
-        checkProperties(info.getMsInjectionSampleProperties(), p1, p2, p3);
-        assertEquals(parent.getId().longValue(), info.getBiologicalSampleID());
-        assertEquals(parent.getIdentifier(), info.getBiologicalSampleIdentifier());
-        checkProperties(info.getBiologicalSampleProperties(), p4, p5);
-        assertEquals("4747:space1/project1/exp1 date:1234567 {ex[EX]=exp}",
-                renderExperiment(info.getBiologicalExperiment()));
-        checkProperties(info.getBiologicalExperiment().getProperties(), p6);
-        List<DataSet> dataSets = new ArrayList<DataSet>(info.getDataSets());
-        Collections.sort(dataSets, new Comparator<DataSet>()
-            {
-                @Override
-                public int compare(DataSet d1, DataSet d2)
-                {
-                    return d1.getCode().compareTo(d2.getCode());
-                }
-            });
-        assertEquals("20:MZXML_DATA-20 [MZXML_DATA date:20] {n[N]=2.5}, children:15",
-                renderDataSet(dataSets.get(0)));
-        assertEquals("10:RAW_DATA-10 [RAW_DATA date:10] {n[N]=2.5}", renderDataSet(dataSets.get(1)));
-        assertEquals("15:MZXML_DATA-15 [MZXML_DATA date:15] {n[N]=2.5}, parent:20 , children:30",
-                renderDataSet(dataSets.get(0).getChildren().iterator().next()));
-        assertEquals("30:RAW_DATA-30 [RAW_DATA date:30] {n[N]=2.5}, parent:15",
-                renderDataSet(dataSets.get(0).getChildren().iterator().next().getChildren()
-                        .iterator().next()));
-        assertEquals(2, dataSets.size());
-        Map<String, Date> dates = info.getLatestDataSetRegistrationDates();
-        assertEquals(30, dates.get(RAW_DATA).getTime());
-        assertEquals(20, dates.get(MZXML_DATA).getTime());
-        assertEquals(2, dates.size());
-        assertEquals(1, infos.size());
-        context.assertIsSatisfied();
-    }
-
-    private String renderExperiment(ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment experiment)
-    {
-        StringBuilder builder = new StringBuilder();
-        builder.append(experiment.getId()).append(":").append(experiment.getSpaceCode());
-        builder.append('/').append(experiment.getProjectCode());
-        builder.append('/').append(experiment.getCode());
-        builder.append(" date:").append(experiment.getRegistrationDate().getTime());
-        builder.append(' ').append(experiment.getProperties());
-        return builder.toString();
-    }
-
-    private String renderDataSet(DataSet dataSet)
-    {
-        StringBuilder builder = new StringBuilder();
-        builder.append(dataSet.getId()).append(":").append(dataSet.getCode());
-        builder.append(" [").append(dataSet.getType()).append(" date:");
-        builder.append(dataSet.getRegistrationDate().getTime()).append("] ");
-        builder.append(dataSet.getProperties());
-        Set<DataSet> parents = dataSet.getParents();
-        if (parents != null && parents.isEmpty() == false)
-        {
-            builder.append(", parent:");
-            for (DataSet parent : parents)
-            {
-                builder.append(parent.getId()).append(' ');
-            }
-        }
-        Set<DataSet> children = dataSet.getChildren();
-        if (children != null && children.isEmpty() == false)
-        {
-            builder.append(", children:");
-            for (DataSet child : children)
-            {
-                builder.append(child.getId()).append(' ');
-            }
-        }
-        return builder.toString().trim();
-    }
-
-    @Test
-    public void testProcessDataSetsForUnknownUser()
-    {
-        prepareGetSession();
-        prepareLoginLogout(null);
-
-        try
-        {
-            service.processDataSets(SESSION_TOKEN, "abc", null, Arrays.asList("ds1"));
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("Unknown user ID: abc", ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProcessDataSets()
-    {
-        prepareGetSession();
-        prepareLoginLogout(session2);
-        context.checking(new Expectations()
-            {
-                {
-                    one(internalService).processDataSets(session2.getSessionToken(), "dsp1", Arrays.asList("ds1"));
-                }
-            });
-
-        service.processDataSets(SESSION_TOKEN, "abc", "dsp1", Arrays.asList("ds1"));
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testListExperiments()
-    {
-        prepareGetSession();
-        prepareLoginLogout(session2);
-        final Experiment e = new Experiment();
-        e.setId(42L);
-        e.setCode("E42");
-        Project project = new Project();
-        project.setCode("p");
-        Space space = new Space();
-        space.setCode("s");
-        project.setSpace(space);
-        e.setProject(project);
-        e.setRegistrationDate(new Date(4711));
-        EntityProperty p1 = new EntityProperty();
-        PropertyType propertyType = new PropertyType();
-        propertyType.setCode("ANSWER");
-        propertyType.setLabel("answer");
-        propertyType.setDataType(new DataType(DataTypeCode.INTEGER));
-        p1.setPropertyType(propertyType);
-        p1.setValue("42");
-        e.setProperties(Arrays.<IEntityProperty> asList(p1));
-        context.checking(new Expectations()
-            {
-                {
-                    one(internalService).listExperiments(session2.getSessionToken(), MS_SEARCH);
-                    will(returnValue(Arrays.asList(e)));
-                }
-            });
-
-        List<ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.Experiment> experiments =
-                service.listExperiments(SESSION_TOKEN, "abc", MS_SEARCH);
-
-        assertEquals(e.getId().longValue(), experiments.get(0).getId());
-        assertEquals(e.getCode(), experiments.get(0).getCode());
-        assertEquals(e.getProject().getCode(), experiments.get(0).getProjectCode());
-        assertEquals(e.getProject().getSpace().getCode(), experiments.get(0).getSpaceCode());
-        assertEquals(e.getRegistrationDate(), experiments.get(0).getRegistrationDate());
-        Map<PropertyKey, Serializable> properties = experiments.get(0).getProperties();
-        Set<Entry<PropertyKey, Serializable>> entrySet = properties.entrySet();
-        List<Entry<PropertyKey, Serializable>> list = new ArrayList<Entry<PropertyKey, Serializable>>(entrySet);
-        assertEquals(e.getProperties().get(0).getPropertyType().getCode(), list.get(0).getKey().getId());
-        assertEquals(e.getProperties().get(0).getPropertyType().getLabel(), list.get(0).getKey().getLabel());
-        Serializable value = list.get(0).getValue();
-        assertEquals(Long.class, value.getClass());
-        assertEquals(e.getProperties().get(0).getValue(), value.toString());
-        assertEquals(1, properties.size());
-        assertEquals(1, experiments.size());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testProcessSearchData()
-    {
-        prepareGetSession();
-        prepareLoginLogout(session2);
-        final long[] ids = new long[] { 42 };
-        context.checking(new Expectations()
-            {
-                {
-                    one(internalService).processProteinResultDataSets(session2.getSessionToken(),
-                            "dsp1", MS_SEARCH, ids);
-                }
-            });
-
-        service.processProteinResultDataSets(SESSION_TOKEN, "abc", "dsp1", MS_SEARCH, ids);
-
-        context.assertIsSatisfied();
-    }
-
-    private void prepareLoginLogout(final SessionContextDTO mySession)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(internalService).tryAuthenticate("abc", "dummy-password");
-                    will(returnValue(mySession));
-
-                    if (mySession != null)
-                    {
-                        one(internalService).logout(mySession.getSessionToken());
-                    }
-                }
-            });
-    }
-
-    private void checkProperties(Map<PropertyKey, Serializable> properties, IEntityProperty... expectedProperties)
-    {
-        for (IEntityProperty expectedProperty : expectedProperties)
-        {
-            PropertyType propertyType = expectedProperty.getPropertyType();
-            PropertyKey key = new PropertyKey(propertyType.getCode(), propertyType.getLabel());
-            Serializable v = properties.get(key);
-            assertNotNull("Missing property: " + key, v);
-            assertEquals("Property " + propertyType, expectedProperty.tryGetAsString(), String.valueOf(v));
-        }
-        assertEquals(expectedProperties.length, properties.size());
-    }
-
-    private IEntityProperty property(String code, DataTypeCode dataTypeCode, String value)
-    {
-        EntityProperty property = new EntityProperty();
-        PropertyType propertyType = new PropertyType();
-        propertyType.setCode(code.toUpperCase());
-        propertyType.setLabel(code);
-        propertyType.setDataType(new DataType(dataTypeCode));
-        property.setPropertyType(propertyType);
-        property.setValue(value);
-        return property;
-    }
-
-    private AbstractExternalData createDataSet(String type, long date)
-    {
-        AbstractExternalData dataSet = new ch.systemsx.cisd.openbis.generic.shared.basic.dto.PhysicalDataSet();
-        dataSet.setId(date);
-        dataSet.setCode(type + "-" + date);
-        dataSet.setDataSetType(new DataSetType(type));
-        dataSet.setRegistrationDate(new Date(date));
-        dataSet.setDataSetProperties(Arrays.asList(property("n", DataTypeCode.REAL, "2.5")));
-        return dataSet;
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ServerInterfaceRegressionTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ServerInterfaceRegressionTest.java
deleted file mode 100644
index 78a756dd9d2375be02653bdfd73f42f21c2c3e55..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/api/v1/ServerInterfaceRegressionTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2012 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.api.v1;
-
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.server.util.AnnotationAppliedTestCase;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ServerInterfaceRegressionTest extends AnnotationAppliedTestCase
-{
-    @Test
-    public void testServerAnnotations()
-    {
-        assertMandatoryMethodAnnotations(IProteomicsDataService.class, ProteomicsDataService.class,
-                "logout: RolesAllowed\n" + "tryToAuthenticateAtRawDataServer: RolesAllowed\n", null);
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/authorization/validator/RawDataSampleValidatorTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/authorization/validator/RawDataSampleValidatorTest.java
deleted file mode 100644
index 1252d2eb5b7ec40a5a1e3210ed0a8c8bdecf4c97..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/authorization/validator/RawDataSampleValidatorTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.authorization.validator;
-
-import java.util.Arrays;
-import java.util.LinkedHashSet;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.server.authorization.AuthorizationDataProvider;
-import ch.systemsx.cisd.openbis.generic.server.authorization.TestAuthorizationConfig;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.RoleAssignmentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class RawDataSampleValidatorTest extends AssertJUnit
-{
-
-    private static final MsInjectionSample NO_PARENT = create("no-parent", null);
-
-    private static final MsInjectionSample WITH_INSTANCE_PARENT = create("with-instance-parent", "/parent");
-
-    private static final MsInjectionSample WITH_PARENT_IN_G1 = create("with-parent-in-g1", "/g1/parent");
-
-    private static final MsInjectionSample WITH_PARENT_IN_G2 = create("with-parent-in-g2", "/g2/parent");
-
-    private Mockery context;
-
-    private RawDataSampleValidator validator;
-
-    private IDAOFactory daoFactory;
-
-    @BeforeMethod
-    protected void beforeMethod()
-    {
-        context = new Mockery();
-        daoFactory = context.mock(IDAOFactory.class);
-        validator = new RawDataSampleValidator();
-        validator.init(new AuthorizationDataProvider(daoFactory));
-    }
-
-    @AfterMethod
-    protected void afterMethod()
-    {
-        context.assertIsSatisfied();
-    }
-
-    private static MsInjectionSample create(String sampleCode, String parentSampleIdentifierOrNull)
-    {
-        Sample sample = new Sample();
-        sample.setCode(sampleCode);
-        if (parentSampleIdentifierOrNull != null)
-        {
-            Sample parent = new Sample();
-            parent.setIdentifier(parentSampleIdentifierOrNull);
-            SampleIdentifier identifier =
-                    SampleIdentifierFactory.parse(parentSampleIdentifierOrNull);
-            parent.setCode(identifier.getSampleCode());
-            SpaceIdentifier spaceLevel = identifier.getSpaceLevel();
-            if (spaceLevel != null)
-            {
-                Space space = new Space();
-                space.setCode(spaceLevel.getSpaceCode());
-                parent.setSpace(space);
-            }
-            sample.setGeneratedFrom(parent);
-        }
-        return new MsInjectionSample(sample, Arrays.<AbstractExternalData> asList());
-    }
-
-    @Test
-    public void testUserWithNoRights()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(daoFactory).getAuthorizationConfig();
-                    will(returnValue(new TestAuthorizationConfig(false, false)));
-                }
-            });
-
-        PersonPE person = createPersonWithRoles();
-
-        assertEquals(false, validator.isValid(person, NO_PARENT));
-        assertEquals(true, validator.isValid(person, WITH_INSTANCE_PARENT));
-        assertEquals(false, validator.isValid(person, WITH_PARENT_IN_G1));
-        assertEquals(false, validator.isValid(person, WITH_PARENT_IN_G2));
-    }
-
-    @Test
-    public void testUserWithRightsForGroupG1()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(daoFactory).getAuthorizationConfig();
-                    will(returnValue(new TestAuthorizationConfig(false, false)));
-                }
-            });
-
-        PersonPE person = createPersonWithRoles(createRole("G1"));
-
-        assertEquals(false, validator.isValid(person, NO_PARENT));
-        assertEquals(true, validator.isValid(person, WITH_INSTANCE_PARENT));
-        assertEquals(true, validator.isValid(person, WITH_PARENT_IN_G1));
-        assertEquals(false, validator.isValid(person, WITH_PARENT_IN_G2));
-    }
-
-    @Test
-    public void testUserWithRightsForGroupG1AndG2()
-    {
-        PersonPE person = createPersonWithRoles(createRole("G1"), createRole("G2"));
-
-        assertEquals(false, validator.isValid(person, NO_PARENT));
-        assertEquals(true, validator.isValid(person, WITH_INSTANCE_PARENT));
-        assertEquals(true, validator.isValid(person, WITH_PARENT_IN_G1));
-        assertEquals(true, validator.isValid(person, WITH_PARENT_IN_G2));
-    }
-
-    @Test
-    public void testUserWithRightsForForInstanceT()
-    {
-        PersonPE person = createPersonWithRoles(createRole(null));
-
-        assertEquals(false, validator.isValid(person, NO_PARENT));
-        assertEquals(true, validator.isValid(person, WITH_INSTANCE_PARENT));
-        assertEquals(true, validator.isValid(person, WITH_PARENT_IN_G1));
-        assertEquals(true, validator.isValid(person, WITH_PARENT_IN_G2));
-    }
-
-    private PersonPE createPersonWithRoles(RoleAssignmentPE... roles)
-    {
-        PersonPE person = new PersonPE();
-        person.setRoleAssignments(new LinkedHashSet<RoleAssignmentPE>(Arrays.asList(roles)));
-        return person;
-    }
-
-    private RoleAssignmentPE createRole(String groupCodeOrNull)
-    {
-        RoleAssignmentPE role = new RoleAssignmentPE();
-        role.setRole(RoleCode.ADMIN);
-        
-        if (groupCodeOrNull != null)
-        {
-            SpacePE group = new SpacePE();
-            group.setCode(groupCodeOrNull);
-            role.setSpace(group);
-        }
-        return role;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBOTestCase.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBOTestCase.java
deleted file mode 100644
index df0bba52ee2ddc8aa8422e1dd7160aa262e0851d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBOTestCase.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import org.testng.annotations.BeforeMethod;
-
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-
-/**
- * @author Franz-Josef Elmer
- */
-public abstract class AbstractBOTestCase extends AbstractServerTestCase
-{
-    protected IPhosphoNetXDAOFactory specificDAOFactory;
-
-    protected IProteinQueryDAO proteinDAO;
-
-    @Override
-    @BeforeMethod
-    public void setUp()
-    {
-        super.setUp();
-        specificDAOFactory = context.mock(IPhosphoNetXDAOFactory.class);
-        proteinDAO = context.mock(IProteinQueryDAO.class);
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractLoaderTestCase.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractLoaderTestCase.java
deleted file mode 100644
index b8ea7079891d2f24d62db22a207b3f697430bdff..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractLoaderTestCase.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.annotation.Rollback;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.transaction.annotation.Transactional;
-
-import ch.systemsx.cisd.authentication.Principal;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.ICommonBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.AbstractDAOWithoutContextTest;
-import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-
-/**
- * @author Franz-Josef Elmer
- */
-@ContextConfiguration(locations = "classpath:proteomics-applicationContext.xml")
-// In 'commonContext.xml', our transaction manager is called 'transaction-manager' (by default
-// Spring looks for 'transactionManager').
-@Transactional(transactionManager = "transaction-manager")
-@Rollback
-public abstract class AbstractLoaderTestCase extends AbstractDAOWithoutContextTest
-{
-    private static final Principal PRINCIPAL = new Principal(CommonTestUtils.USER_ID, "john",
-            "doe", "j@d");
-
-    private static final String SESSION_TOKEN = "session-token";
-
-    protected ICommonBusinessObjectFactory boFactory;
-
-    @Autowired
-    public final void setBoFactory(final ICommonBusinessObjectFactory boFactory)
-    {
-        this.boFactory = boFactory;
-    }
-
-    protected Session session()
-    {
-        return new Session(CommonTestUtils.USER_ID, SESSION_TOKEN,
-                PRINCIPAL, "remote-host", 1);
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceColumnDefinitionTableTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceColumnDefinitionTableTest.java
deleted file mode 100644
index eb09955054bcdf837ac971d1e726db3e93fb132c..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceColumnDefinitionTableTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.server.business.TreatmentFinder.TREATMENT_TYPE_CODE;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.server.business.TreatmentFinder.TREATMENT_VALUE_CODE;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.AbundanceColumnDefinitionTable;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class AbundanceColumnDefinitionTableTest extends AbstractServerTestCase
-{
-    private IPhosphoNetXDAOFactory phosphoNetXDAOFactory;
-
-    private AbundanceColumnDefinitionTable table;
-
-    @Override
-    @BeforeMethod
-    public void setUp()
-    {
-        super.setUp();
-        phosphoNetXDAOFactory = context.mock(IPhosphoNetXDAOFactory.class);
-        table = new AbundanceColumnDefinitionTable(daoFactory, phosphoNetXDAOFactory, session);
-    }
-
-    @Test
-    public void testNoAbundanceColumns()
-    {
-        List<AbundanceColumnDefinition> definitions = table.getSortedAndAggregatedDefinitions(null);
-
-        assertEquals(0, definitions.size());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testOneAbundanceColumnWithoutTreatment()
-    {
-        Sample s1 = createSample(42);
-
-        table.add(s1);
-        List<AbundanceColumnDefinition> definitions = table.getSortedAndAggregatedDefinitions(null);
-
-        assertEquals(1, definitions.size());
-        assertEquals(42l, definitions.get(0).getID());
-        assertEquals("code-42", definitions.get(0).getSampleCode());
-        assertEquals(0, definitions.get(0).getTreatments().size());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testOneAbundanceColumnWithOneTreatment()
-    {
-        Sample s1 = createSample(42);
-        addTreatment(s1, "", "abc");
-
-        table.add(s1);
-        List<AbundanceColumnDefinition> definitions = table.getSortedAndAggregatedDefinitions(null);
-
-        assertEquals(1, definitions.size());
-        assertEquals(42l, definitions.get(0).getID());
-        assertEquals("code-42", definitions.get(0).getSampleCode());
-        assertEquals(1, definitions.get(0).getTreatments().size());
-        assertEquals("pH", definitions.get(0).getTreatments().get(0).getType());
-        assertEquals("PH", definitions.get(0).getTreatments().get(0).getTypeCode());
-        assertEquals("abc", definitions.get(0).getTreatments().get(0).getValue());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testAbundanceColumnsForTwoSamplesWithSameParent()
-    {
-        Sample s1 = createSample(42);
-        Sample s2 = createSample(43);
-        Sample parent = createSample(4711);
-        s1.setGeneratedFrom(parent);
-        s2.setGeneratedFrom(parent);
-        addTreatment(parent, "", "abc");
-
-        table.add(s1);
-        table.add(s2);
-        List<AbundanceColumnDefinition> definitions = table.getSortedAndAggregatedDefinitions(null);
-
-        assertEquals(1, definitions.size());
-        assertEquals(4711l, definitions.get(0).getID());
-        assertEquals("code-4711", definitions.get(0).getSampleCode());
-        assertEquals(1, definitions.get(0).getTreatments().size());
-        assertEquals("pH", definitions.get(0).getTreatments().get(0).getType());
-        assertEquals("PH", definitions.get(0).getTreatments().get(0).getTypeCode());
-        assertEquals("abc", definitions.get(0).getTreatments().get(0).getValue());
-
-        context.assertIsSatisfied();
-    }
-
-    private Sample createSample(long sampleID)
-    {
-        Sample sample = new Sample();
-        sample.setId(sampleID);
-        sample.setCode("code-" + sampleID);
-        sample.setPermId("abc-" + sampleID);
-        sample.setProperties(Collections.<IEntityProperty> emptyList());
-        return sample;
-    }
-
-    private void addTreatment(Sample sample, String type, String value)
-    {
-        List<IEntityProperty> properties = new ArrayList<IEntityProperty>();
-        EntityProperty sampleProperty = new EntityProperty();
-        sampleProperty.setPropertyType(createPropertyType(TREATMENT_TYPE_CODE + type));
-        VocabularyTerm term = new VocabularyTerm();
-        term.setCode("PH");
-        term.setLabel("pH");
-        sampleProperty.setVocabularyTerm(term);
-        properties.add(sampleProperty);
-
-        sampleProperty = new EntityProperty();
-        sampleProperty.setPropertyType(createPropertyType(TREATMENT_VALUE_CODE + type));
-        sampleProperty.setValue(value);
-        properties.add(sampleProperty);
-
-        sample.setProperties(properties);
-    }
-
-    private PropertyType createPropertyType(String code)
-    {
-        PropertyType propertyType = new PropertyType();
-        propertyType.setCode(code);
-        DataType dataType = new DataType();
-        dataType.setCode(DataTypeCode.VARCHAR);
-        propertyType.setDataType(dataType);
-        return propertyType;
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceManagerTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceManagerTest.java
deleted file mode 100644
index 34fe966b910c9c43988ce98685bfdec65b96c0c9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbundanceManagerTest.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-
-import org.jmock.Expectations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.AbundanceManager;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.ISampleProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinAbundance;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReferenceWithProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinWithAbundances;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class AbundanceManagerTest extends AbstractServerTestCase
-{
-    private static final String PERM_ID1 = "s101";
-
-    private static final String PERM_ID2 = "s102";
-
-    private static final long SAMPLE_ID_A = 42;
-
-    private static final long SAMPLE_ID_B = 4711;
-
-    private AbundanceManager abundanceManager;
-
-    private ISampleProvider sampleProvider;
-
-    @Override
-    @BeforeMethod
-    public void setUp()
-    {
-        super.setUp();
-
-        sampleProvider = context.mock(ISampleProvider.class);
-        abundanceManager = new AbundanceManager(sampleProvider);
-    }
-
-    @Test
-    public void testNoProteinReferenceHandled()
-    {
-        assertEquals(0, abundanceManager.getSampleIDs().size());
-        assertEquals(0, abundanceManager.getProteinsWithAbundances().size());
-    }
-
-    @Test
-    public void testHandleTwoProteinReferencesButOnlyOneHasAnAbundance()
-    {
-        prepareSampleIDProvider();
-        ProteinReferenceWithProtein protein1 = new ProteinReferenceWithProtein();
-        protein1.setId(1);
-        protein1.setAccessionNumber("abc1");
-        protein1.setDescription("abc one");
-        ProteinAbundance proteinAbundance = new ProteinAbundance();
-        proteinAbundance.setSampleID(PERM_ID1);
-        proteinAbundance.setAbundance(1.5);
-        abundanceManager.handle(protein1, Collections.singletonList(proteinAbundance));
-        ProteinReferenceWithProtein protein2 = new ProteinReferenceWithProtein();
-        protein2.setId(2);
-        protein2.setAccessionNumber("abc2");
-        protein2.setDescription("abc two");
-        abundanceManager.handle(protein2, null);
-
-        assertEquals(1, abundanceManager.getSampleIDs().size());
-        Collection<ProteinWithAbundances> proteinsWithAbundances = abundanceManager.getProteinsWithAbundances();
-        assertEquals(2, proteinsWithAbundances.size());
-        Iterator<ProteinWithAbundances> iterator = proteinsWithAbundances.iterator();
-        ProteinWithAbundances p1 = iterator.next();
-        assertEquals(1, p1.getId());
-        assertEquals("abc one", p1.getDescription());
-        assertEquals("abc1", p1.getAccessionNumber());
-        assertEquals(1, p1.getSampleIDs().size());
-        assertEquals(SAMPLE_ID_A, p1.getSampleIDs().iterator().next().longValue());
-        assertEquals(0, p1.getAbundancesForSample(12345678).length);
-        assertEquals(1, p1.getAbundancesForSample(SAMPLE_ID_A).length);
-        assertEquals(1.5, p1.getAbundancesForSample(SAMPLE_ID_A)[0]);
-        ProteinWithAbundances p2 = iterator.next();
-        assertEquals(2, p2.getId());
-        assertEquals("abc two", p2.getDescription());
-        assertEquals("abc2", p2.getAccessionNumber());
-        assertEquals(0, p2.getSampleIDs().size());
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testHandleProteinReferencesWithManyAbundancesForTwoSamples()
-    {
-        prepareSampleIDProvider();
-        ProteinReferenceWithProtein protein1 = new ProteinReferenceWithProtein();
-        protein1.setId(1);
-        protein1.setAccessionNumber("abc1");
-        protein1.setDescription("abc one");
-
-        abundanceManager.handle(protein1, Arrays.asList(a(PERM_ID1, 1.5), a(PERM_ID1, 2.25), a(
-                PERM_ID2, 42), a(PERM_ID2, 4.75), a(PERM_ID2, 7.5)));
-
-        assertEquals(2, abundanceManager.getSampleIDs().size());
-        Collection<ProteinWithAbundances> proteinsWithAbundances = abundanceManager.getProteinsWithAbundances();
-        assertEquals(1, proteinsWithAbundances.size());
-        ProteinWithAbundances protein = proteinsWithAbundances.iterator().next();
-        assertEquals(1, protein.getId());
-        assertEquals("abc one", protein.getDescription());
-        assertEquals("abc1", protein.getAccessionNumber());
-        assertEquals(2, protein.getSampleIDs().size());
-        Iterator<Long> iterator = protein.getSampleIDs().iterator();
-        assertEquals(SAMPLE_ID_A, iterator.next().longValue());
-        assertEquals(SAMPLE_ID_B, iterator.next().longValue());
-        assertEquals(2, protein.getAbundancesForSample(SAMPLE_ID_A).length);
-        assertEquals(1.5, protein.getAbundancesForSample(SAMPLE_ID_A)[0]);
-        assertEquals(2.25, protein.getAbundancesForSample(SAMPLE_ID_A)[1]);
-        assertEquals(3, protein.getAbundancesForSample(SAMPLE_ID_B).length);
-        assertEquals(42.0, protein.getAbundancesForSample(SAMPLE_ID_B)[0]);
-        assertEquals(4.75, protein.getAbundancesForSample(SAMPLE_ID_B)[1]);
-        assertEquals(7.5, protein.getAbundancesForSample(SAMPLE_ID_B)[2]);
-
-        context.assertIsSatisfied();
-    }
-
-    private void prepareSampleIDProvider()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(sampleProvider).getSample(PERM_ID1);
-                    Sample s1 = new Sample();
-                    s1.setId(SAMPLE_ID_A);
-                    will(returnValue(s1));
-                    allowing(sampleProvider).getSample(PERM_ID2);
-                    Sample s2 = new Sample();
-                    Sample parent = new Sample();
-                    parent.setId(SAMPLE_ID_B);
-                    s2.setGeneratedFrom(parent);
-                    will(returnValue(s2));
-                }
-            });
-    }
-
-    private ProteinAbundance a(String samplePermID, double abundance)
-    {
-        ProteinAbundance protein = new ProteinAbundance();
-        protein.setSampleID(samplePermID);
-        protein.setAbundance(abundance);
-        return protein;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AccessionNumberBuilderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AccessionNumberBuilderTest.java
deleted file mode 100644
index 4a881fe08b1375f1e66f6a0de79cb44c422a6805..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AccessionNumberBuilderTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.AccessionNumberBuilder;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class AccessionNumberBuilderTest extends AssertJUnit
-{
-    @Test
-    public void test()
-    {
-        check(null, "", "");
-        check(null, "abc", "abc");
-        check(null, "DECOY_abc", "DECOY_abc");
-        check("", "abc", "|abc");
-        check("", "DECOY_abc", "DECOY_|abc");
-        check("", "ab", "|ab|c");
-        check("a", "b", "a|b");
-        check("a", "DECOY_b", "DECOY_a|b");
-        check("a", "DECOY_b", "DECOY_a|DECOY_b");
-        check("a", "b", "a|b|c");
-        check("a", "DECOY_b", "DECOY_a|b|c");
-        check("a", "DECOY_b", "DECOY_a|DECOY_b|c");
-        check("a", "", "a||c");
-        check("a", "DECOY_", "DECOY_a||c");
-        check("", "", "||c");
-        check("", "", "||");
-        check("", "", "|");
-    }
-
-    private void check(String expectedType, String expectedAccessionNumber, String fullAccessionNumber)
-    {
-        AccessionNumberBuilder builder = new AccessionNumberBuilder(fullAccessionNumber);
-        assertEquals(expectedType, builder.getTypeOrNull());
-        assertEquals(expectedAccessionNumber, builder.getAccessionNumber());
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModelTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModelTest.java
deleted file mode 100644
index 394afd559d3063441f30f29a44eed4b91a992055..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModelTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.common.eodsql.MockDataSet;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IdentifiedProtein;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProbabilityFDRMapping;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ErrorModelTest extends AssertJUnit
-{
-    private static final double TOL = 1e-6;
-
-    private static final long DATA_SET1_ID = 42;
-
-    private static final long DATA_SET2_ID = 43;
-
-    private static final long DATA_SET3_ID = 44;
-
-    private Mockery context;
-
-    private IProteinQueryDAO proteinQueryDAO;
-
-    private ErrorModel errorModel;
-
-    @BeforeMethod
-    public void beforeMethod()
-    {
-        context = new Mockery();
-        proteinQueryDAO = context.mock(IProteinQueryDAO.class);
-        errorModel = new ErrorModel(proteinQueryDAO);
-        context.checking(new Expectations()
-            {
-                {
-
-                    atMost(1).of(proteinQueryDAO).getProbabilityFDRMapping(DATA_SET1_ID);
-                    MockDataSet<ProbabilityFDRMapping> dataSet1 = new MockDataSet<ProbabilityFDRMapping>();
-                    createEntry(dataSet1, 0.4, 0.9);
-                    createEntry(dataSet1, 0.5, 0.95);
-                    will(returnValue(dataSet1));
-
-                    atMost(1).of(proteinQueryDAO).getProbabilityFDRMapping(DATA_SET2_ID);
-                    MockDataSet<ProbabilityFDRMapping> dataSet2 = new MockDataSet<ProbabilityFDRMapping>();
-                    createEntry(dataSet2, 1, 1);
-                    createEntry(dataSet2, 0.4, 0.9);
-                    createEntry(dataSet2, 0.1, 0.7);
-                    createEntry(dataSet2, 0.0, 0.6);
-                    will(returnValue(dataSet2));
-
-                    atMost(1).of(proteinQueryDAO).getProbabilityFDRMapping(DATA_SET3_ID);
-                    MockDataSet<ProbabilityFDRMapping> dataSet3 = new MockDataSet<ProbabilityFDRMapping>();
-                    will(returnValue(dataSet3));
-                }
-            });
-    }
-
-    @AfterMethod
-    public void afterMethod()
-    {
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testExact()
-    {
-        IdentifiedProtein protein = create(DATA_SET1_ID, 0.4);
-        errorModel.setFalseDiscoveryRateFor(protein);
-
-        assertEquals(0.9, protein.getFalseDiscoveryRate(), TOL);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testInterpolation()
-    {
-        IdentifiedProtein protein = create(DATA_SET1_ID, 0.42);
-        errorModel.setFalseDiscoveryRateFor(protein);
-
-        assertEquals(0.91, protein.getFalseDiscoveryRate(), TOL);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testCachedMapping()
-    {
-        IdentifiedProtein protein = create(DATA_SET1_ID, 0.42);
-        errorModel.setFalseDiscoveryRateFor(protein);
-
-        assertEquals(0.91, protein.getFalseDiscoveryRate(), TOL);
-
-        protein = create(DATA_SET2_ID, 0.25);
-        errorModel.setFalseDiscoveryRateFor(protein);
-
-        assertEquals(0.8, protein.getFalseDiscoveryRate(), TOL);
-
-        protein = create(DATA_SET1_ID, 0.5);
-        errorModel.setFalseDiscoveryRateFor(protein);
-
-        assertEquals(0.95, protein.getFalseDiscoveryRate(), TOL);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testNoMappings()
-    {
-        IdentifiedProtein protein = create(DATA_SET3_ID, 0.2);
-
-        errorModel.setFalseDiscoveryRateFor(protein);
-
-        double falseDiscoveryRate = protein.getFalseDiscoveryRate();
-        assertTrue("unexpected FDR: " + falseDiscoveryRate, Double.isNaN(falseDiscoveryRate));
-    }
-
-    private IdentifiedProtein create(long dataSetID, double probability)
-    {
-        IdentifiedProtein protein = new IdentifiedProtein();
-        protein.setDataSetID(dataSetID);
-        protein.setProbability(probability);
-        return protein;
-    }
-
-    private void createEntry(MockDataSet<ProbabilityFDRMapping> dataSet, double propability,
-            double falseDiscoveryRate)
-    {
-        ProbabilityFDRMapping mapping = new ProbabilityFDRMapping();
-        mapping.setProbability(propability);
-        mapping.setFalseDiscoveryRate(falseDiscoveryRate);
-        dataSet.add(mapping);
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ExperimentLoaderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ExperimentLoaderTest.java
deleted file mode 100644
index 3f7b6ad988774e5f6aca5357ed05e99d677df2f9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ExperimentLoaderTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import static org.testng.AssertJUnit.assertEquals;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.server.TestJythonEvaluatorPool;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleDAO;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.managed_property.ManagedPropertyEvaluatorFactory;
-import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTranslator;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Test(groups = "db")
-public class ExperimentLoaderTest extends AbstractLoaderTestCase
-{
-    @Test
-    public void test()
-    {
-        ExperimentLoader loader =
-                new ExperimentLoader(daoFactory, new ManagedPropertyEvaluatorFactory(null, new TestJythonEvaluatorPool()));
-        List<Sample> samples = loadSamples(980L, 981L, 986L);
-
-        loader.enrichWithExperiments(session(), samples);
-
-        StringBuilder builder = new StringBuilder();
-        for (Sample sample : samples)
-        {
-            builder.append(sample.getId()).append(' ').append(sample.getCode());
-            Experiment experiment = sample.getExperiment();
-            if (experiment != null)
-            {
-                builder.append(": ").append(experiment.getCode()).append(' ');
-                builder.append(getSortedProperties(experiment));
-            }
-            builder.append('\n');
-        }
-        assertEquals("980 3V-126\n" + "981 DP\n"
-                + "986 3VCP5: EXP10 [DESCRIPTION: A simple experiment, GENDER: MALE]\n",
-                builder.toString());
-    }
-
-    private List<Sample> loadSamples(Long... ids)
-    {
-        ISampleDAO sampleDAO = daoFactory.getSampleDAO();
-        List<Sample> list = new ArrayList<Sample>();
-        for (Long id : ids)
-        {
-            list.add(SampleTranslator.translate(sampleDAO.tryGetByTechId(new TechId(id)), "", null,
-                    new ManagedPropertyEvaluatorFactory(null, new TestJythonEvaluatorPool()), null));
-
-        }
-        return list;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTableTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTableTest.java
deleted file mode 100644
index 3c2741cf5b658882a3ab1ab0ac02d73b30e4f062..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTableTest.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import it.unimi.dsi.fastutil.longs.LongArraySet;
-import it.unimi.dsi.fastutil.longs.LongSet;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Map;
-
-import net.lemnik.eodsql.DataSet;
-
-import org.jmock.Expectations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.common.eodsql.MockDataSet;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinInfo;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProbabilityFDRMapping;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinAbundance;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReferenceWithProtein;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinInfoTableTest extends AbstractBOTestCase
-{
-    private static final double COVERAGE = 0.5;
-
-    private static final String PERM_ID_PREFIX = "abc-";
-
-    private static final long SAMPLE_ID_3 = 211L;
-
-    private static final long SAMPLE_ID_2 = 102L;
-
-    private static final long SAMPLE_ID_1 = 101L;
-
-    private static final Double ABUNDANCE = new Double(47.11);
-
-    private static final long PROTEIN_ID = 4141L;
-
-    private static final long PROTEIN_REFERENCE_ID = 41L;
-
-    private static final String SAMPLE_PERM_ID = "s47-11";
-
-    private static final long SAMPLE_ID = 4711;
-
-    private static final long DATA_SET_ID = 42L;
-
-    private static final TechId EXPERIMENT_ID = new TechId(234L);
-
-    private static final String EXPERIMENT_PERM_ID = "abc-234";
-
-    private static final double FALSE_DISCOVERY_RATE = 0.25;
-
-    private static final String ACCESSION_NUMBER = "ABC123";
-
-    private ProteinInfoTable table;
-
-    private ArrayList<AbundanceColumnDefinition> definitions;
-
-    private ISampleProvider sampleProvider;
-
-    @Override
-    @BeforeMethod
-    public void setUp()
-    {
-        super.setUp();
-        sampleProvider = context.mock(ISampleProvider.class);
-        table = new ProteinInfoTable(daoFactory, specificDAOFactory, session, sampleProvider);
-        definitions = new ArrayList<AbundanceColumnDefinition>();
-        definitions.add(create(SAMPLE_ID_1, SAMPLE_ID_2));
-        definitions.add(create(SAMPLE_ID_3));
-    }
-
-    private AbundanceColumnDefinition create(long... ids)
-    {
-        AbundanceColumnDefinition definition = new AbundanceColumnDefinition();
-        for (long id : ids)
-        {
-            definition.addSampleID(id);
-        }
-        return definition;
-    }
-
-    @Test
-    public void testLoadLeadingToAnEmptyTable()
-    {
-        prepareGetProteinQueryDAO(EXPERIMENT_PERM_ID);
-        MockDataSet<ProteinReferenceWithProtein> proteinReferences = new MockDataSet<ProteinReferenceWithProtein>();
-        MockDataSet<ProteinAbundance> proteinAbundances = new MockDataSet<ProteinAbundance>();
-        prepareLoadDataSet(proteinReferences, proteinAbundances);
-
-        table.load(Arrays.<AbundanceColumnDefinition> asList(), EXPERIMENT_ID,
-                FALSE_DISCOVERY_RATE, AggregateFunction.MEAN, false);
-
-        assertEquals(0, table.getProteinInfos().size());
-
-        assertEquals(true, proteinReferences.hasCloseBeenInvoked());
-        assertEquals(true, proteinAbundances.hasCloseBeenInvoked());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testSimpleLoad()
-    {
-        prepareGetProteinQueryDAO(EXPERIMENT_PERM_ID);
-        MockDataSet<ProteinReferenceWithProtein> proteinReferences =
-                new MockDataSet<ProteinReferenceWithProtein>();
-        MockDataSet<ProteinAbundance> abundances = new MockDataSet<ProteinAbundance>();
-        ProteinReferenceWithProtein proteinReference = new ProteinReferenceWithProtein();
-        proteinReference.setDataSetID(DATA_SET_ID);
-        proteinReference.setProteinID(PROTEIN_ID);
-        proteinReference.setAccessionNumber(ACCESSION_NUMBER);
-        proteinReference.setId(PROTEIN_REFERENCE_ID);
-        proteinReferences.add(proteinReference);
-        ProteinAbundance proteinAbundance = new ProteinAbundance();
-        proteinAbundance.setId(PROTEIN_ID);
-        proteinAbundance.setAbundance(ABUNDANCE);
-        proteinAbundance.setSampleID(SAMPLE_PERM_ID);
-        abundances.add(proteinAbundance);
-        proteinReference = new ProteinReferenceWithProtein();
-        proteinReference.setProteinID(PROTEIN_ID);
-        proteinReference.setId(PROTEIN_REFERENCE_ID);
-        proteinReference.setProbability(1);
-        proteinReference.setDataSetID(DATA_SET_ID);
-        proteinReferences.add(proteinReference);
-        final MockDataSet<ProbabilityFDRMapping> mappings = new MockDataSet<ProbabilityFDRMapping>();
-        mappings.add(new ProbabilityFDRMapping());
-        ProbabilityFDRMapping mapping = new ProbabilityFDRMapping();
-        mapping.setProbability(1);
-        mapping.setFalseDiscoveryRate(1);
-        mappings.add(mapping);
-        prepareLoadDataSet(proteinReferences, abundances);
-        context.checking(new Expectations()
-            {
-                {
-                    one(proteinDAO).getProbabilityFDRMapping(DATA_SET_ID);
-                    will(returnValue(mappings));
-
-                    one(sampleProvider).getSample(SAMPLE_PERM_ID);
-                    Sample sample = new Sample();
-                    Sample parent = new Sample();
-                    parent.setId(SAMPLE_ID);
-                    sample.setGeneratedFrom(parent);
-                    will(returnValue(sample));
-                }
-            });
-
-        table.load(Arrays.<AbundanceColumnDefinition> asList(), EXPERIMENT_ID,
-                FALSE_DISCOVERY_RATE, AggregateFunction.MEAN, false);
-
-        Collection<ProteinInfo> proteins = table.getProteinInfos();
-        assertEquals(1, proteins.size());
-        ProteinInfo protein = proteins.iterator().next();
-        assertEquals(PROTEIN_REFERENCE_ID, protein.getId().getId().longValue());
-        assertEquals(ACCESSION_NUMBER, protein.getAccessionNumber());
-
-        assertEquals(true, proteinReferences.hasCloseBeenInvoked());
-        assertEquals(true, mappings.hasCloseBeenInvoked());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testLoadWithAggregationOnOriginal()
-    {
-        checkAggregationType(2.0, true);
-    }
-
-    @Test
-    public void testLoadWithAggregationOnAggregation()
-    {
-        checkAggregationType(2.25, false);
-    }
-
-    private void checkAggregationType(double expectedAbundance, boolean aggregateOriginal)
-    {
-        prepareGetProteinQueryDAO(EXPERIMENT_PERM_ID);
-        final MockDataSet<ProteinReferenceWithProtein> proteinReferences =
-                new MockDataSet<ProteinReferenceWithProtein>();
-        ProteinReferenceWithProtein proteinReference = new ProteinReferenceWithProtein();
-        proteinReference.setProteinID(PROTEIN_ID);
-        proteinReference.setDataSetID(DATA_SET_ID);
-        proteinReference.setAccessionNumber(ACCESSION_NUMBER);
-        proteinReference.setId(PROTEIN_REFERENCE_ID);
-        proteinReference.setCoverage(COVERAGE);
-        proteinReferences.add(proteinReference);
-        MockDataSet<ProteinAbundance> proteinAbundances = new MockDataSet<ProteinAbundance>();
-        proteinAbundances.add(createProteinAbundance(SAMPLE_ID_1, 1));
-        proteinAbundances.add(createProteinAbundance(SAMPLE_ID_1, 2));
-        proteinAbundances.add(createProteinAbundance(SAMPLE_ID_2, 3));
-        proteinAbundances.add(createProteinAbundance(SAMPLE_ID_3, 20));
-        final MockDataSet<ProbabilityFDRMapping> mappings = new MockDataSet<ProbabilityFDRMapping>();
-        mappings.add(new ProbabilityFDRMapping());
-        ProbabilityFDRMapping mapping = new ProbabilityFDRMapping();
-        mapping.setProbability(1);
-        mapping.setFalseDiscoveryRate(1);
-        mappings.add(mapping);
-        prepareLoadDataSet(proteinReferences, proteinAbundances);
-        context.checking(new Expectations()
-            {
-                {
-                    one(proteinDAO).getProbabilityFDRMapping(DATA_SET_ID);
-                    will(returnValue(mappings));
-
-                    for (long id : new long[] { SAMPLE_ID_1, SAMPLE_ID_2, SAMPLE_ID_3 })
-                    {
-                        atLeast(1).of(sampleProvider).getSample(PERM_ID_PREFIX + id);
-                        Sample sample = new Sample();
-                        sample.setId(id);
-                        will(returnValue(sample));
-                    }
-                }
-            });
-
-        table.load(definitions, EXPERIMENT_ID,
-                FALSE_DISCOVERY_RATE, AggregateFunction.MEAN, aggregateOriginal);
-
-        Collection<ProteinInfo> proteins = table.getProteinInfos();
-        assertEquals(1, proteins.size());
-        ProteinInfo protein = proteins.iterator().next();
-        assertEquals(PROTEIN_REFERENCE_ID, protein.getId().getId().longValue());
-        assertEquals(ACCESSION_NUMBER, protein.getAccessionNumber());
-        Map<Long, Double> abundances = protein.getAbundances();
-        assertEquals(2, abundances.size());
-        assertEquals(expectedAbundance, abundances.get(SAMPLE_ID_1 * 37 + SAMPLE_ID_2).doubleValue());
-        assertEquals(20.0, abundances.get(SAMPLE_ID_3).doubleValue());
-        assertEquals(100 * COVERAGE, protein.getCoverage());
-
-        assertEquals(true, proteinReferences.hasCloseBeenInvoked());
-        assertEquals(true, mappings.hasCloseBeenInvoked());
-        context.assertIsSatisfied();
-    }
-
-    private void prepareGetProteinQueryDAO(final String experimentPermID)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(specificDAOFactory).getProteinQueryDAO(experimentPermID);
-                    will(returnValue(proteinDAO));
-                }
-            });
-    }
-
-    private void prepareLoadDataSet(
-            final MockDataSet<ProteinReferenceWithProtein> proteinReferences,
-            final DataSet<ProteinAbundance> proteinAbundances)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(experimentDAO).getByTechId(EXPERIMENT_ID);
-                    ExperimentPE experimentPE = new ExperimentPE();
-                    experimentPE.setPermId(EXPERIMENT_PERM_ID);
-                    will(returnValue(experimentPE));
-
-                    one(proteinDAO).listProteinReferencesByExperiment(EXPERIMENT_PERM_ID);
-                    will(returnValue(proteinReferences));
-
-                    LongSet proteinIDs = new LongArraySet();
-                    for (ProteinReferenceWithProtein p : proteinReferences)
-                    {
-                        proteinIDs.add(p.getProteinID());
-                    }
-                    one(proteinDAO).listProteinWithAbundanceByExperiment(proteinIDs);
-                    will(returnValue(proteinAbundances));
-                }
-            });
-    }
-
-    private ProteinAbundance createProteinAbundance(long sampleID, double abundance)
-    {
-        ProteinAbundance proteinAbundance = new ProteinAbundance();
-        proteinAbundance.setSampleID(PERM_ID_PREFIX + sampleID);
-        proteinAbundance.setId(PROTEIN_ID);
-        proteinAbundance.setAbundance(abundance);
-        return proteinAbundance;
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTableTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTableTest.java
deleted file mode 100644
index 66e5a0a788eab2c5df8f2c0bcc5f9522e8ec69da..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTableTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright 2011 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.List;
-
-import org.jmock.Expectations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.common.eodsql.MockDataSet;
-import ch.systemsx.cisd.openbis.generic.server.TestJythonEvaluatorPool;
-import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PropertyTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SampleTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.builders.EntityTypePropertyTypePEBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.dto.builders.SamplePEBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.dto.builders.SampleTypePEBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.dto.builders.SpacePEBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.managed_property.ManagedPropertyEvaluatorFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinRelatedSample;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.SampleAbundance;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.SamplePeptideModification;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinRelatedSampleTableTest extends AbstractBOTestCase
-{
-    private ProteinRelatedSampleTable table;
-
-    private SamplePE sample1;
-
-    private SamplePE sample2;
-
-    private SamplePE sample3;
-
-    @Override
-    @BeforeMethod
-    public void setUp()
-    {
-        super.setUp();
-        table =
-                new ProteinRelatedSampleTable(daoFactory, specificDAOFactory,
-                        new ManagedPropertyEvaluatorFactory(null, new TestJythonEvaluatorPool()));
-
-        SpacePE space =
-                new SpacePEBuilder()
-                        .code("s")
-                        .getSpace();
-        SampleTypePEBuilder sampleTypeBuilder = new SampleTypePEBuilder().code("my-type");
-        PropertyTypePE propertyType =
-                CommonTestUtils.createPropertyType("A", DataTypeCode.VARCHAR, null, null);
-        EntityTypePropertyTypePEBuilder e = sampleTypeBuilder.assign(propertyType);
-        EntityTypePropertyTypePE etpt = e.getEntityTypePropertyType();
-        SampleTypePE sampleType = sampleTypeBuilder.getSampleType();
-        sample1 =
-                new SamplePEBuilder(1).space(space).code("S1").permID("s-1").type(sampleType)
-                        .property(etpt, "hello").getSample();
-        sample2 =
-                new SamplePEBuilder(2).space(space).code("S2").permID("s-2").type(sampleType)
-                        .getSample();
-        sample3 =
-                new SamplePEBuilder(3).space(space).code("S3").permID("s-3").type(sampleType)
-                        .getSample();
-    }
-
-    @Test
-    public void test()
-    {
-        final TechId experimentID = new TechId(42);
-        final TechId proteinReferenceID = new TechId(43);
-        context.checking(new Expectations()
-            {
-                {
-                    one(specificDAOFactory).getProteinQueryDAO(experimentID);
-                    will(returnValue(proteinDAO));
-
-                    one(experimentDAO).getByTechId(experimentID);
-                    ExperimentPE experiment = new ExperimentPE();
-                    experiment.setPermId("exp-1");
-                    will(returnValue(experiment));
-
-                    one(proteinDAO).listSampleAbundanceByProtein(experiment.getPermId(),
-                            proteinReferenceID.getId());
-                    MockDataSet<SampleAbundance> sampleAbundances =
-                            new MockDataSet<SampleAbundance>();
-                    sampleAbundances.add(sampleAbundance("s-1", 0.25));
-                    sampleAbundances.add(sampleAbundance("s-2", 0.75));
-                    will(returnValue(sampleAbundances));
-
-                    one(proteinDAO).listSamplePeptideModificatioByProtein(experiment.getPermId(),
-                            proteinReferenceID.getId());
-                    MockDataSet<SamplePeptideModification> modifications =
-                            new MockDataSet<SamplePeptideModification>();
-                    modifications.add(modification("s-2", "ab", 1, 21.5, 0.25));
-                    modifications.add(modification("s-3", "def", 1, 12.375, 0.5));
-                    modifications.add(modification("s-3", "def", 3, -1.5, 0.75));
-                    will(returnValue(modifications));
-
-                    one(sampleDAO).tryToFindByPermID("s-1");
-                    will(returnValue(sample1));
-
-                    one(sampleDAO).tryToFindByPermID("s-2");
-                    will(returnValue(sample2));
-
-                    one(sampleDAO).tryToFindByPermID("s-3");
-                    will(returnValue(sample3));
-                }
-            });
-
-        table.load(session, experimentID, proteinReferenceID, "abcdefabcab");
-
-        List<ProteinRelatedSample> samples = table.getSamples();
-        assertEquals("1:s-1:S1:/s/S1:SAMPLE:my-type:[A: hello]:0.25::null:null:null",
-                render(samples.get(0)));
-        assertEquals("2:s-2:S2:/s/S2:SAMPLE:my-type:[]:0.75:a:1:21.5:0.25",
-                render(samples.get(1)));
-        assertEquals("2:s-2:S2:/s/S2:SAMPLE:my-type:[]:0.75:a:7:21.5:0.25",
-                render(samples.get(2)));
-        assertEquals("2:s-2:S2:/s/S2:SAMPLE:my-type:[]:0.75:a:10:21.5:0.25",
-                render(samples.get(3)));
-        assertEquals("3:s-3:S3:/s/S3:SAMPLE:my-type:[]:null:d:4:12.375:0.5",
-                render(samples.get(4)));
-        assertEquals("3:s-3:S3:/s/S3:SAMPLE:my-type:[]:null:f:6:-1.5:0.75",
-                render(samples.get(5)));
-        assertEquals(6, samples.size());
-        context.assertIsSatisfied();
-    }
-
-    private String render(ProteinRelatedSample sample)
-    {
-        char modifiedAminoAcid = sample.getModifiedAminoAcid();
-        return sample.getId() + ":" + sample.getPermId() + ":" + sample.getCode() + ":"
-                + sample.getIdentifier() + ":" + sample.getEntityKind() + ":"
-                + sample.getEntityType() + ":" + sample.getProperties() + ":"
-                + sample.getAbundance() + ":"
-                + (modifiedAminoAcid == 0 ? "" : Character.toString(modifiedAminoAcid)) + ":"
-                + sample.getModificationPosition() + ":" + sample.getModificationMass() + ":"
-                + sample.getModificationFraction();
-    }
-
-    private SampleAbundance sampleAbundance(String permID, double abundance)
-    {
-        SampleAbundance sampleAbundance = new SampleAbundance();
-        sampleAbundance.setSamplePermID(permID);
-        sampleAbundance.setAbundance(abundance);
-        return sampleAbundance;
-    }
-
-    private SamplePeptideModification modification(String permID, String sequence, int position,
-            double mass, double fraction)
-    {
-        SamplePeptideModification modification = new SamplePeptideModification();
-        modification.setSamplePermID(permID);
-        modification.setSequence(sequence);
-        modification.setPosition(position);
-        modification.setMass(mass);
-        modification.setFraction(fraction);
-        return modification;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTableTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTableTest.java
deleted file mode 100644
index 119088608edc9947a410a2ec03fc997485223054..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTableTest.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.server.business.ProteinSummaryTable.FDR_LEVELS;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.jmock.Expectations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.common.eodsql.MockDataSet;
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSummary;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProbabilityFDRMapping;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProteinReferenceWithProbabilityAndPeptide;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class ProteinSummaryTableTest extends AbstractServerTestCase
-{
-    private static final TechId EXPERIMENT_ID = new TechId(234L);
-
-    private static final String EXPERIMENT_PERM_ID = "abc-234";
-
-    private static final long DATA_SET_ID = 42L;
-
-    private IPhosphoNetXDAOFactory specificDAOFactory;
-
-    private IProteinQueryDAO proteinDAO;
-
-    private ProteinSummaryTable table;
-
-    @Override
-    @BeforeMethod
-    public void setUp()
-    {
-        super.setUp();
-        specificDAOFactory = context.mock(IPhosphoNetXDAOFactory.class);
-        proteinDAO = context.mock(IProteinQueryDAO.class);
-        table = new ProteinSummaryTable(daoFactory, specificDAOFactory, session);
-    }
-
-    @Test
-    public void testLoadEmptyData()
-    {
-        prepare();
-
-        table.load(EXPERIMENT_ID);
-
-        List<ProteinSummary> summaries = table.getProteinSummaries();
-        for (ProteinSummary proteinSummary : summaries)
-        {
-            assertEquals(0, proteinSummary.getProteinCount());
-            assertEquals(0, proteinSummary.getPeptideCount());
-        }
-        assertEquals(FDR_LEVELS.length, summaries.size());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testLoadData()
-    {
-        ProteinReferenceWithProbabilityAndPeptide i1 = createItem("A", 0.5, 123, "ABCD");
-        ProteinReferenceWithProbabilityAndPeptide i2 = createItem("B", 0.5, 123, "DEF");
-        ProteinReferenceWithProbabilityAndPeptide i3 = createItem("C", 0.75, 123, "DEF");
-        ProteinReferenceWithProbabilityAndPeptide i4 = createItem("D", 0.75, 456, "ABC");
-        ProteinReferenceWithProbabilityAndPeptide i5 = createItem("E", 1, 456, "DEF");
-        ProteinReferenceWithProbabilityAndPeptide i6 = createItem("F", 1, 456, "XYZ");
-        ProteinReferenceWithProbabilityAndPeptide i7 = createItem("DECOY_F", 0.75, 456, "XYZ");
-        prepare(i1, i2, i3, i4, i5, i6, i7);
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(proteinDAO).getProbabilityFDRMapping(DATA_SET_ID);
-                    MockDataSet<ProbabilityFDRMapping> dataSet =
-                            new MockDataSet<ProbabilityFDRMapping>();
-                    dataSet.add(createMappingItem(0.5, FDR_LEVELS[3]));
-                    dataSet.add(createMappingItem(0.75, FDR_LEVELS[2]));
-                    dataSet.add(createMappingItem(1, FDR_LEVELS[0]));
-                    will(returnValue(dataSet));
-                }
-
-            });
-        table.load(EXPERIMENT_ID);
-
-        List<ProteinSummary> summaries = table.getProteinSummaries();
-        assertSummary(0, 1, 2, 0, 0, summaries);
-        assertSummary(1, 1, 2, 0, 0, summaries);
-        assertSummary(2, 2, 3, 1, 1, summaries);
-        assertSummary(3, 2, 4, 1, 1, summaries);
-        assertSummary(4, 2, 4, 1, 1, summaries);
-        assertEquals(FDR_LEVELS.length, summaries.size());
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testLoadDataWithNoFDRMapping()
-    {
-        ProteinReferenceWithProbabilityAndPeptide i1 = createItem("A", 0.5, 123, "ABCD");
-        ProteinReferenceWithProbabilityAndPeptide i2 = createItem("B", 0.5, 123, "DEF");
-        ProteinReferenceWithProbabilityAndPeptide i3 = createItem("C", 0.75, 123, "DEF");
-        ProteinReferenceWithProbabilityAndPeptide i4 = createItem("D", 0.75, 456, "ABC");
-        ProteinReferenceWithProbabilityAndPeptide i5 = createItem("E", 1, 456, "DEF");
-        ProteinReferenceWithProbabilityAndPeptide i6 = createItem("F", 1, 456, "XYZ");
-        ProteinReferenceWithProbabilityAndPeptide i7 = createItem("DECOY_F", 0.75, 456, "XYZ");
-        prepare(i1, i2, i3, i4, i5, i6, i7);
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(proteinDAO).getProbabilityFDRMapping(DATA_SET_ID);
-                    MockDataSet<ProbabilityFDRMapping> dataSet =
-                            new MockDataSet<ProbabilityFDRMapping>();
-                    will(returnValue(dataSet));
-                }
-            });
-        table.load(EXPERIMENT_ID);
-
-        List<ProteinSummary> summaries = table.getProteinSummaries();
-        assertSummary(0, 2, 4, 1, 1, summaries);
-        assertSummary(1, 2, 4, 1, 1, summaries);
-        assertSummary(2, 2, 4, 1, 1, summaries);
-        assertSummary(3, 2, 4, 1, 1, summaries);
-        assertSummary(4, 2, 4, 1, 1, summaries);
-        assertEquals(FDR_LEVELS.length, summaries.size());
-        context.assertIsSatisfied();
-    }
-
-    private void assertSummary(int index, int expectedProteinCount, int expectedPeptideCount,
-            int expectedDecoyProteinCount, int expectedDecoyPeptideCount,
-            List<ProteinSummary> summaries)
-    {
-        ProteinSummary proteinSummary = summaries.get(index);
-        assertEquals(FDR_LEVELS[index], proteinSummary.getFDR(), 1e-6);
-        assertEquals(expectedProteinCount, proteinSummary.getProteinCount());
-        assertEquals(expectedPeptideCount, proteinSummary.getPeptideCount());
-        assertEquals(expectedDecoyProteinCount, proteinSummary.getDecoyProteinCount());
-        assertEquals(expectedDecoyPeptideCount, proteinSummary.getDecoyPeptideCount());
-    }
-
-    private ProbabilityFDRMapping createMappingItem(double probability, double falseDiscoveryRate)
-    {
-        ProbabilityFDRMapping m1 = new ProbabilityFDRMapping();
-        m1.setProbability(probability);
-        m1.setFalseDiscoveryRate(falseDiscoveryRate);
-        return m1;
-    }
-
-    private void prepare(final ProteinReferenceWithProbabilityAndPeptide... items)
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    allowing(specificDAOFactory).getProteinQueryDAO(EXPERIMENT_ID);
-                    will(returnValue(proteinDAO));
-
-                    one(experimentDAO).getByTechId(EXPERIMENT_ID);
-                    ExperimentPE experimentPE = new ExperimentPE();
-                    experimentPE.setPermId(EXPERIMENT_PERM_ID);
-                    will(returnValue(experimentPE));
-
-                    one(proteinDAO).listProteinsWithProbabilityAndPeptidesByExperiment(
-                            EXPERIMENT_PERM_ID);
-                    MockDataSet<ProteinReferenceWithProbabilityAndPeptide> dataSet =
-                            new MockDataSet<ProteinReferenceWithProbabilityAndPeptide>();
-                    dataSet.addAll(Arrays.asList(items));
-                    will(returnValue(dataSet));
-                }
-            });
-    }
-
-    private ProteinReferenceWithProbabilityAndPeptide createItem(String accessionNumber, double probability,
-            long id, String peptideSequence)
-    {
-        ProteinReferenceWithProbabilityAndPeptide item =
-                new ProteinReferenceWithProbabilityAndPeptide();
-        item.setDataSetID(DATA_SET_ID);
-        item.setProbability(probability);
-        item.setId(id);
-        item.setPeptideSequence(peptideSequence);
-        item.setAccessionNumber(accessionNumber);
-        return item;
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleIDProviderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleIDProviderTest.java
deleted file mode 100644
index 0196a241d724afc78a001c3b701a472888173378..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleIDProviderTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import org.jmock.Expectations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
-import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.RelationshipTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SampleRelationshipPE;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class SampleIDProviderTest extends AbstractServerTestCase
-{
-    private static final String PERM_ID = "abc-1";
-
-    private static final Long ID = 42L;
-
-    private SampleIDProvider sampleIDProvider;
-
-    @BeforeMethod
-    @Override
-    public void setUp()
-    {
-        super.setUp();
-        sampleIDProvider = new SampleIDProvider(sampleDAO);
-    }
-
-    @Test
-    public void testGetUnkownSample()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(sampleDAO).tryToFindByPermID(PERM_ID);
-                    will(returnValue(null));
-                }
-            });
-
-        try
-        {
-            sampleIDProvider.getSampleIDOrParentSampleID(PERM_ID);
-            fail("UserFailureException expected.");
-        } catch (UserFailureException e)
-        {
-            assertEquals("No sample found for permID " + PERM_ID, e.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testGetSampleIDTwice()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(sampleDAO).tryToFindByPermID(PERM_ID);
-                    SamplePE sample = new SamplePE();
-                    sample.setId(ID);
-                    will(returnValue(sample));
-                }
-            });
-
-        long s1 = sampleIDProvider.getSampleIDOrParentSampleID(PERM_ID);
-        long s2 = sampleIDProvider.getSampleIDOrParentSampleID(PERM_ID);
-        assertEquals(ID.longValue(), s1);
-        assertEquals(ID.longValue(), s2);
-
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void testGetParentSampleIDTwice()
-    {
-        context.checking(new Expectations()
-            {
-                {
-                    one(sampleDAO).tryToFindByPermID(PERM_ID);
-                    SamplePE parentSample = new SamplePE();
-                    parentSample.setCode("s1");
-                    parentSample.setId(ID);
-                    SamplePE sample = new SamplePE();
-                    sample.setCode("s1");
-                    sample.setId(2 * ID);
-                    RelationshipTypePE relationship = new RelationshipTypePE();
-                    relationship.setCode(BasicConstant.PARENT_CHILD_INTERNAL_RELATIONSHIP);
-                    sample.addParentRelationship(new SampleRelationshipPE(parentSample, sample,
-                            relationship, new PersonPE()));
-                    will(returnValue(sample));
-                }
-            });
-
-        long s1 = sampleIDProvider.getSampleIDOrParentSampleID(PERM_ID);
-        long s2 = sampleIDProvider.getSampleIDOrParentSampleID(PERM_ID);
-        assertEquals(ID.longValue(), s1);
-        assertEquals(ID.longValue(), s2);
-
-        context.assertIsSatisfied();
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleLoaderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleLoaderTest.java
deleted file mode 100644
index 73196040ee2005cf2948041798128ffa6494fa71..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleLoaderTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import static org.testng.AssertJUnit.assertEquals;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Test(groups = "db")
-public class SampleLoaderTest extends AbstractLoaderTestCase
-{
-
-    @Test
-    public void test()
-    {
-        Session session = session();
-        session.setPerson(new PersonPE());
-        SampleLoader loader = new SampleLoader(session, daoFactory, boFactory);
-        List<Sample> samples = loader.listSamplesWithParentsByTypeAndSpace("CELL_PLATE", "CISD");
-        Collections.sort(samples, new Comparator<Sample>()
-            {
-                @Override
-                public int compare(Sample s1, Sample s2)
-                {
-                    return s1.getCode().compareTo(s2.getCode());
-                }
-            });
-        StringBuilder builder = new StringBuilder();
-        for (Sample sample : samples)
-        {
-            Sample parent = sample.getGeneratedFrom();
-            builder.append(sample.getCode()).append(" ").append(getSortedProperties(sample));
-            builder.append(" <- ").append(parent.getCode()).append(" ");
-            builder.append(getSortedProperties(parent)).append('\n');
-        }
-        assertEquals("3VCP5 [] <- 3V-125 [OFFSET: 49]\n"
-                + "3VCP7 [COMMENT: test comment, ORGANISM: RAT, SIZE: 4711] <- 3V-125 [OFFSET: 49]\n"
-                + "3VCP8 [] <- 3V-125 [OFFSET: 49]\n"
-                + "CP-TEST-1 [ANY_MATERIAL: 1 (GENE), BACTERIUM: BACTERIUM-X (BACTERIUM), "
-                + "COMMENT: very advanced stuff, ORGANISM: HUMAN, SIZE: 123] "
-                + "<- CP-TEST-2 [ANY_MATERIAL: 2 (GENE), BACTERIUM: BACTERIUM-Y (BACTERIUM), "
-                + "COMMENT: extremely simple stuff, ORGANISM: GORILLA, SIZE: 321]\n"
-                + "CP1-A1 [] <- DP1-A [OFFSET: 42]\n"
-                + "CP1-A2 [] <- DP1-A [OFFSET: 42]\n"
-                + "CP1-B1 [] <- DP1-B [OFFSET: 42]\n"
-                + "CP2-A1 [] <- DP2-A [OFFSET: 42]\n", builder.toString());
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleProviderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleProviderTest.java
deleted file mode 100644
index a9f632f812e5243ceac1dd3e53660c01c7a3375d..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleProviderTest.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.authentication.Principal;
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister;
-import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListOrSearchSampleCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.IBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.ISampleProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.SampleProvider;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class SampleProviderTest extends AssertJUnit
-{
-    private static final class MatcherOfSampleCriteriaByChildrenIDs extends
-            BaseMatcher<ListOrSearchSampleCriteria>
-    {
-        private final Collection<Long> childrenIDs;
-
-        private MatcherOfSampleCriteriaByChildrenIDs(Collection<Long> childrenIDs)
-        {
-            this.childrenIDs = childrenIDs;
-        }
-
-        @Override
-        public boolean matches(Object item)
-        {
-            if (item instanceof ListOrSearchSampleCriteria)
-            {
-                ListOrSearchSampleCriteria criteria = (ListOrSearchSampleCriteria) item;
-                assertEquals(true, criteria.isEnrichDependentSamplesWithProperties());
-                assertEquals(childrenIDs.toString(), criteria.getChildrenSampleIds().toString());
-                return true;
-            }
-            return false;
-        }
-
-        @Override
-        public void describeTo(Description description)
-        {
-        }
-    }
-
-    private static final Principal PRINCIPAL =
-            new Principal(CommonTestUtils.USER_ID, "john", "doe", "j@d");
-
-    private static final String SESSION_TOKEN = "session-token";
-
-    private static final Session SESSION =
-            new Session(CommonTestUtils.USER_ID, SESSION_TOKEN, PRINCIPAL, "remote-host", 1);
-
-    private static final TechId EXPERIMENT_ID = new TechId(4711);
-
-    private Mockery context;
-
-    private IBusinessObjectFactory boFactory;
-
-    private ISampleProvider sampleProvider;
-
-    private ISampleLister sampleLister;
-
-    @BeforeMethod
-    public void setUp()
-    {
-        context = new Mockery();
-        boFactory = context.mock(IBusinessObjectFactory.class);
-        sampleLister = context.mock(ISampleLister.class);
-        sampleProvider = new SampleProvider(SESSION, boFactory);
-    }
-
-    @AfterMethod
-    public void tearDown()
-    {
-        // To following line of code should also be called at the end of each test method.
-        // Otherwise one do not known which test failed.
-        context.assertIsSatisfied();
-    }
-
-    @Test
-    public void test()
-    {
-        final Sample s1 = createSample("abc");
-        final Sample s2 = createSample("123");
-        final Sample s3 = createSample("parent-of-123");
-        context.checking(new Expectations()
-            {
-                {
-                    one(boFactory).createSampleLister(SESSION);
-                    will(returnValue(sampleLister));
-
-                    one(sampleLister).list(with(new BaseMatcher<ListOrSearchSampleCriteria>()
-                        {
-                            @Override
-                            public boolean matches(Object item)
-                            {
-                                if (item instanceof ListOrSearchSampleCriteria)
-                                {
-                                    ListOrSearchSampleCriteria criteria = (ListOrSearchSampleCriteria) item;
-                                    assertEquals(true, criteria.isEnrichDependentSamplesWithProperties());
-                                    assertEquals(EXPERIMENT_ID, criteria.getExperimentId());
-                                    return true;
-                                }
-                                return false;
-                            }
-
-                            @Override
-                            public void describeTo(Description description)
-                            {
-                            }
-                        }));
-                    will(returnValue(Arrays.asList(s1, s2)));
-
-                    one(sampleLister).list(
-                            with(new MatcherOfSampleCriteriaByChildrenIDs(Arrays.asList(s1.getId(),
-                                    s2.getId()))));
-                    will(returnValue(Arrays.asList(s3)));
-
-                    one(sampleLister).list(
-                            with(new MatcherOfSampleCriteriaByChildrenIDs(Arrays.asList(s3.getId()))));
-                    will(returnValue(Arrays.asList()));
-                }
-            });
-
-        sampleProvider.loadByExperimentID(EXPERIMENT_ID);
-        assertSame(s1, sampleProvider.getSample(s1.getPermId()));
-        assertSame(s2, sampleProvider.getSample(s2.getPermId()));
-        assertSame(s3, sampleProvider.getSample(s3.getPermId()));
-        try
-        {
-            sampleProvider.getSample("42");
-            fail("UserFailureException expected");
-        } catch (UserFailureException ex)
-        {
-            assertEquals("No sample with following perm ID registered in openBIS: 42", ex.getMessage());
-        }
-
-        context.assertIsSatisfied();
-    }
-
-    private Sample createSample(String samplePermID)
-    {
-        Sample sample = new Sample();
-        sample.setId((long) samplePermID.hashCode());
-        sample.setPermId(samplePermID);
-        return sample;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/TreatmentFinderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/TreatmentFinderTest.java
deleted file mode 100644
index 00ee7155f25cbdf17f6b1015a8f7c044aee8f42b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/TreatmentFinderTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.server.business;
-
-import static ch.systemsx.cisd.openbis.plugin.proteomics.server.business.TreatmentFinder.TREATMENT_TYPE_CODE;
-import static ch.systemsx.cisd.openbis.plugin.proteomics.server.business.TreatmentFinder.TREATMENT_VALUE_CODE;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.TreatmentFinder;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Treatment;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class TreatmentFinderTest extends AssertJUnit
-{
-    @Test
-    public void testFindingTreatmentsInSample()
-    {
-        Sample sample = createSample();
-        sample.getProperties().add(create("BLABLA", "blub", DataTypeCode.MULTILINE_VARCHAR));
-        addTreatment(sample, "", "pH", "7");
-        addTreatment(sample, "1", "PLASMA", "20");
-        addTreatment(sample, "2", "VIRUS", "HIV", DataTypeCode.MATERIAL);
-
-        List<Treatment> treatments = new TreatmentFinder().findTreatmentsOf(sample);
-
-        assertEquals(3, treatments.size());
-        assertTreatment("7", "pH", treatments.get(0));
-        assertTreatment("20", "PLASMA", treatments.get(1));
-        assertTreatment("HIV", "VIRUS", DataTypeCode.MATERIAL, treatments.get(2));
-    }
-
-    @Test
-    public void testFindingTreatmentsInAncestorsOverriddenInDescendants()
-    {
-        Sample sample = createSample();
-        Sample parentSample = createSample();
-        sample.setGeneratedFrom(parentSample);
-        Sample grandParentSample = createSample();
-        parentSample.setGeneratedFrom(grandParentSample);
-        addTreatment(grandParentSample, "1", "PLASMA", "35");
-        parentSample.getProperties().add(create("BLABLA", "blub", DataTypeCode.MULTILINE_VARCHAR));
-        addTreatment(parentSample, "", "pH", "7");
-        addTreatment(sample, "", "PLASMA", "20");
-
-        List<Treatment> treatments = new TreatmentFinder().findTreatmentsOf(sample);
-
-        assertEquals(2, treatments.size());
-        assertTreatment("7", "pH", treatments.get(0));
-        assertTreatment("20", "PLASMA", treatments.get(1));
-    }
-
-    @Test
-    public void testFindingTreatmentsWhereTreatmentTypeIsNotAVocabulary()
-    {
-        Sample sample = createSample();
-        sample.getProperties().add(create(TREATMENT_TYPE_CODE, "pH", DataTypeCode.VARCHAR));
-
-        try
-        {
-            new TreatmentFinder().findTreatmentsOf(sample);
-            fail("UserFailureException expected");
-        } catch (UserFailureException e)
-        {
-            assertEquals("Data type of property type '" + TREATMENT_TYPE_CODE
-                    + "' must be a vocabulary.", e.getMessage());
-        }
-    }
-
-    @Test
-    public void testFindingTreatmentsWhereOnlyTreatmentTypeIsDefined()
-    {
-        Sample sample = createSample();
-        sample.getProperties().add(create(TREATMENT_TYPE_CODE, "pH", DataTypeCode.CONTROLLEDVOCABULARY));
-
-        List<Treatment> treatments = new TreatmentFinder().findTreatmentsOf(sample);
-
-        assertEquals(1, treatments.size());
-        assertTreatment("", "pH", treatments.get(0));
-    }
-
-    @Test
-    public void testFindingTreatmentsWhereOnlyTreatmentValueIsDefined()
-    {
-        Sample sample = createSample();
-        sample.getProperties().add(create(TREATMENT_VALUE_CODE, "HIV", DataTypeCode.MATERIAL));
-
-        List<Treatment> treatments = new TreatmentFinder().findTreatmentsOf(sample);
-
-        assertEquals(1, treatments.size());
-        assertTreatment("HIV", "", DataTypeCode.MATERIAL, treatments.get(0));
-    }
-
-    private void assertTreatment(String expectedValue, String expectedType, Treatment treatment)
-    {
-        assertTreatment(expectedValue, expectedType, DataTypeCode.VARCHAR, treatment);
-    }
-
-    private void assertTreatment(String expectedValue, String expectedType,
-            DataTypeCode expectedDataType, Treatment treatment)
-    {
-        assertEquals("Actual treatment: " + treatment, expectedValue, treatment.getValue());
-        assertEquals("Actual treatment: " + treatment, expectedDataType.toString(), treatment
-                .getValueType());
-        assertEquals("Actual treatment: " + treatment, expectedType, treatment.getType());
-        assertEquals("Actual treatment: " + treatment, expectedValue + " " + expectedType,
-                treatment.getLabel());
-    }
-
-    private void addTreatment(Sample sample, String treatmentCodePostfix, String treatmentType,
-            String treatmentValue)
-    {
-        addTreatment(sample, treatmentCodePostfix, treatmentType, treatmentValue,
-                DataTypeCode.VARCHAR);
-    }
-
-    private void addTreatment(Sample sample, String treatmentCodePostfix, String treatmentType,
-            String treatmentValue, DataTypeCode valueType)
-    {
-        List<IEntityProperty> properties = sample.getProperties();
-        properties.add(create(TREATMENT_TYPE_CODE + treatmentCodePostfix, treatmentType,
-                DataTypeCode.CONTROLLEDVOCABULARY));
-        properties.add(create(TREATMENT_VALUE_CODE + treatmentCodePostfix, treatmentValue,
-                valueType));
-    }
-
-    private IEntityProperty create(String code, String value, DataTypeCode type)
-    {
-        EntityProperty sampleProperty = new EntityProperty();
-        PropertyType propertyType = new PropertyType();
-        propertyType.setCode(code);
-        DataType dataType = new DataType();
-        dataType.setCode(type);
-        propertyType.setDataType(dataType);
-        sampleProperty.setPropertyType(propertyType);
-        switch (type)
-        {
-            case CONTROLLEDVOCABULARY:
-                VocabularyTerm term = new VocabularyTerm();
-                if (Character.isUpperCase(value.charAt(0)))
-                {
-                    term.setCode(value);
-                } else
-                {
-                    term.setCode(value.toUpperCase());
-                    term.setLabel(value);
-                }
-                sampleProperty.setVocabularyTerm(term);
-                break;
-            case MATERIAL:
-                Material material = new Material();
-                material.setCode(value);
-                sampleProperty.setMaterial(material);
-                break;
-            default:
-                sampleProperty.setValue(value);
-        }
-        return sampleProperty;
-    }
-
-    private Sample createSample()
-    {
-        Sample sample = new Sample();
-        sample.setProperties(new ArrayList<IEntityProperty>());
-        return sample;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AbundanceColumnDefinitionTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AbundanceColumnDefinitionTest.java
deleted file mode 100644
index 0ba2429877ede75a9bae031e88648c4258bfd30b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AbundanceColumnDefinitionTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.util.Arrays;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AbundanceColumnDefinition;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.Treatment;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class AbundanceColumnDefinitionTest extends AssertJUnit
-{
-    @Test
-    public void testCompareTwoDefinitonsWithoutTreatmentsAndSampleCodes()
-    {
-        AbundanceColumnDefinition d1 = new AbundanceColumnDefinition();
-        AbundanceColumnDefinition d2 = create(null);
-
-        assertEquals(0, d1.compareTo(d2));
-
-        d1.setSampleCode("bla");
-
-        assertEquals(0, d1.compareTo(d2));
-    }
-
-    @Test
-    public void testCompareTwoDefinitonsWithoutTreatmentsButSampleCodes()
-    {
-        AbundanceColumnDefinition d1 = create("abc");
-        AbundanceColumnDefinition d2 = create("abc");
-
-        assertEquals(0, d1.compareTo(d2));
-
-        d2.setSampleCode("def");
-
-        assertEquals(true, d1.compareTo(d2) < 0);
-    }
-
-    @Test
-    public void testCompareTwoDefinitonsWithDifferentNumberOfTreatments()
-    {
-        AbundanceColumnDefinition d1 = create("abc");
-        d1.setSampleCode("abc");
-        AbundanceColumnDefinition d2 = create("abc", new Treatment());
-        d2.setSampleCode("abc");
-
-        assertEquals(true, d1.compareTo(d2) < 0);
-    }
-
-    @Test
-    public void testCompareTwoDefinitonsWithOneNonNumericalTreatment()
-    {
-        AbundanceColumnDefinition d1 = create("abc", treatment("light", "red"));
-        AbundanceColumnDefinition d2 = create("abc", treatment("light", "blue"));
-
-        assertEquals(true, d1.compareTo(d2) > 0);
-    }
-
-    @Test
-    public void testCompareTwoDefinitonsWithOneNumericalTreatment()
-    {
-        AbundanceColumnDefinition d1 = create("abc", treatment("pH", "7.5"), treatment("T", "yes"));
-        AbundanceColumnDefinition d2 = create("abc", treatment("pH", "9e-1"));
-
-        assertEquals(true, d1.compareTo(d2) > 0);
-    }
-
-    @Test
-    public void testCompareTwoDefinitonsWithOneNumericalTreatmentButDifferentTypes()
-    {
-        AbundanceColumnDefinition d1 = create("abc", treatment("K", "7.5"));
-        AbundanceColumnDefinition d2 = create("abc", treatment("pH", "9e-1"));
-
-        assertEquals(true, d1.compareTo(d2) < 0);
-    }
-
-    @Test
-    public void testCompareTwoDefinitonsWithTwoNumericalTreatment()
-    {
-        AbundanceColumnDefinition d1 = create("abc", treatment("pH", "7.50"), treatment("T", "13"));
-        AbundanceColumnDefinition d2 = create("abc", treatment("pH", "0.75e1"), treatment("T", "8"));
-
-        assertEquals(true, d1.compareTo(d2) > 0);
-    }
-
-    private AbundanceColumnDefinition create(String sampleCode, Treatment... treatments)
-    {
-        AbundanceColumnDefinition definition = new AbundanceColumnDefinition();
-        definition.setSampleCode(sampleCode);
-        definition.setTreatments(Arrays.asList(treatments));
-        return definition;
-    }
-
-    private Treatment treatment(String type, String value)
-    {
-        Treatment treatment = new Treatment();
-        treatment.setType(type);
-        treatment.setValue(value);
-        return treatment;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AggregateFunctionTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AggregateFunctionTest.java
deleted file mode 100644
index 51ef5b1942171c8cb39d077c9bbdcff301b52026..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/AggregateFunctionTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.AggregateFunction;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class AggregateFunctionTest extends AssertJUnit
-{
-    @Test
-    public void testMean()
-    {
-        assertEquals(42.0, AggregateFunction.MEAN.aggregate(new double[] { 42 }));
-        assertEquals(42.5, AggregateFunction.MEAN.aggregate(new double[] { 42, 43 }));
-        assertEquals(44.0, AggregateFunction.MEAN.aggregate(new double[] { 42, 42, 48 }));
-    }
-
-    @Test
-    public void testMedian()
-    {
-        assertEquals(42.0, AggregateFunction.MEDIAN.aggregate(new double[] { 42 }));
-        assertEquals(42.5, AggregateFunction.MEDIAN.aggregate(new double[] { 42, 43 }));
-        assertEquals(43.0, AggregateFunction.MEDIAN.aggregate(new double[] { 42, 43, 50 }));
-        assertEquals(46.5, AggregateFunction.MEDIAN.aggregate(new double[] { 42, 43, 50, 59 }));
-    }
-
-    @Test
-    public void testSum()
-    {
-        assertEquals(42.0, AggregateFunction.SUM.aggregate(new double[] { 42 }));
-        assertEquals(85.0, AggregateFunction.SUM.aggregate(new double[] { 42, 43 }));
-    }
-
-    @Test
-    public void testMin()
-    {
-        assertEquals(42.0, AggregateFunction.MIN.aggregate(new double[] { 42 }));
-        assertEquals(42.0, AggregateFunction.MIN.aggregate(new double[] { 42, 43 }));
-    }
-
-    @Test
-    public void testMax()
-    {
-        assertEquals(42.0, AggregateFunction.MAX.aggregate(new double[] { 42 }));
-        assertEquals(43.0, AggregateFunction.MAX.aggregate(new double[] { 42, 43 }));
-    }
-
-    @Test
-    public void testCount()
-    {
-        assertEquals(1.0, AggregateFunction.COUNT.aggregate(new double[] { 42 }));
-        assertEquals(2.0, AggregateFunction.COUNT.aggregate(new double[] { 42, 43 }));
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/OccurrenceUtilTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/OccurrenceUtilTest.java
deleted file mode 100644
index 248567447e0e6c42c284f1a968d2b1f000fbfb56..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/basic/dto/OccurrenceUtilTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2009 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto;
-
-import java.util.Arrays;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.OccurrenceUtil;
-
-/**
- * @author Franz-Josef Elmer
- */
-public class OccurrenceUtilTest extends AssertJUnit
-{
-    @Test
-    public void testNoCoverage()
-    {
-        check("[]", "");
-        check("[]", "abc", "xx");
-        check("[]", "xx");
-        check("[]", "abc");
-    }
-
-    @Test
-    public void testFullCoverage()
-    {
-        check("[[abc@0]]", "abc", "abc");
-    }
-
-    @Test
-    public void testPartialAndOverlappingCoverage()
-    {
-        check("[[ab@0], [abcd@4], [ab@13]]", "abc abcde hahab", "ab", "bcd");
-        check("[[ab@0], [abcd@4], [ab@13]]", "abc abcde hahab", "ab", "cd");
-        check("[[abc@0], [abc@4], [ab@13]]", "abc abcde hahab", "ab", "b", "c");
-        check("[[abc@0], [abc@4], [b@14]]", "abc abcde hahab", "abc", "b");
-        check("[[abcde@0]]", "abcdef", "abcd", "b", "de");
-        check("[[haha@10]]", "abc abcde hahab", "haha", "h");
-    }
-
-    private void check(String expectedList, String sequence, String... words)
-    {
-        assertEquals(expectedList, OccurrenceUtil.getCoverage(sequence, Arrays.asList(words)).toString());
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/AbstractProteomicsSystemTestCase.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/AbstractProteomicsSystemTestCase.java
deleted file mode 100644
index a1d2981b429983ca9e8321de6b57d60d1eedbfa4..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/AbstractProteomicsSystemTestCase.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright 2012 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.proteomics.systemtests;
-
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.SystemTestCase;
-import ch.systemsx.cisd.openbis.generic.server.ICommonServerForInternalUse;
-import ch.systemsx.cisd.openbis.generic.shared.IServiceForDataStoreServer;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Grantee;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
-import ch.systemsx.cisd.openbis.plugin.generic.shared.IGenericServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.api.v1.Constants;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IPhosphoNetXServer;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.ResourceNames;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
-
-/**
- * @author Franz-Josef Elmer
- */
-public abstract class AbstractProteomicsSystemTestCase extends SystemTestCase
-{
-
-    /**
-     *
-     *
-     */
-    public AbstractProteomicsSystemTestCase()
-    {
-        super();
-    }
-
-    @Override
-    protected String getApplicationContextLocation()
-    {
-        return "classpath:proteomics-applicationContext.xml";
-    }
-
-    protected String registerPerson(String userID)
-    {
-        ICommonServerForInternalUse commonServer = getCommonServer();
-        String systemSessionToken = commonServer.tryToAuthenticateAsSystem().getSessionToken();
-        commonServer.registerPerson(systemSessionToken, userID);
-        return userID;
-    }
-
-    protected void assignInstanceRole(String userID, RoleCode roleCode)
-    {
-        ICommonServerForInternalUse commonServer = getCommonServer();
-        String systemSessionToken = commonServer.tryToAuthenticateAsSystem().getSessionToken();
-        commonServer.registerInstanceRole(systemSessionToken, roleCode,
-                Grantee.createPerson(userID));
-    }
-
-    protected void assignSpaceRole(String userID, RoleCode roleCode, SpaceIdentifier spaceIdentifier)
-    {
-        ICommonServerForInternalUse commonServer = getCommonServer();
-        String systemSessionToken = commonServer.tryToAuthenticateAsSystem().getSessionToken();
-        commonServer.registerSpaceRole(systemSessionToken, roleCode, spaceIdentifier,
-                Grantee.createPerson(userID));
-    }
-
-    protected String authenticateAs(String user)
-    {
-        return getCommonServer().tryAuthenticate(user, "password").getSessionToken();
-    }
-
-    protected ICommonServerForInternalUse getCommonServer()
-    {
-        return getBean(ch.systemsx.cisd.openbis.generic.shared.ResourceNames.COMMON_SERVER);
-    }
-
-    protected IGenericServer getGenericServer()
-    {
-        return getBean(ch.systemsx.cisd.openbis.plugin.generic.shared.ResourceNames.GENERIC_PLUGIN_SERVER);
-    }
-
-    protected IServiceForDataStoreServer getServiceForDSS()
-    {
-        return getBean(ch.systemsx.cisd.openbis.generic.shared.ResourceNames.ETL_SERVICE);
-    }
-
-    protected IProteomicsDataServiceInternal getDataServiceInternal()
-    {
-        return getBean(Constants.PROTEOMICS_DATA_SERVICE_INTERNAL);
-    }
-
-    protected IProteomicsDataService getDataService()
-    {
-        return getBean(Constants.PROTEOMICS_DATA_SERVICE);
-    }
-
-    protected IPhosphoNetXServer getServer()
-    {
-        return getBean(ResourceNames.PROTEOMICS_PLUGIN_SERVER);
-    }
-
-}
\ No newline at end of file
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/ProteomicsDataServiceTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/ProteomicsDataServiceTest.java
deleted file mode 100644
index 22c5f68a15f7f91b2e05e63a0063bc882cc35625..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/ProteomicsDataServiceTest.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright 2016 ETH Zuerich, SIS
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.proteomics.systemtests;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.collection.SimpleComparator;
-import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
-import ch.systemsx.cisd.common.shared.basic.string.CommaSeparatedListBuilder;
-import ch.systemsx.cisd.common.test.AssertionUtil;
-import ch.systemsx.cisd.openbis.generic.shared.IServiceForDataStoreServer;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.FileFormatType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LocatorType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSamplesWithTypes;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.DataSetTypeBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.SampleTypeBuilder;
-import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.dto.StorageFormat;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.dto.MsInjectionDataInfo;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Test(groups = { "slow", "systemtest" })
-public class ProteomicsDataServiceTest extends AbstractProteomicsSystemTestCase
-{
-    private static final String EXPERIMENT_IDENTIFIER = "/MS_DATA/A/E";
-
-    private String sessionToken;
-
-    private Long experimentId;
-
-    private long[] sampleIds;
-
-    @BeforeTest
-    public void setUpExamples()
-    {
-        sessionToken = authenticateAs("test");
-        getCommonServer().registerSpace(sessionToken, "MS_DATA", null);
-        getCommonServer().registerProject(sessionToken, ProjectIdentifierFactory.parse("/MS_DATA/A"),
-                null, null, Arrays.<NewAttachment> asList());
-        NewExperiment experiment = new NewExperiment();
-        experiment.setExperimentTypeCode("MS_SEARCH");
-        experiment.setIdentifier(EXPERIMENT_IDENTIFIER);
-        experimentId = getGenericServer().registerExperiment(sessionToken, experiment, Arrays.<NewAttachment> asList()).getId();
-        NewSamplesWithTypes samples = new NewSamplesWithTypes();
-        SampleType sampleType = new SampleTypeBuilder().code("MS_INJECTION").getSampleType();
-        samples.setEntityType(sampleType);
-        List<NewSample> msInjectionSamples = createMsInjectionSamples("/TEST-SPACE/CP-TEST-4", null, "/CISD/3VCP5");
-        samples.setNewEntities(msInjectionSamples);
-        getGenericServer().registerSamples(sessionToken, Arrays.asList(samples));
-        IServiceForDataStoreServer serviceForDSS = getServiceForDSS();
-        for (int i = 0; i < msInjectionSamples.size(); i++)
-        {
-            NewSample sample = msInjectionSamples.get(i);
-            NewExternalData dataSet = new NewExternalData();
-            dataSet.setDataSetType(new DataSetTypeBuilder().code("UNKNOWN").getDataSetType());
-            dataSet.setDataSetKind(DataSetKind.PHYSICAL);
-            dataSet.setCode("DS-" + i);
-            dataSet.setFileFormatType(new FileFormatType("XML"));
-            dataSet.setDataStoreCode("STANDARD");
-            dataSet.setLocation("a/b/c/" + dataSet.getCode());
-            dataSet.setLocatorType(new LocatorType("RELATIVE_LOCATION"));
-            dataSet.setStorageFormat(StorageFormat.PROPRIETARY);
-            serviceForDSS.registerDataSet(sessionToken, SampleIdentifierFactory.parse(sample),
-                    dataSet);
-        }
-        ListSampleCriteria criteria = ListSampleCriteria.createForExperiment(new TechId(experimentId));
-        List<Sample> samples2 = getCommonServer().listSamples(sessionToken, criteria);
-        sampleIds = new long[samples2.size()];
-        for (int i = 0; i < sampleIds.length; i++)
-        {
-            sampleIds[i] = samples2.get(i).getId();
-        }
-        Arrays.sort(sampleIds);
-    }
-
-    @Test
-    public void testListRawDataSamplesForAdminUser()
-    {
-        List<MsInjectionDataInfo> samples = getDataService().listRawDataSamples(sessionToken, "test");
-
-        assertEquals("MSI-0:/TEST-SPACE/CP-TEST-4:/TEST-SPACE/NOE/EXP-TEST-2, "
-                + "MSI-2:/CISD/3VCP5:/CISD/NEMO/EXP10", renderMsInjectionDataInfos(samples));
-    }
-
-    @Test
-    public void testListRawDataSamplesForSpaceUser()
-    {
-        List<MsInjectionDataInfo> samples = getDataService().listRawDataSamples(sessionToken, "test_role");
-
-        assertEquals("MSI-2:/CISD/3VCP5:/CISD/NEMO/EXP10", renderMsInjectionDataInfos(samples));
-    }
-
-    @Test
-    public void testListAllRawDataSamplesForAdminUser()
-    {
-        List<MsInjectionDataInfo> samples = getDataService().listAllRawDataSamples(sessionToken, "test");
-
-        assertEquals("MSI-0:/TEST-SPACE/CP-TEST-4:/TEST-SPACE/NOE/EXP-TEST-2, "
-                + "MSI-2:/CISD/3VCP5:/CISD/NEMO/EXP10", renderMsInjectionDataInfos(samples));
-    }
-
-    @Test
-    public void testListAllRawDataSamplesForSpaceUser()
-    {
-        List<MsInjectionDataInfo> samples = getDataService().listAllRawDataSamples(sessionToken, "test_role");
-
-        assertEquals("MSI-0:null:null, "
-                + "MSI-2:/CISD/3VCP5:/CISD/NEMO/EXP10", renderMsInjectionDataInfos(samples));
-    }
-
-    @Test
-    public void testProcessingRawDataForAdminUser()
-    {
-        try
-        {
-            getDataService().processingRawData(sessionToken, "test", "test-processing", sampleIds, "UNKNOWN");
-        } catch (EnvironmentFailureException ex)
-        {
-            AssertionUtil.assertContains("[DS-0, DS-2]", ex.getMessage());
-        }
-    }
-
-    @Test
-    public void testProcessingRawDataForSpaceUser()
-    {
-        try
-        {
-            getDataService().processingRawData(sessionToken, "test_role", "test-processing", sampleIds, "UNKNOWN");
-        } catch (EnvironmentFailureException ex)
-        {
-            AssertionUtil.assertContains("[DS-2]", ex.getMessage());
-        }
-    }
-
-    private String renderMsInjectionDataInfos(List<MsInjectionDataInfo> infos)
-    {
-        Collections.sort(infos, new SimpleComparator<MsInjectionDataInfo, String>()
-            {
-                @Override
-                public String evaluate(MsInjectionDataInfo item)
-                {
-                    return item.getMsInjectionSampleCode();
-                }
-            });
-        CommaSeparatedListBuilder builder = new CommaSeparatedListBuilder();
-        for (MsInjectionDataInfo info : infos)
-        {
-            builder.append(info.getMsInjectionSampleCode() + ":" + info.getBiologicalSampleIdentifier() + ":"
-                    + info.getBiologicalExperimentIdentifier());
-        }
-        return builder.toString();
-    }
-
-    private List<NewSample> createMsInjectionSamples(String... parentIdentifiers)
-    {
-        List<NewSample> samples = new ArrayList<NewSample>();
-        SampleType sampleType = new SampleTypeBuilder().code("MS_INJECTION").getSampleType();
-        for (int i = 0; i < parentIdentifiers.length; i++)
-        {
-            NewSample sample = new NewSample();
-            sample.setParentIdentifier(parentIdentifiers[i]);
-            sample.setIdentifier("/MS_DATA/MSI-" + i);
-            sample.setSampleType(sampleType);
-            sample.setExperimentIdentifier(EXPERIMENT_IDENTIFIER);
-            samples.add(sample);
-        }
-        return samples;
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/ServerAuthorizationTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/ServerAuthorizationTest.java
deleted file mode 100644
index 1211b9ac241282fff61d731ec53028dbf5807672..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/ServerAuthorizationTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright 2012 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.proteomics.systemtests;
-
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import ch.systemsx.cisd.common.exceptions.AuthorizationFailureException;
-import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.IProteomicsDataServiceInternal;
-
-/**
- * @author Franz-Josef Elmer
- */
-@Test(groups = { "slow", "systemtest" })
-public class ServerAuthorizationTest extends AbstractProteomicsSystemTestCase
-{
-    private static final String USER_A = "USER_A";
-
-    private static final String USER_INSTANCE_OBSERVER = "USER_B";
-
-    private static final SpaceIdentifier SPACE_A = new SpaceIdentifier("CISD");
-
-    @BeforeClass
-    public void createTestUsers()
-    {
-        assignSpaceRole(registerPerson(USER_A), RoleCode.ETL_SERVER, SPACE_A);
-        assignInstanceRole(registerPerson(USER_INSTANCE_OBSERVER), RoleCode.OBSERVER);
-    }
-
-    @Test(expectedExceptions = AuthorizationFailureException.class)
-    public void testForServerSetSessionUserFailedBecauseOfAuthorization()
-    {
-        String sessionToken = authenticateAs(USER_A);
-        getServer().setSessionUser(sessionToken, "abc");
-    }
-
-    @Test(expectedExceptions = AuthorizationFailureException.class)
-    public void testListProteinSummariesByExperimentFailedBecauseOfAuthorization()
-    {
-        String sessionToken = authenticateAs(USER_A);
-        getServer().listProteinSummariesByExperiment(sessionToken, new TechId(42));
-    }
-
-    @Test(expectedExceptions = AuthorizationFailureException.class)
-    public void testForDataServiceInternalSetSessionUserFailedBecauseOfAuthorization()
-    {
-        IProteomicsDataServiceInternal dataServiceInternal = getDataServiceInternal();
-        String sessionToken = dataServiceInternal.tryAuthenticate(USER_A, "abc").getSessionToken();
-        dataServiceInternal.setSessionUser(sessionToken, "abc");
-    }
-
-    @Test(expectedExceptions = AuthorizationFailureException.class)
-    public void testForDataServiceInternalListExperimentsFailedBecauseOfAuthorization()
-    {
-        IProteomicsDataServiceInternal dataServiceInternal = getDataServiceInternal();
-        String sessionToken = dataServiceInternal.tryAuthenticate(USER_A, "abc").getSessionToken();
-        dataServiceInternal.listExperiments(sessionToken, "MS_SEARCH");
-    }
-
-    @Test
-    public void testForDataServiceListExperimentsFailedBecauseOfAuthorization()
-    {
-        String sessionToken = authenticateAs(USER_A);
-        try
-        {
-            getDataService().listExperiments(sessionToken, USER_A, "MS_SEARCH");
-            fail("AuthorizationFailureException expected");
-        } catch (AuthorizationFailureException ex)
-        {
-            assertEquals("Authorization failure: ERROR: \"None of method roles "
-                    + "'[INSTANCE_OBSERVER, INSTANCE_ADMIN]' "
-                    + "could be found in roles of user 'USER_A'.\".", ex.getMessage());
-        }
-    }
-
-    @Test
-    public void testForDataServiceListExperimentsFailedBecauseOfAuthorizationOnSecondLevel()
-    {
-        String sessionToken = authenticateAs(USER_INSTANCE_OBSERVER);
-        try
-        {
-            getDataService().listExperiments(sessionToken, USER_A, "MS_SEARCH");
-            fail("AuthorizationFailureException expected");
-        } catch (AuthorizationFailureException ex)
-        {
-            assertEquals("Authorization failure: ERROR: \"None of method roles "
-                    + "'[PROJECT_USER, PROJECT_POWER_USER, PROJECT_ADMIN, SPACE_ADMIN, INSTANCE_ADMIN, SPACE_POWER_USER, SPACE_USER]' "
-                    + "could be found in roles of user 'USER_A'.\".", ex.getMessage());
-        }
-    }
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/CommonValidatorProteomicsSystemTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/CommonValidatorProteomicsSystemTest.java
deleted file mode 100644
index 109f75aea326e53a506c64b364ba40a642581ce9..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/CommonValidatorProteomicsSystemTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2017 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.proteomics.systemtests.authorization.validator;
-
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.validator.CommonValidatorSystemTest;
-
-/**
- * @author pkupczyk
- */
-public abstract class CommonValidatorProteomicsSystemTest<O> extends CommonValidatorSystemTest<O>
-{
-
-    @Override
-    protected String getApplicationContextLocation()
-    {
-        return "classpath:proteomics-applicationContext.xml";
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/sample/ParentSampleValidatorSystemTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/sample/ParentSampleValidatorSystemTest.java
deleted file mode 100644
index 09d22f285ec740d884a10ade19890b424f46ee3e..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/sample/ParentSampleValidatorSystemTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2017 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.proteomics.systemtests.authorization.validator.sample;
-
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser;
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.SampleUtil;
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.validator.CommonValidatorSystemTestAssertions;
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.validator.CommonValidatorSystemTestSampleAssertions;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
-import ch.systemsx.cisd.openbis.proteomics.systemtests.authorization.validator.CommonValidatorProteomicsSystemTest;
-
-/**
- * @author pkupczyk
- */
-public class ParentSampleValidatorSystemTest extends CommonValidatorProteomicsSystemTest<Sample>
-{
-
-    @Override
-    public Object[] getParams()
-    {
-        return getSampleKinds(SampleKind.SHARED_READ);
-    }
-
-    @Override
-    protected Sample createObject(SpacePE spacePE, ProjectPE projectPE, Object param)
-    {
-        Sample parent = SampleUtil.createObject(this, spacePE, projectPE, param);
-        Sample sample = new Sample();
-        sample.addParent(parent);
-        return sample;
-    }
-
-    @Override
-    protected Sample validateObject(ProjectAuthorizationUser user, Sample object, Object param)
-    {
-        return getBean(SampleValidatorProteomicsTestService.class).testParentSampleValidator(user.getSessionProvider(), object);
-    }
-
-    @Override
-    protected CommonValidatorSystemTestAssertions<Sample> getAssertions()
-    {
-        return new CommonValidatorSystemTestSampleAssertions<>(super.getAssertions());
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/sample/RawDataSampleValidatorSystemTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/sample/RawDataSampleValidatorSystemTest.java
deleted file mode 100644
index 9a06c6a653e826a1d9d70d8f4884916bddabd7f0..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/sample/RawDataSampleValidatorSystemTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2017 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.proteomics.systemtests.authorization.validator.sample;
-
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser;
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.SampleUtil;
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.validator.CommonValidatorSystemTestAssertions;
-import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.validator.CommonValidatorSystemTestSampleAssertions;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-import ch.systemsx.cisd.openbis.proteomics.systemtests.authorization.validator.CommonValidatorProteomicsSystemTest;
-
-/**
- * @author pkupczyk
- */
-public class RawDataSampleValidatorSystemTest extends CommonValidatorProteomicsSystemTest<MsInjectionSample>
-{
-
-    @Override
-    public Object[] getParams()
-    {
-        return getSampleKinds(SampleKind.SHARED_READ);
-    }
-
-    @Override
-    protected MsInjectionSample createObject(SpacePE spacePE, ProjectPE projectPE, Object param)
-    {
-        Sample parent = SampleUtil.createObject(this, spacePE, projectPE, param);
-        Sample sample = new Sample();
-        sample.addParent(parent);
-        return new MsInjectionSample(sample, null);
-    }
-
-    @Override
-    protected MsInjectionSample validateObject(ProjectAuthorizationUser user, MsInjectionSample object, Object param)
-    {
-        return getBean(SampleValidatorProteomicsTestService.class).testRawDataSampleValidator(user.getSessionProvider(), object);
-    }
-
-    @Override
-    protected CommonValidatorSystemTestAssertions<MsInjectionSample> getAssertions()
-    {
-        return new CommonValidatorSystemTestSampleAssertions<>(super.getAssertions());
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/sample/SampleValidatorProteomicsTestService.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/sample/SampleValidatorProteomicsTestService.java
deleted file mode 100644
index 4b988f35884271b7d188cdae8734ff6c80c87ed2..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/authorization/validator/sample/SampleValidatorProteomicsTestService.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2017 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.proteomics.systemtests.authorization.validator.sample;
-
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.ReturnValueFilter;
-import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.RolesAllowed;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.IAuthSessionProvider;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.authorization.validator.ParentSampleValidator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.server.authorization.validator.RawDataSampleValidator;
-import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.MsInjectionSample;
-
-/**
- * @author pkupczyk
- */
-@Component
-public class SampleValidatorProteomicsTestService
-{
-
-    @Transactional
-    @RolesAllowed(value = { RoleWithHierarchy.PROJECT_OBSERVER })
-    @ReturnValueFilter(validatorClass = ParentSampleValidator.class)
-    public Sample testParentSampleValidator(IAuthSessionProvider sessionProvider, Sample sample)
-    {
-        return sample;
-    }
-
-    @Transactional
-    @RolesAllowed(value = { RoleWithHierarchy.PROJECT_OBSERVER })
-    @ReturnValueFilter(validatorClass = RawDataSampleValidator.class)
-    public MsInjectionSample testRawDataSampleValidator(IAuthSessionProvider sessionProvider, MsInjectionSample sample)
-    {
-        return sample;
-    }
-
-}
diff --git a/rtd_phosphonetx/sourceTest/java/tests.xml b/rtd_phosphonetx/sourceTest/java/tests.xml
deleted file mode 100644
index 34383147e472d19ce07022e3313331a7b07de82b..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/tests.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<suite name="All" verbose="2" >
-  <test name="All" annotations="JDK">
-    <groups>
-      <run>
-        <exclude name="broken" />
-      </run>
-    </groups>
-    <packages>
-      <package name="ch.systemsx.cisd.openbis.etlserver.proteomics.*" />
-      <package name="ch.systemsx.cisd.openbis.dss.proteomics.*" />
-      <package name="ch.systemsx.cisd.openbis.plugin.proteomics.*" />
-   </packages>
- </test>
-</suite>
diff --git a/rtd_phosphonetx/sourceTest/java/tests_project_authorization.xml b/rtd_phosphonetx/sourceTest/java/tests_project_authorization.xml
deleted file mode 100644
index 22211d608c91df4b0afd428f144f8d71a18efaec..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/tests_project_authorization.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<suite name="projectAuthorization" verbose="2">
-	<test name="unit" annotations="JDK">
-		<groups>
-			<run>
-				<exclude name="broken" />
-			</run>
-		</groups>
-		<packages>
-			<package name="ch.systemsx.cisd.openbis.proteomics.systemtests.authorization.validator.*" />
-		</packages>
-	</test>
-</suite>
diff --git a/rtd_phosphonetx/sourceTest/java/tests_system.xml b/rtd_phosphonetx/sourceTest/java/tests_system.xml
deleted file mode 100644
index f5f68092a5bfb6fb417d3fdb296606ce50fb70c5..0000000000000000000000000000000000000000
--- a/rtd_phosphonetx/sourceTest/java/tests_system.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<suite name="SystemTests" verbose="2" >
-  <test name="SystemTests" annotations="JDK">
-    <packages>
-      <package name="ch.systemsx.cisd.openbis.proteomics.systemtests.*" />
-   </packages>
- </test>
-</suite>