13 个版本

0.3.9 2023 年 5 月 10 日
0.3.8 2023 年 3 月 23 日
0.3.2 2023 年 1 月 3 日
0.3.1 2022 年 11 月 29 日
0.1.1 2022 年 11 月 22 日

#33 in 生物学

Download history 4/week @ 2024-03-12 14/week @ 2024-03-19 1/week @ 2024-03-26 6/week @ 2024-04-02 2/week @ 2024-05-28

每月 164 下载

MIT 许可证

52KB
1K SLoC

rnapkin: 用风格绘制 RNA 二级结构

Crates.io Downloads

用法

rnapkin 接受包含二级结构的文件,可选序列和名称。例如,您可以有一个这个令人惊叹的 RNA 分子安静地坐在名为 "guaniners" 的文件中。

>fantastic guanine riboswitch
AAUAUAAUAGGAACACUCAUAUAAUCGCGUGGAUAUGGCACGCAAGUUUCUACCGGGCAC
..........(..(.((((.((((..(((((.......)))))..........((((((.
CGUAAAUGUCCGACUAUGGGUGAGCAAUGGAACCGCACGUGUACGGUUUUUUGUGAUAUC
......)))))).....((((((((((((((((((........))))))...........
AGCAUUGCUUGCUCUUUAUUUGAGCGGGCAAUGCUUUUUUUA
..)))))))))))).)))).)))).)..).............

然后,如果您想可视化它,可以像这样调用 rnapkin

rnapkin guaniners

当然,rnapkin 会响应它刚刚绘制的文件名

fantastic_guanine_riboswitch.svg

这将产生一个可缩放的矢量图形

恰好非常喜欢这个结果,所以 会说

that's pretty neat

但是效果可能因人而异。

旋转和翻转

如果您想看到这个或任何其他 RNA 分子倒置、倾斜或其他任何方式,以下有一些选项可供您使用和组合

-a / --angle <DEGREES> | starting Angle / boils down to clockwise rotation
--mx                   | Mirror along X axis / aka vertical flip
--my                   | Mirror along Y axis / aka horizontal flip

可以通过 -t 选项更改颜色主题,如所示;计划有一个配置文件允许定义自定义颜色主题,但目前尚未实现!()

安装

我计划提供预编译的二进制文件,但到目前为止,您需要 rust。获取 rust 的最简单方法是使用 rustup 🦀

任何地方

cargo install rnapkin

WSL

Fontconfig 是 Linux 和 Unix 的默认字体管理工具,但 WSL 可能没有安装它们;

sudo apt-get install libfontconfig libfontconfig1-dev
cargo install rnapkin

输入

输入可以作为文件提供给 rnapkin 或通过管道输入

rnapkin cmolecule.fa -a 20 -o crab
echo ".......(((((......))))).....(((((......)))))......." | rnapkin -a 20 -o crab

输入相当 灵活;它应包含二级结构,可选名称和序列。名称必须以 ">" 开头,并且可以通过 -o 标志覆盖,该标志具有优先级。以下是有效输入文件的一些变体

简单的一个

# you can add .png to the name to request png instead of svg
@ the same of course can be achieved with -o flag.
* this is a comment btw: any symbol other than ">.()" works but prefer "#"
>simple molecule.png
((((((((((..((((((.........))))))......).((((((.......))))))..)))))))))
CGCUUCAUAUAAUCCUAAUGAUAUGGUUUGGGAGUUUCUACCAAGAGCCUUAAACUCUUGAUUAUGAAGUG

突出显示!

9 种可用的颜色,用 1-9 表示,而 0 表示无。例如,考虑以下输入,它表示根据 Manz 等人 2017 年的 smFRET 研究,SAM 乳糖操纵子在 OFF 构象下的 RNA 分子。通过使用输入中的数字,我们可以标记形成螺旋 P1、P2、P3、P4 的 aptamer(#2-#5)和 终止符(#1)。

> offsam

0000022222222223333333333333333333333333333333333444444444444444444444444444444
AUAUCCGUUCUUAUCAAGAGAAGCAGAGGGACUGGCCCGACGAUGCUUCAGCAACCAGUGUAAUGGCGAUCAGCCAUGA
.......((((((((....(((((...(((.....)))......)))))(((..(((((...(((((.....))))).)

4444444444555555555555555555555555555522222222222211111111111111111111111111111
CUAAGGUGCUAAAUCCAGCAAGCUCGAACAGCUUGGAAGAUAAGAAGAGACAAAAUCACUGACAAAGUCUUCUUCUUAA
))..)).)))........((((((.....))))))...)))))))).................((((((.((((...))

111111111111
GAGGACUUUUUU
)).))))))...

只有二级结构

.........(((..((((((...((((((((.....((((((((((...)))))).....
(((((((...))))))).))))(((.....)))...)))).)))).))))))..)))..(
(((.(((((..(((......))).)))))..))))(((((((((((((....))))))))
))))).....

多行

序列和二级结构可以是分开的、混合的和对齐的,一切都应该正常工作。

DIY

使用 -p / --points 标志,您可以让 rnapkin 打印核苷酸泡的计算坐标(半径为 0.5 个单位)。如果需要做特定的事情,您可以自己绘制它;

如果您不小心克隆了存储库,这里有一个使用 matplotlib 的 Python 脚本示例,您可以将输入管道传输给它。

cargo run -- atelier/example_inputs/guaniners -p | atelier/plot.py

您还可以将 -p 标志与 --mx --my 和 -a 结合使用。

rnapkin 名称

这个词的编纂过程非常艰难。它涉及到在 Google 上搜索“以 na 开头的单词”并寻找任何与绘图相关的单词。一旦找到这个词,就全力以赴将其放在“rna”的前面,最终创造出这个辉煌的结合体。

为什么它有点道理

您有没有听说过所有那些物理学家、数学家和类似的人,在纸巾的背面(或者书的页边空白处)乱写公式?甚至还有一个关于它的 维基百科页面

想象一个生物学家在纸巾上慌乱地拼凑 RNA 结构并不需要太多智力运动。我现在正在努力让我的生物学家朋友在靠近大量纸巾的地方激烈地争论 RNA 的问题,以便产生一个概念验证。

依赖关系

~16MB
~139K SLoC