001/**
002 * Copyright (C) 2010-2015 The Roslin Institute <contact andy.law@roslin.ed.ac.uk>
003 *
004 * This file is part of JEnsembl: a Java API to Ensembl data sources developed by the
005 * Bioinformatics Group at The Roslin Institute, The Royal (Dick) School of
006 * Veterinary Studies, University of Edinburgh.
007 *
008 * Project hosted at: http://jensembl.sourceforge.net
009 *
010 * This is free software: you can redistribute it and/or modify
011 * it under the terms of the GNU General Public License (version 3) as published by
012 * the Free Software Foundation.
013 *
014 * This software is distributed in the hope that it will be useful,
015 * but WITHOUT ANY WARRANTY; without even the implied warranty of
016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
017 * GNU General Public License for more details.
018 *
019 * You should have received a copy of the GNU General Public License
020 * in this software distribution. If not, see: http://opensource.org/licenses/gpl-3.0.html
021 */
022package uk.ac.roslin.ensembl.demo;
023
024import java.util.List;
025import uk.ac.roslin.ensembl.config.DBConnection.DataSource;
026import uk.ac.roslin.ensembl.dao.database.DBCollectionSpecies;
027import uk.ac.roslin.ensembl.dao.database.DBRegistry;
028import uk.ac.roslin.ensembl.dao.database.DBSpecies;
029import uk.ac.roslin.ensembl.datasourceaware.DAXRef;
030import uk.ac.roslin.ensembl.datasourceaware.core.DAGene;
031import uk.ac.roslin.ensembl.datasourceaware.core.DATranscript;
032import uk.ac.roslin.ensembl.datasourceaware.core.DATranslation;
033
034public class VegaAndCCDSIDs {
035    
036    public static void main(String[] args) throws Exception {
037
038        DBRegistry eReg =  DBRegistry.createRegistryForDataSource(DataSource.ENSEMBLDB);
039        DBSpecies sp = eReg.getSpeciesByAlias("human");
040        
041        System.out.println("*** HUMAN ***");
042       // DAGene g = sp.getGeneByStableID("ENSG00000139618");
043        
044        //getting a gene by vega accession
045        //String vg_accession = "OTTHUMG00000150513"; - not now in current db
046        String vg_accession = "OTTHUMG00000064912";
047        System.out.print("current version genes: ");
048        List<DAGene> genesForVegaID = sp.getGenesForVegaID(vg_accession);
049         System.out.println(genesForVegaID.size());   
050        for (DAGene v: genesForVegaID ) {
051            
052            int count = 0;
053            System.out.println(v.getSpecies().getCommonName()+" "+v.getVegaID()
054                        +" - "+v.getStableID() );           
055            for (DAXRef x:v.getVegaXRefs()) {
056            
057                System.out.println("XREF "+ ++count 
058                        +" : "+x.getPrimaryAccession() );
059
060                System.out.println("\t"+x.getDBDisplayName() );
061                System.out.println("\t"+x.getDescription() );
062                System.out.println("\t"+x.getDisplayID() );
063                System.out.println("\t"+x.getInfo() );
064                System.out.println("\t"+x.getInfoType() );
065                System.out.println("\t"+x.getPrimaryAccession() );
066                System.out.println("\t"+x.getVersion() );
067            }
068            System.out.println("");
069        }
070        
071
072        
073        System.out.print("version 64 genes: ");
074        genesForVegaID = sp.getGenesForVegaID(vg_accession, "64");
075         System.out.println(genesForVegaID.size()); 
076        for (DAGene v: genesForVegaID ) {
077                        
078            int count = 0;
079            System.out.println(v.getSpecies().getCommonName()+" "+v.getVegaID()
080                        +" - "+v.getStableID());           
081            for (DAXRef x:v.getVegaXRefs()) {
082            
083                System.out.println("XREF "+ ++count 
084                        +" : "+x.getPrimaryAccession()  );
085
086                System.out.println("\t"+x.getDBDisplayName() );
087                System.out.println("\t"+x.getDescription() );
088                System.out.println("\t"+x.getDisplayID() );
089                System.out.println("\t"+x.getInfo() );
090                System.out.println("\t"+x.getInfoType() );
091                System.out.println("\t"+x.getPrimaryAccession() );
092                System.out.println("\t"+x.getVersion() );
093            }
094            System.out.println("");
095        }
096           
097        String vg_accessionX = "OTTHUMG99999150513";
098        System.out.println("current version genes - for bad id");
099        List<DAGene> genesForVegaIDX = sp.getGenesForVegaID(vg_accessionX);
100        if (genesForVegaIDX.isEmpty()) {
101            System.out.println("\tNo Hits");
102        }
103        
104        for (DAGene v: genesForVegaIDX ) {
105            
106            int count = 0;
107            System.out.println(v.getSpecies().getCommonName()+" "+v.getVegaID()
108                        +" - "+v.getStableID());           
109            for (DAXRef x:v.getVegaXRefs()) {
110            
111                System.out.println("XREF "+ ++count 
112                        +" : "+x.getPrimaryAccession() );
113
114                System.out.println("\t"+x.getDBDisplayName() );
115                System.out.println("\t"+x.getDescription() );
116                System.out.println("\t"+x.getDisplayID() );
117                System.out.println("\t"+x.getInfo() );
118                System.out.println("\t"+x.getInfoType() );
119                System.out.println("\t"+x.getPrimaryAccession() );
120                System.out.println("\t"+x.getVersion() );
121            }
122            System.out.println("");
123        }        
124        
125        //getting a transcript by vega accession
126        String vt_accession = "OTTHUMT00000046000";
127        System.out.println("current version Transcript");
128        List<DATranscript> transcriptsForVegaID = sp.getTranscriptsForVegaID(vt_accession);        
129        for (DATranscript v: transcriptsForVegaID ) {
130            
131            System.out.println("Transcript: "+v.getDisplayName()+ " "+v.getId()+" "+v.getStableID());
132                        
133            int count = 0;
134            System.out.println(v.getSpecies().getCommonName()+" "+v.getVegaID()
135                        +" - "+v.getStableID());     
136            DAGene gene = v.getGene();
137            System.out.println("\tgene: "+gene.getStableID()+" - "+gene.getVegaID());            
138            
139            for (DAXRef x:v.getVegaXRefs()) {
140            
141                System.out.println("XREF "+ ++count 
142                        +" : "+x.getPrimaryAccession()  );
143
144                System.out.println("\t"+x.getDBDisplayName() );
145                System.out.println("\t"+x.getDescription() );
146                System.out.println("\t"+x.getDisplayID() );
147                System.out.println("\t"+x.getInfo() );
148                System.out.println("\t"+x.getInfoType() );
149                System.out.println("\t"+x.getPrimaryAccession() );
150                System.out.println("\t"+x.getVersion() );
151            }
152            System.out.println("");
153        }        
154
155        
156        
157        System.out.println("version 64 Transcript");
158        transcriptsForVegaID = sp.getTranscriptsForVegaID(vt_accession, "64");
159        for (DATranscript v: transcriptsForVegaID ) {
160            
161            System.out.println("Transcript: "+v.getDisplayName()+ " "+v.getId()+" "+v.getStableID());
162                        
163            int count = 0;
164            System.out.println(v.getSpecies().getCommonName()+" "+v.getVegaID()
165                        +" - "+v.getStableID());     
166            DAGene gene = v.getGene();
167            System.out.println("\tgene: "+gene.getStableID()+" - "+gene.getVegaID());            
168            
169            for (DAXRef x:v.getVegaXRefs()) {
170            
171                System.out.println("XREF "+ ++count 
172                        +" : "+x.getPrimaryAccession()  );
173
174                System.out.println("\t"+x.getDBDisplayName() );
175                System.out.println("\t"+x.getDescription() );
176                System.out.println("\t"+x.getDisplayID() );
177                System.out.println("\t"+x.getInfo() );
178                System.out.println("\t"+x.getInfoType() );
179                System.out.println("\t"+x.getPrimaryAccession() );
180                System.out.println("\t"+x.getVersion() );
181            }
182            System.out.println("");
183        }        
184        
185        System.out.println("version 57 Transcript");
186        transcriptsForVegaID = sp.getTranscriptsForVegaID(vt_accession, "57");
187        for (DATranscript v: transcriptsForVegaID ) {
188            
189            System.out.println("Transcript: "+v.getDisplayName()+ " "+v.getId()+" "+v.getStableID());
190                        
191            int count = 0;
192            System.out.println(v.getSpecies().getCommonName()+" "+v.getVegaID()
193                        +" - "+v.getStableID());     
194            DAGene gene = v.getGene();
195            System.out.println("\tgene: "+gene.getStableID()+" - "+gene.getVegaID());            
196            
197            for (DAXRef x:v.getVegaXRefs()) {
198            
199                System.out.println("XREF "+ ++count 
200                        +" : "+x.getPrimaryAccession()  );
201
202                System.out.println("\t"+x.getDBDisplayName() );
203                System.out.println("\t"+x.getDescription() );
204                System.out.println("\t"+x.getDisplayID() );
205                System.out.println("\t"+x.getInfo() );
206                System.out.println("\t"+x.getInfoType() );
207                System.out.println("\t"+x.getPrimaryAccession() );
208                System.out.println("\t"+x.getVersion() );
209            }
210            System.out.println("");
211        }        
212        
213        //getting a protein by vega accession
214        String vp_accession = "OTTHUMP00000018803";
215        System.out.println("current version Protein");
216        List<DATranslation> proteinsForVegaID = sp.getTranslationsForVegaID(vp_accession);
217        for (DATranslation v: proteinsForVegaID ) {
218            
219            System.out.println("Translation: "+ v.getSpecies().getCommonName()+" "+v.getId()+" - "+v.getStableID()+" - "+v.getVegaID());
220            
221            DATranscript transcript = v.getTranscript();
222            System.out.println("\ttranscript from translation: "+transcript.getId()+" - "+transcript.getStableID()+" - "+transcript.getVegaID());
223            DAGene gene = transcript.getGene();
224            System.out.println("\tgene from transcript: "+gene.getId()+" - "+gene.getStableID()+" - "+gene.getVegaID());
225            
226            int count = 0; 
227            gene = v.getGene();
228            System.out.println("\tgene from translation: "+gene.getId()+" - "+gene.getStableID()+" - "+gene.getVegaID());         
229            
230            for (DAXRef x:v.getVegaXRefs()) {
231            
232                System.out.println("XREF "+ ++count 
233                        +" : "+x.getPrimaryAccession() );
234
235                System.out.println("\t"+x.getDBDisplayName() );
236                System.out.println("\t"+x.getDescription() );
237                System.out.println("\t"+x.getDisplayID() );
238                System.out.println("\t"+x.getInfo() );
239                System.out.println("\t"+x.getInfoType() );
240                System.out.println("\t"+x.getPrimaryAccession() );
241                System.out.println("\t"+x.getVersion() );
242            }
243            System.out.println("");
244        }        
245        
246        System.out.println("version64 Protein");
247        proteinsForVegaID = sp.getTranslationsForVegaID(vp_accession, "64");
248        for (DATranslation v: proteinsForVegaID ) {
249            
250            System.out.println("Translation: "+ v.getSpecies().getCommonName()+" "+v.getId()+" - "+v.getStableID()+" - "+v.getVegaID());
251            
252            DATranscript transcript = v.getTranscript();
253            System.out.println("\ttranscript from translation: "+transcript.getId()+" - "+transcript.getStableID()+" - "+transcript.getVegaID());
254            DAGene gene = transcript.getGene();
255            System.out.println("\tgene from transcript: "+gene.getId()+" - "+gene.getStableID()+" - "+gene.getVegaID());
256            
257            int count = 0; 
258            gene = v.getGene();
259            System.out.println("\tgene from translation: "+gene.getId()+" - "+gene.getStableID()+" - "+gene.getVegaID());         
260            
261            for (DAXRef x:v.getVegaXRefs()) {
262            
263                System.out.println("XREF "+ ++count 
264                        +" : "+x.getPrimaryAccession()  );
265
266                System.out.println("\t"+x.getDBDisplayName() );
267                System.out.println("\t"+x.getDescription() );
268                System.out.println("\t"+x.getDisplayID() );
269                System.out.println("\t"+x.getInfo() );
270                System.out.println("\t"+x.getInfoType() );
271                System.out.println("\t"+x.getPrimaryAccession() );
272                System.out.println("\t"+x.getVersion() );
273            }
274            System.out.println("");
275        }      
276        System.out.println("_________________________________________");
277        
278        DATranscript t = sp.getTranscriptByStableID("ENST00000380152" );
279        DATranslation tr = sp.getTranslationByStableID("ENSP00000369497" );
280        DATranscript t2 = tr.getTranscript();  
281        DAGene g = t.getGene();
282
283        System.out.println("Gene VegaID: "+g.getVegaID());
284        System.out.println("Transcript VegaID: "+t.getVegaID());
285        System.out.println("transcript getCCDS: " +     t.getCcdsID());
286        System.out.println("Transcript retrieved from translation: VegaID: "+t2.getVegaID());
287        System.out.println("Translation VegaID: "+tr.getVegaID());
288
289        if (t.equals(t2)) {
290            System.out.println("The two transcripts ARE equal");
291        } else {
292            System.out.println("The two transcripts are NOT equal");
293        }
294        
295        t = sp.getTranscriptByStableID("ENST00000530893" );
296        System.out.println("transcript "+t.getStableID()+" getCCDS: " +     t.getCcdsID());
297        t = sp.getTranscriptByStableID("ENST00000544455" );
298        System.out.println("transcript "+t.getStableID()+" getCCDS: " +     t.getCcdsID());
299        t = sp.getTranscriptByStableID("ENST00000470094" );
300        System.out.println("transcript "+t.getStableID()+" getCCDS: " +     t.getCcdsID());
301        t = sp.getTranscriptByStableID("ENST00000528762" );
302        System.out.println("transcript "+t.getStableID()+" getCCDS: " +     t.getCcdsID());
303        t = sp.getTranscriptByStableID("ENST00000533776" );
304        System.out.println("transcript "+t.getStableID()+" getCCDS: " +     t.getCcdsID());
305        
306       for (DATranscript trx: sp.getTranscriptsForCcdsID("CCDS9344")) {
307            System.out.println("Transcript for CCDS9344: "+trx.getStableID() +"("+trx.getCcdsID() +")");
308        }
309       for (DATranscript trx: sp.getTranscriptsForCcdsID("CCDS9344.1")) {
310            System.out.println("Transcript for CCDS9344.1: "+trx.getStableID() +"("+trx.getCcdsID() +")");
311        }
312       for (DATranscript trx: sp.getTranscriptsForCcdsID("CCDS9344", "60")) {
313            System.out.println("Transcript for CCDS9344/60: "+trx.getStableID() +"("+trx.getCcdsID() +")");
314        }
315       for (DATranscript trx: sp.getTranscriptsForCcdsID("CCDS9344.1", "60")) {
316            System.out.println("Transcript for CCDS9344.1/60: "+trx.getStableID() +"("+trx.getCcdsID() +")");
317        }
318        
319        
320        System.out.println("*** PIG ***");
321        sp = eReg.getSpeciesByAlias("pig");
322         g = sp.getGeneByStableID("ENSSSCG00000007520");
323         //t = sp.getTranscriptByStableID("ENSSSCT00000034146" );
324         tr = sp.getTranslationByStableID("ENSSSCP00000028626" );
325         t = tr.getTranscript();
326         
327        System.out.println("Pig Gene VegaID: "+g.getVegaID());
328        System.out.println("Pig transcript getCCDS: " +     t.getCcdsID());
329        System.out.println("Pig Transcript VegaID: "+t.getVegaID());
330        System.out.println("Pig Translation VegaID: "+tr.getVegaID());
331
332        System.out.println("*** Pyrococcus ***");//there won't be any Vega annotations
333 
334        DBRegistry bactRegistry =  DBRegistry.createRegistryForDataSourceAtReleaseVersion(DataSource.ENSEMBLBACTERIA,15);
335        DBCollectionSpecies sp1 = (DBCollectionSpecies) bactRegistry.getSpeciesByAlias("Pyrococcus abyssi");
336        
337        DAGene g1 = sp1.getGeneByStableID("EBPYRG00000002639", "15");
338        //DATranscript t1 = sp1.getTranscriptByStableID("EBPYRT00000002639" );
339        DATranslation tr1 = sp1.getTranslationByStableID("EBPYRP00000002570", "15");
340        DATranscript t1 = tr1.getTranscript();
341        
342        System.out.println("Bug Gene VegaID: "+g1.getVegaID());
343        System.out.println("Bug Transcript VegaID: "+t1.getVegaID());
344        System.out.println("Bug Translation VegaID: "+tr1.getVegaID());
345        
346        System.out.println("Bug transcript getCCDS: " +     t1.getCcdsID());
347        
348        
349        System.out.println("\n\n*************************\nCOMPLETED FUNCTIONAL TEST\n*************************\n");
350
351    }
352}