下载地址:ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/windowmasker/

在这个目录下

其中windowmasker 为linux 平台的可执行文件

windowmasker 只需要根据基因组序列本身,就可以识别并标记高重复序列和低复杂度序列,

其有两种工作模式, 第一种为WinMasker模式, 用于识别重复序列;第二种为DUST模式,用于识别低复杂度序列;

windowsmasker 的处理过程分为两步:

第一步先生成一个count文件,通过指定 -mk_counts 开启,在这一步中会进行4次处理,其中前3步是可选的,

  pass1 检查输入文件中的duplicate reads, 通过指定-checkdup true 开启;

  pass2计算基因组总的碱基数;

  pass3 计算阈值;

  pass4 生成 count 文件;

count文件的格式有4种可选,分别是ascii,   binary, oascii, obinary ,  默认为ascii, 通过-sformat 参数指定, ascii 格式是文本格式,是人类可读的;binary 格式是二进制格式,在第二步中load 的更快; 而oascii 和 obinary 是通过哈希优化过的结构, 能够提升2.5-4倍的运行速度,同时消耗的内存更多,他们二者之间的区别在于,oascii 人类可读, obinarty 不可读;

备注: windowmasker 提供了一个count 文件的转换功能, 通过指定 -convert 开启, -in 指定原始的 count 文件, -out  指定生成的新的count 文件, -sformat 指定新生成文件的格式, -smen 指定生成文件时所用的最大内存, 只有输出文件格式为oascii 和 obinary 时才起作用, 其值为正整数, 默认为512, 单位数M, 即512M的内存, 当这个值不能满足要求时, 会报错;

第二步根据count文件标记输入序列中的重复序列, 通过指定-ustat 参数开启,该参数的值是第一步生成的count 文件;在这一步中也可以加入-dust 使用DUST 模式同时标记低复杂度序列,只有同时为重复序列和低复杂度序列的 区域被标记。 这一步运行完后生成的文件有两种格式,分别是interval和fasta, 默认为interval, 通过-outfmt 格式指定,interval 的格式输出内容为标记的序列的区间, 而fasta 格式用小写字母标记序列;

准备输入文件: 以人类hg38 的Y染色体为例:

wget http://ftp.ncbi.nih.gov/genomes/H_sapiens/CHR_Y/hs_ref_GRCh38.p2_chrY.fa.gz
gunzip hs_ref_GRCh38.p2_chrY.fa.gz
sed 's/>.*/>Y/' hs_ref_GRCh38.p2_chrY.fa > hg38.chrY.fa

查看fasat 文件内容:

head hg38.chrY.fa
>Y
CTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTCTGAAAGTGGACCTATCAGCAGGATGTGGGTG
GGAGCAGATTAGAGAATAAAAGCAGACTGCCTGAGCCAGCAGTGGCAACCCAATGGGGTCCCTTTCCATA
CTGTGGAAGCTTCGTTCTTTCACTCTTTGCAATAAATCTTGCTATTGCTCACTCTTTGGGTCCACACTGC
CTTTATGAGCTGTGACACTCACCGCAAAGGTCTGCAGCTTCACTCCTGAGCCAGTGAGACCACAACCCCA
CCAGAAAGAAGAAACTCAGAACACATCTGAACATCAGAAGAAACAAACTCCGGACGCGCCACCTTTAAGA
ACTGTAACACTCACCGCGAGGTTCCGCGTCTTCATTCTTGAAGTCAGTGAGACCAAGAACCCACCAATTC
CAGACACACTAGGACCCTGAGACAACCCCTAGAAGAGCACCTGGTTGATAACCCAGTTCCCATCTGGGAT
TTAGGGGACCTGGACAGCCCGGAAAATGAGCTCCTCATCTCTAACCCAGTTCCCCTGTGGGGATTTAGGG
GACCAGGGACAGCCCGTTGCATGAGCCCCTGGACTCTAACCCAGTTCCCTTCTGGAATTTAGGGGCCCTG

运行第一步,得到count文件,输出格式采用obinary

windowmasker -mk_counts -in hg38.chrY.fa -infmt fasta -out chrY.count -sformat obinary
computing the genome length
pass 1
pass 2
optimizing the data structure

运行第二步,标记重复序列

1) 生成interval 格式的输出

windowmasker -ustat chrY.count -in hg38.chrY.fa -out hg38.chrY.masked -outfmt interval
head hg38.chrY.masked
>Y
-
-
-
-
-
-
-
-
-

2) 生成fasta 格式的输出

windowmasker -ustat chrY.count -in hg38.chrY.fa -out hg38.chrY.fasta.masked -outfmt fasta
head hg38.chrY.fasta.masked
>Y
ctaaccctaaccctaaccctaaccctaaccctaaccctctGAAAGTGGACCTatcagcag
gatgtgggtgggAGCAGATTAGAGAATAAAAGCAGACTGCCTGAGCCAGCAGTGGCAACC
CAATGGGGTCCCTTTCCATACTGTGGAAGCTTCGTTCTTTCACTCTTtgcaataaatctt
gctattgctcactctttgggtccACACTGCCTTTATGAGCTGTGACACTCACcgcaaagg
tctgcagcttcactcctgagccAGTGAGACCACAACCCcaccagaaagaagaaactcaGA
ACACATCTGAACATCAGAAGAAACAAACTCCGGACGCGCCACCTttaagaactgtaacac
tcaccgcgaGGTTCCGCgtcttcattcttgaagtcagtgagaccaagaacccaccaaTTC
CAGACACACTAGGACCCTGAGACAACCCCTAGAAGAGCACCTGGTTGATAACCCAGTTCC
CATCTGGGATTTAGGGGACCTGGACAGCCCGGAAAATGAGCTCCTCATCTCTAACCCAGT

利用convert进行格式转换

windowmasker -convert -in chrY.count -out chrY.count.ascii -sformat ascii
reading counts...
converting counts...
converting parameters...
final processing...

  

windowmasker 标记基因组中的重复序列和低复杂度序列的更多相关文章

  1. 解读人:刘佳维,Spectral Clustering Improves Label-Free Quantification of Low-Abundant Proteins(谱图聚类改善了低丰度蛋白的无标记定量)

    发表时间:(2019年4月) IF:3.95 单位: 维也纳医科大学: 欧洲生物信息研究所(EMBL-EBI): 分子病理学研究所: 奥地利科学院分子生物技术研究所: Gregor Mendel分子植 ...

  2. cocoapods安装以及使用,安装过程中ruby版本过低

    cocoapods安装以及使用,安装过程中ruby版本过低 字数473 阅读103 评论1 喜欢2 1.打开终端 2.移除现有 Ruby 默认源 $ gem sources --remove http ...

  3. C语言实现二叉树中统计叶子结点的个数&度为1&度为2的结点个数

    算法思想 统计二叉树中叶子结点的个数和度为1.度为2的结点个数,因此可以参照二叉树三种遍历算法(先序.中序.后序)中的任何一种去完成,只需将访问操作具体变为判断是否为叶子结点和度为1.度为2的结点及统 ...

  4. 统计无向图中三角形的个数,复杂度m*sqrt(m).

    统计无向图中三角形的个数,复杂度m*sqrt(m). #include<stdio.h> #include<vector> #include<set> #inclu ...

  5. C# 中奇妙的函数–6. 五个序列聚合运算(Sum, Average, Min, Max,Aggregate)

    今天,我们将着眼于五个用于序列的聚合运算.很多时候当我们在对序列进行操作时,我们想要做基于这些序列执行某种汇总然后,计算结果. Enumerable 静态类的LINQ扩展方法可以做到这一点 .就像之前 ...

  6. 如何将Matlab中“模糊控制设计器”的隶属度函数导出图片(figure)

    如何将Matlab中"模糊控制设计器"的隶属度函数导出图片(figure)详情参考matlab官方帮助手册:plotmf()函数https://www.mathworks.com/ ...

  7. jQ1.5中的事件系统(低版本的事件系统)

    jQ的一个个版本事系统都在修正着bug和不断优化, 而且看了事件系统对事件的兼容更加熟悉, 更加了解jQ内部的事件机制. 因为jQ对事件系统引入了事件命名空间,事件的代理, 事件的手动触发,事件描述等 ...

  8. UI设计中的高保真和低保真

    低保真一般用Axure Rp产出,高保真分两种,带交互的或不带交互的.不带交互的高保真直接根据低保真用PS产出即可.带交互的,需要 PS产出后,再切图,再使用Axure RP与低保真结合产出高保真. ...

  9. linux系统centOS7下搭建redis集群中ruby版本过低问题的解决方法

    问题描述: 在Centos7中,通过yum安装ruby的版本是2.0.0,但是如果有些应用需要高版本的ruby环境,比如2.2,2.3,2.4... 那就有点麻烦了,譬如:我准备使用redis官方给的 ...

随机推荐

  1. mysql格式化日期

    mysql查询记录如果有时间戳字段时,查看结果不方便,不能即时看到时间戳代表的含义,现提供mysql格式换时间函数,可以方便的看到格式化后的时间. 1. DATE_FORMAT() 函数用于以不同的格 ...

  2. unity3d 通过添加rigidBody来指明物体是动态的,以避免cache开销

    unity3d 通过添加rigidBody来指明物体是动态的,以避免cache开销. 如果不添加rigidBody,则unity会认为它是静态的,会对物理计算进行cache,但如果此物体实际上tran ...

  3. Oracle删除重复记录只保留一条数据的几种方法

    1. 问题描述 BBSCOMMENT表为BBSDETAIL的从表,记录商户评价信息.因为数据倒腾来倒腾去的,有很多重复数据.表结构如下: COMMENT_ID NOT NULL NUMBER --主键 ...

  4. Linux minilogd占用内存过高及开机启动项修改

    minilogd: 今天发现一台服务起的内存正常占用应该在70左右,但是内存占用却到了90%以上,用top查看发现minilogd占用了30%左右的内存,是不符合预期的,查看开机启动项并无minilo ...

  5. javascript高级:原型与继承

    原型继承的本质就是一条原型链,对象会沿着这条链,访问链里的方法属性. 对象的__proto__属性就是用于访问它的原型链的上一层: 考虑以下对象: 1. 所有对象的原型: Object.prototy ...

  6. C++内联函数详解

    1.函数调用原理 "编译过程的最终产品是可执行程序--由一组机器语言指令组成.运行程序时,操作系统将这些指令载入计算机内存中,因此每条指令都有特定的内存地址.计算机随后将逐步执行这些指令.有 ...

  7. 简易web项目jdbcUtil

    jdbc.username=root jdbc.password=root jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://mini1: ...

  8. centos 7 上配置mysql 开机启动详解

    之前多次在centos7环境下配置mysql开机自启动出现了错误.现留下篇文章已做记录 一.centos7与centos6相比有什么不同: 1 在centos7中服务不在是用service这个命令来启 ...

  9. Linux kernel 找到gpio被占用位置

    一开始是通过断点 printk看哪里申请这个GPIO正常哪里不正常,发现这种方法太繁琐. 经过同事提醒,直接在 drivers/gpio/gpiolib.c 里面的 gpio_request 里面添加 ...

  10. pthread_join直接决定资源是否能够及时释放

    /*http://hankjin.blog.163.com/blog/static/33731937201072675024100/ pthread的内存泄露 # cc thread.c -lpthr ...