SvAnalyzer { @NotNull public static SvAnalysis run(@NotNull List<LinxFusion> fusions, @NotNull List<LinxBreakend> disruptions, @NotNull ActionabilityAnalyzer actionabilityAnalyzer, @Nullable PatientTumorLocation patientTumorLocation) { List<ReportableGeneDisruption> reportableGeneDisruptions = ReportableGeneDisruptionFactory.convert(disruptions); String primaryTumorLocation = patientTumorLocation != null ? patientTumorLocation.primaryTumorLocation() : null; Map<LinxFusion, List<EvidenceItem>> evidencePerFusion = actionabilityAnalyzer.evidenceForFusions(fusions, primaryTumorLocation); List<EvidenceItem> filteredEvidence = ReportableEvidenceItemFactory.toReportableFlatList(evidencePerFusion); return ImmutableSvAnalysis.builder() .reportableFusions(fusions) .reportableDisruptions(reportableGeneDisruptions) .evidenceItems(filteredEvidence) .build(); } private  SvAnalyzer(); @NotNull static SvAnalysis run(@NotNull List<LinxFusion> fusions, @NotNull List<LinxBreakend> disruptions,
            @NotNull ActionabilityAnalyzer actionabilityAnalyzer, @Nullable PatientTumorLocation patientTumorLocation);  }
@Test public void canAnalyzeFusionsDisruptions() throws IOException { List<LinxFusion> testFusions = Lists.newArrayList(createTestFusionBuilder().geneStart("X").geneEnd("Y").build()); List<LinxBreakend> testDisruptions = Lists.newArrayList(createTestDisruptionBuilder().gene(DISRUPTED_GENE).junctionCopyNumber(1.0).undisruptedCopyNumber(1.0).build()); SvAnalysis analysis = SvAnalyzer.run(testFusions, testDisruptions, testActionabilityAnalyzer(), null); assertEquals(1, analysis.reportableFusions().size()); assertEquals(1, analysis.reportableDisruptions().size()); assertEquals(0, analysis.evidenceItems().size()); }