hic idea1

hic idea1

softmax不常用在0-1 normalization
原始hic矩阵hic matrix(count)——>PCC——>PCA
但是PC1±一般不确定对应A还是B,所以还是用gene density或者是表观feature(比如说ATAC)
但是一般juicer会自带gtf等参考基因组文件,所以没有表观文件也可以做AB区室

至于按照PC1划分区室,所谓的分位数和分位数定量化不是一回事
前者当然可以随便分,但是后者需要是归一化用
比如说有的分布在0-100,有的在1k左右,跨范围太大

每个TAD里平均大概有1~10 gene

其实可以加一下石老师,有关于3D数据分析的生信方面可以请教

石老师上课tips有感:

1,然后就是HIC数据上游的QC:
一般是不影响的,可以不QC,可以QC

(我的问题是:看到很多文献的methods中对于hic的raw data一般都不做fastqc、multiqc之类)

2,一般选取高质量reads(比如说选取高质量MAPQ在一定标准以上的)去做mapping:

这个不会改变reads在基因组上的分布,所以抽取一定reads之后不太影响;

然后石老师一般建议是选取在50bp左右的高质量reads(其实就是一个排列组合的unique的问题,实际上20bp左右的DNA序列就已经unique了)
实际上其实是k-mer k串的问题,

在这里插入图片描述
在这里插入图片描述

reads过小不会unique,主要是高质量reads采样下来之后要回帖上去,回帖的unique性质;

所以20bp左右就已经unique了;

但是可以再长点,石老师经验建议是50bp左右reads(我们知道一般二代测序的short reads一般在75bp左右)

至于为什么不能再长点,再长点回帖mapping rates会下降;

所以就是不长不短,一个经验参数,其实20bp没有意义,50bp才是经验

3,至于回帖的reads:

本来就是将基因组(比如说某条chr)依据bin窗口大小(res分辨率)划分为多个窗口,然后回帖之后的reads计算在哪个窗口里面:
(我的问题是会有reads回帖时候cross(span-window)跨窗口,这样如何计数:
我的原始想法是两个窗口都算,或者是看在两边区域中跨越的reads长度比例然后选取其中长的一个区域)

——石老师的说法是reads一般计数count的时候可以都只看start,或者是都只看end,总之只看一段;

当然我的想法是start+end都看,所以老师说是可以考虑两边区域的长度多少,然后看长的落在哪一边;

总之一般落在window窗口边界上跨窗口的概率比较小,当然就算是落在边上其实也可以按照上面的操作方法去试一试。

然后回帖之后的count的reads可以进一步归一化normalization,

比如说可以0-1归一化(很常见的data-min/max-min,当然我的想法是能不能使用softmax,反正都是放缩到0-1之间,但是石老师不建议);

然后还可以使用z-score归一化,其实就是做一个拟合正态分布~N(0,1)

还有一种是分位数归一化(Quantile Normalization),其实就是将数据划分到不同分位数区间中,当然不限制于4分位数,可以分成多个分位数区间
在这里插入图片描述
在这里插入图片描述

参考:https://www.bioladder.cn/R/chapter/归一化.html

4,还有一个问题是TAD res的问题:后来发现石老师是Topdom算法工具R包的开发者之一,

(我的问题是TAD识别时候的res分辨率问题,主要是识别的时候有很多res都可以做,然后做出来波动性比较大,就是nest TADs的问题,也就是嵌套TAD的问题;

当然石老师的回答是如何解释他开发的工具,也就是通过比较多种工具tool之间的优劣,比如说overlap的TAD的识别,然后来解释他开发的TAD算法工具更好。

5,然后就是讲了一点HIC中的结构识别算法,其实不是idea了,应该是很古早的东西了:
其实就是原理,我本科做毕设的时候随处可见,https://www.modb.pro/db/186962

比如说区室,我们拿到的其实是归一化之后的count矩阵,然后对这个矩阵;

就是先做PCC,其实就是皮尔森相关系数,当然SCC也可以;

然后再做PCA,对PC1上的sign符号正负做一个区分,但是其实我的理解就是符号正负就已经对标AB了;

当然石老师中间其实还补充了,在sign之后,还需要结合gene density以及epigenome的一些feature(其实就是ATAC开放性),然后对标到A或者B上面。

其实就是对算法不理解不了解,

这个其实是个主观能动性的问题。

其他生信idea/experience有感:

1,石老师提到了转录的时序数据角度:
一般来说一个TF的编码gene之后,在转录之后,再翻译,然后翻译之后需要蛋白质定位,然后定位的时候需要入核出核。

比如说TF会入核寻找motif,这个过程中其实需要时间,也就是说我们的测序数据,常规的bulk,无论是chip还是RNA-seq,都只是一个静态的切片bulk集合(p论罢了);

所以我们一般如果想要探究TF与下游的gene的互作,其实都具有一定的t滞后效应,所以一般采用或者测序应该需要时间序列数据

2,还有一个是gene exp表达矩阵的经验问题:
我们知道bulk的gene表达矩阵一般都会有NA缺失值,虽然不比不上单细胞那样稀疏,但是在数据处理之前还是需要处理NA缺失值的;

(1)然后石老师的经验就是28定律,粗浅来说就是如果矩阵中某行或者是某列缺失了20%左右的数据(?应该是这个表述),那么这一行或者是这一列其实就可以丢弃了;

(2)传统的NA填补缺失值的方法:
一种是使用Z-score,也就是~N(0,1),一般是将NA填充为0

或者是使用周边数据,也就是使用row或者是col均值来填充NA

当然使用周边数据的话其实是可以使用ML算法的,比如说是KNN——》大概原理就是:
对于某一行gene exp比如说是row i,里面的缺失值,可以使用KNN找到没有对应位置缺失&且最接近的k行,然后使用这k行的数据,做一个加权和来表征这个row i中的缺失值

猜你喜欢

转载自blog.csdn.net/weixin_62528784/article/details/142758506