level10.str

有时候我们项目里面需要将树型關系的数据转换成Json格式的Sring字符串

假设数据库中的数据如下

需要转换后输出的字符串的结果如下(对应的层级的关系)

相应的代码资料网上鈳以找到

7 * 树节点类(用于模拟树型结构关系中的节点) 49 * 获取/设置 节点需要在树形结构中显示的信息 60 * 获取/设置 节点是否被勾选信息 71 * 获取/设置 節点父节点信息 82 * 是否存在/获取/设置/添加 节点子节点信息

2、树型节点的属性Map类

5 * 树型节点的属性Map(用于操作节点的各个属性如name,id)

3、定义一些樹型结构相关的接口(方便以后拓展)

2 * 定义一般普通的树节点的接口 7 * 每个树节点都具备自身的一些属性
2 * 定义层级树节点的接口
2 * 树类 (根据洎身需求对数据进行解析和转换)

5、层级树状结构解析实现类

21 //获取每个树节点的属性 23 //封装每个树节点 26 //再次遍历所有的树节点
2 * 解析格式选择類 (用于接受数据源并选择解析格式)

8、Dao层(查询数据库表中所有的记录)

a.先为自己的树型节点定义好接口,比如每个节点有获取自己的id、父节点id、属性集合等方法

b.根据数据库字段创建好对应的类的Model,这里Model类需要实现之前定义好节点的接口便于后面代码的接入。

c.创建好Parser轉换类将传入Lis形式的数据转换成自己想要的节点链表形式的数据(对每个节点封装好父节点、子节点们和自身属性集合等)。

d.创建好ree数據选择解析类将转换好的节点数据集合解析成自己想要的Json格式的Sring字符串。


下面简单的介绍一下GAK里面一些常鼡的子程序(工具)

这个可以说是GAK里面用到最多的一个工具,这个工具就是我们call SNP (单核苷酸多态性)或者Indel (插入缺失)的时候用的最基本的用法如丅:

前几个参数之前都讲过了,然后简要解释一下其他的一些参数:

输出文件输出文件的格式为vcf格式,vcf格式的具体信息可以参阅这个參数是必须提供的

EMI_ALL_SIES 只要是能call的到的位点都输出(应该是除了没覆盖到的位点,其余位点都输出)这个模式下会得到最多的结果

只有QUAL值大于这個值的才会输出

最低可信值,QUAL值低于这个值而大于上面sand_emi_conf这个值的在结果里面显示的时候会被标记为LowQual

这两个参数默认的都是30就是只有QUAL值大於30的才会输出到结果中,一般认为对于高覆盖度的数据(&g;10x)QUAL值在30以上就可以认为比较可信

用这个参数可以提供一个(或多个,设多个时同样是設这个参数多次每次一个文件)已有的vcf结果文件,用于与结果进行比较如果提供的vcf里面的varians结果与call出来的结果一致,则会在后面加上comp1[comp2…],或者用户可以自己指定每个文件用的标识名称例如:

dbSNP文件,这个参数实际跟上面-comp的参数差不多不过dbSNP数据在GAK里面有特殊的用途,后面会洅提到

根据用户自定义的标准来筛选VCF文件常用参数如下:

输入的VCF文件,GAK对文件格式的完整性要求高一点所以VCF文件格式不符合要求的可能会导致报错退出。

输出的文件名结果输出还是VCF格式的,然后筛选掉的结果不会直接被删掉而是用标识给标记出来,就是VCF文件里面FILER这┅列的信息而VCF开头也会给出这些标识用的是哪些筛选标准,而所有通过筛选的位点这一列会以PASS标出

这两个参数一起用可以设定指定长喥内的varians数量的最大值,例如-window设成10-cluser设成3,表示10bp以内的varians的数量不应当超过3个如果超过了则会用SnpCluser标示出来。一般这种聚集的SNP可以被认为是不鈳靠的(10bp里面超过3(Bowen e

这两个参数也是一起使用的可以一个第一个参数设置筛选用的条件表达式,第二个参数设置这个筛选在结果里面标识嘚名称两个参数设置的时候必须是成对的,然后可以设置多次例如上面的例子中:

如果输入的VCF文件是已经筛选过的,而且里面筛选掉嘚内容是已经不要的了可以通过设置这个参数来去掉这些已经筛选掉的位点;否则这些位点会被再次筛选一遍,然后保留原来的筛选标識不变后面可能会加上新的筛选标识。

--mask参数用来筛选与某个指定文件中记录一致的位点例如筛选repea区域的位点的时候就可以使用这个参數,这边给的是一个文件支持的格式很多,所以适用的范围其实很广这边暂时先简单的介绍一下;--maskName同样是来设置被FILER掉的位点的标识的。

最后在讲一下这个参数当筛选标准比较多的时候,可能有一些位点没有筛选条件当中的一条或几条例如下面的这个表达式

并不一定所有位点都有这些信息,这种情况下GAK运行的时候会报很多WARNING信息用这个参数可以把这些缺少某些FLAG的位点也给标记成没有通过筛选的。

这个吔是我比较喜欢用的一个工具可以对mapping结果进行一些列的统计得到覆盖度相关的一些信息,用法:

*[]里面的表示可选的参数

因为一般粗略统計的时候只需要_summary_saisics这两个文件就能获得比较有用的一些信息,而对于特定区段或者gene区间等等的只要再次基础上指定某段区域或者提供gene位置的一些信息即可,下面就仅仅介绍和整个基因组统计相关的一些参数:

指定输出文件的文件名默认情况,这个程序运行完成以后除叻生成这个文件以外还会生成一些列其他的文件,前面部分的名称还是这个后面会加上_summary, _saisics等等来表示对不同信息的统计结果,每个文件嘚内容说明如下:

- no suffix:这个就是没有加任何后缀的文件每个位点的覆盖度,这个文件一般会很大而且很多时候可能根本不需要这么详细的結果,可以通过后面的参数设置取消输出这个结果

- _summary:总的统计信息包括总的碱基数,基因组的平均覆盖度大于某个qualiy值的碱基数所占的比唎等等

- _saisics:某个覆盖度范围之间碱基的数目,这边是一个直方图的统计结果可以根据这个做出一张覆盖度的分布图,很直观的显示出覆盖度嘚信息

- _inerval_summary:如果设置了特定区段而不是整个基因组的话,相关结果会在这个文件里面

- _gene_saisics:同上这边的几个文件可以方便对某些比较关心的区段,或者是gene区间进行一些统计

DephOfCoverage可以对多个BAM文件进行统计这个时候可以将多个文件按照不同的方式进行组合统计,所有的组合以BAM文件头里面嘚ReadGroup这一行即开头是@RG的这一行设定的值为准可以以sample, library…等等字段进行组合,例如-p设成sample的话sample名称相同的BAM文件会被当作一个sample来处理,结果统计嘚就是一个sample的信息但是如果这几个文件的readgroup值不一样的话,根据readgroup进行统计得到的结果就是对每个readgroup而言的

mapping所用的reference基因组序列可能包含N,如果这个参数设成rue的话它会根据N附近readsmapping情况来对这段区域进行一个统计

(这边称为一个bin)来进行统计的,这边就是指这个bin的个数也就是最后嘚到的直方图里面看到的柱形的个数。

这两个值用来设定开头和结尾的bin里面应当包含覆盖度是多少的碱基--sar设成5就表示第一个bin统计的是所囿deph5的碱基的个数,而sop设成100就表示最后一个bin统计的是所有deph100的碱基的个数注意这边sop的值和sar的值之间的间隔应该刚好等于上面nBins设置的值,即sop

这个值表示统计deph≥这个值的碱基所占的比例可以设定多个值,例如:

15的碱基所占的百分比结果输出在_summary文件里

实际用的时候很多太詳细的结果用处可能不大(例如对每个base的统计DephOupuAEachBase),可以通过这几个参数来取消同时可以加快程序的运行速度

所以一个快速统计mapping结果的例子大致如下:

我要回帖

更多关于 str中文啥意思 的文章

 

随机推荐