美文网首页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

    豆豆和花花用代码P了个K 豆豆和花花写于19.11.7 问题&起因 给定一个fq文件,不论用什么方法,把它变成fa...

  • P了个K鸭~~~

    今tiā 是第二轮PK赛鸭 也是最后一轮PK赛鸭 不同上周的狂风暴雨 今tiā晴空万里~ 今tiā 人是很多 但拒...

  • 插花

    昨天预约了插花体验课,早早的第一个到达了学习室。 老师准备的插花用的花材和装饰器皿,有序的摆放在案几上,有百合花,...

  • 2018-07-31

    独立重复试验概率计算 P(x=k)=Cn^k*P^k*(1-P)^(n-k) 互斥事件(有你没我 有我没你) 两个...

  • 快速幂模板(luogu P1226 【模板】快速幂||取余运算)

    题目描述输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。 输入输出格式输入格式:三个整...

  • 看这代码水平如何?

    看这代码水平如何? 开8k的工资我就写8k的代码,开20k的工资我就写20k的代码。 下面这代码可读性爆表了! 测...

  • 不同薪资的代码,差别在哪里?

    看这代码水平如何? 开8k的工资我就写8k的代码,开20k的工资我就写20k的代码。 下面这代码可读性爆表了!测试...

  • KD 树上的 KNN 算法

    kd树knn算法 给定kd树,求距离p点最近的k个样本。零、L为有k个空位的列表(一)、根据p的坐标值和每个节点的...

  • 574545456465

    456 ‘ ;p'lk'km’;‘k’;k/.

  • Leetcode力扣算法题目——组合

    题目 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 PHP代码实现 array_...

网友评论

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

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