Suppose we are interested in studying a DNA sequence which c
Solution
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int getBaseCount(char dna[],char base)
{
int length,count=0,i;
length=strlen(dna);
for(i=0;i<length;i++)
{
if(dna[i]==base)
{
count++;
}
}
return count;
}
void getAllBaseCounts(char dna[],int baseCountArray[])
{
int length,i;
length=strlen(dna);
for(i=0;i<length;i++)
{
if(dna[i]==\'A\')
{
baseCountArray[0]++;
}
if(dna[i]==\'C\')
{
baseCountArray[1]++;
}
if(dna[i]==\'G\')
{
baseCountArray[2]++;
}
if(dna[i]==\'T\')
{
baseCountArray[3]++;
}
}
printf(\"Base Count for bases A,C,G,T are %d\\t%d\\t%d\\t%d\ \",baseCountArray[0],baseCountArray[1],baseCountArray[2],baseCountArray[3]);
}
void blankOut(char dna[],char base,char dotStr[])
{
int length,i;
length=strlen(dna);
for(i=0;i<length;i++)
{
if(dna[i]!=base)
{
dotStr[i]=\'.\';
}
else
{
dotStr[i]=dna[i];
}
}
dotStr[i]=\'\\0\';
printf(\"%s\ \",dotStr);
}
void displayAllBlankOut(char dna[])
{
int length,i;
length=strlen(dna);
for(i=0;i<length;i++)
{
printf(\"%c\",\'.\');
}
printf(\"\ \");
}
void printStats(char dna[],int baseCountArray[] )
{
int length,i;
length=strlen(dna);
printf(\"Sequence: %s\ \",dna);
printf(\"Length: %d\ \",length);
printf(\"Base Statistics\ \");
printf(\"A: %f\ \",((float)baseCountArray[0]/(float)length)*100);
printf(\"C: %f\ \",((float)baseCountArray[1]/(float)length)*100);
printf(\"G: %f\ \",((float)baseCountArray[2]/(float)length)*100);
printf(\"T: %f\ \",((float)baseCountArray[3]/(float)length)*100);
}
void setupRandDNASeq(int n,char dna[])
{
int count_A = rand() % n;
int remain=n;
remain = remain-count_A;
int count_C = rand() % remain;
remain = remain-count_C;
int count_G = rand() % remain;
remain = remain-count_G;
int count_T = remain,i=0;
while(count_A>0)
{
dna[i]=\'A\';
count_A--;
i++;
}
while(count_C>0)
{
dna[i]=\'C\';
count_C--;
i++;
}
while(count_G>0)
{
dna[i]=\'G\';
count_G--;
i++;
}
while(count_T>0)
{
dna[i]=\'T\';
count_T--;
i++;
}
dna[i]=\'\\0\';
printf(\"%s\",dna);
}
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
char input_dna[100],dotStar[100],count;
int baseCount[4]={};
int length;
scanf(\"%d\",&length);
setupRandDNASeq(length,input_dna);
count = getBaseCount(input_dna,\'A\');
printf(\"%d\ \",count);
blankOut(input_dna,\'A\',dotStar);
displayAllBlankOut(input_dna);
getAllBaseCounts(input_dna,baseCount);
printStats(input_dna,baseCount);
return 0;
}


