@@ -1,12 +1,12 @@ | |||
#高置信位点整合Part2——从VCF和BAM文件中提取突变位点的信息 | |||
#高置信突变位点的整合 | |||
> Author: Run Luyao | |||
> | |||
> E-mail:18110700050@fudan.edu.cn | |||
> | |||
> Git: http://choppy.3steps.cn/renluyao/HCC_Extract_Info.git | |||
> Git:http://choppy.3steps.cn/renluyao/high_confidence_calls_intergration.git | |||
> | |||
> Last Updates: 11/9/2019 | |||
> Last Updates: 12/6/2019 | |||
## 安装指南 | |||
@@ -14,29 +14,36 @@ | |||
# 激活choppy环境 | |||
source activate choppy | |||
# 安装app | |||
choppy install renluyao/HCC_Extract_Info | |||
choppy install renluyao/high_confidence_calls_intergration | |||
``` | |||
## App概述 | |||
当我们拿到测序结果的时候,没有办法判断哪些是真的突变位点,哪些是假阳性 | |||
中华家系1号全基因组高置信small variants(SNVs和Indels)的整合流程。 | |||
## 流程与参数 | |||
Quartet家系的四个样本的DNA标准物质被送往多加测序公司,用PCRfree或者PCR的建库方法建立3个技术重复,用多个测序平台(Illumina XTen、Illumina Novaseq、BGISEQ-500、BGISEQ-2000和BGISEQ-T7)进行测序。获得的原始数据用多个分析流程进行分析(比对软件:BWA-mem、Novoalign、Bowtie2,突变检出软件:HaplotyperCaller、Strelka2、FreeBayes)。 | |||
经过以上各种因素的组合每个样本得到216个VCF文件,本APP的目的是整合这些VCF文件的结果得到一组可信度较高的突变。 | |||
两个问题: | |||
## 流程与参数 | |||
1. MNP | |||
2. merge之后的pos相同,但是ref和alt不同 | |||
是不是gatk的问题,尝试用bcftools norm | |||
## App输入变量与输入文件 | |||
## App输出文件 | |||
## 结果展示与解读 | |||
## CHANGELOG | |||
## FAQ | |||
@@ -0,0 +1,197 @@ | |||
# import modules | |||
import sys, argparse, os | |||
import fileinput | |||
import re | |||
import pandas as pd | |||
from operator import itemgetter | |||
from collections import Counter | |||
from itertools import islice | |||
# input arguments | |||
parser = argparse.ArgumentParser(description="this script is to count voting number") | |||
parser.add_argument('-vcf', '--multi_sample_vcf', type=str, help='The VCF file you want to count the voting number', required=True) | |||
parser.add_argument('-dup', '--dup_list', type=str, help='Duplication list', required=True) | |||
parser.add_argument('-sample', '--sample_name', type=str, help='which sample of quartet', required=True) | |||
parser.add_argument('-prefix', '--prefix', type=str, help='Prefix of output file name', required=True) | |||
args = parser.parse_args() | |||
multi_sample_vcf = args.multi_sample_vcf | |||
dup_list = args.dup_list | |||
prefix = args.prefix | |||
sample_name = args.sample_name | |||
vcf_header = '''##fileformat=VCFv4.2 | |||
##fileDate=20191224 | |||
##source=high_confidence_calls_intergration(choppy app) | |||
##reference=GRCh38.d1.vd1 | |||
##INFO=<ID=PCT,Number=1,Type=Float,Description="Percentage of votes"> | |||
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype"> | |||
##FORMAT=<ID=TWINS,Number=0,Type=Flag,Description="0 for sister consistent, 1 for sister inconsistent"> | |||
##FORMAT=<ID=TRIO5,Number=0,Type=Flag,Description="0 for trio consistent, 1 for trio inconsistent"> | |||
##FORMAT=<ID=TRIO6,Number=0,Type=Flag,Description="0 for trio consistent, 1 for trio inconsistent"> | |||
##contig=<ID=chr1,length=248956422> | |||
##contig=<ID=chr2,length=242193529> | |||
##contig=<ID=chr3,length=198295559> | |||
##contig=<ID=chr4,length=190214555> | |||
##contig=<ID=chr5,length=181538259> | |||
##contig=<ID=chr6,length=170805979> | |||
##contig=<ID=chr7,length=159345973> | |||
##contig=<ID=chr8,length=145138636> | |||
##contig=<ID=chr9,length=138394717> | |||
##contig=<ID=chr10,length=133797422> | |||
##contig=<ID=chr11,length=135086622> | |||
##contig=<ID=chr12,length=133275309> | |||
##contig=<ID=chr13,length=114364328> | |||
##contig=<ID=chr14,length=107043718> | |||
##contig=<ID=chr15,length=101991189> | |||
##contig=<ID=chr16,length=90338345> | |||
##contig=<ID=chr17,length=83257441> | |||
##contig=<ID=chr18,length=80373285> | |||
##contig=<ID=chr19,length=58617616> | |||
##contig=<ID=chr20,length=64444167> | |||
##contig=<ID=chr21,length=46709983> | |||
##contig=<ID=chr22,length=50818468> | |||
##contig=<ID=chrX,length=156040895> | |||
''' | |||
# read in duplication list | |||
dup = pd.read_table(dup_list,header=None) | |||
var_dup = dup[0].tolist() | |||
# output file | |||
file_name = prefix + '_annotated.vcf' | |||
outfile = open(file_name,'w') | |||
# write VCF | |||
outputcolumn = '#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\tQuartet_DNA_BGI_SEQ2000_BGI_1_20180518_LCL5\tQuartet_DNA_BGI_SEQ2000_BGI_2_20180530_LCL5\tQuartet_DNA_BGI_SEQ2000_BGI_3_20180530_LCL5\tQuartet_DNA_BGI_SEQ2000_WGE_1_20190402_LCL5\tQuartet_DNA_BGI_SEQ2000_WGE_2_20190402_LCL5\tQuartet_DNA_BGI_SEQ500_BGI_1_20180328_LCL5 \tQuartet_DNA_BGI_SEQ500_BGI_2_20180328_LCL5\tQuartet_DNA_BGI_SEQ500_BGI_3_20180328_LCL5\tQuartet_DNA_ILM_Nova_ARD_1_20181108_LCL5\tQuartet_DNA_ILM_Nova_ARD_2_20181108_LCL5\tQuartet_DNA_ILM_Nova_ARD_3_20181108_LCL5\tQuartet_DNA_ILM_Nova_ARD_4_20190111_LCL5\tQuartet_DNA_ILM_Nova_ARD_5_20190111_LCL5\tQuartet_DNA_ILM_Nova_ARD_6_20190111_LCL5\tQuartet_DNA_ILM_Nova_BRG_1_20171024_LCL5\tQuartet_DNA_ILM_Nova_BRG_1_20180930_LCL5\tQuartet_DNA_ILM_Nova_BRG_2_20180930_LCL5\tQuartet_DNA_ILM_Nova_BRG_3_20180930_LCL5\tQuartet_DNA_ILM_Nova_GAC_1_20171025_LCL5\tQuartet_DNA_ILM_Nova_NVG_1_20171024_LCL5\tQuartet_DNA_ILM_Nova_WUX_1_20171024_LCL5\tQuartet_DNA_ILM_XTen_ARD_1_20170403_LCL5\tQuartet_DNA_ILM_XTen_ARD_2_20170403_LCL5\tQuartet_DNA_ILM_XTen_ARD_3_20170403_LCL5\tQuartet_DNA_ILM_XTen_NVG_1_20170329_LCL5\tQuartet_DNA_ILM_XTen_NVG_2_20170329_LCL5\tQuartet_DNA_ILM_XTen_NVG_3_20170329_LCL5\tQuartet_DNA_ILM_XTen_WUX_1_20170216_LCL5\tQuartet_DNA_ILM_XTen_WUX_2_20170216_LCL5\tQuartet_DNA_ILM_XTen_WUX_3_20170216_LCL5\tQuartet_DNA_ILM_XTen_WUX_4_20180703_LCL5\tQuartet_DNA_ILM_XTen_WUX_5_20180703_LCL5\tQuartet_DNA_ILM_XTen_WUX_6_20180703_LCL5' +'\t'+ sample_name+'_pcr'+'\t' + sample_name+'_pcr-free'+ '\t'+ sample_name +'consensus' + '\n' | |||
outfile.write(vcf_header) | |||
outfile.write(outputcolumn) | |||
#function | |||
def vote_percentage(strings): | |||
strings = [x.replace('0/0','.') for x in strings] | |||
gt = [x.split(':')[0] for x in strings] | |||
percentage = round((33 - gt.count('.'))/33,4) | |||
return(str(percentage)) | |||
def decide_by_rep(strings): | |||
consensus_rep = '' | |||
mendelian = [x[-5:] for x in strings] | |||
strings = [x.replace('.','0/0') for x in strings] | |||
gt = [x.split(':')[0] for x in strings] | |||
# mendelian consistent? | |||
mendelian_dict = Counter(mendelian) | |||
highest_mendelian = mendelian_dict.most_common(1) | |||
candidate_mendelian = highest_mendelian[0][0] | |||
freq_mendelian = highest_mendelian[0][1] | |||
if (candidate_mendelian == '1:1:1') and (freq_mendelian >= 2): | |||
gt_num_dict = Counter(gt) | |||
highest_gt = gt_num_dict.most_common(1) | |||
candidate_gt = highest_gt[0][0] | |||
freq_gt = highest_gt[0][1] | |||
if (candidate_gt != '0/0') and (freq_gt >= 2): | |||
consensus_rep = candidate_gt | |||
elif (candidate_gt == '0/0') and (freq_gt >= 2): | |||
consensus_rep = '0/0' | |||
else: | |||
consensus_rep = 'inconGT' | |||
elif (candidate_mendelian == '.') and (freq_mendelian >= 2): | |||
consensus_rep = 'noInfo' | |||
else: | |||
consensus_rep = 'inconMen' | |||
return consensus_rep | |||
def main(): | |||
for line in fileinput.input(multi_sample_vcf): | |||
headline = re.match('^\#',line) | |||
if headline is not None: | |||
pass | |||
else: | |||
line = line.strip() | |||
strings = line.split('\t') | |||
variant_id = '_'.join([strings[0],strings[1]]) | |||
# check if the variants location is duplicated | |||
if variant_id in var_dup: | |||
outLine = '\t'.join(strings) + '\t' + '.' +'\t' + '.' + '\t' + 'dupVar' + '\n' | |||
outfile.write(outLine) | |||
else: | |||
# pre-define | |||
pcr_consensus = '' | |||
pcr_free_consensus = '' | |||
consensus_call = '' | |||
# pcr | |||
pcr = itemgetter(*[9,10,11,12,14,15,16,23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41])(strings) | |||
SEQ2000 = decide_by_rep(pcr[0:4]) | |||
SEQ500 = decide_by_rep(pcr[4:7]) | |||
Nova = decide_by_rep(pcr[7:11]) | |||
XTen_ARD = decide_by_rep(pcr[11:14]) | |||
XTen_NVG = decide_by_rep(pcr[14:17]) | |||
XTen_WUX_1 = decide_by_rep(pcr[17:20]) | |||
XTen_WUX_2 = decide_by_rep(pcr[20:23]) | |||
sequence_site = [SEQ2000,SEQ500,Nova,XTen_ARD,XTen_NVG,XTen_WUX_1,XTen_WUX_2] | |||
sequence_dict = Counter(sequence_site) | |||
highest_sequence = sequence_dict.most_common(1) | |||
candidate_sequence = highest_sequence[0][0] | |||
freq_sequence = highest_sequence[0][1] | |||
if freq_sequence > 4: | |||
pcr_consensus = candidate_sequence | |||
else: | |||
pcr_consensus = 'inconSequenceSite' | |||
# pcr-free | |||
pcr_free = itemgetter(*[13,17,18,19,20,21,22,24,25,26])(strings) | |||
SEQ2000 = decide_by_rep(pcr_free[0]) | |||
Nova_ARD_1 = decide_by_rep(pcr_free[1:4]) | |||
Nova_ARD_2 = decide_by_rep(pcr_free[4:7]) | |||
Nova_BRG = decide_by_rep(pcr_free[7:10]) | |||
sequence_site = [SEQ2000,Nova_ARD_1,Nova_ARD_2,Nova_BRG] | |||
highest_sequence = sequence_dict.most_common(1) | |||
candidate_sequence = highest_sequence[0][0] | |||
freq_sequence = highest_sequence[0][1] | |||
if freq_sequence > 2: | |||
pcr_free_consensus = candidate_sequence | |||
else: | |||
pcr_free_consensus = 'inconSequenceSite' | |||
# pcr and pcr-free | |||
tag = ['inconGT','noInfo','inconMen','inconSequenceSite'] | |||
if (pcr_consensus == pcr_free_consensus) and (pcr_consensus not in tag) and (pcr_consensus != '0/0'): | |||
consensus_call = pcr_consensus | |||
strings[6] = 'reproducible' | |||
elif (pcr_consensus in tag) or (pcr_free_consensus in tag): | |||
consensus_call = 'filtered' | |||
strings[6] = '.' | |||
elif (pcr_consensus == '0/0') and (pcr_free_consensus not in tag) and (pcr_free_consensus != '0/0'): | |||
consensus_call = 'pcr-free-speicifc' | |||
strings[6] = '.' | |||
elif (pcr_consensus != '0/0') and (pcr_consensus not in tag) and (pcr_free_consensus == '0/0'): | |||
consensus_call = 'pcr-speicifc' | |||
strings[6] = '.' | |||
elif (pcr_consensus == '0/0') and (pcr_free_consensus == '0/0'): | |||
consensus_call = 'confirm for parents' | |||
strings[6] = '.' | |||
else: | |||
consensus_call = 'filtered' | |||
strings[6] = '.' | |||
# percentage | |||
percentage = vote_percentage(strings[9:]) | |||
strings[7] = 'PCT=' + percentage | |||
# output | |||
outLine = '\t'.join(strings) + '\t' + pcr_consensus +'\t' + pcr_free_consensus + '\t' + consensus_call + '\n' | |||
outfile.write(outLine) | |||
if __name__ == '__main__': | |||
main() | |||
@@ -0,0 +1,144 @@ | |||
# import modules | |||
import sys, argparse, os | |||
import fileinput | |||
import re | |||
parser = argparse.ArgumentParser(description="This script is to split samples in VCF files and rewrite to the right style") | |||
parser.add_argument('-vcf', '--familyVCF', type=str, help='VCF with sister and mendelian infomation', required=True) | |||
parser.add_argument('-name', '--familyName', type=str, help='Family name of the VCF file', required=True) | |||
args = parser.parse_args() | |||
# Rename input: | |||
inputFile = args.familyVCF | |||
family_name = args.familyName | |||
# output filename | |||
LCL5_name = family_name + '.LCL5.vcf' | |||
LCL5file = open(LCL5_name,'w') | |||
LCL6_name = family_name + '.LCL6.vcf' | |||
LCL6file = open(LCL6_name,'w') | |||
LCL7_name = family_name + '.LCL7.vcf' | |||
LCL7file = open(LCL7_name,'w') | |||
LCL8_name = family_name + '.LCL8.vcf' | |||
LCL8file = open(LCL8_name,'w') | |||
family_filename = family_name + '.vcf' | |||
familyfile = open(family_filename,'w') | |||
# default columns, which will be included in the included in the calssifier | |||
vcfheader = '''##fileformat=VCFv4.2 | |||
##FILTER=<ID=PASS,Description="the same genotype between twin sister and mendelian consistent in 578 and 678"> | |||
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype"> | |||
##FORMAT=<ID=TWINS,Number=0,Type=Flag,Description="0 for sister consistent, 1 for sister inconsistent"> | |||
##FORMAT=<ID=TRIO5,Number=0,Type=Flag,Description="0 for trio consistent, 1 for trio inconsistent"> | |||
##FORMAT=<ID=TRIO6,Number=0,Type=Flag,Description="0 for trio consistent, 1 for trio inconsistent"> | |||
##contig=<ID=chr1,length=248956422> | |||
##contig=<ID=chr2,length=242193529> | |||
##contig=<ID=chr3,length=198295559> | |||
##contig=<ID=chr4,length=190214555> | |||
##contig=<ID=chr5,length=181538259> | |||
##contig=<ID=chr6,length=170805979> | |||
##contig=<ID=chr7,length=159345973> | |||
##contig=<ID=chr8,length=145138636> | |||
##contig=<ID=chr9,length=138394717> | |||
##contig=<ID=chr10,length=133797422> | |||
##contig=<ID=chr11,length=135086622> | |||
##contig=<ID=chr12,length=133275309> | |||
##contig=<ID=chr13,length=114364328> | |||
##contig=<ID=chr14,length=107043718> | |||
##contig=<ID=chr15,length=101991189> | |||
##contig=<ID=chr16,length=90338345> | |||
##contig=<ID=chr17,length=83257441> | |||
##contig=<ID=chr18,length=80373285> | |||
##contig=<ID=chr19,length=58617616> | |||
##contig=<ID=chr20,length=64444167> | |||
##contig=<ID=chr21,length=46709983> | |||
##contig=<ID=chr22,length=50818468> | |||
##contig=<ID=chrX,length=156040895> | |||
''' | |||
# write VCF | |||
LCL5colname = '#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\t'+family_name+'_LCL5'+'\n' | |||
LCL5file.write(vcfheader) | |||
LCL5file.write(LCL5colname) | |||
LCL6colname = '#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\t'+family_name+'_LCL6'+'\n' | |||
LCL6file.write(vcfheader) | |||
LCL6file.write(LCL6colname) | |||
LCL7colname = '#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\t'+family_name+'_LCL7'+'\n' | |||
LCL7file.write(vcfheader) | |||
LCL7file.write(LCL7colname) | |||
LCL8colname = '#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\t'+family_name+'_LCL8'+'\n' | |||
LCL8file.write(vcfheader) | |||
LCL8file.write(LCL8colname) | |||
familycolname = '#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\t'+'LCL5\t'+'LCL6\t'+'LCL7\t'+'LCL8'+'\n' | |||
familyfile.write(vcfheader) | |||
familyfile.write(familycolname) | |||
# reform VCF | |||
def process(oneLine): | |||
line = oneLine.rstrip() | |||
strings = line.strip().split('\t') | |||
# replace . | |||
# LCL5 uniq | |||
if strings[11] == '.': | |||
strings[11] = '0/0' | |||
strings[9] = strings[12] | |||
strings[10] = strings[13] | |||
else: | |||
pass | |||
# LCL6 uniq | |||
if strings[14] == '.': | |||
strings[14] = '0/0' | |||
strings[12] = strings[9] | |||
strings[13] = strings[10] | |||
else: | |||
pass | |||
# sister | |||
if strings[11] == strings[14]: | |||
add_format = ":1" | |||
else: | |||
add_format = ":0" | |||
# trioLCL5 | |||
if strings[15] == 'MD=1': | |||
add_format = add_format + ":1" | |||
else: | |||
add_format = add_format + ":0" | |||
# trioLCL6 | |||
if strings[7] == 'MD=1': | |||
add_format = add_format + ":1" | |||
else: | |||
add_format = add_format + ":0" | |||
# filter | |||
if (strings[11] == strings[14]) and (strings[15] == 'MD=1') and (strings[7] == 'MD=1'): | |||
strings[6] = 'PASS' | |||
else: | |||
strings[6] = '.' | |||
# output LCL5 | |||
LCL5outLine = strings[0]+'\t'+strings[1]+'\t'+strings[2]+'\t'+strings[3]+'\t'+strings[4]+'\t'+'.'+'\t'+strings[6]+'\t'+ '.' +'\t'+ 'GT:TWINS:TRIO5:TRIO6' + '\t' + strings[14] + add_format + '\n' | |||
LCL5file.write(LCL5outLine) | |||
# output LCL6 | |||
LCL6outLine = strings[0]+'\t'+strings[1]+'\t'+strings[2]+'\t'+strings[3]+'\t'+strings[4]+'\t'+'.'+'\t'+strings[6]+'\t'+ '.' +'\t'+ 'GT:TWINS:TRIO5:TRIO6' + '\t' + strings[11] + add_format + '\n' | |||
LCL6file.write(LCL6outLine) | |||
# output LCL7 | |||
LCL7outLine = strings[0]+'\t'+strings[1]+'\t'+strings[2]+'\t'+strings[3]+'\t'+strings[4]+'\t'+'.'+'\t'+strings[6]+'\t'+ '.' +'\t'+ 'GT:TWINS:TRIO5:TRIO6' + '\t' + strings[10] + add_format + '\n' | |||
LCL7file.write(LCL7outLine) | |||
# output LCL8 | |||
LCL8outLine = strings[0]+'\t'+strings[1]+'\t'+strings[2]+'\t'+strings[3]+'\t'+strings[4]+'\t'+'.'+'\t'+strings[6]+'\t'+ '.' +'\t'+ 'GT:TWINS:TRIO5:TRIO6' + '\t' + strings[9] + add_format + '\n' | |||
LCL8file.write(LCL8outLine) | |||
# output family | |||
familyoutLine = strings[0]+'\t'+strings[1]+'\t'+strings[2]+'\t'+strings[3]+'\t'+strings[4]+'\t'+ '.'+'\t'+strings[6]+'\t'+ '.' +'\t'+ 'GT:TWINS:TRIO5:TRIO6' + '\t' + strings[14] + add_format +'\t' + strings[11] + add_format + '\t' + strings[10] + add_format +'\t' + strings[9] + add_format + '\n' | |||
familyfile.write(familyoutLine) | |||
for line in fileinput.input(inputFile): | |||
m = re.match('^\#',line) | |||
if m is not None: | |||
pass | |||
else: | |||
process(line) | |||
@@ -1,33 +1 @@ | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL8_1_20180518.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL7_1_20180518.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL5_1_20180518.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL6_1_20180518.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL8_1_20180518.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL7_1_20180518.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL5_1_20180518.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL6_1_20180518.normed.callable.vcf.gz.tbi Quartet_DNA_BGI_SEQ2000_BGI_LCL8_1_20180518 Quartet_DNA_BGI_SEQ2000_BGI_LCL7_1_20180518 Quartet_DNA_BGI_SEQ2000_BGI_LCL5_1_20180518 BGI_SEQ2000_BGI_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL8_2_20180530.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL7_2_20180530.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL5_2_20180530.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL6_2_20180530.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL8_2_20180530.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL7_2_20180530.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL5_2_20180530.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL6_2_20180530.normed.callable.vcf.gz.tbi Quartet_DNA_BGI_SEQ2000_BGI_LCL8_2_20180530 Quartet_DNA_BGI_SEQ2000_BGI_LCL7_2_20180530 Quartet_DNA_BGI_SEQ2000_BGI_LCL5_2_20180530 BGI_SEQ2000_BGI_2 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL8_3_20180530.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL7_3_20180530.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL5_3_20180530.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL6_3_20180530.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL8_3_20180530.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL7_3_20180530.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL5_3_20180530.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_BGI_LCL6_3_20180530.normed.callable.vcf.gz.tbi Quartet_DNA_BGI_SEQ2000_BGI_LCL8_3_20180530 Quartet_DNA_BGI_SEQ2000_BGI_LCL7_3_20180530 Quartet_DNA_BGI_SEQ2000_BGI_LCL5_3_20180530 BGI_SEQ2000_BGI_3 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL8_1_20190402.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL7_1_20190402.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL5_1_20190402.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL6_1_20190402.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL8_1_20190402.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL7_1_20190402.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL5_1_20190402.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL6_1_20190402.normed.callable.vcf.gz.tbi Normal_DNA_M8 Normal_DNA_F7 Normal_DNA_D5 BGI_SEQ2000_WGE_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL8_2_20190402.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL7_2_20190402.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL5_2_20190402.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL6_2_20190402.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL8_2_20190402.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL7_2_20190402.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL5_2_20190402.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ2000_WGE_LCL6_2_20190402.normed.callable.vcf.gz.tbi PCRFree_DNA_M8 PCRFree_DNA_F7 PCRFree_DNA_D5 BGI_SEQ2000_WGE_2 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL8_1_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL7_1_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL5_1_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL6_1_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL8_1_20180328.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL7_1_20180328.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL5_1_20180328.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL6_1_20180328.normed.callable.vcf.gz.tbi Quartet_DNA_BGI_SEQ500_BGI_LCL8_1_20180328 Quartet_DNA_BGI_SEQ500_BGI_LCL7_1_20180328 Quartet_DNA_BGI_SEQ500_BGI_LCL5_1_20180328 BGI_SEQ500_BGI_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL8_2_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL7_2_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL5_2_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL6_2_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL8_2_20180328.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL7_2_20180328.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL5_2_20180328.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL6_2_20180328.normed.callable.vcf.gz.tbi Quartet_DNA_BGI_SEQ500_BGI_LCL8_2_20180328 Quartet_DNA_BGI_SEQ500_BGI_LCL7_2_20180328 Quartet_DNA_BGI_SEQ500_BGI_LCL5_2_20180328 BGI_SEQ500_BGI_2 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL8_3_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL7_3_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL5_3_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL6_3_20180328.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL8_3_20180328.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL7_3_20180328.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL5_3_20180328.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_BGI_SEQ500_BGI_LCL6_3_20180328.normed.callable.vcf.gz.tbi Quartet_DNA_BGI_SEQ500_BGI_LCL8_3_20180328 Quartet_DNA_BGI_SEQ500_BGI_LCL7_3_20180328 Quartet_DNA_BGI_SEQ500_BGI_LCL5_3_20180328 BGI_SEQ500_BGI_3 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_1_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_1_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_1_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_1_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_1_20181108.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_1_20181108.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_1_20181108.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_1_20181108.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_ARD_LCL8_1_20181108 Quartet_DNA_ILM_Nova_ARD_LCL7_1_20181108 Quartet_DNA_ILM_Nova_ARD_LCL5_1_20181108 ILM_Nova_ARD_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_2_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_2_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_2_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_2_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_2_20181108.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_2_20181108.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_2_20181108.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_2_20181108.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_ARD_LCL8_2_20181108 Quartet_DNA_ILM_Nova_ARD_LCL7_2_20181108 Quartet_DNA_ILM_Nova_ARD_LCL5_2_20181108 ILM_Nova_ARD_2 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_3_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_3_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_3_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_3_20181108.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_3_20181108.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_3_20181108.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_3_20181108.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_3_20181108.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_ARD_LCL8_3_20181108 Quartet_DNA_ILM_Nova_ARD_LCL7_3_20181108 Quartet_DNA_ILM_Nova_ARD_LCL5_3_20181108 ILM_Nova_ARD_3 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_4_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_4_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_4_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_4_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_4_20190111.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_4_20190111.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_4_20190111.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_4_20190111.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_ARD_LCL8_4_20190111 Quartet_DNA_ILM_Nova_ARD_LCL7_4_20190111 Quartet_DNA_ILM_Nova_ARD_LCL5_4_20190111 ILM_Nova_ARD_4 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_5_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_5_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_5_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_5_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_5_20190111.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_5_20190111.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_5_20190111.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_5_20190111.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_ARD_LCL8_5_20190111 Quartet_DNA_ILM_Nova_ARD_LCL7_5_20190111 Quartet_DNA_ILM_Nova_ARD_LCL5_5_20190111 ILM_Nova_ARD_5 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_6_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_6_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_6_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_6_20190111.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL8_6_20190111.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL7_6_20190111.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL5_6_20190111.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_ARD_LCL6_6_20190111.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_ARD_LCL8_6_20190111 Quartet_DNA_ILM_Nova_ARD_LCL7_6_20190111 Quartet_DNA_ILM_Nova_ARD_LCL5_6_20190111 ILM_Nova_ARD_6 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL8_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL7_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL5_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL6_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL8_1_20171024.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL7_1_20171024.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL5_1_20171024.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL6_1_20171024.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_BRG_LCL8_1_20171024 Quartet_DNA_ILM_Nova_BRG_LCL7_1_20171024 Quartet_DNA_ILM_Nova_BRG_LCL5_1_20171024 ILM_Nova_BRG_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL8_1_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL7_1_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL5_1_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL6_1_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL8_1_20180930.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL7_1_20180930.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL5_1_20180930.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL6_1_20180930.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_BRG_LCL8_1_20180930 Quartet_DNA_ILM_Nova_BRG_LCL7_1_20180930 Quartet_DNA_ILM_Nova_BRG_LCL5_1_20180930 ILM_Nova_BRG_2 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL8_2_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL7_2_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL5_2_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL6_2_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL8_2_20180930.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL7_2_20180930.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL5_2_20180930.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL6_2_20180930.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_BRG_LCL8_2_20180930 Quartet_DNA_ILM_Nova_BRG_LCL7_2_20180930 Quartet_DNA_ILM_Nova_BRG_LCL5_2_20180930 ILM_Nova_BRG_3 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL8_3_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL7_3_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL5_3_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL6_3_20180930.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL8_3_20180930.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL7_3_20180930.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL5_3_20180930.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_BRG_LCL6_3_20180930.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_BRG_LCL8_3_20180930 Quartet_DNA_ILM_Nova_BRG_LCL7_3_20180930 Quartet_DNA_ILM_Nova_BRG_LCL5_3_20180930 ILM_Nova_BRG_4 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_GAC_LCL8_1_20171025.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_GAC_LCL7_1_20171025.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_GAC_LCL5_1_20171025.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_GAC_LCL6_1_20171025.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_GAC_LCL8_1_20171025.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_GAC_LCL7_1_20171025.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_GAC_LCL5_1_20171025.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_GAC_LCL6_1_20171025.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_GAC_LCL8_1_20171025 Quartet_DNA_ILM_Nova_GAC_LCL7_1_20171025 Quartet_DNA_ILM_Nova_GAC_LCL5_1_20171025 ILM_Nova_GAC_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_NVG_LCL8_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_NVG_LCL7_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_NVG_LCL5_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_NVG_LCL6_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_NVG_LCL8_1_20171024.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_NVG_LCL7_1_20171024.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_NVG_LCL5_1_20171024.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_NVG_LCL6_1_20171024.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_NVG_LCL8_1_20171024 Quartet_DNA_ILM_Nova_NVG_LCL7_1_20171024 Quartet_DNA_ILM_Nova_NVG_LCL5_1_20171024 ILM_Nova_NVG_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_WUX_LCL8_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_WUX_LCL7_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_WUX_LCL5_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_WUX_LCL6_1_20171024.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_WUX_LCL8_1_20171024.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_WUX_LCL7_1_20171024.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_WUX_LCL5_1_20171024.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_Nova_WUX_LCL6_1_20171024.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_Nova_WUX_LCL8_1_20171024 Quartet_DNA_ILM_Nova_WUX_LCL7_1_20171024 Quartet_DNA_ILM_Nova_WUX_LCL5_1_20171024 ILM_Nova_WUX_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL8_1_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL7_1_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL5_1_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL6_1_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL8_1_20170403.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL7_1_20170403.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL5_1_20170403.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL6_1_20170403.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_ARD_LCL8_1_20170403 Quartet_DNA_ILM_XTen_ARD_LCL7_1_20170403 Quartet_DNA_ILM_XTen_ARD_LCL5_1_20170403 ILM_XTen_ARD_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL8_2_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL7_2_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL5_2_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL6_2_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL8_2_20170403.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL7_2_20170403.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL5_2_20170403.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL6_2_20170403.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_ARD_LCL8_2_20170403 Quartet_DNA_ILM_XTen_ARD_LCL7_2_20170403 Quartet_DNA_ILM_XTen_ARD_LCL5_2_20170403 ILM_XTen_ARD_2 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL8_3_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL7_3_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL5_3_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL6_3_20170403.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL8_3_20170403.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL7_3_20170403.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL5_3_20170403.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_ARD_LCL6_3_20170403.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_ARD_LCL8_3_20170403 Quartet_DNA_ILM_XTen_ARD_LCL7_3_20170403 Quartet_DNA_ILM_XTen_ARD_LCL5_3_20170403 ILM_XTen_ARD_3 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL8_1_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL7_1_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL5_1_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL6_1_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL8_1_20170329.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL7_1_20170329.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL5_1_20170329.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL6_1_20170329.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_NVG_LCL8_1_20170329 Quartet_DNA_ILM_XTen_NVG_LCL7_1_20170329 Quartet_DNA_ILM_XTen_NVG_LCL5_1_20170329 ILM_XTen_NVG_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL8_2_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL7_2_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL5_2_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL6_2_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL8_2_20170329.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL7_2_20170329.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL5_2_20170329.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL6_2_20170329.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_NVG_LCL8_2_20170329 Quartet_DNA_ILM_XTen_NVG_LCL7_2_20170329 Quartet_DNA_ILM_XTen_NVG_LCL5_2_20170329 ILM_XTen_NVG_2 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL8_3_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL7_3_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL5_3_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL6_3_20170329.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL8_3_20170329.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL7_3_20170329.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL5_3_20170329.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_NVG_LCL6_3_20170329.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_NVG_LCL8_3_20170329 Quartet_DNA_ILM_XTen_NVG_LCL7_3_20170329 Quartet_DNA_ILM_XTen_NVG_LCL5_3_20170329 ILM_XTen_NVG_3 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_1_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_1_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_1_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_1_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_1_20170216.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_1_20170216.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_1_20170216.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_1_20170216.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_WUX_LCL8_1_20170216 Quartet_DNA_ILM_XTen_WUX_LCL7_1_20170216 Quartet_DNA_ILM_XTen_WUX_LCL5_1_20170216 ILM_XTen_WUX_1 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_2_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_2_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_2_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_2_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_2_20170216.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_2_20170216.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_2_20170216.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_2_20170216.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_WUX_LCL8_2_20170216 Quartet_DNA_ILM_XTen_WUX_LCL7_2_20170216 Quartet_DNA_ILM_XTen_WUX_LCL5_2_20170216 ILM_XTen_WUX_2 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_3_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_3_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_3_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_3_20170216.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_3_20170216.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_3_20170216.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_3_20170216.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_3_20170216.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_WUX_LCL8_3_20170216 Quartet_DNA_ILM_XTen_WUX_LCL7_3_20170216 Quartet_DNA_ILM_XTen_WUX_LCL5_3_20170216 ILM_XTen_WUX_3 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_4_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_4_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_4_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_4_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_4_20180703.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_4_20180703.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_4_20180703.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_4_20180703.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_WUX_LCL8_4_20180703 Quartet_DNA_ILM_XTen_WUX_LCL7_4_20180703 Quartet_DNA_ILM_XTen_WUX_LCL5_4_20180703 ILM_XTen_WUX_4 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_5_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_5_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_5_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_5_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_5_20180703.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_5_20180703.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_5_20180703.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_5_20180703.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_WUX_LCL8_5_20180703 Quartet_DNA_ILM_XTen_WUX_LCL7_5_20180703 Quartet_DNA_ILM_XTen_WUX_LCL5_5_20180703 ILM_XTen_WUX_5 | |||
oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_6_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_6_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_6_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_6_20180703.normed.callable.vcf.gz oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL8_6_20180703.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL7_6_20180703.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL5_6_20180703.normed.callable.vcf.gz.tbi oss://pgx-result/renluyao/high_confidence_call/normed_vcf/Quartet_DNA_ILM_XTen_WUX_LCL6_6_20180703.normed.callable.vcf.gz.tbi Quartet_DNA_ILM_XTen_WUX_LCL8_6_20180703 Quartet_DNA_ILM_XTen_WUX_LCL7_6_20180703 Quartet_DNA_ILM_XTen_WUX_LCL5_6_20180703 ILM_XTen_WUX_6 | |||
#LCL5vcf LCL6vcf LCL7vcf LCL8vcf LCL5name LCL6name LCL7name LCL8name familyname |
@@ -1,10 +1,13 @@ | |||
{ | |||
"{{ project_name }}.sister.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/rtg-tools:latest", | |||
"{{ project_name }}.mendelian.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/rtg-tools:latest", | |||
"{{ project_name }}.disk_size": "100", | |||
"{{ project_name }}.merge.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/rtg-tools:latest", | |||
"{{ project_name }}.fasta": "GRCh38.d1.vd1.fa", | |||
"{{ project_name }}.LCL6mendelian.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/vbt:v1.1", | |||
"{{ project_name }}.LCL5mendelian.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/vbt:v1.1", | |||
"{{ project_name }}.disk_size": "150", | |||
"{{ project_name }}.inputSamplesFile": "{{ inputSamplesFile }}", | |||
"{{ project_name }}.sdf": "oss://chinese-quartet/quartet-storage-data/reference_data/GRCh38.d1.vd1.sdf/", | |||
"{{ project_name }}.cluster_config": "OnDemand bcs.a2.large img-ubuntu-vpc", | |||
"{{ project_name }}.merge.sample_name": "{{ sample_name }}" | |||
} | |||
"{{ project_name }}.LCL6variantsNorm.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/bcftools:v1.9"", | |||
"{{ project_name }}.cluster_config": "OnDemand bcs.a2.xlarge img-ubuntu-vpc", | |||
"{{ project_name }}.LCL7variantsNorm.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/bcftools:v1.9"", | |||
"{{ project_name }}.LCL5variantsNorm.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/bcftools:v1.9"", | |||
"{{ project_name }}.LCL8variantsNorm.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/bcftools:v1.9"", | |||
"{{ project_name }}.ref_dir": "oss://chinese-quartet/quartet-storage-data/reference_data/" | |||
} |
@@ -1,34 +0,0 @@ | |||
task ExtractVCFinfo { | |||
File snv_train | |||
File snv_test | |||
File indel_train | |||
File indel_test | |||
String snv_train_sampleName = basename(snv_train,".vcf") | |||
String snv_test_sampleName = basename(snv_test,".vcf") | |||
String indel_train_sampleName = basename(indel_train,".vcf") | |||
String indel_test_sampleName = basename(indel_test,".vcf") | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
python /opt/extract_vcf_information.py -i ${snv_train} -o ${snv_train_sampleName}.txt | |||
python /opt/extract_vcf_information.py -i ${snv_test} -o ${snv_test_sampleName}.txt | |||
python /opt/extract_vcf_information.py -i ${indel_train} -o ${indel_train_sampleName}.txt | |||
python /opt/extract_vcf_information.py -i ${indel_test} -o ${indel_test_sampleName}.txt | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File snv_train_vcf = "${snv_train_sampleName}.txt" | |||
File snv_test_vcf = "${snv_test_sampleName}.txt" | |||
File indel_train_vcf = "${indel_train_sampleName}.txt" | |||
File indel_test_vcf = "${indel_test_sampleName}.txt" | |||
} | |||
} |
@@ -1,27 +0,0 @@ | |||
task KeepVar { | |||
File violation_merged_vcf | |||
File consistent_merged_vcf | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
python /opt/select_small_variants_supported_by_all_callsets.py -i ${violation_merged_vcf} -o violation.all.selected | |||
python /opt/select_small_variants_supported_by_all_callsets.py -i ${consistent_merged_vcf} -o consistent.all.selected | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File violation_keeped_vcf = "violation.all.selected.vcf" | |||
File violation_outlier_vcf = "violation.all.selected_outlier.vcf" | |||
File consistent_keeped_vcf = "consistent.all.selected.vcf" | |||
File consistent_outlier_vcf = "consistent.all.selected_outlier.vcf" | |||
} | |||
} | |||
@@ -1,69 +0,0 @@ | |||
task SepSnvIndel { | |||
File vcf | |||
String sampleName = basename(vcf,".normed.vcf") | |||
File keeped_vcf | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
cat ${vcf} | grep '#' > header | |||
cat ${vcf} | sed '/^#/d' | awk '$5!~/,/' > removed.body | |||
cat ${vcf} | sed '/^#/d' | awk '$5~/,/' > MNP.body | |||
cat header removed.body > ${sampleName}.MNPremoved.vcf | |||
cat header MNP.body > ${sampleName}.MNP.vcf | |||
rtg bgzip ${sampleName}.MNPremoved.vcf | |||
rtg index -f vcf ${sampleName}.MNPremoved.vcf.gz | |||
rtg bgzip ${keeped_vcf} -c > all.selected.vcf.gz | |||
rtg index -f vcf all.selected.vcf.gz | |||
rtg vcffilter -i ${sampleName}.MNPremoved.vcf.gz -o ${sampleName}.normed.snv.train.vcf.gz --include-vcf=all.selected.vcf.gz --snps-only | |||
rtg vcffilter -i ${sampleName}.MNPremoved.vcf.gz -o ${sampleName}.normed.snv.test.vcf.gz --exclude-vcf=all.selected.vcf.gz --snps-only | |||
rtg vcffilter -i ${sampleName}.MNPremoved.vcf.gz -o ${sampleName}.normed.indel.train.vcf.gz --include-vcf=all.selected.vcf.gz --non-snps-only | |||
rtg vcffilter -i ${sampleName}.MNPremoved.vcf.gz -o ${sampleName}.normed.indel.test.vcf.gz --exclude-vcf=all.selected.vcf.gz --non-snps-only | |||
rtg vcffilter -i ${sampleName}.MNPremoved.vcf.gz -o ${sampleName}.normed.snv.vcf.gz --snps-only | |||
rtg vcffilter -i ${sampleName}.MNPremoved.vcf.gz -o ${sampleName}.normed.indel.vcf.gz --non-snps-only | |||
gzip -d ${sampleName}.normed.snv.train.vcf.gz -c > ${sampleName}.normed.snv.train.vcf | |||
gzip -d ${sampleName}.normed.snv.test.vcf.gz -c > ${sampleName}.normed.snv.test.vcf | |||
gzip -d ${sampleName}.normed.indel.train.vcf.gz -c > ${sampleName}.normed.indel.train.vcf | |||
gzip -d ${sampleName}.normed.indel.test.vcf.gz -c > ${sampleName}.normed.indel.test.vcf | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File MNP="${sampleName}.MNP.vcf" | |||
File snv_gz = "${sampleName}.normed.snv.vcf.gz" | |||
File snv_idx = "${sampleName}.normed.snv.vcf.gz.tbi" | |||
File indel_gz = "${sampleName}.normed.indel.vcf.gz" | |||
File indel_idx = "${sampleName}.normed.indel.vcf.gz.tbi" | |||
File snv_train = "${sampleName}.normed.snv.train.vcf" | |||
File snv_test = "${sampleName}.normed.snv.test.vcf" | |||
File indel_train = "${sampleName}.normed.indel.train.vcf" | |||
File indel_test = "${sampleName}.normed.indel.test.vcf" | |||
File snv_train_gz = "${sampleName}.normed.snv.train.vcf.gz" | |||
File snv_test_gz = "${sampleName}.normed.snv.test.vcf.gz" | |||
File indel_train_gz = "${sampleName}.normed.indel.train.vcf.gz" | |||
File indel_test_gz = "${sampleName}.normed.indel.test.vcf.gz" | |||
File snv_train_idx = "${sampleName}.normed.snv.train.vcf.gz.tbi" | |||
File snv_test_idx = "${sampleName}.normed.snv.test.vcf.gz.tbi" | |||
File indel_train_idx = "${sampleName}.normed.indel.train.vcf.gz.tbi" | |||
File indel_test_idx = "${sampleName}.normed.indel.test.vcf.gz.tbi" | |||
} | |||
} |
@@ -1,71 +0,0 @@ | |||
task SepTrueFalse { | |||
File snv_true_bed | |||
File snv_false_bed | |||
File indel_true_bed | |||
File indel_false_bed | |||
File snv_padding | |||
File indel_padding | |||
File snv_gz | |||
File indel_gz | |||
File snv_idx | |||
File indel_idx | |||
File snv_test_gz | |||
File indel_test_gz | |||
File snv_test_idx | |||
File indel_test_idx | |||
String sampleName = basename(snv_gz,".normed.snv.vcf.gz") | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
rtg vcffilter -i ${snv_test_gz} -o ${sampleName}.true.snv.vcf.gz --include-bed=${snv_true_bed} | |||
rtg vcffilter -i ${snv_test_gz} -o ${sampleName}.false.snv.vcf.gz --include-bed=${snv_false_bed} | |||
rtg vcffilter -i ${snv_gz} -o ${sampleName}.remain.snv.vcf.gz --exclude-bed=${snv_false_bed} | |||
rtg vcffilter -i ${snv_gz} -o ${sampleName}.padding.snv.vcf.gz --include-bed=${snv_padding} | |||
rtg vcffilter -i ${indel_test_gz} -o ${sampleName}.true.indel.vcf.gz --include-bed=${indel_true_bed} | |||
rtg vcffilter -i ${indel_test_gz} -o ${sampleName}.false.indel.vcf.gz --include-bed=${indel_false_bed} | |||
rtg vcffilter -i ${indel_gz} -o ${sampleName}.remain.indel.vcf.gz --exclude-bed=${indel_false_bed} | |||
rtg vcffilter -i ${indel_gz} -o ${sampleName}.padding.indel.vcf.gz --include-bed=${indel_padding} | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File snv_true_vcf = "${sampleName}.true.snv.vcf.gz" | |||
File snv_true_vcf_index = "${sampleName}.true.snv.vcf.gz.tbi" | |||
File snv_false_vcf = "${sampleName}.false.snv.vcf.gz" | |||
File snv_false_vcf_index = "${sampleName}.false.snv.vcf.gz.tbi" | |||
File snv_remain_vcf = "${sampleName}.remain.snv.vcf.gz" | |||
File snv_remain_vcf_index = "${sampleName}.remain.snv.vcf.gz.tbi" | |||
File snv_padding_vcf = "${sampleName}.padding.snv.vcf.gz" | |||
File snv_padding_vcf_index = "${sampleName}.padding.snv.vcf.gz.tbi" | |||
File indel_true_vcf = "${sampleName}.true.indel.vcf.gz" | |||
File indel_true_vcf_index = "${sampleName}.true.indel.vcf.gz.tbi" | |||
File indel_false_vcf = "${sampleName}.false.indel.vcf.gz" | |||
File indel_false_vcf_index = "${sampleName}.false.indel.vcf.gz.tbi" | |||
File indel_remain_vcf = "${sampleName}.remain.indel.vcf.gz" | |||
File indel_remain_vcf_index = "${sampleName}.remain.indel.vcf.gz.tbi" | |||
File indel_padding_vcf = "${sampleName}.padding.indel.vcf.gz" | |||
File indel_padding_vcf_index = "${sampleName}.padding.indel.vcf.gz.tbi" | |||
} | |||
} | |||
@@ -0,0 +1,31 @@ | |||
task VCFrename { | |||
File trio_vcf_gz | |||
File trio_vcf_idx | |||
String mother_name | |||
String father_name | |||
String child_name | |||
String family_name | |||
String child | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
echo "MOTHER ${mother_name}.${child} | |||
FATHER ${father_name}.${child} | |||
CHILD ${child_name}" > rename.txt | |||
rtg vcfannotate -i ${trio_vcf_gz} -o ${family_name}.${child}.rename.vcf.gz --relabel=rename.txt | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File rename_trio_vcf_gz = "${family_name}.${child}.rename.vcf.gz" | |||
File rename_trio_vcf_idx = "${family_name}.${child}.rename.vcf.gz.tbi" | |||
} | |||
} |
@@ -11,10 +11,11 @@ task indelNorm { | |||
cat ${vcf} | grep '#' > header | |||
cat ${vcf} | grep -v '#' > body | |||
cat body | grep -w '^chr1\|^chr2\|^chr3\|^chr4\|^chr5\|^chr6\|^chr7\|^chr8\|^chr9\|^chr10\|^chr11\|^chr12\|^chr13\|^chr14\|^chr15\|^chr16\|^chr17\|^chr18\|^chr19\|^chr20\|^chr21\|^chr22\|^chrX\|^chrY\|^chrM' > body.filtered | |||
cat body | grep -w '^chr1\|^chr2\|^chr3\|^chr4\|^chr5\|^chr6\|^chr7\|^chr8\|^chr9\|^chr10\|^chr11\|^chr12\|^chr13\|^chr14\|^chr15\|^chr16\|^chr17\|^chr18\|^chr19\|^chr20\|^chr21\|^chr22\|^chrX\' > body.filtered | |||
cat header body.filtered > ${sampleName}.filtered.vcf | |||
/opt/hall-lab/bcftools-1.9/bin/bcftools norm -f ${ref_dir}/${fasta} ${sampleName}.filtered.vcf > ${sampleName}.normed.vcf | |||
>>> | |||
runtime { |
@@ -1,50 +1,24 @@ | |||
task mendelian { | |||
File mother_vcf_gz | |||
File father_vcf_gz | |||
File child_vcf_gz | |||
File mother_vcf_idx | |||
File father_vcf_idx | |||
File child_vcf_idx | |||
String mother_name | |||
String father_name | |||
File child_vcf | |||
File LCL7_vcf | |||
File LCL8_vcf | |||
String LCL7_name | |||
String LCL8_name | |||
String child_name | |||
String family_name | |||
File sdf | |||
File ref_dir | |||
String fasta | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
rtg vcfmerge -o family.vcf.gz ${child_vcf_gz} ${mother_vcf_gz} ${father_vcf_gz} | |||
export LD_LIBRARY_PATH=/opt/htslib-1.9 | |||
nt=$(nproc) | |||
mkdir VBT | |||
rtg vcfannotate -i family.vcf.gz -o family.anno.vcf.gz \ | |||
--add-header "##SAMPLE=<ID=${mother_name},Sex=FEMALE>" \ | |||
--add-header "##SAMPLE=<ID=${father_name},Sex=MALE>" \ | |||
--add-header "##SAMPLE=<ID=${child_name},Sex=FEMALE>" \ | |||
--add-header "##PEDIGREE=<Child=${child_name},Mother=${mother_name},Father=${father_name}>" | |||
rtg mendelian -i family.anno.vcf.gz -t ${sdf} -o ${family_name}.family.anno.mendelian.vcf.gz --lenient | |||
zcat ${family_name}.family.anno.mendelian.vcf.gz | grep '#' > header | |||
zcat ${family_name}.family.anno.mendelian.vcf.gz | grep -v '#'| grep 'MCU\|MCV' | cat header - > ${family_name}.violation.vcf | |||
zcat ${family_name}.family.anno.mendelian.vcf.gz | grep -v '#'| grep -v 'MCV' | grep -v 'MCU' | cat header - > ${family_name}.consistent.vcf | |||
rtg bgzip ${family_name}.violation.vcf | |||
rtg index -f vcf ${family_name}.violation.vcf.gz | |||
rtg bgzip ${family_name}.consistent.vcf | |||
rtg index -f vcf ${family_name}.consistent.vcf.gz | |||
zcat ${child_vcf_gz} | grep '##' > child_header | |||
zcat ${family_name}.violation.vcf.gz | grep -v '##' | cut -f1-10 | awk '$10!~/\./' | cat child_header - > ${child_name}.violation.vcf | |||
zcat ${family_name}.consistent.vcf.gz | grep -v '##' | cut -f1-10 | awk '$10!~/\./' | cat child_header - > ${child_name}.consistent.vcf | |||
rtg bgzip ${child_name}.violation.vcf | |||
rtg index -f vcf ${child_name}.violation.vcf.gz | |||
rtg bgzip ${child_name}.consistent.vcf | |||
rtg index -f vcf ${child_name}.consistent.vcf.gz | |||
/opt/VBT-TrioAnalysis/vbt mendelian -ref ${ref_dir}/${fasta} -mother ${LCL8_vcf} -father ${LCL7_vcf} -child ${child_vcf} -outDir VBT -out-prefix ${child_name}.family --output-violation-regions -thread-count $nt | |||
cat VBT/${child_name}.family_trio.vcf > ${child_name}.family.vcf | |||
>>> | |||
runtime { | |||
@@ -54,15 +28,7 @@ task mendelian { | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File family_vcf_gz = "${family_name}.family.anno.mendelian.vcf.gz" | |||
File family_vcf_index = "${family_name}.family.anno.mendelian.vcf.gz.tbi" | |||
File family_violation_vcf_gz = "${family_name}.violation.vcf.gz" | |||
File family_violation_vcf_idx = "${family_name}.violation.vcf.gz.tbi" | |||
File family_consistent_vcf_gz = "${family_name}.consistent.vcf.gz" | |||
File family_consistent_vcf_idx = "${family_name}.consistent.vcf.gz.tbi" | |||
File violation_vcf_gz = "${child_name}.violation.vcf.gz" | |||
File violation_vcf_idx = "${child_name}.violation.vcf.gz.tbi" | |||
File consistent_vcf_gz = "${child_name}.consistent.vcf.gz" | |||
File consistent_vcf_idx = "${child_name}.consistent.vcf.gz.tbi" | |||
Array[File] vbt_mendelian = glob("VBT/*") | |||
File trio_vcf = "${child_name}.family.vcf" | |||
} | |||
} |
@@ -1,25 +1,17 @@ | |||
task merge { | |||
Array[File] child_violation_sister | |||
Array[File] child_violation_sister_idx | |||
Array[File] child_violation_nonsister | |||
Array[File] child_violation_nonsister_idx | |||
Array[File] child_consistent_sister | |||
Array[File] child_consistent_sister_idx | |||
Array[File] child_consistent_nonsister | |||
Array[File] child_consistent_nonsister_idx | |||
String sample_name | |||
Array[File] family_vcf_gz | |||
Array[File] family_vcf_idx | |||
String sample | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${sample_name}.violation.sister.vcf ${sep=" " child_violation_sister} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${sample_name}.violation.nonsister.vcf ${sep=" " child_violation_nonsister} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${sample}.merged.vcf ${sep=" " family_vcf_gz} | |||
cat ${sample}.merged.vcf | grep -v '#' | cut -f1-2 | sed s'/\t/_/g' | sort | uniq -c | sed 's/\s\+/\t/g' | awk '{ if ($1 != 1) { print } }' | cut -f3 > ${sample}.vcf_dup.txt | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${sample_name}.consistent.sister.vcf ${sep=" " child_consistent_sister} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${sample_name}.consistent.nonsister.vcf ${sep=" " child_consistent_nonsister} | |||
>>> | |||
runtime { | |||
@@ -29,9 +21,7 @@ task merge { | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File violation_sister_merged_vcf = "${sample_name}.violation.sister.vcf" | |||
File violation_nonsister_merged_vcf = "${sample_name}.violation.nonsister.vcf" | |||
File consistent_sister_merged_vcf = "${sample_name}.consistent.sister.vcf" | |||
File consistent_nonsister_merged_vcf = "${sample_name}.consistent.nonsister.vcf" | |||
File merged_vcf = "${sample}.merged.vcf" | |||
File vcf_dup = "${sample}.vcf_dup.txt" | |||
} | |||
} |
@@ -1,35 +0,0 @@ | |||
task mergeBed { | |||
Array[File] snv_true_bed | |||
Array[File] snv_false_bed | |||
Array[File] indel_true_bed | |||
Array[File] indel_false_bed | |||
Array[File] indel_padding | |||
Array[File] snv_padding | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
/opt/ccdg/bedtools-2.27.1/bin/bedtools multiinter -i ${sep=" " snv_true_bed} ${sep=" " indel_true_bed} > merged.true.bed | |||
/opt/ccdg/bedtools-2.27.1/bin/bedtools multiinter -i ${sep=" " snv_false_bed} ${sep=" " indel_false_bed} > merged.false.bed | |||
/opt/ccdg/bedtools-2.27.1/bin/bedtools multiinter -i ${sep=" " snv_padding} ${sep=" " indel_padding} > merged.padding.bed | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File true_bed = "merged.true.bed" | |||
File false_bed = "merged.false.bed" | |||
File padding = "merged.padding.bed" | |||
} | |||
} | |||
@@ -0,0 +1,34 @@ | |||
task mergeSister { | |||
File LCL5_trio_vcf_gz | |||
File LCL5_trio_vcf_idx | |||
File LCL6_trio_vcf_gz | |||
File LCL6_trio_vcf_idx | |||
String family_name | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
rtg vcfmerge -o LCL5.LCL6.merged.vcf.gz ${LCL5_trio_vcf_gz} ${LCL6_trio_vcf_gz} | |||
rtg vcfmerge -o LCL6.LCL5.merged.vcf.gz ${LCL6_trio_vcf_gz} ${LCL5_trio_vcf_gz} | |||
zcat LCL5.LCL6.merged.vcf.gz | grep '##' > header | |||
zcat LCL5.LCL6.merged.vcf.gz | grep -v '##' | cut -f8 > LCL5.mendelian | |||
zcat LCL6.LCL5.merged.vcf.gz | grep -v '##' | paste - LCL5.mendelian > body | |||
cat header body > ${family_name}.trio.info.vcf | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File family_mendelian_info = "${family_name}.trio.info.vcf" | |||
} | |||
} |
@@ -1,61 +0,0 @@ | |||
task mergeVCF { | |||
Array[File] snv_true_vcf | |||
Array[File] snv_true_vcf_index | |||
Array[File] snv_false_vcf | |||
Array[File] snv_false_vcf_index | |||
Array[File] snv_remain_vcf | |||
Array[File] snv_remain_vcf_index | |||
Array[File] snv_padding_vcf | |||
Array[File] snv_padding_vcf_index | |||
Array[File] indel_true_vcf | |||
Array[File] indel_true_vcf_index | |||
Array[File] indel_false_vcf | |||
Array[File] indel_false_vcf_index | |||
Array[File] indel_remain_vcf | |||
Array[File] indel_remain_vcf_index | |||
Array[File] indel_padding_vcf | |||
Array[File] indel_padding_vcf_index | |||
String quartet_sample | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${quartet_sample}.snv.true.vcf.gz ${sep=" " snv_true_vcf} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${quartet_sample}.snv.false.vcf.gz ${sep=" " snv_false_vcf} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${quartet_sample}.snv.remain.vcf.gz ${sep=" " snv_remain_vcf} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${quartet_sample}.snv.padding.vcf.gz ${sep=" " snv_padding_vcf} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${quartet_sample}.indel.true.vcf.gz ${sep=" " indel_true_vcf} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${quartet_sample}.indel.false.vcf.gz ${sep=" " indel_false_vcf} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${quartet_sample}.indel.remain.vcf.gz ${sep=" " indel_remain_vcf} | |||
rtg vcfmerge --force-merge-all --no-gzip -o ${quartet_sample}.indel.padding.vcf.gz ${sep=" " indel_padding_vcf} | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File merged_snv_true = "${quartet_sample}.snv.true.vcf.gz" | |||
File merged_snv_false = "${quartet_sample}.snv.false.vcf.gz" | |||
File merged_snv_remain = "${quartet_sample}.snv.remain.vcf.gz" | |||
File merged_snv_padding = "${quartet_sample}.snv.padding.vcf.gz" | |||
File merged_indel_true = "${quartet_sample}.indel.true.vcf.gz" | |||
File merged_indel_false = "${quartet_sample}.indel.false.vcf.gz" | |||
File merged_indel_remain = "${quartet_sample}.indel.remain.vcf.gz" | |||
File merged_indel_padding = "${quartet_sample}.indel.padding.vcf.gz" | |||
} | |||
} |
@@ -0,0 +1,30 @@ | |||
task reformVCF { | |||
File family_mendelian_info | |||
File family_name | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
python /opt/reformVCF.py -vcf ${family_mendelian_info} -name ${family_name} | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File LCL5_family_info = "${family_name}.LCL5.vcf" | |||
File LCL6_family_info = "${family_name}.LCL6.vcf" | |||
File LCL7_family_info = "${family_name}.LCL7.vcf" | |||
File LCL8_family_info = "${family_name}.LCL8.vcf" | |||
File family_info = "${family_name}.vcf" | |||
} | |||
} | |||
@@ -1,32 +1,23 @@ | |||
task sister { | |||
File violation_vcf_gz | |||
File violation_vcf_idx | |||
File consistent_vcf_gz | |||
File consistent_vcf_idx | |||
File sister_vcf_gz | |||
File sister_vcf_idx | |||
File sdf | |||
File LCL5_vcf | |||
File LCL6_vcf | |||
File ref_dir | |||
String fasta | |||
String family_name | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
rtg vcfeval -b ${sister_vcf_gz} -c ${violation_vcf_gz} -o violation -t ${sdf} | |||
export LD_LIBRARY_PATH=/opt/htslib-1.9 | |||
rtg vcfeval -b ${sister_vcf_gz} -c ${consistent_vcf_gz} -o consistent -t ${sdf} | |||
mkdir sister | |||
/opt/VBT-TrioAnalysis/vbt varcomp -called ${LCL5_vcf} -base ${LCL6_vcf} -ref ${ref_dir}/${fasta} -outDir sister -filter none | |||
mv violation/tp.vcf.gz ${family_name}.violation.sister.vcf.gz | |||
mv violation/fp.vcf.gz ${family_name}.violation.nonsister.vcf.gz | |||
mv violation/tp.vcf.gz.tbi ${family_name}.violation.sister.vcf.gz.tbi | |||
mv violation/fp.vcf.gz.tbi ${family_name}.violation.nonsister.vcf.gz.tbi | |||
mv violation/summary.txt ${family_name}.violation.summary.txt | |||
mv consistent/tp.vcf.gz ${family_name}.consistent.sister.vcf.gz | |||
mv consistent/fp.vcf.gz ${family_name}.consistent.nonsister.vcf.gz | |||
mv consistent/tp.vcf.gz.tbi ${family_name}.consistent.sister.vcf.gz.tbi | |||
mv consistent/fp.vcf.gz.tbi ${family_name}.consistent.nonsister.vcf.gz.tbi | |||
mv consistent/summary.txt ${family_name}.consistent.summary.txt | |||
mv sister/TPBase.vcf ${family_name}.sister.consistent.vcf | |||
mv sister/FP.vcf ${family_name}.LCL5.uniq.vcf | |||
mv sister/FN.vcf ${family_name}.LCL6.uniq.vcf | |||
mv sister/log.txt ${family_name}.sister.vbt.log.txt | |||
>>> | |||
runtime { | |||
@@ -36,15 +27,9 @@ task sister { | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File child_violation_sister = "${family_name}.violation.sister.vcf.gz" | |||
File child_violation_sister_idx = "${family_name}.violation.sister.vcf.gz.tbi" | |||
File child_violation_nonsister = "${family_name}.violation.nonsister.vcf.gz" | |||
File child_violation_nonsister_idx = "${family_name}.violation.nonsister.vcf.gz.tbi" | |||
File child_consistent_sister = "${family_name}.consistent.sister.vcf.gz" | |||
File child_consistent_sister_idx = "${family_name}.consistent.sister.vcf.gz.tbi" | |||
File child_consistent_nonsister = "${family_name}.consistent.nonsister.vcf.gz" | |||
File child_consistent_nonsister_idx = "${family_name}.consistent.nonsister.vcf.gz.tbi" | |||
File violation_summary = "${family_name}.violation.summary.txt" | |||
File consistent_summary = "${family_name}.consistent.summary.txt" | |||
File sister_consistent_vcf = "${family_name}.sister.consistent.vcf" | |||
File LCL5_uniq = "${family_name}.LCL5.uniq.vcf" | |||
File LCL6_uniq = "${family_name}.LCL6.uniq.vcf" | |||
File log = "${family_name}.sister.vbt.log.txt" | |||
} | |||
} |
@@ -0,0 +1,30 @@ | |||
task variantsNorm { | |||
File vcf | |||
File ref_dir | |||
String fasta | |||
String sampleName | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
cat ${vcf} | grep '#' > header | |||
cat ${vcf} | grep -v '#' > body | |||
cat body | grep -w '^chr1\|^chr2\|^chr3\|^chr4\|^chr5\|^chr6\|^chr7\|^chr8\|^chr9\|^chr10\|^chr11\|^chr12\|^chr13\|^chr14\|^chr15\|^chr16\|^chr17\|^chr18\|^chr19\|^chr20\|^chr21\|^chr22\|^chrX' > body.filtered | |||
cat header body.filtered > ${sampleName}.filtered.vcf | |||
/opt/hall-lab/bcftools-1.9/bin/bcftools norm -f ${ref_dir}/${fasta} ${sampleName}.filtered.vcf > ${sampleName}.normed.vcf | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File normed_vcf = "${sampleName}.normed.vcf" | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
task votes { | |||
File merged_vcf | |||
File vcf_dup | |||
String sample | |||
String prefix | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
python /opt/high_confidence_call_vote.py -vcf ${merged_vcf} -dup ${vcf_dup} -sample ${sample} -prefix ${prefix} | |||
cat ${prefix}_annotated.vcf | cut -f1-9,45 | grep -v 'filtered' | grep -v 'confirm for parents' | grep -v 'pcr-free-speicifc' | grep -v 'pcr-speicifc' | grep -v 'dupVar' > ${prefix}_bechmarking_calls.vcf | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File annotated_vcf = "${prefix}_annotated.vcf" | |||
File benchmark_call = "${prefix}_bechmarking_calls.vcf" | |||
} | |||
} |
@@ -1,24 +1,14 @@ | |||
task zipIndex { | |||
File violation_vcf | |||
File consistent_vcf | |||
File child_vcf_gz | |||
File child_vcf_idx | |||
File child_name | |||
File vcf | |||
String sample | |||
String family_name | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
rtg bgzip ${violation_vcf} -c > ${family_name}.violation.vcf.gz | |||
rtg index -f vcf ${family_name}.violation.vcf.gz | |||
rtg bgzip ${consistent_vcf} -c > ${family_name}.consistent.vcf | |||
rtg index -f vcf ${family_name}.consistent.vcf.gz | |||
rtg vcffilter -i ${child_vcf_gz} -o ${child_name}.violation.vcf.gz --include-vcf=${family_name}.violation.vcf.gz | |||
rtg vcffilter -i ${child_vcf_gz} -o ${child_name}.consistent.vcf.gz --include-vcf=${family_name}.consistent.vcf.gz | |||
rtg bgzip ${vcf} -c > ${family_name}.${sample}.vcf.gz | |||
rtg index -f vcf ${family_name}.${sample}.vcf.gz | |||
>>> | |||
@@ -29,9 +19,7 @@ task zipIndex { | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File violation_vcf_gz = "${child_name}.violation.vcf.gz" | |||
File violation_vcf_idx = "${child_name}.violation.vcf.gz.tbi" | |||
File consistent_vcf_gz = "${child_name}.consistent.vcf" | |||
File consistent_vcf_idx = "${child_name}.consistent.vcf.tbi" | |||
File vcf_gz = "${family_name}.${sample}.vcf.gz" | |||
File vcf_idx = "${family_name}.${sample}.vcf.gz.tbi" | |||
} | |||
} |
@@ -1,59 +1,76 @@ | |||
import "./tasks/variantsNorm.wdl" as variantsNorm | |||
import "./tasks/mendelian.wdl" as mendelian | |||
import "./tasks/sister.wdl" as sister | |||
import "./tasks/merge.wdl" as merge | |||
workflow {{ project_name }} { | |||
File inputSamplesFile | |||
Array[Array[File]] inputSamples = read_tsv(inputSamplesFile) | |||
File sdf | |||
File ref_dir | |||
String fasta | |||
String cluster_config | |||
String disk_size | |||
scatter (sample in inputSamples){ | |||
call mendelian.mendelian as mendelian { | |||
input: | |||
mother_vcf_gz=sample[0], | |||
father_vcf_gz=sample[1], | |||
child_vcf_gz=sample[2], | |||
mother_vcf_idx=sample[4], | |||
father_vcf_idx=sample[5], | |||
child_vcf_idx=sample[6], | |||
mother_name=sample[8], | |||
father_name=sample[9], | |||
child_name=sample[10], | |||
family_name=sample[11], | |||
sdf=sdf, | |||
scatter (quartet in inputSamples){ | |||
call variantsNorm.variantsNorm as LCL5variantsNorm{ | |||
input: | |||
vcf=quartet[0], | |||
ref_dir=ref_dir, | |||
fasta=fasta, | |||
sampleName=quartet[4], | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
call sister.sister as sister { | |||
call variantsNorm.variantsNorm as LCL6variantsNorm{ | |||
input: | |||
violation_vcf_gz=mendelian.violation_vcf_gz, | |||
violation_vcf_idx=mendelian.violation_vcf_idx, | |||
consistent_vcf_gz=mendelian.consistent_vcf_gz, | |||
consistent_vcf_idx=mendelian.consistent_vcf_idx, | |||
sister_vcf_gz=sample[3], | |||
sister_vcf_idx=sample[7], | |||
sdf=sdf, | |||
family_name=sample[11], | |||
vcf=quartet[1], | |||
ref_dir=ref_dir, | |||
fasta=fasta, | |||
sampleName=quartet[5], | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
call variantsNorm.variantsNorm as LCL7variantsNorm{ | |||
input: | |||
vcf=quartet[2], | |||
ref_dir=ref_dir, | |||
fasta=fasta, | |||
sampleName=quartet[6], | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
call variantsNorm.variantsNorm as LCL8variantsNorm{ | |||
input: | |||
vcf=quartet[3], | |||
ref_dir=ref_dir, | |||
fasta=fasta, | |||
sampleName=quartet[7], | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
call mendelian.mendelian as LCL5mendelian { | |||
input: | |||
child_vcf=LCL5variantsNorm.normed_vcf, | |||
LCL7_vcf=LCL7variantsNorm.normed_vcf, | |||
LCL8_vcf=LCL8variantsNorm.normed_vcf, | |||
LCL7_name=quartet[6], | |||
LCL8_name=quartet[7], | |||
child_name=quartet[4], | |||
ref_dir=ref_dir, | |||
fasta=fasta, | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
call mendelian.mendelian as LCL6mendelian { | |||
input: | |||
child_vcf=LCL6variantsNorm.normed_vcf, | |||
LCL7_vcf=LCL7variantsNorm.normed_vcf, | |||
LCL8_vcf=LCL8variantsNorm.normed_vcf, | |||
LCL7_name=quartet[6], | |||
LCL8_name=quartet[7], | |||
child_name=quartet[5], | |||
ref_dir=ref_dir, | |||
fasta=fasta, | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
} | |||
call merge.merge as merge { | |||
input: | |||
child_violation_sister=sister.child_violation_sister, | |||
child_violation_sister_idx=sister.child_violation_sister_idx, | |||
child_violation_nonsister=sister.child_violation_nonsister, | |||
child_violation_nonsister_idx=sister.child_violation_nonsister_idx, | |||
child_consistent_sister=sister.child_consistent_sister, | |||
child_consistent_sister_idx=sister.child_consistent_sister_idx, | |||
child_consistent_nonsister=sister.child_consistent_nonsister, | |||
child_consistent_nonsister_idx=sister.child_consistent_nonsister_idx, | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
} |