【SV分析】02如何使用smartie-sv Calling SV

上一次小编介绍了如何下载物种的contig数据,没看过的小伙伴可以点击以下链接:
https://www.jianshu.com/p/08104688516f

这次小编介绍下如何做Alignment以及SV 谱系分配(lineage assignment)?
第一步: 配置所需程序路径,配置前请确保你的机器上安装了以下软件:

hdf5,bzip,lzmalib,openssl,snakemake1,python,blasr,smartie-sv-master

配置过程:

export HDF5INCLUDEDIR=/path /hdf5/include
export HDF5LIBDIR=/path/hdf5/lib
export LD_LIBRARY_PATH=/path/hdf5/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/path/zlib-1.2.7:/path/bzip2-1.0.6:/path/lzmalib-0.0.1:/path/curl-7.28.1/lib:/path/openssl-1.0.1:$LD_LIBRARY_PATH
export PATH=/path/snakemake/bin:$PATH
export PYTHONPATH=/path/python3.6/lib/python3.6/site-packages:/path/snakemake

第二步:构建基因组索引,在此我们用人类(GRCh38) & 黑猩猩(pantro6)为例

/smartie-sv-master/bin/sawriter panTro6.contig.fasta
/smartie-sv-master/bin/sawriterGCF_000001405.38_GRCh38.p12_genomic.fa

第三步:运行snakefile

# target:hg38 query:pantro6
snakemake -s Snakefile -w 50  -p -k -j 20

Snakefile:


shell.prefix("source config.sh; set-eo pipefail ; ")

configfile: "config.json"

def _get_target_files(wildcards):

   return config["targets"][wildcards.target] 

def _get_query_files(wildcards):

       return config["queries"][wildcards.query] 

rule dummy:

    input: expand("variants/{target}-{query}.svs.bed",target=config["targets"], query=config["queries"])

rule callSVs:

    message: "Calling SVs"

    input  :SAM="mappings/{target}-{query}-aligned.sam",TARGET=_get_target_files, PG=config["install"] +"/bin/printgaps"

    output : "variants/{target}-{query}.svs.bed"

    shell  : """

           cat {input.SAM} | {input.PG} {input.TARGET}variants/{wildcards.target}-{wildcards.query}

     """ 

rule runBlasr:

    message: "Aligning query to target"

    input:  BL=config["install"] + "/bin/blasr",TARGET=_get_target_files, QUERY=_get_query_files

    output: "mappings/{target}-{query}-aligned.sam","unmappings/{target}-{query}-unaligned.fasta"

    shell:   """

              {input.BL} -clipping hard-alignContigs -sam -minMapQV 30 -nproc 6 -minPctIdentity 50 -unaligned{output[1]} {input.QUERY} {input.TARGET} -out {output[0]}

    """

config.json

{
       "install" :"/path /smartie-sv-master",
       "targets" : {
                  "hg38" : "/hg38/GCA_000001405.27_GRCh38.p12_genomic.retain.fasta"
                  },
       "queries" : {
                 "pantro6"   : "/Path/pantro6/panTro6.contig.fasta "
          },
}

config.sh

# this is only if you don't have hdflibrary globally installed
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/net/eichler/vol5/home/mchaisso/software/hdf/lib

以上是如何进行Alignment以及Calling SV,下面介绍下如何做SV assignment?

首先介绍下Assignment原理

Assignment原理

表格中1表示在物种中出现,0表示不出现,1-5表示物种1-5
如果SV1在物种1中出现,且只与物种2中某一个SV(任何一个都可以)重叠,则认为该SV是1,2shared SV。
如果SV1在物种1中出现,且与物种2和3中某一个SV(任何一个都可以)重叠,则认为该SV是1,2,3 shared SV。
表格中的其他lineage分配类似。

注意:

1)后期在分配时只考虑SV有没有重叠,不需要考虑他们的坐标,也不需要合并他们的坐标。
2)后期判断某一个SV在物种中有没有,就看他有没有和物种里的SV重叠,只要有一个重叠,就认为它在该物种中有

1, AssignDeletion缺失

第一步:得到每两两物种之间overlap的SV列表,

只要两个SV重叠度大于50%则认为是同一个SV(这里采用的标准是参照reference【1】里的标准,也可以设置其他的标准)
for i in `ls *del.bed`
do
for j in `ls *del.bed`
do
if[ $i != $j ]
then
bedtools intersect -a $i -b $j -f 0.5 -r -wo >${i%.*}.${j%.*}.common
fi
done
done

第二步:将SV分配到各个分支上去

perl convert5SpeciesSVToLineageSV-v2.pl--allSVList allSVList --commonSVFileMat commonMat-5 --outPrefix out > log

2. Assign insertion插入

首先你需要将SV_end =SV_start + svLen. 生成一个新的SV bed文件,然后参照缺失deletion的做法进行分配。

注:convert5SpeciesSVToLineageSV-v2.pl是小编自写脚本。如有需要,请进QQ群下载,群号:756263353, 文件分享在群文件里面
参考资料:

【1】2018-Science- High-resolution comparative analysis of great apegenomes

欢迎转载,转载请说明出处!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容