// File: chhylp123[P]hifiasm/CommandLines.cpp
// Function: init_opt(hifiasm_opt_t*)
void init_opt(hifiasm_opt_t* asm_opt)
{
	memset(asm_opt, 0, sizeof(hifiasm_opt_t));
	///asm_opt->flag = 0;
    asm_opt->flag = HA_F_PARTITION;
    asm_opt->coverage = -1;
    asm_opt->num_reads = 0;
    asm_opt->read_file_names = NULL;
    asm_opt->output_file_name = (char*)(DEFAULT_OUTPUT);
    asm_opt->required_read_name = NULL;
    asm_opt->hic_enzymes = NULL;
    asm_opt->hic_reads[0] = NULL;
    asm_opt->hic_reads[1] = NULL;
    asm_opt->fn_bin_poy = NULL;
    asm_opt->ar = NULL;
    asm_opt->thread_num = 1;
    asm_opt->k_mer_length = 51;
    asm_opt->hic_mer_length = 31;
    asm_opt->ul_mer_length = 19;
    asm_opt->trans_mer_length = 31;
	asm_opt->mz_win = 51;
    asm_opt->ul_mz_win = 19;
    asm_opt->trans_win = 31;
    asm_opt->mz_rewin = 1000;
    asm_opt->ul_mz_rewin = 360;
	asm_opt->mz_sample_dist = 500;
	asm_opt->bf_shift = 37;
	asm_opt->max_kmer_cnt = 2000;
	asm_opt->high_factor = 5.0;
	asm_opt->max_ov_diff_ec = 0.04;
	asm_opt->max_ov_diff_final = 0.03;
	asm_opt->hom_cov = 20;
    asm_opt->het_cov = -1024;
	asm_opt->max_n_chain = MIN_N_CHAIN;
	asm_opt->min_hist_kmer_cnt = 5;
    asm_opt->load_index_from_disk = 1;
    asm_opt->write_index_to_disk = 1;
    asm_opt->number_of_round = 3;
    asm_opt->number_of_pround = 0/**3**/;
    asm_opt->adapterLen = 0;
    asm_opt->clean_round = 4;
    ///asm_opt->small_pop_bubble_size = 100000;
    asm_opt->small_pop_bubble_size = 0;
    asm_opt->large_pop_bubble_size = 10000000;
    asm_opt->min_drop_rate = 0.2;
    asm_opt->max_drop_rate = 0.8;
    asm_opt->max_hang_Len = 1000;
    asm_opt->max_hang_rate = 0.8;
    asm_opt->gap_fuzz = 1000;
    asm_opt->min_overlap_Len = 50;
    asm_opt->min_overlap_coverage = 0;
    asm_opt->max_short_tip = 3;
    asm_opt->max_short_ul_tip = 6;
    asm_opt->max_contig_tip = 3;
    asm_opt->min_cnt = 2;
    asm_opt->mid_cnt = 5;
    asm_opt->purge_level_primary = 3;
    asm_opt->purge_level_trio = 0;
    asm_opt->purge_simi_rate_l2 = 0.75;
    asm_opt->purge_simi_rate_l3 = 0.55;
    asm_opt->trans_base_rate = 0.93;
    asm_opt->trans_base_rate_sec = 0.5;
    asm_opt->purge_overlap_len = 1;
    ///asm_opt->purge_overlap_len_hic = 50;
    asm_opt->recover_atg_cov_min = -1024;
    asm_opt->recover_atg_cov_max = INT_MAX;
    asm_opt->hom_global_coverage = -1;
    asm_opt->hom_global_coverage_set = 0;
    asm_opt->pur_global_coverage = -1;
    asm_opt->bed_inconsist_rate = 70;
    asm_opt->hic_inconsist_rate = 30;
    ///asm_opt->bub_mer_length = 3;
    asm_opt->bub_mer_length = 1000000;
    asm_opt->b_low_cov = 0;
    asm_opt->b_high_cov = -1;
    asm_opt->m_rate = 0.75;
    asm_opt->hap_occ = 1;
    asm_opt->polyploidy = 2;
    asm_opt->trio_flag_occ_thres = 60;
    asm_opt->seed = 11;
    asm_opt->n_perturb = 10000;
    asm_opt->f_perturb = 0.1;
    asm_opt->n_weight = 3;
    asm_opt->is_alt = 0;
    asm_opt->misjoin_len = 500000;
    asm_opt->scffold = 0;
    asm_opt->dp_min_len = 2000;
    asm_opt->dp_e = 0.0025;
    asm_opt->hg_size = -1;
    asm_opt->kpt_rate = -1;
    asm_opt->infor_cov = 3;
    asm_opt->s_hap_cov = 3;
    asm_opt->ul_error_rate = 0.2/**0.15**/;
    asm_opt->ul_error_rate_low = 0.1;
    asm_opt->ul_error_rate_hpc = 0.2;
    asm_opt->ul_ec_round = 3;
    asm_opt->is_dbg_het_cnt = 0;
    asm_opt->is_low_het_ul = 0;
    asm_opt->is_base_trans = 1;
    asm_opt->is_read_trans = 1;
    asm_opt->is_topo_trans = 1;
    asm_opt->is_bub_trans = 1;
    asm_opt->bin_only = 0;
    asm_opt->ul_clean_round = 1;
    asm_opt->prt_dbg_gfa = 0;
    asm_opt->integer_correct_round = 0;
    asm_opt->dbg_ovec_cal = 0;
    asm_opt->min_path_drop_rate = 0.2;
    asm_opt->max_path_drop_rate = 0.6;
    asm_opt->hifi_pst_join = 1;
    asm_opt->ul_pst_join = 1;
    asm_opt->trio_cov_het_ovlp = -1;
    asm_opt->ul_min_base = 0;
    asm_opt->self_scaf = 0;
    asm_opt->self_scaf_min = 250000;
    asm_opt->self_scaf_reliable_min = 5000000;
    asm_opt->self_scaf_gap_max = 3000000;
    asm_opt->sec_in = NULL;
    asm_opt->somatic_cov = -1;

    asm_opt->telo_motif = NULL;
    asm_opt->telo_pen = 1;
    asm_opt->telo_drop = 2000;
    asm_opt->telo_mic_sc = 500;

    asm_opt->is_ont = 0;
    asm_opt->is_sc = 0;
    asm_opt->chemical_cov = 1;
    asm_opt->chemical_flank = 256;
    asm_opt->ul_mod = 0;

    asm_opt->rl_cut = 1000;
    asm_opt->sc_cut = 10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
xorl %esi, %esi
movl $0x2d8, %edx            # imm = 0x2D8
callq 0x2100
movq -0x8(%rbp), %rax
movl $0x800, (%rax)          # imm = 0x800
movq -0x8(%rbp), %rax
movq $-0x1, 0x1b0(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x37d4b2(%rip), %rcx    # 0x3807d9
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x60(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x50(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x58(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x40(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x68(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x7c(%rax)
movq -0x8(%rbp), %rax
movl $0x33, 0x80(%rax)
movq -0x8(%rbp), %rax
movl $0x1f, 0x84(%rax)
movq -0x8(%rbp), %rax
movl $0x13, 0x88(%rax)
movq -0x8(%rbp), %rax
movl $0x1f, 0x8c(%rax)
movq -0x8(%rbp), %rax
movl $0x33, 0x94(%rax)
movq -0x8(%rbp), %rax
movl $0x13, 0x98(%rax)
movq -0x8(%rbp), %rax
movl $0x1f, 0x9c(%rax)
movq -0x8(%rbp), %rax
movl $0x3e8, 0xa0(%rax)      # imm = 0x3E8
movq -0x8(%rbp), %rax
movl $0x168, 0xa4(%rax)      # imm = 0x168
movq -0x8(%rbp), %rax
movl $0x1f4, 0xa8(%rax)      # imm = 0x1F4
movq -0x8(%rbp), %rax
movl $0x25, 0xac(%rax)
movq -0x8(%rbp), %rax
movl $0x7d0, 0xb0(%rax)      # imm = 0x7D0
movq -0x8(%rbp), %rax
movsd 0x37bc06(%rip), %xmm0   # 0x37f038
movsd %xmm0, 0xb8(%rax)
movq -0x8(%rbp), %rax
movsd 0x37bbea(%rip), %xmm0   # 0x37f030
movsd %xmm0, 0xc0(%rax)
movq -0x8(%rbp), %rax
movsd 0x37bbce(%rip), %xmm0   # 0x37f028
movsd %xmm0, 0xc8(%rax)
movq -0x8(%rbp), %rax
movl $0x14, 0xd0(%rax)
movq -0x8(%rbp), %rax
movl $0xfffffc00, 0xd4(%rax) # imm = 0xFFFFFC00
movq -0x8(%rbp), %rax
movl $0x64, 0xe8(%rax)
movq -0x8(%rbp), %rax
movl $0x5, 0xec(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0xf0(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0xf4(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0xf8(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0xfc(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x100(%rax)
movq -0x8(%rbp), %rax
movl $0x4, 0x104(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x180(%rax)
movq -0x8(%rbp), %rax
movq $0x989680, 0x188(%rax) # imm = 0x989680
movq -0x8(%rbp), %rax
movss 0x37bb54(%rip), %xmm0   # 0x37f06c
movss %xmm0, 0x15c(%rax)
movq -0x8(%rbp), %rax
movss 0x37bb5c(%rip), %xmm0   # 0x37f088
movss %xmm0, 0x160(%rax)
movq -0x8(%rbp), %rax
movl $0x3e8, 0x10c(%rax)     # imm = 0x3E8
movq -0x8(%rbp), %rax
movss 0x37bb3a(%rip), %xmm0   # 0x37f088
movss %xmm0, 0x158(%rax)
movq -0x8(%rbp), %rax
movl $0x3e8, 0x110(%rax)     # imm = 0x3E8
movq -0x8(%rbp), %rax
movl $0x32, 0x114(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x118(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0x11c(%rax)
movq -0x8(%rbp), %rax
movl $0x6, 0x120(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0x124(%rax)
movq -0x8(%rbp), %rax
movl $0x2, 0x128(%rax)
movq -0x8(%rbp), %rax
movl $0x5, 0x12c(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0x130(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x134(%rax)
movq -0x8(%rbp), %rax
movss 0x37ba96(%rip), %xmm0   # 0x37f084
movss %xmm0, 0x164(%rax)
movq -0x8(%rbp), %rax
movss 0x37ba7e(%rip), %xmm0   # 0x37f080
movss %xmm0, 0x168(%rax)
movq -0x8(%rbp), %rax
movss 0x37ba66(%rip), %xmm0   # 0x37f07c
movss %xmm0, 0x170(%rax)
movq -0x8(%rbp), %rax
movss 0x37ba4e(%rip), %xmm0   # 0x37f078
movss %xmm0, 0x174(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x138(%rax)
movq -0x8(%rbp), %rax
movl $0xfffffc00, 0x13c(%rax) # imm = 0xFFFFFC00
movq -0x8(%rbp), %rax
movl $0x7fffffff, 0x140(%rax) # imm = 0x7FFFFFFF
movq -0x8(%rbp), %rax
movl $0xffffffff, 0x144(%rax) # imm = 0xFFFFFFFF
movq -0x8(%rbp), %rax
movl $0x0, 0x148(%rax)
movq -0x8(%rbp), %rax
movl $0xffffffff, 0x14c(%rax) # imm = 0xFFFFFFFF
movq -0x8(%rbp), %rax
movl $0x46, 0x150(%rax)
movq -0x8(%rbp), %rax
movl $0x1e, 0x154(%rax)
movq -0x8(%rbp), %rax
movl $0xf4240, 0x90(%rax)    # imm = 0xF4240
movq -0x8(%rbp), %rax
movl $0x0, 0xd8(%rax)
movq -0x8(%rbp), %rax
movl $0xffffffff, 0xdc(%rax) # imm = 0xFFFFFFFF
movq -0x8(%rbp), %rax
movsd 0x37b948(%rip), %xmm0   # 0x37f020
movsd %xmm0, 0xe0(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x1b8(%rax)
movq -0x8(%rbp), %rax
movl $0x2, 0x1bc(%rax)
movq -0x8(%rbp), %rax
movl $0x3c, 0x1c0(%rax)
movq -0x8(%rbp), %rax
movq $0xb, 0x1c8(%rax)
movq -0x8(%rbp), %rax
movl $0x2710, 0x1d0(%rax)    # imm = 0x2710
movq -0x8(%rbp), %rax
movsd 0x37b8e5(%rip), %xmm0   # 0x37f018
movsd %xmm0, 0x1d8(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0x1e0(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x1e4(%rax)
movq -0x8(%rbp), %rax
movq $0x7a120, 0x1e8(%rax) # imm = 0x7A120
movq -0x8(%rbp), %rax
movq $0x0, 0x1f0(%rax)
movq -0x8(%rbp), %rax
movl $0x7d0, 0x1f8(%rax)     # imm = 0x7D0
movq -0x8(%rbp), %rax
movss 0x37b8e5(%rip), %xmm0   # 0x37f074
movss %xmm0, 0x1fc(%rax)
movq -0x8(%rbp), %rax
movq $-0x1, 0x200(%rax)
movq -0x8(%rbp), %rax
movss 0x37b8be(%rip), %xmm0   # 0x37f070
movss %xmm0, 0x208(%rax)
movq -0x8(%rbp), %rax
movq $0x3, 0x210(%rax)
movq -0x8(%rbp), %rax
movq $0x3, 0x218(%rax)
movq -0x8(%rbp), %rax
movsd 0x37b82c(%rip), %xmm0   # 0x37f010
movsd %xmm0, 0x228(%rax)
movq -0x8(%rbp), %rax
movsd 0x37b820(%rip), %xmm0   # 0x37f018
movsd %xmm0, 0x230(%rax)
movq -0x8(%rbp), %rax
movsd 0x37b804(%rip), %xmm0   # 0x37f010
movsd %xmm0, 0x238(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0x240(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x248(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x249(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x24a(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x24b(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x24c(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x24d(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x24e(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x250(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x254(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x258(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x25c(%rax)
movq -0x8(%rbp), %rax
movss 0x37b7bc(%rip), %xmm0   # 0x37f06c
movss %xmm0, 0x178(%rax)
movq -0x8(%rbp), %rax
movss 0x37b7a4(%rip), %xmm0   # 0x37f068
movss %xmm0, 0x17c(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x25d(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x25e(%rax)
movq -0x8(%rbp), %rax
movq $-0x1, 0x220(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x260(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x264(%rax)
movq -0x8(%rbp), %rax
movq $0x3d090, 0x268(%rax) # imm = 0x3D090
movq -0x8(%rbp), %rax
movq $0x4c4b40, 0x270(%rax) # imm = 0x4C4B40
movq -0x8(%rbp), %rax
movq $0x2dc6c0, 0x278(%rax) # imm = 0x2DC6C0
movq -0x8(%rbp), %rax
movq $0x0, 0x70(%rax)
movq -0x8(%rbp), %rax
movq $-0x1, 0x280(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x288(%rax)
movq -0x8(%rbp), %rax
movq $0x1, 0x290(%rax)
movq -0x8(%rbp), %rax
movq $0x7d0, 0x298(%rax) # imm = 0x7D0
movq -0x8(%rbp), %rax
movq $0x1f4, 0x2a0(%rax) # imm = 0x1F4
movq -0x8(%rbp), %rax
movq $0x0, 0x2a8(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x2b0(%rax)
movq -0x8(%rbp), %rax
movq $0x1, 0x2b8(%rax)
movq -0x8(%rbp), %rax
movq $0x100, 0x2c0(%rax) # imm = 0x100
movq -0x8(%rbp), %rax
movl $0x0, 0x244(%rax)
movq -0x8(%rbp), %rax
movq $0x3e8, 0x2c8(%rax) # imm = 0x3E8
movq -0x8(%rbp), %rax
movq $0xa, 0x2d0(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)