MDplot:强大且免费的分子动力学模拟数据后处理神器,让您的数据分析效率直接起飞

在材料科学、生物学和化学等领域中,分子动力学(MD)模拟已经成为了洞察分子间相互作用和动态行为的关键技术。MD模拟技术的发展带来了数据量的激增,这不仅对计算资源提出了更高的要求,也对数据分析提出了更大的挑战。特别是在处理复杂的文件格式和需要生成大量图表的情况下,数据可视化尤为繁琐。因此,有效地管理、处理和可视化这些庞大的数据集成为了科学研究中的一个重大挑战

1.简介

为了解决这一问题,MDplot应运而生。这是一个基于R语言开发的软件包,专门用于自动化分子动力学模拟数据的可视化这一过程。MDplot支持多种文件格式,包括GROMOS、GROMACS和AMBER

New Excalidarw

上图是mdplot分子动力学模拟后处理业务流程所处的位置,与常见”红色箭头“分子动力学模拟数据后处理流程不同(该流程通常需要手动编写大量的代码做数据处理或者手动操作绘图软件才能绘制出高质量的图表),它的主要优势在于能够简化和自动化复杂的数据分析流程,避免重复任务,并快速呈现高质量的结果(可直接用于论文或演示报告中),从而使科研人员可以更加专注于结果的解释而非数据处理。

2.核心功能

MDplot的核心功能在于其丰富的绘图函数,能够处理和展示多种分子动力学模拟数据。支持GROMOS、GROMACS和AMBER等主流模拟软件的文件格式,这使得不同研究背景的科研人员都能便利地利用MDplot进行分析工作。此外,MDplot的绘图和数据解析功能是分开的,这种设计不仅提高了灵活性,也使得数据操作和额外文件格式的集成变得容易,从而增强了其适用性和扩展性。

MDplot还提供了批处理脚本的接口,特别是通过一个Bash接口,允许用户将MDplot简单嵌入到Bash脚本中,作为数据分析流程的最终步骤。这一功能使得MDplot可以轻松地集成到自动化的数据处理流程中,极大地提高了处理效率和便利性。

关键的绘图函数不仅限于标准分析,还包括更专业的功能,为科研人员提供了全面的数据可视化工具,这些功能包括但不限于:

(1).聚类分析

(1.1).聚类条形图

image-20240508144132663

(1.2).聚类时间序列图

image-20240508151200804

(2).蛋白质二级结构分析

(2.1).DSSP图

image-20240508151813121

image-20240509103405911

(2.2).DSSP时间序列图

image-20240508151856456

(3).氢键分析

(3.1).氢键摘要图

image-20240508152542358

(3.2).氢键形成和断裂的时间序列图

image-20240508152630312

(4).NOE分析

核奥弗豪泽效应(nuclear Overhauser effect,简称NOE)分析

image-20240508153436938

(5).拉氏图

(5.1).二维拉氏图

image-20240508153738632

(5.2).三维拉氏图

image-20240508153806250

(6).RMSD分析

(6.1).RMSD图:

可同时绘制多条RMSD曲线

image-20240508154209737

(6.2).RMSD平均图:

含给定时间内,每一个时间点上含RMSD最大值,平均值,最小值

image-20240508154405767

(7).RMSF分析

image-20240508162506500

(8).TI(热力学积分)结果分析

image-20240508163425797

(9).xrmsd

image-20240508163529992

(9).含时性质分析

绘制一个(或多个)时间序列图,如下:这里还有很多,仅列举以下两个

image-20240510193947517

image-20240510194015338

3.安装和获取

MDplot可以通过两种主要方式安装:通过CRAN(The Comprehensive R Archive Network)或者从GitHub上的项目页面获取最新版本

这里推荐通过CRAN。

3.1.通过CARN安装(以windows为例)

在windows系统,想要方便的安装和使用mdplot需要安装以下基础工具:

  • **R语言包:**mdplot的包的运行环境,R语言包版本R-4.4.0(推荐)。
  • git bash 命令行工具:bash脚本执行环境,方便在windows系统中使用bash脚执行mdplot的绘图功能(mac和linux系统无需安装)。

1.git bash 命令行工具是可选安装的,熟悉R语言的朋友可以写R脚本直接调用mdplot中的功能,而无需安装git bash 。

2.这里我个人习惯在bash环境下工作,所以后续mdplot的安装和使用案例,将都以bash脚本为主。

3.PS:如果由于网络原因导致,以上两个安装包下载缓慢或下载不了,可以在公众号回复”mdplot“获取安装步骤中的所有的软件包,更多详细的使用教程和示例分析脚本的打包文件。文件包内容见步骤3.2节:安装工具和mdplo文档获取

步骤1:安装R语言包

(1).进入R语言官网:https://cran.r-project.org/

image-20240508190251154

(2) 选择baseimage-20240508190342498

(3) 下载R:下载下来的是一个名为”R-4.4.0-win.exe“ 安装包image-20240508190521043

(4) 安装 R安装包:双击运行安装

image-20240508221301455

(4.1).选择安装时选择的语言为”中文简体“

(4.2).一直默认”下一步“即可

(4.3).选择安装位置:

如下图默认安装位置是C盘,不过我建议不要安装在C盘,因为C盘中的文件通常需要管理员权限才能进行操作,建议将R语言包

安装在D盘或其他盘(这里注意安装位置不要有中文!!!!!)

708757e1c8e145ee8fa6657e134a3fe

(4.4).后续的步骤都默认点击”下一步“

(4.5).安装成功的标致:点击”结束“完成安装

d1028feafac7102e293ac5a1c05042c

步骤2:为R语言包设置环境变量

这一步的目的,是为了后续能在本机任意位置使用R语言的脚本

(1).检查R语言包是否在系统环境变量中

(1.1).使用开始菜单: 点击 Windows 开始菜单图标,然后在搜索框中键入 “cmd” 或 “命令提示符”,然后按回车键。

(1.2).使用运行命令: 按下 Win + R 组合键,输入 “cmd”,然后按回车键,

键入”R“之后,发现找不到这个命令,这是因为还没为了R语言包设置环境变量。

image-20240508224414329

(2) 为R语言的包的安装路径,添加的系统环境变量中(Path路径)

(2.1).找到系统环境变量,如下图

407eb5db2429dfef19d6167da442cfc

(2.2)将R语言包路径添加到Path路径中,

我原来的R语言包安装路径是:D:\R\R-4.4.0\bin,这里的路径是由步骤1中的(4.3)安装手动指定的。

5ec79b3e7defb72a503f555b6b2207e

然后点击,确定(有三个),最后重启电脑。

(2.3)验证R语言包环境变量是否设置成功,重新执行(1)中的步骤

4e51bcd44cacaae61a789f8cc10b7aa

如上图所示,即R语言包系统环境变量设置成功!

步骤3:安装git bash

(1).在官网下载git bash安装包:https://git-scm.com/

image-20240508231002323

image-20240508231036336

(2)安装git bash

下载之后,安装包名字为:”Git-2.45.0-64-bit.exe“的安装包,双击安装。

image-20240508231345905

全部默认”下一步“即可

image-20240508231556492

点击”Finish“完成安装

(3)安装成功的标志:

任意位置右键,菜单栏将出现”Open Git Bash here“

image-20240508231839034

单击:Open Git Bash here,即可打开bash 命令行终端:

c303bd143b2ebdb1b7fea5cb8c04520

步骤4:安装mdplot包

(1).R语言命令直接安装

# Install MDplot in R:
install.packages('MDplot', repos = c('https://mdplot.r-universe.dev', 'https://cloud.r-project.org'))

该安装方式适合熟悉R语言朋友直接安装,不过我还是推荐先下载MDplot 1.1.3整体更新包,后安装。

因为该包里面不仅有一键安装MDplot 1.1.3的bash脚本,还有大量测试用例和案例文件,可以帮助我们确定mdplot是否完全安装成功以及快速上手实践。

(2).bash脚本安装:下载MDplot 1.1.3整体更新包,使用里面的bash脚本直接安装

安装包下载地址:https://mdplot.r-universe.dev/MDplot ,如下图所示

image-20240509091647767

(2.1).解压压缩包,到文件夹中,注意该文件夹不要是C盘,也不要含中文路径!!!

解压后,文件内容如下图所示:具体文件作用,见备注

image-20240509093305079

(2.2).开始安装:

开始安装前,需要修改一下MDplot_install.R中的内容,否则安装的将是MDplot1.0.1的版本!!!

修改后MDplot_install.R,文件内容如下:

install.packages("MDplot", dependencies = TRUE, repos = c("https://mdplot.r-universe.dev", "https://cran.r-project.org"))                 
if( require( MDplot ) )
{
  print( paste( "Installation of MDplot version ",
                packageVersion( "MDplot" ),
                " succeeded!", sep = "" ) )
}else
{
  print( "Installation of MDplot could not be completed successfully!" )
}

在bash,右键---->点击git Bash Here,打开bash环境下的命令行工具,如下:

image-20240509095338150

以次键入以下命令:

#1.键入:ls,后点击回.将显示bash文件夹的内容
ls
#2.执行insta.sh脚本,键入:./install.sh,后点击回车将执行该脚本。
#ps:如果遇到权限问题无法执行脚本,可以先输入:chmod +x ./install.sh ,赋予脚本执行权限,再执行下面的脚本
./install.sh

如下图所示:

image-20240509094936501

**(2.3).安装成功的标志:**如下:命令行界面将打印以下信息:

9e9467721f0cfa0f0cfd70b86489659

注意,这里能由于网络原因(懂的都懂哈),可能导致一些依赖包安装不上从而,导致MDplot安装失败

解决方案1:切换一个好的网络(不细说)

解决方案2:自行谷歌把未安装的依赖包安装上去

(2.4).测试mdplot所有绘图功能是否正常:

执行test.sh脚本:步骤同执行install.sh脚本一样。

image-20240509101334402

下面的这样的提示,可以忽略:

image-20240509101517893

image-20240509101632645

因为这两行代码,是用于打开图片和pdf,如果没有安装,就会提示上面的信息,对绘图并没有影响。

image-20240509102204668

执行test成功的后,bash文件夹下面,将出现大量的图片和PDF文件,如下:

image-20240509102544557

test.sh脚本中的Hbond_ts这个氢键时间序列图绘制有问题,我排查了是test.sh中默认参数问题

我的安装包里面已经将这个参数修改了,可以输出正常的hbond_ts图了。

在下面教程案例,我将演示如何使用mdplot绘制氢键时间序列图

3.2 安装工具和mdplo文档获取

为了方便大家安装,测试和实践mplot工具,我将以上3.1部分4个安装步骤的涉及到所有的安装包和脚本,都整理到一个压缩包了

压缩包文件内容如下:

image-20240509131629034

步骤4中,MDPlot安装,测试脚本所在位置:

image-20240509132207098

可以在公众号回复”mdplot“获取安装步骤中的所有的软件包,更多详细的使用教程和示例分析脚本的打包文件

4.教程案例

使用MDplot进行模拟数据的可视化,有以下两种方式

4.1 MDplot数据可视化方式

方式1:把MD后处理分析工具输出的数据处理成MDplot规定的内容格式

通过完成3.1节的安装步骤4,我们可以知道MDplot 1.1.3整体更新包中MDplot/extdata中是含有大量用于分析的样例数据文件的,

这些文件都是事先处理好的,为MDplot输入文件的规定内容格式。

MDplot所有的绘图教程示例,都是基于这些文件来的。但是在实际的数据可视化之前,通常还需要手动把MD分析输出的数据整理成样例文件中格式,这显然太麻烦了。因此作者给出了第二种方式来做数据可视化,如下。

方式2:直接读取amber,gromos,gramacs分析后的数据文件

选择方式2,一方面是,为了方便我们绘图分析,此时可以直接读入amber,gromos,gramacs分析后的数据文件。

另一方面是,方式2的操作细节,MDplot官方并没有给出示例,看到有很多人用的云里雾里,在这里我就那方式2做本文的教程案例了

4.2.氢键分析可视化

这里以gromacs中使用gmx hbbond工具分析动力学轨迹中的氢键为例,流程如下:

image-20240509141601050

GROMACS的MD输出样例文件位置如下:mdplot-511\exmple_md_data\00.gmx2019_hbond_output

image-20240509142957003

gmx hbond 分析之后输出的文件位置如下:mdplot-511\exmple_md_data\01.gmx_exmple_input

image-20240512100420837

我在使用MDplot氢键绘制函数的时,发现了几个BUG,邮件和git issue给作者了,他本人还没回复。这里我就将他写的有问题的地方给自己修复如上图文件所示,如果大家在使用过程中还发现其他问题,可以留言备注我修复,或自行修改。

本次分析的体系如下:将分析有机小分子(resname :DIH)与大分子之间形成的氢键:

image-20240509145219162

step1:使用gmx hbbond 分析小分子DIH和蛋白质之间的形成的氢键

这里使用的是跑了100ps蛋白质-配体复合物的动力学轨迹文件作为氢键分析的输入

gmx hbond -f nvt_100ps.xtc -s nvt_100ps.tpr -hbm -g -hbn

image-20240509171021093

执行命令后,显示如下信息:

image-20240509171322600

键入1,回车即选择蛋白质分子组

键入13,回车即选择小分子DIH小分子组

输出hbond.log和hbmap.xpm文件,两者文件内容如下:

image-20240509152020016

hbond.log: 输出nvt_100ps.xtc这条轨迹中,所有氢键的成键信息(包括残基及原子的名字和ID),共形成了13个氢键

**hbmap.xpm:**输出nvt_100ps.xtc这条轨迹中,所有氢键存在与否的矩阵,0代表存在,空白的代表不存在

step2:使用mdplot读取step1中输出的文件,并绘制氢键相关分析图

这里读取step1中输出文件的方法有两种,下面将介绍一下它们的使用方式和是特点

**方法1:**直接编写R语言脚本,调用MDplot中提供的解析函数和绘图函数

这些函数具体参数说明和使用案例见:https://rdrr.io/cran/MDplot/man/hbond.html,这里就不展开了,复制过来就能直接用

#以绘制氢键形成和断裂的时间序列图为例,脚本为:gmx_hbond113R.R ,已经压缩包mdplot-511中提供
###--------------------函数功能简述----------------
# hbond_ts():绘制氢键时间序列图
# load_hbond_ts():加载氢键时间序列数据
# load_hbond():加载氢键成键数据
###--------------------------------------------
# 加载 MDplot 包
library(MDplot)

# 加载外部的 FixHbondR.R,确保它覆盖了 MDplot 中相同的函数
source("FixHbondR.R")

# 调用 hbond_ts() 函数,并确保使用了新定义的函数和依赖
result <- hbond_ts(
  load_hbond_ts("hbmap.xpm", mdEngine = "GROMACS"),
  load_hbond("hbmap.xpm", "hbond.log", mdEngine = "GROMACS"),
  timeUnit = "ps",
  snapshotsPerTimeInt = 1, #默认值1000
  plotOccurrences = TRUE,  # 注意拼写,原来是 plotOccurences
  namesToSingle = FALSE,
  printNames = TRUE,
  printAtoms = TRUE,
)

# 打印结果,验证执行效果
print(result)


**执行:**在cmd 和git bash环境下均能执行

使用前请确保hbond.log,hmap.xpm,gmx_hbond113R.R,FixHbondR.R和fix_hbond_ts.R这四个文件夹在同一目录即可,位置可以是任意的(**注意文件路径不要含中文!!!),**然后输入以下命令,回车即可

Rscript fix_hbond_ts.R

屏幕打印内容如下:

该脚本会绘制hmap.xpm中13对氢键的占有率,屏幕打印的内容和hmap.xpm和打印出来的图表内容(在Rplots.pdf文件中)对照如下图

我这里的轨迹是101帧,故第一对氢键占有率为:12/101*100%=11.88%

image-20240511231705883

PS1:需要特别注意的,在使用上述R脚本生成Rplots.pdf文件后,如果再次使用该脚本,请保证Rplots.pdf不被其他程序占用

否则再次执行脚本时会报错,提示无法向Rplots.pdf写入内容

ps2:timeUnit = "ps"和snapshotsPerTimeInt = 1,参数决定着图表坐标轴的显示粒度,我这里指每1帧单位时间为ps

我轨迹时间为100ps. 根据.xpm中的时间序列的最大值,可以知道,X坐标最大值为100/1.即100ps.

**示例1:**在hbond_ts()添加timeRange = c( 20, 100 )参数指定分析的时间范围

image-20240511233351333

image-20240512074753402

1.如图所示,此时,占有率的重新在指定时间范围内被重新计算

第一个氢键对的占有率:12/(100-20+1)X100%=14.81%

**示例2:**分析指定氢键的时间序列

设置 hbondIndices=c(1,3,5,7,9,11,13),绘制指定hbondID的残基。

image-20240512081636670

这里绘制指定hbondID的数量推荐在10个及以上,一般论文里面分析多为占有率前10及的主要氢键,绘制出来的图也好看些。

同时设置namesToSingle = TRUE,即将标准氨基酸残基的名字缩写为单个字母。

PS:HIS,HIE,HID组氨酸三种质子化状态将不被缩写,非标残基名称也不被缩写。

个人觉得这个设置很细节,标准残基设置缩写为单字母,其实有利于在分析非标残基分子与生物大分子之间的氢键数据时,在视觉上一眼看分辨出哪些是分子内或分子间的氢键。

image-20240512080521162

这种方式的特点,是可以直接写R语言的脚本进行绘制,不过hbond_ts()可控参数较少,很多参数写死在FixHbondR.R,因此可设置的参数有限,只能默认输出PDF文件。所以熟悉R语语言的朋友还是可以调用MDplot中的绘图依赖包去扩展或修改FixHbondR.R中的代码,来指定输出png,tiff格式的图和其他样式,这里我就不展开。方法2中提供了示例。

方法2:使用bash脚本,调用MDplot中的功能(推荐)

前面提到MDplot还提供一个可以被bash脚本调用的接口(MDplot_bash.R为作者提供的,这里被我修复了BUG,现在为FixMDplot_bash.R文件),里面不仅封装了MDplot中所有的功能,而且还支持绘制绘制png,TIFF和PDF的图片,还能对图片的分辨率(DPI)和尺寸(单位是:px)进行控制的等。

这里的FixMDplot_bash.R其实就是封装了MDplot中的所有绘图函数并扩展原绘图函数功能(主要是绘图方面的),然后还提供可以被basah脚本直接调用的接口,可以按需修改的。

fix_gmx_mdplot.sh的脚本内容:

#!/bin/bash

# 绘制氢键摘要图。
#即按照residuID,在二维图片显示供体和受体残基的成键分布
#横纵坐标最大值和最小值是根据hbond.log中所有氢键residuID的最大值和最小值划分的
# acceptorRange和 acceptorRange范围的确定,即是后面所有数据分析的基准
#不设置代表默认使用hbond.log中所有氢键
Rscript FixMDplot_bash.R hbond files=./hbmap.xpm \
                  GROMACShbondlogfile=./hbond.log \
                  title="GMX-Hbonds plot" \
                  acceptorRange=100,300 \
                  donorRange=100,300 \
                  size=1200,900 \
                  resolution=165 \
                  outformat=tiff \
                  outfile=GMX_hbond.tiff \
                  mdEngine=GROMACS
Rscript FixMDplot_bash.R hbond help=TRUE


# 绘制氢键形成和断裂的时间序列图
Rscript FixMDplot_bash.R hbond_ts files=./hbmap.xpm,./hbond.log \
                               plotOccurrences=TRUE \
                               printNames=TRUE \
                               namesToSingle=TRUE \
                               snapshotsPerTimeInt=1 \
                               timeUnit="ps" \
                               printAtoms=TRUE \
                               size=1450,950 \
                               outformat=tiff \
                               outfile=GMX_hbond_ts.tiff \
                               title="GMX-HBOND timeseries" \
                               printLegend='true' \
                               mdEngine=GROMACS 
Rscript FixMDplot_bash.R hbond_ts help=TRUE



**执行:**只能 bash环境下执行,这里在win上使用gitbash

同样的使用前请确保hbond.log,hmap.xpm,FixHbondR.R,FixMDplot_bash.R和fix_gmx_mdplot.sh这四个文件夹在同一目录即可,位置可以是任意的(**注意文件路径不要含中文!!!),**然后输入以下命令,回车即可

./fix_gmx_mdplot.sh

需要注意的是fix_gmx_mdplot.sh 中参数中间不要出现空格!!!!,否则会报错:

9b8b0c6927c667e63ccd6e561ee3890

氢键摘要图打印信息如下:

image-20240512092004748

氢键摘要图输出的图片:GMX_hbond.tiff

image-20240512092248350

氢键形成和断裂的时间序列图打印信息:

image-20240512092807797

氢键形成和断裂的时间序列输出的图片:GMX_hbond_ts.tiff

image-20240512093022736

使用方式2的好处,是能将MDplot集成到日常的bash脚本工作流中来,以此自动化数据分析到数据可视化这一过程。

5.优势和特点

  1. 多格式支持与高兼容性 MDplot设计之初便考虑到了跨平台的数据兼容性,它支持多种主流的分子动力学软件生成的文件格式,包括GROMOS、GROMACS和AMBER。这一特性极大地简化了不同软件平台间数据的迁移和转换工作,使得研究人员可以无缝对接和分析来自不同源的数据集。
  2. 自动化与高效的数据处理 MDplot的一大优势是其自动化的数据处理能力。用户可以通过简单的命令调用实现复杂的数据可视化任务,大大减少了手动编码和图形调整的需求。此外,它允许批量处理大量数据,为研究人员节省了宝贵的时间,特别是在需要处理成百上千个模拟输出文件时。
  3. 灵活性与可扩展性 尽管MDplot提供了一系列预设的绘图功能,但它也设计得足够灵活,允许用户根据需要自定义和扩展这些功能。这种设计支持了数据操作的独立性,使得集成新的文件格式或修改现有的数据解析逻辑成为可能。此外,MDplot的开源性质也鼓励了广泛的社区合作,不断有新的功能和改进被添加到软件包中。
  4. 集成化的工作流程 MDplot通过提供Bash接口,支持在命令行环境下直接调用,这使得它可以轻松地嵌入到更广泛的数据分析和处理流程中。这种集成化的工作流程优势尤为突出,因为它允许将MDplot与其他工具链或脚本相结合,实现高度自动化和定制化的数据分析解决方案。
  5. 提升数据解读能力 MDplot不仅仅是一个数据可视化工具,它通过图形直观地展示复杂的分子动力学数据,帮助研究人员更快地识别数据中的模式和趋势,提升了数据解读的效率和深度。例如,通过热力学积分分析和氢键动态监测图,研究者可以更深入地理解化学过程和生物分子间的相互作用。

、本文首发于公众号(原创保护):分子建模与模拟
https://mp.weixin.qq.com/s/jhDbGBwNHFoWbZp5Wx0BnQ

往期工具分享

VIAMD:一款革命性的交互式分子动力学分析软件:

refenerce

[1] MDplot: Visualise Molecular Dynamics: https://pubmed.ncbi.nlm.nih.gov/28845302/

[2]
MDplot githup项目地址: https://github.com/MDplot/MDplot

[3]
MDplot官方绘图案例教程: https://rdrr.io/cran/MDplot/man/hbond_ts.html

分子动力学模拟(Molecular Dynamics Simulation)是一种通过模拟原子或分子间相互作用及其运动轨迹来研究物质性质和行为的方法。它可以模拟分子尺度下的运动、力学特性和热力学性质等。 主要应用于生物医学、材料科学、化学等领域的研究。分子动力学模拟可以帮助我们了解分子间的相互作用、材料的结构性质、反应机理等。在药物设计中,分子动力学模拟可以揭示药物与靶标的相互作用过程,为合理设计药物提供指导。 主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维和特征提取方法,可用于减少数据集的特征维度并捕捉数据中的主要变化模式。应用PCA可以提取分子动力学模拟产生的大量数据中的主要特征,简化分析和可视化过程。 Matlab是一种常用的科学计算软件,其具有强大的数值计算和数据分析功能。在分子动力学模拟中,Matlab可以用于加载、处理和分析模拟数据。通过编写脚本程序,可以利用Matlab对PCA算法进行实现,提取并可视化模拟数据的主要成分。 总结起来,分子动力学模拟是一种研究物质行为的方法,PCA是一种数据降维和特征提取的技术,而Matlab是一种常用的科学计算软件。通过应用PCA和Matlab,可以方便地对分子动力学模拟产生的海量数据进行处理和分析,提取关键特征并进行可视化展示,从而深入理解分子系统的行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值