{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline\n",
"import pandas as pd\n",
"import scipy.stats as stats\n",
"import scipy.cluster.hierarchy as clust\n",
"import seaborn as sns"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"rcParams['pdf.fonttype']=42\n",
"rcParams['font.size']=14\n",
"rcParams['font.family']='arial'"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def clean_axis(ax):\n",
"\t#\n",
"\t# for use, e.g., when plotting a dendrogram alongside a heatmap. removes border on a frame.\n",
"\t#\n",
" ax.get_xaxis().set_ticks([])\n",
" ax.get_yaxis().set_ticks([])\n",
" for sp in ax.spines.values():\n",
" sp.set_visible(False)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"fc_file = './Data/foldchange.annotated.txt'"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"#\n",
"# load fc table with alternate index\n",
"#\n",
"fc = pd.read_csv(fc_file, index_col=1, sep='\\t')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" GENE_CLONE | \n",
" A549.T2A.Ex | \n",
" A549.T2B.Ex | \n",
" A549.T2C.Ex | \n",
" HT29.T2A.Ex | \n",
" HT29.T2B.Ex | \n",
" HT29.T2C.Ex | \n",
" OVCAR8.T2A.Ex | \n",
" OVCAR8.T2B.Ex | \n",
" OVCAR8.T2C.Ex | \n",
" GENE1 | \n",
" GENE2 | \n",
"
\n",
" \n",
" GENE | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" AARS.1:CDX4.2 | \n",
" AARS_AGGTCACCGTAGATGGTTCCAAT_CDX4_TCGCACTATATG... | \n",
" -1.612 | \n",
" -1.280 | \n",
" -1.534 | \n",
" -2.291 | \n",
" -2.919 | \n",
" -3.031 | \n",
" -3.982 | \n",
" -3.185 | \n",
" -3.728 | \n",
" ESS | \n",
" CTRL | \n",
"
\n",
" \n",
" AARS.2:F13B.3 | \n",
" AARS_CCTTGAGCAGTATTTGAGAACAC_F13B_GTTGGTACCCAG... | \n",
" -0.208 | \n",
" -0.223 | \n",
" 0.141 | \n",
" -0.627 | \n",
" -0.827 | \n",
" -0.488 | \n",
" -1.848 | \n",
" -1.919 | \n",
" -1.996 | \n",
" ESS | \n",
" CTRL | \n",
"
\n",
" \n",
" AARS.3:SPEM1.1 | \n",
" AARS_CTGTCCAGGATGCGACGCCCTCT_SPEM1_AGGGGCCTTTC... | \n",
" -0.550 | \n",
" -0.489 | \n",
" -0.914 | \n",
" -3.025 | \n",
" -2.418 | \n",
" -3.121 | \n",
" -2.699 | \n",
" -2.076 | \n",
" -2.292 | \n",
" ESS | \n",
" CTRL | \n",
"
\n",
" \n",
" ABHD16A.1:GPX6.3 | \n",
" ABHD16A_CCATCCACCGCCTAGGCTTCCAG_GPX6_GTTCACTGC... | \n",
" 2.125 | \n",
" 2.182 | \n",
" 2.104 | \n",
" 2.159 | \n",
" 2.205 | \n",
" 2.135 | \n",
" 1.960 | \n",
" 1.912 | \n",
" 1.843 | \n",
" ABHD16A | \n",
" CTRL | \n",
"
\n",
" \n",
" ABHD16A.2:GSX2.3 | \n",
" ABHD16A_CTCTCCACCTACCTCGGAGGCAG_GSX2_CCCGCGGGT... | \n",
" 0.866 | \n",
" -1.456 | \n",
" 1.272 | \n",
" 0.701 | \n",
" 0.519 | \n",
" 1.460 | \n",
" 0.976 | \n",
" -0.636 | \n",
" 0.229 | \n",
" ABHD16A | \n",
" CTRL | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" GENE_CLONE \\\n",
"GENE \n",
"AARS.1:CDX4.2 AARS_AGGTCACCGTAGATGGTTCCAAT_CDX4_TCGCACTATATG... \n",
"AARS.2:F13B.3 AARS_CCTTGAGCAGTATTTGAGAACAC_F13B_GTTGGTACCCAG... \n",
"AARS.3:SPEM1.1 AARS_CTGTCCAGGATGCGACGCCCTCT_SPEM1_AGGGGCCTTTC... \n",
"ABHD16A.1:GPX6.3 ABHD16A_CCATCCACCGCCTAGGCTTCCAG_GPX6_GTTCACTGC... \n",
"ABHD16A.2:GSX2.3 ABHD16A_CTCTCCACCTACCTCGGAGGCAG_GSX2_CCCGCGGGT... \n",
"\n",
" A549.T2A.Ex A549.T2B.Ex A549.T2C.Ex HT29.T2A.Ex \\\n",
"GENE \n",
"AARS.1:CDX4.2 -1.612 -1.280 -1.534 -2.291 \n",
"AARS.2:F13B.3 -0.208 -0.223 0.141 -0.627 \n",
"AARS.3:SPEM1.1 -0.550 -0.489 -0.914 -3.025 \n",
"ABHD16A.1:GPX6.3 2.125 2.182 2.104 2.159 \n",
"ABHD16A.2:GSX2.3 0.866 -1.456 1.272 0.701 \n",
"\n",
" HT29.T2B.Ex HT29.T2C.Ex OVCAR8.T2A.Ex OVCAR8.T2B.Ex \\\n",
"GENE \n",
"AARS.1:CDX4.2 -2.919 -3.031 -3.982 -3.185 \n",
"AARS.2:F13B.3 -0.827 -0.488 -1.848 -1.919 \n",
"AARS.3:SPEM1.1 -2.418 -3.121 -2.699 -2.076 \n",
"ABHD16A.1:GPX6.3 2.205 2.135 1.960 1.912 \n",
"ABHD16A.2:GSX2.3 0.519 1.460 0.976 -0.636 \n",
"\n",
" OVCAR8.T2C.Ex GENE1 GENE2 \n",
"GENE \n",
"AARS.1:CDX4.2 -3.728 ESS CTRL \n",
"AARS.2:F13B.3 -1.996 ESS CTRL \n",
"AARS.3:SPEM1.1 -2.292 ESS CTRL \n",
"ABHD16A.1:GPX6.3 1.843 ABHD16A CTRL \n",
"ABHD16A.2:GSX2.3 0.229 ABHD16A CTRL "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fc.head()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"fc.drop('GENE_CLONE', axis=1, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Index: 12328 entries, AARS.1:CDX4.2 to ZSWIM6.3:ZSWIM4.3\n",
"Data columns (total 11 columns):\n",
"A549.T2A.Ex 12328 non-null float64\n",
"A549.T2B.Ex 12328 non-null float64\n",
"A549.T2C.Ex 12328 non-null float64\n",
"HT29.T2A.Ex 12328 non-null float64\n",
"HT29.T2B.Ex 12328 non-null float64\n",
"HT29.T2C.Ex 12328 non-null float64\n",
"OVCAR8.T2A.Ex 12328 non-null float64\n",
"OVCAR8.T2B.Ex 12328 non-null float64\n",
"OVCAR8.T2C.Ex 12328 non-null float64\n",
"GENE1 12328 non-null object\n",
"GENE2 12328 non-null object\n",
"dtypes: float64(9), object(2)\n",
"memory usage: 1.1+ MB\n"
]
}
],
"source": [
"fc.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Controls"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5124"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"is_ctrl = where( (fc.GENE1=='CTRL') | (fc.GENE2=='CTRL') | (fc.GENE1=='ESS') | (fc.GENE2=='ESS') )[0]\n",
"len(is_ctrl)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## merge replicates by mean"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Index: 12328 entries, AARS.1:CDX4.2 to ZSWIM6.3:ZSWIM4.3\n",
"Data columns (total 3 columns):\n",
"A549 0 non-null float64\n",
"HT29 0 non-null float64\n",
"OVCAR8 0 non-null float64\n",
"dtypes: float64(3)\n",
"memory usage: 385.2+ KB\n"
]
}
],
"source": [
"## Merge replicates by mean\n",
"cells = ['A549','HT29','OVCAR8']\n",
"fc_merge = pd.DataFrame( columns=cells, index=fc.index, dtype=float)\n",
"fc_merge.info()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" A549 | \n",
" HT29 | \n",
" OVCAR8 | \n",
" GENE1 | \n",
" GENE2 | \n",
"
\n",
" \n",
" GENE | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" AARS.1:CDX4.2 | \n",
" -1.475333 | \n",
" -2.747000 | \n",
" -3.631667 | \n",
" ESS | \n",
" CTRL | \n",
"
\n",
" \n",
" AARS.2:F13B.3 | \n",
" -0.096667 | \n",
" -0.647333 | \n",
" -1.921000 | \n",
" ESS | \n",
" CTRL | \n",
"
\n",
" \n",
" AARS.3:SPEM1.1 | \n",
" -0.651000 | \n",
" -2.854667 | \n",
" -2.355667 | \n",
" ESS | \n",
" CTRL | \n",
"
\n",
" \n",
" ABHD16A.1:GPX6.3 | \n",
" 2.137000 | \n",
" 2.166333 | \n",
" 1.905000 | \n",
" ABHD16A | \n",
" CTRL | \n",
"
\n",
" \n",
" ABHD16A.2:GSX2.3 | \n",
" 0.227333 | \n",
" 0.893333 | \n",
" 0.189667 | \n",
" ABHD16A | \n",
" CTRL | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" A549 HT29 OVCAR8 GENE1 GENE2\n",
"GENE \n",
"AARS.1:CDX4.2 -1.475333 -2.747000 -3.631667 ESS CTRL\n",
"AARS.2:F13B.3 -0.096667 -0.647333 -1.921000 ESS CTRL\n",
"AARS.3:SPEM1.1 -0.651000 -2.854667 -2.355667 ESS CTRL\n",
"ABHD16A.1:GPX6.3 2.137000 2.166333 1.905000 ABHD16A CTRL\n",
"ABHD16A.2:GSX2.3 0.227333 0.893333 0.189667 ABHD16A CTRL"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"for cell in cells:\n",
" samples = [x for x in fc.columns if cell in x]\n",
" fc_merge[cell] = fc[ samples ].mean(1)\n",
"fc_merge['GENE1'] = fc.GENE1\n",
"fc_merge['GENE2'] = fc.GENE2\n",
"fc_merge.head()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Index: 7204 entries, ABHD4.1:ABHD5.1 to ZSWIM6.3:ZSWIM4.3\n",
"Data columns (total 5 columns):\n",
"A549 7204 non-null float64\n",
"HT29 7204 non-null float64\n",
"OVCAR8 7204 non-null float64\n",
"GENE1 7204 non-null object\n",
"GENE2 7204 non-null object\n",
"dtypes: float64(3), object(2)\n",
"memory usage: 337.7+ KB\n"
]
}
],
"source": [
"#\n",
"# drop controls - they don't have a/b and b/a clones\n",
"#\n",
"fc_merge.drop( fc_merge.index[is_ctrl], axis=0, inplace=True)\n",
"fc_merge.info()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" A549 | \n",
" HT29 | \n",
" OVCAR8 | \n",
" GENE1 | \n",
" GENE2 | \n",
"
\n",
" \n",
" GENE | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" ABHD4.1:ABHD5.1 | \n",
" -0.040333 | \n",
" 0.008333 | \n",
" -0.549667 | \n",
" ABHD4 | \n",
" ABHD5 | \n",
"
\n",
" \n",
" ABHD4.1:ABHD5.2 | \n",
" -0.512667 | \n",
" 0.287333 | \n",
" 0.141000 | \n",
" ABHD4 | \n",
" ABHD5 | \n",
"
\n",
" \n",
" ABHD4.1:ABHD5.3 | \n",
" -0.477333 | \n",
" -0.890333 | \n",
" -0.773000 | \n",
" ABHD4 | \n",
" ABHD5 | \n",
"
\n",
" \n",
" ABHD4.2:ABHD5.1 | \n",
" -0.304667 | \n",
" -0.060333 | \n",
" -0.099667 | \n",
" ABHD4 | \n",
" ABHD5 | \n",
"
\n",
" \n",
" ABHD4.2:ABHD5.2 | \n",
" 0.316667 | \n",
" 0.731000 | \n",
" 0.393333 | \n",
" ABHD4 | \n",
" ABHD5 | \n",
"
\n",
" \n",
" ABHD4.2:ABHD5.3 | \n",
" -0.253000 | \n",
" -0.231667 | \n",
" -0.369667 | \n",
" ABHD4 | \n",
" ABHD5 | \n",
"
\n",
" \n",
" ABHD4.3:ABHD5.1 | \n",
" -0.092667 | \n",
" 0.221000 | \n",
" 0.378667 | \n",
" ABHD4 | \n",
" ABHD5 | \n",
"
\n",
" \n",
" ABHD4.3:ABHD5.2 | \n",
" -0.105667 | \n",
" 0.402667 | \n",
" -0.250667 | \n",
" ABHD4 | \n",
" ABHD5 | \n",
"
\n",
" \n",
" ABHD4.3:ABHD5.3 | \n",
" 0.153333 | \n",
" 0.112000 | \n",
" -0.053000 | \n",
" ABHD4 | \n",
" ABHD5 | \n",
"
\n",
" \n",
" ABHD5.1:ABHD4.1 | \n",
" -0.138000 | \n",
" 0.141000 | \n",
" -0.609000 | \n",
" ABHD5 | \n",
" ABHD4 | \n",
"
\n",
" \n",
" ABHD5.1:ABHD4.2 | \n",
" -0.460000 | \n",
" 0.113333 | \n",
" -0.240000 | \n",
" ABHD5 | \n",
" ABHD4 | \n",
"
\n",
" \n",
" ABHD5.1:ABHD4.3 | \n",
" 0.187333 | \n",
" 0.013333 | \n",
" -0.201333 | \n",
" ABHD5 | \n",
" ABHD4 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" A549 HT29 OVCAR8 GENE1 GENE2\n",
"GENE \n",
"ABHD4.1:ABHD5.1 -0.040333 0.008333 -0.549667 ABHD4 ABHD5\n",
"ABHD4.1:ABHD5.2 -0.512667 0.287333 0.141000 ABHD4 ABHD5\n",
"ABHD4.1:ABHD5.3 -0.477333 -0.890333 -0.773000 ABHD4 ABHD5\n",
"ABHD4.2:ABHD5.1 -0.304667 -0.060333 -0.099667 ABHD4 ABHD5\n",
"ABHD4.2:ABHD5.2 0.316667 0.731000 0.393333 ABHD4 ABHD5\n",
"ABHD4.2:ABHD5.3 -0.253000 -0.231667 -0.369667 ABHD4 ABHD5\n",
"ABHD4.3:ABHD5.1 -0.092667 0.221000 0.378667 ABHD4 ABHD5\n",
"ABHD4.3:ABHD5.2 -0.105667 0.402667 -0.250667 ABHD4 ABHD5\n",
"ABHD4.3:ABHD5.3 0.153333 0.112000 -0.053000 ABHD4 ABHD5\n",
"ABHD5.1:ABHD4.1 -0.138000 0.141000 -0.609000 ABHD5 ABHD4\n",
"ABHD5.1:ABHD4.2 -0.460000 0.113333 -0.240000 ABHD5 ABHD4\n",
"ABHD5.1:ABHD4.3 0.187333 0.013333 -0.201333 ABHD5 ABHD4"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fc_merge.head(12)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Get A-B/B-A pairs"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['A549', 'HT29', 'OVCAR8']"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cells"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['A549_AB', 'A549_BA', 'HT29_AB', 'HT29_BA', 'OVCAR8_AB', 'OVCAR8_BA']"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"newcols = []\n",
"for c in cells:\n",
" newcols = newcols + [c + '_AB']\n",
" newcols = newcols + [c + '_BA']\n",
"newcols"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"unique_pairs = {}\n",
"used_pairs = {}\n",
"for abpair in fc_merge.index:\n",
" if abpair in used_pairs.keys():\n",
" continue\n",
" crrna1, crrna2 = abpair.split(':')\n",
" bapair = crrna2 + \":\" + crrna1\n",
" if ( bapair in fc_merge.index ):\n",
" unique_pairs[abpair]=1\n",
" used_pairs[bapair]=1"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3602"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(unique_pairs)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"fc_by_posn = pd.DataFrame( columns=newcols, index=unique_pairs, dtype=float)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"used_pairs = {}\n",
"for abpair in fc_by_posn.index:\n",
" crrna1, crrna2 = abpair.split(':')\n",
" bapair = crrna2 + \":\" + crrna1\n",
" for c in cells:\n",
" fc_by_posn.loc[abpair][c + '_AB'] = fc_merge.loc[abpair][c]\n",
" fc_by_posn.loc[abpair][c + '_BA'] = fc_merge.loc[bapair][c]\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Index: 3602 entries, ABHD4.1:ABHD5.1 to ZSWIM4.3:ZSWIM6.3\n",
"Data columns (total 6 columns):\n",
"A549_AB 3602 non-null float64\n",
"A549_BA 3602 non-null float64\n",
"HT29_AB 3602 non-null float64\n",
"HT29_BA 3602 non-null float64\n",
"OVCAR8_AB 3602 non-null float64\n",
"OVCAR8_BA 3602 non-null float64\n",
"dtypes: float64(6)\n",
"memory usage: 357.0+ KB\n"
]
}
],
"source": [
"fc_by_posn.info()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" A549_AB | \n",
" A549_BA | \n",
" HT29_AB | \n",
" HT29_BA | \n",
" OVCAR8_AB | \n",
" OVCAR8_BA | \n",
"
\n",
" \n",
" \n",
" \n",
" ABHD4.1:ABHD5.1 | \n",
" -0.040333 | \n",
" -0.138000 | \n",
" 0.008333 | \n",
" 0.141000 | \n",
" -0.549667 | \n",
" -0.609000 | \n",
"
\n",
" \n",
" ABHD4.1:ABHD5.2 | \n",
" -0.512667 | \n",
" 0.844000 | \n",
" 0.287333 | \n",
" 1.118333 | \n",
" 0.141000 | \n",
" 0.611333 | \n",
"
\n",
" \n",
" ABHD4.1:ABHD5.3 | \n",
" -0.477333 | \n",
" -0.096667 | \n",
" -0.890333 | \n",
" -0.305000 | \n",
" -0.773000 | \n",
" -0.438667 | \n",
"
\n",
" \n",
" ABHD4.2:ABHD5.1 | \n",
" -0.304667 | \n",
" -0.460000 | \n",
" -0.060333 | \n",
" 0.113333 | \n",
" -0.099667 | \n",
" -0.240000 | \n",
"
\n",
" \n",
" ABHD4.2:ABHD5.2 | \n",
" 0.316667 | \n",
" -0.198667 | \n",
" 0.731000 | \n",
" 0.208333 | \n",
" 0.393333 | \n",
" 0.237667 | \n",
"
\n",
" \n",
" ABHD4.2:ABHD5.3 | \n",
" -0.253000 | \n",
" -0.170667 | \n",
" -0.231667 | \n",
" -0.395000 | \n",
" -0.369667 | \n",
" -0.619333 | \n",
"
\n",
" \n",
" ABHD4.3:ABHD5.1 | \n",
" -0.092667 | \n",
" 0.187333 | \n",
" 0.221000 | \n",
" 0.013333 | \n",
" 0.378667 | \n",
" -0.201333 | \n",
"
\n",
" \n",
" ABHD4.3:ABHD5.2 | \n",
" -0.105667 | \n",
" 0.098000 | \n",
" 0.402667 | \n",
" 0.545667 | \n",
" -0.250667 | \n",
" 0.561667 | \n",
"
\n",
" \n",
" ABHD4.3:ABHD5.3 | \n",
" 0.153333 | \n",
" -0.127333 | \n",
" 0.112000 | \n",
" 0.251000 | \n",
" -0.053000 | \n",
" -0.133000 | \n",
"
\n",
" \n",
" ABL1.1:ABL2.1 | \n",
" -0.093000 | \n",
" -0.026000 | \n",
" -0.495000 | \n",
" -0.145000 | \n",
" 0.020333 | \n",
" -0.166333 | \n",
"
\n",
" \n",
" ABL1.1:ABL2.2 | \n",
" 0.249000 | \n",
" 0.607333 | \n",
" 0.764333 | \n",
" 0.250000 | \n",
" 0.302333 | \n",
" -0.031333 | \n",
"
\n",
" \n",
" ABL1.1:ABL2.3 | \n",
" 0.063000 | \n",
" 0.243667 | \n",
" 0.172333 | \n",
" -0.184667 | \n",
" 0.099667 | \n",
" -0.244667 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" A549_AB A549_BA HT29_AB HT29_BA OVCAR8_AB OVCAR8_BA\n",
"ABHD4.1:ABHD5.1 -0.040333 -0.138000 0.008333 0.141000 -0.549667 -0.609000\n",
"ABHD4.1:ABHD5.2 -0.512667 0.844000 0.287333 1.118333 0.141000 0.611333\n",
"ABHD4.1:ABHD5.3 -0.477333 -0.096667 -0.890333 -0.305000 -0.773000 -0.438667\n",
"ABHD4.2:ABHD5.1 -0.304667 -0.460000 -0.060333 0.113333 -0.099667 -0.240000\n",
"ABHD4.2:ABHD5.2 0.316667 -0.198667 0.731000 0.208333 0.393333 0.237667\n",
"ABHD4.2:ABHD5.3 -0.253000 -0.170667 -0.231667 -0.395000 -0.369667 -0.619333\n",
"ABHD4.3:ABHD5.1 -0.092667 0.187333 0.221000 0.013333 0.378667 -0.201333\n",
"ABHD4.3:ABHD5.2 -0.105667 0.098000 0.402667 0.545667 -0.250667 0.561667\n",
"ABHD4.3:ABHD5.3 0.153333 -0.127333 0.112000 0.251000 -0.053000 -0.133000\n",
"ABL1.1:ABL2.1 -0.093000 -0.026000 -0.495000 -0.145000 0.020333 -0.166333\n",
"ABL1.1:ABL2.2 0.249000 0.607333 0.764333 0.250000 0.302333 -0.031333\n",
"ABL1.1:ABL2.3 0.063000 0.243667 0.172333 -0.184667 0.099667 -0.244667"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fc_by_posn.head(12)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"