use of org.dishevelled.bio.assembly.gfa1.Header in project org.hl7.fhir.core by hapifhir.
the class ClientHeadersTest method removeHeader.
@Test
@DisplayName("Happy path remove existing header.")
void removeHeader() {
clientHeaders.addHeader(h1);
clientHeaders.addHeader(h2);
clientHeaders.addHeader(h3);
clientHeaders.removeHeader(h2);
Assertions.assertEquals(2, clientHeaders.headers().size());
clientHeaders.removeHeader(new Header("header3", "value3"));
Assertions.assertEquals(1, clientHeaders.headers().size());
}
use of org.dishevelled.bio.assembly.gfa1.Header in project dishevelled-bio by heuermh.
the class Gfa1ToGfa2 method call.
@Override
public Integer call() throws Exception {
PrintWriter writer = null;
try {
writer = writer(outputGfa2File);
final PrintWriter w = writer;
Gfa1Reader.stream(reader(inputGfa1File), new Gfa1Adapter() {
@Override
public boolean header(final Header header) {
// convert VN:Z:1.0 to VN:Z:2.0 annotation if present
if (header.getAnnotations().containsKey("VN")) {
if (!"1.0".equals(header.getAnnotations().get("VN").getValue())) {
throw new RuntimeException("cannot convert input as GFA 1.0, was " + header.getAnnotations().get("VN").getValue());
}
Map<String, Annotation> annotations = new HashMap<String, Annotation>();
annotations.put("VN", new Annotation("VN", "Z", "2.0"));
for (Annotation annotation : header.getAnnotations().values()) {
if (!"VN".equals(annotation.getName())) {
annotations.put(annotation.getName(), annotation);
}
}
Gfa2Writer.write(new org.dishevelled.bio.assembly.gfa2.Header(annotations), w);
} else {
Gfa2Writer.write(new org.dishevelled.bio.assembly.gfa2.Header(header.getAnnotations()), w);
}
return true;
}
@Override
public boolean segment(final Segment segment) {
if (segment.getSequence() != null) {
Gfa2Writer.write(new org.dishevelled.bio.assembly.gfa2.Segment(segment.getId(), segment.getSequence().length(), segment.getSequence(), segment.getAnnotations()), w);
} else if (segment.getAnnotations().containsKey("LN")) {
Gfa2Writer.write(new org.dishevelled.bio.assembly.gfa2.Segment(segment.getId(), Integer.parseInt(segment.getAnnotations().get("LN").getValue()), segment.getSequence(), segment.getAnnotations()), w);
} else {
Gfa2Writer.write(new org.dishevelled.bio.assembly.gfa2.Segment(segment.getId(), 0, segment.getSequence(), segment.getAnnotations()), w);
}
return true;
}
@Override
public boolean link(final Link link) {
Position unknown = new Position(0, false);
Alignment alignment = link.getOverlap() == null ? null : Alignment.valueOf(link.getOverlap());
Gfa2Writer.write(new org.dishevelled.bio.assembly.gfa2.Edge(null, toGfa2Reference(link.getSource()), toGfa2Reference(link.getTarget()), unknown, unknown, unknown, unknown, alignment, link.getAnnotations()), w);
return true;
}
@Override
public boolean containment(final Containment containment) {
Position unknown = new Position(0, false);
Position targetStart = new Position(containment.getPosition(), false);
Alignment alignment = containment.getOverlap() == null ? null : Alignment.valueOf(containment.getOverlap());
Gfa2Writer.write(new org.dishevelled.bio.assembly.gfa2.Edge(null, toGfa2Reference(containment.getContainer()), toGfa2Reference(containment.getContained()), unknown, unknown, targetStart, unknown, alignment, containment.getAnnotations()), w);
return true;
}
@Override
public boolean path(final Path path) {
Gfa2Writer.write(new org.dishevelled.bio.assembly.gfa2.Path(path.getName(), toGfa2References(path.getSegments()), path.getAnnotations()), w);
return true;
}
});
return 0;
} finally {
try {
writer.close();
} catch (Exception e) {
// empty
}
}
}
use of org.dishevelled.bio.assembly.gfa1.Header in project dishevelled-bio by heuermh.
the class SegmentsToCytoscapeNodes method call.
@Override
public Integer call() throws Exception {
PrintWriter nodesWriter = null;
try {
nodesWriter = writer(outputNodesFile);
nodesWriter.println(HEADER);
final PrintWriter nw = nodesWriter;
Gfa1Reader.stream(reader(inputGfa1File), new Gfa1Adapter() {
@Override
public boolean segment(final Segment segment) {
StringBuilder sb = new StringBuilder();
sb.append(segment.getName());
sb.append("\t");
sb.append(segment.getSequenceOpt().orElse(""));
sb.append("\t");
sb.append(segment.containsLength() ? segment.getLength() : "");
sb.append("\t");
sb.append(segment.containsReadCount() ? segment.getReadCount() : "");
sb.append("\t");
sb.append(segment.containsFragmentCount() ? segment.getFragmentCount() : "");
sb.append("\t");
sb.append(segment.containsKmerCount() ? segment.getKmerCount() : "");
sb.append("\t");
sb.append(segment.containsSequenceChecksum() ? String.valueOf(segment.getSequenceChecksum()) : "");
sb.append("\t");
sb.append(segment.getSequenceUriOpt().orElse(""));
nw.println(sb);
return true;
}
});
return 0;
} finally {
try {
nodesWriter.close();
} catch (Exception e) {
// empty
}
}
}
use of org.dishevelled.bio.assembly.gfa1.Header in project dishevelled-bio by heuermh.
the class TraversalsToPropertyGraph method call.
@Override
public Integer call() throws Exception {
PrintWriter edgesWriter = null;
try {
edgesWriter = writer(outputEdgesFile);
edgesWriter.println(HEADER);
final PrintWriter ew = edgesWriter;
Gfa1Reader.stream(reader(inputGfa1File), new Gfa1Adapter() {
@Override
public boolean traversal(final Traversal traversal) {
if (!traversal.containsId()) {
throw new IllegalArgumentException("traversal identifiers are required for property graph CSV format");
}
StringBuilder sb = new StringBuilder();
sb.append(traversal.getId());
sb.append(",");
sb.append(traversal.getSource().getName());
sb.append(",");
sb.append(traversal.getTarget().getName());
sb.append(",");
sb.append(traversal.getSource().getOrientation().getSymbol());
sb.append(",");
sb.append(traversal.getTarget().getOrientation().getSymbol());
sb.append(",t,");
sb.append(traversal.getPathName());
sb.append(",");
sb.append(traversal.getOrdinal());
sb.append(",");
sb.append(traversal.getOverlapOpt().orElse(""));
ew.println(sb);
return true;
}
});
return 0;
} finally {
try {
edgesWriter.close();
} catch (Exception e) {
// empty
}
}
}
use of org.dishevelled.bio.assembly.gfa1.Header in project okhttp by square.
the class Case method getHeaders.
public List<Header> getHeaders() {
List<Header> result = new ArrayList<>();
for (Map<String, String> inputHeader : headers) {
Map.Entry<String, String> entry = inputHeader.entrySet().iterator().next();
result.add(new Header(entry.getKey(), entry.getValue()));
}
return result;
}
Aggregations