4 genotype
这个 README 文件是 GfaViz 的官方使用说明,介绍了它的功能、安装方法、运行方式、界面操作、布局与样式选项、渲染输出以及一些注意事项。下面按主要部分解释。
1. GfaViz 是什么?
GfaViz 是一个图形化交互工具,用于可视化 GFA 格式的序列图。它同时支持 GFA1 和 GFA2 两种格式。
GFA(Graphical Fragment Assembly)最初是为序列组装设计的,但现在已经发展成一种通用格式,可以表示多种序列图,包括:
- 组装图
- Scaffolding 图
- 比对图
- 变异图
- 剪接图
其中 GFA1 更侧重于序列组装,GFA2 更强大、可扩展性更好。README 建议新应用应实现 GFA2。
2. 安装
支持系统
- Linux
- macOS 10.12 或更新版本
依赖
- 使用 C++ 和 Qt5 框架编写,因此需要安装 Qt5。
- 编译需要 GCC 7.1.0+ 或 clang 3.8.0+,旧版本可能导致编译错误。
- 图计算依赖 OGDF 库,但该库已随 GfaViz 一起打包。
编译安装
git clone https://github.com/ggonnella/gfaviz
cd gfaviz
qmake-qt5
make
SVG 支持
如果系统缺少 Qt SVG 相关库,可以安装缺失的头文件,或者在 qmake-qt5 时加上 NOSVG=true 来禁用 SVG 导出:
qmake-qt5 NOSVG=true
这样生成的版本无法导出 SVG,但其他功能正常。
3. 运行方式
运行可执行文件 gfaviz。
两种用户界面
- GUI:图形用户界面,默认模式,可交互。
- CLI:命令行界面,适合大图、批量处理或集成到软件流程中。使用
--no-gui或-n进入 CLI 模式。
打开文件
- GUI 模式下可以一次打开多个文件;也可以从菜单
File -> Open GFA file打开。 - CLI 模式下需要提供一个文件名。
- 支持 GFA1 和 GFA2。建议用 GfaLint 检查格式,用 GfaPy 修改 GFA 文件。
4. 布局选项
GfaViz 使用 OGDF 库提供两种布局算法:
- Stress Minimization (SM):默认算法,质量更好,但速度较慢。
- Fast Multipole Multilevel Method (FMMM):速度更快,适合大图。
使用 --fmmm 选项启用 FMMM。在 GUI 中,布局选项位于右侧面板下方,部分参数可以在 GUI 中调整,但 CLI 当前不支持这些参数。
5. 样式选项
可以改变不同元素的视觉表现。元素类型包括:seg(片段)、edge(边)、dovetail、internal、group(组)、gap(间隙)、fragment(片段比对)。
在 GUI 中
- 通过 Style 部件中的元素类型标签修改特定类型元素的样式。
- 若只想修改选中的单个元素,勾选 “apply changes to selection only”。
在 CLI 中
选项命名规则:先写元素类型,再写选项类型,例如 --seg-color、--seg-width、--edge-color 等。
片段(Segments)
- 默认画成多边形,颜色由
--seg-color控制,宽度由--seg-width控制。 - 可设置轮廓颜色和宽度,宽度设为 0 可禁用轮廓。
- 可用
--seg-as-arrow画成箭头,表示 DNA 链方向。 --weight-factor控制片段长度与 DNA 长度的比例。--minweight设置最小长度,保证极小片段可见。--seg-max-sub控制片段被分成多少子段;设为 1 则画成直线。
边(Edges)
--edge-width、--edge-color设置边的宽度和颜色。- 内部边和 dovetail 边可分别用
--internal-width、--internal-color、--dovetail-width、--dovetail-color设置。 --internal-length、--dovetail-length设置边长。- 比对位置可用高亮显示:
--edge-highlights-show开启,--edge-highlights-color设置颜色,--edge-highligths-color-random使用随机颜色。
间隙(Gaps)
- 默认用虚线表示,不影响布局。
--gaps-as-edges让间隙参与布局。--gap-length设置长度。--gap-color设置正长度间隙颜色,--neg-gap-color设置负长度间隙颜色。
片段比对(Fragments)
- 表示外部序列与片段的比对。
- 外部序列用矩形表示,宽度由
--fragment-width控制,颜色由--fragment-color控制。 --fragment-multlength设置长度乘数,--fragment-minlenght设置最小长度。--fwd-fragment-color和--rev-fragment-color根据比对方向设置不同颜色。- 连接线距离由
--fragment-dist控制,颜色由--fragment-conn-color控制,宽度由--fragment-conn-width控制。 - 高亮:
--fragment-highlights-show开启,--fragments-highlights-color设置颜色。
组(Groups)
- 用附加的彩色轮廓表示,多个组可以嵌套。
--group-width设置轮廓宽度,--group-colors设置颜色列表,按 GFA 文件中的组顺序。- GUI 中按住 CTRL 双击组内元素可选中整个组。
6. 标签样式
大多数元素都有名称,可以显示为文本标签,但默认不显示。
--labels开启所有标签;也可用--seg-labels、--edge-labels等单独开启。- 可设置字体、大小、颜色、轮廓宽度和颜色,如
--label-font、--frag-label-outline-color。 - 片段标签默认是 ID,可用
--seg-label-showlength显示长度,或用--seg-label-seq显示序列。 - GUI 中通过 Style 部件的 Label 标签调整。
7. 隐藏元素
默认显示所有元素,可以隐藏特定类型或单个元素。
- GUI:在 Style 部件中勾选 “hide element”。
- CLI:
--no-gaps、--no-fragments、--no-groups隐藏整类元素。注意--no-segments和--no-edges似乎缺失。 - 单个元素隐藏:在 GFA 文件的 JSON 标签
vo中添加"no-X":true,例如vo:J:{"no-segments":true}。
8. 渲染输出
可将图渲染为矢量图或位图:
-r, --render 渲染图到文件
-o, --output <filename> 输出文件名
-f, --output-format <format> 输出格式:BMP, PNG, JPG, JPEG, PBM, XBM, XPM, SVG,默认 PNG
-W, --width <width> 输出宽度(像素)
-H, --height <height> 输出高度(像素)
-t, --transparency 透明背景(仅 PNG)
--bg-color <value> 背景颜色
注意这些选项不会阻止 GUI 启动;若只想用 CLI,请加 --no-gui。
9. 样式表
样式表可以让不同图使用相同样式。通常从 GUI 中基于现有图创建,仓库的 style 目录中有示例。
应用样式表:
--usestyle <filename>
10. 树导航面板
GUI 右上角的树导航面板以树形展示 GFA 文件内容,功能包括:
- 查看元素信息(如片段长度、标签)
- 点击选择元素
- 探索元素之间的连接
11. 搜索元素
在搜索框中输入一个或多个 ID(空格分隔)可搜索命名元素。片段总有 ID,边、间隙、组等可选 ID,未命名元素无法搜索。
12. 选项列表
查看所有可用命令:
./gfaviz --help
13. 提示与技巧:TwoPacCo
当前 TwoPacCo 输出的 GFA1 和 GFA2 不符合标准。GFA2 问题较少(边行缺少字段),更容易使用。可以用以下命令修正 GFA2:
sed 's/^E/E\t*/' mygraph.gfa2 > mygraph.fixed.gfa2
14. 致谢、许可证、引用
- 图计算由 OGDF 库完成:http://www.ogdf.net/
- 软件使用 ISC 许可证,详见 LICENSE.txt。
- 引用格式:
Giorgio Gonnella, Niklas Niehus, Stefan Kurtz. GfaViz: Flexible and interactive visualization of GFA sequence graphs. Bioinformatics, bty1046 (2018). DOI: 10.1093/bioinformatics/bty1046
15. 已知问题
GUI 中保存图时可以选择 GFA1 或 GFA2 格式,但实际上文件总是保存为之前的格式,与选择无关。该格式选择选项将在后续版本中移除。若需转换格式,请使用 GfaPy。
总的来说,这个 README 是 GfaViz 的完整使用手册,涵盖了从安装、运行、界面操作到样式定制、渲染输出和已知问题的全部内容。它强调 GfaViz 支持 GFA1/GFA2,尤其擅长通过丰富的样式选项展示序列图的各种元素,如片段、边、间隙、片段比对和组。
genotype: 0/0, 0/1, 1/1 是遗传学中表示二倍体个体基因型的常见写法,通常出现在 VCF 文件的 GT 字段中。其中的数字和符号含义如下:
数字含义
- 0:参考等位基因(REF),即与参考基因组一致的等位基因。
- 1:第一个替代等位基因(ALT),即相对于参考序列发生变异的等位基因。
- 2、3…:如果存在多个替代等位基因,依次表示第二个、第三个 ALT。
分隔符 / 的含义
/表示 unphased(无相位信息)。- 意思是:我们知道这个个体有两个等位基因,但不知道哪个来自父方、哪个来自母方,也不知道这两个等位基因是否在同一条染色体上。
- 因此,
0/1和1/0在无相位信息时是等价的。
具体基因型解释
| 基因型 | 含义 | 通俗理解 |
|---|---|---|
0/0 | 两个等位基因都是参考 | 纯合参考 |
0/1 | 一个参考、一个替代 | 杂合,但不知道相位 |
1/1 | 两个等位基因都是替代 | 纯合替代 |
举例
假设参考序列在某 SNP 位点是 A,替代等位基因是 G:
0/0:A/A0/1:A/G(或G/A,不知道哪条染色体是哪个)1/1:G/G
与 0|0, 0|1, 1|1 的区别
|(竖线):表示 phased(有相位信息)。例如0|1表示一条染色体是 0,另一条是 1,顺序有生物学意义。/(斜杠):表示 unphased(无相位信息)。例如0/1只知道一个 0 一个 1,但不知道哪个等位基因在同一条染色体上。
所以:
0|1和0/1的等位基因组合相同,都是杂合。- 但
0|1告诉了你两个等位基因分别位于哪条染色体上(父源或母源),而0/1没有这个信息。
补充
- 二倍体生物通常有两个等位基因,所以写成两个数字。
- 单倍体只有一个数字;多倍体可能有多个,如
0/1/1。 - 如果看到
0/0,就是纯合参考;1/1是纯合替代;0/1是杂合。