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

简介: DNA核苷酸计数问题描述: 给定一行核苷酸序列,长度最长为1000 nt, 返回其中'A', 'T', 'C', 'G'出现的次数C代码如下:#include #include #include #include "dbg.

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;

}
目录
相关文章
|
算法 关系型数据库 数据挖掘
Sentieon | 每周文献-Tumor Sequencing(肿瘤测序)-第三期
本期重点关注Sentieon在甲状腺癌和CRISPR/Cas9技术中的应用
114 0
Sentieon | 每周文献-Tumor Sequencing(肿瘤测序)-第三期
|
3月前
|
存储 数据挖掘
单细胞|线粒体基因型和DNA可及性联合分析
单细胞|线粒体基因型和DNA可及性联合分析
86 15
单细胞|线粒体基因型和DNA可及性联合分析
|
算法 芯片
DNA测序原理:illumina和Pacbio对比介绍
DNA测序原理:illumina和Pacbio对比介绍
DNA methyltransferase,DNMT
DNMT(DNA methyltransferase)是一种酶,主要负责将甲基基团(CH3)添加到DNA分子中特定的CpG位点上,从而实现DNA甲基化。DNMT在基因表达调控、细胞分化和疾病发生等方面具有重要作用。
66 1
|
机器学习/深度学习 安全 数据挖掘
用于 DNA 测序的机器学习模型,理论上可以解码任何测序读数中所编码的数据值
用于 DNA 测序的机器学习模型,理论上可以解码任何测序读数中所编码的数据值
174 0
用于 DNA 测序的机器学习模型,理论上可以解码任何测序读数中所编码的数据值
|
数据可视化 数据挖掘 Python
跟着Nature Communications学数据分析:基因组水平的比对鉴定结构变异
跟着Nature Communications学数据分析:基因组水平的比对鉴定结构变异
|
Shell Python Perl
宏基因组之基因预测
12年有篇BMC的文献对几款预测的软件做了评估,其实参考大多数的文献中最常见的俩个软件也就是Prodigal和Metagenemark这俩个软件,分析过程中我这俩个软件都感受一下,现在将过程记录一下~~有兴趣的话可以看看这篇文献哦。
271 0
|
数据库 网络架构 索引
宏基因组之基因丰度计算
目前有两种方式可计算宏基因组基因的丰度,一种是基于比对,比如bwa,bowtie,soapaligner等主流的比对软件,另一种是不比对快速估计基因丰度,可以用近俩年来流行的salmon软件,这个软件在转录组的数据比对中也经常用到,可以直接计算出原始的Counts值和标准化的TPM值,此外由于是基于非比对,计算的速度得到很大的提升,同时也节省了部分的内存(少了庞大的sam/bam文件),可以说是多快好省,但是目前的高分文章中也还是不少用基于比对的方法去计算宏基因组的基因丰度的,下面我就分别简单介绍一下基于比对的soapaligner和不比对快速估计的samlon俩个软件的操作流程!!
820 0
|
机器学习/深度学习 编解码
Nature子刊 | 谭济民、夏波等提出基因组构象预测模型及高通量计算遗传筛选方法
Nature子刊 | 谭济民、夏波等提出基因组构象预测模型及高通量计算遗传筛选方法
|
数据可视化 Go 数据库
ChIP-seq 分析:基因集富集(11)
转录因子或表观遗传标记可能作用于按共同生物学特征(共享生物学功能、RNAseq 实验中的共同调控等)分组的特定基因组。
313 0