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:\n"); 12 fprintf(stderr,"\tusage: %s <fastq> <fast>\n",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 }
作者:天使不设防
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!