Exemple #1
0
def parse_glycan_composition(string):
    try:
        return glycan_composition_cache[string]
    except KeyError:
        gc = HashableGlycanComposition.parse(string)
        glycan_composition_cache[string] = gc
        return gc
Exemple #2
0
def to_decoy_glycan(string):
    try:
        return decoy_glycan_cache[string]
    except KeyError:
        gc = HashableGlycanComposition.parse(string)
        gc["#decoy#"] = 2
        decoy_glycan_cache[string] = gc
        return gc
Exemple #3
0
    def _from_csv(cls, row):
        def _try_parse(value):
            try:
                return int(value)
            except (ValueError, TypeError):
                try:
                    return float(value)
                except (ValueError, TypeError):
                    return value

        mass = float(row.pop("weighted_neutral_mass"))
        apex_time = float(row.pop("apex_time"))
        total_signal = float(row.pop("total_signal"))
        gc = HashableGlycanComposition.parse(row.pop("glycan_composition"))
        kwargs = {k: _try_parse(v) for k, v in row.items()}
        return cls(mass, apex_time, total_signal, gc, **kwargs)
def validate_glycan_text(path):
    from glycan_profiling.database.builder.glycan.glycan_source import TextFileGlycanCompositionLoader
    with open(path, 'r') as handle:
        loader = TextFileGlycanCompositionLoader(handle)
        n = 0
        glycan_classes = set()
        residues = set()
        unresolved = set()
        for line in loader:
            n += 1
            glycan_classes.update(line[1])
            glycan_composition = HashableGlycanComposition.parse(line[0])
            for residue in glycan_composition.keys():
                if residue.mass() == 0:
                    unresolved.add(residue)
                residues.add(residue)
        click.secho("%d glycan compositions" % (n,))
        click.secho("Residues:")
        for residue in residues:
            click.secho("\t%s - %f" % (str(residue), residue.mass()))
        if unresolved:
            click.secho("Unresolved Residues:", fg='yellow')
            click.secho("\n".join(str(r) for r in unresolved), fg='yellow')
Exemple #5
0
def validate_glycan_text(path):
    from glycan_profiling.database.builder.glycan.glycan_source import TextFileGlycanCompositionLoader
    with open(path, 'r') as handle:
        loader = TextFileGlycanCompositionLoader(handle)
        n = 0
        glycan_classes = set()
        residues = set()
        unresolved = set()
        for line in loader:
            n += 1
            glycan_classes.update(line[1])
            glycan_composition = HashableGlycanComposition.parse(line[0])
            for residue in glycan_composition.keys():
                if residue.mass() == 0:
                    unresolved.add(residue)
                residues.add(residue)
        click.secho("%d glycan compositions" % (n, ))
        click.secho("Residues:")
        for residue in residues:
            click.secho("\t%s - %f" % (str(residue), residue.mass()))
        if unresolved:
            click.secho("Unresolved Residues:", fg='yellow')
            click.secho("\n".join(str(r) for r in unresolved), fg='yellow')
import glypy
import matplotlib
matplotlib.use("agg")
from matplotlib import pyplot as plt
import matplotlib_venn
from glypy.structure.glycan_composition import HashableGlycanComposition

with open("combinatorial-glycans.txt") as combfile:
    combinatorial = []
    for line in combfile:
        combinatorial.append(
            HashableGlycanComposition.parse(line.split("\t")[0]))

with open("krambeck_glycan_compositions.txt") as krambeck_file:
    krambeck = []
    for line in krambeck_file:
        krambeck.append(HashableGlycanComposition.parse(line.split("\t")[0]))

with open("glyspace_glycan_compositions.txt") as glyspace_file:
    glyspace = []
    for line in glyspace_file:
        glyspace.append(HashableGlycanComposition.parse(line.split("\t")[0]))

combinatorial = set(combinatorial)
krambeck = set(krambeck)
glyspace = set(glyspace)

c = len(combinatorial)
k = len(krambeck)
g = len(glyspace)
 def _from_dict(cls, d):
     d['composition'] = HashableGlycanComposition.parse(d['composition'])
     d['glycan_types'] = [GlycanTypes[t] for t in d['glycan_types']]
     return cls(**d)
Exemple #8
0
 def _from_dict(cls, d):
     d['composition'] = HashableGlycanComposition.parse(d['composition'])
     d['glycan_types'] = [GlycanTypes[t] for t in d['glycan_types']]
     return cls(**d)