Skip to content

Instantly share code, notes, and snippets.

@levitsky
Last active August 29, 2015 14:23
Show Gist options
  • Save levitsky/a2601855705edc5623b1 to your computer and use it in GitHub Desktop.
Save levitsky/a2601855705edc5623b1 to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab --no-import-all inline\n",
"from pyteomics import mass"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def isotope_table(peptide, element='C', mass_data=mass.nist_mass):\n",
" composition = mass.Composition(peptide)\n",
" count = composition[element]\n",
" composition -= {element: count}\n",
" \n",
" # modified from the source of most_probable_isotopic_composition()\n",
" first, second = sorted([i for i in mass_data[element] if i],\n",
" key=lambda x: -mass_data[element][x][1])[:2]\n",
" out = []\n",
" for i in range(count+1):\n",
" c = composition + {mass._make_isotope_string(element, first): count-i,\n",
" mass._make_isotope_string(element, second): i}\n",
" out.append((mass.isotopic_composition_abundance(c), c))\n",
" return out\n",
"\n",
"def mass_table(peptide, element='C', mass_data=mass.nist_mass):\n",
" return [(mass.calculate_mass(c), abundance) for abundance, c in\n",
" isotope_table(peptide, element, mass_data)]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f7cb61d9358>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7cb62860b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"table = np.array(mass_table('PEPTIDE'))\n",
"pylab.scatter(table[:,0], table[:,1])"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment