Class RawBioAssay

    • Field Detail

      • MAX_HEADER_NAME_LENGTH

        public static final int MAX_HEADER_NAME_LENGTH
        The maximum length of the name of a header that can be stored in the database. Check the name length against this value before calling setHeader(String, String) to avoid exceptions.
        See Also:
        Constant Field Values
      • MAX_HEADER_VALUE_LENGTH

        public static final int MAX_HEADER_VALUE_LENGTH
        The maximum length of the value of a header that can be stored in the database. Check the value length against this value before calling setHeader(String, String) to avoid exceptions.
        See Also:
        Constant Field Values
      • softwareHasBeenSet

        private boolean softwareHasBeenSet
      • protocolHasBeenSet

        private boolean protocolHasBeenSet
      • arrayDesignHasBeenSet

        private boolean arrayDesignHasBeenSet
    • Method Detail

      • getNew

        public static RawBioAssay getNew​(DbControl dc,
                                         Platform platform,
                                         RawDataType rawDataType)
        Create a new raw bioassay for a specific platform and/or raw data type. If the platform is locked to a specific raw data type, the rawDataType parameter is ignored. If the platform isn't locked the raw data type is required and must be a database-based raw data type. Ie. RawDataType.isStoredInDb() must return true.
        Parameters:
        dc - The DbControl which will be used for permission checking and database access
        platform - The platform of the new raw bioassay, null is not allowed
        rawDataType - The raw data type of the raw bioassay (required if the platform isn't locked to a specific raw data type)
        Returns:
        The new RawBioAssay item
        Since:
        2.5
      • getNew

        public static RawBioAssay getNew​(DbControl dc,
                                         PlatformVariant variant,
                                         RawDataType rawDataType)
        Create a new raw bioassay for a specific platform variant. If the variant is locked to a specific raw data type, the rawDataType parameter is ignored. If the variant isn't locked the raw data type is required and must be a database-based raw data type. Ie. RawDataType.isStoredInDb() must return true.
        Parameters:
        dc - The DbControl which will be used for permission checking and database access
        variant - The platform variant of the new raw bioassay, null is not allowed
        rawDataType - The raw data type of the raw bioassay (required if the platform isn't locked to a specific raw data type)
        Returns:
        The new RawBioAssay item
        Since:
        2.5
      • getType

        public Item getType()
        Description copied from interface: Identifiable
        Get the type of item represented by the object. The returned value is one of the values defined in the Item enumeration.
        Specified by:
        getType in interface Identifiable
        Returns:
        A value indicating the type of item
      • getDifference

        public long getDifference()
        Always 0.
        Specified by:
        getDifference in interface DiskConsumable
        Returns:
        The difference in bytes between now and when the item was loaded, or 0 if this item doesn't report differences
      • getFileSet

        public FileSet getFileSet()
        Description copied from interface: FileStoreEnabled
        Get the file set that collects all files that holds data for this item. If no file set exists a new one is created and automatically saved to the database when DbControl.commit() is called. To check if an item has files without creating a new file set use the FileStoreEnabled.hasFileSet() method.
        Specified by:
        getFileSet in interface FileStoreEnabled
        Returns:
        A file set
        Since:
        2.5
      • hasFileSet

        public boolean hasFileSet()
        Description copied from interface: FileStoreEnabled
        Check if this item has a file set. Always call this method before FileStoreEnabled.getFileSet() to avoid creating a new file set when there is no need for it.
        Specified by:
        hasFileSet in interface FileStoreEnabled
        Returns:
        TRUE if a file set exists, FALSE if not
        Since:
        2.5
      • getPlatform

        public Platform getPlatform()
        Description copied from interface: FileStoreEnabled
        Get the platform the item is related to. The platform is used to limit the DataFileType:s that can be added to the file set.
        Specified by:
        getPlatform in interface FileStoreEnabled
        Returns:
        A platform or null if the items is not related to any platform.
        Since:
        2.5
      • getVariant

        public PlatformVariant getVariant()
        Description copied from interface: FileStoreEnabled
        Get the platform variant the item is related to. The platform is used to limit the DataFileType:s that can be added to the file set.
        Specified by:
        getVariant in interface FileStoreEnabled
        Returns:
        A platform or null if the items is not related to any variant.
        Since:
        2.5
      • getEntryDate

        public Date getEntryDate()
        Description copied from interface: Registered
        Get the date that the item was registered in the database.
        Specified by:
        getEntryDate in interface Registered
        Returns:
        A date or null if this is not known
      • setEntryDate

        public void setEntryDate​(Date entryDate)
        Description copied from interface: Registered
        Set the date the entry was registered in the database. Implementations should only allow this property to be set before the item is first stored in the database. The intention of this method is to facilitate export/import of data between server.
        Specified by:
        setEntryDate in interface Registered
        Parameters:
        entryDate - A date or null to use today's date
      • isUsed

        public boolean isUsed()
                       throws BaseException
        Check if:
        • An Experiment is using this raw bioassay
        • A Transformation is using this raw bio raw data type will also be updated. The platform can't be changed if raw data has been imported to the database.assay
        Overrides:
        isUsed in class BasicItem
        Returns:
        TRUE if this item is used, FALSE otherwise
        Throws:
        BaseException - If not able to tell if item is used or not.
        See Also:
        BasicItem.getUsingItems()
      • setProjectDefaults

        void setProjectDefaults​(Project activeProject)
                         throws BaseException
        Set software, protocol and array design from project default settings.
        Overrides:
        setProjectDefaults in class BasicItem
        Parameters:
        activeProject - The currently active project
        Throws:
        BaseException
        Since:
        2.9
      • setPlatform

        public void setPlatform​(Platform platform,
                                RawDataType rawDataType)
        Set the platform and raw data type of the raw bioassay. This method will set the variant to null. Use setVariant(PlatformVariant, RawDataType) if you want to set a specific variant. If the platform is locked to a raw data type, the rawDataType parameter is ignored. If the platform isn't locked the raw data type must be a database-based raw data type. Ie. RawDataType.isStoredInDb() must return true.
        Parameters:
        platform - The new platform, null is not allowes
        rawDataType - The raw data type, required if the platform doesn't specify a raw data type
        Throws:
        PermissionDeniedException - If the logged in user doesn't have write permission
        InvalidDataException - If platform is null or if the raw data type is not properly specified
        Since:
        2.5
      • setVariant

        public void setVariant​(PlatformVariant variant,
                               RawDataType rawDataType)
        Set the platform and variant of the raw bioassay. This method will automatically set the platform to PlatformVariant.getPlatform(). If the platform variant is locked to a raw data type, the raw data type is also updated. The platform variant can't be changed if raw data has been imported to the database.
        Parameters:
        variant - The new platform variant
        rawDataType - The rawdata type for this platform variant. Null is allowed if rawDataType already has been set.
        Throws:
        PermissionDeniedException - If the logged in user doesn't have write permission
        InvalidDataException - If variant is null
        Since:
        2.5
      • isPlatform

        public boolean isPlatform​(String externalId)
        Check if the platform/variant of this raw bioassay has the given external ID.
        Parameters:
        externalId - The external ID to match
        Returns:
        TRUE if either the variant of platform matches the external ID
        Since:
        2.5
      • isFileOnlyPlatform

        public boolean isFileOnlyPlatform()
        Check if this raw bioassay uses a file-only platform or variant. If the raw bioassay has a platform variant, the setting from the variant is returned, otherwise the setting from the platform.
        Returns:
        TRUE if this raw bioassay use a file-only variant / platform
        Since:
        2.5
      • getRawDataType

        public RawDataType getRawDataType()
        Get the raw data type this raw bioassay uses for the raw data. The raw data type cannot be changed once the raw bioassay has been created.
        Returns:
        A RawDataType object
      • setJob

        public void setJob​(Job job)
                    throws PermissionDeniedException
        Set the job on this raw bioassay that was used to create or import data for it.
        Parameters:
        job - The job or null to clear the existing job
        Throws:
        PermissionDeniedException - If the logged in user doesn't have write permission
        Since:
        3.11.3
      • setParentExtract

        public void setParentExtract​(Extract extract)
                              throws PermissionDeniedException
        Set the Extract this raw bioassay is created from.
        Parameters:
        extract - The parent extract or null if not known
        Throws:
        PermissionDeniedException - If the logged in user doesn't have write permission for the raw bioassay use permission for the scan
        BaseException - If there is another error
        Since:
        3.0
      • isSameArrayDesign

        public boolean isSameArrayDesign​(ArrayDesign design)
        Checks if the given array design is the same as already set on this raw bioassay.
        Since:
        3.0
      • updateArrayDesign

        public void updateArrayDesign​(ArrayDesign arrayDesign,
                                      FeatureIdentificationMethod fiMethod,
                                      ProgressReporter progress)
                               throws PermissionDeniedException,
                                      InvalidDataException
        Set the ArrayDesign this raw data uses. If data has already been imported to the raw bioassay, the reporters for each position on the new array design must match the positions of reporters already present in the raw bioassay.
        Parameters:
        arrayDesign - The ArrayDesign item or null if not known
        fiMethod - The method to use for identifying features on the new array design. Use null to use the method choosen by the new array design. The FeatureIdentificationMethod.FEATURE_ID will not work unless the raw bioassay is already connected to an array design which has features with external ID:s
        progress - An optional progress reporter
        Throws:
        PermissionDeniedException - If the logged in user doesn't have write permission for the raw bioassay use permission for the array design
        InvalidDataException - If the features of the new array design doesn't match the raw data
        BaseException - If there is another error
        Since:
        2.6
      • hasArrayDesign

        public boolean hasArrayDesign()
        Check if this raw bioassay is connected to an array design or not.
        Returns:
        TRUE if it has an array design, FALSE otherwise
      • getSpots

        public int getSpots()
        Utility method that either returns the number of db spots or the number of file spots. If there is spot data in the database, this number is returned, otherwise the number of file spots is returned.
        Returns:
        The number of spots
      • getNumDbSpots

        public int getNumDbSpots()
        Get the number of spots on this raw bioassay that are stored in the database.
        Returns:
        The number of spots in the database
        Since:
        2.5
      • getNumFileSpots

        public int getNumFileSpots()
        Get the number of spots on this raw bioassay that are stored inside files.
        Returns:
        The number of spots in files
        Since:
        2.5
      • setNumFileSpots

        public void setNumFileSpots​(int numSpots)
        Set the number of spots that are stored in files.
        Parameters:
        numSpots - The number of spots
        Since:
        2.5
      • hasData

        public boolean hasData()
        If raw data has been added to this raw bioassay or not. Note that this method checks both data in the database and data in the form of files.
      • getHeader

        public String getHeader​(String name)
        Get the value for the raw data header with the specified name.
        Parameters:
        name - The name of the header
        Returns:
        The value of the header or null if no header with that name exists
      • removeHeaders

        public void removeHeaders()
        Remove all headers from the raw bioassay.
        Since:
        2.5
      • removeHeader

        public void removeHeader​(String name)
        Remove a specific header from the raw bioassay.
        Parameters:
        name - The name of the header
        Since:
        2.5
      • getHeaderNames

        public Set<String> getHeaderNames()
        Get the names of all raw data headers. The set is sorted by name.
        Returns:
        A set containing the header names or an empty set if no headers have been defined
      • getExperiments

        public ItemQuery<Experiment> getExperiments()
        Get a query that returns all experiments where this raw bioassay is used.
        Returns:
        An ItemQuery object
      • getRawDataBatcher

        public RawDataBatcher getRawDataBatcher​(FeatureIdentificationMethod fiMethod,
                                                Job job)
                                         throws PermissionDeniedException,
                                                BaseException
        Get a raw data batcher object which can be used to add raw data to the raw bioassay.
        Parameters:
        fiMethod - The method to use for identifying features, or null to use the method choosen by the array design. This parameter has no meaning if the raw bioassay is not connected to an array design or if the array design has no features.
        job - The job that is currently running, or null if the raw data import is not running as a job
        Returns:
        A RawDataBatcher object. If this method is called multiple times the fiMethod and job parameter is ignored and the same batcher as before is returned
        Throws:
        PermissionDeniedException - If raw data has already been added or the logged in user doesn't have write permission
        BaseException - If there is another error
        Since:
        2.7
      • getRawDataById

        public RawData getRawDataById​(int id,
                                      boolean forceInitialization)
                               throws ItemNotFoundException,
                                      BaseException
        Get a raw data spot when you know the id.
        Parameters:
        id - The id of the spot
        forceInitialization - If TRUE the raw data and associated feature and reporter are sure to be initialized
        Returns:
        An RawData object
        Throws:
        ItemNotFoundException - If no raw data item was found for the given id.
        BaseException - If there some other error.
        Since:
        2.15
      • getRawData

        public DataQuery<RawData> getRawData()
        Get a query that returns the raw data of this raw bioassay.
        Returns:
        A DataQuery object
      • getReporters

        public DataQuery<ReporterData> getReporters()
        Get a query that returns the reporters on this raw bioassay. The query is rooted at the raw data, which means that:
        • All filters, sorting, etc. that works for getRawData() can be used without modifications on this query.
        • The same reporter may be returned multiple times if it is present on multiple spots.
        • 'Null' values may be returned if there are spots without a reporter
        Returns:
        A DataQuery object
        Since:
        2.8
      • validateFeatures

        private void validateFeatures​(DbControl dc,
                                      ArrayDesign design,
                                      FeatureIdentificationMethod fiMethod,
                                      boolean update,
                                      ProgressReporter progress)
        Validate that the features/reporters of the raw data matches the features/reporter on the array design.
        Parameters:
        dc - The DbControl to use for database access
        design - The array design to validate against
        fiMethod - The method to use for identifying features, or null to use the method choosen by the array design
        update - If the raw data should be linked to the new feature or not
        progress - An optional progress reporter
        Since:
        2.6