当前位置:首页 > 组装组参考文档version1
六 基因组的组装版本的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
(这里当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生成的数值。
共分享92篇相关文档