Search in sources :

Example 1 with Run

use of com.hartwig.api.model.Run in project platinum by hartwigmedical.

the class ApiRerun method create.

Long create(final String sampleId) {
    try {
        List<Sample> samples = sampleApi.list(null, null, null, null, SampleType.TUMOR, sampleId);
        for (Sample sample : samples) {
            Optional<SampleSet> maybeSampleSet = OnlyOne.ofNullable(setApi.list(null, sample.getId(), true), SampleSet.class);
            if (maybeSampleSet.isPresent()) {
                SampleSet sampleSet = maybeSampleSet.get();
                if (runApi.list(null, null, sampleSet.getId(), null, null, null, null, null).stream().anyMatch(r1 -> r1.getStatus().equals(Status.VALIDATED))) {
                    return OnlyOne.ofNullable(runApi.list(null, Ini.RERUN_INI, sampleSet.getId(), version, version, null, null, null), Run.class).filter(r -> !r.getStatus().equals(Status.INVALIDATED)).map(r -> {
                        LOGGER.info("Using existing run for sample [{}] id [{}]", sampleId, r.getId());
                        return r.getId();
                    }).orElseGet(() -> {
                        final Long id = runApi.create(new CreateRun().bucket(bucket).cluster("gcp").context("RESEARCH").ini(Ini.RERUN_INI).version(version).status(Status.PENDING).setId(sampleSet.getId())).getId();
                        LOGGER.info("Created API run for sample [{}] id [{}]", sampleId, id);
                        return id;
                    });
                }
            }
        }
    } catch (Exception e) {
        LOGGER.error("Unable to create run for [{}] reason [{}]", sampleId, e.getMessage());
        return null;
    }
    return null;
}
Also used : Run(com.hartwig.api.model.Run) Logger(org.slf4j.Logger) Status(com.hartwig.api.model.Status) LoggerFactory(org.slf4j.LoggerFactory) RunApi(com.hartwig.api.RunApi) OnlyOne(com.hartwig.api.helpers.OnlyOne) SampleSet(com.hartwig.api.model.SampleSet) SampleType(com.hartwig.api.model.SampleType) List(java.util.List) ApiException(com.hartwig.ApiException) SetApi(com.hartwig.api.SetApi) CreateRun(com.hartwig.api.model.CreateRun) Optional(java.util.Optional) SampleApi(com.hartwig.api.SampleApi) Sample(com.hartwig.api.model.Sample) Ini(com.hartwig.api.model.Ini) SampleSet(com.hartwig.api.model.SampleSet) CreateRun(com.hartwig.api.model.CreateRun) Sample(com.hartwig.api.model.Sample) Run(com.hartwig.api.model.Run) CreateRun(com.hartwig.api.model.CreateRun) ApiException(com.hartwig.ApiException)

Example 2 with Run

use of com.hartwig.api.model.Run in project pipeline5 by hartwigmedical.

the class DiagnosticSomaticMetadataApi method get.

@Override
public SomaticRunMetadata get() {
    String runBucket = ofNullable(run.getBucket()).orElseThrow();
    RunSet set = run.getSet();
    List<Sample> samplesBySet = sampleApi.list(null, null, null, set.getId(), null, null);
    return SomaticRunMetadata.builder().bucket(runBucket).set(set.getName()).maybeReference(find(SampleType.REF, samplesBySet).map(referenceSample -> toMetadata(referenceSample, run, SingleSampleRunMetadata.SampleType.REFERENCE, anonymizer))).maybeTumor(find(SampleType.TUMOR, samplesBySet).map(referenceSample1 -> toMetadata(referenceSample1, run, SingleSampleRunMetadata.SampleType.TUMOR, anonymizer))).build();
}
Also used : Run(com.hartwig.api.model.Run) Logger(org.slf4j.Logger) Optional.ofNullable(java.util.Optional.ofNullable) PipelineState(com.hartwig.pipeline.PipelineState) LoggerFactory(org.slf4j.LoggerFactory) RunApi(com.hartwig.api.RunApi) StagedOutputPublisher(com.hartwig.pipeline.transfer.staged.StagedOutputPublisher) SampleType(com.hartwig.api.model.SampleType) List(java.util.List) RunSet(com.hartwig.api.model.RunSet) Optional(java.util.Optional) SampleApi(com.hartwig.api.SampleApi) Sample(com.hartwig.api.model.Sample) PipelineStatus(com.hartwig.pipeline.execution.PipelineStatus) Collections(java.util.Collections) RunSet(com.hartwig.api.model.RunSet) Sample(com.hartwig.api.model.Sample)

Example 3 with Run

use of com.hartwig.api.model.Run in project pipeline5 by hartwigmedical.

the class StagedOutputPublisherTest method publishesDnaSecondaryAnalysisOnBam.

@Test
public void publishesDnaSecondaryAnalysisOnBam() throws Exception {
    victim = new StagedOutputPublisher(setResolver, bucket, publisher, OBJECT_MAPPER, Optional.of(new Run().ini(Ini.SOMATIC_INI.getValue()).id(1L)), Context.DIAGNOSTIC, false, false);
    verifySecondaryAnalysis("bam", "bai", "aligner");
}
Also used : Run(com.hartwig.api.model.Run) Test(org.junit.Test)

Example 4 with Run

use of com.hartwig.api.model.Run in project pipeline5 by hartwigmedical.

the class SomaticMetadataApiProvider method diagnosticRun.

public SomaticMetadataApi diagnosticRun(final Integer setId) {
    HmfApi api = HmfApi.create(arguments.sbpApiUrl());
    Run run = api.runs().get((long) arguments.sbpApiRunId().orElseThrow());
    return new DiagnosticSomaticMetadataApi(run, api.runs(), api.samples(), createPublisher(SetResolver.forApi(api.sets()), Optional.of(run), arguments.context(), false), new Anonymizer(arguments));
}
Also used : HmfApi(com.hartwig.api.HmfApi) Run(com.hartwig.api.model.Run)

Example 5 with Run

use of com.hartwig.api.model.Run in project pipeline5 by hartwigmedical.

the class SomaticMetadataApiProvider method researchRun.

public SomaticMetadataApi researchRun(final String biopsyName) {
    HmfApi api = HmfApi.create(arguments.sbpApiUrl());
    Optional<Run> run = arguments.sbpApiRunId().map(id -> api.runs().get((long) id));
    return new ResearchMetadataApi(api.samples(), api.sets(), api.runs(), run, biopsyName, arguments, createPublisher(SetResolver.forApi(api.sets()), run.or(() -> Optional.of(new Run().id(0L))), Context.RESEARCH, true), new Anonymizer(arguments));
}
Also used : HmfApi(com.hartwig.api.HmfApi) Run(com.hartwig.api.model.Run)

Aggregations

Run (com.hartwig.api.model.Run)8 RunApi (com.hartwig.api.RunApi)3 SampleApi (com.hartwig.api.SampleApi)3 Publisher (com.google.cloud.pubsub.v1.Publisher)2 Bucket (com.google.cloud.storage.Bucket)2 HmfApi (com.hartwig.api.HmfApi)2 SetApi (com.hartwig.api.SetApi)2 Sample (com.hartwig.api.model.Sample)2 SampleType (com.hartwig.api.model.SampleType)2 UpdateRun (com.hartwig.api.model.UpdateRun)2 PipelineState (com.hartwig.pipeline.PipelineState)2 StagedOutputPublisher (com.hartwig.pipeline.transfer.staged.StagedOutputPublisher)2 List (java.util.List)2 Optional (java.util.Optional)2 Before (org.junit.Before)2 Test (org.junit.Test)2 Logger (org.slf4j.Logger)2 LoggerFactory (org.slf4j.LoggerFactory)2 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 ApiException (com.hartwig.ApiException)1