生信技巧第06课-你可能需要学一点编程
期更新列表:
不知不觉就第6讲了,本次视频还是有干货的,毕竟是某人花了50块钱找我给他录制的,你看完就相当于赚了50块钱哦!
理论上我推荐大家一定学会R语言的,本次视频我虽然讲解的是perl,但实际上是在讲解编程思维,请仔细听
本期视频,//v.qq.com/x/page/q0666fu082m.html (复制这个链接在浏览器打开观看,当然,腾讯视频会给你看一分钟广告,无解!)
视频里面讲解为什么学习编程
一个例子
编程思维的获得
perl -alne '{if($F[2] eq "transcript" ){/transcript_id\s\"(.*?)\"/;$transcript_id=$1; /FPKM\s\"(.*?)\"/;$fpkm=$1; /cov\s\"(.*?)\"/;$cov=$1; print "$transcript_id\t$fpkm\t$cov" } }' A172D2_1.gtf|head
perl -alne '{if($F[2] eq "transcript" ){/transcript_id\s\"(.*?)\"/;$transcript_id=$1; /FPKM\s\"(.*?)\"/;$fpkm=$1; /cov\s\"(.*?)\"/;$cov=$1; } else{$c{$transcript_id}++;$l{$transcript_id}+=(abs($F[4]-$F[3])+1)} } END{print "$_\t$c{$_}\t$l{$_}" foreach keys %c}' A172D2_1.gtf|grep ENST00000446136.1
perl -alne '{if($F[2] eq "transcript" ){/transcript_id\s\"(.*?)\"/;$transcript_id=$1; /FPKM\s\"(.*?)\"/;$fpkm=$1; /cov\s\"(.*?)\"/;$cov=$1; $f{$transcript_id}=$fpkm;$c{$transcript_id}=$cov } else{$c{$transcript_id}++;$l{$transcript_id}+=(abs($F[4]-$F[3])+1)} } END{print "$_\t$c{$_}\t$l{$_}\t$f{$_}\t$c{$_}" foreach keys %c}' A172D2_1.gtf|grep ENST00000446136.1
perl -alne '{if($F[2] eq "transcript" ){/transcript_id\s\"(.*?)\"/;$transcript_id=$1; /FPKM\s\"(.*?)\"/;$fpkm=$1; /cov\s\"(.*?)\"/;$cov=$1; $f{$transcript_id}=$fpkm;$c{$transcript_id}=$cov } else{$counts{$transcript_id}++;$l{$transcript_id}+=(abs($F[4]-$F[3])+1)} } END{foreach (keys %c) {next if $f{$_} <1;next if $c{$_} <3; next if $counts{$_} <2;next if $l{$_} <200;print "$_\t$counts{$_}\t$l{$_}\t$f{$_}\t$c{$_}" }}' A172D2_1.gtf >need.transcripts
完美解决问题
读取文件
默认变量,关键词
按列拆分
判断语句
循环语句
①FPKM>=1;
②cov >=3;
③exon>=2;
④exon总长度>=200
解析需求
熟悉语法
不停的调试
学什么语言
awk 建议了解基础
perl 建议不学
python 强烈推荐 (小学生都会)
java 等其它可以了解(方便转行)