组装组参考文档version1 联系客服

发布时间 : 星期一 文章组装组参考文档version1更新完毕开始阅读6320b48f9b89680202d82527

六 基因组的组装版本的EST和BAC评价

1 EST评价

参考/nas/GAG_01A/assembly/hm_Ant/04.evaule/EST/work.sh

2 BAC评价

参考/nas/GAG_01A/assembly/daoshuFF/04.evaule/BAC/work.sh

七 基因组的fosmid-end或bac-endsuper-scaffold

参考/nas/GAG_01A/assembly/daoshuFF/05.super-scaffold/work.sh

八 基因组数据的备份和目录结构

参考附录五

九 附录

数据构建

附录一 filter_data_v1.2 1 程序简介

数据过滤流程,主要包括以下5个步骤:

N太多filter reads with >X percent base is N, set a cutoff, default 10 or polyA

低质量Filter reads with many low quality, set a cutoff , default 40

接头污染Filter adapter contamination. (match length>=10bp, mismatch<=3).

小插入片段Filter reads with small insert size (read1和read2的overlap >=10bp, mismatch <=10%).

重复序列Filter PCR duplicate. ( read1 和read2完全一样才算是duplicate)

程序实现:/nas/GAG_01A/assembly/Database/Assembly/Package/Filter_data/run_filter.pl

2 基本用法:

Usage:run_filter.pl [maxjob, default 10](例子如下) nohup perl /nas/GAG_01A/assembly/Database/Assembly/yanglinfeng/filter_1.2_2/run_filter.pl lane.lst lib.lst 5 &

保存需要处理的fq文件路径,按read1到read2的顺序。 第一行分别是fq路径,read开头需要截掉的碱基数,read末尾需要截掉的碱基数,以及对每一条reads中低质量(BCDEFG)碱基个数的cutoff(默认为40,>=这个值时舍去一对reads)。第二行分别是fq路径,read开头需要截掉的碱基数,read末尾需要截掉的碱基数,以及对应的N含量的cutoff(默认为10,即一条read N含量>=10%则舍去这一对)(格式如下) 090709_I352_FC42CLNAAXX_L4_PHOlcpDAADEAAPE_1.fq 5 10 40 090709_I352_FC42CLNAAXX_L4_PHOlcpDAADEAAPE_2.fq 5 10 20

保存文库插入长度信息。分两列:文库ID以及插入长度。(格式如下) ORYcogDAIDBAAPE 170

(这里当read1+read2的长度+30>插入长度时,Filter reads with small insert size这部将直接跳过,Small Insert %=0。这主要是针对目前测通的lane,+30是考虑到插入长度SD的问题)

[maxjob, default 10] 每次投的任务数,缺省是10。程序通过调用qsub-sge.pl 来投任务。由于程序需要读入原始fq文件以及输出处理好的结果,IO比较大,使用时注意控制任务数!

3 运行过程:

依次运行filter_data, duplication.pl 和stat.pl。 前两步是调用qsub-sge.pl往计算节点投任务,第三步在登陆节点进行(只是统计一下数据)。 对应的分别生成*.filter.sh *.dup.sh *.stat.sh

filter_data每次是读入一对reads,通过4个函数判断其是否输出,主要消耗IO,内存占用很低,所以申请的是200M,duplication.pl占用的内存比较大,短片段申请9G,大片段申请6G,stat.pl是在节点直接运行的,只是统计而以。

对于101PE 6G的数据量所有的5个步骤都运行的话的运行时间在90分钟左右。 输出后注意检查下结果。 输出结果:

在当前目录为每个库建一个子目录,最后处理好的fq文件放在相应文库的子目录下, 文件名为 “*.dup.clean”。

在当前目录会生成一个 “*.stat.xls” 文件. 每一列依次是: 1.Library ID 2.Lane ID

3.Insert size (experiment) 4.Read length 5.GC% 6.Q20% 7.Ns_num %

8.Low quality %

9.Adapter contamination % 10.Small Insert % 11.PCR duplicate % 12.Raw Reads (M) 13.Raw bases (Mb)

14.Read length(trimmed) 15.Usable reads (M) 16.Usable bases (Mb) 关于filter_data的代码:

主函数在filter_data.cpp,调用一下三个函数实现过滤功能:

1.trim(string &seq1, string &seq2, string &qual1, string &qual2, int start_trim1, int end_trim1, int start_trim2, int end_trim2) 实现截取功能,具体代码见:filter_low_quality.cpp

2.filter_Ns(string &seq1, string &seq2, float N_rate) 过滤含N和ployA序列,具体代码见:filter_low_quality.cpp

3. filter_low_qual(string &qual1, string &qual2, int Qual_rate) 过滤低质量reads,Qual_rate就是对应的cutoff,具体代码见:filter_low_quality.cpp

4.filter_adapter( string & seq1, string &seq2) 过滤adapter序列,具体代码见:filter_adapter.cpp

5.filter_small_size( string &seq1, string &seq2) 过滤small insert size序列,具体代码见:filter_small_size.cpp

4 注意事项以及常见错误:

lane.lst中fq文件路径是要求匹配 /L\\d+_([^_]+)_1\\.fq/ ,100105_I638_FC61AWVAAXX_L2_ORYcogDAIDBAAPE_1.fq L2_和_1.fq之间的部分必须和lib.lst中的库名一致。在文件名上程序应对的是默认的命名方式,如果对输入文件有做另外的处理的话注意命名方式,建议加前缀以示区别。

因为整个程序是分为三个部分的,每一步都是在前一部完整输出的前提下才能正确执行的,目前主要问题是将任务qsub到计算节点后运行可能会出现问题,这个时候qsub-sge.pl会重新投上去,第一步filter_data执行完后生成*.reads.stat以及对应的fq文件*.clean,第二步duplication.pl执行完后生成* .clean.dup.stat以及对应的fq文件* .clean.dup.clean并将第一步生成的*.clean删除,最后stat.pl生成的*.stat.xls是在fq文件的上级目录下。

对于属于同一个库的不同批的数据,如果和第一批数据生成的*.stat.xls同名则在原来的*.stat.xls后加上后缀,为一个较大的数字,是对应的time生成的数值。