zoukankan      html  css  js  c++  java
  • C语言 fastq文件转换为fasta文件

    目前只能处理短序列,若要处理长序列,可按照https://www.cnblogs.com/mmtinfo/p/13036039.html的读取方法。

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 #define RLEN 1024
     5 
     6 static void getfq(char *fq, char *ofq);
     7 
     8 int main(int argc, char *argv[]){
     9 
    10     if(argc!=3){
    11         printf("infomation:
    ");
    12         fprintf(stderr,"	usage: %s <fastq> <fast>
    ",argv[0]);
    13         exit(-1);
    14     }
    15     getfq(argv[1],argv[2]);
    16     exit(0);
    17 }
    18 
    19 static void getfq(char *fq, char* ofq){
    20 
    21     FILE *fp1=fopen(fq,"r"); 
    22     FILE *fp2=fopen(ofq,"w"); 
    23 
    24     char fline[RLEN]; 
    25     char read[4][RLEN]; 
    26     char *r=NULL; 
    27 
    28     while(fp1 != NULL && fp2 != NULL){
    29         
    30         for(int i=0; i<4; i++){
    31             r=fgets(fline,RLEN,fp1);
    32             if(r != NULL){
    33                 strcpy(read[i],fline);
    34             }
    35             else{ // EOF
    36                 goto LoopOut;
    37             }
    38         }
    39 
    40         for(int i=0; i<4; i++){
    41             switch(i)
    42             {
    43                 case 0:
    44                     memcpy(read[i],">",1);
    45                     fprintf(fp2,"%s",read[i]);
    46                     break;
    47                 case 1:
    48                     fprintf(fp2,"%s",read[i]);
    49                     break;
    50                 case 2:
    51                     continue;
    52                     break;
    53                 case 3:
    54                     continue;
    55                     break;
    56                 default:
    57                     break;
    58             }
    59         }
    60     }
    61     LoopOut:
    62         free(r); 
    63         r=NULL;
    64         free(fp1);
    65         free(fp2);
    66 
    67     return;
    68 }
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    Spring整合CXF之添加拦截器
    Spring整合CXF之发布WebService服务
    CXF添加自定义拦截器
    cxf处理一些Map等复杂类型
    webservice执行过程深入理解
    谈谈房车
    关于贷款消费
    记一次玩比特币的经历
    那年K城暑期工
    SpringBoot整合Xxl-Job
  • 原文地址:https://www.cnblogs.com/mmtinfo/p/13924617.html
Copyright © 2011-2022 走看看