package net.sourceforge.seqware.common.metadata;
import io.seqware.common.model.ProcessingStatus;
import io.seqware.common.model.SequencerRunStatus;
import io.seqware.common.model.WorkflowRunStatus;
import java.io.Writer;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
import net.sourceforge.seqware.common.model.Experiment;
import net.sourceforge.seqware.common.model.ExperimentAttribute;
import net.sourceforge.seqware.common.model.ExperimentLibraryDesign;
import net.sourceforge.seqware.common.model.ExperimentSpotDesign;
import net.sourceforge.seqware.common.model.ExperimentSpotDesignReadSpec;
import net.sourceforge.seqware.common.model.FileAttribute;
import net.sourceforge.seqware.common.model.FileProvenanceParam;
import net.sourceforge.seqware.common.model.IUS;
import net.sourceforge.seqware.common.model.IUSAttribute;
import net.sourceforge.seqware.common.model.Lane;
import net.sourceforge.seqware.common.model.LaneAttribute;
import net.sourceforge.seqware.common.model.LibrarySelection;
import net.sourceforge.seqware.common.model.LibrarySource;
import net.sourceforge.seqware.common.model.LibraryStrategy;
import net.sourceforge.seqware.common.model.Organism;
import net.sourceforge.seqware.common.model.ParentAccessionModel;
import net.sourceforge.seqware.common.model.Platform;
import net.sourceforge.seqware.common.model.Processing;
import net.sourceforge.seqware.common.model.ProcessingAttribute;
import net.sourceforge.seqware.common.model.Sample;
import net.sourceforge.seqware.common.model.SampleAttribute;
import net.sourceforge.seqware.common.model.SequencerRun;
import net.sourceforge.seqware.common.model.SequencerRunAttribute;
import net.sourceforge.seqware.common.model.Study;
import net.sourceforge.seqware.common.model.StudyAttribute;
import net.sourceforge.seqware.common.model.StudyType;
import net.sourceforge.seqware.common.model.Workflow;
import net.sourceforge.seqware.common.model.WorkflowAttribute;
import net.sourceforge.seqware.common.model.WorkflowParam;
import net.sourceforge.seqware.common.model.WorkflowRun;
import net.sourceforge.seqware.common.model.WorkflowRunAttribute;
import net.sourceforge.seqware.common.module.ReturnValue;
public interface Metadata {
/**
* <p>
* clean_up.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue clean_up(); // Close out connection to Meta store
/**
* <p>
* mapProcessingIdToAccession.
* </p>
*
* @param processingId
* a int.
* @return a int.
*/
int mapProcessingIdToAccession(int processingId);
/**
* <p>
* addStudy.
* </p>
*
* @param title
* a {@link java.lang.String} object.
* @param description
* a {@link java.lang.String} object.
* @param centerName
* a {@link java.lang.String} object.
* @param centerProjectName
* a {@link java.lang.String} object.
* @param studyTypeId
* a {@link java.lang.Integer} object.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
public ReturnValue addStudy(String title, String description, String centerName, String centerProjectName, Integer studyTypeId);
/**
* <p>
* addExperiment.
* </p>
*
* @param studySwAccession
* a {@link java.lang.Integer} object.
* @param platformId
* a {@link java.lang.Integer} object.
* @param description
* a {@link java.lang.String} object.
* @param title
* a {@link java.lang.String} object.
* @param experimentLibraryDesignId
* the value of experimentLibraryDesignId
* @param experimentSpotDesignId
* the value of experimentSpotDesignId
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
public ReturnValue addExperiment(Integer studySwAccession, Integer platformId, String description, String title,
Integer experimentLibraryDesignId, Integer experimentSpotDesignId);
/**
* <p>
* addSample.
* </p>
*
* @param experimentAccession
* a {@link java.lang.Integer} object.
* @param parentSampleAccession
* @param organismId
* a {@link java.lang.Integer} object.
* @param description
* a {@link java.lang.String} object.
* @param title
* a {@link java.lang.String} object.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
public ReturnValue addSample(Integer experimentAccession, Integer parentSampleAccession, Integer organismId, String description,
String title);
/**
* <p>
* addSample.
* </p>
*
* @param platformAccession
* @param name
* @param description
* a {@link java.lang.String} object.
* @param status
* the value of status
* @param pairdEnd
* @param filePath
* @param skip
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
public ReturnValue addSequencerRun(Integer platformAccession, String name, String description, boolean pairdEnd, boolean skip,
String filePath, SequencerRunStatus status);
/**
* <p>
* addSample.
* </p>
*
* @param sequencerRunAccession
* @param studyTypeId
* @param libraryStrategyId
* @param librarySelectionId
* @param description
* a {@link java.lang.String} object.
* @param laneNumber
* @param librarySourceId
* @param name
* @param skip
* @param cycleDescriptor
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
public ReturnValue addLane(Integer sequencerRunAccession, Integer studyTypeId, Integer libraryStrategyId, Integer librarySelectionId,
Integer librarySourceId, String name, String description, String cycleDescriptor, boolean skip, Integer laneNumber);
/**
* <p>
* addSample.
* </p>
*
* @param laneAccession
* @param sampleAccession
* @param skip
* @param name
* @param barcode
* @param description
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
public ReturnValue addIUS(Integer laneAccession, Integer sampleAccession, String name, String description, String barcode, boolean skip);
/**
* <p>
* getPlatforms.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.model.Platform} object.
*/
public List<Platform> getPlatforms();
/**
* <p>
* getExperiment.
* </p>
*
* @param swAccession
* a int.
* @return a {@link net.sourceforge.seqware.common.model.Experiment} object.
*/
public Experiment getExperiment(int swAccession);
/**
* <p>
* getExperimentLibraryDesigns.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.model.ExperimentLibraryDesign} object.
*/
public List<ExperimentLibraryDesign> getExperimentLibraryDesigns();
/**
* <p>
* getPlatforms.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.model.ExperimentSpotDesignReadSpec} object.
*/
public List<ExperimentSpotDesignReadSpec> getExperimentSpotDesignReadSpecs();
/**
* <p>
* getExperimentSpotDesigns.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.model.ExperimentSpotDesign} object.
*/
public List<ExperimentSpotDesign> getExperimentSpotDesigns();
/**
* <p>
* getOrganisms.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.model.Organism} object.
*/
public List<Organism> getOrganisms();
/**
* <p>
* getStudyTypes.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.model.StudyType} object.
*/
public List<StudyType> getStudyTypes();
/**
* <p>
* getLibraryStrategies.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.model.LibraryStrategy} object.
*/
public List<LibraryStrategy> getLibraryStrategies();
/**
* <p>
* getLibrarySelections.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.model.LibrarySelection} object.
*/
public List<LibrarySelection> getLibrarySelections();
/**
* <p>
* getLibrarySource.
* </p>
*
* @return a {@link net.sourceforge.seqware.common.model.LibrarySource} object.
*/
public List<LibrarySource> getLibrarySource();
/**
* <p>
* add_empty_processing_event.
* </p>
*
* @param parentIDs
* an array of int.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue add_empty_processing_event(int parentIDs[]); // Return Processing
// ID of record just
// created,
// deprecated use
// add_empty_processing_event_by_parent_accession
/**
* <p>
* add_empty_processing_event_by_parent_accession.
* </p>
*
* @param parentAccessions
* an array of int.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue add_empty_processing_event_by_parent_accession(int parentAccessions[]);
/**
* <p>
* add_task_group.
* </p>
*
* @param parentIDs
* an array of int.
* @param childIDs
* an array of int.
* @param algorithm
* a {@link java.lang.String} object.
* @param description
* a {@link java.lang.String} object.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue add_task_group(int parentIDs[], int[] childIDs, String algorithm, String description); // Return
// Processing
// ID
// of
// record
// just
// created
/**
* <p>
* processing_event_to_task_group.
* </p>
*
* @param processingID
* a int.
* @param parentIDs
* an array of int.
* @param childIDs
* an array of int.
* @param algorithm
* a {@link java.lang.String} object.
* @param description
* a {@link java.lang.String} object.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue processing_event_to_task_group(int processingID, int parentIDs[], int[] childIDs, String algorithm, String description); // Return
// Processing
// ID
// of
// record
// just
// created
/**
* <p>
* update_processing_event.
* </p>
*
* @param processingID
* a int.
* @param retval
* a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue update_processing_event(int processingID, ReturnValue retval);
/**
* <p>
* update_processing_status.
* </p>
*
* @param processingID
* a int.
* @param status
* a {@link java.lang.String} object.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue update_processing_status(int processingID, ProcessingStatus status);
/**
* <p>
* associate_processing_event_with_parents_and_child.
* </p>
*
* @param processingID
* a int.
* @param parentIDs
* an array of int.
* @param childIDs
* an array of int.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue associate_processing_event_with_parents_and_child(int processingID, int[] parentIDs, int[] childIDs);
/**
* <p>
* add_workflow_run.
* </p>
*
* @param workflowAccession
* a int.
* @return a int.
*/
int add_workflow_run(int workflowAccession);
/**
* <p>
* update_processing_workflow_run.
* </p>
*
* @param processingID
* a int.
* @param workflowRunID
* a int.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue update_processing_workflow_run(int processingID, int workflowRunID);
/**
* <p>
* add_workflow_run_ancestor.
* </p>
*
* @param workflowRunAccession
* a int.
* @param processingId
* a int.
*/
void add_workflow_run_ancestor(int workflowRunAccession, int processingId);
/**
* <p>
* get_workflow_run_accession.
* </p>
*
* @param workflowRunId
* a int.
* @return a int.
*/
int get_workflow_run_accession(int workflowRunId);
/**
* <p>
* get_workflow_run_id.
* </p>
*
* @param workflowRunAccession
* a int.
* @return a int.
*/
int get_workflow_run_id(int workflowRunAccession);
/**
* <p>
* getWorkflowRun.
* </p>
*
* @param workflowRunAccession
* a int.
* @return a {@link net.sourceforge.seqware.common.model.WorkflowRun} object.
*/
WorkflowRun getWorkflowRun(int workflowRunAccession);
/**
* Get workflow run by status cmd (oozie job id in oozie).
*
* @param statusCmd
* @return
*/
List<WorkflowRun> getWorkflowRunsByStatusCmd(String statusCmd);
/**
* Returns the workflow_runs associated with a group of input files.
*
* Specifically, this resource will return all workflow runs that use at least one of the input file accessions
*
* @param fileAccessions
* @return
*/
List<WorkflowRun> getWorkflowRunsAssociatedWithInputFiles(List<Integer> fileAccessions);
/**
* Returns the workflow_runs associated with a group of input files.
*
* Specifically, this resource will return all workflow runs that use at least one of the input file accessions constrained to the
* provided list of workflow accessions
*
* @param fileAccessions
* @param workflowAccessions
* @return
*/
List<WorkflowRun> getWorkflowRunsAssociatedWithInputFiles(List<Integer> fileAccessions, List<Integer> workflowAccessions);
/**
* Returns the workflow_runs associated with a group of files. Search types are defined as:
*
* @param fileAccessions
* @param search_type
* @return
*/
List<WorkflowRun> getWorkflowRunsAssociatedWithFiles(List<Integer> fileAccessions, String search_type);
/**
* <p>
* get_workflow_info.
* </p>
*
* @param workflowAccession
* a int.
* @return a {@link java.util.Map} object.
*/
Map<String, String> get_workflow_info(int workflowAccession);
/**
* <p>
* linkWorkflowRunAndParent.
* </p>
*
* @param workflowRunId
* a int.
* @param parentAccession
* a int.
* @return a boolean.
* @throws java.sql.SQLException
* if any.
*/
boolean linkWorkflowRunAndParent(int workflowRunId, int parentAccession) throws SQLException;
/**
* <p>
* update_workflow_run.
* </p>
*
* @param workflowRunId
* a int.
* @param pegasusCmd
* a {@link java.lang.String} object.
* @param workflowTemplate
* a {@link java.lang.String} object.
* @param status
* a {@link java.lang.String} object.
* @param statusCmd
* a {@link java.lang.String} object.
* @param workingDirectory
* a {@link java.lang.String} object.
* @param dax
* a {@link java.lang.String} object.
* @param ini
* a {@link java.lang.String} object.
* @param host
* a {@link java.lang.String} object.
* @param stdErr
* a {@link java.lang.String} object.
* @param stdOut
* a {@link java.lang.String} object.
* @param workflowEngine
* the value of workflowEngine
* @param inputFiles
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue update_workflow_run(int workflowRunId, String pegasusCmd, String workflowTemplate, WorkflowRunStatus status,
String statusCmd, String workingDirectory, String dax, String ini, String host, String stdErr, String stdOut,
String workflowEngine, Set<Integer> inputFiles);
void updateWorkflowRun(WorkflowRun wr);
/**
* <p>
* addWorkflow.
* </p>
*
* @param name
* a {@link java.lang.String} object.
* @param version
* a {@link java.lang.String} object.
* @param description
* a {@link java.lang.String} object.
* @param baseCommand
* a {@link java.lang.String} object.
* @param configFile
* a {@link java.lang.String} object.
* @param templateFile
* a {@link java.lang.String} object.
* @param provisionDir
* a {@link java.lang.String} object.
* @param storeProvisionDir
* a boolean.
* @param archiveZip
* a {@link java.lang.String} object.
* @param storeArchiveZip
* a boolean.
* @param workflowClass
* @param workflowEngine
* @param workflowType
* @param seqwareVersion
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue addWorkflow(String name, String version, String description, String baseCommand, String configFile, String templateFile,
String provisionDir, boolean storeProvisionDir, String archiveZip, boolean storeArchiveZip, String workflowClass,
String workflowType, String workflowEngine, String seqwareVersion);
/**
* <p>
* updateWorkflow.
* </p>
*
* @param workflowId
* a int.
* @param permanentBundleLocation
* a {@link java.lang.String} object.
* @return a {@link net.sourceforge.seqware.common.module.ReturnValue} object.
*/
ReturnValue updateWorkflow(int workflowId, String permanentBundleLocation);
/**
* <p>
* listInstalledWorkflows.
* </p>
*
* @return a {@link java.lang.String} object.
*/
String listInstalledWorkflows();
/**
* <p>
* listInstalledWorkflowParams.
* </p>
*
* @param workflowAccession
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
String listInstalledWorkflowParams(String workflowAccession);
/**
* <p>
* getWorkflowAccession.
* </p>
*
* @param name
* a {@link java.lang.String} object.
* @param version
* a {@link java.lang.String} object.
* @return a int.
*/
public int getWorkflowAccession(String name, String version);
/**
* Triggers the file provenance report, this is a costly operation so it should be scheduled via a cron or similar
*/
public void fileProvenanceReportTrigger();
/**
* Retrieves the file provenance report, writing it to the specified output stream as a TSV.
*
* @param params
* the parameters to filter the results
* @param out
* where the TSV content will be written
*/
public void fileProvenanceReport(Map<FileProvenanceParam, List<String>> params, Writer out);
/**
* Retrieves the file provenance report.
*
* @param params
* the parameters to filter the results
* @return the list of each file provenance entry
*/
public List<Map<String, String>> fileProvenanceReport(Map<FileProvenanceParam, List<String>> params);
/**
* Retrieves all environmental information from the web-service
*
* @return
*/
public Map<String, String> getEnvironmentReport();
/**
* Check to see if client seqware version matches server version
*
* @return
*/
public boolean checkClientServerMatchingVersion();
/**
* <p>
* isDuplicateFile.
* </p>
*
* @param filepath
* a {@link java.lang.String} object.
* @return a {@link java.lang.Boolean} object.
*/
public Boolean isDuplicateFile(String filepath);
/**
* <p>
* getWorkflowRunsByStatus.
* </p>
*
* @param status
* a {@link java.lang.String} object.
* @return a {@link java.util.List} object.
*/
public List<WorkflowRun> getWorkflowRunsByStatus(WorkflowRunStatus status);
/**
* <p>
* getWorkflowRunWithWorkflow.
* </p>
*
* @param workflowRunAccession
* a {@link java.lang.String} object.
* @return a {@link net.sourceforge.seqware.common.model.WorkflowRun} object.
*/
public WorkflowRun getWorkflowRunWithWorkflow(String workflowRunAccession);
/**
* <p>
* getAllStudies.
* </p>
*
* @return a {@link java.util.List} object.
*/
public List<Study> getAllStudies();
/**
* <p>
* getSequencerRunReport.
* </p>
*
* @return a {@link java.lang.String} object.
*/
public String getSequencerRunReport();
/**
* <p>
* annotateFile.
* </p>
*
* @param laneSWID
* @param iusAtt
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateFile(int laneSWID, FileAttribute iusAtt, Boolean skip);
/**
* <p>
* annotateFile.
* </p>
*
* @param fileSWID
* a int.
* @param iusAtts
*/
void annotateFile(int fileSWID, Set<FileAttribute> iusAtts);
/**
* <p>
* annotateIUS.
* </p>
*
* @param laneSWID
* a int.
* @param iusAtt
* a {@link net.sourceforge.seqware.common.model.IUSAttribute} object.
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateIUS(int laneSWID, IUSAttribute iusAtt, Boolean skip);
/**
* <p>
* annotateIUS.
* </p>
*
* @param laneSWID
* a int.
* @param iusAtts
* a {@link java.util.Set} object.
*/
void annotateIUS(int laneSWID, Set<IUSAttribute> iusAtts);
/**
* <p>
* annotateLane.
* </p>
*
* @param laneSWID
* a int.
* @param laneAtt
* a {@link net.sourceforge.seqware.common.model.LaneAttribute} object.
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateLane(int laneSWID, LaneAttribute laneAtt, Boolean skip);
/**
* <p>
* annotateLane.
* </p>
*
* @param laneSWID
* a int.
* @param laneAtts
* a {@link java.util.Set} object.
*/
void annotateLane(int laneSWID, Set<LaneAttribute> laneAtts);
/**
* <p>
* annotateSequencerRun.
* </p>
*
* @param sequencerRunSWID
* a int.
* @param sequencerRunAtt
* a {@link net.sourceforge.seqware.common.model.SequencerRunAttribute} object.
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateSequencerRun(int sequencerRunSWID, SequencerRunAttribute sequencerRunAtt, Boolean skip);
/**
* <p>
* annotateSequencerRun.
* </p>
*
* @param sequencerRunSWID
* a int.
* @param sequencerRunAtts
* a {@link java.util.Set} object.
*/
void annotateSequencerRun(int sequencerRunSWID, Set<SequencerRunAttribute> sequencerRunAtts);
/**
* <p>
* annotateExperiment.
* </p>
*
* @param experimentSWID
* a int.
* @param att
* a {@link net.sourceforge.seqware.common.model.ExperimentAttribute} object.
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateExperiment(int experimentSWID, ExperimentAttribute att, Boolean skip);
/**
* <p>
* annotateExperiment.
* </p>
*
* @param experimentSWID
* a int.
* @param atts
* a {@link java.util.Set} object.
*/
void annotateExperiment(int experimentSWID, Set<ExperimentAttribute> atts);
/**
* <p>
* annotateProcessing.
* </p>
*
* @param processingSWID
* a int.
* @param att
* a {@link net.sourceforge.seqware.common.model.ProcessingAttribute} object.
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateProcessing(int processingSWID, ProcessingAttribute att, Boolean skip);
/**
* <p>
* annotateProcessing.
* </p>
*
* @param processingSWID
* a int.
* @param atts
* a {@link java.util.Set} object.
*/
void annotateProcessing(int processingSWID, Set<ProcessingAttribute> atts);
/**
* <p>
* annotateSample.
* </p>
*
* @param sampleSWID
* a int.
* @param att
* a {@link net.sourceforge.seqware.common.model.SampleAttribute} object.
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateSample(int sampleSWID, SampleAttribute att, Boolean skip);
/**
* <p>
* annotateSample.
* </p>
*
* @param sampleSWID
* a int.
* @param atts
* a {@link java.util.Set} object.
*/
void annotateSample(int sampleSWID, Set<SampleAttribute> atts);
/**
* <p>
* annotateStudy.
* </p>
*
* @param studySWID
* a int.
* @param att
* a {@link net.sourceforge.seqware.common.model.StudyAttribute} object.
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateStudy(int studySWID, StudyAttribute att, Boolean skip);
/**
* <p>
* annotateStudy.
* </p>
*
* @param studySWID
* a int.
* @param atts
* a {@link java.util.Set} object.
*/
void annotateStudy(int studySWID, Set<StudyAttribute> atts);
/**
* <p>
* annotateWorkflow.
* </p>
*
* @param workflowSWID
* a int.
* @param att
* a {@link net.sourceforge.seqware.common.model.WorkflowAttribute} object.
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateWorkflow(int workflowSWID, WorkflowAttribute att, Boolean skip);
/**
* <p>
* annotateWorkflow.
* </p>
*
* @param workflowSWID
* a int.
* @param atts
* a {@link java.util.Set} object.
*/
void annotateWorkflow(int workflowSWID, Set<WorkflowAttribute> atts);
/**
* <p>
* annotateWorkflowRun.
* </p>
*
* @param workflowrunSWID
* a int.
* @param att
* a {@link net.sourceforge.seqware.common.model.WorkflowRunAttribute} object.
* @param skip
* a {@link java.lang.Boolean} object.
*/
void annotateWorkflowRun(int workflowrunSWID, WorkflowRunAttribute att, Boolean skip);
/**
* <p>
* annotateWorkflowRun.
* </p>
*
* @param workflowSWID
* a int.
* @param atts
* a {@link java.util.Set} object.
*/
void annotateWorkflowRun(int workflowSWID, Set<WorkflowRunAttribute> atts);
// void annotateFile(int fileSWID, FileAttribute att, Boolean skip);
/**
* <p>
* getWorkflowRunReport.
* </p>
*
* @param workflowRunSWID
* a int.
* @return a {@link java.lang.String} object.
*/
public String getWorkflowRunReport(int workflowRunSWID);
/**
* <p>
* getWorkflowRunReportStdErr.
* </p>
*
* @param workflowRunSWID
* a int.
* @return a {@link java.lang.String} object.
*/
public String getWorkflowRunReportStdErr(int workflowRunSWID);
/**
* <p>
* getWorkflowRunReportStdOut.
* </p>
*
* @param workflowRunSWID
* a int.
* @return a {@link java.lang.String} object.
*/
public String getWorkflowRunReportStdOut(int workflowRunSWID);
/**
* <p>
* getWorkflowRunReport.
* </p>
*
* @param workflowSWID
* a int.
* @param earliestDate
* a {@link java.util.Date} object.
* @param latestDate
* a {@link java.util.Date} object.
* @return a {@link java.lang.String} object.
*/
public String getWorkflowRunReport(int workflowSWID, Date earliestDate, Date latestDate);
/**
* <p>
* getWorkflowRunReport.
* </p>
*
* @param status
* , can be null
* @param earliestDate
* a {@link java.util.Date} object.
* @param latestDate
* a {@link java.util.Date} object.
* @return a {@link java.lang.String} object.
*/
public String getWorkflowRunReport(WorkflowRunStatus status, Date earliestDate, Date latestDate);
public String getWorkflowRunReport(Integer workflowSWID, WorkflowRunStatus status, Date earliestDate, Date latestDate);
/**
* <p>
* getWorkflowRunReport.
* </p>
*
* @param earliestDate
* a {@link java.util.Date} object.
* @param latestDate
* a {@link java.util.Date} object.
* @return a {@link java.lang.String} object.
*/
public String getWorkflowRunReport(Date earliestDate, Date latestDate);
/**
* <p>
* getFile.
* </p>
*
* @param swAccession
* a int.
* @return a {@link net.sourceforge.seqware.common.model.File} object.
*/
public net.sourceforge.seqware.common.model.File getFile(int swAccession);
/**
* <p>
* getWorkflowParams.
* </p>
*
* @param swAccession
* a {@link java.lang.String} object.
* @return a {@link java.util.SortedSet} object.
*/
public SortedSet<WorkflowParam> getWorkflowParams(String swAccession);
/**
* <p>
* getProcessingRelations.
* </p>
*
* @param swAccession
* @return a Dot format string
*/
public String getProcessingRelations(String swAccession);
/**
* Get a workflow
*
* @param workflowAccession
* @return
*/
public Workflow getWorkflow(int workflowAccession);
/**
* Get all of the sequencer runs in the DB.
*
* @return a list of Sequencer runs
*/
public List<SequencerRun> getAllSequencerRuns();
/**
* <p>
* getLane.
* </p>
*
* @param laneAccession
* a int.
* @return a {@link net.sourceforge.seqware.common.model.Lane} object.
*/
public Lane getLane(int laneAccession);
/**
* <p>
* getProcessing.
* </p>
*
* @param processingAccession
* a int.
* @return a {@link net.sourceforge.seqware.common.model.Processing} object.
*/
public Processing getProcessing(int processingAccession);
/**
* <p>
* getSequencerRun.
* </p>
*
* @param sequencerRunAccession
* a int.
* @return a {@link net.sourceforge.seqware.common.model.SequencerRun} object.
*/
public SequencerRun getSequencerRun(int sequencerRunAccession);
/**
* Get Lanes from a sequencer run.
*
* @param sequencerRunAccession
* the sw_accession of the sequencer run
* @return the lanes from the run
*/
public List<Lane> getLanesFrom(int sequencerRunAccession);
/**
* Get IUSes (barcodes) from a lane or sample.
*
* @param laneOrSampleAccession
* the sw_accession of the lane or sample
* @return a list of IUSes (barcodes)
*/
public List<IUS> getIUSFrom(int laneOrSampleAccession);
/**
* Get experiments from a study.
*
* @param studyAccession
* the sw_accession of the study
* @return a list of Experiments
*/
public List<Experiment> getExperimentsFrom(int studyAccession);
/**
* Get the samples from an experiment.
*
* @param experimentAccession
* the sw_accession of the experiment
* @return a list of samples
*/
public List<Sample> getSamplesFrom(int experimentAccession);
/**
* Get the child samples of a parent sample. These samples are further down the sample hierarchy (more specific). For example, if the
* parent sample or donor is ABC_001, the child sample would be ABC_001_Ref for the reference (blood) sample from the donor.
*
* @param parentSampleAccession
* the sw_accession of the parent sample / donor
* @return a list of child samples.
*/
public List<Sample> getChildSamplesFrom(int parentSampleAccession);
/**
* Get the parent samples of a sample. These samples are further up the sample hierarchy (less specific). For example, if the parent
* sample or donor is ABC_001, the child sample would be ABC_001_Ref for the reference (blood) sample from the donor.
*
* @param childSampleAccession
* the sw_accession of the child sample
* @return a list of parent samples / donors
*/
public List<Sample> getParentSamplesFrom(int childSampleAccession);
/**
* Get the models corresponding to potential parent accessions
*
* @param potentialParentAccessions
* @return a list, with null when parent accessions are invalid
*/
public List<ParentAccessionModel> getViaParentAccessions(int[] potentialParentAccessions);
/**
* Get the models corresponding to potential accessions
*
* @param potentialAccessions
* @return a list, with null when accessions are invalid
*/
public List<Object> getViaAccessions(int[] potentialAccessions);
public List<Study> getStudyByName(String name);
public List<Sample> getSampleByName(String name);
public SequencerRun getSequencerRunByName(String name);
/**
* Get ius by sw accession
*
* @param swAccession
* @return
*/
public IUS getIUS(int swAccession);
/**
* Get sample by swa
*
* @param swAccession
* @return
*/
public Sample getSample(int swAccession);
/**
* Get study by swa
*
* @param swAccession
* @return
*/
public Study getStudy(int swAccession);
}