一些常用小脚本记录

记录下小编自己可能用到的小脚本

(1)fasta转phylip格式

用法:python fa2phy.py seq.fasta seq.phy

import sys
file = open(sys.argv[1],"r")
out = open(sys.argv[2],"w")
for line in file:
    line = line.strip()
    if line.startswith(">"):
        out.write(line[1:] + "\t")
    else:
        out.write(line + "\n")       
file.close()
out.close()

(2)fastq转fasta;根据ID提取fasta中的序列(需安装seqtk软件)

seqtk seq -a seq.fastq >seq.fasta
seqtk subseq seq.fasta ID.list >need.fasta

(3)从gff3文件中提取一系列需要的gff3信息

**用法:sh get-gff3.sh ID.list **

while read line
do
    `grep -w $line EVM.final.all.transcripts.gene.gff3 >>EVM.final.all.transcripts.gene.new.gff3`
done<$1

(4)根据某一文件某列ID从另一个文件中提取有该列ID的信息(使用最频繁)

awk 'NR==FNR{a[$1]=$0}NR!=FNR{if(a[$2]){print $0"\t"a[$2]}else{print $0}}'   file1 file2

file1文件如下:

EVM0003758  Cgyptg000001l_1G000010
EVM0027620  Cgyptg000001l_1G000020
EVM0001766  Cgyptg000001l_1G000030
EVM0031262  Cgyptg000001l_1G000040
EVM0027288  Cgyptg000001l_1G000050
EVM0007809  Cgyptg000001l_1G000060
EVM0018470  Cgyptg000001l_1G000070
EVM0030012  Cgyptg000001l_1G000080
EVM0007598  Cgyptg000001l_1G000090
EVM0016935  Cgyptg000001l_1G000100

file2文件如下:

Cgyptg000001l_1G000030
Cgyptg000001l_1G000050
Cgyptg000001l_1G000070
Cgyptg000001l_1G000080

脚本后

Cgyptg000001l_1G000030  EVM0001766  Cgyptg000001l_1G000030
Cgyptg000001l_1G000050  EVM0027288  Cgyptg000001l_1G000050
Cgyptg000001l_1G000070  EVM0018470  Cgyptg000001l_1G000070
Cgyptg000001l_1G000080  EVM0030012  Cgyptg000001l_1G000080

(5)统计一个文件中,每一行各个元素的个数(例如每行可能有A B C D四个元素)

**用法:python count.py file ID.list #ID.list为含有A B C D的文件list

import sys
from collections import Counter
file = open(sys.argv[1],"r")
file2 = open(sys.argv[2],"r")
out = open(sys.argv[3],"w")
for line in file:
    line = line.strip().split("\t")
    cou = Counter(line[2:])
    for line2 in file2:
        line2 = line2.strip()
        if line2 not in cou.keys():
            cou[line2] = "0"
        else:
            pass
    out.write(line[0] + "\t" + str(line[1]) + "\t" + str(cou["A"]) + "\t" + str(cou["B"]) + "\t" + str(cou["C"]) + "\t" + str(cou["D"]) + "\n")
file.close()
file2.close()
out.close()

(6)划窗计算pi跟theta w,分两步,首先vcftools划窗计算pi,然后用awk计算theta w

vcftools --vcf sample_snp.vcf --window-pi 10000 --out samlpe.windowed.pi
tail -n +2 samlpe.windowed.pi | awk -F$'\t' -v popn=5 'BEGIN{for(z=1; z < 2*popn; ++z) w_p+=1/z;}{w=$4/w_p/($3-$2+1); a_w += w; a_pi += $5}END{print a_w/NR, a_pi/NR;}' #这里的 popn为vcf文件中样本个数

(7)提取某fasta文件中某ID的某区间序列,例如提取染色体chr1的100-200位置序列

samtools faidx input.fa chr1:100-200 > chr1.fa

(8)提取vcf文件中某区间的vcf文件,例如提取vcf文件中,染色体Chr01 1-1000bp区间的vcf文件

vcftools --vcf vcf --chr Chr01 --from-bp 1 --to-bp 1000 --recode --out Chr01

(9)PDF、svg转png(需安装有convert)

convert  -resize 3600 -density 300 -quality 600 file.pdf file.png
convert  -resize 3600 -density 300 -quality 600 file.svg file.png

(10)mummer比对

nucmer -t 12 --mum -p ref_seq ref.genome.fa seq.genome.fa #比对
delta-filter -i 90 -l 10000  -r -q ref_seq.delta -1> ref_seq.filter.delta.10k #过滤
mummerplot --png  -p ref_seq.10k ref_seq.filter.delta.10k #作图
mummerplot -p ref_seq.filter.delta.10k -Q ref.ID -R seq.ID --png #按照选中的ID作图
show-coords ref_seq.filter.delta.10k >ref_seq.filter.delta.10k.coords #文件格式化
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容