Permalink
Browse files

added some classes

  • Loading branch information...
vadimzalunin committed Oct 28, 2012
1 parent 5eff409 commit 5778c11a4a3c37359099ff5b2671f704f41731cf
Showing with 318 additions and 127 deletions.
  1. +0 −1 .classpath
  2. +1 −1 .project
  3. BIN bin/net/sf/block/Format.class
  4. BIN bin/net/sf/cram/BLOCK$BaseCategory.class
  5. BIN bin/net/sf/cram/BLOCK$BaseCategoryType.class
  6. BIN bin/net/sf/cram/BLOCK$Block.class
  7. BIN bin/net/sf/cram/BLOCK$BlockContentType.class
  8. BIN bin/net/sf/cram/BLOCK$Container.class
  9. BIN bin/net/sf/cram/BLOCK$PreservationPolicy.class
  10. BIN bin/net/sf/cram/BLOCK$QualityScoreTreatment.class
  11. BIN bin/net/sf/cram/BLOCK$QualityScoreTreatmentType.class
  12. BIN bin/net/sf/cram/BLOCK$ReadCategory.class
  13. BIN bin/net/sf/cram/BLOCK$ReadCategoryType.class
  14. BIN bin/net/sf/cram/BLOCK$ReferenceTracks.class
  15. BIN bin/net/sf/cram/BLOCK$Slice.class
  16. BIN bin/net/sf/cram/BLOCK.class
  17. BIN bin/net/sf/cram/Coder$MyDataOutputStream.class
  18. BIN bin/net/sf/cram/Coder.class
  19. BIN bin/net/sf/cram/CramRecord.class
  20. BIN bin/net/sf/cram/CramRecordCodec.class
  21. BIN bin/net/sf/cram/SpotAssemblyTest.class
  22. BIN bin/net/sf/cram/Utils.class
  23. BIN bin/net/sf/cram/encoding/BALengthEncoding$BALengthCodec.class
  24. BIN bin/net/sf/cram/encoding/BALengthEncoding.class
  25. BIN bin/net/sf/cram/encoding/DataWriterFactory$DefaultDataWriter.class
  26. BIN bin/net/sf/cram/encoding/DataWriterFactory.class
  27. BIN bin/net/sf/cram/encoding/ExternalByteArrayCodec.class
  28. BIN bin/net/sf/cram/encoding/ExternalByteArrayEncoding.class
  29. BIN bin/net/sf/cram/encoding/ExternalByteEncoding.class
  30. BIN bin/net/sf/cram/encoding/GolombCodec.class
  31. BIN bin/net/sf/cram/encoding/GolombEncoding.class
  32. BIN bin/net/sf/cram/encoding/HuffmanEncoding.class
  33. BIN bin/net/sf/cram/encoding/NullEncoding.class
  34. BIN bin/net/sf/cram/encoding/SliceContext$Slice.class
  35. BIN bin/net/sf/cram/encoding/Writer.class
  36. BIN bin/net/sf/cram/encoding/factory/AbstractCodecFactory.class
  37. BIN bin/net/sf/cram/encoding/factory/BaseQualityCodecFactory.class
  38. BIN bin/net/sf/cram/encoding/factory/BitCodecFactory.class
  39. BIN bin/net/sf/cram/encoding/factory/CramBitCodecFactory.class
  40. BIN bin/net/sf/cram/encoding/factory/DefaultBitCodecFactory.class
  41. BIN bin/net/sf/cram/encoding/factory/DeletionVariationCodecFactory.class
  42. BIN bin/net/sf/cram/encoding/factory/InsertBaseCodecFactory.class
  43. BIN bin/net/sf/cram/encoding/factory/InsertionVariationCodecFactory.class
  44. BIN bin/net/sf/cram/encoding/factory/ReadBaseCodecFactory.class
  45. BIN bin/net/sf/cram/encoding/factory/ReadFeatureCodecFactory.class
  46. BIN bin/net/sf/cram/encoding/factory/ReadTagCollectionCodecFactory$ReadTagCollectionCodec.class
  47. BIN bin/net/sf/cram/encoding/factory/ReadTagCollectionCodecFactory.class
  48. BIN bin/net/sf/cram/encoding/factory/RecordCodecFactory.class
  49. BIN bin/net/sf/cram/encoding/factory/SubstitutionVariationCodecFactory.class
  50. BIN bin/net/sf/cram/encoding/read_features/ReadFeatureCodec.class
  51. BIN bin/net/sf/cram/encoding/read_features/ReadTagCollectionCodec.class
  52. BIN bin/net/sf/cram/stats/CompressionHeaderFactory$HuffmanIntParams.class
  53. BIN bin/net/sf/cram/stats/CompressionHeaderFactory$HuffmanIntParamsBuilder.class
  54. BIN bin/net/sf/cram/stats/CompressionHeaderFactory$MutableInt.class
  55. BIN bin/net/sf/cram/stats/CompressionHeaderFactory.class
  56. BIN bin/net/sf/cram/stats/CramStats$ValueFrequencyHolder.class
  57. BIN bin/net/sf/cram/stats/CramStats.class
  58. BIN bin/net/sf/cram/stats/LimitedBag.class
  59. BIN bin/net/sf/cram/stats/NumberCodecOptimiser.class
  60. BIN bin/net/sf/cram/stats/ReadTagStats.class
  61. BIN bin/net/sf/samtools/BinaryTagCodec.class
  62. BIN bin/org/apache/commons/math/stat/HashMapFrequency.class
  63. BIN bin/uk/ac/ebi/ena/sra/compression/huffman/HuffmanCode.class
  64. BIN bin/uk/ac/ebi/ena/sra/cram/io/DefaultBitInputStream.class
  65. BIN bin/uk/ac/ebi/ena/sra/cram/io/DefaultBitOutputStream.class
  66. BIN bin/uk/ac/ebi/ena/sra/cram/io/IOUtils.class
  67. BIN bin/uk/ac/ebi/ena/sra/cram/io/LongBufferBitInputStream.class
  68. BIN bin/uk/ac/ebi/ena/sra/cram/io/NullBitOutputStream.class
  69. +0 −1 src/main/java/net/sf/cram/BLOCK.java
  70. +3 −22 src/main/java/net/sf/cram/Coder.java
  71. +4 −5 src/main/java/net/sf/cram/CramRecord.java
  72. +1 −3 src/main/java/net/sf/cram/CramRecordCodec.java
  73. +282 −0 src/main/java/net/sf/cram/ReadTag.java
  74. +0 −3 src/main/java/net/sf/cram/SpotAssemblyTest.java
  75. +1 −6 src/main/java/net/sf/cram/Utils.java
  76. +0 −2 src/main/java/net/sf/cram/encoding/BALengthEncoding.java
  77. +0 −1 src/main/java/net/sf/cram/encoding/DataWriterFactory.java
  78. +0 −1 src/main/java/net/sf/cram/encoding/ExternalByteArrayCodec.java
  79. +0 −1 src/main/java/net/sf/cram/encoding/ExternalByteEncoding.java
  80. +7 −7 src/main/java/net/sf/cram/encoding/Writer.java
  81. +0 −1 src/main/java/net/sf/cram/encoding/factory/AbstractCodecFactory.java
  82. +0 −3 src/main/java/net/sf/cram/encoding/factory/BaseQualityCodecFactory.java
  83. +0 −1 src/main/java/net/sf/cram/encoding/factory/BitCodecFactory.java
  84. +0 −4 src/main/java/net/sf/cram/encoding/factory/CramBitCodecFactory.java
  85. +0 −1 src/main/java/net/sf/cram/encoding/factory/DefaultBitCodecFactory.java
  86. +0 −3 src/main/java/net/sf/cram/encoding/factory/DeletionVariationCodecFactory.java
  87. +0 −3 src/main/java/net/sf/cram/encoding/factory/InsertBaseCodecFactory.java
  88. +0 −3 src/main/java/net/sf/cram/encoding/factory/InsertionVariationCodecFactory.java
  89. +0 −3 src/main/java/net/sf/cram/encoding/factory/ReadBaseCodecFactory.java
  90. +1 −4 src/main/java/net/sf/cram/encoding/factory/ReadFeatureCodecFactory.java
  91. +1 −4 src/main/java/net/sf/cram/encoding/factory/ReadTagCollectionCodecFactory.java
  92. +1 −4 src/main/java/net/sf/cram/encoding/factory/RecordCodecFactory.java
  93. +0 −3 src/main/java/net/sf/cram/encoding/factory/SubstitutionVariationCodecFactory.java
  94. +1 −0 src/main/java/net/sf/cram/encoding/read_features/ReadTagCollectionCodec.java
  95. +1 −1 src/main/java/net/sf/cram/stats/CompressionHeaderFactory.java
  96. +10 −22 src/main/java/net/sf/cram/stats/CramStats.java
  97. +0 −4 src/main/java/net/sf/cram/stats/LimitedBag.java
  98. +0 −5 src/main/java/net/sf/cram/stats/NumberCodecOptimiser.java
  99. +1 −1 src/main/java/net/sf/cram/stats/ReadTagStats.java
  100. +3 −3 src/main/java/net/sf/samtools/BinaryTagCodec.java
View
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/test/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="lib" path="lib/commons-collections-3.2.1.jar"/>
<classpathentry kind="lib" path="lib/commons-math-2.2.jar"/>
View
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>cram1</name>
+ <name>cramone</name>
<comment></comment>
<projects>
</projects>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View
Binary file not shown.
Binary file not shown.
View
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -9,7 +9,6 @@
import net.sf.block.ExposedByteArrayOutputStream;
import net.sf.cram.encoding.DataWriterFactory;
-import net.sf.cram.encoding.ExternalByteArrayEncoding;
import net.sf.cram.encoding.ExternalByteEncoding;
import net.sf.cram.encoding.Reader;
import net.sf.cram.encoding.Writer;
@@ -24,6 +24,9 @@
import net.sf.block.Definition;
import net.sf.block.Format;
import net.sf.block.FormatFactory;
+import net.sf.cram.encoding.MeasuringCodec;
+import net.sf.cram.encoding.factory.RecordCodecFactory;
+import net.sf.cram.stats.CramStats;
import net.sf.picard.reference.ReferenceSequenceFile;
import net.sf.picard.reference.ReferenceSequenceFileFactory;
import net.sf.samtools.SAMFileHeader;
@@ -33,32 +36,10 @@
import net.sf.samtools.SAMRecordIterator;
import net.sf.samtools.SAMSequenceRecord;
import net.sf.samtools.SAMTagUtil;
-import uk.ac.ebi.ena.sra.cram.SequenceBaseProvider;
-import uk.ac.ebi.ena.sra.cram.Utils;
-import uk.ac.ebi.ena.sra.cram.bam.Sam2CramRecordFactory;
-import uk.ac.ebi.ena.sra.cram.encoding.MeasuringCodec;
-import uk.ac.ebi.ena.sra.cram.format.CramFormatException;
-import uk.ac.ebi.ena.sra.cram.format.CramHeader;
-import uk.ac.ebi.ena.sra.cram.format.CramReadGroup;
-import uk.ac.ebi.ena.sra.cram.format.CramRecord;
-import uk.ac.ebi.ena.sra.cram.format.CramRecordBlock;
-import uk.ac.ebi.ena.sra.cram.format.CramReferenceSequence;
-import uk.ac.ebi.ena.sra.cram.format.ReadTag;
-import uk.ac.ebi.ena.sra.cram.format.compression.CramCompressionException;
-import uk.ac.ebi.ena.sra.cram.impl.ByteArraySequenceBaseProvider;
-import uk.ac.ebi.ena.sra.cram.impl.CramHeaderIO;
-import uk.ac.ebi.ena.sra.cram.impl.CramRecordBlockReader;
-import uk.ac.ebi.ena.sra.cram.impl.CramRecordBlockWriter;
-import uk.ac.ebi.ena.sra.cram.impl.ReadFeatures2Cigar;
-import uk.ac.ebi.ena.sra.cram.impl.RecordCodecFactory;
-import uk.ac.ebi.ena.sra.cram.impl.RestoreBases;
-import uk.ac.ebi.ena.sra.cram.impl.RestoreQualityScores;
import uk.ac.ebi.ena.sra.cram.io.BitInputStream;
import uk.ac.ebi.ena.sra.cram.io.BitOutputStream;
import uk.ac.ebi.ena.sra.cram.io.DefaultBitInputStream;
import uk.ac.ebi.ena.sra.cram.io.DefaultBitOutputStream;
-import uk.ac.ebi.ena.sra.cram.spot.PairedTemplateAssembler;
-import uk.ac.ebi.ena.sra.cram.stats.CramStats;
public class Coder {
private int recordsPerSlice;
@@ -19,8 +19,7 @@
import java.util.Collection;
import java.util.List;
-import uk.ac.ebi.ena.sra.cram.format.ReadFeature;
-import uk.ac.ebi.ena.sra.cram.format.ReadTag;
+import net.sf.cram.encoding.read_features.ReadFeature;
public class CramRecord {
@@ -58,9 +57,9 @@
private Byte mateFlags = null;
public boolean mateMapped = false;
public boolean mateNegativeStrand = false;
-
- public int mateSequnceID = 0 ;
- public long mateAlignmentStart = 0 ;
+
+ public int mateSequnceID = 0;
+ public long mateAlignmentStart = 0;
private byte mappingQuality;
@@ -6,9 +6,7 @@
import java.util.logging.Logger;
import net.sf.cram.encoding.BitCodec;
-import uk.ac.ebi.ena.sra.cram.encoding.ByteArrayBitCodec;
-import uk.ac.ebi.ena.sra.cram.format.ReadFeature;
-import uk.ac.ebi.ena.sra.cram.format.ReadTag;
+import net.sf.cram.encoding.read_features.ReadFeature;
import uk.ac.ebi.ena.sra.cram.io.BitInputStream;
import uk.ac.ebi.ena.sra.cram.io.BitOutputStream;
import uk.ac.ebi.ena.sra.cram.io.NullBitOutputStream;
@@ -0,0 +1,282 @@
+/*******************************************************************************
+ * Copyright 2012 EMBL-EBI, Hinxton outstation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+package net.sf.cram;
+
+import net.sf.samtools.SAMTagUtil;
+
+public class ReadTag implements Comparable<ReadTag> {
+ private static final long MAX_INT = Integer.MAX_VALUE;
+ private static final long MAX_UINT = MAX_INT * 2 + 1;
+ private static final long MAX_SHORT = Short.MAX_VALUE;
+ private static final long MAX_USHORT = MAX_SHORT * 2 + 1;
+ private static final long MAX_BYTE = Byte.MAX_VALUE;
+ private static final long MAX_UBYTE = MAX_BYTE * 2 + 1;
+
+ // non-null
+ private String key;
+ private String keyAndType;
+ private char type;
+ private Object value;
+ public short code ;
+ private byte index;
+
+ public ReadTag(String key, char type, Object value) {
+ if (key == null)
+ throw new NullPointerException("Tag key cannot be null.");
+ if (value == null)
+ throw new NullPointerException("Tag value cannot be null.");
+
+ this.value = value;
+
+ if (key.length() == 2) {
+ this.key = key;
+ this.type = type;
+ // this.type = getTagValueType(value);
+ keyAndType = key + ":" + getType();
+ } else if (key.length() == 4) {
+ this.key = key.substring(0, 2);
+ this.type = key.charAt(3);
+ }
+
+ code = SAMTagUtil.getSingleton().makeBinaryTag(this.key) ;
+ }
+
+ public static ReadTag deriveTypeFromKeyAndType(String keyAndType, Object value) {
+ if (keyAndType.length() != 4)
+ throw new RuntimeException("Tag key and type must be 4 char long: " + keyAndType);
+
+ return new ReadTag(keyAndType.substring(0, 2), keyAndType.charAt(3), value);
+ }
+
+ public static ReadTag deriveTypeFromValue(String key, Object value) {
+ if (key.length() != 2)
+ throw new RuntimeException("Tag key must be 2 char long: " + key);
+
+ return new ReadTag(key, getTagValueType(value), value);
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public int compareTo(ReadTag o) {
+ return key.compareTo(o.key);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof ReadTag))
+ return false;
+
+ ReadTag foe = (ReadTag) obj;
+ if (!key.equals(foe.key))
+ return false;
+ if (value == null && foe.value == null)
+ return true;
+ if (value != null && value.equals(foe.value))
+ return true;
+
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return key.hashCode();
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public char getType() {
+ return type;
+ }
+
+ public String getKeyAndType() {
+ return keyAndType;
+ }
+
+ public byte[] getValueAsByteArray() {
+ if (value.getClass().isArray()) {
+ if (value instanceof byte[])
+ return toByteArray((byte[]) value);
+ if (value instanceof short[])
+ return toByteArray((short[]) value);
+ if (value instanceof int[])
+ return toByteArray((int[]) value);
+
+ throw new RuntimeException("Unsupported tag array type.");
+ }
+ return value.toString().getBytes();
+ }
+
+ private static byte[] toByteArray(byte[] value) {
+ byte[] array = new byte[value.length + 1];
+ array[0] = 'c';
+ System.arraycopy(value, 0, array, 1, value.length);
+ return array;
+ }
+
+ private static Object fromByteArray(byte[] array, int offset, int length) {
+ byte first = array[offset];
+ switch (first) {
+ case 'c':
+ byte[] byteArrayValue = new byte[length - 1];
+ System.arraycopy(array, 1 + offset, byteArrayValue, 0, byteArrayValue.length);
+ return byteArrayValue;
+ case 's':
+ short[] shortArrayValue = new short[(length - 1) / 2];
+ int p = offset + 1;
+ for (int i = 0; i < shortArrayValue.length; i++) {
+ shortArrayValue[i] = (short) (0xFFFF & ((array[p++] << 8) | array[p++]));
+ }
+ return shortArrayValue;
+ case 'i':
+ int[] intArrayValue = new int[(length - 1) / 4];
+ p = offset + 1;
+ for (int i = 0; i < intArrayValue.length; i++) {
+ intArrayValue[i] = (array[p++] << 24) | (array[p++] << 16) | (array[p++] << 8) | array[p++];
+ }
+ return intArrayValue;
+
+ default:
+ throw new RuntimeException("Unknown array type in tag: " + (char) first);
+ }
+ }
+
+ private static byte[] toByteArray(short[] value) {
+ byte[] array = new byte[2 * value.length + 1];
+ array[0] = 's';
+ int i = 1;
+ for (short s : value) {
+ array[i++] = (byte) (0xFF & (s >> 8));
+ array[i++] = (byte) (0xFF & s);
+ }
+ return array;
+ }
+
+ private static byte[] toByteArray(int[] value) {
+ byte[] array = new byte[4 * value.length + 1];
+ array[0] = 'i';
+ int i = 1;
+ for (int s : value) {
+ array[i++] = (byte) (0xFF & (s >> 24));
+ array[i++] = (byte) (0xFF & (s >> 16));
+ array[i++] = (byte) (0xFF & (s >> 8));
+ array[i++] = (byte) (0xFF & s);
+ }
+ return array;
+ }
+
+ public static Object restoreValueFromByteArray(char type, byte[] array) {
+ return restoreValueFromByteArray(type, array, 0, array.length);
+ }
+
+ public static Object restoreValueFromByteArray(char type, byte[] array, int offset, int length) {
+ switch (type) {
+ case 'Z':
+ return new String(array, offset, length);
+ case 'A':
+ return new String(array, offset, length).charAt(0);
+ case 'f':
+ return Float.valueOf(new String(array, offset, length));
+
+ case 'I':
+ return Long.valueOf(new String(array, offset, length));
+ case 'i':
+ case 'S':
+ return Integer.valueOf(new String(array, offset, length));
+ case 's':
+ return Short.valueOf(new String(array, offset, length));
+ case 'C':
+ return Integer.valueOf(new String(array, offset, length));
+ case 'c':
+ return Byte.valueOf(new String(array, offset, length));
+ case 'B':
+ return fromByteArray(array, offset, length);
+
+ default:
+ throw new RuntimeException("Unknown tag type: " + type);
+ }
+ }
+
+ // copied from net.sf.samtools.BinaryTagCodec 1.62:
+ private static char getTagValueType(final Object value) {
+ if (value instanceof String) {
+ return 'Z';
+ } else if (value instanceof Character) {
+ return 'A';
+ } else if (value instanceof Float) {
+ return 'f';
+ } else if (value instanceof Number) {
+ if (!(value instanceof Byte || value instanceof Short || value instanceof Integer || value instanceof Long)) {
+ throw new IllegalArgumentException("Unrecognized tag type " + value.getClass().getName());
+ }
+ return getIntegerType(((Number) value).longValue());
+ } /*
+ * Note that H tag type is never written anymore, because B style is
+ * more compact. else if (value instanceof byte[]) { return 'H'; }
+ */
+ else if (value instanceof byte[] || value instanceof short[] || value instanceof int[]
+ || value instanceof float[]) {
+ return 'B';
+ } else {
+ throw new IllegalArgumentException("When writing BAM, unrecognized tag type " + value.getClass().getName());
+ }
+ }
+
+ // copied from net.sf.samtools.BinaryTagCodec:
+ static private char getIntegerType(final long val) {
+ if (val > MAX_UINT) {
+ throw new IllegalArgumentException("Integer attribute value too large to be encoded in BAM");
+ }
+ if (val > MAX_INT) {
+ return 'I';
+ }
+ if (val > MAX_USHORT) {
+ return 'i';
+ }
+ if (val > MAX_SHORT) {
+ return 'S';
+ }
+ if (val > MAX_UBYTE) {
+ return 's';
+ }
+ if (val > MAX_BYTE) {
+ return 'C';
+ }
+ if (val >= Byte.MIN_VALUE) {
+ return 'c';
+ }
+ if (val >= Short.MIN_VALUE) {
+ return 's';
+ }
+ if (val >= Integer.MIN_VALUE) {
+ return 'i';
+ }
+ throw new IllegalArgumentException("Integer attribute value too negative to be encoded in BAM");
+ }
+
+ public void setIndex(byte i) {
+ this.index = i ;
+ }
+
+ public byte getIndex () {
+ return index ;
+ }
+
+}
@@ -12,9 +12,6 @@
import net.sf.samtools.SAMFileReader;
import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMRecordIterator;
-import uk.ac.ebi.ena.sra.cram.bam.Sam2CramRecordFactory;
-import uk.ac.ebi.ena.sra.cram.format.CramRecord;
-import uk.ac.ebi.ena.sra.cram.spot.PairedTemplateAssembler;
public class SpotAssemblyTest {
private List<CramRecord> records;
Oops, something went wrong.

0 comments on commit 5778c11

Please sign in to comment.