// File: soccin[P]BIC-RNAseq/tools/MergeFusion/StandardFusion.cpp
// Function: StandardFusion::parseChimerascan(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void StandardFusion::parseChimerascan(string line) //done
{
    vector<string> parsed_item;
    vector<string> breakpoint_reads;
    split(line, '\t', parsed_item);
    chr1 = parsed_item[0];
    start1 = atoi(parsed_item[1].c_str()) + 1;
    end1 = atoi(parsed_item[2].c_str()) + 1;
    chr2 = parsed_item[3];
    start2 = atoi(parsed_item[4].c_str()) + 1;
    end2 = atoi(parsed_item[5].c_str()) + 1;
    strand1 = parsed_item[8];
    strand2 = parsed_item[9];
    breakpoint1 = (strand1 == "+" ? end1 : start1);
    breakpoint2 = (strand2 == "+" ? start2 : end2);
    gene1 = parsed_item[12];
    gene2 = parsed_item[13];
    transcript1 = parsed_item[10];
    transcript2 = parsed_item[11];
    total_coverage = atoi(parsed_item[16].c_str());
    spanning_coverage = atoi(parsed_item[17].c_str());
    split(parsed_item[21], '>', breakpoint_reads, true);
    breakpoint_coverage = static_cast<int>(breakpoint_reads.size());
    caller_id = CHIMERASCAN;
    
    info.append("CHIMERA_CLUSTER_ID=");info.append(parsed_item[6]);
    info.append(";SCORE=");info.append(parsed_item[7]);
    info.append(";TYPE=");info.append(parsed_item[14]);
    info.append(";DISTANCE=");info.append(parsed_item[15]);
    info.append(";UNIQUE_ALIGNMENT_POSITIONS=");info.append(parsed_item[18]);
    info.append(";ISOFORM_FRACTION_5P=");info.append(parsed_item[19]);
    info.append(";ISOFORM_FRACTION_3P=");info.append(parsed_item[20]);
    info.append(";CHIMERA_IDS="); info.append(parsed_item[22]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rsi, -0x60(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq -0x28(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x7190
leaq -0x40(%rbp), %rdi
callq 0x7190
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rdx
movl $0x9, %esi
xorl %ecx, %ecx
callq 0x135a0
jmp 0xf8db
xorl %eax, %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
callq 0x71b0
movq -0x68(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rdi
callq 0x3040
jmp 0xf8fa
leaq -0x28(%rbp), %rdi
movq %rdi, -0x70(%rbp)
movl $0x1, %esi
callq 0x71b0
movq %rax, %rdi
callq 0x3120
movq %rax, %rdi
callq 0x33e0
movq -0x70(%rbp), %rdi
movl %eax, %ecx
movq -0x68(%rbp), %rax
incl %ecx
movl %ecx, 0x48(%rax)
movl $0x2, %esi
callq 0x71b0
movq %rax, %rdi
callq 0x3120
movq %rax, %rdi
callq 0x33e0
movq -0x70(%rbp), %rdi
movl %eax, %ecx
movq -0x68(%rbp), %rax
incl %ecx
movl %ecx, 0x50(%rax)
movl $0x3, %esi
callq 0x71b0
movq -0x68(%rbp), %rdi
movq %rax, %rsi
addq $0x28, %rdi
callq 0x3040
jmp 0xf970
leaq -0x28(%rbp), %rdi
movq %rdi, -0x78(%rbp)
movl $0x4, %esi
callq 0x71b0
movq %rax, %rdi
callq 0x3120
movq %rax, %rdi
callq 0x33e0
movq -0x78(%rbp), %rdi
movl %eax, %ecx
movq -0x68(%rbp), %rax
incl %ecx
movl %ecx, 0x4c(%rax)
movl $0x5, %esi
callq 0x71b0
movq %rax, %rdi
callq 0x3120
movq %rax, %rdi
callq 0x33e0
movq -0x78(%rbp), %rdi
movl %eax, %ecx
movq -0x68(%rbp), %rax
incl %ecx
movl %ecx, 0x54(%rax)
movl $0x8, %esi
callq 0x71b0
movq -0x68(%rbp), %rdi
movq %rax, %rsi
addq $0x60, %rdi
callq 0x3040
jmp 0xf9e6
leaq -0x28(%rbp), %rdi
movl $0x9, %esi
callq 0x71b0
movq -0x68(%rbp), %rdi
movq %rax, %rsi
subq $-0x80, %rdi
callq 0x3040
jmp 0xfa06
movq -0x68(%rbp), %rdi
addq $0x60, %rdi
leaq 0x5c2e(%rip), %rsi      # 0x15643
callq 0x56e0
movb %al, -0x79(%rbp)
jmp 0xfa1f
movb -0x79(%rbp), %al
testb $0x1, %al
jne 0xfa28
jmp 0xfa34
movq -0x68(%rbp), %rax
movl 0x50(%rax), %eax
movl %eax, -0x80(%rbp)
jmp 0xfa3e
movq -0x68(%rbp), %rax
movl 0x48(%rax), %eax
movl %eax, -0x80(%rbp)
movq -0x68(%rbp), %rdi
movl -0x80(%rbp), %eax
movl %eax, 0x58(%rdi)
subq $-0x80, %rdi
leaq 0x5bf0(%rip), %rsi      # 0x15643
callq 0x56e0
movb %al, -0x81(%rbp)
jmp 0xfa60
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0xfa6c
jmp 0xfa7b
movq -0x68(%rbp), %rax
movl 0x4c(%rax), %eax
movl %eax, -0x88(%rbp)
jmp 0xfa88
movq -0x68(%rbp), %rax
movl 0x54(%rax), %eax
movl %eax, -0x88(%rbp)
movq -0x68(%rbp), %rax
movl -0x88(%rbp), %ecx
movl %ecx, 0x5c(%rax)
leaq -0x28(%rbp), %rdi
movl $0xc, %esi
callq 0x71b0
movq -0x68(%rbp), %rdi
movq %rax, %rsi
addq $0xb0, %rdi
callq 0x3040
jmp 0xfab8
leaq -0x28(%rbp), %rdi
movl $0xd, %esi
callq 0x71b0
movq -0x68(%rbp), %rdi
movq %rax, %rsi
addq $0xd0, %rdi
callq 0x3040
jmp 0xfadb
leaq -0x28(%rbp), %rdi
movl $0xa, %esi
callq 0x71b0
movq -0x68(%rbp), %rdi
movq %rax, %rsi
addq $0xf0, %rdi
callq 0x3040
jmp 0xfafe
leaq -0x28(%rbp), %rdi
movl $0xb, %esi
callq 0x71b0
movq -0x68(%rbp), %rdi
movq %rax, %rsi
addq $0x110, %rdi            # imm = 0x110
callq 0x3040
jmp 0xfb21
leaq -0x28(%rbp), %rdi
movq %rdi, -0x90(%rbp)
movl $0x10, %esi
callq 0x71b0
movq %rax, %rdi
callq 0x3120
movq %rax, %rdi
callq 0x33e0
movq -0x90(%rbp), %rdi
movl %eax, %ecx
movq -0x68(%rbp), %rax
movl %ecx, 0xa0(%rax)
movl $0x11, %esi
callq 0x71b0
movq %rax, %rdi
callq 0x3120
movq %rax, %rdi
callq 0x33e0
movq -0x90(%rbp), %rdi
movl %eax, %ecx
movq -0x68(%rbp), %rax
movl %ecx, 0xa4(%rax)
movl $0x15, %esi
callq 0x71b0
movq %rax, %rdi
movl $0x3e, %esi
leaq -0x40(%rbp), %rdx
movl $0x1, %ecx
callq 0x135a0
jmp 0xfba8
leaq -0x40(%rbp), %rdi
callq 0x7340
movq -0x68(%rbp), %rdi
movl %eax, 0xa8(%rdi)
movl $0x0, (%rdi)
addq $0x130, %rdi            # imm = 0x130
leaq 0x5a76(%rip), %rsi      # 0x15645
callq 0x34c0
jmp 0xfbd6
movq -0x68(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0x98(%rbp)
leaq -0x28(%rbp), %rdi
movl $0x6, %esi
callq 0x71b0
movq -0x98(%rbp), %rdi
movq %rax, %rsi
callq 0x34d0
jmp 0xfc06
movq -0x68(%rbp), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq 0x5a41(%rip), %rsi      # 0x15659
callq 0x34c0
jmp 0xfc1f
movq -0x68(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0xa0(%rbp)
leaq -0x28(%rbp), %rdi
movl $0x7, %esi
callq 0x71b0
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
callq 0x34d0
jmp 0xfc4f
movq -0x68(%rbp), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq 0x5a00(%rip), %rsi      # 0x15661
callq 0x34c0
jmp 0xfc68
movq -0x68(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0xa8(%rbp)
leaq -0x28(%rbp), %rdi
movl $0xe, %esi
callq 0x71b0
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x34d0
jmp 0xfc98
movq -0x68(%rbp), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq 0x59be(%rip), %rsi      # 0x15668
callq 0x34c0
jmp 0xfcb1
movq -0x68(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0xb0(%rbp)
leaq -0x28(%rbp), %rdi
movl $0xf, %esi
callq 0x71b0
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x34d0
jmp 0xfce1
movq -0x68(%rbp), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq 0x5980(%rip), %rsi      # 0x15673
callq 0x34c0
jmp 0xfcfa
movq -0x68(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0xb8(%rbp)
leaq -0x28(%rbp), %rdi
movl $0x12, %esi
callq 0x71b0
movq -0xb8(%rbp), %rdi
movq %rax, %rsi
callq 0x34d0
jmp 0xfd2a
movq -0x68(%rbp), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq 0x5954(%rip), %rsi      # 0x15690
callq 0x34c0
jmp 0xfd43
movq -0x68(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0xc0(%rbp)
leaq -0x28(%rbp), %rdi
movl $0x13, %esi
callq 0x71b0
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
callq 0x34d0
jmp 0xfd73
movq -0x68(%rbp), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq 0x5921(%rip), %rsi      # 0x156a6
callq 0x34c0
jmp 0xfd8c
movq -0x68(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0xc8(%rbp)
leaq -0x28(%rbp), %rdi
movl $0x14, %esi
callq 0x71b0
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x34d0
jmp 0xfdbc
movq -0x68(%rbp), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq 0x58ee(%rip), %rsi      # 0x156bc
callq 0x34c0
jmp 0xfdd5
movq -0x68(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0xd0(%rbp)
leaq -0x28(%rbp), %rdi
movl $0x16, %esi
callq 0x71b0
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0x34d0
jmp 0xfe05
leaq -0x40(%rbp), %rdi
callq 0x72e0
leaq -0x28(%rbp), %rdi
callq 0x72e0
addq $0xd0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x72e0
leaq -0x28(%rbp), %rdi
callq 0x72e0
movq -0x48(%rbp), %rdi
callq 0x3470
nopw (%rax,%rax)