00001
#include "gn/gnSourceFactory.h"
00002
#include "gn/gnFASSource.h"
00003
#include "gn/gnSequence.h"
00004
00005
#include <iostream>
00006
00007
#include "gn/gnFilter.h"
00008
#include "gn/gnStringTools.h"
00009
#include "gn/gnFastTranslator.h"
00010
00011 int main(
int32 argc,
char* argv[])
00012 {
00013 argc; argv;
00014
try{
00015 string filename;
00016 cout <<
"Enter a filename to read bases from.\n";
00017 cin >> filename;
00018 cout <<
"Opening " + filename +
"\n";
00019
gnSequence gpseq, gnsubseq;
00020
00021
00022
00023
00024
00025
00026 gpseq.
LoadSource(filename);
00027 cout <<
"Length " << gpseq.
length() <<
" in " << gpseq.
contigListSize() <<
" contigs\n";
00028
00029 string pretrans, posttrans, posttrans2;
00030
const gnTranslator* dna2pro_good =
gnTranslator::DNAProteinTranslator();
00031
const gnFastTranslator* dna2pro_fast =
gnFastTranslator::DNAProteinTranslator();
00032 pretrans = gpseq.
ToString();
00033
00034 posttrans = pretrans;
00035 posttrans2 = pretrans;
00036 cout <<
"Doing correct translation:\n";
00037 dna2pro_good->
Filter(posttrans);
00038 cout <<
"done\n";
00039 gnsubseq = posttrans;
00040
gnFASSource::Write(gnsubseq,
"profile_good.fas");
00041
00042
00043 cout <<
"Doing fast translation:\n";
00044 dna2pro_fast->
Filter(posttrans2);
00045 cout <<
"done\n";
00046 gnsubseq = posttrans2;
00047
gnFASSource::Write(gnsubseq,
"profile_fast.fas");
00048
00049
00050 cout <<
"base pairs 8 thru 68 are: \n";
00051 cout << gpseq.
subseq(8, 60) <<
"\n";
00052
00053
for(
uint32 i=0; i < 15; i++){
00054
try{
00055 cout <<
"Contig " << i <<
" length " << gpseq.
contig(i).
length() <<
"\n";
00056 }
catch(
gnException& gne){
00057 cout << gne;
00058 }
00059 }
00060 cout << gpseq.
subseq(1000000, 10);
00061 cin >> filename;
00062
00063
gnSeqI midpoint = gpseq.
length() / 2;
00064
gnSequence seqA = gpseq.
subseq(1, midpoint);
00065
gnSequence seqB = gpseq.
subseq(1 + midpoint, gpseq.
length() - midpoint);
00066 cout <<
"Splitting " << gpseq.
length() <<
" to " << seqA.
length() <<
" and " << seqB.
length() <<
"\n";
00067 cin >> filename;
00068
00069 gnsubseq = gpseq.
subseq(5, 10);
00070 cout <<
"subseq len: " << gnsubseq.
length() <<
"\n";
00071 cout <<
"subseq: " << gnsubseq <<
"\n";
00072
gnSeqC* buf =
new gnSeqC[gpseq.
length()];
00073 gpseq.
ToArray(buf, gpseq.
length());
00074
00075 cout <<
"Give a file name to output data: ";
00076 string outfilename;
00077 cin >> outfilename;
00078
gnFASSource::Write(gpseq, outfilename);
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088 cout <<
"All done. Contigs 3, 2, 1 are in " << outfilename <<
"\n";
00089
char bubba[50];
00090 cin >> bubba;
00091 }
catch(
gnException& gne){
00092 cout << gne;
00093 string reality_bites;
00094 cin >> reality_bites;
00095 }
00096 }