久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

生信小技巧:實(shí)用的one-liners命令(1)

 微笑如酒 2018-08-22

當(dāng)你處理NGS文本信息時(shí),,相信你不多不少也有遇到過(guò)類(lèi)似的煩惱,,例如不知道如何只提取gene ID的名字,,或者只提取gff file中某一列的某一行,,又或者想自己在每一行中添加一些你想要的信息,。這時(shí)候如果你會(huì)編程,寫(xiě)一個(gè)腳本,,這都不是什么問(wèn)題,。當(dāng)然如果你編程不是很過(guò)關(guān),掌握一些實(shí)用的one-liners命令,,往往會(huì)事半功倍,,幫助你實(shí)現(xiàn)一些簡(jiǎn)單的文本操作,。

本文給大家分享一些實(shí)用的one-liners命令,如果覺(jué)得實(shí)用歡迎收藏與轉(zhuǎn)發(fā),。

基本的awk命令

提取一個(gè)文本中第2,4,和5行,。

awk '{print $2,$4,$5}' input.txt
#對(duì)比cut,awk會(huì)相對(duì)更加好用,。

提取第五列中等于0的所有行:

awk '$5 == '0'' file.txt

提取第五列中不等于0的所有行:

awk '$5 ,!= '0'' file.txt

根據(jù)第二列的字符串來(lái)提取unique的文本內(nèi)容,即去重(只提取第一個(gè)unique字符串的那一行)

awk '!arr[$2]++' file.txt
#類(lèi)似sort -u,,不過(guò) 可以精準(zhǔn)到你想以那一行的字符串來(lái)進(jìn)行去重復(fù)

提取出第三列大于第五列的行數(shù):

awk '$3>$5' file.txt

##當(dāng)然也可以提取出大于每個(gè)值得行,,可以用于提取大于某個(gè)長(zhǎng)度的gene的那一行。
awk '$3> 500' file.txt

求第一列的和:

awk '{sum+=$1} END {print sum}' file.txt
#可用于計(jì)算基因長(zhǎng)度的總和等

求第二列數(shù)值的平均值,,

awk '{x+=$2}END{print x/NR}' file.txt
#可以用來(lái)求基因長(zhǎng)度平均值

基本的sed命令

把文件中所有的foo替代成bar

sed 's/foo/bar/g' file.txt

去除文件中開(kāi)頭的空格或者tab字符:

sed 's/^[ \t]*//' file.txt

去除文件中結(jié)尾的空格或者tab字符:

sed 's/[ \t]*$//' file.txt

同時(shí)去除文件開(kāi)頭與結(jié)尾的空格或者tab字符:

sed 's/^[ \t]*//;s/[ \t]*$//' file.txt

刪除文本中的空白行

sed '/^$/d' file.txt
#有些工具不接受有空白行的輸入文件

刪除文件中行中包含abc的行及其這行以后的所有行:

sed -n '/abc/,$!p' file.txt

生物信息中的awk和sed

提取file.txt中 Chr1 中1MB和2MB的片段之間的行信息,,假設(shè)第一列是Chr信息,第三列是位置信息:

cat file.txt | awk '$1=='1'' | awk '$3>=1000000' | awk '$3<>

統(tǒng)計(jì)fastq文件中基本的參數(shù),,包括總的reads數(shù)目,總的unique reads的數(shù)目(就是不重復(fù)的reads),,這些unique reads的比例,,最過(guò)剩的read的序列及其數(shù)目與占總的reads的比率:

at myfile.fq | awk '((NR-2)%4==0){read=$1;total++;count[read]++}END{for(read in count){if(!max||count[read]>max) {max=count[read];maxRead=read};if(count[read]==1){unique++}};print total,unique,unique*100/total,maxRead,count[maxRead],count[maxRead]*100/total}'
#拿到raw data來(lái)統(tǒng)計(jì)時(shí)候很實(shí)用

將bam格式的文件轉(zhuǎn)化為fastq格式:

samtools view file.bam | awk 'BEGIN {FS='\t'} {print '@' $1 '\n' $10 '\n+\n' $11}' > file.fq

將一個(gè)multi-FASTA 分成多個(gè)的單個(gè)FASTA文件:

awk '/^>/{s=++d'.fa'} {print > s}' multi.fa

將fastq文件轉(zhuǎn)變成fa文件:

sed -n '1~4s/^@/>/p;2~4p' file.fq > file.fa

輸出fasta文件中每一個(gè)序列的header名字與其的長(zhǎng)度

cat file.fa | awk '$0 ~ '>' {print c; c=0;printf substr($0,2,100) '\t'; } $0 !~ '>' {c+=length($0);} END { print c; }'

輸出制定的行數(shù):

#例如20到80行
awk 'NR>=20&&NR<> input.txt

轉(zhuǎn)化 VCF file 成BED file:

sed -e 's/chr//' file.vcf | awk '{OFS='\t'; if (!/^#/){print $1,$2-1,$2,$4'/'$5,'+'}}'

計(jì)算vcf 中 每一個(gè)line的missing樣本數(shù)目:

bcftools query -f '[%GT\t]\n' a.bcf |  awk '{miss=0};{for (x=1; x<>$x=='./.') {miss+=1}};{print miss}' > nmiss.count

根據(jù)reads的名字,提取fastq中的reads:

zcat a.fastq.gz | awk 'BEGIN{RS='@';FS='\n'}; $1~/readsName/{print $2; exit}'

計(jì)算fastq文件中reads 長(zhǎng)度的平均值:

awk 'NR%4==2{sum+=length($0)}END{print sum/(NR/4)}' input.fastq

本次主要講sed 和 awk 兩大神器,,下周會(huì)更新其他實(shí)用的one-liners command,,希望對(duì)大家有幫助,如果大家也有其他實(shí)用的one-liners command也歡迎大家在回復(fù)欄中分享你收藏的command,。

    

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多