// File: /workspace/github_cpp_makefile_star2_O2/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 %rsi, %rax
movq %rdi, %rbx
xorps %xmm0, %xmm0
leaq -0x40(%rbp), %rdx
movaps %xmm0, (%rdx)
andq $0x0, 0x10(%rdx)
movaps %xmm0, -0x60(%rbp)
andq $0x0, -0x50(%rbp)
pushq $0x9
popq %rsi
movq %rax, %rdi
xorl %ecx, %ecx
callq 0x865f
movq -0x40(%rbp), %rdi
pushq $0x7e
popq %rsi
leaq -0x60(%rbp), %rdx
xorl %ecx, %ecx
callq 0x865f
movq -0x60(%rbp), %rsi
leaq 0x8(%rbx), %rdi
callq 0x2120
movq -0x60(%rbp), %rsi
addq $0x20, %rsi
leaq 0x28(%rbx), %rdi
callq 0x2120
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rax
movsbl (%rax), %esi
leaq 0x60(%rbx), %r15
movq %r15, %rdi
callq 0x22e0
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rax
movsbl 0x1(%rax), %esi
leaq 0x80(%rbx), %r14
movq %r14, %rdi
callq 0x22e0
movq -0x40(%rbp), %r12
movq 0x20(%r12), %rdi
callq 0x2290
movl %eax, 0x58(%rbx)
movq 0x40(%r12), %rdi
callq 0x2290
movl %eax, 0x5c(%rbx)
leaq 0x2274(%rip), %rsi      # 0x968b
movq %r15, %rdi
callq 0x30c8
testb %al, %al
je 0x7435
movq -0x40(%rbp), %rax
movq 0x380(%rax), %rdi
callq 0x2290
jmp 0x7438
movl 0x58(%rbx), %eax
movl %eax, 0x48(%rbx)
leaq 0x2644(%rip), %rsi      # 0x9a86
movq %r15, %rdi
callq 0x30c8
testb %al, %al
je 0x7460
movq -0x40(%rbp), %rax
movq 0x380(%rax), %rdi
callq 0x2290
jmp 0x7463
movl 0x58(%rbx), %eax
movl %eax, 0x50(%rbx)
leaq 0x2619(%rip), %rsi      # 0x9a86
movq %r14, %rdi
callq 0x30c8
testb %al, %al
je 0x748b
movq -0x40(%rbp), %rax
movq 0x3a0(%rax), %rdi
callq 0x2290
jmp 0x748e
movl 0x5c(%rbx), %eax
movl %eax, 0x4c(%rbx)
leaq 0x21f3(%rip), %rsi      # 0x968b
movq %r14, %rdi
callq 0x30c8
testb %al, %al
je 0x74b6
movq -0x40(%rbp), %r15
movq 0x3a0(%r15), %rdi
callq 0x2290
jmp 0x74bd
movl 0x5c(%rbx), %eax
movq -0x40(%rbp), %r15
movl %eax, 0x54(%rbx)
addq $0x780, %r15            # imm = 0x780
leaq 0xb0(%rbx), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x2120
movq 0xb8(%rbx), %rcx
decq %rcx
leaq -0x80(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x21e0
leaq -0x80(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x2220
movq %r15, %rdi
callq 0x2388
movl $0x7a0, %esi            # imm = 0x7A0
addq -0x40(%rbp), %rsi
leaq 0xd0(%rbx), %r14
movq %r14, %rdi
callq 0x2120
movq 0xd8(%rbx), %rcx
decq %rcx
leaq -0x80(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x21e0
movq %r14, %rdi
movq %r15, %rsi
callq 0x2220
movq %r15, %rdi
callq 0x2388
leaq 0xf0(%rbx), %rdi
leaq 0x20b9(%rip), %rsi      # 0x9612
callq 0x2360
leaq 0x110(%rbx), %rdi
leaq 0x20a6(%rip), %rsi      # 0x9612
callq 0x2360
movq -0x40(%rbp), %r15
movq 0x80(%r15), %rdi
callq 0x2290
movl %eax, %r14d
movl %eax, 0xa8(%rbx)
movq 0x360(%r15), %rdi
callq 0x2290
movl %eax, 0xa4(%rbx)
addl %r14d, %eax
movl %eax, 0xa0(%rbx)
movl $0x4, (%rbx)
addq $0x130, %rbx            # imm = 0x130
leaq 0x24a8(%rip), %rsi      # 0x9a61
movq %rbx, %rdi
callq 0x2350
movq -0x40(%rbp), %rsi
addq $0x60, %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x24b0(%rip), %rsi      # 0x9a88
movq %rbx, %rdi
callq 0x2350
movl $0x140, %esi            # imm = 0x140
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x249a(%rip), %rsi      # 0x9a92
movq %rbx, %rdi
callq 0x2350
movl $0x180, %esi            # imm = 0x180
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x2489(%rip), %rsi      # 0x9aa1
movq %rbx, %rdi
callq 0x2350
movl $0x1a0, %esi            # imm = 0x1A0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x2478(%rip), %rsi      # 0x9ab0
movq %rbx, %rdi
callq 0x2350
movl $0x1c0, %esi            # imm = 0x1C0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x2467(%rip), %rsi      # 0x9abf
movq %rbx, %rdi
callq 0x2350
movl $0x1e0, %esi            # imm = 0x1E0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x2456(%rip), %rsi      # 0x9ace
movq %rbx, %rdi
callq 0x2350
movl $0x200, %esi            # imm = 0x200
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x2447(%rip), %rsi      # 0x9adf
movq %rbx, %rdi
callq 0x2350
movl $0x220, %esi            # imm = 0x220
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x2438(%rip), %rsi      # 0x9af0
movq %rbx, %rdi
callq 0x2350
movl $0x240, %esi            # imm = 0x240
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x242a(%rip), %rsi      # 0x9b02
movq %rbx, %rdi
callq 0x2350
movl $0x260, %esi            # imm = 0x260
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x2427(%rip), %rsi      # 0x9b1f
movq %rbx, %rdi
callq 0x2350
movl $0x280, %esi            # imm = 0x280
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x2423(%rip), %rsi      # 0x9b3b
movq %rbx, %rdi
callq 0x2350
movl $0x2a0, %esi            # imm = 0x2A0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x2417(%rip), %rsi      # 0x9b4f
movq %rbx, %rdi
callq 0x2350
movl $0x340, %esi            # imm = 0x340
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x240b(%rip), %rsi      # 0x9b63
movq %rbx, %rdi
callq 0x2350
movl $0x3c0, %esi            # imm = 0x3C0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23fc(%rip), %rsi      # 0x9b74
movq %rbx, %rdi
callq 0x2350
movl $0x3e0, %esi            # imm = 0x3E0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23f0(%rip), %rsi      # 0x9b88
movq %rbx, %rdi
callq 0x2350
movl $0x480, %esi            # imm = 0x480
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23eb(%rip), %rsi      # 0x9ba3
movq %rbx, %rdi
callq 0x2350
movl $0x4a0, %esi            # imm = 0x4A0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23e6(%rip), %rsi      # 0x9bbe
movq %rbx, %rdi
callq 0x2350
movl $0x4c0, %esi            # imm = 0x4C0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23e4(%rip), %rsi      # 0x9bdc
movq %rbx, %rdi
callq 0x2350
movl $0x4e0, %esi            # imm = 0x4E0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23e2(%rip), %rsi      # 0x9bfa
movq %rbx, %rdi
callq 0x2350
movl $0x680, %esi            # imm = 0x680
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23d7(%rip), %rsi      # 0x9c0f
movq %rbx, %rdi
callq 0x2350
movl $0x6a0, %esi            # imm = 0x6A0
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23cf(%rip), %rsi      # 0x9c27
movq %rbx, %rdi
callq 0x2350
movl $0x700, %esi            # imm = 0x700
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23c3(%rip), %rsi      # 0x9c3b
movq %rbx, %rdi
callq 0x2350
movl $0x720, %esi            # imm = 0x720
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x23b3(%rip), %rsi      # 0x9c4b
movq %rbx, %rdi
callq 0x2350
movl $0x740, %esi            # imm = 0x740
addq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq -0x60(%rbp), %rdi
callq 0x3e58
leaq -0x40(%rbp), %rdi
callq 0x3e58
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x78d4
jmp 0x78d4
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0x3e58
leaq -0x40(%rbp), %rdi
callq 0x3e58
movq %rbx, %rdi
callq 0x2300
nop