Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

不仅仅是翻译的fanyi包 #4347

Closed
ixxmu opened this issue Jan 10, 2024 · 1 comment
Closed

不仅仅是翻译的fanyi包 #4347

ixxmu opened this issue Jan 10, 2024 · 1 comment

Comments

@ixxmu
Copy link
Owner

ixxmu commented Jan 10, 2024

https://mp.weixin.qq.com/s/E2jBPKs083bKJFX3gitjNg

@ixxmu
Copy link
Owner Author

ixxmu commented Jan 10, 2024

不仅仅是翻译的fanyi包 by YuLabSMU

最新的版本已经上线,所以大家可以通过下面的指令来安装了:

install.packages("fanyi")

这个包支持了哪些翻译服务?

  • 百度翻译
  • 必应翻译
  • 有道智云
  • 火山引擎
  • 彩云小译
  • 腾讯翻译君
  • 智谱清言

其中智谱清言就是基于大语言模型的,后续我们可能会探索一下,在这个包里是否有可能利用大语言模型做点其它的事情,而不仅仅是翻译。

这个包怎么工作的?

你首先要注册并开通这些服务,拿到密匙这些信息,通过set_translate_option()给进去,然后就可以用了。每个翻译服务,事实上我们都有对应的函数,可以调用。如百度的就是baidu_translate()而必应的就是bing_translate(),所以不会混。然后我们还有一个函数是translate(),它的翻译可以是任何一个支持的服务,到底用哪个,取决于当前的设定,而设定是set_translate_source()函数来指定的。

对于每一个翻译服务,我们在包的主页,https://github.com/YuLab-SMU/fanyi,的README里,都有详细的介绍:

翻译实例

library(fanyi)

##
## run `set_translate_option()` to setup
##

text <- '我都不知道做人该怎么办,总之报纸写啥就信啥,电视演啥我就看啥。'
translate(text, from='zh', to='en')

I don’t even know what to do as a person. In short, I believe whateveris written in the newspaper and watch whatever is shown on TV.

translate(text, from='zh', to='th')

ผมไม่รู้ว่าการเป็นมนุษย์ควรทําอย่างไร สรุปแล้วหนังสือพิมพ์เขียนอะไรก็เชื่ออย่างนั้นทีวีเล่นอะไรก็อ่านอย่างนั้น

translate(text, from='zh', to='jp')

私は人間としてどうすればいいのか分からないが、とにかく新聞は何を書いても何を信じても、テレビは何を演じても私は何を見てもいい。

translate(text, from='zh', to='fra')

Je ne sais pas quoi faire en tant que personne, je crois ce que lesjournaux écrivent, je regarde ce que la télévision fait.

翻译还能嵌套

翻译有时候也不尽如意的,如果某一个翻译器翻A语言到B语言比较好,而另一个翻译器翻译B语言到C语言比较好,它俩结合一下,A->B->C,比单独用这两翻译器A-C要好的话,你能结合起来用。

此处只是演示,并不是说这样更好,我反正看不懂法文。

我们还有小工具

立省30万的小词典

为什么省30万,猛击此处

翻译ggplot图

来一段我们熟悉的富集分析,出来的图,我们用不同语言翻译一下y轴:

library(DOSE)
library(enrichplot)
data(geneList)
de <- names(geneList)[1:200]
x <- enrichDO(de)
p <- dotplot(x)
p2 <- translate_ggplot(p, axis='y')
p3 <- translate_ggplot(p, axis='y', to='kor')
p4 <- translate_ggplot(p, axis='y', to='ara')
aplot::plot_list(English = p, Chinese = p2, 
                Korean = p3, Arabic = p4, ncol=2)

翻译基因信息

这是生物坑里小伙伴的最爱了,也就是我们说的,赋能毕业论文写作。一方面是翻译各种文本,另一方面是你的基因信息,可能不需要花时间查找整理了,直接抓取,批量翻译。

下面是实例:

symbol <- c("CCR7""CD3E")
gene <- clusterProfiler::bitr(symbol, 
            fromType = 'SYMBOL'
            toType = 'ENTREZID'
            OrgDb = 'org.Hs.eg.db')

gene
##   SYMBOL ENTREZID
## 1 CCR7 1236
## 2 CD3E 916
res <- gene_summary(gene$ENTREZID)
names(res)
## [1] "uid"         "name"        "description" "summary"
d <- data.frame(desc=res$description,
              desc2=translate(res$description))
d
##                                             desc                     desc2
## 1 C-C motif chemokine receptor 7 C-C基序趋化因子受体7
## 2 CD3 epsilon subunit of T-cell receptor complex T细胞受体复合体的CD3ε亚基
res$summary

[1] The protein encoded by this gene is a member of the Gprotein-coupled receptor family. This receptor was identified as agene induced by the Epstein-Barr virus (EBV), and is thought to be amediator of EBV effects on B lymphocytes. This receptor is expressedin various lymphoid tissues and activates B and T lymphocytes. It hasbeen shown to control the migration of memory T cells to inflamedtissues, as well as stimulate dendritic cell maturation. The chemokine(C-C motif) ligand 19 (CCL19/ECL) has been reported to be a specificligand of this receptor. Signals mediated by this receptor regulate Tcell homeostasis in lymph nodes, and may also function in theactivation and polarization of T cells, and in chronic inflammationpathogenesis. Alternative splicing of this gene results in multipletranscript variants. [provided by RefSeq, Sep 2014]

[2] The protein encoded by this gene is the CD3-epsilon polypeptide,which together with CD3-gamma, -delta and -zeta, and the T-cellreceptor alpha/beta and gamma/delta heterodimers, forms the T-cellreceptor-CD3 complex. This complex plays an important role in couplingantigen recognition to several intracellular signal-transductionpathways. The genes encoding the epsilon, gamma and delta polypeptidesare located in the same cluster on chromosome 11. The epsilonpolypeptide plays an essential role in T-cell development. Defects inthis gene cause immunodeficiency. This gene has also been linked to asusceptibility to type I diabetes in women. [provided by RefSeq, Jul2008]

translate(res$summary)

[1]该基因编码的蛋白质是G蛋白偶联受体家族的成员。该受体被鉴定为EB病毒(EBV)诱导的基因,被认为是EB病毒对B淋巴细胞影响的媒介。这种受体在各种淋巴组织中表达,并激活B和T淋巴细胞。它已被证明可以控制记忆T细胞向炎症组织的迁移,并刺激树突细胞成熟。据报道,趋化因子(C-C基序)配体19(CCL19/ECL)是该受体的特异性配体。该受体介导的信号调节淋巴结中的T细胞稳态,也可能在T细胞的激活和极化以及慢性炎症发病机制中发挥作用。该基因的选择性剪接导致多种转录物变体。【RefSeq提供,2014年9月】

[2]该基因编码的蛋白质是CD3ε多肽,其与CD3γ、-Δ和-ζ以及T细胞受体α/β和γ/Δ异二聚体一起形成T细胞受体-CD3复合物。这种复合物在将抗原识别与几种细胞内信号转导途径偶联方面起着重要作用。编码ε、γ和δ多肽的基因位于11号染色体上的同一簇中。ε多肽在T细胞发育中起着重要作用。这种基因的缺陷会导致免疫缺陷。该基因也与女性易患I型糖尿病有关。【RefSeq提供,2008年7月】

文章实例怎么说?

我们写了个小文章,搞了点小例子。

单细胞的marker genes

把不同cell types的marker genes爬回来信息,和检验的结果,像什么fold change, p.adjust啥的,全整一张表输出出来,这不就节省查信息的时间了,当然这个基因信息,还能翻成中文。

基因信息各种能用

比如图A,画基因在不同细胞类群里的表达情况,我在旁边把基因信息给打出来,嗯,你同样可以打个中文版本,乃至中英文对照,方便自己解析。

C图,画了一个基因的表达情况,这个图用ggsc包画的,图的副标题,就加了基因的全称,图下面就标注了基因的信息。这样子,图就成了自带解说的图了,信息量满满。而这些信息全是由fanyi包里的函数在线爬回来的,而且你当然也能翻成各种语言。

热图注释

第三个图我用ggtree画了一个差异基因的热图,把基因的全称给抓下来,并且翻译成中文,打在右边,这样左边是基因名,右边是中文全称,看起来是不是很清楚这些基因是干啥的啦!右边是富集分析图的翻译,前面已经有演示过了。

代码全部在我们的文章里有,完全可参考,可重复,在当前这个时间点里,拯救大家的毕业论文。这篇文章,已经有不少编辑来约了,欢迎大家引用,让引用先飞一会。

@ixxmu ixxmu changed the title archive_request 不仅仅是翻译的fanyi包 Jan 10, 2024
@ixxmu ixxmu closed this as completed Jan 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant