-
Notifications
You must be signed in to change notification settings - Fork 0
/
search.xml
5854 lines (5787 loc) · 613 KB
/
search.xml
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>每日早报--认识世界</title>
<url>/2024/10/21/ad715d53afba/</url>
<content><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\assets\js\Meting.min.js"></script><div id="vip-container"><h1><center>今日新闻</center></h1>
<center><span id="date"></span></center>
<script>document.getElementById('date').textContent = new Date().toLocaleDateString();</script>
<span id="more"></span>
<p><img data-src="https://v2.alapi.cn/api/zaobao?token=PjSXcfOsbFbutaW9&format=image" alt=""></p>
</div>
<script src="https://my.openwrite.cn/js/readmore.js" type="text/javascript"></script>
<script>
var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
if (!isMobile) {
var btw = new BTWPlugin();
btw.init({
"id": "vip-container",
"blogId": "33502-1730425843713-524",
"name": "虫子的生存笔记",
"qrcode": "https://leaf-miner.pages.dev/image/%E5%85%AC%E4%BC%97%E5%8F%B7.png",
"keyword": "more"
});
}
</script>
]]></content>
<categories>
<category>笔记</category>
<category>其他</category>
</categories>
<tags>
<tag>新闻</tag>
<tag>API</tag>
<tag>今日</tag>
<tag>热点</tag>
<tag>全球</tag>
</tags>
</entry>
<entry>
<title>安全套与不倒翁 | 杨殳</title>
<url>/2024/11/29/433d505a57c9/</url>
<content><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\assets\js\Meting.min.js"></script><div id="vip-container"><p>1</p>
<p>他们说最近城里有丧尸,我根本不信,都市传说而已。</p>
<p>那天夜里两点半,我去找老徐买安全套。这个时间去,一是安全,二是心急。</p>
<p>说来惭愧,单身好多年,安全套这东西,我其实没真的用过。现在好了,终于谈了恋爱。我们感情很不错,决定进一步发展。</p>
<p>打车到了虎坊桥,再走一段小路,找到老徐家。</p>
<p>超市当然有安全套和避孕药卖,虽然限购令规定只准卖给已婚已育的人,但总有办法浑水摸鱼。</p>
<p>关键是我不信任超市的货,网上卖的我也不信。</p>
<p>老徐从前是个做公众号的,穷了很多年,没想到人过中年,铤而走险一回,靠倒卖安全套发了小财。他有三个孩子,每月可以合法买二十个。</p>
<span id="more"></span>
<p>我不信超市和电商,是因为另一个都市传说,说是有不少人拿着针在超市里扎安全套,最近他们还被安插进了电商库房,发货前扎一扎。</p>
<p>这个都市传说我相信,因为从某种逻辑上说是合理的。至于是哪种逻辑,我也说不上来,可在这城里生活久了,你就会知道什么是合理。</p>
<p>2</p>
<p>满怀激动地揣着安全套从老徐家出来,还走回虎坊桥打车。</p>
<p>树影里突然有响动,像是谁趿拉着鞋走路,我好奇地停下张望,那人就到了眼前,朝我扑上来。</p>
<p>我后撤两步,定睛一瞧,是个烂脸的男人,眼歪口斜。我想跑,被他从身后扑住,死沉。</p>
<p>虽然不信丧尸,但我看过不少丧尸片,他那模样的确像个丧尸。挣扎之中,他张口咬向我的脖子。</p>
<p>尖牙上黏着黑血丝,真是个丧尸。原来丧尸是有口臭的,像吃了韭菜饺子。</p>
<p>我闭上眼惨叫,要晕过去。</p>
<p>睁开眼时,一个小胡子站在跟前,握着根铁棍,那丧尸的头被他使劲踩在脚下,身子还在蠕动。</p>
<p>他身材瘦小,戴了副黑框眼镜,自我介绍说是个教授。</p>
<p>他让我跟他走。我一向对陌生人谨慎,不敢答应。</p>
<p>小胡子一抬脚,丧尸腾一声立起来,直挺挺地,像装了弹簧。眼看丧尸又扑过来,我差点尿裤子,跟着小胡子跑进了胡同。</p>
<p>小胡子拽着我一路飞跑,停在一栋老楼前,邀请我到他家坐坐。我回头看,小胡子说,追不上,他行动很慢。</p>
<p>我看他像是很懂丧尸的样子,就随他进了楼,反正也很难打到车。</p>
<p>小胡子引着我走进地下室,怪不得他身上有股潮气。</p>
<p>到了一个房间门口,墙上嵌着一张电子屏,广告里的男女令我心中一荡。</p>
<p>我摸摸裤兜的安全套,还在。</p>
<p>3</p>
<p>房间的四壁包着黑铁皮,到处是书。纸的霉味和铁锈气刺入鼻腔,有点头疼。</p>
<p>小胡子给我冲包速溶咖啡,灯下才看清他的脸,原来不戴眼镜,是黑眼圈太黑了,像几年没睡觉。</p>
<p>我再次谢谢他,说没想到真的有丧尸。</p>
<p>他不置可否,说传言都是这样,传着传着就变成真的了。我想了想,确实如此。</p>
<p>他问,知道那东西为什么扑你吗?</p>
<p>我说,那东西?不是丧尸吗?</p>
<p>他点上一根烟,摇头,只是长得像丧尸,不算是。</p>
<p>小胡子不再解释,朝我喷口烟,说因为你身上有味儿。</p>
<p>有味儿?</p>
<p>精液的气味儿。</p>
<p>我红了脖子,但还是忍不住揪起衣领闻了闻。小胡子说的没错。这几年我经常自慰,恋爱后也常偷摸自己来。找老徐高价买套,就是为了享受真正的性爱。</p>
<p>小胡子说,丧尸是个传说。</p>
<p>——你知道加勒比海吧,那里从前有一群巫师,给人催眠或者下药,人就像死了一样,埋之后再挖出来,脑袋上钉根棍子,他们就失去了记忆,对你言听计从,就是活死人。</p>
<p>我想起看过的恐怖片《活死人之夜》,于是问到,他们吃人吗?</p>
<p>不,他们下地干活,主人需要什么就干什么。小胡子说完,从桌上拿起一本旧书递给我,书名叫《挺族消亡简史》。</p>
<p>我翻开,见扉页上写着一句题词:</p>
<p>我看起来像是在轻飘飘慢吞吞地下坠,可是你知道吗?我灵魂中有一种什么东西得到了升华。——于观</p>
<p>这句话有点眼熟,但我想不起来在哪里见过。</p>
<p>我又翻开书的目录看——</p>
<p>“挺字源流考”、“从丧到挺的概念演变”、“挺是意识还是行动抑或口嗨”、“五百个样本:挺族的生物学研究”、“浅析挺族背后人的主体性”……</p>
<p>原来是本论文集。</p>
<p>我眼花缭乱,想起十几年前的事情,世界各地出现一个散居的部落,被人们叫做挺族,据记载,这些人都很懒,每天光挺尸睡大觉就要用掉八小时,而且不爱花钱,不爱谈恋爱,有的连房子都没有。当时的新闻批判他们可耻。</p>
<p>后来很快,不知道什么原因,没人再谈论他们,挺族就像一个热搜话题,歘地冒出来又歘地不见了。</p>
<p>我翻到这本书的版权页,果然不是正规出版物。</p>
<p>可这跟丧尸——以及我自慰有什么关系?</p>
<p>3</p>
<p>正要问,小胡子又从书堆里扒出一本没有封面的书,翻开一页,指给我看一句话:</p>
<p>……动辄以立枷示威,前后毙者数以千计……</p>
<p>什么意思?我问他,立枷是什么?</p>
<p>就是站笼。</p>
<p>他说,世上最难熬的刑罚有两种,一是熬鹰,让你一直醒着,二是站笼,让你一直站着。</p>
<p>我很认同,说因为会累啊,人活着,最难熬的就是累,钝刀拉肉,生不如死。</p>
<p>小胡子笑笑,说你还挺会打比方,有点文化。</p>
<p>我心中得意,也笑笑。</p>
<p>不过,当听完小胡子解释完丧尸和自慰的关系,我笑不出来了。</p>
<p>那只丧尸弹性很好,对不对?小胡子问。</p>
<p>我说是。他也用了丧尸这个词。</p>
<p>因为他本来就是一只不倒翁,就是不会倒的人,一直站着。</p>
<p>小胡子说,不倒翁是城市有关单位专门研制的新型市民,身体健康就能报名试验,无痛无感,一个月就能完成转变。</p>
<p>我问,老站着怎么睡觉?</p>
<p>不用睡,小胡子说,当然,试验还不完美,据说现在的不倒翁会有点晕——你遇到的那个,是彻底的失败品,前一阵子跑出来了,城里应该有几十只,他们会攻击自慰的人,能闻到那种气味儿。你记得从前有个电影叫《寂静之地》吧?小胡子说,电影里的怪物听见人弄出声响就攻击,不倒翁几十公里外就能闻到你在自慰。</p>
<p>什么?我又想发笑,但笑容僵在脸上。</p>
<p>小胡子拉开了衣柜,里面站了个人,脸上没烂,但挂着诡异的笑。</p>
<p>别怕,小胡子说,这个是我捡来的,也是个失败的不倒翁,已经死了。</p>
<p>他打个哈欠,露出一口黄牙,说,不是我出手,你已经变成不倒翁了——被咬了也会变成他们。</p>
<p>我想起那张烂脸和韭菜味儿,一阵后怕。</p>
<p>才三点半,我却不敢告辞。小胡子虽然怪怪的,但总算是个同类。</p>
<p>4</p>
<p>小胡子问我,想不想知道挺族是怎么消失的。</p>
<p>确实有点好奇。</p>
<p>我说,和不倒翁有关?</p>
<p>小胡子说,其实,当年的挺族没消失,只是他们年纪大了,很多人自己站起来了——当然也有不少是跪着,只有极少数总是扶不起来的,被拿来做了科研素材。</p>
<p>说完,他从衣柜里拉出那具尸体,推倒,尸体又弹了起来,像个玩具。</p>
<p>关于挺,当年人们争论的不是一回事,小胡子说,老年人说的经济体,年轻人说的是个体,有人认为是认命,有人觉得正是不认命才选择做挺族,你能听懂吗?</p>
<p>我说不是太懂。</p>
<p>流行词是蜡烛,挺的概念一出现,就迅速膨胀,遇到高温就熔化,又被按需重塑,你捏一只马,他捏一只鹿,指鹿为马,说三道四。</p>
<p>我有点懂了,耐心听他说。</p>
<p>不过,有一点可以确定,挺是一个姿势,任何姿势都是一种表达,汹涌的表达一旦汇聚,就难免被当做洪水猛兽,你有点文化,一定了解历史上那些事——这点不用我说。</p>
<p>我其实没那么多文化,但他不容我发问,继续讲,还做起了手势。</p>
<p>——人为什么睡觉前爱琢磨事儿?因为挺这个姿势,尤其容易让人思考,有当年加入挺族的人说,那是一个让人想到自己需求的姿势,所谓主体性。</p>
<p>见我愣愣地不说话,他停下来,说我打个比方——你参加一场越野登山竞赛,登顶就有巨额奖金,但途中有猛虎和暴风雪,你带好干粮往上爬,爬一半发现有人带的干粮比你多,有人能打虎,有人衣服厚,甚至有人坐直升机,而且主办方不提供安全保障。你会不会心生退意,选择退赛或待在半山腰?可能还会一边下山一边说,底下也不错,奖金虽多,可山顶一瓶水都一百块呢。</p>
<p>我连连点头,说我就是这样淡泊名利。</p>
<p>他打断我,说比淡泊复杂,还有无望,不满,自嘲,怀疑,以及羡慕、嫉妒、恨。</p>
<p>我又猛点头,问他为什么。</p>
<p>他夺过咖啡,自己喝了一口,然后使劲踹了一脚不倒翁。不倒翁摇摇晃晃,诡异的笑容不那么可怕了。</p>
<p>但是,这并非主体性。小胡子说,况且,如果那是座假山呢,玩过游戏吧,一座山峰可能是一台机器,每个登山者都是动力源。</p>
<p>5</p>
<p>小胡子扶住不倒翁说,这个东西,内部名字叫作消费人,不睡觉不思考,就能一直消费。</p>
<p>他情绪激昂,我有些怀疑,问他怎么了解那么清楚。</p>
<p>小胡子沉吟片刻,叹口气说,我就是消费人研制者之一,不过现在退出了,因为哲学方面的思考更让我兴奋,否则不会跟你讲这些——不要打断我。</p>
<p>我看看表,决定再听他说一会儿,天亮了就走。</p>
<p>于是我像个学生,他像个老师,不倒翁就是个教具。</p>
<p>登山竞赛的问题,他说,不在于奋斗还是懒惰,而是规则本身就是个骗局,消费人的骗局。美国社会学家弗洛姆有个观点,为满足欲望而奋斗在当代社会是一门新的宗教,让人有追求幸福的幻觉,其实你消费得越多,就越像个奴隶,被产业系统制造和操控的日益膨胀的需求绑架。</p>
<p>什么意思?我还是忍不住打断他。</p>
<p>就是你的工作是在为别人制造消费需求,同时又被别人工作制造出来的需求诱惑,花掉挣来的钱,他说,一个经济体的发展维持,需要源源不断的消费人,就是你。</p>
<p>这话有点绕,但我听懂了。</p>
<p>我想了一会儿,说,不过——我想消费什么好像可以自由选择?</p>
<p>小胡子哈哈大笑。</p>
<p>那当然,这就是骗局高明所在,你们年轻人爱说财务自由,买菜自由买车自由买房自由买各种更贵东西的自由,如果这种自由是唯一可追求的自由,那当然只能参加爬山竞赛了,眼看着怕不赢,于是退赛——或者作出退赛的姿态。</p>
<p>我附和说,就是弃权,撂挑子,消极怠工。</p>
<p>他收起笑说, 这么理解可以,但不能只这么理解,弗洛姆你可能不熟,马克思的话你总听过吧——宗教是人民的鸦片。</p>
<p>6</p>
<p>这话我知道,从小就学,教材里加粗加黑,要背诵的。鸦片麻痹人民,不是好东西,宗教是鸦片,也不是好东西。</p>
<p>不过,小胡子的解释却不太一样。</p>
<p>他说,这句话出自马克思研究法理学的一篇文章,上下文很复杂,说了怕你也不懂,我还打比方,比如你认同日月神教的宗旨,相信它代表世间的正义和公平,理应一统江湖,于是你就臣服东方教主的权威,听其号令赴汤蹈火,那日月神教这个组织就是你的宗教。假使你觉得五岳派和岳不群代表正义和公平,愿意听任其驱使,那五岳派就是你的宗教——可在令狐冲眼里,组织不重要,自在与情义才最重要,这就是他的主体性,令狐冲最大的潜力和资产,就是他为自己而选择和行动。</p>
<p>我反驳,金庸写的那是门派,不叫宗教。</p>
<p>小胡子说,看来还是得说点抽象的。他翻出一个笔记本,念给我听——</p>
<p>如果有一个中心,代表了所有人们想象当中最美好的一切素质,包括公平、正义。当有这样的一个投射中心,这个中心又形成了组织,这个组织变成最有权力的,那这个时候就是一个变形的宗教。</p>
<p>这就是马克思定义宗教,小胡子说,台湾学者杨照在通识课上讲的,很清晰。</p>
<p>我似懂非懂,不知道说什么,小胡子却突然笑了。</p>
<p>他说,想想也可笑,从前有个叫苏联的国家,发明了一种叫马克思主义的宗教,由他们做代理人,掌握最大的权力,简直是打了马克思的脸。</p>
<p>我不太知道苏联,他也不愿多谈,说那都是猴年马月了,如今的鸦片是消费,不倒翁就是信徒,鸦片吸多了就会成瘾,像活在幸福的幻觉里,兴奋、无聊、倦怠,屹立不倒,前仆后继。</p>
<p>这句话令我豁然开朗,弃权,撂挑子,消极怠工的另一面向是戒毒,就像广告里说的选择新的生活方式——我词穷,只好从广告里找词。这点我知道,广告里的说你要选择你想要的生活方式,但却只给你展现符合消费逻辑的诱惑,所谓生活方式,是套模板。</p>
<p>不管挺族如今怎么样,但在当时,选择挺至少是给了自己一个察觉自我的机会,小胡子说。</p>
<p>他眼里闪烁着狡黠的光亮,像个智者。</p>
<p>7</p>
<p>天就要亮了,我变得越来越清醒,或许是咖啡的作用。</p>
<p>我起身告辞,小胡子拉住我,要讲最后一个问题。这件事很重要,他说。</p>
<p>我看看表,地铁首发车还有半小时,就听他说完吧。</p>
<p>自由,才是我们最大的困境,一代又一代的哲学家都研究过,小胡子说,关于挺的争议,其根本是人有没有选择挺的自由。</p>
<p>Negative,他嘴里蹦出一个英文词,小胡子颤抖着,自由的含义,有一千种,我只谈一种,叫做消极自由,是哲学家以赛亚·柏林的概念,意思就是个人免于外界干涉的自由,或者说你可以不被威逼,不遭利诱,被强迫做什么,一个能去做他能做的事而不受阻碍。</p>
<p>我说,这不是很容易吗,我意志一向坚定。</p>
<p>小胡子笑,说话可以这么说,实际情况你是理解的。</p>
<p>我继续反驳,说我不是挺族,我积极向上,有理想有追求,想做的事也不违法,谁会阻拦我?</p>
<p>小胡子又笑,说你有追求,是什么?</p>
<p>我确实没细想过,但我想过好日子,有钱有闲就行。于是我说,追求美好生活。</p>
<p>那何为美好生活?小胡子问,是登山竞赛里那些赢家的生活吗?</p>
<p>我没说话,心中疑惑,也很不服气。</p>
<p>小胡子闪过一丝失望的神色,说,《猜火车》看过吧,记得开头吗?</p>
<p>选择生命,选择工作,选择职业,选择家庭,选择可恶的大彩电,选择洗衣机、汽车、雷射碟机,选择健康、低胆固醇和牙医保险,选择按揭,选择朋友,选择套装、便服和行李,选择分期付款和三件套西装,选择收看无聊的游戏节目,边看边吃零食…</p>
<p>我说记得,全是选择,不知道选择什么。</p>
<p>选择,其实是在计算,或者是被算计,交出了选择权,他揪一揪胡子,看来我得再说一个概念,积极自由,或许你能明白。</p>
<p>他说,在伯林的概念里,所谓积极自由,是指去做什么的自由,就像你说你有追求,不过,这种积极的追求,可能是一种华丽的伪装,是自由地去过一种被规定被要求的生活,登山竞赛人人都有自由追求登顶,但你明明不爱登山只喜欢游泳,为何不去游泳呢?</p>
<p>我似乎被激怒,又提出一连串的问题,但小胡子拒绝回答,建议我去回家挺挺尸,看看书。</p>
<p>挺着的时候,是最好的读书机会,你可以看点哲学什么的,不要觉得文科没用,他说,当然,只谈概念容易造成混乱和误导,我看你有些愚钝,又急着想走,只好长话短说,你就当闲谈吧。</p>
<p>8</p>
<p>他这么一说,我倒有点不急着走了。</p>
<p>我向他道歉,说并不是反对你,只是觉得有点空谈。</p>
<p>小胡子站起来拍拍我,说自由当然不能空谈,但遇到具体的困境时,必须拿出来谈,谈谈自由,是认清自身处境的一种方法。</p>
<p>他让我站到书架边,不知从哪摸出一对黑色的手铐,说,我们再打个比方。</p>
<p>我求知心切,就听从他安排。他把我铐在书架上。</p>
<p>——你想走,我把你拷了起来,这是我侵犯了你的自由。但如果我们约定,你让我铐一小时,我就给你一千块,你可能会主动让我多铐几小时,并觉得这是自行选择,对自己有利。这就像你的追求,是所谓积极的。</p>
<p>他从兜里摸出一把钱。我确实心动了一秒钟。</p>
<p>——但如果你认为被人铐起来换一笔钱是原则问题,这几小时不如去散步,给多少都不干,拒绝和我交易,虽然失去了多挣一笔钱的机会,但散步很开心。这是你的自由,所谓消极的。</p>
<p>我胳膊有点酸,说我懂了,切身体会一下就是更容易懂。</p>
<p>——所以,我认为伯林是用极端的概念来说明问题,什么消极积极,都是个词罢了,不必太认真,关键是自己体会。</p>
<p>我体会到了,我说,谢谢你,把手铐打开吧。</p>
<p>小胡子微笑着走过来,却把钥匙丢在了地上,又把上衣脱了。</p>
<p>我说,你要干什么?别过来!</p>
<p>他盯住我,慢慢地说,我说打个比方,你选择配合我,但却没有思考一件事,规则是我说的,钥匙在我手里,这可能是个骗局。</p>
<p>我大叫,放开我,你到底要干什么?</p>
<p>争论永不停歇,但现实迫在眉睫,他说,我要与你发生性关系。</p>
<p>9</p>
<p>我大叫一声,放开我!</p>
<p>小胡子无动于衷,开始解皮带。</p>
<p>我被那东西咬了,对,不倒翁,丧尸,他说,我刚捡来这家伙时,他还没死透,咬了我一口。他展示大腿上的伤口,两排黑洞,已经溃烂。</p>
<p>你是丧尸!我挣扎,大骂,你被咬了关我什么事!你这是犯罪,强奸!</p>
<p>他脱掉裤子,露出干柴一样的腿,内裤肥大,肮脏。我气得浑身颤抖,使劲拽手铐,书架是铁的,纹丝不动。</p>
<p>不要觉得我在骗你,我也是为了活命,他说,被这东西咬了,只有一种办法能救命,七十二小时内找个人性交——无论性别。</p>
<p>我吃了一惊,以为自己听错了。</p>
<p>这不科学!我几乎要哭出来。</p>
<p>但是合理,他说。</p>
<p>不倒翁是我研发的,我了解他的毒性,只有性交,做爱,啪啪啪,武侠小说看过吧,和那种不做爱就死的春药差不多,只是这毒不催情,发作过程只会让人无法睡觉,你看见我的黑眼圈了,他使劲瞪大眼说,我三天没合眼了。</p>
<p>我一阵阵眩晕,感觉恶心。变态,疯子!我朝他吐吐沫。</p>
<p>不用害怕,很快的。他伸手解我的衣服。</p>
<p>我当然害怕,他妈的变态,骗子。</p>
<p>他站在我身后,脏手摸进我腰里,我的手被手铐勒出血。我绝望了。</p>
<p>我说,我口袋里有安全套。我很惊讶自己这么说,是在放弃反抗吗,或者是一种理性的抵抗,不知道。</p>
<p>不行,用了安全套就解不了毒,必须是纯天然的性交,他摇摇头,无奈地笑了,不倒翁虽然是失败品,但传播这毒倒也能刺激消费,真是可笑。</p>
<p>我没有力气再挣扎,说,咱们到床上去,站着怎么行?</p>
<p>他抓住我的肩,解我的衣服,像只猴子一样贴在后面。</p>
<p>站着就行,他说,放心,我没什么病,你也不会怀孕。</p>
<p>我看见那只不倒翁,仍诡异地笑着,似乎摇晃了几下。</p>
<p>10</p>
<p>像是过去了一分钟,又像是过去了一年。</p>
<p>一切结束后,我想问他,自己会不会因此染上毒,需要七十二小时内进行纯天然性交。</p>
<p>但我一句话也不想说。</p>
<p>钝刀拉肉,生不如死。</p>
<h6 id="编者后记:">编者后记:</h6>
<p>这个故事是我在一个语音聊天室听来的,不知道发生在哪一年。讲述者是否故事的当事人,也无从考证。大概就是一则都市传说吧,无论过去还是将来,哪会有这种事呢。故事里充斥生硬说教,夹带私货,极有可能是无聊者杜撰,姑妄听之吧。若说有意思之处,我以为只有小胡子说的关于宗教的几句话。不过,据一些学者说,马克思就像知识分子的鸦片,怕那小胡子是磕大了吧。</p>
<p>而所谓「挺」,这个词我倒是在某些北方方言里听过,有人问你睡了吗,你可以说,没睡着呢,刚挺下一会儿。在这个故事,包含着一种奇怪的悖论,千百年来的传统,都说是昏睡不好,人要要觉悟首先要醒来,但另一方面却很少人讲,睡着的人的避开乃至抵抗了消费社会的规训和怂恿,倒成了一种醒来。</p>
<p>而「挺」的另一个意思,不正是「支撑」和「坚持」吗,虽然一般坚持很累很勉强。</p>
<hr>
<p>原文链接:<span class="exturl" data-url="aHR0cHM6Ly93d3cuZG91YmFuLmNvbS9ub3RlLzgwNDY4NzA5OS8/X2k9Mjg4MzMzNWJKSVRBWEs=">安全套与不倒翁<i class="fa fa-external-link-alt"></i></span></p>
</div>
<script src="https://my.openwrite.cn/js/readmore.js" type="text/javascript"></script>
<script>
var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
if (!isMobile) {
var btw = new BTWPlugin();
btw.init({
"id": "vip-container",
"blogId": "33502-1730425843713-524",
"name": "虫子的生存笔记",
"qrcode": "https://leaf-miner.pages.dev/image/%E5%85%AC%E4%BC%97%E5%8F%B7.png",
"keyword": "more"
});
}
</script>
]]></content>
<categories>
<category>转载</category>
<category>其他</category>
</categories>
<tags>
<tag>小小说</tag>
<tag>转载</tag>
<tag>故事</tag>
<tag>宗教</tag>
<tag>消费</tag>
<tag>丧尸</tag>
</tags>
</entry>
<entry>
<title>从UniProtKB数据库检索蛋白信息-queryup包</title>
<url>/2024/11/28/a34278e620bd/</url>
<content><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\assets\js\Meting.min.js"></script><div id="vip-container"><p>queryup包可以从’ UniProtKB ’ REST API中检索蛋白质信息。</p>
<p><strong>URL</strong> <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL1ZvaXNpbm5lRy9xdWVyeXVw">https://github.com/VoisinneG/queryup<i class="fa fa-external-link-alt"></i></span></p>
<p><strong>BugReports</strong> <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL1ZvaXNpbm5lRy9xdWVyeXVwL2lzc3Vlcw==">https://github.com/VoisinneG/queryup/issues<i class="fa fa-external-link-alt"></i></span></p>
<span id="more"></span>
<h2 id="安装">安装</h2>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">install.packages("queryup")</span><br><span class="line"># 或者</span><br><span class="line">devtools::install_github("VoisinneG/queryup")</span><br></pre></td></tr></table></figure>
<h2 id="函数及示例">函数及示例</h2>
<h3 id="可用的查询字段">可用的查询字段</h3>
<p>查询字段,该字段可用于使用" queryup "生成查询以及相关的示例和描述。</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">library(queryup)</span><br><span class="line">query_field</span><br><span class="line"></span><br><span class="line"># 字段</span><br><span class="line">query_fields$field</span><br><span class="line"># 示例</span><br><span class="line">query_fields$example</span><br><span class="line"># 简述</span><br><span class="line">query_fields$description</span><br></pre></td></tr></table></figure>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241128123616.png" alt=""></p>
<h3 id="返回的查询字段">返回的查询字段</h3>
<p>返回可以使用" queryup "检索的字段,以及它们在检索<code>data.frame</code>中出现的标签。</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">return_fields</span><br><span class="line"># 字段</span><br><span class="line">return_fields$field</span><br><span class="line"># 标签</span><br><span class="line">return_fields$label</span><br></pre></td></tr></table></figure>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241128124242.png" alt=""></p>
<h3 id="Mus-musculus中1000个UniProt的条目名称和其他属性">Mus musculus中1000个UniProt的条目名称和其他属性</h3>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">uniprot_entries</span><br></pre></td></tr></table></figure>
<p><img data-src="images/clipboard-49488359.png" alt=""></p>
<h3 id="查询">查询</h3>
<p><code>get_uniprot_data</code> 和<code>query_uniprot</code> 均能获取UniProt数据。但<code>query_uniprot</code>解析错误信息,并从查询中移除无效的条目。</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">#Retrieve data from UniProt using UniProt's REST API. To avoid non-responsive queries, they are split into smaller queries with at most max_keys items per query field. </span><br><span class="line">query_uniprot(</span><br><span class="line"> query = NULL,</span><br><span class="line"> base_url = "https://rest.uniprot.org/uniprotkb/",</span><br><span class="line"> columns = c("accession", "id", "gene_names", "organism_id", "reviewed"),</span><br><span class="line"> max_keys = 200,</span><br><span class="line"> updateProgress = NULL,</span><br><span class="line"> show_progress = TRUE</span><br><span class="line">)</span><br></pre></td></tr></table></figure>
<table>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><code>query</code></td>
<td>同上</td>
</tr>
<tr>
<td><code>base_url</code></td>
<td>同上</td>
</tr>
<tr>
<td><code>columns</code></td>
<td>同上,例如 “accession”, “id”, “genes”, “keywords”, “sequence”。更多见<code>return_fields</code></td>
</tr>
<tr>
<td><code>max_keys</code></td>
<td>最大检索数</td>
</tr>
<tr>
<td><code>updateProgress</code></td>
<td>在shiny 中显示运行进程</td>
</tr>
<tr>
<td><code>show_progress</code></td>
<td>显示进度条</td>
</tr>
</tbody>
</table>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># Retrieve data from UniProt using UniProt's REST API</span><br><span class="line">get_uniprot_data(</span><br><span class="line"> query = NULL,</span><br><span class="line"> base_url = "https://rest.uniprot.org/uniprotkb/",</span><br><span class="line"> columns = c("accession", "id", "gene_names", "organism_id", "reviewed")</span><br><span class="line">)</span><br><span class="line"></span><br><span class="line">query <- list("accession_id" = c("P22682", "P47941"))</span><br><span class="line">df <- get_uniprot_data(query = query, columns = c("accession", "id", "gene_names", "keyword", "sequence"))$content</span><br><span class="line">df</span><br></pre></td></tr></table></figure>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">#</span><br><span class="line">query <- list("gene_exact" = "Akt1")</span><br><span class="line">df <- query_uniprot(query, show_progress = FALSE)</span><br><span class="line"></span><br><span class="line">df <- query_uniprot(query, </span><br><span class="line"> columns = c("id", "sequence", "keyword", "gene_primary"),</span><br><span class="line"> show_progress = FALSE)</span><br><span class="line"># 查询单个基因</span><br><span class="line">query2 <- list("gene_exact" = "Pik3r1", </span><br><span class="line"> "reviewed" = "true", </span><br><span class="line"> "organism_id" = "9606")</span><br><span class="line">df <- query_uniprot(query, show_progress = FALSE)</span><br><span class="line">print(df)</span><br><span class="line"></span><br><span class="line"># 查询多个基因</span><br><span class="line">query <- list("gene_exact" = c("Itpr", "CaMKI"), </span><br><span class="line"> "reviewed" = "true", </span><br><span class="line"> "organism_id" = c("9606", "10090"))</span><br><span class="line">df <- query_uniprot(query, show_progress = FALSE)</span><br><span class="line">print(df)</span><br></pre></td></tr></table></figure>
<h2 id="参考">参考</h2>
<ol>
<li class="lvl-3">
<p>VoisinneG/queryup: R client for the UniProt REST API</p>
</li>
<li class="lvl-3">
<p>queryup: Query the ‘UniProtKB’ REST API</p>
</li>
</ol>
</div>
<script src="https://my.openwrite.cn/js/readmore.js" type="text/javascript"></script>
<script>
var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
if (!isMobile) {
var btw = new BTWPlugin();
btw.init({
"id": "vip-container",
"blogId": "33502-1730425843713-524",
"name": "虫子的生存笔记",
"qrcode": "https://leaf-miner.pages.dev/image/%E5%85%AC%E4%BC%97%E5%8F%B7.png",
"keyword": "more"
});
}
</script>
]]></content>
<categories>
<category>原创</category>
<category>科研</category>
</categories>
<tags>
<tag>R语言</tag>
<tag>果蝇</tag>
<tag>UniProt</tag>
<tag>蛋白</tag>
<tag>ID转换</tag>
<tag>queryup包</tag>
</tags>
</entry>
<entry>
<title>无从告别的告别 | 里则林</title>
<url>/2024/11/27/e207cdca9b7a/</url>
<content><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\assets\js\Meting.min.js"></script><div id="vip-container"><p>1<br>
小时候我常常面对离别。<br>
大人会跟我说,明天我们要去xx地方了。而xx地方,一般都是我从未听说过的某个城市。我听完会默默地点头,然后坐在沙发上,看大人们收拾东西。心里则提前开始消化恐慌,对未知和陌生的恐慌。<br>
记得还在上海的时候,小区里住着许多子女不在身边的孤寡老人,老师要我们在某个暑假去找一个老人,然后陪伴他们,算是作业。<br>
我就找了隔壁那幢楼的一个老头。我记得我第一次敲他的门,他开了半截门,奇怪地看着我,我呆滞地傻愣半天,然后用手摇了摇胸前的红领巾说:“你好,我是小学生。老师要我来陪你。”</p>
<span id="more"></span>
<p>老头听完,微微一笑,把门敞开,示意我进去,问我:“你从哪里来?”<br>
我坐在脚碰不到地的高凳上,晃动着双脚指了指左边说:“我从隔壁来。”<br>
“嗯,我见过你,每天带着一帮小朋友到处折断小区里的竹子。”<br>
我点点头说:“没错!”<br>
他又问我:“为什么?”<br>
“为了赶一只猫和打仗。”<br>
他笑笑没理我,打开了大厅和天井之间的门,我抬头看去,天井里全是花花草草和无数个鸟笼,每个鸟笼里都住着一只鸟。<br>
我站起身准备接受他的邀请一起走进天井里看看。但是他没有。他就那么自顾自旁若无人地摆弄起了花草,让我觉得他不太懂人情世故,没有家教。<br>
搞得我有点不知所措,只能又坐回原处,开始四下张望。<br>
老头家里有简单的家具,一堆茶壶,一张大桌子上有一盏式样老土的彩色玻璃灯,灯旁有很多农业技能书。我想尝试跟他对话。<br>
于是对他“喂”了一声。<br>
他转过头来说我没礼貌,然后又继续低头在天井里摆弄花草。<br>
最后我只能哈欠连天地看着墙上的表,等着两个小时结束。<br>
因为那时老师规定我们,每次陪老人家至少两个小时,然后拿一个小本子给老人家签字和写评语。<br>
临走的时候,我拿出本子给老头,老头戴上老花镜看了看本子上的大致内容,问我写什么好。这个问题让我猝不及防,觉得回到了从前——考试考得好,老师放了一排礼物,让我们各自挑自己喜欢的,我喜欢最贵的,但常常不好意思直接拿,都是拿的退而求其次的奖品。<br>
于是我说:“写点还不错的就行。” 接着马上有点不好意思地看向别处。<br>
然后就听见了他刷刷写字的声音,写完合上本子递给了我。我拿起本子,转身要走。他又叫住了我,从天井里抱来一盆土:“你在土上面摁一摁。”<br>
我不解地看着他,他说:“摁一摁就行!” 我就摁了一摁,然后马上嫌弃地边搓手边走了出去。<br>
回到家,吃饭的时候,妈妈问我今天陪老爷爷开心吗,我说不开心,妈妈问我为什么,我说因为这老头不开心我陪他。<br>
妈妈一个筷子头打了过来,骂我没礼貌。<br>
我心里愤愤不平,边吃菜边开始在脑海里统计周围的老人家还有哪些,下定决心一定要换一个人陪陪。<br>
在那天临睡前,我突然想起那个本子,然后迫不及待地想看看老头写了什么内容,于是翻开看了看,发现上面工工整整地写着:“他今天非常乖,非常热情,很有礼貌,家教很好,很讨人喜欢。”<br>
那时我语文好,知道“非常”和“很”后面只要接上很好的词汇,就是很好的表扬。看完,竟然有点不好意思。</p>
<p>2<br>
后来我每天去陪这老头,几乎不怎么说话,他不是弄花草就是弄鸟,偶尔我坐在大厅和天井连接的地方,呆呆地着看他。<br>
老头则依旧每天结束时,在本子上换着花样夸我。得到他无比绚丽的措辞几乎成了我去陪他的唯一动力。从活泼,到善良,再到爱护花草,和学习能力强。应有尽有。<br>
某个下午老头坐在桌子上看书,我在他对面一动不动,老头抬头看了看我,然后看了看他那堆书。<br>
我就跟顺着他的目光也看了看那堆书,随后又继续呆滞地看着他,他又用手拨了拨他那堆书。<br>
我才看见里面有一本《杨家将演义》的连环画。我伸手摸了摸那本书,犹豫间,他对我点点头。于是我就把那本书抽了出来。津津有味地读了起来。<br>
老头问我最喜欢谁,我说我喜欢杨宗保。<br>
老头问我为什么。<br>
我说因为电视上他老婆穆桂英好看。<br>
他又问我喜欢花木兰吗,我问她花木兰是谁。他就给我讲了一下午花木兰。<br>
从那天起,他就不摆弄花草了,每次来,都和我面对面看书,每天他书堆里都会莫名其妙地有一本不同的连环画。<br>
有一天看到又是连环画,我突然觉得无聊透了,做作地打起了一个又长又大声的哈欠,然后趴在了桌子上一言不发地发呆。<br>
老头咳嗽了几声,然后问我吃糖吗。我继续趴在桌子上摇着头。<br>
他说你等一会,转身进了房间。我看见他打开衣柜,到处翻,最后面红耳赤地拿出一把剑。<br>
我立马跳了起来,双眼放光地看向他,因为我从小就喜欢大宝剑这种东西。<br>
老头第一次脸上露出了调皮的神色,拔出剑来,故作姿态地舞了两下。那天下午我们在天井里,老头教我玩了一套晨练时的老年剑法。<br>
从那天之后,我只要去到老头家,他会第一时间给我背上那把大宝剑,然后该干吗干吗。看书,陪他弄花草,他会问我很多关于我的事,有一天当他得知我在学校是大队长的时候,他直接把我抱了起来,一个劲地对我说:“原来你这么厉害呀!”<br>
我则得意地笑着。<br>
我跟老头没事就看书,弄花草,逗鸟,和玩大宝剑,不知不觉过去了15天,还有5天我就可以结束陪伴老人家的作业了。<br>
我把这件事告诉了老头,老头愣了一会,说:“那明天我带你去城隍庙买一把属于自己的大宝剑吧。”<br>
我惊讶地看向他,问他是真的吗?<br>
他用力地点点头。我一激动,抱住了她,第一次说了句:“谢谢爷爷!”<br>
他 面色绯红,有点不好意思,也抱了抱我,但显得异常开心。那天晚上,他陪我一起回家,然后跟我的妈妈说他想第二天带我去城隍庙玩,希望我妈妈同意。然后还从 包里掏了很久,掏出自己的身份证,还有一张写了自己电话的纸片。他们在门口聊了挺久,而我在屋子里紧张地看着这一切。最后看见老头对我开心地笑了笑,用手凭空作剑,对着我舞了舞,就开心地走了。<br>
妈妈转头过来严肃地看着我,我马上立正在原地,妈妈对我说:“不能乱跑,知道吗?”<br>
我一颗心就沉了下去。<br>
接着妈妈又说:“在明天跟爷爷出去的时候。”<br>
我立马喜笑颜开,脖子像按了发条,使劲点头。<br>
第二天在城隍庙,老头全程拉着我的手,他带我走进一个大楼里,里面有数不过来的摊位,每个摊位的墙上都挂满了大宝剑,我们两个这家看看,那家看看,人很多,很拥挤,我看见他有点不自然,把我护在他身前,挤到一个摊位前。<br>
看着琳琅满目的刀枪棍棒,我一时没了目标,满心欢喜地扫来扫去,我们两个站在一起,老头有些紧张地问我:“是不是不喜欢这里的?”<br>
我摇摇头说:“没有,我都喜欢!”<br>
老头才爽朗地笑了起来,告诉我别着急,慢慢挑,他等我。<br>
后来我挑了一把黑色的,老头找老板要了一根红色的背带,蹲在门口帮我按在了剑鞘上,挂上了我的后背。那天我觉得自己终于成为了我最想成为的人——展昭。<br>
后来老头带我去买麦芽糖,我们坐在一个亭子里吃糖的时候,老头问我:“你有爷爷吗?” 我愣了好一会。<br>
他有点尴尬地看着我,显得不知所措。<br>
我反问他:“爷爷是……我爸爸的爸爸?”<br>
他有点惊讶,接着对我说:“是啊。”<br>
我边吃糖边说:“我不记得自己的爷爷,从来没有见过他。”<br>
他就不说话了,摸摸我的头,问我说:“你还想吃什么?”<br>
我摇摇头,一起陷入了沉默里。</p>
<p>3<br>
其实我从小就不记得自己爷爷和所有亲戚,因为我的童年颠沛流离,一时在这,一时在那,却从未回过老家。<br>
我一直以为每年过年家里只有四个人,是很正常的事情。<br>
我一直到97年香港回归,7岁那年,才第一次听爸爸妈妈对我说起“爷爷”两个字。那是一个晚上,我从睡梦中被叫醒,带着一肚子的起床气,觉得自己恨整个世界。<br>
爸爸严肃地把我拉到角落里,让我穿上衣服,说要带我去见爷爷。我磨磨蹭蹭半天,就是不肯。因为那年我实在不知道爷爷是什么。对于到底哪里突然冒出了一个爷爷来,我百思不得其解,并且很认真地以为爷爷是爸妈的某个无聊朋友。<br>
后来爸爸接了一个电话,神色更加急迫,大声地吼我:“你到底要不要穿衣服!”<br>
我一肚子起床气瞬间找到了出口,哭声喷薄而出,大声地喊着:“我就不穿!”<br>
爸爸对我投来了一个此生难忘的失望眼神,然后和妈妈急匆匆地出门了。没过多久,一个称之为“姑姑”的人来到了家里,哄我哄了半天,我才把衣服穿上,跟着她出了门,去见所谓的“爷爷”。<br>
去到一半,姑姑接了一个电话,然后让司机掉转车头,我们又回了家。<br>
那天从头到尾我都不知道发生了什么。<br>
那之后的许多年,我才终于很清晰地知道了爷爷是谁,是干吗的,也从别人口中得知,我还没记事的时候,爷爷常常在过年的时候叫着我的小名,然后我屁颠屁颠地跑过去,他会塞给我一个无比丰厚的红包,别人说他最疼我,小时候。<br>
只是后来我被父母带着四处跑,既不知道自己根在哪,也不知道有哪些所谓的亲人,我以为世界上每个人都和我一样,只有家人。<br>
也知道了,那个晚上,是我最后一次,能见到爷爷的机会。此后这件事成了我想起一次就遗憾和自责一次的事情。<br>
直到去年我24岁,临近清明节的时候,爸爸让我开车带着姐姐回老家去给爷爷扫墓。我听完二话没说就推掉了所有事情。<br>
一路上雨点淅淅沥沥地打在车上,我和姐姐一路上都没有说话,开在乡间的泥泞小路上。<br>
我被亲戚带着,去了爷爷住过的老房子,看见一个黑不溜秋的奶瓶,他们说那是我的。看见了许多爷爷当年生活时的东西,甚至都叫不上名字,那到底是什么。<br>
那天在墓碑前,放起了一长串大鞭炮,我看着爷爷的名字,心里说:“爷爷,我回来啦。” 然后眼睛就红了。<br>
我心里又说:“爷爷,在那个年纪,我真是像个不落地的蒲公英,从未有人跟我提过我从哪里来,也没有人确定地告诉我,我要到哪里去。”<br>
就像被风一直裹着,以为世界上并没有可以落脚的土地。<br>
“但你原谅我的话,你就刮来一阵风好了。”<br>
于是那天很神奇地在一秒之后,刮来了一阵风。</p>
<p>4<br>
后来在那个陪老人的作业本上,老爷爷给我写的最后一个评语是:“他像我的孙子一样,我像他的爷爷一样。”<br>
那时我常常面对离别,妈妈在某天跟我说,这个暑假结束之后,我们要去重庆了。<br>
我点点头,坐在沙发上。我不知道重庆是什么地方,也不知道在那会遇见什么人。只是已经开始在心里提前默默地消化起了对未知和陌生的恐惧。<br>
走那天,老头赶来,抱着一盆小花,气喘吁吁地说:“这是你来那天,我给你种的,名字就叫小则林。”<br>
我一看是一盆黄黄的小花。<br>
但妈妈说:“坐飞机,带不了这些。”<br>
我遗憾地看着老头,老头也略显无奈,犹豫了一会说:“没事,等你回来的时候,小则林就跟你长得一样大了。”说完摸了摸我的头。<br>
但我并没有再回来过,甚至没能带走那把爷爷送我的大宝剑。<br>
并且那年,最后走的时候,我也没明白过来,“爷爷”到底是什么。<br>
但只要时间一天一天地过去,人在时间里,很快就会长大。<br>
有时夜深人静的时候,我会想起那盆小黄花,也会想起97年那个夜晚。<br>
并且每次都带着遗憾,因为他们从来不知道我去了多少地方,也不知道我见过多少人,甚至他们永远没有办法知道,他们一直在我心里,并且没有办法告诉他们,这些无从告别的告别。</p>
<hr>
</div>
<script src="https://my.openwrite.cn/js/readmore.js" type="text/javascript"></script>
<script>
var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
if (!isMobile) {
var btw = new BTWPlugin();
btw.init({
"id": "vip-container",
"blogId": "33502-1730425843713-524",
"name": "虫子的生存笔记",
"qrcode": "https://leaf-miner.pages.dev/image/%E5%85%AC%E4%BC%97%E5%8F%B7.png",
"keyword": "more"
});
}
</script>
]]></content>
<categories>
<category>转载</category>
<category>学习</category>
</categories>
<tags>
<tag>小小说</tag>
<tag>转载</tag>
<tag>故事</tag>
<tag>离别</tag>
<tag>告别</tag>
</tags>
</entry>
<entry>
<title>使用R语言从UniProt数据库检索蛋白信息-UniprotR包</title>
<url>/2024/11/27/dd36854d083f/</url>
<content><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\assets\js\Meting.min.js"></script><div id="vip-container"><p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241125123119.png" alt="uniprot"></p>
<p><code>UniprotR</code> 包通过丰富的函数和可视化工具,使得从UniProt数据库中检索和分析蛋白质信息变得更加便捷和高效。</p>
<span id="more"></span>
<h2 id="基本信息">基本信息</h2>
<ul class="lvl-0">
<li class="lvl-2">
<p><strong>版本</strong>:2.4.0</p>
</li>
<li class="lvl-2">
<p><strong>作者</strong>:Mohamed Soudy 和 Ali Mostafa</p>
</li>
<li class="lvl-2">
<p><strong>描述</strong>:连接到Uniprot,使用蛋白质的访问号检索信息,如名称、分类信息等。</p>
</li>
<li class="lvl-2">
<p><strong>URL</strong>:<span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL1Byb3Rlb21pY3NsYWI1NzM1Ny9Vbmlwcm90Ug==">https://github.com/Proteomicslab57357/UniprotR<i class="fa fa-external-link-alt"></i></span></p>
</li>
<li class="lvl-2">
<p><strong>问题报告</strong>:<span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL1Byb3Rlb21pY3NsYWI1NzM1Ny9Vbmlwcm90Ui9pc3N1ZXM=">https://github.com/Proteomicslab57357/UniprotR/issues<i class="fa fa-external-link-alt"></i></span></p>
</li>
</ul>
<p><strong>功能</strong>:</p>
<ul class="lvl-0">
<li class="lvl-2">
<p>提供多种功能,包括构建基因树、位置树、转换ID、富集分析(包括生物学过程、细胞组分、KEGG、分子功能、REACTOME)、获取疾病关联、表达数据、家族域数据、一般信息、杂项信息、名称和分类信息、病理生物技术信息、PDB结构、蛋白质注释、功能、基因本体信息、蛋白质相互作用、蛋白质网络、蛋白质网络(全部)、蛋白质组信息、蛋白质组FASTA、PTM处理、出版物信息、序列长度、序列同源、序列、结构信息、亚细胞位置等。</p>
</li>
<li class="lvl-2">
<p>提供了解析UniProt信息和绘制各种图表的功能,如GO分子功能、GO亚细胞定位、酸度、电荷、染色体信息、基因网络、GO全部、GO生物学过程、GO信息、GO术语、Gravy、理化性质、蛋白质存在状态、蛋白质GO生物、蛋白质GO细胞、蛋白质GO分子、蛋白质状态、蛋白质分类等。</p>
</li>
</ul>
<p><strong>图表和可视化</strong>:</p>
<ul class="lvl-0">
<li class="lvl-2">
<p>除了数据检索,<code>UniprotR</code> 还提供了多种数据可视化工具,帮助用户更直观地理解蛋白质的特性和功能。</p>
</li>
</ul>
<p><strong>安装和依赖</strong>:</p>
<ul class="lvl-0">
<li class="lvl-2">
<p>该包不需要编译,可以直接从CRAN安装,且依赖于多个R包,方便用户进行数据分析和可视化。</p>
</li>
</ul>
<h2 id="安装">安装</h2>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">install.packages("UniprotR")</span><br></pre></td></tr></table></figure>
<h2 id="使用示例">使用示例</h2>
<p><code>GetAccessionList</code>函数可用于从csv文件中获取UniProt Accession / s列表。</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">library(UniprotR) </span><br><span class="line">Dm_Acc <- GetAccessionList("Dm_uniprot.csv")</span><br><span class="line"></span><br><span class="line">#用于检查输入数据的有效性</span><br><span class="line">ProcessAcc(Dm_Acc)</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<p><strong>DataObjPath:</strong> Excel文件 (.csv) 的路径,文件内容如下图。</p>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241125114109.png" alt="csvfile"></p>
<h3 id="录入时间">录入时间</h3>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127223443.png" alt=""></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">Dm_Acc_General <- GetGeneral_Information(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127205024.png" alt=""></p>
<h3 id="其他">其他</h3>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127205934.png" alt=""></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">Dm_Acc_Miscellaneous <- GetMiscellaneous(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br><span class="line"></span><br><span class="line">PlotproteinStatus(Dm_Acc_Miscellaneous,"I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<h3 id="获取分类信息">获取分类信息</h3>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127224415.png" alt=""></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">TaxaObj <- GetNamesTaxa(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br><span class="line"># 用于绘制染色体中access / s数据中位置的频率</span><br><span class="line">PlotChromosomeInfo(TaxaObj)</span><br><span class="line"># 基于从' GetNamesTaxa '中检索到的主基因对蛋白质进行聚类。</span><br><span class="line">PlotGenesNetwork(TaxaObj)</span><br></pre></td></tr></table></figure>
<h3 id="Pathology-Biotech"><strong>Pathology & Biotech</strong></h3>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127210744.png" alt=""></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">Pathology_Biotech <- GetPathology_Biotech(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<h3 id="下载PDB结构数据">下载PDB结构数据</h3>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">Dm_pdbStructure <- GetpdbStructure(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<h3 id="蛋白功能">蛋白功能</h3>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127224209.png" alt=""></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">Dm_ProteinFunction <- GetProteinFunction(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<h3 id="转换ID">转换ID</h3>
<p>将UniProtKB的AC / ID转换为UniProtKB中的任何数据库ID。详细信息参阅<span class="exturl" data-url="aHR0cHM6Ly93d3cudW5pcHJvdC5vcmcvaGVscC9pZF9tYXBwaW5nJUU1JTkyJThDaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01vaG1lZFNvdWR5L1VuaXByb3RSL21hc3Rlci91bmlwcm90X2lkcy5jc3Y=">https://www.uniprot.org/help/id_mapping和https://raw.githubusercontent.com/MohmedSoudy/UniprotR/master/uniprot_ids.csv<i class="fa fa-external-link-alt"></i></span></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">ConvertID(Dm_Acc,ID_from="UniProtKB_AC-ID",ID_to="OrthoDB",taxId="7227",path=NULL)</span><br></pre></td></tr></table></figure>
<p><code>ConvertID(ProteinAccList,ID_from="UniProtKB_AC-ID",ID_to=NULL,taxId=NULL,path=NULL)</code></p>
<table>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong><code>ProteinAccList</code></strong></td>
<td>UniProt Accession/s 向量</td>
</tr>
<tr>
<td><code>ID_from</code></td>
<td>数据库标识符的缩写,从中将Accession / ID进行转换。</td>
</tr>
<tr>
<td><code>ID_to</code></td>
<td>数据库标识符缩写字符串,Accession / ID将转换为该字符串。默认为UniProtKB中可用的所有数据库标识符。见<span class="exturl" data-url="aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01vaG1lZFNvdWR5L1VuaXByb3RSL21hc3Rlci91bmlwcm90X2lkcy5jc3Y=">uniprot_ids.csv<i class="fa fa-external-link-alt"></i></span>{.uri}</td>
</tr>
<tr>
<td><code>taxId</code></td>
<td>当ID_to为’ UniProtKB '时需要TaxId字符串。例如 ‘9606’ for human。</td>
</tr>
<tr>
<td><code>path</code></td>
<td>保存excel文件的路径。</td>
</tr>
</tbody>
</table>
<h3 id="获取蛋白序列-fasta格式">获取蛋白序列-fasta格式</h3>
<p>通过 UniProt 中的蛋白ID,下载蛋白序列。</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 下载UniProt的蛋白序列并保存为fasta文件</span><br><span class="line">GETSeqFastaUniprot(Dm_Acc, "I:/Thesis/Analysis_Display/R_data",FileName = "Dm_Prot")</span><br><span class="line"></span><br><span class="line"># 获取序列长度</span><br><span class="line">GetSeqLength(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br><span class="line"></span><br><span class="line"># 获取蛋白亚型信息</span><br><span class="line">GetSequenceIso(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure>
<h3 id="蛋白序列信息">蛋白序列信息</h3>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127224330.png" alt=""></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 获取序列信息</span><br><span class="line">Dm_Sequences <- GetSequences(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<h3 id="蛋白互作-STRING">蛋白互作-STRING</h3>
<p>连接到stringdb并检索输入列表之间的PPI</p>
<p><code>GetproteinNetwork_all(ProteinAccList , directorypath = NULL, SpeciesID = 7227)</code></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 根据导入的数据生成PPI</span><br><span class="line">GetproteinNetwork_all(Dm_Acc, "I:/Thesis/Analysis_Display/R_data", SpeciesID = 7227)</span><br><span class="line"># 获得蛋白质相互作用列表</span><br><span class="line">GetProteinInteractions(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127224052.png" alt=""></p>
<h3 id="GO分析-“Gene-ontology”(基因本体论)">GO分析-“Gene ontology”(基因本体论)</h3>
<p>格式</p>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127223940.png" alt=""></p>
<p><code>PlotGOBiological(GOObj, Top = 10, directorypath = NULL)</code></p>
<p><code>Plot.GOMolecular(GOObj, Top = 10, directorypath = NULL)</code></p>
<p><code>Plot.GOSubCellular(GOObj, Top = 10, directorypath = NULL)</code></p>
<p><code>PlotGoInfo(GOObj , directorypath = NULL)</code></p>
<p><code>PlotGOAll(GOObj, Top = 10, directorypath = NULL, width = width, height = height)</code></p>
<p><code>GOObj</code> 参数: 指的是得自 <code>GetProteinGOInfo</code> 函数的数据集。</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 获取Gene ontolgy信息</span><br><span class="line">GeneOntologyObj <- GetProteinGOInfo(Dm_Acc,"I:\\Thesis\\Analysis_Display\\R_data")</span><br><span class="line"># 解析从UniprotR函数' GetProteinGOInfo '中检索的数据。</span><br><span class="line">Goparse(GeneOntologyObj)</span><br><span class="line"># This Function is used to plot data retrieved from UniprotR Function "GetProteinGOInfo"</span><br><span class="line">PlotGoterms(GeneOntologyObj,"I:\\Thesis\\Analysis_Display\\R_data")</span><br><span class="line"># Biological process</span><br><span class="line">PlotGOBiological(GeneOntologyObj) </span><br><span class="line">PlotProteinGO_bio(GeneOntologyObj)</span><br><span class="line"># Molecular function</span><br><span class="line">Plot.GOMolecular(GeneOntologyObj)</span><br><span class="line"> PlotProteinGO_molc(GeneOntologyObj)</span><br><span class="line"># Subcellualr localization</span><br><span class="line">Plot.GOSubCellular(GeneOntologyObj)</span><br><span class="line">PlotProteinGO_cel(GeneOntologyObj)</span><br><span class="line"># 合并BP、MF、CC</span><br><span class="line"># This Function is used to plot data retrieved from UniprotR Function "GetProteinGOInfo".</span><br><span class="line">PlotGoInfo(GeneOntologyObj,"I:\\Thesis\\Analysis_Display\\R_data")</span><br><span class="line"># This Function is used to plot the retrieved Gene Ontology from function ’GetProteinGOInfo’</span><br><span class="line">PlotGOAll(GOObj = GeneOntologyObj, directorypath = getwd(), width = 8, height = 5)</span><br><span class="line"># </span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/GoPlotInfo.jpeg" alt=""></p>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/GO%20All.jpeg" alt=""></p>
<h3 id="KEGG富集分析">KEGG富集分析</h3>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">Enrichment.KEGG(Dm_Acc,OS="dmelanogaster",p_value=0.05,directorypath="I:/Thesis/Analysis_Display/R_data",top=10)</span><br><span class="line"># 对给定的基因或蛋白质列表进行富集分析</span><br><span class="line">Pathway.Enr(Dm_Acc,OS="dmelanogaster",p_value=0.05,directorypath="I:/Thesis/Analysis_Display/R_data",top=10)</span><br></pre></td></tr></table></figure>
<h3 id="蛋白表达信息">蛋白表达信息</h3>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127224012.png" alt=""></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">Dm_Acc_Expression <- GetExpression(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<h3 id="蛋白结构信息">蛋白结构信息</h3>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127223517.png" alt=""></p>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127223620.png" alt=""></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 蛋白二级结构</span><br><span class="line">GetStructureInfo(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br><span class="line"></span><br><span class="line"># 结构域</span><br><span class="line">Dm_Acc_Domains <- GetFamily_Domains(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<h3 id="亚细胞定位">亚细胞定位</h3>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">GetSubcellular_location(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241127223850.png" alt=""></p>
<h3 id="发表的文献">发表的文献</h3>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">GetPublication(Dm_Acc, "I:/Thesis/Analysis_Display/R_data")</span><br></pre></td></tr></table></figure>
<p><img data-src="images/clipboard-3403100846.png" alt=""></p>
<h2 id="其他R包-UniProt">其他R包-UniProt</h2>
<h3 id="drawProteins包">drawProteins包</h3>
<p>根据从Uniprot蛋白质数据库中获得的数据绘制蛋白结构示意图。</p>
<p>其基本工作流程是:</p>
<ol>
<li class="lvl-3">
<p>提供一个或多个Uniprot ID;</p>
</li>
<li class="lvl-3">
<p>从Uniprot API中获取特征列表;</p>
</li>
<li class="lvl-3">
<p>绘制这些蛋白质的基本链;</p>
</li>
<li class="lvl-3">
<p>根据需要添加特征。</p>
</li>
</ol>
<p><code>drawProteins</code>使用包httr与Uniprot API进行交互,并将一个JSON对象提取到R中。JSON对象用于创建数据表。 然后使用ggplot2绘制蛋白示意图。 详细见 <span class="exturl" data-url="aHR0cHM6Ly93d3cuYmlvY29uZHVjdG9yLm9yZy9wYWNrYWdlcy9yZWxlYXNlL2Jpb2MvdmlnbmV0dGVzL2RyYXdQcm90ZWlucy9pbnN0L2RvYy9kcmF3UHJvdGVpbnNfQmlvY1N0eWxlLmh0bWw=">https://www.bioconductor.org/packages/release/bioc/vignettes/drawProteins/inst/doc/drawProteins_BiocStyle.html<i class="fa fa-external-link-alt"></i></span></p>
<h3 id="queryup包">queryup包</h3>
<p>从’ UniProtKB ’ REST API中检索蛋白质信息</p>
<h2 id="参考">参考</h2>
<ol>
<li class="lvl-3">
<p>Proteomicslab57357/UniprotR: Retrieving Information of Proteins from Uniprot</p>
</li>
<li class="lvl-3">
<p>CRAN: Package UniprotR</p>
</li>
<li class="lvl-3">
<p>UniprotR: Retrieving and visualizing protein sequence and functional information from Universal Protein Resource (UniProt knowledgebase) - PubMed</p>
</li>
<li class="lvl-3">
<p>自学R语言–使用UniprotR包提取Uniprot数据库内容 - 知乎</p>
</li>
</ol>
</div>
<script src="https://my.openwrite.cn/js/readmore.js" type="text/javascript"></script>
<script>
var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
if (!isMobile) {
var btw = new BTWPlugin();
btw.init({
"id": "vip-container",
"blogId": "33502-1730425843713-524",
"name": "虫子的生存笔记",
"qrcode": "https://leaf-miner.pages.dev/image/%E5%85%AC%E4%BC%97%E5%8F%B7.png",
"keyword": "more"
});
}
</script>
]]></content>
<categories>
<category>原创</category>
<category>科研</category>
</categories>
<tags>
<tag>R语言</tag>
<tag>果蝇</tag>
<tag>UniProt</tag>
<tag>蛋白</tag>
<tag>ID转换</tag>
<tag>UniprotR包</tag>
</tags>
</entry>
<entry>
<title>使用R语言通过DIOPT数据库检索同源基因-RDIOPT包</title>
<url>/2024/11/26/59d71c476e67/</url>
<content><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\assets\js\Meting.min.js"></script><div id="vip-container"><p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241126153440.png" alt=""></p>
<p>RDIOPT包 是 DIOPT 同源基因查找器 (<strong>DIOPT Ortholog Finder</strong>) 的一个简单包装器(wrapper)。这个包(package)的目的是允许用户直接从 R 语言环境中查询同源基因,而不需要复制和粘贴操作。RDIOPT 依赖于 DIOPT API 来执行查询和搜索结果。</p>
<span id="more"></span>
<h2 id="安装">安装</h2>
<figure class="highlight r"><table><tr><td class="code"><pre><span class="line"><span class="comment">#install.packages("devtools")</span></span><br><span class="line">devtools<span class="operator">::</span>install<span class="punctuation">\</span>_github<span class="punctuation">(</span><span class="string">"myuhao/RDIOPT"</span><span class="punctuation">)</span></span><br></pre></td></tr></table></figure>
<h2 id="函数及参数">函数及参数</h2>
<p><code>find_orthologs(genes, from = 9606, to = 7227, filter = "none", version = 8)</code></p>
<table>
<thead>
<tr>
<th><code>genes</code></th>
<th>字符向量,基因的<code>enterzID</code>。<code>gene symbol</code>。</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>from</code></td>
<td>源物种<code>NCBI Taxonomy ID</code></td>
</tr>
<tr>
<td><code>to</code></td>
<td>目标物种<code>NCBI Taxonomy ID</code></td>
</tr>
<tr>
<td><code>filter</code></td>
<td>筛选结果,具体参数见后面内容。</td>
</tr>
<tr>
<td><code>version</code></td>
<td>版本,<code>8</code>或者<code>9</code></td>
</tr>
</tbody>
</table>
<p><code>from</code> 和 <code>to</code>为<code>NCBI Taxonomy ID</code>. DIOPT 目前支持以下 IDs (DRSC - DRSC Integrative Ortholog Prediction Tool):</p>
<ul class="lvl-0">
<li class="lvl-2">
<p><code>all</code>: 以下所有物种 (仅限<code>to</code>使用)</p>
</li>
<li class="lvl-2">
<p><code>83333</code> Escherichia coli [ E. coli ]</p>
</li>
<li class="lvl-2">
<p><code>3702</code> Arabidopsis thaliana [ Thale cress ]</p>
</li>
<li class="lvl-2">
<p><code>4896</code> Schizosaccharomyces pombe [ Fission yeast ]</p>
</li>
<li class="lvl-2">
<p><code>4932</code> Saccharomyces cerevisiae [ Yeast ]</p>
</li>
<li class="lvl-2">
<p><code>6239</code> Caenorhabditis elegans [ Worm ]</p>
</li>
<li class="lvl-2">
<p><code>7165</code> Anopheles gambiae [ Mosquito ]</p>
</li>
<li class="lvl-2">
<p><code>7227</code> Drosophila melanogaster [ Fly ]</p>
</li>
<li class="lvl-2">
<p><code>7955</code> Danio rerio [ Zebrafish ]</p>
</li>
<li class="lvl-2">
<p><code>8364</code> Xenopus tropicalis [ Western clawed frog ]</p>
</li>
<li class="lvl-2">
<p><code>10116</code> Rattus norvegicus [ Rat ]</p>
</li>
<li class="lvl-2">
<p><code>10090</code> Mus musculus [ Mouse ]</p>
</li>
<li class="lvl-2">
<p><code>9606</code> Homo sapiens [ Human ]</p>
</li>
</ul>
<p><strong><code>filter</code></strong></p>
<ul class="lvl-0">
<li class="lvl-2">
<p><code>none</code> 无过滤,显示所有结果。</p>
</li>
<li class="lvl-2">
<p><code>best_match</code> 只有当每个输入基因或蛋白有一个以上匹配时,才返回最佳匹配。</p>
</li>
<li class="lvl-2">
<p><code>exclude_score_less_1</code> 排除低diopt得分( score > 1 ,除非仅匹配得分为1)</p>
</li>
<li class="lvl-2">
<p><code>exclude_score_less_2</code> 排除低diopt得分( score > 2 ,除非仅匹配得分为1或2)</p>
</li>
</ul>
<h2 id="示例">示例</h2>
<p>以黑腹果蝇 [ <em>Drosophila melanogaster</em> (fruit fly) ] 的Akt, CaMKI基因为例</p>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241126192800.png" alt=""></p>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241126201505.png" alt=""></p>
<figure class="highlight r"><table><tr><td class="code"><pre><span class="line">library<span class="punctuation">(</span>RDIOPT<span class="punctuation">)</span></span><br><span class="line"><span class="comment"># Entrez ID</span></span><br><span class="line">gene_of_Dm <span class="operator"><-</span> <span class="built_in">c</span><span class="punctuation">(</span><span class="number">41957</span><span class="punctuation">,</span><span class="number">43792</span><span class="punctuation">)</span></span><br><span class="line"><span class="comment"># 安装了AnnotationDbi可以使用gene sysmbol</span></span><br><span class="line"><span class="keyword">if</span> <span class="punctuation">(</span>require<span class="punctuation">(</span>org.Dm.eg.db<span class="punctuation">)</span><span class="punctuation">)</span> <span class="punctuation">{</span></span><br><span class="line"> gene_of_Dm <span class="operator"><-</span> <span class="built_in">c</span><span class="punctuation">(</span><span class="string">"Akt"</span><span class="punctuation">,</span><span class="string">"CaMKI"</span><span class="punctuation">)</span></span><br><span class="line"><span class="punctuation">}</span></span><br><span class="line"><span class="comment"># 果蝇NCBI Taxonomy ID为7227</span></span><br><span class="line">Dm_orthologs <span class="operator"><-</span> RDIOPT<span class="operator">::</span>find_orthologs<span class="punctuation">(</span>gene_of_Dm<span class="punctuation">,</span> from <span class="operator">=</span> <span class="number">7227</span><span class="punctuation">,</span> to <span class="operator">=</span> <span class="string">"all"</span><span class="punctuation">,</span> filter <span class="operator">=</span> <span class="string">"best_match"</span><span class="punctuation">)</span></span><br><span class="line">Dm_orthologs</span><br></pre></td></tr></table></figure>
<p><img data-src="https://cdn.jsdelivr.net/gh/leafminer/tuchuang@master/20241126202220.png" alt=""></p>
<h2 id="参考">参考</h2>
<ol>
<li class="lvl-3">
<p>myuhao/RDIOPT: R interface to run DIOPT ortholog finders</p>
</li>
<li class="lvl-3">
<p>DRSC - DRSC Integrative Ortholog Prediction Tool</p>
</li>
</ol>
</div>
<script src="https://my.openwrite.cn/js/readmore.js" type="text/javascript"></script>
<script>
var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
if (!isMobile) {
var btw = new BTWPlugin();
btw.init({
"id": "vip-container",
"blogId": "33502-1730425843713-524",
"name": "虫子的生存笔记",
"qrcode": "https://leaf-miner.pages.dev/image/%E5%85%AC%E4%BC%97%E5%8F%B7.png",
"keyword": "more"
});
}
</script>
]]></content>
<categories>
<category>原创</category>
<category>科研</category>
</categories>
<tags>
<tag>R语言</tag>
<tag>实例</tag>
<tag>果蝇</tag>
<tag>DIOPT</tag>
<tag>同源基因</tag>
<tag>RDIOPT包</tag>
</tags>
</entry>
<entry>
<title>和江湖谈一场恋爱 | 周宏翔</title>
<url>/2024/11/25/f984d4bf689a/</url>
<content><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\assets\js\Meting.min.js"></script><div id="vip-container"><p>老姜是我们哥儿几个里面最有钱的,一集电视剧剧本写下来就够我们半年的工资,所以有事儿没事儿我们都爱靠着老姜蹭吃蹭喝。老姜谈起自己事业,从来都是云淡风轻,在我们在为了同事比自己多拿几千年终奖而纠结的时候,老姜总是大手一挥,爽快地说:“得了,今天吃喝嫖赌我一个人买单!”</p>
<span id="more"></span>
<p>当然,我们都不是白眼狼,老姜也有“遇难”的时候,在文字世界里徜徉的他是个生活白痴,什么电路跳闸,马桶堵塞,喝醉了倒在路边,往往无法自理,只要他一个电话,我们立马赶到,二话不说,一条龙服务。<br>
跟着老姜除了能够偶尔享受一下奢靡的生活,更重要的是可以听他说几个故事。老姜的故事总是百转千回,荡气回肠,往往听到精彩之处,老姜就立马收口,欲知详情,请听下回分解。我和老姜开玩笑说,你去开个茶馆儿,准火!老姜说,肥水不流外人田,也就是逗你们哥儿几个开心开心,真要我去讨好那帮子人,我还不愿意呢。<br>
和老姜暧昧的女人可不少,有时候还有几个小有名气的大角儿,为了让自己多点戏份,跟着老姜可是形影不离。但老姜这个人把持有度,知道什么是可以碰的,什么是不能碰的,懂得引火上身的道理,往往点到即止。<br>
直到老姜遇到了苏荷,他才真正感觉到了棋逢对手。<br>
苏荷不是漂亮姑娘,说起来,她不仅脸蛋儿一般,身材还有些偏胖,就老姜第一眼看见她,就怀疑她肯定是导演的亲戚“走后门”进来的。让这样的女生演女二真的好吗,老姜不禁想到。那是老姜所编的为数不多的古装剧,纵使为数不多,也好歹是自己的作品演绎,出于本有的职业操守,老姜还是和导演提出了换角的建议,结果第二天,苏荷就风驰电掣地追到了老姜家,老姜前一晚为了赶剧本,凌晨四点才上床,这天刚亮,就被那野兽撞门的剧烈声响给吵醒了。<br>
老姜一开门,苏荷就劈头盖脸地骂起来,“为什么要把我换掉?我不就是没有献身吗?你们这群老流氓!”老姜瞬间把门关上,靠在门上稍稍安静了两秒,睡眼惺忪地他还没搞清楚状况,苏荷又在门外大吵大闹起来,“你个没良心的,吃干抹净,你个负心汉,陈世美,见了漂亮姑娘就忘了糟糠之妻,你……”苏荷没说完,老姜就把她拉进了屋。<br>
两个人面面相觑,大眼瞪小眼,半晌,苏荷双手抱胸,说:“想也别想!”<br>
“靠,我可没那么重口味!”老姜忍不住说道。<br>
“那你想干嘛?”苏荷死死地盯着他。<br>
“我还想问你,你到底想干嘛?”<br>
苏荷咬着嘴唇,肚子里的话翻了一遍又一遍,最后说:“实在当不了女二,女三女四也行!”<br>
老姜说:“换掉你是导演的意思,我又做不了主。”<br>
苏荷红着脸说:“你个老流氓,导演都和我说了,就是我没给你献身!”<br>
事后老姜回忆起来,说那天就像是在饭店点了熊掌,上了猪蹄,吃到嘴里,还有一撮毛。<br>
最终老姜为了证实自己和那些女演员非亲非故,没有所谓的“潜规则”,还是给苏荷换到了一个女配角,用老姜的话来说,这个角色至关重要,虽然整部戏只有三场,但是没有这三场,剧情就无法继续。<br>
苏荷非常用心,即使是微不足道的角色,她也常常在空闲时候自我演练。那些台词对着镜子说了一遍又一遍,最后上场的时候,基本都是一次性过关,没有任何NG的情况。老姜在旁边看,竟然也为苏荷的努力和认真有所动容。连着四个月的拍摄,苏荷一直跟着剧组,风雨无阻,老姜偶尔去探班,发现苏荷一直在,间隙他过去问她:“你不是都拍完了吗?”苏荷说:“我特别想知道故事的结局。”<br>
杀青的那天晚上,导演特别设了宴犒劳大家,老姜喝得醉醺醺,错把苏荷当成了组里另外一个小姑娘,脸不觉靠上去,立马被甩了一个大耳光,全场一下鸦雀无声,老姜立刻清醒了过来,苏荷眼看无法收场,打开门一溜烟跑了。<br>
老姜从酒店出来,摇头晃脑不清醒,一辆出租杀过来,差点把老姜撞倒在地,老姜只觉有个人拉了自己一把,司机准备出来嘟囔几句,却被拉自己的那个人噼里啪啦骂了回去,老姜只觉酒精往大脑一冲,眼前一黑,两眼一闭,就这样倒了下去。<br>
醒来的时候,老姜发现自己躺在一间招待所房间的床上,床头有一张纸条,上面写:住宿的钱我付过了,八十五,下面是我的银行卡号,醒了记得打给我,苏荷。老姜觉得好笑,把纸条放进了上衣口袋,翻身又睡了过去。<br>
一场戏结束之后,老姜拿钱去泰国旅游了一趟,回来的时候,又准备接新活儿。他打电话给我们哥儿几个,找了个饭店准备请我们吃一顿,他说,回头他要闭关了,写不好可不出山。<br>
那天我们去吃烤鱼,大家伙儿都听着老姜在泰国的逸闻趣事,老姜一边说着自己的艳遇一边嘚瑟得吐烟圈。看着老姜耀武扬威,实在遭人羡慕。突然有人问老姜,之前和你打得火热的小姑娘怎么样了?老姜咧嘴笑道,哪个小姑娘,跟着我转的小姑娘多了去了,不晓得你说哪个。<br>
夜里回家的时候,老姜一边扭着腰一边唱着歌,楼道黑漆漆,刚要开门,踩到一团软绵绵的东西,立马听到一声尖叫。他吓得后退几步,打了火机,微弱的火光让他看清了苏荷狼狈的脸,苏荷就跟一只遗弃的小猫一样。老姜大叫一声,擦,女鬼上身啊!<br>
老姜开了门,邀她进屋,问她怎么跟从大宅门逃出的小媳妇儿一样,苏荷沉默了很久,才告诉老姜她被男朋友扔大街了,男朋友骑着摩托车突突地离开了她的世界。<br>
苏荷说,我男朋友说我每天都做白日梦,没得救了,说我已经不是十七八岁的小姑娘,梦想就是狗屁,根本养不活自己。他不想拖着一个拖油瓶,我在他眼中就是一个不切实际的疯子!我也不知道怎么走着走着就走到你楼下,上来敲门你不在,蹲在门口睡着了。<br>
老姜有些恍惚,却依旧看清了她两颊的泪痕,红通通的眼睛,应该是哭了很久。<br>
苏荷坐在沙发上,长长叹了一口气,可怜巴巴地问老姜她是不是真的没得救了,老姜红着脸,吐着酒气说,还好,不算晚期。老姜四仰八叉地靠在椅子上问苏荷,为什么那么想当演员。苏荷说,我就是想演戏,我喜欢演戏。<br>
老姜一时间语塞,不知道怎么说才好。<br>
苏荷突然问起老姜之前那部戏什么时候播,老姜想了想,说,应该快了。苏荷在茶几上抓起一支笔,用力在老姜手上写了个号码,硌得老姜生痛,苏荷说,这是我电话,要是快播了,你和我说一声,等我成了大明星,我要让他后悔死!<br>
后来老姜在一家咖啡店写稿遇见苏荷,她穿着围裙在那里接待客人,眼看老姜来了,她突然有些不好意思。老姜一坐就是一天,店铺打烊,老姜才走,漆黑的夜,老姜觉得苏荷一个人走不安全,说开车载她一程,苏荷摇头,说自己坐晚班公交就好了,老姜问苏荷住哪儿,苏荷说在杨思,老姜说他正巧顺路。其实老姜住徐汇,根本和苏荷不是一个方向。<br>
老姜问她为什么不好好找份工作,苏荷说她要一面体验生活一面丰富阅历,好的演员必须方方面面尝试,否则演戏不真。老姜说,其实除了演员,世上还有很多事情可以做。<br>
苏荷突然沉默了,半晌,开口说,我为了学演戏,我妈在外面借了很多钱,当时遭了很多白眼,我跟我妈说,有朝一日,我一定让那些瞧不起我的亲戚刮目相看,我一定会成为大明星!就算我男朋友和我掰了,我也无所谓了,我和我妈说了,我的戏很快就要播了,电话那头她笑得可开心了。苏荷说得激动,有些泪眼婆娑。<br>
老姜突然靠边停车,他打开车窗,点了一支烟,说:“人在江湖,身不由己。”苏荷睁大眼睛望着他问:“什么意思?”老姜深深地吸了一口,弹了烟灰,看着苏荷,诚恳地说:“其实你演的那三出戏,导演全剪掉了,不是你演的不好,而是那些戏份真的不需要。”苏荷一时呆若木鸡,顷刻大叫一声,抓住老姜手臂狠狠地咬了一口,又给了老姜一巴掌,打开车门冲了出去。<br>
老姜开车也没追上苏荷,他突然有些愧疚,他问过导演当时为什么选她当女二号,导演说,因为她已经来试过十几次戏了,每次都带些新花样来,总觉得不让她试试,也有些对不起她,反正女二在中途会死掉,让她试试也无妨,但是,所有人都知道,以她那样的长相,肯定是红不了。<br>
那段时间老姜特别不开心,剧也不写了,成天邀约我们出来喝酒,我问他是不是做了亏心事,搞大了哪个女明星的肚子,老姜笑不出来,我们想,这下完了,从前可没有哪个女人让他茶饭不思。<br>
一天老姜喝多了,一口气给苏荷打了二十个电话,苏荷忍无可忍,只有接了,老姜说:“你来,我给你写新戏!”苏荷在那头没有说话,老姜继续说:“我认识的导演多,我给他们推荐!”苏荷还是没有说话,老姜接着说:“你是不是不信我?”苏荷微微舒了一口气,说:“我妈不在了,我演给谁看呢?”原来苏荷没有告诉他,当时母亲已经病重,等的就是苏荷那场戏,结果戏没了,妈也没了。<br>
老姜说:“你出来,你出来,我想见你。”<br>
“你想,我不想。”说完就挂断了老姜的电话。<br>
老姜喝多了,就爬到苏荷之前打工那家咖啡馆门口,后来老板打电话给苏荷,苏荷踹了老姜两脚,老姜恍恍惚惚说不出话,苏荷拖着老姜上出租车,老姜抓着苏荷的手,苏荷想拖出来,再给他两巴掌,结果老姜又抓住她另一只手,那天老姜靠在苏荷肩上,说了一堆胡话,结果苏荷把老姜带回了家。<br>
老姜说,你缺的不是演技,是机会。<br>
苏荷冷冷地说,现在说这些有什么用?<br>
老姜满嘴酒气说,别忘了那些看你笑话的亲戚。<br>
苏荷不出声,老姜接着说,你妈不在了,江湖还在,你是女侠,随时都要回来。<br>
没多久,老姜和苏荷走到了一起,老姜逼着苏荷减肥,每天督促她束身,早起陪她跑步,晚上监督她少吃,几个月下来,苏荷瘦了二十斤,和之前我们看到的那个苏荷判若两人。苏荷甚至比之前更努力,老姜写了剧,她就在家对着镜子念,拿手机录下来,自己听不下去,就重头再来。老姜看在眼里,心里却不是滋味,苏荷问老姜自己演得如何,老姜说,好,真的好。苏荷为了瘦小腿,用保鲜膜绑了一个月,最后弄得苏荷身上都过敏了,老姜说,你太拼了。苏荷说,你不是说我是女侠吗,哪个女侠不是这样拼出来的?<br>
老姜说带苏荷去见几个导演,苏荷当场拒绝,她说,我才不要因为你的关系“走后门”,你说我演得好,是真话,我就去,是假话,我就继续练。老姜说不过她,只有给她一个深深的吻和大大的拥抱,没多久,苏荷靠自己的实力接了个女三号,虽然戏份也不多,但是苏荷很开心。<br>
那天苏荷拉着老姜,叫上我们一群人去吃饭,席间大家都很开心,几个兄弟揶揄老姜,当了这么多年的山大王,终于被苏荷这个女侠降服了。<br>
苏荷开始在圈子里小有名气,接的戏也越来越多,老姜继续闭关写剧本,有时候苏荷还能帮老姜介绍几个导演,夫妻搭配,干活不累,两个人感情越来越好,大家都说这次是瞌睡遇到枕头,碰巧了。<br>
但是娱乐圈里人红是非多,很快就有人说苏荷是靠老姜上位,开始在背后诋毁苏荷,说当今谁有点“献身精神”都能红,不知道谁又翻出苏荷之前的照片,开始传言她到韩国整容。那段时间苏荷压力很大,和老姜常常吵架,老姜写累了,也不想和苏荷说话,就到酒吧去喝酒,碰到熟悉的小妹,又露出了本性,接二连三有人和苏荷打小报告,说老姜和谁谁又勾搭上了。苏荷问老姜,老姜便说苏荷不信任,一来二去,争吵成了冷战,最终爆发,只有分手。<br>
老姜一气之下说,和女生说说话怎么了,成天就只许对着你一个人了?苏荷猛地踹了老姜的命根子,声色俱厉地说:“滚犊子,你这辈子就是个老流氓!”<br>
苏荷走后,老姜回到了一个人生活的状态,不知道为何,却突然忘记了自己曾经怎么独自生活。他想起这些日子,自己写剧本累的时候,苏荷会帮他揉肩,渴了苏荷给他倒茶,虽然彼此忙,在家做饭不多,但是苏荷的糖醋小排确实是人间美味。<br>
苏荷一走,老姜像中邪一样,一个字也写不出来,每天打开电脑发呆,写了几行,又回头删掉,来来去去,写不到一百字,眼看要交剧本了,他还一个字都没动,最后投资方生气,干脆换掉了编剧,老姜受到了打击,还被要求退还定金,老姜的钱早用得差不多了,因此欠了一屁股债。<br>
以前那个意气风发的老姜不见了,我们看见他的时候,他完全变成了山顶洞人,蓬头垢面,披头散发,老姜的房间堆满了揉成团的稿纸,他说他完了,真的完了。<br>
我们赶紧联系到苏荷,当时苏荷不在上海,正在蒙古拍戏,信号不好,没听清我们说的,只听到“老姜完了完了”就立马从蒙古飞回来,苏荷去敲门,老姜没开,她以为老姜为情自杀,掏出钥匙开了门,结果老姜和一个小姑娘正躺在床上,苏荷红着脸又红着眼,摔了门,快步下了楼。<br>
老姜淡出圈子一段时间,再回来,新人都占了空,没有多少人找他写戏了,那段时间,老姜穷困潦倒,成了我们哥儿几个请他吃喝嫖赌,老姜叹气说,出来混,都是要还的啊。<br>
那时候苏荷已经红了,我们喝酒还能看见苏荷的广告,老姜看着电视里的苏荷,嘴上不说,眼里都是泪,老姜说,谁能想得到,原来的小胖妞现在居然在拍减肥茶广告。<br>
几天后,老姜接到一个导演的电话,说看了他以前的本子,想和他谈谈合作的事。老姜盛装打扮,到了饭店,对方才说,是苏荷介绍的,苏荷是他们下部戏的女主角。<br>
签完合同的那个下午,老姜坐在咖啡厅里,望着窗外,心里空荡荡一片。<br>
夜里聚会,老姜说终于他妈的找到份活儿了。我们为他东山再起干杯。老姜叹气,说,最后居然还要靠女人!<br>
兄弟问老姜,你想苏荷吗?<br>
老姜说,不想,谁想谁是孙子!<br>
说着猛灌了一杯酒,带着哭腔说道,我他妈就是孙子!<br>
老姜永远不胜酒力,永远不能自理,他倒在路边,我们给苏荷打了电话,苏荷过来的时候,我们就自动撤退了,苏荷把老姜塞进了自己的车,怕老姜冷,开了暖气,老姜在后面哭,叫着苏荷的名字,苏荷假装听不到,眼泪却都滴在了方向盘上。<br>
苏荷把老姜送回家,老姜抓着苏荷的手说,锁没换,你随时都可以回来。苏荷迟疑了几秒,还是把手抽出来,她说,虽然锁没换,但是我的钥匙已经丢了。老姜没有再说话,苏荷打算下楼,老姜说,能不能陪我说会儿话。<br>
老姜点了支烟,苏荷趴在阳台栏杆上,这个家,是曾经他们一起经营的地方。<br>
苏荷突然开口,说,我不在,房间也还整洁,应该有小姑娘帮你打扫吧。老姜吐了一口烟,眯着眼睛,说,每天晚上我都收拾一遍,想着你哪天回来,觉得这还是个家。苏荷鼻子有些酸,但没有接老姜的话,老姜接着说,你啊,不要太拼,江湖再大,女侠也要有个家。<br>
苏荷别过脸,淡淡地说,别搞笑了,你还真把我当女侠啊!你啊,就是剧本写多了,快变神经病了!<br>
苏荷起身,走到老姜身边,挽起老姜的右袖,那个被她咬过的齿痕,已经渐渐看不清了。苏荷说,你看,不管曾经多么用力,最后都会消失。好了,玩笑开完了,我走了,对你那些小姑娘好点,注意身体。<br>
老姜趴在阳台上,看着苏荷的车渐渐消失在夜色之中,哽咽得说不出一句话来。<br>
苏荷一边开着车,一手伸进大衣口袋里,在驶向郊区的路上,她打开车窗,把那枚随身携带的钥匙抛了出去。金属在路灯下划出一道弧线,汽车飞速驶过,听不到它最终落地的声响。<br>
爱这回事儿,不过是两个人在兵荒马乱中的相濡以沫,能够共苦的人,往往等到难关已过,无法同甘,你以为你爱上了一个人,其实,只是爱上了那个拔刀亮剑的江湖,和那段彼此磨砺的岁月。</p>
<hr>
</div>
<script src="https://my.openwrite.cn/js/readmore.js" type="text/javascript"></script>
<script>
var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
if (!isMobile) {
var btw = new BTWPlugin();
btw.init({
"id": "vip-container",
"blogId": "33502-1730425843713-524",
"name": "虫子的生存笔记",
"qrcode": "https://leaf-miner.pages.dev/image/%E5%85%AC%E4%BC%97%E5%8F%B7.png",
"keyword": "more"
});
}
</script>
]]></content>
<categories>
<category>转载</category>
<category>学习</category>
</categories>
<tags>
<tag>小小说</tag>
<tag>转载</tag>
<tag>故事</tag>
<tag>恋爱</tag>
<tag>江湖</tag>
</tags>
</entry>
<entry>
<title>我所说的拼命,只是不顾一切的活着 | 午歌</title>
<url>/2024/11/25/05f6fd108850/</url>
<content><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\assets\js\Meting.min.js"></script><div id="vip-container"><p>8月,台风“海葵”在宁波登陆,我被困在栎社机场的候机厅,过了11点钟,延误的航班没有丝毫消息。我在手机通讯录里不断的翻看着宋玉的名字,仿佛手指轻点一下,就能联通到他的世界。</p>
<p>风很大,大雨瓢泼而下,而我始终没有点动它。</p>
<span id="more"></span>
<p><strong>1</strong></p>
<p>我和宋玉是发小,5岁那年,我和他在家属院后的货仓里玩火时,点燃了一张大油毡。不知怎么油毡燃烧时滴下的沥青溅到我的棉裤上。我的新棉裤迅疾燃烧起来,我蜷着身子疼得在地上嗷嗷直叫。宋玉见状,慌忙一把一把的抓起沙子盖在我的火腿上——没有用,他又使出吃奶的劲头拼命在上面吐口水, 可惜仍无济于事。</p>
<p>火势加大,我疼得哇哇大哭,宋玉褪下他的裤子,一泡尿撒在上面,浇灭了大部分的火苗。眼看着剩下的火种死灰复燃,宋玉光着屁股就抱着我的大腿打起滚来,最终熄灭了所有的火苗。</p>
<p>事后,宋玉被他娘吊着打了半天。而我因为伤口发炎,躺在医院里好吃好喝的住了一个星期。<br>
我的左腿上至今还有一条8寸长的“火疤瘌”,宋玉说,那是我们伟大友谊的见证。</p>
<p>可在当时我感动的要命,是宋玉的果断与勇敢保住了我的大腿。<br>
我说,宋玉,你是我的救命恩人。你想要什么,我都买给你!<br>
宋玉爬在我的身边,嘿嘿一笑说,不用了,你先欠着,我想到了你再还。</p>
<p>说完话,他得意的翻身坐起,谁知屁股一挨床,就“哇哦”一声,蹿出去老高,像一只燃烧的钻天猴儿炮仗。</p>
<p><strong>2</strong></p>
<p>到了小学我们被分到了同一个班级。<br>
我因为成绩还不错,是老师眼里的好学生。<br>
宋玉则是调皮捣蛋的孩子王,因为“大腿事件”知恩图报,我时常把作业和小纸条及时的传给宋玉。</p>
<p>5年级,文艺汇演,宋玉找我一起演舞台剧。<br>
宋玉说,大闹天宫里缺一个重要角色,你演不演?</p>
<p>我问,是孙悟空吗?<br>
宋玉说,那是我的角儿!<br>
我问,是天兵天将吗?<br>
宋玉说,比这个待遇要好一点!<br>
我问,那是?<br>
宋玉说,是玉皇大帝,你考虑一下!</p>
<p>我说,玉皇大帝就算了,整个大闹天宫里一直都被揍得很怂,有损我的好孩子形象。<br>
宋玉说,我会尽量减少你的戏份,蒋一燕会演王母娘娘,你再考虑一下。</p>
<p>蒋一燕是我们全校闻名的学霸,不但成绩好,人也生的十分清秀,而且画画也非常棒。那个年龄段,但凡三观发育正常,身体茁壮成长的男生,都争着和蒋一燕做朋友,借她作业,收藏她的画,陪她一起大扫除。</p>
<p>于是我不假思索的就答应了下来。<br>
宋玉也最终兑现了承诺,整个《大闹天空》被他改的面目全非,主要戏份就是王母娘娘和孙悟空在蟠桃园斗法。<br>
而我唯一的一句台词,就是钻在课桌底下,歇斯底里的喊了一句:<br>
“快去请如来佛祖!”</p>
<p><strong>3</strong></p>
<p>六年级时,蒋一燕参加了学校的绘画兴趣班,放学比普通同学晚一小时。因为在“大闹天宫”里结下“仙缘”,我和宋玉主动担任护花使者,时常陪伴“王母娘娘”圣驾左右。</p>
<p>一路上,我们三个说说笑笑,从马路边的白杨树上摘下知了壳,在月季花苗圃里的抓住西瓜虫,一遍遍清点落在电线上的小麻雀。日子过得简单美好,仿佛天空一般了无褶皱,仿佛流云一般长生不老。</p>
<p>毕业前的那年夏天,我们三路过一个叫九道弯的胡同。<br>
胡同的转角里,突然窜出一个高中生模样的小混混拦路打劫。因为宋玉他爸是市里的领导,家境很好,这个土豪上来就掏出二十块钱稳住了局面。</p>
<p>那个打劫的小混混,本来拿了钱乐呵呵要离开。瞥了眼蒋一燕,忽然调转过头来。<br>
“小姑娘,长得挺漂亮啊!”混混一脸坏笑,说着向蒋一燕伸出一只手来。</p>
<p>宋玉一个健步挡在前面,“拿了钱还不走?”</p>
<p>那小混混发出一声古怪的冷笑,一脚踹在宋玉的肚子上。<br>
“你妈!多管闲事是吧?”</p>
<p>宋玉捂着肚子倒在地上,使劲跟我使眼色,让我拉着蒋一燕快跑。<br>
我当时完全傻掉,直到混混再伸手去摸蒋一燕时,我才把自己的脸蛋凑了过去。</p>
<p>“你也找死是吗?”混混果断的给了我左脸一记耳光。<br>
我不知从哪里来的勇气,不但戳在原地一动不动,而且用眼神示意那个混混,你可以在我右脸上再来一下,可是休想跨过去。<br>
“傻逼!”那混混心领神会,迅速满足了我的美好愿望!</p>
<p>可我还没动,又转过另外一侧脸颊对着他。<br>
混混很意外我的抗打击能力,正在考虑调用他腿长蛋高的远程攻击模式时,捂着肚子的宋玉发疯似的冲过来,赶在混混抬腿之前,抱住了他,一口咬在他大腿根的内测。那混混痛的嚎叫了一声,跳出去半米开外。</p>
<p>“你妈!一个傻子,一个疯子,一对傻逼!”混混骂骂咧咧着一步一瘸的走开了。</p>