作者:龙炎
联系邮箱:[email protected]
时间:2016/07/25
一.ABySS的功能
分别为: 组装paired-end库(paired-endlibrary),
组装多个库(multiplelibraries),
组装长距离的mate-pair库(Long-distance mate-pair libraries),
Rescaffolding with long sequences。
1.组装paired-end库(paired-end library)
$abyss-pename=ecoli k=64 in='reads1.fa reads2.fa'
参数的说明:
in: 输入文件来读,格式可能为FASTA,FASTQ, qseq, export, SRA, SAM or BAM或者打包为gz, bz2, xz, tar文件
name: 组装的contigs将会储存在文件${name}-contigs.fa中
k:简单来说就是两条序列重叠区段的碱基数,kmer越小,越容易将不同的reads连接起来,但是拼出来的contig就会相对比较碎,kmer越大,容易将测序等引入的错误被认为不匹配,从而人为的摒弃掉了相对较多的数据,这样得到的contig就较少
C:表示运行前换目录
n:表示一个contig含有的reads的最小个数,推荐设为10
2. 组装多个库(multiple libraries):
$abyss-pe k=64name=ecoli lib='pe200 pe500' pe200='pe200_1.fa pe200_2.fa' pe500='pe500_1.fape500_2.fa' se='se1.fa se2.fa'
组装库中的文件说明:
pe200库有文件pe200_1.fa和 pe200_2.fa
pe500库有文件pe500_1.fa和 pe500_2.fa
没有mates的reads放在se文件中,single-end的reads有文件se1.fa和se2.fa
3. 组装长距离的mate-pair库(Long-distance mate-pair libraries)
长距离的mate-pair 库可用来支架的组装,mate-pair的库的名字用mp表示
$abyss-pe k=64name=ecoli lib='pe1 pe2' mp='mp1 mp2' pe1='pe1_1.fa pe1_2.fa' pe2='pe2_1.fape2_2.fa' mp1='mp1_1.fa mp1_2.fa' mp2='mp2_1.fa mp2_2.fa'
4.Rescaffolding with long sequences
$abyss-pe k=64name=ecoli lib='pe1 pe2' mp='mp1 mp2' long=long1 \
pe1='pe1_1.fape1_2.fa' pe2='pe2_1.fa pe2_2.fa' \
mp1='mp1_1.famp1_2.fa' mp2='mp2_1.fa mp2_2.fa' \
long1=long1.fa
二.K的取值影响运行的结果,可以对K优化:
实例:
使用的数据reads1.fastq和reads2.fastq可由下面命令获取:
$wget http://www.bcgsc.ca/platform/bioinfo/software/abyss/releases/1.3.4/test-data.tar.gz
$export k
$for k in {20..25};do
> mkdir k$k
> abyss-pe–C k$k name=ecoli in=’../test-data/reads1.fastq ../test-data/reads2.fastq’
>done
$abyss-fack*/ecoli-contigs.fa
屏幕输出如下:
对结果的评判标准有N80, N50, N20
以N80为标准:k=20更优
以N50为标准:k=21更优
以N20为标准:k=23更优
二.并行运行
ABySS可直接调用这个命令:
$abyss-pe np=8
四.在集群系统下运行ABySS的实例
在SGE作业调度系统下提交作业
实例1:
to submit an array of jobs to assemble every odd value of k
between 51 and 63 using 64 processes for eachjob:
$mkdir k{51..63..2}
$qsub –N ecoli–pe openmpi 64 –t 51-63:2 ‘abyss-pe –C k$SGE_TASK_ID in=/data/reads.fa’
-N ecoli指定作业的名字
-pe openmpi 64表示在openmpi的环境下并行运行64个进程
在PBS作业调度系统下提交作业
实例1:
在中山大学南方1号集群系统上,用单节点12个进程运行ABySS,脚本文件test.sh内容如下:
#!/bin/bash
#PBS -N abyss_run
### 单节点12个进程
#PBS -l nodes=1:ppn=12
#PBS -j oe
#PBS -l walltime=00:00:30
cd $PBS_O_WORKDIR
NSLOTS=`cat ${PBS_NODEFILE} | wc -l`
source /public/scripts/openmpi143-gnu.sh
abyss-pe np=12 k=33 name=test in='/parastor/users/lnszyd/longyan/test-data-abyss/reads1.fastq /parastor/users/lnszyd/longyan/test-data-abyss/reads2.fastq'
提交作业
$qsub test.sh
实例2:
在中山大学南方1号集群系统上,用2个节点,每个节点12个进程,共24个进程运行ABySS,为了在多个节点上运行,必须创建一个hostfile文件用于分配节点,脚本文件test2.sh内容如下
#!/bin/bash
#PBS -N abyss_run
### 使用2个节点,共24个进程。
#PBS -lnodes=2:ppn=12
#PBS -j oe
#PBS -lwalltime=00:00:30
cd $PBS_O_WORKDIR
source/public/scripts/openmpi143-gnu.sh
abyss-pempirun="mpirun -x PATH -hostfile ${PWD}/myhostfile.txt" k=31 np=24name=C2 in=' /parastor/users/lnszyd/longyan/test-data-abyss/reads1.fastq /parastor/users/lnszyd/longyan/test-data-abyss/reads2.fastq'
myhostfile.txt内容:
c0 slots=12
c1 slots=12
提交:
$qsub test2.sh
实例3:
在中山大学南方1号集群系统上,用2个节点,每个节点12个进程,共24个进程运行ABySS,自动分配节点,脚本文件test3.sh内容如下:
#!/bin/bash
#PBS -N abyss_run
#PBS -l nodes=2:ppn=12
#PBS -j oe
#PBS -l walltime=00:00:30
#PBS -q compsci
cd $PBS_O_WORKDIR
source/public/scripts/openmpi143-gnu.sh
abyss-pempirun="mpirun -x PATH" k=31 np=24 name=C in='/parastor/users/lnszyd/longyan/test-data-abyss/reads1.fastq /parastor/users/lnszyd/longyan/test-data-abyss/reads2.fastq'
不需要写hostfile文件,提交脚本:
$qsub test3.sh
名词附录:
Reads:高通量测序平台产生的序列就称为reads
Contig:拼接软件基于reads之间的overlap区,拼接获得的序列称为Contig(重叠群)
Scaffold:基因组de novo测序,通过reads拼接获得Contigs后,往往还需要构建454 Paired-end库或Illumina Mate-pair库,以获得一定大小片段(如3Kb、6Kb、10Kb、20Kb)两端的序列。基于这些序列,可以确定一些Contig之间的顺序关系,这些先后顺序已知的Contigs组成Scaffold
Contig N50:Reads拼接后会获得一些不同长度的Contigs。将所有的Contig长度相加,能获得一个Contig总长度。然后将所有的Contigs按照从长到短进行排序,如获得Contig 1,Contig 2,Contig 3...………Contig 25。将Contig按照这个顺序依次相加,当相加的长度达到Contig总长度的一半时,最后一个加上的Contig长度即为Contig N50。举例:Contig 1+Contig 2+ Contig 3 +Contig 4=Contig总长度*1/2时,Contig 4的长度即为ContigN50。Contig N50可以作为基因组拼接的结果好坏的一个判断标准。
Contig N80:Reads拼接后会获得一些不同长度的Contigs。将所有的Contig长度相加,能获得一个Contig总长度。然后将所有的Contigs按照从长到短进行排序,如获得Contig 1,Contig 2,Contig 3...………Contig 25。将Contig按照这个顺序依次相加,当相加的长度达到Contig总长度的80%时,最后一个加上的Contig长度即为Contig N80。
Contig N20:Reads拼接后会获得一些不同长度的Contigs。将所有的Contig长度相加,能获得一个Contig总长度。然后将所有的Contigs按照从长到短进行排序,如获得Contig 1,Contig 2,Contig 3...………Contig 25。将Contig按照这个顺序依次相加,当相加的长度达到Contig总长度的20%时,最后一个加上的Contig长度即为Contig N80。
Scaffold N50:Scaffold N50与Contig N50的定义类似。Contigs拼接组装获得一些不同长度的Scaffolds。将所有的Scaffold长度相加,能获得一个Scaffold总长度。然后将所有的Scaffolds按照从长到短进行排序,如获得Scaffold 1,Scaffold 2,Scaffold 3...………Scaffold 25。将Scaffold按照这个顺序依次相加,当相加的长度达到Scaffold总长度的一半时,最后一个加上的Scaffold长度即为Scaffold N50。举例:Scaffold 1+Scaffold 2+ Scaffold 3 +Scaffold 4 +Scaffold 5=Scaffold总长度*1/2时,Scaffold 5的长度即为ScaffoldN50。Scaffold N50可以作为基因组拼接的结果好坏的一个判断标准
单端测序(Single-read)首先将DNA样本进行片段化处理形成200-500bp的片段,引物序列连接到DNA片段的一端,然后末端加上接头,将片段固定在flow cell上生成DNA簇,上机测序单端读取序列
Paired-end方法是指在构建待测DNA文库时在两端的接头上都加上测序引物结合位点,在第一轮测序完成后,去除第一轮测序的模板链,用对读测序模块(Paired-End Module)引导互补链在原位置再生和扩增,以达到第二轮测序所用的模板量,进行第二轮互补链的合成测序
Mate-pair文库制备旨在生成一些短的DNA片段,这些片段包含基因组中较大跨度(2-10 kb)片段两端的序列,更具体地说:首先将基因组DNA随机打断到特定大小(2-10 kb范围可选);然后经末端修复,生物素标记和环化等实验步骤后,再把环化后的DNA分子打断成400-600 bp的片段并通过带有链亲和霉素的磁珠把那些带有生物素标记的片段捕获。这些捕获的片段再经末端修饰和加上特定接头后建成mate-pair文库,然后上机测序
文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib
文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang
文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些
文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器
文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距
文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器
文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn
文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios
文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql
文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...
文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120
文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数