單細(xì)胞不同樣本數(shù)據(jù)整合-解決AnnData合并時(shí)ValueError: cannot reindex from a duplicate axis問題

項(xiàng)目場(chǎng)景:

使用scanpy包進(jìn)行單細(xì)胞數(shù)據(jù)分析時(shí)拟逮,往往需要整合多個(gè)樣本的數(shù)據(jù)否纬,也就是將多個(gè)AnnData對(duì)象合并為一個(gè)AnnData對(duì)象胶果。

例如將adata_1和adata_2合并為adatas,可行的一種方法是:·

import anndata as ad 
adatas = [adata1,adata2]
adatas = ad.concatenate(adatas)

(concatenate請(qǐng)參考https://anndata.readthedocs.io/en/latest/generated/anndata.AnnData.concatenate.html#anndata.AnnData.concatenate)

問題描述:

在一次合并中钳降,出現(xiàn)報(bào)錯(cuò):“ValueError: cannot reindex from a duplicate axis”

原因分析:

“ValueError: cannot reindex from a duplicate axis”,按我的理解是指合并方向上的索引出現(xiàn)重復(fù)泰涂。

在本例中即adata_1和adata_2中的adatas.obs_names(adata.obs.index)有重復(fù)鲫竞。
來看看單個(gè)數(shù)據(jù)的obs.index:

adata_1.obs_names  #adata_1.obs.index
Index(['AAACCCAAGCTGTTAC-1', 'AAACCCAAGTTTCTTC-1', 'AAACCCACATGGGATG-1',
       'AAACCCAGTCTGTAGT-1', 'AAACCCATCACATTGG-1', 'AAACCCATCTCTGCCA-1',
       'AAACGAAAGAGTCGAC-1', 'AAACGAAAGCATTTCG-1', 'AAACGAAGTCCATAGT-1',
       'AAACGCTCACCCATAA-1',
       ...
       'TTTGGTTGTAAGCAAT-1', 'TTTGGTTGTAGCTTGT-1', 'TTTGGTTGTCACTCTC-1',
       'TTTGGTTTCTCCGAAA-1', 'TTTGTTGCAATTTCTC-1', 'TTTGTTGCACTAGTAC-1',
       'TTTGTTGCAGCTCATA-1', 'TTTGTTGGTCGACGCT-1', 'TTTGTTGTCCGTACGG-1',
       'TTTGTTGTCCTGGTCT-1'],
      dtype='object', length=5699)

可以看到未經(jīng)處理的index默認(rèn)就是每個(gè)細(xì)胞的barcode字符串

第一種可能:?jiǎn)蝹€(gè)數(shù)據(jù)內(nèi)部obs.index重復(fù)(因?yàn)閕ndex是單個(gè)實(shí)驗(yàn)的barcode,因此可能性比較懈好簟)贡茅;
第二種可能:兩個(gè)數(shù)據(jù)使用了相同的obs.index造成重復(fù)(兩個(gè)實(shí)驗(yàn)的barcode重復(fù)秘蛇,可能性比較大).

接下來依次排查解決其做。
解決方案:
首先,為排除第一種可能赁还,對(duì)單個(gè)數(shù)據(jù)的obs_name進(jìn)行make_unique妖泄,調(diào)用AnnData對(duì)象obs_names_make_unique函數(shù):

data_1.obs_names_make_unique()
data_2.obs_names_make_unique()

再次進(jìn)行數(shù)據(jù)合并:
adata = ad.concat(adata, merge = "same")
不再出現(xiàn)報(bào)錯(cuò),問題解決艘策。
但出現(xiàn)警告:

Observation names are not unique. To make them unique, call `.obs_names_make_unique`.

說明第二種可能性也發(fā)生了蹈胡,即不同樣本使用了相同的barcode,造成合并后index和細(xì)胞不一一對(duì)應(yīng)朋蔫。
為了區(qū)分不同樣本的obs罚渐,在原先默認(rèn)的obs.index上加上樣本標(biāo)記,例如:

adata_1.obs_names=['sub_CRC3-'+x for x in adata_1.obs_names]
adata_1.obs_names
Index(['sub_CRC3-AAACCCAAGCTGTTAC-1', 'sub_CRC3-AAACCCAAGTTTCTTC-1',
       'sub_CRC3-AAACCCACATGGGATG-1', 'sub_CRC3-AAACCCAGTCTGTAGT-1',
       'sub_CRC3-AAACCCATCACATTGG-1', 'sub_CRC3-AAACCCATCTCTGCCA-1',
       'sub_CRC3-AAACGAAAGAGTCGAC-1', 'sub_CRC3-AAACGAAAGCATTTCG-1',
       'sub_CRC3-AAACGAAGTCCATAGT-1', 'sub_CRC3-AAACGCTCACCCATAA-1',
       ...
       'sub_CRC3-TTTGGTTGTAAGCAAT-1', 'sub_CRC3-TTTGGTTGTAGCTTGT-1',
       'sub_CRC3-TTTGGTTGTCACTCTC-1', 'sub_CRC3-TTTGGTTTCTCCGAAA-1',
       'sub_CRC3-TTTGTTGCAATTTCTC-1', 'sub_CRC3-TTTGTTGCACTAGTAC-1',
       'sub_CRC3-TTTGTTGCAGCTCATA-1', 'sub_CRC3-TTTGTTGGTCGACGCT-1',
       'sub_CRC3-TTTGTTGTCCGTACGG-1', 'sub_CRC3-TTTGTTGTCCTGGTCT-1'],
      dtype='object', length=5699)

在adata_1的obs_names字符串前加上用來樣本名稱“sub_CRC3”驯妄,用來在后續(xù)整合分析中區(qū)分各樣本荷并。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市青扔,隨后出現(xiàn)的幾起案子源织,更是在濱河造成了極大的恐慌,老刑警劉巖微猖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谈息,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡凛剥,警方通過查閱死者的電腦和手機(jī)侠仇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來犁珠,“玉大人逻炊,你說我怎么就攤上這事∶ぴ鳎” “怎么了嗅骄?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)饼疙。 經(jīng)常有香客問我溺森,道長(zhǎng)慕爬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任屏积,我火速辦了婚禮医窿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘炊林。我一直安慰自己姥卢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布渣聚。 她就那樣靜靜地躺著独榴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奕枝。 梳的紋絲不亂的頭發(fā)上棺榔,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死淮腾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的忘晤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼激捏,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼设塔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缩幸,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤壹置,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后表谊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钞护,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年爆办,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了难咕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡距辆,死狀恐怖余佃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情跨算,我是刑警寧澤爆土,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站诸蚕,受9級(jí)特大地震影響步势,放射性物質(zhì)發(fā)生泄漏氧猬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一坏瘩、第九天 我趴在偏房一處隱蔽的房頂上張望盅抚。 院中可真熱鬧,春花似錦倔矾、人聲如沸妄均。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丰包。三九已至,卻和暖如春提陶,著一層夾襖步出監(jiān)牢的瞬間烫沙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工隙笆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人升筏。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓撑柔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親您访。 傳聞我的和親對(duì)象是個(gè)殘疾皇子铅忿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

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