-
Notifications
You must be signed in to change notification settings - Fork 0
/
ConsoleGeneticData.cpp
131 lines (117 loc) · 11.4 KB
/
ConsoleGeneticData.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#pragma once // used for error prevention
#include "pch.h"
#include <iostream>
#include <string>
#include <map>
#include <thread>
#include "TLogger.h" // the logging libary
using namespace std;
extern thread_names g_thread_names;
// Functions
int read_DNA_file();
void create_DNA_map();
// Values
enum amino_acid // These are the amino acids made by DNA and RNA
{
Histidine, // H, HIS R = C3N2H4 = Imidazole
Glutamine, // Q R =
Proline, // P R =
Arginine, // R R =
Leucine, // L R =
AsparticAcid, // D R =
GlutamicAcid, // E R =
Alanine, // A, ALA R = H3C = methyl group
Glycine, // G R =
Valine, // V R =
Tyrosine, // Y R =
Selenocysteine, // U Stop R =
Pyrrolysine, // O Stop R =
Serine, // S R =
Cysteine, // C R =
Typtophan, // W R =
Phenylalnine, // F R =
Asparagine, // N R =
Lysine, // K R =
Threonine, // T R =
Isoleucine, // I R =
Methionine // M Start R =
};
logging logger;
/*
always, // Most basic of a log
basic, // Means we are logging actual information veruses debugging logs
info, // Can mean anything other then something has happened
debug, // Means something has happened - (good or bad)
success, // Means something good has happened
warning, // Means something bad might happen
error, // Means something bad has happened but will not crash the program
critical // Means something bad has happened and will crash the program
*/
int main()
{
// This is to start the logging process
g_thread_names.name_the_thread("main thread");
logger.addline("logging process has started", always);
logger.addline("logging process has started", basic);
logger.addline("logging process has started", info);
logger.addline("logging process has started", debug);
logger.addline("logging process has started", success);
logger.init();
logger.addline("logging process has been initated", always);
logger.addline("logging process has been initated", basic);
logger.addline("logging process has been initated", info);
logger.addline("logging process has been initated", debug);
// This is the code for this function
map<string, amino_acid> data_value;
read_DNA_file();
logger.addline("Started creation of DNA Map Thread", debug);
thread file_reading_thread(read_DNA_file);
logger.addline("Started creation of DNA Map Thread", debug);
thread dna_map_thread(create_DNA_map);
for (int i = 0; i < 10; i++)
{
cout << "i = " << i << endl;
}
// Ending all of my threads
file_reading_thread.join();
dna_map_thread.join();
// finishes all the logging before ending the program.
logger.addline("The logging process ended no more logs will be recorded", success);
logger.kill();
cout << "press enter three times to end the program";
cin.clear(); // reset any error flags
cin.ignore(32767, '\n'); // ignore any characters in the input buffer until we find an enter character
cin.get(); // get one more char from the user
return 0;
}
int read_DNA_file()
{
g_thread_names.name_the_thread("reading DNA file thread");
logger.addline("created the reading from file thread", success);
// first step to find the promoter
// right now I am using a very basic concept of a promoter and * will be the promoter
string DNA = "AUAUAUAUGCGCAU*AGCAAAAGCAGGGGATAATAAAAACAACCAGAATGAAAGTAAAACTACTGGTCCTGTTATGCACATTTACAGCTACATATGCAGACACAATATGTATAGGCTACCATGCTAACAACTCGACCGACACTGTTGACACAGTACTTGAAAAGAATGTGACAGTGACACACTCTGTCAACCTGCTTGAGAACAGTCACAATGGAAAACTATGTCTATTAAAAGGAATAGCCCCACTACAATTGGGTAATTGCAGCGTTGCCGGGTGGATCTTAGGAAACCCAGAATGCGAATTACTGATTTCCAAGGAGTCATGGTCCTACATTGTAGAAAAACCAAATCCTGAGAATGGAACATGTTACCCAGGGCATTTCGCTGACTATGAGGAACTGAGGGAGCAATTGAGTTCAGTATCTTCATTTGAGAGGTTCGAAATATTCCCCAAAGAAAGCTCATGGCCCAACCACACCGTAACCGGAGTGTCAGCATCATGCTCCCATAATGGGGAAAGCAGTTTTTACAGAAATTTGCTATGGCTGACGGGGAAGAATGGTTTGTACCCAAACCTGAGCAAGTCCTATGCAAACAACAAAGAAAAAGAAGTCCTTGTACTATGGGGTGTTCATCACCCGCCAAACATAGGTATCCAAAAGGCCCTCTATCATACAGAAAATGCTTATGTCTCTGTAGTGTCTTCACATTATAGCAGAAAATTCACCCCAGAAATAGCCAAAAGACCCAAAGTAAGAGATCAAGAAGGAAGAATCAATTACTACTGGACTCTGCTTGAACCCGGGGATACAATAATATTTGAGGCAAATGGAAATCTAATAGCGCCAAGATATGCTTTCGCACTGAGTAGAGGCTTTGGATCAGGAATCATCAACTCAAATGCACCAATGGATAAATGTGATGCGAAGTGCCAAACACCTCAGGGAGCTATAAACAGCAGTCTTCCTTTCCAGAACGTACACCCAGTCACAATAGGAGAGTGTCCAAAGTATGTCAGGAGTGCAAAATTAAGGATGGTTACAGGACTAAGGAACATCCCATCCATTCAATCCAGAGGTTTGTTTGGAGCCATTGCCGGTTTCATTGAAGGGGGGTGGACTGGAATGGTAGATGGTTGGTATGGTTATCATCATCAGAATGAGCAAGGATCTGGCTATGCTGCAGATCAAAAAAGCACACAAAATGCCATTAATGGGATTACAAACAAGGTGAATTCTGTAATTGAGAAAATGAACACTCAATTCACAGCTGTGGGCAAAGAATTCAACAAATTGGAAAGAAGGATGGAAAACTTGAATAAAAAAGTTGATGATGGGTTTATAGACATTTGGACATATAATGCAGAACTGTTGGTTCTACTGGAAAATGAAAGGACTTTGGATTTCCATGACTCCAATGTGAAGAATCTGTATGAGAAAGTAAAAAGCCAGTTAAAGAATAATGCTAAAGAAATAGGAAATGGGTGTTTTGAATTCTATCACAAGTGTAACGATGAATGCATGGAGAGTGTAAAGAATGGAACTTATGACTATCCAAAATATTCCGAAGAATCAAAGTTAAACAGGGAGAAAATTGATGGAGTGAAATTGGAATCAATGGGAGTCTATCAGATTCTGGCGATCTACTCAACAGTCGCCAGTTCTCTGGTTCTTTTGGTCTCCCTGGGGGCAATCAGCTTCTGGATGTGTTCCAATGGGTCTTTACAGTGTAGAATATGCATCTAAGACCAGAATTTCAGAAATATAAGGAAAAACACCCTTGTTTCTACTA";
int promoter; // the location of the promoter in the given string.
for (int i = 0; i < sizeof(DNA); i++)
{
if (DNA.at(i) == '*')
{
promoter = i;
break;
}// if
}// for loop
// removing the unnessary DNA and starting at the promoter
promoter++; // to remove the protmoer as well
DNA.substr(promoter, DNA.length() - promoter); // does the editing and removing
//cout << DNA.substr(promoter, DNA.length() - promoter);
return 0;
}
void create_DNA_map()
{
g_thread_names.name_the_thread("DNA Map thread");
logger.addline("created the mapping thread", success);
for (int j = 0; j < 10; j++)
{
cout << "j = " << j << endl;
}
}