From b2547daff5e0a1c3234bcd144187ed84f0ddb137 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Thu, 27 May 2010 12:56:50 +0000 Subject: [PATCH] SE-251 datamodel extended and migrated, uploading adapted SVN: 16167 --- .../etlserver/phosphonetx/IProtDAO.java | 4 +- .../phosphonetx/ResultDataSetUploader.java | 8 +- .../dataaccess/db/PhosphoNetXDAOFactory.java | 2 +- .../source/sql/postgresql/004/grant-004.sql | 18 ++ .../source/sql/postgresql/004/schema-004.png | Bin 0 -> 66176 bytes .../source/sql/postgresql/004/schema-004.sql | 296 ++++++++++++++++++ .../migration/migration-003-004.sql | 5 + .../source/sql/postgresql/schema.dez | 121 +++++-- .../ResultDataSetUploaderTest.java | 16 +- 9 files changed, 427 insertions(+), 43 deletions(-) create mode 100644 rtd_phosphonetx/source/sql/postgresql/004/grant-004.sql create mode 100755 rtd_phosphonetx/source/sql/postgresql/004/schema-004.png create mode 100755 rtd_phosphonetx/source/sql/postgresql/004/schema-004.sql create mode 100644 rtd_phosphonetx/source/sql/postgresql/migration/migration-003-004.sql diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/IProtDAO.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/IProtDAO.java index c71eb911ada..058bc2417a1 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/IProtDAO.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/IProtDAO.java @@ -93,8 +93,8 @@ public interface IProtDAO extends BaseQuery + "returning id") public long createSequence(Sequence sequence); - @Update("insert into identified_proteins (prot_id, sequ_id, coverage) values (?{1}, ?{2}, ?{3})") - public void createIdentifiedProtein(long proteinID, long sequenceID, double coverage); + @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); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploader.java index 440b23de9aa..4e8344d7b90 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploader.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploader.java @@ -259,10 +259,10 @@ class ResultDataSetUploader extends AbstractHandler logException(e, "peptide", peptide.getSequence().toString()); } } - createIdentifiedProtein(proteinID, peptideSequences, databaseID, protein.getAnnotation()); + createIdentifiedProtein(proteinID, peptideSequences, databaseID, protein.getAnnotation(), true); for (AnnotatedProtein annotatedProtein : protein.getIndistinguishableProteins()) { - createIdentifiedProtein(proteinID, peptideSequences, databaseID, annotatedProtein.getAnnotation()); + createIdentifiedProtein(proteinID, peptideSequences, databaseID, annotatedProtein.getAnnotation(), false); } } @@ -299,7 +299,7 @@ class ResultDataSetUploader extends AbstractHandler } private void createIdentifiedProtein(long proteinID, Set<String> peptideSequences, - Long databaseID, ProteinAnnotation annotation) + Long databaseID, ProteinAnnotation annotation, boolean primary) { ProteinDescription protDesc = new ProteinDescription(annotation.getDescription()); String accessionNumber = protDesc.getAccessionNumber(); @@ -323,7 +323,7 @@ class ResultDataSetUploader extends AbstractHandler sequence.setId(dao.createSequence(sequence)); } double coverage = calculateCoverage(sequence.getSequence(), peptideSequences); - dao.createIdentifiedProtein(proteinID, sequence.getId(), coverage); + dao.createIdentifiedProtein(proteinID, sequence.getId(), coverage, primary); } private double calculateCoverage(String aminoAcidSequence, Set<String> peptideSequences) diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/dataaccess/db/PhosphoNetXDAOFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/dataaccess/db/PhosphoNetXDAOFactory.java index 07e82ccd48e..2f39bb9956d 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/dataaccess/db/PhosphoNetXDAOFactory.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/dataaccess/db/PhosphoNetXDAOFactory.java @@ -37,7 +37,7 @@ import ch.systemsx.cisd.openbis.plugin.phosphonetx.server.dataaccess.IProteinQue public class PhosphoNetXDAOFactory implements IPhosphoNetXDAOFactory { /** Current version of the database. */ - public static final String DATABASE_VERSION = "003"; + public static final String DATABASE_VERSION = "004"; private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, PhosphoNetXDAOFactory.class); diff --git a/rtd_phosphonetx/source/sql/postgresql/004/grant-004.sql b/rtd_phosphonetx/source/sql/postgresql/004/grant-004.sql new file mode 100644 index 00000000000..2e85f4fb1f6 --- /dev/null +++ b/rtd_phosphonetx/source/sql/postgresql/004/grant-004.sql @@ -0,0 +1,18 @@ +-- 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/postgresql/004/schema-004.png b/rtd_phosphonetx/source/sql/postgresql/004/schema-004.png new file mode 100755 index 0000000000000000000000000000000000000000..fceffeedd9cb97b93e06432546eb207feba07418 GIT binary patch literal 66176 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Π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 literal 0 HcmV?d00001 diff --git a/rtd_phosphonetx/source/sql/postgresql/004/schema-004.sql b/rtd_phosphonetx/source/sql/postgresql/004/schema-004.sql new file mode 100755 index 00000000000..824269ff55a --- /dev/null +++ b/rtd_phosphonetx/source/sql/postgresql/004/schema-004.sql @@ -0,0 +1,296 @@ +/* ---------------------------------------------------------------------- */ +/* 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/postgresql/migration/migration-003-004.sql b/rtd_phosphonetx/source/sql/postgresql/migration/migration-003-004.sql new file mode 100644 index 00000000000..84d3d8a841b --- /dev/null +++ b/rtd_phosphonetx/source/sql/postgresql/migration/migration-003-004.sql @@ -0,0 +1,5 @@ +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/postgresql/schema.dez b/rtd_phosphonetx/source/sql/postgresql/schema.dez index f7c4d30fd33..b63ef2293f4 100755 --- a/rtd_phosphonetx/source/sql/postgresql/schema.dez +++ b/rtd_phosphonetx/source/sql/postgresql/schema.dez @@ -4,14 +4,14 @@ <VERSION> <PROJECTSETTINGS> <PROJECTFILENAME>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\phosphonetx.dez</PROJECTFILENAME> -<MODIFIED>2010-03-31</MODIFIED> +<MODIFIED>2010-05-27</MODIFIED> <CREATED>2009-06-29</CREATED> <CREATED2></CREATED2> <PROJECTNAME></PROJECTNAME> <DESCRIPTION></DESCRIPTION> <AUTHOR></AUTHOR> <COPYRIGHT></COPYRIGHT> -<LASTGENERATEDFILES>N:\group\cisd\phosphonetx\datamodel\schema.sql;N:\group\cisd\phosphonetx\datamodel\drop.sql;\\d.ethz.ch\dfs\groups\bsse\users\cisd\felmer\Documents\CreateDBLog_201003311.txt</LASTGENERATEDFILES> +<LASTGENERATEDFILES>N:\group\cisd\phosphonetx\datamodel\schema.sql;N:\group\cisd\phosphonetx\datamodel\drop.sql;\\d.ethz.ch\dfs\groups\bsse\users\cisd\felmer\Documents\CreateDBLog_201005274.txt</LASTGENERATEDFILES> </PROJECTSETTINGS> <CONNECTIONSETTINGS> <SQLFILE>D:\User\felmer\dev-workspace\rtd_phosphonetx\source\sql\postgresql\001\schema-001.sql</SQLFILE> @@ -20,7 +20,7 @@ </CONNECTIONSETTINGS> <DATADICT> <DBID>postgresql8</DBID> -<LASTID>176</LASTID> +<LASTID>236</LASTID> <DDSETTINGS> <PKCONNAMETEMPLATE>PK_%table%</PKCONNAMETEMPLATE> <FKCONNAMETEMPLATE>%relname%</FKCONNAMETEMPLATE> @@ -200,6 +200,30 @@ <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> @@ -1209,7 +1233,7 @@ <POSNR>0</POSNR> <SCHEMA></SCHEMA> <DESC></DESC> -<ATTRLASTID>6</ATTRLASTID> +<ATTRLASTID>7</ATTRLASTID> <IDXLASTID>1</IDXLASTID> <TRGLASTID>1</TRGLASTID> <CONLASTID>1</CONLASTID> @@ -1322,6 +1346,47 @@ <INC>1</INC> </DT> </ATTR> +<ATTR> +<NAME>IS_PRIMARY</NAME> +<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> </ENT> <ENT> @@ -3065,7 +3130,7 @@ <DIAGRAMID>1</DIAGRAMID> <W>250</W> <H>108</H> -<L>736</L> +<L>754</L> <T>328</T> <BRUSH>0,16777215</BRUSH> <PEN>0,1,4,0</PEN> @@ -3076,8 +3141,8 @@ <ENTC> <ID>47</ID> <DIAGRAMID>1</DIAGRAMID> -<W>167</W> -<H>93</H> +<W>184</W> +<H>108</H> <L>518</L> <T>328</T> <BRUSH>0,16777215</BRUSH> @@ -3117,7 +3182,7 @@ <DIAGRAMID>1</DIAGRAMID> <W>252</W> <H>78</H> -<L>734</L> +<L>752</L> <T>480</T> <BRUSH>0,16777215</BRUSH> <PEN>0,1,4,0</PEN> @@ -3130,7 +3195,7 @@ <DIAGRAMID>1</DIAGRAMID> <W>252</W> <H>63</H> -<L>734</L> +<L>752</L> <T>91</T> <BRUSH>0,16777215</BRUSH> <PEN>0,1,4,0</PEN> @@ -3182,7 +3247,7 @@ <DIAGRAMID>1</DIAGRAMID> <W>226</W> <H>48</H> -<L>746</L> +<L>778</L> <T>1</T> <BRUSH>0,16777215</BRUSH> <PEN>0,1,4,0</PEN> @@ -3320,7 +3385,7 @@ <FROMRELATIVEX>5000</FROMRELATIVEX> <FROMRELATIVEY>5000</FROMRELATIVEY> <TORELATIVEX>5000</TORELATIVEX> -<TORELATIVEY>4194</TORELATIVEY> +<TORELATIVEY>3611</TORELATIVEY> <POINTS> <POINT> <X>454</X> @@ -3346,25 +3411,25 @@ <FONT>Arial,8,,0,clWindowText,0</FONT> <PEN>1,1,4,0</PEN> <FROMRELATIVEX>2840</FROMRELATIVEX> -<FROMRELATIVEY>4259</FROMRELATIVEY> +<FROMRELATIVEY>5000</FROMRELATIVEY> <TORELATIVEX>5000</TORELATIVEX> -<TORELATIVEY>4946</TORELATIVEY> +<TORELATIVEY>5000</TORELATIVEY> <POINTS> <POINT> -<X>735</X> -<Y>374</Y> +<X>753</X> +<Y>382</Y> </POINT> <POINT> <X>722</X> -<Y>374</Y> +<Y>382</Y> </POINT> <POINT> <X>722</X> -<Y>374</Y> +<Y>382</Y> </POINT> <POINT> -<X>685</X> -<Y>374</Y> +<X>702</X> +<Y>382</Y> </POINT> </POINTS> </RELC> @@ -3463,19 +3528,19 @@ <TORELATIVEY>1296</TORELATIVEY> <POINTS> <POINT> -<X>861</X> +<X>879</X> <Y>154</Y> </POINT> <POINT> -<X>861</X> +<X>879</X> <Y>235</Y> </POINT> <POINT> -<X>861</X> +<X>879</X> <Y>235</Y> </POINT> <POINT> -<X>861</X> +<X>879</X> <Y>327</Y> </POINT> </POINTS> @@ -3491,19 +3556,19 @@ <TORELATIVEY>3611</TORELATIVEY> <POINTS> <POINT> -<X>861</X> +<X>879</X> <Y>479</Y> </POINT> <POINT> -<X>861</X> +<X>879</X> <Y>447</Y> </POINT> <POINT> -<X>861</X> +<X>879</X> <Y>447</Y> </POINT> <POINT> -<X>861</X> +<X>879</X> <Y>436</Y> </POINT> </POINTS> @@ -3519,7 +3584,7 @@ <TORELATIVEY>9167</TORELATIVEY> <POINTS> <POINT> -<X>733</X> +<X>751</X> <Y>100</Y> </POINT> <POINT> diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploaderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploaderTest.java index 8a06e1477c2..71165afb4fc 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploaderTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploaderTest.java @@ -211,9 +211,9 @@ public class ResultDataSetUploaderTest extends AssertJUnit double probability = 1.0; prepareForCreatingProtein(probability); ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1); - prepareForCreatingIdentifiedProtein(a1, false); + prepareForCreatingIdentifiedProtein(a1, false, true); ProteinAnnotation a2 = createAnnotation(UNIPROT_ID2, PROTEIN_NAME2, SEQUENCE2); - prepareForCreatingIdentifiedProtein(a2, true); + prepareForCreatingIdentifiedProtein(a2, true, false); ProteinSummary summary = createProteinSummary(); Protein p1 = createProtein(probability, a1, a2); @@ -232,7 +232,7 @@ public class ResultDataSetUploaderTest extends AssertJUnit ProteinSummary summary = createProteinSummary(); prepareForCreatingProtein(probability); ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1); - prepareForCreatingIdentifiedProtein(a1, false); + prepareForCreatingIdentifiedProtein(a1, false, true); Protein p1 = createProtein(probability, a1); p1.setName(PROTEIN_NAME1); p1.getParameters().add(createAbundance(CELL_LYSATE1, 2.5)); @@ -263,7 +263,7 @@ public class ResultDataSetUploaderTest extends AssertJUnit prepareForCreatingProtein(probability); summary.getProteinGroups().add(createProteinGroup(p1)); ProteinAnnotation a2 = createAnnotation(UNIPROT_ID2, PROTEIN_NAME2, SEQUENCE2); - prepareForCreatingIdentifiedProtein(a2, false); + prepareForCreatingIdentifiedProtein(a2, false, true); Protein p2 = createProtein(probability, a2); p2.setName(PROTEIN_NAME1); p2.getParameters().add(createAbundance(CELL_LYSATE1, 42.5)); @@ -345,7 +345,7 @@ public class ResultDataSetUploaderTest extends AssertJUnit double probability = 1.0; prepareForCreatingProtein(probability); ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1); - prepareForCreatingIdentifiedProtein(a1, false); + prepareForCreatingIdentifiedProtein(a1, false, true); ProteinSummary summary = createProteinSummary(); Protein p1 = createProtein(probability, a1); @@ -374,7 +374,7 @@ public class ResultDataSetUploaderTest extends AssertJUnit double probability = 1.0; prepareForCreatingProtein(probability); ProteinAnnotation a1 = createAnnotation(UNIPROT_ID1, PROTEIN_NAME1, SEQUENCE1); - prepareForCreatingIdentifiedProtein(a1, false); + prepareForCreatingIdentifiedProtein(a1, false, true); ProteinSummary summary = createProteinSummary(); Protein p1 = createProtein(probability, a1); @@ -468,7 +468,7 @@ public class ResultDataSetUploaderTest extends AssertJUnit } private void prepareForCreatingIdentifiedProtein(ProteinAnnotation annotation, - final boolean referenceExist) + final boolean referenceExist, final boolean primary) { ProteinDescription proteinDescription = new ProteinDescription(annotation.getDescription()); final String uniprotID = proteinDescription.getAccessionNumber(); @@ -511,7 +511,7 @@ public class ResultDataSetUploaderTest extends AssertJUnit will(returnValue(Arrays.asList(seq))); } - one(dao).createIdentifiedProtein(PROTEIN1_ID, SEQUENCE_ID, 0); + one(dao).createIdentifiedProtein(PROTEIN1_ID, SEQUENCE_ID, 0, primary); } }); } -- GitLab