use of org.broadinstitute.hellbender.utils.tsv.TableColumnCollection in project gatk-protected by broadinstitute.
the class XHMMSegmentCallerBaseIntegrationTest method writeChainInTempFile.
public static File writeChainInTempFile(final XHMMData chain) {
final File result = createTempFile("chain-", ".tab");
//final File result = new File("/tmp/input");
final List<String> sampleNames = IntStream.range(0, chain.data.size()).mapToObj(a -> "SAMPLE_" + a).collect(Collectors.toList());
final List<String> columnNames = new ArrayList<>(sampleNames.size() + 4);
columnNames.addAll(Arrays.asList(TargetTableColumn.CONTIG.toString(), TargetTableColumn.START.toString(), TargetTableColumn.END.toString(), TargetTableColumn.NAME.toString()));
columnNames.addAll(sampleNames);
try (final TableWriter<Integer> writer = new TableWriter<Integer>(result, new TableColumnCollection(columnNames)) {
@Override
protected void composeLine(final Integer record, final DataLine dataLine) {
dataLine.append(chain.targets.get(record).getContig()).append(chain.targets.get(record).getStart()).append(chain.targets.get(record).getEnd()).append(chain.targets.get(record).getName());
for (final List<Double> sampleData : chain.data) {
dataLine.append(sampleData.get(record));
}
}
}) {
writer.writeAllRecords(IntStream.range(0, chain.targets.size()).boxed().collect(Collectors.toList()));
} catch (final IOException ex) {
throw new UncheckedIOException(ex);
}
return result;
}
use of org.broadinstitute.hellbender.utils.tsv.TableColumnCollection in project gatk by broadinstitute.
the class SexGenotypeDataCollection method write.
/**
* Write the collection to a writer. If extended genotyping inference data is available, they will
* be also written as optional columns.
*
* @param dataWriter an instance of {@link Writer}
*/
public void write(@Nonnull final Writer dataWriter) {
if (sexGenotypeDataList.isEmpty()) {
throw new IllegalStateException("The sex genotype data collection is empty");
}
/* check if extended genotyping information is available; first, check for nulls */
boolean extended = true;
if (sexGenotypeDataList.stream().filter(dat -> !dat.hasExtendedGenotypingInfo()).count() > 0) {
extended = false;
}
Set<String> commonGenotypes = new HashSet<>();
/* check if there is a non-empty intersection */
if (extended) {
/* pool all genotypes */
commonGenotypes = new HashSet<>(sexGenotypeDataList.get(0).getSexGenotypesSet());
for (final SexGenotypeData dat : sexGenotypeDataList) {
commonGenotypes = Sets.intersection(commonGenotypes, dat.getSexGenotypesSet());
}
if (commonGenotypes.isEmpty()) {
extended = false;
}
}
final TableColumnCollection columns;
if (extended) {
final List<String> columnNames = new ArrayList<>();
columnNames.addAll(SexGenotypeTableColumn.MANDATORY_SEX_GENOTYPE_COLUMNS.names());
columnNames.addAll(commonGenotypes);
columns = new TableColumnCollection(columnNames);
} else {
columns = new TableColumnCollection(SexGenotypeTableColumn.MANDATORY_SEX_GENOTYPE_COLUMNS.names());
}
try (final SexGenotypeTableWriter writer = new SexGenotypeTableWriter(dataWriter, columns)) {
writer.writeAllRecords(sexGenotypeDataList);
} catch (final IOException e) {
throw new UserException.CouldNotCreateOutputFile("Could not write sex genotype data", e);
}
}
use of org.broadinstitute.hellbender.utils.tsv.TableColumnCollection in project gatk by broadinstitute.
the class CombineReadCountsIntegrationTest method createCountFile.
private void createCountFile(final File output, List<Target> targets, final String sample, final double[] count, final boolean useName, final boolean useCoordinates) throws IOException {
final List<String> columnNames = new ArrayList<>();
if (useCoordinates) {
columnNames.add(TargetTableColumn.CONTIG.toString());
columnNames.add(TargetTableColumn.START.toString());
columnNames.add(TargetTableColumn.END.toString());
}
if (useName) {
columnNames.add(TargetTableColumn.NAME.toString());
}
columnNames.add(sample);
final TableColumnCollection columns = new TableColumnCollection(columnNames);
final TableWriter<Integer> writer = TableUtils.writer(output, columns, (i, d) -> {
final Target target = targets.get(i);
final SimpleInterval interval = target.getInterval();
if (useCoordinates)
d.append(interval.getContig()).append(interval.getStart()).append(interval.getEnd());
if (useName)
d.append(target.getName());
d.append(count[i]);
});
for (int i = 0; i < targets.size(); i++) writer.writeRecord(i);
writer.close();
}
use of org.broadinstitute.hellbender.utils.tsv.TableColumnCollection in project gatk by broadinstitute.
the class CombineReadCountsIntegrationTest method createTargetFile.
private File createTargetFile(final List<Target> targets) throws IOException {
final File result = BaseTest.createTempFile("targets", ".tab");
final TableWriter<Target> writer = TableUtils.writer(result, new TableColumnCollection(TargetTableColumn.CONTIG, TargetTableColumn.START, TargetTableColumn.END, TargetTableColumn.NAME), (t, dataLine) -> {
final SimpleInterval interval = t.getInterval();
dataLine.append(interval.getContig()).append(interval.getStart()).append(interval.getEnd()).append(t.getName());
});
for (final Target target : targets) writer.writeRecord(target);
writer.close();
return result;
}
use of org.broadinstitute.hellbender.utils.tsv.TableColumnCollection in project gatk by broadinstitute.
the class XHMMSegmentCallerBaseIntegrationTest method writeChainInTempFile.
public static File writeChainInTempFile(final XHMMData chain) {
final File result = createTempFile("chain-", ".tab");
//final File result = new File("/tmp/input");
final List<String> sampleNames = IntStream.range(0, chain.data.size()).mapToObj(a -> "SAMPLE_" + a).collect(Collectors.toList());
final List<String> columnNames = new ArrayList<>(sampleNames.size() + 4);
columnNames.addAll(Arrays.asList(TargetTableColumn.CONTIG.toString(), TargetTableColumn.START.toString(), TargetTableColumn.END.toString(), TargetTableColumn.NAME.toString()));
columnNames.addAll(sampleNames);
try (final TableWriter<Integer> writer = new TableWriter<Integer>(result, new TableColumnCollection(columnNames)) {
@Override
protected void composeLine(final Integer record, final DataLine dataLine) {
dataLine.append(chain.targets.get(record).getContig()).append(chain.targets.get(record).getStart()).append(chain.targets.get(record).getEnd()).append(chain.targets.get(record).getName());
for (final List<Double> sampleData : chain.data) {
dataLine.append(sampleData.get(record));
}
}
}) {
writer.writeAllRecords(IntStream.range(0, chain.targets.size()).boxed().collect(Collectors.toList()));
} catch (final IOException ex) {
throw new UncheckedIOException(ex);
}
return result;
}
Aggregations