// File: /workspace/github_cpp_makefile_star2_O3/soccin[P]BIC-RNAseq/tools/MergeFusion/StandardFusion.cpp
// Function: StandardFusion::parseMapsplice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void StandardFusion::parseMapsplice(string line) // done
{
    vector<string> parsed_item;
    vector<string> chr_parsed_item;
    split(line, '\t', parsed_item);
    split(parsed_item[0], '~', chr_parsed_item);
    chr1 = chr_parsed_item[0];
    chr2 = chr_parsed_item[1];
    strand1 = parsed_item[5][0];
    strand2 = parsed_item[5][1];
    breakpoint1 = atoi(parsed_item[1].c_str());
    breakpoint2 = atoi(parsed_item[2].c_str());
    start1 = (strand1 == "+" ? atoi(parsed_item[28].c_str()) : breakpoint1);
    end1 = (strand1 == "-" ? atoi(parsed_item[28].c_str()) : breakpoint1);
    start2 = (strand2 == "-" ? atoi(parsed_item[29].c_str()) : breakpoint2);
    end2 = (strand2 == "+" ? atoi(parsed_item[29].c_str()) : breakpoint2);
    gene1 = parsed_item[60];
    gene1 = gene1.substr(0, gene1.length() - 1);
    gene2 = parsed_item[61];
    gene2 = gene2.substr(0, gene2.length() - 1);
    transcript1 = "NA";
    transcript2 = "NA";
    breakpoint_coverage = atoi(parsed_item[4].c_str());
    spanning_coverage = atoi(parsed_item[27].c_str());
    total_coverage = spanning_coverage + breakpoint_coverage;
    caller_id = MAPSPLICE;
    
    info.append("ID="); info.append(parsed_item[3]);
    info.append(";ENTROPY="); info.append(parsed_item[10]);
    info.append(";FLANK_STRING="); info.append(parsed_item[12]);
    info.append(";MIN_MISMATCH="); info.append(parsed_item[13]);
    info.append(";MAX_MISMATCH="); info.append(parsed_item[14]);
    info.append(";AVE_MISMATCH="); info.append(parsed_item[15]);
    info.append(";MAX_MIN_SUFFIX="); info.append(parsed_item[16]);
    info.append(";MAX_MIN_PREFIX="); info.append(parsed_item[17]);
    info.append(";MIN_ANCHOR_DIFF="); info.append(parsed_item[18]);
    info.append(";UNIQUE_BREAKPOINT_COVERAGE="); info.append(parsed_item[19]);
    info.append(";MULTI_BREAKPOINT_COVERAGE="); info.append(parsed_item[20]);
    info.append(";PAIRED_READ_COUNT="); info.append(parsed_item[21]);
    info.append(";SINGLE_READ_COUNT="); info.append(parsed_item[26]);
    info.append(";DONOR_ISOFORMS="); info.append(parsed_item[30]);
    info.append(";ACCEPTOR_ISOFORMS="); info.append(parsed_item[31]);
    info.append(";MIN_DONOR_ISOFORM_LENGTH="); info.append(parsed_item[36]);
    info.append(";MAX_DONOR_ISOFORM_LENGTH="); info.append(parsed_item[37]);
    info.append(";MIN_ACCEPTOR_ISOFORM_LENGTH="); info.append(parsed_item[38]);
    info.append(";MAX_ACCEPTOR_ISOFORM_LENGTH="); info.append(parsed_item[39]);
    info.append(";DONOR_MATCH_NORMAL="); info.append(parsed_item[52]);
    info.append(";ACCEPTOR_MATCH_NORMAL="); info.append(parsed_item[53]);
    info.append(";MATCH_GENE_STRAND="); info.append(parsed_item[56]);
    info.append(";ANNOTATE_TYPE="); info.append(parsed_item[57]);
    info.append(";FUSION_TYPE="); info.append(parsed_item[58]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movq %rdi, %rbx
xorps %xmm0, %xmm0
leaq -0x40(%rbp), %rdx
movaps %xmm0, (%rdx)
xorl %eax, %eax
movq %rax, 0x10(%rdx)
movq %rax, -0x50(%rbp)
movaps %xmm0, -0x60(%rbp)
movq %rsi, %rdi
movl $0x9, %esi
xorl %ecx, %ecx
callq 0xb49b
movq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %rdx
movl $0x7e, %esi
xorl %ecx, %ecx
callq 0xb49b
movq -0x60(%rbp), %rsi
leaq 0x8(%rbx), %rdi
callq 0x3130
movq -0x60(%rbp), %rsi
addq $0x20, %rsi
leaq 0x28(%rbx), %rdi
callq 0x3130
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rax
movsbl (%rax), %r8d
leaq 0x60(%rbx), %r15
movq 0x68(%rbx), %rdx
movl $0x1, %ecx
movq %r15, %rdi
xorl %esi, %esi
callq 0x3390
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rax
movsbl 0x1(%rax), %r8d
leaq 0x80(%rbx), %r14
movq 0x88(%rbx), %rdx
movl $0x1, %ecx
movq %r14, %rdi
xorl %esi, %esi
callq 0x3390
movq -0x40(%rbp), %r12
movq 0x20(%r12), %rdi
callq 0x32d0
movl %eax, 0x58(%rbx)
movq 0x40(%r12), %rdi
callq 0x32d0
movl %eax, 0x5c(%rbx)
leaq 0x2baa(%rip), %rsi      # 0xc68b
movq %r15, %rdi
callq 0x30b0
testl %eax, %eax
je 0x9af2
movl 0x58(%rbx), %eax
jmp 0x9b02
movq -0x40(%rbp), %rax
movq 0x380(%rax), %rdi
callq 0x32d0
movl %eax, 0x48(%rbx)
leaq 0x2f7a(%rip), %rsi      # 0xca86
movq %r15, %rdi
callq 0x30b0
testl %eax, %eax
je 0x9b1d
movl 0x58(%rbx), %eax
jmp 0x9b2d
movq -0x40(%rbp), %rax
movq 0x380(%rax), %rdi
callq 0x32d0
movl %eax, 0x50(%rbx)
leaq 0x2f4f(%rip), %rsi      # 0xca86
movq %r14, %rdi
callq 0x30b0
testl %eax, %eax
je 0x9b48
movl 0x5c(%rbx), %eax
jmp 0x9b58
movq -0x40(%rbp), %rax
movq 0x3a0(%rax), %rdi
callq 0x32d0
movl %eax, 0x4c(%rbx)
leaq 0x2b29(%rip), %rsi      # 0xc68b
movq %r14, %rdi
callq 0x30b0
testl %eax, %eax
je 0x9b77
movl 0x5c(%rbx), %eax
movq -0x40(%rbp), %r15
jmp 0x9b87
movq -0x40(%rbp), %r15
movq 0x3a0(%r15), %rdi
callq 0x32d0
movl %eax, 0x54(%rbx)
addq $0x780, %r15            # imm = 0x780
leaq 0xb0(%rbx), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x3130
movq 0xb8(%rbx), %rcx
decq %rcx
leaq -0x80(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x3220
leaq -0x80(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x3270
movq (%r15), %rdi
leaq -0x70(%rbp), %r12
cmpq %r12, %rdi
je 0x9be2
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x3200
movl $0x7a0, %esi            # imm = 0x7A0
addq -0x40(%rbp), %rsi
leaq 0xd0(%rbx), %r14
movq %r14, %rdi
callq 0x3130
movq 0xd8(%rbx), %rcx
decq %rcx
leaq -0x80(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x3220
movq %r14, %rdi
movq %r15, %rsi
callq 0x3270
movq (%r15), %rdi
cmpq %r12, %rdi
je 0x9c31
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x3200
leaq 0xf0(%rbx), %rdi
movq 0xf8(%rbx), %rdx
leaq 0x29cc(%rip), %rcx      # 0xc612
movl $0x2, %r8d
xorl %esi, %esi
callq 0x32c0
leaq 0x110(%rbx), %rdi
movq 0x118(%rbx), %rdx
leaq 0x29aa(%rip), %rcx      # 0xc612
movl $0x2, %r8d
xorl %esi, %esi
callq 0x32c0
movq -0x40(%rbp), %r15
movq 0x80(%r15), %rdi
callq 0x32d0
movl %eax, %r14d
movl %eax, 0xa8(%rbx)
movq 0x360(%r15), %rdi
callq 0x32d0
movl %eax, 0xa4(%rbx)
addl %r14d, %eax
movl %eax, 0xa0(%rbx)
movl $0x4, (%rbx)
addq $0x130, %rbx            # imm = 0x130
leaq 0x2da4(%rip), %rsi      # 0xca61
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x60(%rax), %rsi
movq 0x68(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2da8(%rip), %rsi      # 0xca88
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x140(%rax), %rsi
movq 0x148(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2d89(%rip), %rsi      # 0xca92
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x180(%rax), %rsi
movq 0x188(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2d6f(%rip), %rsi      # 0xcaa1
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x1a0(%rax), %rsi
movq 0x1a8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2d55(%rip), %rsi      # 0xcab0
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x1c0(%rax), %rsi
movq 0x1c8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2d3b(%rip), %rsi      # 0xcabf
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x1e0(%rax), %rsi
movq 0x1e8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2d21(%rip), %rsi      # 0xcace
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x200(%rax), %rsi
movq 0x208(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2d09(%rip), %rsi      # 0xcadf
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x220(%rax), %rsi
movq 0x228(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2cf1(%rip), %rsi      # 0xcaf0
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x240(%rax), %rsi
movq 0x248(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2cda(%rip), %rsi      # 0xcb02
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x260(%rax), %rsi
movq 0x268(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2cce(%rip), %rsi      # 0xcb1f
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x280(%rax), %rsi
movq 0x288(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2cc1(%rip), %rsi      # 0xcb3b
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x2a0(%rax), %rsi
movq 0x2a8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2cac(%rip), %rsi      # 0xcb4f
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x340(%rax), %rsi
movq 0x348(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2c97(%rip), %rsi      # 0xcb63
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x3c0(%rax), %rsi
movq 0x3c8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2c7f(%rip), %rsi      # 0xcb74
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x3e0(%rax), %rsi
movq 0x3e8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2c6a(%rip), %rsi      # 0xcb88
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x480(%rax), %rsi
movq 0x488(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2c5c(%rip), %rsi      # 0xcba3
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x4a0(%rax), %rsi
movq 0x4a8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2c4e(%rip), %rsi      # 0xcbbe
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x4c0(%rax), %rsi
movq 0x4c8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2c43(%rip), %rsi      # 0xcbdc
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x4e0(%rax), %rsi
movq 0x4e8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2c38(%rip), %rsi      # 0xcbfa
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x680(%rax), %rsi
movq 0x688(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2c24(%rip), %rsi      # 0xcc0f
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x6a0(%rax), %rsi
movq 0x6a8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2c13(%rip), %rsi      # 0xcc27
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x700(%rax), %rsi
movq 0x708(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2bfe(%rip), %rsi      # 0xcc3b
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x720(%rax), %rsi
movq 0x728(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x2be5(%rip), %rsi      # 0xcc4b
movq %rbx, %rdi
callq 0x33a0
movq -0x40(%rbp), %rax
movq 0x740(%rax), %rsi
movq 0x748(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq -0x60(%rbp), %rdi
callq 0x5864
leaq -0x40(%rbp), %rdi
callq 0x5864
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa0ab
jmp 0xa0ab
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0x5864
leaq -0x40(%rbp), %rdi
callq 0x5864
movq %rbx, %rdi
callq 0x3340