单行命令

利用plink进行数据预处理(修剪SNP集)

!!!注意:如果要同时使用,正确做法是先SNP(geno)后样本(mind)
SNP缺失率多少用不了 - CSDN

1.缺失率 --geno  0.05
删除基因型缺失率大于5%的SNPs,大于95%的个体都具有的变异位点才保留
就是缺失,没测出来
2.最小等位基因频率 --maf  0.01
将次要等位基因频率maf < 0.01的SNP筛选出来并过滤掉,仅包括MAF >= 0.01的SNP,默认值为0.01(防止假阳性)
(1.2在近交系数、NJ树、iqtree、iBS、iBD、ML树、Fst、Roh前用,最基本的过滤)
3.LD过滤 --indep-pairwise  50 25 0.2
窗宽50、删除LD大于0.2的SNP对中一个、每次将窗口向前移动25个SNP
(3只在PCA 、ADMIXTURE前用)
芯片数据不需要ld过滤!!!!!
plink过滤.png
根据id提取vcf(提取重测序数据不会有日志等啰嗦行)
nohup /home/software/bcftools/bcftools view -S id.txt test.vcf.gz -Ov > sampleid.vcf &
# id.txt为个体名
根据染色体提取vcf
nohup /home/software/vcftools/src/cpp/vcftools --gzvcf test.vcf.gz  --recode --recode-INFO-all --chr n --out out.vcf &
nohup bcftools view -r 25,27,28 test.vcf.gz -o ./test_chr252728.vcf.recode.gz -O z &
根据位置提取vcf(pos文件含染色体号和位置)
nohup /home/software/vcftools/src/cpp/vcftools --gzvcf test.vcf.gz --positions ./position.txt --recode --out test.vcf.gz-position &
根据区间提取vcf
nohup /home/software/bcftools/bcftools view test.vcf -Oz -o test.vcf.gz &
nohup /home/software/bcftools/bcftools index test.vcf.gz &
nohup /home/software/bcftools/bcftools filter test.vcf.gz --regions 18:14700001-14800001 > 14700001-14800001.vcf &
提取vcf文件中的个体list (不会影响fid、iid)
nohup /home/software/bcftools/bcftools query -l test.vcf > test-id.txt &
格式转化(不会影响fid、iid)
### vcf to map(此步骤只适合染色体号为123格式,如为NC,则map文件第一列为未知,即0)
nohup /home/software/vcftools/src/cpp/vcftools   --vcf test.vcf --plink --out test & 
### map to bed
nohup /home/software/plink --allow-extra-chr --chr-set 29 --file test --make-bed --out test &
### bed to vcf 
nohup /home/software/plink  --allow-extra-chr --chr-set 29 --bfile test --recode vcf-iid --out test &
### vcf to map (重测序数据使用)
nohup /home/software/plink --vcf test.vcf --recode --allow-extra-chr --chr-set 30 --out test &
### map to vcf  (用于beagle)
nohup plink --allow-extra-chr --chr-set 30 --file test --recode vcf-iid --out test &
去除多等位基因,indel
nohup /home/software/bcftools/bcftools view -m 2 -M 2 --type "snps"  test.vcf.gz -O z -o test.record.snps.vcf.gz &
nohup /home/software/vcftools/src/cpp/vcftools --vcf   test.vcf --remove-indels (--max-missing 0.9 --maf 0.03) --min-alleles 2 --max-alleles 2 --recode --recode-INFO-all --out test.miss.snp.recode.vcf &
去除0号染色体
nohup /home/software/vcftools/src/cpp/vcftools --vcf test.vcf --recode --recode-INFO-all --not-chr 0 --out test_noinclude0 &
过滤掉indel,只保留snp:
nohup /home/software/vcftools/src/cpp/vcftools --remove-indels --recode --recode-INFO-all --vcf test.vcf --stdout > test.snp.vcf &
过滤掉snp,只保留indel:
nohup /home/software/vcftools/src/cpp/vcftools --keep-only-indels  --recode --recode-INFO-all --vcf test.vcf --stdout > test.indel.vcf &
统计indel碱基数量:
bcftools stat xxx.vcf>xxx.vcf.stat
在vcf文件中删除一个个体
nohup /home/software/vcftools/src/cpp/vcftools --vcf test.vcf --recode --recode-INFO-all --stdout  --remove-indv  XXX > out.vcf & 
缺失率统计
## 按照位点统计
nohup /home/software/vcftools/src/cpp/vcftools --gzvcf test.vcf.gz --missing-site --out test.SNP_missing &
## 按照个体统计
nohup /home/software/vcftools/src/cpp/vcftools --vcf  test.vcf   --missing-indv --out test.SNP_missing &
解压缩保留源文件
nohup gunzip -c test.vcf.gz > test.vcf &
统计vcf压缩文件共有行
gzip -dc test.vcf.gz|wc -l
循环更改脚本(例如将0改为2,$6)
sed -i 's/  $0/$2,$6/g' test.sh (-i 为在文件中修改)
sort排序与去重复
# 以第2列来排序,n为将文本作为数值解释
sort   -n -k 2   test.bed > test.sorted.bed
# 去重复,去除文件中相同的行
sort  -n -k 2 -u  test.bed > test-u.bed
# -t  $'/t'指定tab为分隔符,n为将第一列按照数值排列(1,2,3),g为按照科学计数法排列(1,2,3)  
sort -t  $'/t' -k 1n,1 -k 3g,3 test.bed > test.sorted.bed
sort -k 1,1d -k 2,2n     第一列按照字符排序(1,10,11,12),第二列按照数字排序)
sort -k 2 -g test.bed > test.sorted.bed(第二列按照数字大小排序)
sort更改空格与tab键
sed -i 's/\t/ /g'  test.bim  #去除vcf文件中的\t键
sed -i 's/ /\t/g'  test.bim
去除以#号开头的注释行
sed -i '/^#/d' id.txt 
去除文件前36行
sed -i '1,36d'  id.txt 
去除重复
#重复行应为相邻状态
uniq  test.txt > test-u.txt
vi打开vcf文件后/寻找的
/find
excel
=VLOOKUP(A1,excelA1:D1,4,0) 取对应值
=LEFT(A1,2) 取A1的左侧2列
=RIGHT(A1,2) 取A1的右侧2列
=ROUNDDOWN(A1,0)去除小数点
=LOOKUP(9^9,B2:E2) 取行最后一列数据
=LEN(A1)统计单元格字数
=IF(MOD(A1,3)=0,A1,"")  删选3倍数
=IF(COUNTIF(J$1:J1,J1)=1,COUNTIF(J:J,J1),"") 统计某列某单元格出现得次数
=--("0 "&M2) 将/分隔的数值用小数的形式表现
去除多余染色体
nohup /home/software/vcftools/src/cpp/vcftools --vcf test.vcf --recode --recode-INFO-all --not-chr 0 --out test_noinclude0 &
去除空白行
sed '/^$/d' test.txt > test-kongbai.txt 
excel表格中将1月1日替换为1/1

1.将所有数据改为文本格式
2.点击替换


替换.png

3.44197 的格式选择文本
1|1的格式不设定
4.全部替换即可

linux寻找共同点
sort 1.txt > 1.sort.txt
sort 2.txt > 2.sort.txt
comm -12 1.sort.txt 2.sort.txt > out.txt 
提取出文件2中与文件1中的相同行
grep -f 1.txt 2.txt  
根据第一列提取对应染色体
awk '{if($1==18) print $0}'  test.txt > chr18.test.txt
芯片数据与重测序合并删除列
sed -i 's/ /\t/g'   banbenposition.txt tab键
sed -e "s/^M//" banbenposition.txt > banbenposition_huiche.txt 去除回车符
cat  Data_position.recode.vcf| awk -F " " '{$1=null;print}' > test_1.vcf
cat  test_1.vcf| awk -F " " '{$1=null;print}' > test_12.vcf
paste -d "" banbenposition_huiche.txt test_12.vcf >  Data_position.recode_banben.vcf
将已经替换染色体的前两列v1.0版本与去除前两列信息的v3.1版本vcf进行合并。
sed -i 's/ /\t/g'    Data_position.recode_banben.vcf
去除第7列为0的行
首先要排序
sort -n -k 7 test.txt > test.sort.txt &
然后删除
cat test.sort.txt |awk '{if($7!="")print $0}' > test.sort1.txt
寻找重合的区间

bedtools | 快速筛选重合区间 - 知乎 (zhihu.com)

nohup /home/software/bedtools2/bin/bedtools intersect -a a.txt -b b.txt -wao > ab.window.ihs.intersect.bed &
# 打开 a.txt
1       2419435 2419436
1       2419463 2419464
1       2419517 2419518
1       2419597 2419598
1       2419765 2419766
1       2420278 2420279
1       2420283 2420284
1       2420335 2420336
# 打开 b.txt
1       2100001 2200001
1       2300001 2400001
1       2400001 2500001
1       2500001 2600001
1       2600001 2700001
1       2700001 2800001
1       5200001 5300001
1       6600001 6700001
1       7600001 7700001
# 打开 ab.window.ihs.intersect.bed 
1       2798804 2798805  1       2700001 2800001 1
1       2799204 2799205  1       2700001 2800001 1
1       2799911 2799912  1       2700001 2800001 1
1       2800978 2800979  .       -1      -1      0
1       2801066 2801067  .       -1      -1      0
1       2801680 2801681  .       -1      -1      0
1       2801738 2801739  .       -1      -1      0
1       2801784 2801785  .       -1      -1      0
# 打开结果文件,前四列代表文件一里的区间,第5至8列代表文件一与文件二重合的区间,第九列代表重合的长度
# 文件一与文件二的重合长度为1
# .代表文件一中的区间d在文件二中未找到重合区间
随后提取出第7列为1的行,首先排序
$ nohup sort -n -k 7 ab.window.ihs.intersect.bed> ab.window.ihs.intersect.sort.txt &
$ nohup cat ab.window.ihs.intersect.sort.txt |awk '{if($7!="0")print $0}' > ab.window.ihs.intersect.sort1.txt &
查看ped文件有多少列
cat filename | awk  '{print NF}' 
cat filename | awk  -F '{print NF}' (非tab键文件使用-F)
传数据
scp   /XXX     sh@202.198.75.117:/XXX
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容