// File: /workspace/github_cpp_makefile_star2_O2/soccin[P]BIC-RNAseq/tools/MergeFusion/StandardFusion.cpp
// Function: StandardFusion::parseFusioncatcher(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void StandardFusion::parseFusioncatcher(string line) //done
{
    vector<string> parsed_item;
    vector<string> pos_parsed_item1;
    vector<string> pos_parsed_item2;
    split(line, '\t', parsed_item);
    split(parsed_item[8], ':', pos_parsed_item1);
    split(parsed_item[9], ':', pos_parsed_item2);
    chr1 = pos_parsed_item1[0];
    chr2 = pos_parsed_item2[0];
    breakpoint1 = atoi(pos_parsed_item1[1].c_str());
    breakpoint2 = atoi(pos_parsed_item2[1].c_str());
    strand1 = pos_parsed_item1[2];
    strand2 = pos_parsed_item2[2];
    gene1 = parsed_item[0];
    gene2 = parsed_item[1];
    transcript1 = "NA";
    transcript2 = "NA";
    start1 = -1;
    start2 = -1;
    end1 = -1;
    end2 = -1;
    spanning_coverage = atoi(parsed_item[4].c_str());
    breakpoint_coverage = atoi(parsed_item[5].c_str());
    total_coverage = spanning_coverage + breakpoint_coverage;
    caller_id = FUSIONCATCHER;
    
    info.append("COUNT_COMMON_MAPPING_READS="); info.append(parsed_item[3]);
    info.append(";LONGEST_ANCHOR="); info.append(parsed_item[6]);
    info.append(";FUSION_FINDING_METHOD="); info.append(parsed_item[7]);
    info.append(";GENE1_ID="); info.append(parsed_item[10]);
    info.append(";GENE2_ID="); info.append(parsed_item[11]);
    info.append(";EXON1_ID="); info.append(parsed_item[12]);
    info.append(";EXON2_ID="); info.append(parsed_item[13]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x58, %rsp
movq %rsi, %rax
movq %rdi, %rbx
pxor %xmm0, %xmm0
leaq -0x30(%rbp), %rdx
movdqa %xmm0, (%rdx)
andq $0x0, 0x10(%rdx)
movdqa %xmm0, -0x70(%rbp)
andq $0x0, -0x60(%rbp)
movdqa %xmm0, -0x50(%rbp)
andq $0x0, -0x40(%rbp)
pushq $0x9
popq %rsi
movq %rax, %rdi
xorl %ecx, %ecx
callq 0x865f
movl $0x100, %edi            # imm = 0x100
addq -0x30(%rbp), %rdi
pushq $0x3a
popq %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
callq 0x865f
movl $0x120, %edi            # imm = 0x120
addq -0x30(%rbp), %rdi
pushq $0x3a
popq %rsi
leaq -0x50(%rbp), %rdx
xorl %ecx, %ecx
callq 0x865f
movq -0x70(%rbp), %rsi
leaq 0x8(%rbx), %rdi
callq 0x2120
movq -0x50(%rbp), %rsi
leaq 0x28(%rbx), %rdi
callq 0x2120
movq -0x70(%rbp), %r14
movq 0x20(%r14), %rdi
callq 0x2290
movl %eax, 0x58(%rbx)
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x2290
movl %eax, 0x5c(%rbx)
addq $0x40, %r14
leaq 0x60(%rbx), %rdi
movq %r14, %rsi
callq 0x2120
movq -0x50(%rbp), %rsi
addq $0x40, %rsi
leaq 0x80(%rbx), %rdi
callq 0x2120
movq -0x30(%rbp), %rsi
leaq 0xb0(%rbx), %rdi
callq 0x2120
movq -0x30(%rbp), %rsi
addq $0x20, %rsi
leaq 0xd0(%rbx), %rdi
callq 0x2120
leaq 0xf0(%rbx), %rdi
leaq 0x245b(%rip), %rsi      # 0x9612
callq 0x2360
leaq 0x110(%rbx), %rdi
leaq 0x2448(%rip), %rsi      # 0x9612
callq 0x2360
pcmpeqd %xmm0, %xmm0
movdqu %xmm0, 0x48(%rbx)
movq -0x30(%rbp), %r15
movq 0x80(%r15), %rdi
callq 0x2290
movl %eax, %r14d
movl %eax, 0xa4(%rbx)
movq 0xa0(%r15), %rdi
callq 0x2290
movl %eax, 0xa8(%rbx)
addl %r14d, %eax
movl %eax, 0xa0(%rbx)
movl $0x2, (%rbx)
addq $0x130, %rbx            # imm = 0x130
leaq 0x27f5(%rip), %rsi      # 0x9a15
movq %rbx, %rdi
callq 0x2350
movq -0x30(%rbp), %rsi
addq $0x60, %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x27f2(%rip), %rsi      # 0x9a31
movq %rbx, %rdi
callq 0x2350
movl $0xc0, %esi
addq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x27e3(%rip), %rsi      # 0x9a42
movq %rbx, %rdi
callq 0x2350
movl $0xe0, %esi
addq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x27db(%rip), %rsi      # 0x9a5a
movq %rbx, %rdi
callq 0x2350
movl $0x140, %esi            # imm = 0x140
addq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x27c6(%rip), %rsi      # 0x9a65
movq %rbx, %rdi
callq 0x2350
movl $0x160, %esi            # imm = 0x160
addq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x27b1(%rip), %rsi      # 0x9a70
movq %rbx, %rdi
callq 0x2350
movl $0x180, %esi            # imm = 0x180
addq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq 0x279c(%rip), %rsi      # 0x9a7b
movq %rbx, %rdi
callq 0x2350
movl $0x1a0, %esi            # imm = 0x1A0
addq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2370
leaq -0x50(%rbp), %rdi
callq 0x3e58
leaq -0x70(%rbp), %rdi
callq 0x3e58
leaq -0x30(%rbp), %rdi
callq 0x3e58
addq $0x58, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x3e58
leaq -0x70(%rbp), %rdi
callq 0x3e58
leaq -0x30(%rbp), %rdi
callq 0x3e58
movq %rbx, %rdi
callq 0x2300