extensions/net.sf.basedb.relax/trunk/src/net/sf/basedb/relax/dao/Rawdatatype.java

Code
Comments
Other
Rev Date Author Line
4735 05 Apr 18 nicklas 1 package net.sf.basedb.relax.dao;
4735 05 Apr 18 nicklas 2
4735 05 Apr 18 nicklas 3 import java.util.List;
4735 05 Apr 18 nicklas 4
4735 05 Apr 18 nicklas 5 import net.sf.basedb.core.DbControl;
4735 05 Apr 18 nicklas 6 import net.sf.basedb.core.Include;
4735 05 Apr 18 nicklas 7 import net.sf.basedb.core.ItemQuery;
4735 05 Apr 18 nicklas 8 import net.sf.basedb.core.Platform;
4735 05 Apr 18 nicklas 9 import net.sf.basedb.core.PlatformVariant;
4735 05 Apr 18 nicklas 10 import net.sf.basedb.core.RawDataType;
4735 05 Apr 18 nicklas 11 import net.sf.basedb.core.RawDataTypes;
4735 05 Apr 18 nicklas 12 import net.sf.basedb.core.Type;
4735 05 Apr 18 nicklas 13 import net.sf.basedb.core.query.Expressions;
4735 05 Apr 18 nicklas 14 import net.sf.basedb.core.query.Hql;
4735 05 Apr 18 nicklas 15 import net.sf.basedb.core.query.Restrictions;
4735 05 Apr 18 nicklas 16
4735 05 Apr 18 nicklas 17 /**
4735 05 Apr 18 nicklas 18   Used to define raw data types. 
4735 05 Apr 18 nicklas 19   
4735 05 Apr 18 nicklas 20   @author nicklas
4735 05 Apr 18 nicklas 21   @since 1.2
4735 05 Apr 18 nicklas 22 */
4735 05 Apr 18 nicklas 23 public class Rawdatatype 
4735 05 Apr 18 nicklas 24 {
4735 05 Apr 18 nicklas 25
4735 05 Apr 18 nicklas 26   /**
7008 25 Jan 23 nicklas 27     Name of the "sequencing" platform.
7008 25 Jan 23 nicklas 28     @since 1.7
7008 25 Jan 23 nicklas 29   */
7008 25 Jan 23 nicklas 30   public static final String PLATFORM_SEQUENCING_NAME = "Sequencing";
7008 25 Jan 23 nicklas 31
7008 25 Jan 23 nicklas 32   /**
7008 25 Jan 23 nicklas 33     Id of the "sequencing" platform.
7008 25 Jan 23 nicklas 34     @since 1.7
7008 25 Jan 23 nicklas 35   */
7008 25 Jan 23 nicklas 36   public static final String PLATFORM_SEQUENCING_ID = Platform.SEQUENCING;
7008 25 Jan 23 nicklas 37
7008 25 Jan 23 nicklas 38   
7008 25 Jan 23 nicklas 39   /**
7008 25 Jan 23 nicklas 40     Name of the "genotyping" platform.
7008 25 Jan 23 nicklas 41     @since 1.7
7008 25 Jan 23 nicklas 42   */
7008 25 Jan 23 nicklas 43   public static final String PLATFORM_GENOTYPING_NAME = "Genotyping";
7008 25 Jan 23 nicklas 44
7008 25 Jan 23 nicklas 45   /**
7008 25 Jan 23 nicklas 46     Id of the "genotyping" platform.
7008 25 Jan 23 nicklas 47     @since 1.7
7008 25 Jan 23 nicklas 48   */
7008 25 Jan 23 nicklas 49   public static final String PLATFORM_GENOTYPING_ID = "genotyping";
7008 25 Jan 23 nicklas 50   
7008 25 Jan 23 nicklas 51   /**
4735 05 Apr 18 nicklas 52     The Cufflinks raw data type.
4735 05 Apr 18 nicklas 53   */
7008 25 Jan 23 nicklas 54   public static final Rawdatatype CUFFLINKS = new Rawdatatype("Cufflinks", "cufflinks", PLATFORM_SEQUENCING_NAME, PLATFORM_SEQUENCING_ID, PlatformVariant.SEQUENCING_EXPRESSION);
4735 05 Apr 18 nicklas 55
4735 05 Apr 18 nicklas 56   /**
4735 05 Apr 18 nicklas 57     The StringTie raw data type.
4735 05 Apr 18 nicklas 58   */
7008 25 Jan 23 nicklas 59   public static final Rawdatatype STRINGTIE = new Rawdatatype("StringTie", "variant.sequencing.stringtie", PLATFORM_SEQUENCING_NAME, PLATFORM_SEQUENCING_ID, "sequencing.stringtie");
5874 23 Mar 20 nicklas 60
5874 23 Mar 20 nicklas 61   /**
5874 23 Mar 20 nicklas 62     The VariantCall raw data type.
5874 23 Mar 20 nicklas 63     @since 1.6
5874 23 Mar 20 nicklas 64   */
7008 25 Jan 23 nicklas 65   public static final Rawdatatype VARIANT_CALL = new Rawdatatype("VariantCall", "variant.sequencing.variant-call", PLATFORM_SEQUENCING_NAME, PLATFORM_SEQUENCING_ID, "sequencing.variant-call");
5874 23 Mar 20 nicklas 66
7008 25 Jan 23 nicklas 67   /**
7008 25 Jan 23 nicklas 68     The Oncoarray500K raw data type.
7008 25 Jan 23 nicklas 69     @since 1.7
7008 25 Jan 23 nicklas 70   */
7008 25 Jan 23 nicklas 71   public static final Rawdatatype ONCOARRAY_500K =  new Rawdatatype("OncoArray500K", "variant.genotyping.oncoarray500K", PLATFORM_GENOTYPING_NAME, PLATFORM_GENOTYPING_ID, "genotyping.oncoarray500K");
7008 25 Jan 23 nicklas 72
4735 05 Apr 18 nicklas 73   private final String rawDataTypeId;
4735 05 Apr 18 nicklas 74   private final String platformExternalId;
4735 05 Apr 18 nicklas 75   private final String variantExternalId;
4735 05 Apr 18 nicklas 76   
4735 05 Apr 18 nicklas 77   private final String name;
7008 25 Jan 23 nicklas 78   private final String platformName;
4735 05 Apr 18 nicklas 79   
4735 05 Apr 18 nicklas 80   private int platformId;
4735 05 Apr 18 nicklas 81   private int variantId;
4735 05 Apr 18 nicklas 82   
7008 25 Jan 23 nicklas 83   private Rawdatatype(String name, String id, String platformName, String platformId, String variantId)
4735 05 Apr 18 nicklas 84   {
4735 05 Apr 18 nicklas 85     this.name = name;
4735 05 Apr 18 nicklas 86     this.rawDataTypeId = id;
7008 25 Jan 23 nicklas 87     this.platformName = platformName;
4735 05 Apr 18 nicklas 88     this.platformExternalId = platformId;
4735 05 Apr 18 nicklas 89     this.variantExternalId = variantId;
4735 05 Apr 18 nicklas 90   }
4735 05 Apr 18 nicklas 91
4735 05 Apr 18 nicklas 92   public String getName()
4735 05 Apr 18 nicklas 93   {
4735 05 Apr 18 nicklas 94     return name;
4735 05 Apr 18 nicklas 95   }
4735 05 Apr 18 nicklas 96   
4735 05 Apr 18 nicklas 97   public String getId()
4735 05 Apr 18 nicklas 98   {
4735 05 Apr 18 nicklas 99     return rawDataTypeId;
4735 05 Apr 18 nicklas 100   }
4735 05 Apr 18 nicklas 101   
7008 25 Jan 23 nicklas 102   /**
7008 25 Jan 23 nicklas 103     @since 1.7
7008 25 Jan 23 nicklas 104   */
7008 25 Jan 23 nicklas 105   public String getPlatformName()
7008 25 Jan 23 nicklas 106   {
7008 25 Jan 23 nicklas 107     return platformName;
7008 25 Jan 23 nicklas 108   }
7008 25 Jan 23 nicklas 109   
4735 05 Apr 18 nicklas 110   public String getPlatformId()
4735 05 Apr 18 nicklas 111   {
4735 05 Apr 18 nicklas 112     return platformExternalId;
4735 05 Apr 18 nicklas 113   }
4735 05 Apr 18 nicklas 114
4735 05 Apr 18 nicklas 115   public String getVariantId()
4735 05 Apr 18 nicklas 116   {
4735 05 Apr 18 nicklas 117     return variantExternalId;
4735 05 Apr 18 nicklas 118   }
4735 05 Apr 18 nicklas 119   
4735 05 Apr 18 nicklas 120   public RawDataType getRawDataType()
4735 05 Apr 18 nicklas 121   {
4735 05 Apr 18 nicklas 122     return RawDataTypes.getSafeRawDataType(rawDataTypeId);
4735 05 Apr 18 nicklas 123   }
4735 05 Apr 18 nicklas 124   
4735 05 Apr 18 nicklas 125   public Platform getPlatform(DbControl dc)
4735 05 Apr 18 nicklas 126   {
4735 05 Apr 18 nicklas 127     Platform p = null;
4735 05 Apr 18 nicklas 128     if (platformId == 0)
4735 05 Apr 18 nicklas 129     {
4735 05 Apr 18 nicklas 130        p = Platform.getByExternalId(dc, platformExternalId);
4735 05 Apr 18 nicklas 131        platformId = p.getId();
4735 05 Apr 18 nicklas 132     }
4735 05 Apr 18 nicklas 133     else
4735 05 Apr 18 nicklas 134     {
4735 05 Apr 18 nicklas 135       p = Platform.getById(dc, platformId);
4735 05 Apr 18 nicklas 136     }
4735 05 Apr 18 nicklas 137     return p;
4735 05 Apr 18 nicklas 138   }
4735 05 Apr 18 nicklas 139   
4735 05 Apr 18 nicklas 140   public PlatformVariant getVariant(DbControl dc)
4735 05 Apr 18 nicklas 141   {
4735 05 Apr 18 nicklas 142     PlatformVariant v = null;
4735 05 Apr 18 nicklas 143     if (variantId == 0)
4735 05 Apr 18 nicklas 144     {
4735 05 Apr 18 nicklas 145        v = PlatformVariant.getByExternalId(dc, variantExternalId);
4735 05 Apr 18 nicklas 146        variantId = v.getId();
4735 05 Apr 18 nicklas 147     }
4735 05 Apr 18 nicklas 148     else
4735 05 Apr 18 nicklas 149     {
4735 05 Apr 18 nicklas 150       v = PlatformVariant.getById(dc, variantId);
4735 05 Apr 18 nicklas 151     }
4735 05 Apr 18 nicklas 152     return v;
4735 05 Apr 18 nicklas 153   }
4735 05 Apr 18 nicklas 154   
4735 05 Apr 18 nicklas 155   /**
4735 05 Apr 18 nicklas 156     List all platform variants registered in BASE with an external id matching this 
4735 05 Apr 18 nicklas 157     definition. Normally, only a single item should be returned.
4735 05 Apr 18 nicklas 158   */
4735 05 Apr 18 nicklas 159   public List<PlatformVariant> list(DbControl dc)
4735 05 Apr 18 nicklas 160   {
4735 05 Apr 18 nicklas 161     ItemQuery<PlatformVariant> query = PlatformVariant.getQuery();
4735 05 Apr 18 nicklas 162     query.restrict(
4735 05 Apr 18 nicklas 163       Restrictions.eq(
4735 05 Apr 18 nicklas 164         Hql.property("externalId"), 
4735 05 Apr 18 nicklas 165         Expressions.parameter("eid", getVariantId(), Type.STRING)
4735 05 Apr 18 nicklas 166       ));
4735 05 Apr 18 nicklas 167     query.include(Include.ALL);
4735 05 Apr 18 nicklas 168     return query.list(dc);
4735 05 Apr 18 nicklas 169   }
4735 05 Apr 18 nicklas 170
4735 05 Apr 18 nicklas 171
4735 05 Apr 18 nicklas 172 }