引言

在科研初期,有些导师很喜欢让学生写综述,认为这能够系统性地学习某一领域的知识,有助于快速提升学生在单一领域的学术素养和研究能力,同时还能提高文献调研和学术写作能力。然而,实际上学生花费两到三个月的时间,尽管感到十分疲惫,却往往收获甚微。这背后有几个原因:

  1. 时间消耗大
  2. 不知道如何着手写作
  3. 容易停留在表面总结

对于缺乏经验的学生来说,他们往往会陷入随机查找文献和粗略总结的状态,既感到疲惫,又缺乏成就感。这种方式不仅效率低下,也很难在过程中获得实质性的学术进展。

所以,这里介绍一种快速检索文献和记录的方法,能够快速地找到某一领域的文献进行检索并记录。

使用到的工具:

效果展示

文献检索记录模板

数据集检索记录模板

过程

大方向

第一步,如果是还没有开始研究,主要是学习方法,就去除自己要选择的疾病和数据倾向,只选择自己感兴趣的方法,比如要用机器学习关键词就包含机器学习,要使用神经网络关键词就包含神经网络。总之就是留下你需要查询的主干。

同理,如果你是要专注某一个领域比如糖尿病,那么就留下糖尿病相关的关键词,然后再根据自己的需求增加其他关键词减少文章的数量。事实上理想情况下我们当然是希望可以看完所有的文章,但是这是不可能的,世界上那么多人都在做研究,怎么可能能看完所有文章,掌握所有技巧呢,不可能的。因此,我们只对对自己最有用的知识感兴趣。

对于我个人来说,第一轮搜索往往是去大量的看方法,所以我除了会记录文献的标题、摘要、年份、影响因子、链接等,还会记录文献中用到的方法和数据量,然后对其对我的价值进行评分,评分分 3 个档次,1 分,2 分,3 分,也就是一般,有用,非常有用,另外还有一个 10 分,也就是非常非常有用 (照着抄就行)。

具体方向

第二步,你已经有了一个大概的文献列表,然后你就可以开始阅读文献,从中确定你自己的研究路径。

数据集

第三步,再检索一次文献,这一次只对自己的目标疾病和数据种类进行检索,比如非小细胞肺癌 + 转录组学,并记录文献中的数据集。值得注意的是,考虑到查全和查准,需要对疾病的名称做多次检索,可以考虑使用 Pubmed 的 Mesh 词系统等。

对于生信来说,如何获取有效的数据集非常重要。数据集的记录最主要包括数据集的名称,描述,样本量,数据类型,样本类型 (组织/细胞系),数据链接。

小技巧

所谓小技巧,就是没有也能做,但是有了可以显著提高效率的东西。

首先介绍一下 XMOL 学术平台,这是一个学术资源整合平台,可以检索到很多学术资源,而本次作者主要使用它来检索学术期刊文献。

高级检索地址:

https://www.x-mol.com/paper/search

这个平台的好处就是,首先他具有双语搜索,第二他自带了影响因子等评价。

然后介绍一个复制 xmol 信息的小技巧。我写了一个 javascript 脚本用来复制我认为比较有用的信息,包括标题、摘要、年份、影响因子、链接等,当然你认为有用的信息也可以加到脚本里。

使用方法:

  1. 随便收藏一个网页到收藏夹栏,然后拉到显眼的位置
  2. 鼠标右键点击上一步收藏网页的图标,右键选择编辑
  3. 名称:复制 xmol 信息
  4. 地址:将以下代码粘贴到地址栏 (URL)
1
javascript:(function()%7Bvar%20allStrongElements%3Ddocument.querySelectorAll(%22strong%22)%3Bvar%20copiedContent%3D%5B%5D%3Bfunction%20copyTextToClipboard(text)%7Bvar%20tempInput%3Ddocument.createElement(%22textarea%22)%3BtempInput.value%3Dtext%3Bdocument.body.appendChild(tempInput)%3BtempInput.select()%3Bdocument.execCommand(%22copy%22)%3Bdocument.body.removeChild(tempInput)%3B%7Dfunction%20collectContent()%7BcopiedContent.push(allStrongElements%5B0%5D.textContent.trim())%3Bvar%20magazineContent%3Ddocument.querySelector(%22.magazine-content%22)%3Bif(magazineContent)%7Bvar%20span%3DmagazineContent.querySelector(%22span%22)%3Bif(span)%7Bvar%20cleanContent%3Dspan.textContent.replace(%2F%5Cs%2B%2Fg%2C'')%3BcopiedContent.push(cleanContent)%3B%7Delse%7BcopiedContent.push(%22%22)%3B%7D%7Delse%7BcopiedContent.push(%22%22)%3B%7Dvar%20numbers%3DallStrongElements%5B1%5D.textContent.match(%2F%5Cd%7B4%7D%2Fg)%3Bif(numbers)%7BcopiedContent.push(numbers.join(%22%22))%3B%7Delse%7BcopiedContent.push(%22%22)%3B%7Dvar%20orangeSpan%3Ddocument.querySelector(%22span%5Bstyle%3D'color%3Aorange'%5D%22)%3BcopiedContent.push(orangeSpan%3ForangeSpan.textContent%3A%22%22)%3BcopiedContent.push(window.location.href)%3Bvar%20result%3DcopiedContent%5B0%5D%2B%22%5Ct%22%2BcopiedContent%5B1%5D%2B%22%5Ct%5Ct%5Ct%5Ct%22%2BcopiedContent.slice(2).join(%22%5Ct%22)%3BcopyTextToClipboard(result)%3B%7DcollectContent()%3B%7D)()%3B

复制 xmol 信息代码使用

这是我本人自用的模板链接,可以根据目的自行修改:

https://wwao.lanzoue.com/b00g2qg34j

密码:

7nai

其他网站复制方式

Pubmed

这是使用 easyScholar 插件获得影响因子的方式,其他插件可以自行更改。

1
javascript:(function()%7Bvar%20result%3D%5B%5D%3Bvar%20title%3Ddocument.querySelector(%22h1%22)%3F.innerText.trim()%7C%7C%22%22%3Bresult.push(title)%3Bvar%20abstract%3Ddocument.querySelector(%22%23abstract%22)%3F.innerText.replace(%2F%5Cs%2B%2Fg%2C%27%20%27).trim()%7C%7C%22%22%3Bresult.push(abstract)%3Bresult.push(%22%22)%3Bresult.push(%22%22)%3Bresult.push(%22%22)%3Bvar%20timeText%3Ddocument.querySelector(%22.cit%22)%3F.textContent%7C%7C%22%22%3Bvar%20date%3D%22%22%3Bif(timeText)%7Bvar%20match%3DtimeText.split(%22%3B%22)%5B0%5D%3Bif(match)%7Bdate%3Dmatch.trim()%7D%7Dresult.push(date%7C%7C%22%22)%3Bvar%20sourceDiv%3Ddocument.querySelector(%22div.article-source%22)%3Bvar%20ifValue%3D%22%22%3Bif(sourceDiv)%7Bvar%20ifElements%3DsourceDiv.querySelectorAll(%22span.easyscholar-ranking%22)%3Bfor(var%20i%3D0%3Bi%3CifElements.length%3Bi%2B%2B)%7Bvar%20text%3DifElements%5Bi%5D.innerHTML%3Bif(text.includes(%22IF%22))%7Bvar%20match%3Dtext.match(%2FIF%5Cs*(%5Cd%2B%5C.%3F%5Cd*)%2F)%3Bif(match)%7BifValue%3Dmatch%5B1%5D%3Bbreak%7D%7D%7D%7Dresult.push(ifValue)%3Bvar%20link%3Dwindow.location.href%7C%7C%22%22%3Bresult.push(link)%3Bvar%20finalText%3Dresult.join(%22%5Ct%22)%3Bvar%20tempInput%3Ddocument.createElement(%22textarea%22)%3BtempInput.value%3DfinalText%3Bdocument.body.appendChild(tempInput)%3BtempInput.select()%3Bdocument.execCommand(%22copy%22)%3Bdocument.body.removeChild(tempInput)%3Bconsole.log(%22%E5%B7%B2%E5%A4%8D%E5%88%B6%E5%86%85%E5%AE%B9%3A%22%2CfinalText)%7D)()

其他

事实上这个脚本的 URL Decoder 格式是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
(function () {
var result = [];

// 获取标题
var title = document.querySelector("h1")?.innerText.trim() || "";
result.push(title);

// 获取摘要
var abstract =
document
.querySelector("#abstract")
?.innerText.replace(/\s+/g, " ")
.trim() || "";
result.push(abstract);

// 添加 3 个空字符串来产生额外的 tab
result.push("");
result.push("");
result.push("");

// 获取时间
var timeText = document.querySelector(".cit")?.textContent || "";
var date = "";
if (timeText) {
var match = timeText.split(";")[0];
if (match) {
date = match.trim();
}
}
result.push(date || "");

// 获取 IF 值
var sourceDiv = document.querySelector("div.article-source");
var ifValue = "";
if (sourceDiv) {
var ifElements = sourceDiv.querySelectorAll("span.easyscholar-ranking");
for (var i = 0; i < ifElements.length; i++) {
var text = ifElements[i].innerHTML;
if (text.includes("IF")) {
var match = text.match(/IF\s*(\d+\.?\d*)/);
if (match) {
ifValue = match[1];
break;
}
}
}
}
result.push(ifValue);

// 获取链接
var link = window.location.href || "";
result.push(link);

// 组合所有内容并复制到剪贴板
var finalText = result.join("\t");

var tempInput = document.createElement("textarea");
tempInput.value = finalText;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);

console.log("已复制内容:", finalText);
})();

可以看到,这个脚本实际上是获取了标题,摘要,时间,影响因子,链接,然后使用 tab 键分隔,然后复制到剪贴板。

其中复制影响因子的获取方式是获得 class 为 article-source 的 div 标签,然后获取其 class 为 easyscholar-ranking 的 span 标签,然后获取其 innerHTML, 然后获取其中的数字部分为 IF 值。

比如按颜色查找:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// ... existing code ...

// 获取IF值 - 新的获取方式
var ifValue = "";
var spans = document.querySelectorAll("span");
for (var i = 0; i < spans.length; i++) {
var span = spans[i];
if (span.style.background === "rgb(0, 113, 203)" ||
span.style.backgroundColor === "rgb(0, 113, 203)") {
var text = span.textContent;
if (text.includes("IF:")) {
var match = text.match(/IF:\s*(\d+\.?\d*)/);
if (match) {
ifValue = match[1];
break;
}
}
}
}
result.push(ifValue);

// ... existing code ...

结论

我们的目标是,少雕花,多做事,把时间花在刀刃上。