美文网首页
如何用python把fastq里所有序列的前几个碱基提取出来

如何用python把fastq里所有序列的前几个碱基提取出来

作者: gtt儿_生物信息学习 | 来源:发表于2020-05-24 10:38 被阅读0次

    本文首发于微信公众号:生物信息学习

    最近实验室开始用python的越来越多了,看着大家都在进步,哈哈,也是一件蛮有成就感的事情。

    但是最近师妹还是有新的需求,想把fastq里所有序列的前几个碱基提取出来,我最初是想有没有现成可用的工具,因为如果有工具,我可以直接把工具给需要的人,对我来说会比较省事,当然后来想了一下发现,没想到。于是也懒得去网上搜,因为写个python脚本可能比去网上搜要更快。于是就有了下面的脚本。

    师妹需求非常简单,把fastq里所有序列的前几个碱基提取出来。那我们在写代码之前需要对fastq格式比较了解,如下所示,fastq的行数要是4的倍数,因为每4行包含的是一条read的信息。

    @E00517:522:H3MLMCCX2:8:1101:7517:1643 1:N:0:ATCACGAT+AGATCTCG
    CATTCCTGTTGAAGCTCTTGACAATGTGTGAAGTTGATGTCTTGTGAGTGGCCTCACAGGTATAGCTGTTATGTCGTTCATACTCGTCCTTTGTCAACGTGAGGGTGCTGCTCATACTGTAGGTGCTGTCTTTGCTGAGATCGGAAGATC
    +
    AAFFFFJJJJJJJ<AJJJFJJJJJJJA-7FFJJFJFJJJJJFFJJJJ-<A7-7AJJFJJFJFJJJJAJJJJFAFJJFF-A<JJFJ7<FJJJ-F7AJJF-7-AJJ-AJJFJJ--AF-----<-77AJFJF-<7JAAFJFJF7-AFAFJFFA
    

    代码非常非常的简单(取前3个碱基):

    #python3
    
    import sys
    
    line_num=0
    for line in open(sys.argv[1]):
            line_num+=1
            if line_num % 4 ==1 :
                    print(line.strip())
            elif line_num % 4 == 2:
                    print(line.strip()[0:3])
            elif line_num % 4 == 3:
                    print(line.strip())
            elif line_num % 4 == 0:
                    print(line.strip()[0:3])
    

    师妹,看看这个输出的是不是你需要的结果呢?

    @E00517:522:H3MLMCCX2:8:1101:7517:1643 1:N:0:ATCACGAT+AGATCTCG
    CAT
    +
    AAF
    

    如果你对代码或者代码的使用不理解,那么我录制了这个代码及代码使用讲解的视频,如果有兴趣,分享此文到朋友圈(无屏蔽好友)或转发至100人以上的生物医学类群,半小时后截图给我,我发送视频给你。
    另:我们创建了生物信息学习交流群,如需进群,请长按下方二维码,添加管理员微信(禁广告)。
    温馨提示:添加管理员微信时请备注姓名/学习/专业

    微信公众号下方评论区有更简单的方法,欢迎去下方观看.

    相关文章

      网友评论

          本文标题:如何用python把fastq里所有序列的前几个碱基提取出来

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