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;
}
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();
}
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");
}
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));
}
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));
}
Aggregations