Home >  List

读后感-钱钟书《围城》


读后感-钱钟书《围城》

一个“留洋”归来的高级知识分子,在两年的时光里,感受了中国式教育的明争暗斗,也看清了封建家庭里面为了生计的丑恶嘴脸,更可悲的是,看到了婚姻生活的原本样子。方鸿渐作为一个伪留洋博士,凭着假学位光鲜还乡。但他其实是不成熟的,面对生活、面对自己的另一半(比如随便先找一个工作,看到一个女人接触了就有点动心),缺乏足够的考虑,自己本身的能力也有限,又不善于职场的政治斗争,所以屡屡碰壁在所难免。作为鸿渐的指路人,赵辛楣算是比较适合国情的人,既有一定的留洋知识背景,有着强大的家庭人际关系,还有圆滑世故。苏文纨是典型的爱慕虚荣的女人,他喜欢看别的男人为了自己争风吃醋、头破血流,对于方鸿渐没有真实的爱意。而最后嫁给鸿渐的孙嘉柔,大体上是贤惠的,愿意为了生活,为了自己的小家付出并隐忍,但是终究抵不过家庭成员的鄙视对他们婚姻的影响。大环境下小人物的婚姻,不仅仅是两个人的事,也是两个家庭的事。婚姻也是需要经营的,如何为对方考虑,如何协调周遭亲人的互相看不惯,如何营造二人的小浪漫。到最后,方鸿渐依旧是想不明白婚姻的,只知道为了明天的工作还得苟且的活着。

Read full-text »


读后感-东野圭吾《恶意》


读后感-东野圭吾《恶意》

真的是扣人心弦的故事,所有的剧情,从一开始就没那么清晰,到后来令人惊讶的作案者身份曝光,以及到最后,关键涉案人物性格的颠转,令人琢磨不透又拍案叫绝。作为好朋友的野野口修,梦想着成为一名作家,在已成名的日高邦彦的帮助下,踏入了文坛。但是出于对他文学才能的嫉妒,以及害怕日高曝光其所掌握的野野口在国中时期的肮脏行经(被迫强暴女同学的照片),便对他起了杀机。可怕的是这是一次长时间的、经过精密筹划的杀人,从杀猫事件构造日高的残忍印象,到影子作家的捏造以期摧毁日高的文学名声,以及子虚乌有的和其前期之间的暧昧关系,简直是天才的想法。总结来说,这部小说揭露了三个具有可怕黑暗力量的东西:校园暴力、嫉妒之心、好的名声。案件的根源就在国中时期,作为弱小一方的野野口,在被坏人强迫做一些坏事,这与他们善良的本真是相悖的,但是迫于暴力的威胁,不得不做。在一个人成为“淤泥”之后,更害怕的是见到阳光,见到纤尘不染的荷花。因为他已经习惯,当有人坚持,来打破这个格局的时候,他的心会开始倾斜,但是总会觉得达不到别人的高度。别人通过自己的努力,哪怕是被打到头破血流,也坚持下来,不屈服于流氓势力,所以嫉妒之花便开始吞噬着他的内心。人即使是死,也希望在世人里留下良好的口碑,这是无可厚非的,每个人都希望流芳百世,传承千年。但是一旦把这种名声看得太重,反而陷入了俗气的深渊,以至于采取一些极端的措施。现在才明白书首的话语,“为了恨万劫不复”。

Read full-text »


python plot concepts


最近几年,在自己的数据分析工作中,主要是使用的python这门语言,进行数据的清洗、格式的转换,然后使用内置的模块进行数据的可视化。最近也看到一篇特别好的推文,详细的的介绍了一幅图里面的各个元素,以及matplot模块的基本使用方法。

一副图包含了各种不同的元素,都有其具体的名称,下面是来自matplotlib FAQ的一个经典总结: 图片元素

通过不同的设置,可以实现图形的高度定制化,比如: 定制的图片

python matplotlib

Python_Matplotlib_Cheat_Sheet.png

参考:

  1. 高效使用 Python 可视化工具 Matplotlib, 翻译自一篇英文文章

Read full-text »


读后感-东野圭吾《白夜行》


读后感-东野圭吾《白夜行》

很揪心的一步小说,整个的故事时代跨越很大。主要讲述了,桐原当铺的老板桐原介洋被杀之后,与这个案件有关的人物的成长。直到最后,才让真相浮出水面:其儿子桐原亮司看到了自己的父亲,猥亵自己的精神玩伴雪穗,便杀害了自己的父亲。父亲的所为,来源于其妻子的出轨,这上一辈的行当都被儿子看在眼里。而雪穗一心向往大家闺秀的生活,在受到创伤之后,杀害了自己的亲生母亲(西本文代)并作了伪证。在过继给教会其优雅的继母(唐泽礼子)后,最终因为事业的原因也结束了继母的晚年。这都是幼小的黑暗种子,爆发出的黑暗力量。雪穗作为一个精致优雅的女子,从小便是众人的焦点,享受着大家艳羡的目光。但是,她的心地如此不纯良。面对与其有竞争关系的初中或者高中同学,甚至自己二婚男人的亲生女儿,都采取了“足以毁灭其灵魂的做法:强暴。不论这是桐原为了维护雪穗,采取的做法,还是雪穗本人指示的,都是灭绝人性的。这就像雪穗在阳光下行走,一个愿意为其付出生命的灵魂无时不刻在保护着她,他就是黑暗里的桐原。最令人心疼的是,当桐原跳下一楼而亡,笹垣润三问雪穗:这个人是谁时,她说不认识,便走了再没有回头。当一个女人习惯了在阳光下时,就算是她的影子,她也不愿意去触碰。

Read full-text »


读后感-东野圭吾《解忧杂货店》


东野圭吾《解忧杂货店》

《回答在牛奶箱里》 很久没有读到如此清新,但又扣人心弦的情节。从一开始,如同幸平、敦也、翔太面对这些诡异事件的不知所措,到慢慢理解这竟然是时空的间隔,着实惊讶于作者天马行空但梦幻美妙的构思。整个的故事围绕着运动员月亮兔,在面对参与奥运会的理想和陪伴罹患绝症的男友之间的艰难抉择,故事虽然老套,但是在来往的书信之间,看到了少年们善良淳朴的本真。就算彼此素未谋面,就算怀疑着自己的能力,也会凭着一颗赤子之心,努力的为他人分忧、想之所想。三位少年中最喜欢幸平,源于他稚嫩而向善的心。无论未来怎么样,坚持理想和善良,就会看到最亮丽的风景。

《深夜的口琴》 梦想这个东西,是那么的令人捉摸不定。它就像沙漠里远处的灯塔,没有刻意的指引着某一个人或者仅仅照亮某一个方向。但是当疲惫的旅人看到了它,便会如飞蛾扑火般,竭尽全力,奔向有微光的方向。克朗的故事很感人,映射了多少我们不知道的音乐人,在这条路上跋涉过,洒下了辛勤的血与泪,但终究不为人所知。很庆幸他有一个表面上不支持他的父亲,在梦想面前依旧会为他遮掩去生活的艰辛,只希望他能够有所作为,留下些许曾经奋斗的痕迹。梦想是美好的,梦想的征途中也有让人驻足的风景,也许我们无法抵达最终的目标,但是能在征途中永久地守护着这份风景,依旧美丽动人。

《在CIVIC车上等到天亮》 作为小说灵魂人物的存在,雄志老爷一直心系这解忧的杂货店。虽然身体每况愈下,小店经济如此不堪,还是抱着一颗厚世博爱之心,真诚的为每一位询商者提供自己的建议。作为一名默默付出的老人,多么希望在自己百年之后,能够知晓自己曾经的小小建议是否对于别人的一生产生了重要的意义。这不仅是每一位付出者的心愿,也是所有受惠的人应该给予的回馈。不论那些文字是否能让每个人在物质上过的更好,但至少在心灵上散发着善良的光芒。作为儿子的浪矢贵之,也答应了父亲的遗愿,虔诚的守护着这个小店,接受着来自询商者对于父亲的感谢。

《听着披头士默祷》 作为一名小小少年的浩介,面对家庭突如其来的变故,以及双亲在自己心中完美形象的崩塌,在一起逃亡的路上他追随自己的内心,选择了独自离去。他在每一位想要走进自己心扉,得知他的身世的人靠近时,一直守口如瓶,表现出了对于家人的坚强的爱。也许通过自己的双手,能够创造出更稳定而美好的生活,但是在获得成功时,没有温情的陪伴,显得这种获得是如此的不饱满。很多时候,当一切尘封的记忆在眼前慢慢铺开的时候,才知道为爱牺牲最大的人到底是谁。父母,永远都是想着自己的孩子,哪怕是死亦是如此。

《在天上祈祷》 在偌大的小镇,人与人之间的关联如此紧密。原来浪矢雄志老爷还有一段如此凄美的爱情故事,彼此之间深深的爱着,因为家境被上一代人分隔开来。但是在了断之后,他们并没有忘却对于彼此的思念和在一起的美好时光,反而用行动诠释着这份情愫。一位倾尽心血,投身于筹建孤儿院的事业,终身未嫁;一位为天下人解忧,矢志不渝。三位小小少年因为关心孤儿院的未来,对想要“摧毁”这座建筑的女子实施了劫财之举。然而,在卷入时间的轮回后,直到最后一封感谢信的到来,他们才明白是自己-这三位不足为道的小伙子帮助了她实现了自己经济独立的梦想,而她也在用行动回馈着曾经养育自己的孤儿院。

至此,所有的一切都围绕着孤儿院的曾经而展开,也牵扯出每一个人和解忧杂货店之间的缕缕关联。而这济世天下的善举,我相信都来自于年少的爱情。

Read full-text »


Sequencing techniques: from first to third generation


Read full-text »


Pie plot


一个简便易用的工具 online version:

rapid table chart maker

rapidtable_piechart.jpeg

Python: pie plot example

import matplotlib.pyplot as plt
 
# Data to plot
labels = 'Python', 'C++', 'Ruby', 'Java'
sizes = [215, 130, 245, 210]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0.1, 0, 0, 0)  # explode 1st slice
 
# Plot
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=True, startangle=140)
 
plt.axis('equal')
plt.show()

The output looks like:

matplotlib_pie.png

# show absolute value
# https://stackoverflow.com/questions/14171021/matplotlib-pie-chart-how-to-replace-auto-labelled-relative-values-by-absolute-v
total = sum(sizes)
ax.pie(sizes, labels=labels, 
       autopct=lambda(p): '{:.0f}'.format(p * total / 100), shadow=False, startangle=140)

Nested pie plots

# https://matplotlib.org/3.1.0/gallery/pie_and_polar_charts/nested_pie.html#sphx-glr-gallery-pie-and-polar-charts-nested-pie-py

fig, ax = plt.subplots(figsize=(6,6))

size = 0.4 # 可通过此参数,调节中间空心部分大小

val1 = [9251937, 8605104, 7445960, 7840986] 
val2 = [4310065, 4020865, 3461761, 3679722] 

cmap = plt.get_cmap("tab20c")
outer_colors = cmap(np.arange(4)*4)
# inner_colors = cmap(np.array([1, 2, 5, 6, 9, 10]))

# edgecolor='w' 可以设置不同的patch之间有白线,看起来更美观一些?
ax.pie(val1, radius=1, colors=outer_colors,
       wedgeprops=dict(width=size, edgecolor='w'), labels=['A', 'T', 'C', 'G'],autopct='%1.2f%%')

ax.pie(val2, radius=1-size,colors=outer_colors,
       wedgeprops=dict(width=size, edgecolor='w'),autopct='%1.2f%%')

ax.set(aspect="equal")
plt.savefig(savefn)
plt.show()

pie_nested.png

Read full-text »


BEDTOOLS


pybedtools

Python version of Bedtools to deal with bed format files.

read a bed file into class object

from pybedtools import BedTool

bed12 = '/Share/home/zhangqf7/gongjing/zebrafish/data/reference/gtf/xiongtl/Delete_coding_danRer_merge_transcript.200.bed'

BED = BedTool(bed12)

fields of each entry

chrom, start, end, name, score, strand attribute can be retrieved directly. All columns following 6 columns are stored in fields as element of list object.

class Interval(__builtin__.object)
 |  Class to represent a genomic interval.
 |
 |  Constructor::
 |
 |      Interval(chrom, start, end, name=".", score=".", strand=".", otherfields=None)
>>> i = BED[0]
>>>
>>> i.name
u'TCONS_00052481_- gene_id "XLOC_019131"; transcript_id "TCONS_00052481"; exon_number "8"; oId "CPAT16329"; tss_id "TSS29925";'
>>> i.chrom
u'NC_007118.6'
>>> i.start
71143916
>>> i.end
71166706
>>> i.score
u'.'
>>> i.strand
u'-'
>>> i.thickStart  # Not exactly same as definition in bed12 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'pybedtools.cbedtools.Interval' object has no attribute 'thickStart'

# list all fields and parse
>>> i.fields
[u'NC_007118.6', u'71143916', u'71166706', u'TCONS_00052481_- gene_id "XLOC_019131"; transcript_id "TCONS_00052481"; exon_number "8"; oId "CPAT16329"; tss_id "TSS29925";', u'.', u'-', u'.', u'.', u'.', u'8', u'888,101,130,221,36,107,1981,24', u'0,1065,1568,2078,3812,16675,18264,22766']

BEDtools

bed file region extend biostar

bedtools slop -i all_peaks2 -g /Share/home/zhangqf/database/GenomeAnnotation/size/hg38.genome.size -b 50 > all_peaks.ext50

Tool:    bedtools slop (aka slopBed)
Version: v2.26.0
Summary: Add requested base pairs of "slop" to each feature.

Usage:   bedtools slop [OPTIONS] -i <bed/gff/vcf> -g <genome> [-b <int> or (-l and -r)]

Options:
        -b      Increase the BED/GFF/VCF entry -b base pairs in each direction.
                - (Integer) or (Float, e.g. 0.1) if used with -pct.

        -l      The number of base pairs to subtract from the start coordinate.
                - (Integer) or (Float, e.g. 0.1) if used with -pct.

        -r      The number of base pairs to add to the end coordinate.
                - (Integer) or (Float, e.g. 0.1) if used with -pct.

        -s      Define -l and -r based on strand.
                E.g. if used, -l 500 for a negative-stranded feature,
                it will add 500 bp downstream.  Default = false.

        -pct    Define -l and -r as a fraction of the feature's length.
                E.g. if used on a 1000bp feature, -l 0.50,
                will add 500 bp "upstream".  Default = false.

        -header Print the header from the input file prior to results.

shuffleBed: segmentation fault, due to region restriction, also see bedtools google group discussion

# foreground bed file with regions
# columns: tx, start, end, tx, UTR3_start, UTR3_end, strand, element, *
$ cat window-anno_utr3.bed6
NM_001002873	2822	2851	NM_001002873	2845	2868	-	utr3	*

# run shuffleBed, cause error
# shuffle within 3UTR context
[zhangting@appa1 Figure2B-Dreme]$ 
shuffleBed -i window-anno_utr3.bed6 -chrom -g transcript-length.txt -incl utr3.bed > test.bed

/software/biosoft/software/MeRIP-PF/tools/BEDTools-Version-2.16.2/bin/shuffleBed: 
line 2: 19639 Segmentation fault      
(core dumped) ${0%/*}/bedtools shuffle "$@"

# 报错原因:
# 想要shuffle的region是2822-2851(长度=29),但是限定的3UTR区域是2845-2868(长度=23),
# 所以限定区域的长度小于原始的,在这个限制下不可能找到满足条件的shuffle region,所以报错。

Read full-text »