美文网首页R
豆豆和花花用代码P了个K

豆豆和花花用代码P了个K

作者: 小洁忘了怎么分身 | 来源:发表于2019-11-07 10:54 被阅读0次

    豆豆和花花用代码P了个K

    豆豆和花花写于19.11.7

    问题&起因

    给定一个fq文件,不论用什么方法,把它变成fa

    上班路上,花花说能用R解决的事情就不会想用linux,比如以前线下培训会讲的:什么fastq转fasta,放进R里面最多五行代码。

    豆豆就说:五行吗?来来来我用linux你用R我们各写一个答案,今天推文有了。

    我去,好主意。

    以前也不是没打过,比如这两篇:

    花花:linux不会,不如用R吧

    豆豆:批量重命名:如果会linux呢?

    具体规则,花花来定

    下周四是豆豆和花花恋爱7周年纪念日,大家投票谁的代码好,规则太难写了,改了好几遍,总之就是我要赢啊啊啊啊。

    tip:关于fq和fa格式的区别

    生信小白第5天-聊下数据格式

    目前给定的fq节选如下

    @A00204:437:HMHMLDSXX:2:1101:1524:1000 
    AGAAAGTTTGCCTATCTGGGGTGCCTGGCTCACGAGGTTGGCTGGAAGTACCAGGCAGTGACAGCCACCCTGGAGGAGAAGAGGAAAGAGAAAGCCAAGATCCACTACCGGAAGAAGAAACAGCTCATGAGGCTACGGAAACAGGCCGAG
    +
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    @A00204:437:HMHMLDSXX:2:1101:1868:1000 
    ATAGCCCTGGCCGTACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTGGAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATCATCTTCACAATTCTAATTCTACTGACTATCCTAGAA
    +
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFF:F,FFFFFF:FF:FFFFFF,FFFFFFFF,FFFFFFF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FF:FF,FFFFFFFFFFF:FF,FFF:FFFFFF
    

    要变成=》

    >A00204:437:HMHMLDSXX:2:1101:1524:1000 
    AGAAAGTTTGCCTATCTGGGGTGCCTGGCTCACGAGGTTGGCTGGAAGTACCAGGCAGTGACAGCCACCCTGGAGGAGAAGAGGAAAGAGAAAGCCAAGATCCACTACCGGAAGAAGAAACAGCTCATGAGGCTACGGAAACAGGCCGAG
    >A00204:437:HMHMLDSXX:2:1101:1868:1000 2:N:0:CACTCGGA+TCTTTCCC
    ATAGCCCTGGCCGTACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTGGAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATCATCTTCACAATTCTAATTCTACTGACTATCCTAGAA
    

    花花解答

    方法一: 向量配stringr啊

    image-20191107092718416
    test = readLines("test.fq")
    test1 = test[seq(1,length(test),4)]
    test2 = test[seq(2,length(test),4)]
    result = paste(stringr::str_replace(test1,"@",">"),test2 ,sep = "\n")
    writeLines(result)
    # >A00204:437:HMHMLDSXX:2:1101:1524:1000  AGAAAGTTTGCCTATCTGGGGTGCCTGGCTCACGAGGTTGGCTGGAAGTACCAGGCAGTGACAGCCACCCTGGAGGAGAAGAGGAAAGAGAAAGCCAAGATCCACTACCGGAAGAAGAAACAGCTCATGAGGCTACGGAAACAGGCCGAG
    # >A00204:437:HMHMLDSXX:2:1101:1868:1000 ATAGCCCTGGCCGTACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTGGAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATCATCTTCACAATTCTAATTCTACTGACTATCCTAGAA
    # >A00204:437:HMHMLDSXX:2:1101:2193:1000 TAGTTATTATCGAAACCATCAGCCTACTCATTCAACCAATAGCCCTGGCCGTACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTGGAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTA
    

    方法二

    有R包呢,从谷歌找到R包和函数的名字,安装,加载,看帮助文档示例部分,你就会膨胀起来。

    对不起,暴露了,我是一个有故事的人,可能是我的课程和笔记都写得太过保姆,剥夺了学员自己思考和搜索的能力,我改还不行吗?

    豆豆解答

    方法一: linux "paste + tr"

    cat test.fq | paste - - - - | cut -f 1-2 | awk -F ' ' '{print $1,$3}' | tr ' ' '\n' | tr '@' '>' >dou1.fa
    
    head -n4 dou1.fa
    >A00204:437:HMHMLDSXX:2:1101:1524:1000 
    AGAAAGTTTGCCTATCTGGGGTGCCTGGCTCACGAGGTTGGCTGGAAGTACCAGGCAGTGACAGCCACCCTGGAGGAGAAGAGGAAAGAGAAAGCCAAGATCCACTACCGGAAGAAGAAACAGCTCATGAGGCTACGGAAACAGGCCGAG
    >A00204:437:HMHMLDSXX:2:1101:1868:1000 
    ATAGCCCTGGCCGTACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTGGAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATCATCTTCACAATTCTAATTCTACTGACTATCCTAGAA
    

    方法二:bioawk

    一个神奇的小软件bioawk

    这个软件好像保留的ID行更精炼一些

    conda install -c bioconda bioawk
    bioawk -c fastx '{print ">"$name; print $seq}' test.fq >dou2.fa
    
    head -n4 dou2.fa
    >A00204:437:HMHMLDSXX:2:1101:1524:1000
    AGAAAGTTTGCCTATCTGGGGTGCCTGGCTCACGAGGTTGGCTGGAAGTACCAGGCAGTGACAGCCACCCTGGAGGAGAAGAGGAAAGAGAAAGCCAAGATCCACTACCGGAAGAAGAAACAGCTCATGAGGCTACGGAAACAGGCCGAG
    >A00204:437:HMHMLDSXX:2:1101:1868:1000
    ATAGCCCTGGCCGTACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTGGAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATCATCTTCACAATTCTAATTCTACTGACTATCCTAGAA
    

    投票通道在公众号~

    相关文章

      网友评论

        本文标题:豆豆和花花用代码P了个K

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