- 将下面的每一个字符串的两边用双引号框起来,中间还是英文的逗号隔开,比如"FOXQ1","MMP7"....
FOXQ1,MMP7,CLDN1,DPEP1,KIAA1199,KRT23,MMP3,IL8,TESC,COL11A1,LY6G6D,ASCL2,MMP1,CDH3,GDF15,TRIM29,TRIB3,TGFBI,ETV4,SLC6A6,REG1A,CTHRC1,INHBA,CXCL3,COL1A1,LGR5,CEL,MSX2,MMP11,PHLDA1,CHI3L1,CXCL1,C2CD4A,NKD1,SLCO4A1,CLDN2,NFE2L3,FABP6,SLC7A5,PDX1,PSAT1,ACSL6,MTHFD1L,TACSTD2,CXCL5,EPHX4,AZGP1,VSNL1,NEBL,CA9,COL10A1,SERPINB5,SPP1,DACH1,MACC1,C2,UBE2C,FAM3B,PPM1H,MMP12,JUB,ZAK,TNFRSF12A,SRPX2,AXIN2,KLK10,CGREF1,ATP11A,TPX2,KRT6B,SNTB1,ANLN,GZMB,NKD2,ESM1,CXCL2,GTF2IRD1,NEK2,ARID3A,RPS14,C7orf68,RNF43,AGT,SLC35D3,TEAD4,REG3A,HS6ST2,SLC22A3,AHCY,TGIF2,TCF7,GALNT6,CDKN2A,CELSR1,KLK6,BMP7,CDC25B,FAP,FAM176A,SHISA2,PMEPA1,DEFA6,FXYD5,LRP8,HOMER1,TIMP1,PTP4A3,SOX9,TRIP13,MAD2L1,LEF1,PLAU,COL1A2,SCD,MYC,GNG4,DUSP27,CD44,CEP55,EGFL6,LCN2,KIAA1549,SHROOM4,FAM92A1,APOC2,EREEREG,TOP1MT,TOMM34,BUB1
答案
# 1
cat up.gene.txt | sed 's/,/","/g' | awk '{print "\""$0"\""}'
- 从文章中“Identifcation of hub genes and outcome in colon
cancer based on bioinformatics analysis
”找到Upregulated DEGs表内的基因names,复制并保存到服务器上,要求,将基因名一行一行显示,然后输入到string数据库内,寻找关联已经hub gene
FOXQ1, MMP7, CLDN1, DPEP1, KIAA1199, KRT23, MMP3, IL8, TESC, COL11A1, LY6G6D, ASCL2, MMP1, CDH3,
GDF15, TRIM29, TRIB3, TGFBI, ETV4, SLC6A6, REG1A, CTHRC1, INHBA, CXCL3, COL1A1, LGR5, CEL, MSX2,
MMP11, PHLDA1, CHI3L1, CXCL1, C2CD4A, NKD1, SLCO4A1, CLDN2, NFE2L3, FABP6, SLC7A5, PDX1, PSAT1,
ACSL6, MTHFD1L, TACSTD2, CXCL5, EPHX4, AZGP1, VSNL1, NEBL, CA9, COL10A1, SERPINB5, SPP1, DACH1,
MACC1, C2, UBE2C, FAM3B, PPM1H, MMP12, JUB, ZAK, TNFRSF12A, SRPX2, AXIN2, KLK10, CGREF1, ATP11A,
TPX2, KRT6B, SNTB1, ANLN, GZMB, NKD2, ESM1, CXCL2, GTF2IRD1, NEK2, ARID3A, RPS14, C7orf68, RNF43,
AGT, SLC35D3, TEAD4, REG3A, HS6ST2, SLC22A3, AHCY, TGIF2, TCF7, GALNT6, CDKN2A, CELSR1, KLK6, BMP7,
CDC25B, FAP, FAM176A, SHISA2, PMEPA1, DEFA6, FXYD5, LRP8, HOMER1, TIMP1, PTP4A3, SOX9, TRIP13,
MAD2L1, LEF1, PLAU, COL1A2, SCD, MYC, GNG4, DUSP27, CD44, CEP55, EGFL6, LCN2, KIAA1549, SHROOM4,
FAM92A1, APOC2, EREEREG, TOP1MT, TOMM34, BUB1
答案
cat >ttt
# 将上面内容重定向到文件内,保证每行数据都存在!
# 下面每一句代码运行后都可以查看一下wc -l应该是129行
# 1
cat ttt|tr '\n' ' '|sed 's/ //g;s/,/\n/g' |xargs -i echo {}
# 等同于
cat ttt|tr '\n' ' '|sed -e 's/ //g' -e 's/,/\n/g' |awk '{print $0}'
# 2 了解正则表达式规则
cat ttt|tr '\n' ' '|sed -r 's/\s+//g;s/,/\n/g'
# 3 了解正则表达式规则
cat ttt|tr '\n' ' '|sed -r 's/[,]?\s+/\n/g'
3.崔老师好,我现在有一个表格。从第二行起 每一行代表一个位点 , 从第五列起 每两列代表一个样本 例如N58-01-N 和N58-01-X 代表同一个样本的两个数据。 同一个样本中,只要有一个数据大于零,那么保留这个样本 的两个值以及样本位点。
这道题目是济南一位医生提供的,因为我懒得学习awk存取数组或者行列都存的‘字典’等,我直接用了perl
cat tt | perl -ane 'chomp $_;if(/#/){print join("\t",@F),"\n";}else{for($i=0;$i<256;$i++){if($i<4){print $F[$i]."\t";}elsif($F[$i]+$F[$i+1]>0){print "Y\tY\t";$i++;}else{print "N\tN\t";$i++}}print "\n";}'
数据稍后修改后上传
- 有一个文本的id是从fasta格式文本里提出来的,需求是:将第一个文本里的id在第二个fasta的文本里做一个替换,前面都加上h9.1_。
这道题目是2019年05.02号上海站一个老师刘yimeng老师提供的,考的是shell语法和脚本的知识点。很多时候一个写代码的人并不是通过记忆来记住所有不同语言之间的细微区别的,多数时候都是通过尝试或者百度,多次使用来记住区别的。因为谁都不是看了就记住的,而往往都是用到了,区别了才能明白真谛。
$ cat hsp90aa1.1.log
Isoform0006296
Isoform0009439
Isoform0013419
Isoform0010242
cat hsp90aa1.1.log |while read id;do echo "sed -i 's/>$id/>h9.1_$id/' out.fas" >> ./test.sh;done
cat out.fas |grep -E 'Isoform0006296|Isoform0009439|Isoform0013419|Isoform0010242' -n
$ cat test.sh
sed -i 's/>Isoform0006296/>h9.1_Isoform0006296/' out.fas
sed -i 's/>Isoform0009439/>h9.1_Isoform0009439/' out.fas
sed -i 's/>Isoform0013419/>h9.1_Isoform0013419/' out.fas
sed -i 's/>Isoform0010242/>h9.1_Isoform0010242/' out.fas
## 如果你想省事,需要用sed -i的话,务必将out.fas拷贝一份进行操作,因为直接在原文本上修改,可能带来造成修改错误等需要还原的时候的麻烦~
# diff一下确定一下结果
qmcui 00:14:46 ~/trainee2_vip46_hsp
$ diff out.fas /trainee2/vip46/hsp/out.fas
167c167
< >h9.1_Isoform0006296
---
> >Isoform0006296
210c210
< >h9.1_Isoform0009439
---
> >Isoform0009439
346c346
< >h9.1_Isoform0010242
---
> >Isoform0010242
424c424
< >h9.1_Isoform0013419
---
> >Isoform0013419
截图
image.png
网友评论