// File: gcollet[P]MstatX/src/msa.cpp
// Function: Msa::printBasic()
void
Msa :: printBasic(){
	string dictionary = "ARNDCQEGHILKMFPSTWYV-";
	vector<int> counts(dictionary.size(), 0);
	string out_name = Options::Get().output_fname;
	out_name = out_name.substr(0,out_name.find('.')) + ".aa_count";
	ofstream file(out_name.c_str());
	if (!file.is_open()){
	  cerr << "Cannot open file " << out_name << "\n";
		exit(0);
	}
	for (int a(0); a < (int) dictionary.size(); a++) {
		file << dictionary[a] << " ";
	}
	file << "\n";
	for (int col(0); col < ncol; col++){
		for (int seq(0); seq < nseq; seq++){
			int pos = (int) dictionary.find(mali_seq[seq][col]);
			if (pos < (int) dictionary.size()){
				counts[pos]++;
			} else {
				cerr << mali_seq[seq][col] << " is not in the dictionary\n";
			}
		}
		for (int a(0); a < (int) dictionary.size(); a++) {
			file << counts[a] << " ";
			counts[a] = 0;
		}
		file << "\n";
	}
	file.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x380, %rsp            # imm = 0x380
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x2e8(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0x2e0(%rbp)
callq 0x45f0
movq -0x2e0(%rbp), %rdx
leaq 0x861f(%rip), %rsi      # 0x1b717
leaq -0x28(%rbp), %rdi
callq 0xcb40
jmp 0x13103
leaq -0x29(%rbp), %rdi
callq 0x4390
leaq -0x28(%rbp), %rdi
callq 0x4260
movq %rax, -0x2f8(%rbp)
movl $0x0, -0x5c(%rbp)
leaq -0x5d(%rbp), %rdi
movq %rdi, -0x2f0(%rbp)
callq 0x9090
movq -0x2f8(%rbp), %rsi
movq -0x2f0(%rbp), %rcx
leaq -0x58(%rbp), %rdi
leaq -0x5c(%rbp), %rdx
callq 0x90b0
jmp 0x13150
leaq -0x5d(%rbp), %rdi
callq 0x9130
callq 0x5150
movq %rax, -0x300(%rbp)
jmp 0x13167
movq -0x300(%rbp), %rsi
addq $0xa8, %rsi
leaq -0x80(%rbp), %rdi
callq 0x4140
jmp 0x13180
xorl %eax, %eax
movl %eax, %edx
movq %rdx, -0x308(%rbp)
leaq -0x80(%rbp), %rdi
movq %rdi, -0x310(%rbp)
movl $0x2e, %esi
callq 0x4480
movq -0x310(%rbp), %rsi
movq -0x308(%rbp), %rdx
movq %rax, %rcx
leaq -0xc0(%rbp), %rdi
callq 0x4360
jmp 0x131bf
leaq 0x8567(%rip), %rdx      # 0x1b72d
leaq -0xa0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0xe210
jmp 0x131db
leaq -0x80(%rbp), %rdi
movq %rdi, -0x318(%rbp)
leaq -0xa0(%rbp), %rsi
movq %rsi, -0x320(%rbp)
callq 0x4420
movq -0x320(%rbp), %rdi
callq 0x41e0
leaq -0xc0(%rbp), %rdi
callq 0x41e0
movq -0x318(%rbp), %rdi
callq 0x4130
movq %rax, %rsi
leaq -0x2c0(%rbp), %rdi
movl $0x10, %edx
callq 0x43a0
jmp 0x13233
leaq -0x2c0(%rbp), %rdi
callq 0x42a0
movb %al, -0x321(%rbp)
jmp 0x13247
movb -0x321(%rbp), %al
testb $0x1, %al
jne 0x13338
jmp 0x13257
movq 0x12d8a(%rip), %rdi     # 0x25fe8
leaq 0x7dbb(%rip), %rsi      # 0x1b020
callq 0x4330
movq %rax, -0x330(%rbp)
jmp 0x13273
movq -0x330(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x4320
movq %rax, -0x338(%rbp)
jmp 0x1328c
movq -0x338(%rbp), %rdi
leaq 0x825c(%rip), %rsi      # 0x1b4f6
callq 0x4330
jmp 0x132a1
xorl %edi, %edi
callq 0x4400
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x29(%rbp), %rdi
callq 0x4390
jmp 0x1363a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x5d(%rbp), %rdi
callq 0x9130
jmp 0x13631
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x13628
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1361f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x41e0
jmp 0x1361f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x44f0
jmp 0x1361f
movl $0x0, -0x2c4(%rbp)
movl -0x2c4(%rbp), %eax
movl %eax, -0x33c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x4260
movq %rax, %rcx
movl -0x33c(%rbp), %eax
cmpl %ecx, %eax
jge 0x133c7
movslq -0x2c4(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x46c0
movq %rax, -0x348(%rbp)
jmp 0x1337d
movq -0x348(%rbp), %rax
movsbl (%rax), %esi
leaq -0x2c0(%rbp), %rdi
callq 0x43e0
movq %rax, -0x350(%rbp)
jmp 0x1339c
movq -0x350(%rbp), %rdi
leaq 0x81e7(%rip), %rsi      # 0x1b591
callq 0x4330
jmp 0x133b1
jmp 0x133b3
movl -0x2c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c4(%rbp)
jmp 0x13342
leaq 0x8128(%rip), %rsi      # 0x1b4f6
leaq -0x2c0(%rbp), %rdi
callq 0x4330
jmp 0x133dc
movl $0x0, -0x2c8(%rbp)
movq -0x2e8(%rbp), %rcx
movl -0x2c8(%rbp), %eax
cmpl 0xcc(%rcx), %eax
jge 0x135e1
movl $0x0, -0x2cc(%rbp)
movq -0x2e8(%rbp), %rcx
movl -0x2cc(%rbp), %eax
cmpl 0xc8(%rcx), %eax
jge 0x13524
movq -0x2e8(%rbp), %rdi
addq $0x38, %rdi
movslq -0x2cc(%rbp), %rsi
callq 0x74a0
movq %rax, %rdi
movslq -0x2c8(%rbp), %rsi
callq 0x46c0
movq %rax, -0x358(%rbp)
jmp 0x13451
movq -0x358(%rbp), %rax
leaq -0x28(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
movsbl (%rax), %esi
callq 0x4480
movl %eax, -0x2d0(%rbp)
movl -0x2d0(%rbp), %eax
movl %eax, -0x35c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x4260
movq %rax, %rcx
movl -0x35c(%rbp), %eax
cmpl %ecx, %eax
jge 0x134a9
movslq -0x2d0(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x7480
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x1350e
movq -0x2e8(%rbp), %rdi
addq $0x38, %rdi
movslq -0x2cc(%rbp), %rsi
callq 0x74a0
movq %rax, %rdi
movslq -0x2c8(%rbp), %rsi
callq 0x46c0
movq %rax, -0x368(%rbp)
jmp 0x134d8
movq -0x368(%rbp), %rax
movsbl (%rax), %esi
movq 0x12aff(%rip), %rdi     # 0x25fe8
callq 0x43e0
movq %rax, -0x370(%rbp)
jmp 0x134f7
movq -0x370(%rbp), %rdi
leaq 0x8232(%rip), %rsi      # 0x1b737
callq 0x4330
jmp 0x1350c
jmp 0x1350e
jmp 0x13510
movl -0x2cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2cc(%rbp)
jmp 0x13409
movl $0x0, -0x2d4(%rbp)
movl -0x2d4(%rbp), %eax
movl %eax, -0x374(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x4260
movq %rax, %rcx
movl -0x374(%rbp), %eax
cmpl %ecx, %eax
jge 0x135b6
movslq -0x2d4(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x7480
movl (%rax), %esi
leaq -0x2c0(%rbp), %rdi
callq 0x45c0
movq %rax, -0x380(%rbp)
jmp 0x13577
movq -0x380(%rbp), %rdi
leaq 0x800c(%rip), %rsi      # 0x1b591
callq 0x4330
jmp 0x1358c
movslq -0x2d4(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x7480
movl $0x0, (%rax)
movl -0x2d4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2d4(%rbp)
jmp 0x1352e
leaq 0x7f39(%rip), %rsi      # 0x1b4f6
leaq -0x2c0(%rbp), %rdi
callq 0x4330
jmp 0x135cb
jmp 0x135cd
movl -0x2c8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c8(%rbp)
jmp 0x133e6
leaq -0x2c0(%rbp), %rdi
callq 0x44c0
jmp 0x135ef
leaq -0x2c0(%rbp), %rdi
callq 0x44f0
leaq -0x80(%rbp), %rdi
callq 0x41e0
leaq -0x58(%rbp), %rdi
callq 0x9170
leaq -0x28(%rbp), %rdi
callq 0x41e0
addq $0x380, %rsp            # imm = 0x380
popq %rbp
retq
leaq -0x80(%rbp), %rdi
callq 0x41e0
leaq -0x58(%rbp), %rdi
callq 0x9170
leaq -0x28(%rbp), %rdi
callq 0x41e0
movq -0x38(%rbp), %rdi
callq 0x45e0
nopw %cs:(%rax,%rax)
nopl (%rax)