10X單細(xì)胞(10X空間轉(zhuǎn)錄組)聚類算法之Louvain

hello,大家好,之前呢医咨,分享了10X單細(xì)胞和10X空間轉(zhuǎn)錄組的降維算法,不知道大家掌握了多少架诞。今天我們來分享默認(rèn)的聚類算法Louvain拟淮,Louvain算法是目前單細(xì)胞分析中最常用的聚類算法,Seurat/Scanpy/RaceID等單細(xì)胞分析工具都默認(rèn)louvain算法谴忧,那么我們就來分享一下這個聚類算法很泊,很深的算法我們我們盡量理解,但是算法的精髓和運用必須掌握沾谓,我們用一個例子來展開委造。

社會網(wǎng)絡(luò)(social network)是是由許多節(jié)點構(gòu)成的一種社會結(jié)構(gòu),節(jié)點通常是指個人或組織均驶,社會網(wǎng)絡(luò)代表各種社會關(guān)系昏兆,社會網(wǎng)絡(luò)關(guān)注的是人們之間的互動和聯(lián)系,社會互動會影響人們的社會行為。對于社交網(wǎng)絡(luò)的分析和研究范圍很廣妇穴,例如在社交網(wǎng)絡(luò)中社區(qū)發(fā)現(xiàn)爬虱、基于好友關(guān)系為用戶推薦商品或內(nèi)容、社交網(wǎng)絡(luò)中人物影響力的計算腾它、信息在社交網(wǎng)絡(luò)上的傳播模型跑筝、虛假信息和機(jī)器人賬號的識別、基于社交網(wǎng)絡(luò)信息對股市瞒滴、大選以及互聯(lián)網(wǎng)金融行業(yè)中的反欺詐預(yù)測等曲梗。

圖片

現(xiàn)實生活中存在各種各樣的社會網(wǎng)絡(luò),比如人際關(guān)系網(wǎng)逛腿、交易網(wǎng)稀并、交通運輸網(wǎng)等,對這些網(wǎng)絡(luò)進(jìn)行社區(qū)發(fā)現(xiàn)(community detection)具有極大的意義单默,如在微博構(gòu)成的人際關(guān)系網(wǎng)絡(luò)中,可以發(fā)現(xiàn)出具有不同興趣愛好忘瓦、背景的社會團(tuán)體搁廓,方便進(jìn)行不同的宣傳策略和投放不同的廣告;在以淘寶為代表的交易網(wǎng)中耕皮,不同的社區(qū)代表不同購買力的客戶群體境蜕,社區(qū)發(fā)現(xiàn)可以方便運營為這些社區(qū)推薦合適的商品。

算法簡介

在社交網(wǎng)絡(luò)中凌停,有的用戶之間的連接較為緊密粱年,有的用戶之間的連接關(guān)系較為稀疏,在這樣的的網(wǎng)絡(luò)中罚拟,連接較為緊密的部分可以被看成一個社區(qū)台诗,其內(nèi)部的節(jié)點之間有較為緊密的連接完箩,而在兩個社區(qū)間則相對連接較為稀疏,這便稱為社團(tuán)結(jié)構(gòu)拉队。

Louvain算法來自于Vincent等人發(fā)表的文章《Fast unfolding of communities in large networks》弊知,是基于模塊度(modularity)進(jìn)行社區(qū)發(fā)現(xiàn),該算法的優(yōu)點在于速度快粱快,可以在較短時間內(nèi)實現(xiàn)大規(guī)模網(wǎng)絡(luò)以不同粒度的社區(qū)劃分(這個就對應(yīng)我們的Seurat的聚類參數(shù)resolution)秩彤,并且無需指定社區(qū)的數(shù)量,當(dāng)模塊度不再增益時候事哭,迭代便自動停止漫雷。

圖片

Louvain算法處理大量數(shù)據(jù)的結(jié)果示例

算法簡介

模塊度基本原理

Newman等人在文章《Finding and evaluating community structure in networks》中提出了模塊度(modularity)的概念,用來衡量社區(qū)劃分的好壞鳍咱。簡單講珊拼,如果一個社區(qū)劃分算法能將連接比較稠密的點劃分在一個社區(qū)中,而社區(qū)之間的連接比較稀疏流炕,這樣劃分得到的網(wǎng)絡(luò)模塊度的值就會比較大澎现,模塊度越大的社區(qū)劃分算法性能越好。

——模塊度的計算

圖片

——模塊度簡單實現(xiàn)

圖片

模塊度的值在[-1,1]之間每辟,若所有的節(jié)點都被劃分到一個社區(qū)內(nèi)部剑辫,則此時模塊度為1,若所有的節(jié)點各自為一個社區(qū)渠欺,則模塊度為-1妹蔽,文章說當(dāng)模塊度的值在0.3~0.7之間則說明社區(qū)劃分算法的效果很好,Louvain算法的優(yōu)化目標(biāo)為最大化整個數(shù)據(jù)的模塊度挠将。

算法簡介

louvain算法原理

——louvain算法的兩個階段

  • 第一階段——先令每個節(jié)點自己屬于一個社區(qū)胳岂,此時網(wǎng)絡(luò)中有幾個節(jié)點便有幾個社區(qū),計算此時的模塊度舔稀,然后令節(jié)點i不再屬于自己而是和節(jié)點j一個社區(qū)乳丰,計算此時的模塊度,兩個步驟就使得此時的網(wǎng)絡(luò)出現(xiàn)了模塊度增量内贮,則模塊劃分方法就是將i節(jié)點劃分到使模塊度增量最大且大于0的那個節(jié)點中去产园;

  • 第二階段——將第一階段劃分出來的社區(qū)聚合為一個節(jié)點,重構(gòu)整個網(wǎng)絡(luò)夜郁;

圖片

louvain算法的步驟

——模塊度增量

圖片

算法實現(xiàn)

算法實現(xiàn)

算法流程

圖片

算法實現(xiàn)

代碼詳解

——計算模塊度

圖片

——計算模塊度增量

圖片

——社區(qū)聚合

圖片

算法實現(xiàn)

算法測試

——數(shù)據(jù)導(dǎo)入

圖片

——測試結(jié)果

圖片

根據(jù)louvain算法結(jié)果什燕,一共將數(shù)據(jù)“polbooks.gml”劃分成4個社區(qū),劃分后網(wǎng)絡(luò)的模塊度為0.52竞端,在0.3~0.7之間屎即,可見劃分結(jié)果還是比較優(yōu)良。

實例運用

圖片

《權(quán)力的游戲》,是美國HBO電視網(wǎng)制作推出的一部中世紀(jì)史詩奇幻題材的電視劇技俐。該劇改編自美國作家喬治·R·R·馬丁的奇幻小說《冰與火之歌》系列乘陪。16年數(shù)學(xué)家 Andrew Beveridge和Jie Shan分析了小說《冰與火之歌》第三部《冰雨的風(fēng)暴》中人物關(guān)系。在文章中介紹了如何通過文本分析和實體提取構(gòu)建人物關(guān)系的網(wǎng)絡(luò)虽另,并使用社交網(wǎng)絡(luò)分析算法對人物關(guān)系網(wǎng)絡(luò)分析找出最重要的角色暂刘,最后應(yīng)用社區(qū)發(fā)現(xiàn)算法來找到人物聚類。其中可視化是利用igraph實現(xiàn)捂刺,社區(qū)發(fā)現(xiàn)則是利用igraph中實現(xiàn)的walktrap方法谣拣。劃分結(jié)果:

圖片

7 大子網(wǎng)絡(luò)陣營

在這里,本文利用權(quán)利的游戲中角色之間的聯(lián)系緊密產(chǎn)能度收集到的數(shù)據(jù)集族展,內(nèi)含兩個角色的名字和相互之間對應(yīng)的權(quán)重森缠,利這個數(shù)據(jù)進(jìn)行簡單的可視化工作,并且將louvain算法運用到上面仪缸,進(jìn)行社區(qū)發(fā)現(xiàn)并且將劃分的子網(wǎng)絡(luò)通過網(wǎng)絡(luò)圖中不同的色彩標(biāo)示出來贵涵。

實例運用

數(shù)據(jù)獲取

圖片

——NetworkX

是用Python語言開發(fā)的圖論與復(fù)雜網(wǎng)絡(luò)建模工具,內(nèi)置常用的圖與復(fù)雜網(wǎng)絡(luò)分析算法恰画,可以方便的進(jìn)行復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)分析宾茂、仿真建模等工作;支持創(chuàng)建無向圖拴还、有向圖和多重圖跨晴;

示例:

圖片

——community

是使用louvain方法進(jìn)行社區(qū)發(fā)現(xiàn)的模塊,在安裝庫的時候注意使用“pip install python-louvain”進(jìn)行安裝片林。

示例:

圖片

實例運用

數(shù)據(jù)可視化

圖片
圖片

實例運用

調(diào)用Louvain算法

——算法調(diào)用及劃分結(jié)果局部展示

圖片

——劃分后的模塊度

圖片

前面我們說過當(dāng)模塊度的值為0.3-0.7則表示社區(qū)劃分的效果比較好端盆,可見這里的劃分結(jié)果為0.5999說明劃分效果很好。

實例運用

社區(qū)發(fā)現(xiàn)結(jié)果可視化

圖片
圖片

看過《權(quán)游》的人應(yīng)該知道Cersei(瑟后)费封、Tyrion(小指頭)和Jamie(弒君者)三人是姐弟關(guān)系焕妙,其他人物例如Aerys(瘋王)、Tywin(瑟后他爹)弓摘、Oberyn(紅毒蛇)焚鹊、Gregor(魔山),這些都是以Cersei為中心的人物關(guān)系衣盾,而我們的社區(qū)發(fā)現(xiàn)算法也成功的將他們劃分到了一個社區(qū)里面寺旺,可見louvain算法不僅速度快,而且劃分的準(zhǔn)確性也比較高势决。

當(dāng)然,這里只是一個例子蓝撇,10X單細(xì)胞和10X空間轉(zhuǎn)錄組都是運用一樣的原理果复,由此顯示了我們單細(xì)胞的聚類,從而運用到下游分析

但是渤昌,目前這個算法已經(jīng)暴露了很多不合適的地方虽抄,最新的算法leiden慢慢替換了louvain走搁,我們下一篇分享louvain的算法缺陷和leiden的算法原理。

生活很好迈窟,有你更好

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載私植,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末车酣,一起剝皮案震驚了整個濱河市曲稼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌湖员,老刑警劉巖贫悄,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異娘摔,居然都是意外死亡窄坦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門凳寺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸭津,“玉大人,你說我怎么就攤上這事肠缨『1危” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵所袁,是天一觀的道長止潮。 經(jīng)常有香客問我,道長吴汪,這世上最難降的妖魔是什么惠窄? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮漾橙,結(jié)果婚禮上杆融,老公的妹妹穿的比我還像新娘。我一直安慰自己霜运,他們只是感情好脾歇,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著淘捡,像睡著了一般藕各。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上焦除,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天激况,我揣著相機(jī)與錄音,去河邊找鬼。 笑死乌逐,一個胖子當(dāng)著我的面吹牛竭讳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播浙踢,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼绢慢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洛波?” 一聲冷哼從身側(cè)響起胰舆,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奋岁,沒想到半個月后思瘟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡闻伶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年滨攻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓝翰。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡光绕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出畜份,到底是詐尸還是另有隱情诞帐,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布爆雹,位于F島的核電站停蕉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏钙态。R本人自食惡果不足惜慧起,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望册倒。 院中可真熱鬧蚓挤,春花似錦、人聲如沸驻子。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽崇呵。三九已至缤剧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間域慷,已是汗流浹背鞭执。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工司顿, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留芒粹,地道東北人兄纺。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像化漆,于是被迫代替她去往敵國和親估脆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容