美文网首页
Rosalind: DNA核苷酸计数和DNA翻译成RNA

Rosalind: DNA核苷酸计数和DNA翻译成RNA

作者: xuzhougeng | 来源:发表于2018-09-27 22:24 被阅读98次

DNA核苷酸计数

问题描述: 给定一行核苷酸序列,长度最长为1000 nt, 返回其中'A', 'T', 'C', 'G'出现的次数

C代码如下:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include "dbg.h"
#define MAX_SIZE 1001

int main( int argc, char *argv[])
{
    check(argc == 2, "Need an argument"); 
    FILE *filein ;
    if( ( filein = fopen(argv[1], "r")) == NULL){
        printf("unable to open %s \n", argv[1]);
        return 1;
    } 
    
    char nucl[MAX_SIZE];
    char *in = NULL;
    in = fgets(nucl, MAX_SIZE - 1, filein);
    check(in != NULL, "Failed to read file");
    // count
    int count =0;
    char letter;
    int A_NUM = 0, T_NUM = 0, C_NUM = 0 , G_NUM = 0;
    for ( count = 0; nucl[count] != '\0' && nucl[count] != '\n'; count++){
        letter = toupper(nucl[count]);
        switch(letter){
        case 'A':
            A_NUM ++;
            break; 
        case 'T':
            T_NUM ++;
            break; 
        case 'C':
            C_NUM ++;
            break; 
        case 'G':
            G_NUM ++;
            break; 
        default:
            printf("%d: %c is not a valid base\n", count, letter);
        }
    }
    printf("A\tC\tG\tT\n");
    printf("%d\t%d\t%d\t%d\t\n",A_NUM, C_NUM, G_NUM, T_NUM); 

    fclose(filein);
    return 0;
error:
    return -1;
}

DNA转录成RNA

问题描述: RNA由A, C, G, U组成,其中U是对应DNA编码链上的T。给定一段编码链上的序列,将其翻译成RNA序列。

C代码如下:

#include <stdio.h>
#include <ctype.h>
#include "dbg.h"
#define LINE_MAX 80

int main(int argc, char *argv[])
{
    check(argc == 2, "USAGES: ./RNA file");
    char *filename = argv[1]; 
    FILE *in = fopen(filename, "r");
    check(in != NULL, "unable to open file");
    char line[LINE_MAX];
    int i = 0;
    while ( (fgets(line, LINE_MAX - 1, in)) != NULL){
        for (i = 0; line[i] != '\0'; i++){
            int base = toupper(line[i]);
            if ( base == 'T'){
                printf("%c", 'U');
            } else{
                printf("%c", base);
            }

        }
    }
    printf("\n");

    return 0;
error:
    return -1;

}

相关文章

网友评论

      本文标题:Rosalind: DNA核苷酸计数和DNA翻译成RNA

      本文链接:https://www.haomeiwen.com/subject/thneoftx.html