C语言小练习:计算非压缩fastq格式的GC含量

 1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #define buff 1024
5
6 typedef unsigned long long int u_llong;
7
8 static void usage(int num,const char *str)
9 {
10 if(num !=2)
11 {
12 fprintf(stderr,"usage: %s fqFile\n",str);
13 exit(0);
14 }
15 }
16
17 static u_llong* gcN(char base[buff])
18 {
19 base[strlen(base)-1]='\0';
20
21 int i;
22 static u_llong gactn[]={0,0,0,0,0};
23 for(i=0; i<strlen(base); i++)
24 {
25 if(base[i]=='G')
26 gactn[0]++;
27 if(base[i]=='A')
28 gactn[1]++;
29 if(base[i]=='C')
30 gactn[2]++;
31 if(base[i]=='T')
32 gactn[3]++;
33 if(base[i]=='N')
34 gactn[4]++;
35 }
36 return gactn;
37 }
38
39 static void calc(const char *fqfile)
40 {
41 FILE *fq;
42 if((fq=fopen(fqfile,"r")) == NULL)
43 {
44 perror("fopen");
45 exit(1);
46 }
47 //fprintf(stderr,"fq file <%s> open suceed!\n",fqfile);
48
49 char base[buff];
50 char qual=0;
51 u_llong *p=NULL;
52 while((fgets(base,buff,fq))!= NULL)
53 {
54 if(base[0]=='@')
55 {
56 continue;
57 }
58 if(base[0]=='+')
59 {
60 qual=1;
61 continue;
62 }
63 if(qual==1)
64 {
65 qual=0;
66 continue;
67 }
68
69 p=gcN(base); // G A C T N
70 }
71
72 float GClevel,Nlevel;
73 u_llong sum=0;
74 for(int i=0; i<5; i++)
75 {
76 sum+=*(p+i);
77 }
78 GClevel=(float)(*p+*(p+2)) / sum * 100;
79 Nlevel=(float)(*p+4) / sum * 100;
80
81 fprintf(stdout,"G:%lld\tA:%lld\nC:%lld\tT:%lld\nN:%lld\tsum:%lld\n",*p,*(p+1),*(p+2),*(p+3),*(p+4),sum);
82 fprintf(stdout,"GC:%.2f%%\n",GClevel);
83
84 fclose(fq);
85 }
86
87 int main(int argc,const char *argv[])
88 {
89 usage(argc,argv[0]);
90 calc(argv[1]);
91
92 exit(0);
93 }

C语言计算fastq文件GC含量的更多相关文章

  1. C语言计算fastq文件GC含量2

    改进了一下,利用zlib可以读取gz格式的压缩文件,也可以直接计算非压缩格式 #include <stdio.h> #include <stdlib.h> #include & ...

  2. 统计 fastq 文件 q20 , GC 含量的软件

    二代测序的分析过程中,经常需要统计原始下机数据的数据量,看数据量是否符合要求:另外还需要统计q20,q30,GC含量等反应测序质量的指标: 在kseq.h 的基础上稍加改造,就可以实现从fastq 文 ...

  3. perl练习——FASTA格式文件中序列GC含量计算&perl数组排序如何获得下标或者键

    一.关于程序: FUN:计算FASTA文件中每条序列中G和C的含量百分比,输出最大值及其id INPUT:FASTA格式文件 >seq1 CGCCGAGCGCTTGACCTCCAGCAAGACG ...

  4. R语言计算相关矩阵然后将计算结果输出到CSV文件

    R语言计算出一个N个属性的相关矩阵(),然后再将相关矩阵输出到CSV文件. 读入的数据文件格式如下图所示: R程序采用如下语句: data<-read.csv("I:\\SB\land ...

  5. fastq文件基本信息统计工具

    之前写的一个小工具,写的很简陋,名字取的也很随意就叫skr,哈哈.主要是fq转fa.合并多个染色体的vcf文件等,功能不多(主要是C写起来太操蛋了T_T),通常我也只用来统计fastq文件信息: 这里 ...

  6. c语言的头文件-不是c++类的头文件?

    下面的概述是参考的这篇文章:http://blog.csdn.net/bingxx11/article/details/7771437 c语言编程中也有,也需要头文件, 头文件不只是C++的类才需要! ...

  7. 利用Bioperl的SeqIO模块解析fastq文件

    测序数据中经常会接触到fastq格式的文件,比如说拿到fastq格式的原始数据后希望查看测序碱基的质量并去除低质量碱基.一般而言大家都是用现有的工具,比如说fastqc这个Java写的小程序,确实很好 ...

  8. php 统计fasta 序列长度和GC含量

    最近php7的消息铺天盖地, 忍不住想尝试下.星期天看了下语法, 写个小脚本练下手: 这个脚本读取fasta 文件, 输出序列的长度和GC含量: <?php $fasta = "tes ...

  9. perl 截取 fastq文件

    #!/usr/bin/perl -w use warnings; use strict; input_fastq trim_length}; ; my ($fastq, $trim_length) = ...

随机推荐

  1. Beta阶段第七次会议

    Beta阶段第七次会议 时间:2020.5.23 完成工作 姓名 工作 难度 完成度 ltx 1.修改小程序页面无法加载bug2.修改条件语句,使得页面能够正常显示 中 90% xyq 1.根据api ...

  2. 华为HG255D挂卡中继专用旋风科技固件

    正的挂卡不掉线不掉速,稳定上网看上去好像很NB的样子 挂卡设置教程:http://picimg.lshou.com/pic/clou ... /6/t/1/30247515.mp4 固件链接: htt ...

  3. 力扣 - 剑指 Offer 57 - II. 和为s的连续正数序列

    题目 剑指 Offer 57 - II. 和为s的连续正数序列 思路1(双指针/滑动窗口) 所谓滑动窗口,就是需要我们从一个序列中找到某些连续的子序列,我们可以使用两个for循环来遍历查找,但是未免效 ...

  4. 无缓存交换 牛客网 程序员面试金典 C++ Python

    无缓存交换 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个函数,函数内不使用任何临时变量,直接交换两个数的值. 给定一个int数组AB,其第零个元素和第一个元素为待交换的值,请返回 ...

  5. 【Java】数组Array

    Java基础复习之:数组 简介 数组(Array):多个相同数据类型按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理 一维数组 一维数组的声明与初始化 int[] id ...

  6. 在idea中使用eclipse的快捷键

    settings -> keymap 常用 单行注释 Ctrl + / 多行注释 Ctrl + Shift + / 待更新 不常用(但方便) 撤销 Ctrl + Z 反撤销 Ctrl + Y 查 ...

  7. springboot入门之版本依赖和自动配置原理

    前言 Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that ...

  8. USB3.0 转USB3.0

    前段时间因为项目需求需要将相机的USB3.0口转接出来,心想那还不想简单,结果第一次就碰壁了:先说一下usb3.0的引脚定义如图: 九个脚,2个地:注意USB3.0转3.0时数据线全交叉,DM-和DP ...

  9. PCB各层介绍

    在PCB设计中用得比较多的图层: mechanical 机械层 keepout layer 禁止布线层 Signal layer 信号层 Internal plane layer 内部电源/接地层 t ...

  10. Power Platform Center of Excellence (CoE) 部署完成&主要内容说明

    随着目前国内使用Power Platform的企业越来越多,而在跟客户交付项目时,客户经常想了解平台的一些基本情况: Power Platform 有多少环境,分别是谁创建和管理? Power Pla ...