CPhasing icon indicating copy to clipboard operation
CPhasing copied to clipboard

关于Collapse的表现问题

Open majssssa opened this issue 5 months ago • 6 comments

您好,

Collapse是一个非常好的模块,我组装的是一个同源性较高的多倍体植物,Collapse区域我一直不知道怎么处理。之前我尝试了通过gfa和ont数据(depth)来进行Collapse区域的恢复。但是在这过程中我发现有一个Collapse区域一直没有被恢复。

Image

通过我的经验来看,2号染色体的黑框框起来的部分应该是同时和1和3号染色体的部分区域发生了Collapse,该区域的测序深度应该约为正常的测序深度3倍(正常的测序深度约为20X),结果也是这样的,下图是该区域中一个contig的深度图。

Image

无论是基于gfa还是ont数据进行Collapse的恢复,该区域的contig都没有成功的生成新的拷贝(或者说被成功的恢复),通过查询过程文件,contigs.collapsed.contig.list统计的Collapse区的contig中是存在该区域的conitg的,但是运行“cphasing collapse rescue”后,生成的collapsed.rescue.contigs.list文件中却没有该区域的Contig,最终导致这些contig不能成功的被恢复。这个问题是什么导致的?是否是因为并非是2个染色体发生了坍塌,而是3个染色体,导致这些contig不知道应该分配到那些cluster中?

majssssa avatar Sep 18 '25 08:09 majssssa

补充,

该问题我已经解决,虽然不知道具体的原因是什么。但是我尝试我手动编辑“collapsed.rescue.clusters.txt”,把应该复制contig分配给了两个cluster,然后在collapsed.rescue.contigs.list文件添加了这些contig的新的contig id,结果成功了。但是现在我想绘制hic热图。根据您的教程,命令为“cphasing pairs2cool sample.dup.pairs.pqs sample.dup.pairs.pqs/_contigsizes.unique sample.10k.cool”,运行后,会出现,

[10:32:54] INFO Load pairs: sample.dup.pairs.pqs. cli.py:5967 INFO Matrix's bin size: 10k cli.py:5968Traceback (most recent call last): File "/home/majunpeng/Software/CPhasing/bin/cphasing", line 7, in sys.exit(cli()) ^^^^^ File "/home/majunpeng/miniforge3/envs/cphasing/lib/python3.12/site-packages/click/core.py", line 1442, in call return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/majunpeng/miniforge3/envs/cphasing/lib/python3.12/site-packages/rich_click/rich_command.py", line 126, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/home/majunpeng/miniforge3/envs/cphasing/lib/python3.12/site-packages/click/core.py", line 1830, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/majunpeng/miniforge3/envs/cphasing/lib/python3.12/site-packages/click/core.py", line 1226, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/majunpeng/miniforge3/envs/cphasing/lib/python3.12/site-packages/click/core.py", line 794, in invoke return callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/majunpeng/Software/CPhasing/cphasing/cli.py", line 5996, in pairs2cool p.to_cool(chunks, outcool, binsize=binsize, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/majunpeng/Software/CPhasing/cphasing/pqs.py", line 567, in to_cool bins = binnify(self.contigsizes['length'], binsize=binsize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/majunpeng/Software/CPhasing/cphasing/utilities.py", line 1283, in binnify bintable["chrom"] = pd.Categorical( ^^^^^^^^^^^^^^^ File "/home/majunpeng/.local/lib/python3.12/site-packages/pandas/core/arrays/categorical.py", line 391, in init dtype = CategoricalDtype._from_values_or_dtype( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/majunpeng/.local/lib/python3.12/site-packages/pandas/core/dtypes/dtypes.py", line 338, in _from_values_or_dtype dtype = CategoricalDtype(categories, ordered) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/majunpeng/.local/lib/python3.12/site-packages/pandas/core/dtypes/dtypes.py", line 221, in init self._finalize(categories, ordered, fastpath=False) File "/home/majunpeng/.local/lib/python3.12/site-packages/pandas/core/dtypes/dtypes.py", line 378, in _finalize categories = self.validate_categories(categories, fastpath=fastpath) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/majunpeng/.local/lib/python3.12/site-packages/pandas/core/dtypes/dtypes.py", line 579, in validate_categories raise ValueError("Categorical categories must be unique") ValueError: Categorical categories must be unique

看样子貌似是和重复的contig id有关吗?

majssssa avatar Sep 19 '25 02:09 majssssa

上述的问题,我也解决了,通过“cphasing-rs pairs-break sample.dup.pairs.pqs groups.dup.review.corrected.agp -o pairs_break”来重新生成corrected.pairs.gz,但是后面绘图的时候,我发现有一些信号在热图上凭空消失了!

Image

这些信号确实的区域在juicebox中是存在信号的,我不确定是不是因为我在运行“cphasing-rs pairs-break sample.dup.pairs.pqs groups.dup.review.corrected.agp -o pairs_break”的时候,出现了一个警告“2025-09-19T11:39:32 [INFO] - Load sample.dup.pairs.pqs/_contigsizes thread '' panicked at src/pqs.rs:1300:19: called Result::unwrap() on an Err value: ShapeMismatch(ErrString("filter's length: 999999 differs from that of the series: 1000000")) note: run with RUST_BACKTRACE=1 environment variable to display a backtrace” ,但是并没有影响结果的输出。

majssssa avatar Sep 19 '25 04:09 majssssa

我找到了上述问题的原因,是因为我错误理解了cphasing-rs pairs-break命令中break.bed的格式,把review.corrected.agp直接当成了输入文件,当我生成一个符合格式的bed文件后,成功运行,并且不会HIC热图不会出现上述问题。但是,我遇到了一个新的问题,就是打断的contig部分的信号很奇怪。

Image

第一个染色体和第七个染色体(红色箭头所指的部分)是原本由utg000016l拆出来的两个contig,它们和其他contig的信号都很奇怪,在juicebox中,这些信号都是正常的。我初步觉得可能是我的bed文件的问题。我的bed文件格式如下

utg000016l      6191943 7441942 utg000016l:6191943-7441942
utg000016l      1       6191942 utg000016l:1-6191942
utg000016l      7441943 15217956        utg000016l:7441943-15217956

这是我运行“grep "utg000016l" Last_groups.dup.review.corrected.agp”,也就是从.review.corrected.agp找到.bed文件需要信息的命令,暂时没发现什么不合理的地方。

Chr06g1 7317284 8567283 641     W       utg000016l:6191943-7441942      1       1250000 -
Chr06g1 8567384 14759325        643     W       utg000016l:1-6191942    1       6191942 -
Chr06g7 1       7776014 747     W       utg000016l:7441943-15217956     1       7776014 -

majssssa avatar Sep 19 '25 16:09 majssssa

你好,实在不好意思,太久没有关注这个github页面,没有及时回复,这个bug我尝试解决,并发布了新的版本v0.2.7.beta.r304,希望对你们再次使用有帮助。

wangyibin avatar Nov 20 '25 13:11 wangyibin

感谢您的回复,如果要重新绘制正确的hic热图,我只需要下载新版本,然后重新运行绘图的命令,还是所有的分析要重新做?

majssssa avatar Nov 21 '25 04:11 majssssa

您好,我更新了新版本后,重新运行了cphasing pairs2coolcphasing plot,但是结果并没有得到改善

majssssa avatar Nov 24 '25 08:11 majssssa