public class GTBMerger
extends edu.sysu.pmglab.easytools.Parallelizable
由于多文件合并涉及到复杂的等位基因类型判断及内存控制, 此处仅用于合并两个 GTB 文件. 对于多个文件的合并, 建议使用最小堆优化合并顺序.
请注意, 对于非基因数据的合并, 建议使用 Annotator 方法 当位点的 REF 不是标准 REF 时, GTBMerger 将放弃此位点的合并
默认情况下所有的非坐标、非基因型字段都会被丢弃
限定符和类型 | 类和说明 |
---|---|
static class |
GTBMerger.MergeOperator
处理不同文件位点的方式
|
限定符和类型 | 方法和说明 |
---|---|
GTBMerger |
addField(java.util.Map<java.lang.String,edu.sysu.pmglab.ccf.FieldType> fields)
添加字段或更改字段值类型
|
GTBMerger |
addField(java.lang.String fieldName,
edu.sysu.pmglab.ccf.FieldType fieldType)
添加字段或更改字段值类型
|
GTBMerger |
addMeta(edu.sysu.pmglab.container.ByteCode key,
edu.sysu.pmglab.container.ByteCode value)
写入元信息
|
GTBMerger |
addMeta(edu.sysu.pmglab.ccf.CCFMeta meta)
写入元信息
|
GTBMerger |
addMeta(java.lang.String key,
java.lang.String value)
写入元信息
|
GTBMerger |
addValueConverter(java.util.function.BiConsumer<edu.sysu.pmglab.container.Entry<Variant,Variant>,Variant> valueConverter)
添加值转换器
转换器的第一个参数为坐标和等位基因匹配成功的一组位点 (分别为第一个文件的位点和第二个文件的位点), 第二个参数为合并后的位点
|
GTBMerger |
clearMeta()
清除所有的元信息
|
GTBMerger |
dropDuplicationMeta()
去除重复的元信息
|
GTBManager |
getMajorManager()
获取主管理器
|
GTBManager |
getMinorManager()
获取次管理器
|
edu.sysu.pmglab.container.File |
getOutputFile()
获取输出文件对象
|
GTBMerger |
loadGenotype(boolean loadGenotype)
设置是否加载基因型数据
|
static GTBMerger |
of(java.lang.Object majorManager,
java.lang.Object minorManager)
构造器方法
|
GTBMerger |
setFormat(GTBFormat format)
设置 GTB 文件格式
|
GTBMerger |
setMergeOperator(GTBMerger.MergeOperator mergeOperator)
设置处理不同文件位点的方式
|
GTBMerger |
setOutputFile(java.io.File outputFile)
设置输出文件
|
GTBMerger |
setThreads(int threads) |
GTBManager |
submit()
提交合并任务
合并时按照染色体进行, 以避免调整坐标
|
java.lang.String |
toString() |
public static GTBMerger of(java.lang.Object majorManager, java.lang.Object minorManager) throws java.io.IOException
majorManager
- 主管理器minorManager
- 次管理器java.io.IOException
- IO 异常public GTBMerger setOutputFile(java.io.File outputFile)
outputFile
- 输出文件public edu.sysu.pmglab.container.File getOutputFile()
public GTBManager getMajorManager()
public GTBManager getMinorManager()
public GTBMerger setThreads(int threads)
setThreads
在类中 edu.sysu.pmglab.easytools.Parallelizable
public GTBMerger setMergeOperator(GTBMerger.MergeOperator mergeOperator)
mergeOperator
- 坐标类型public GTBMerger addMeta(java.lang.String key, java.lang.String value)
key
- 元信息键value
- 元信息值public GTBMerger addMeta(edu.sysu.pmglab.container.ByteCode key, edu.sysu.pmglab.container.ByteCode value)
key
- 元信息键value
- 元信息值public GTBMerger addMeta(edu.sysu.pmglab.ccf.CCFMeta meta)
meta
- 元信息对象public GTBMerger clearMeta()
public GTBMerger dropDuplicationMeta()
public GTBMerger addField(java.lang.String fieldName, edu.sysu.pmglab.ccf.FieldType fieldType)
fieldName
- 字段名fieldType
- 字段类型public GTBMerger addField(java.util.Map<java.lang.String,edu.sysu.pmglab.ccf.FieldType> fields)
fields
- 字段名及其类型public GTBMerger addValueConverter(java.util.function.BiConsumer<edu.sysu.pmglab.container.Entry<Variant,Variant>,Variant> valueConverter)
转换器的第一个参数为坐标和等位基因匹配成功的一组位点 (分别为第一个文件的位点和第二个文件的位点), 第二个参数为合并后的位点
valueConverter
- 值转换器public GTBMerger loadGenotype(boolean loadGenotype)
loadGenotype
- 加载基因型数据public GTBManager submit() throws java.io.IOException
java.io.IOException
- IO 异常public java.lang.String toString()
toString
在类中 java.lang.Object