コード例 #1
0
ファイル: clearmotifs.py プロジェクト: tylerjstewart/PyGly
#!/bin/env python27

from getwiki import GlycoMotifWiki
import sys

w = GlycoMotifWiki()
if len(sys.argv) > 1:
    w.deletemany(regex=sys.argv[1],verbose=True)
else:
    w.deletemany(category='Motif')
コード例 #2
0
ファイル: dumpseq.py プロジェクト: glygen-glycan-data/PyGly
#!/bin/env python2

import findpygly
from getwiki import GlycoMotifWiki
# we must instantiate early, before any use of the command-line.
w = GlycoMotifWiki()
#print w._prefix

import sys, os, os.path

dir = sys.argv[1]
try:
    os.makedirs(dir)
except OSError:
    pass
format = sys.argv[2]
assert format in ('wurcs', 'glycoct')

seen = set()
for m in w.itermotif():
    glytoucan = m.get('glytoucan')
    if glytoucan in seen:
        continue
    seen.add(glytoucan)
    seq = m.get(format)
    if not seq:
        continue
    print glytoucan
    fn = os.path.join(dir, glytoucan + '.txt')
    wh = open(fn, 'w')
    wh.write(seq.strip() + "\n")
コード例 #3
0
ファイル: addseq.py プロジェクト: glygen-glycan-data/PyGly
#!/bin/env python2

from collections import defaultdict

from getwiki import GlycoMotifWiki

import findpygly
from pygly.GlycanResource import GlyTouCan
import sys

w = GlycoMotifWiki()

gtc = None


def accs():
    global gtc
    if len(sys.argv) > 1:
        gtc = GlyTouCan(prefetch=False, usecache=False)
        for acc in sys.argv[1:]:
            yield acc
    else:
        gtc = GlyTouCan(prefetch=True, usecache=False)
        for m in w.itermotif():
            yield m.get('id')


for acc in accs():
    m = w.get(acc)
    gtcacc = m.get('glytoucan')
    wurcs = gtc.getseq(gtcacc, 'wurcs')
コード例 #4
0
#!/bin/env python27

import sys,traceback

from getwiki import GlycoMotifWiki, GlycoEpitopeMotif
w = GlycoMotifWiki()

import csv
from gtccache import GlyTouCanCache
gtccache = GlyTouCanCache()

current = set()
for r in csv.DictReader(open(sys.argv[1]),dialect='excel-tab'):
    if not r['glytoucan']:
	continue
    redend = None
    aglycon = None
    if r['sequence'].endswith('Cer'):
	redend = True
	aglycon = 'Cer'
    elif r['sequence'].endswith('Ser/Thr'):
	redend = True
	aglycon = 'Ser/Thr'
    elif r['sequence'].endswith('-R'):
	redend = False
	aglycon = 'R'
    wurcs=gtccache.gtc2wurcs(r['glytoucan'])
    glycoct=gtccache.gtc2glycoct(r['glytoucan'])
    motif = GlycoEpitopeMotif(accession=r['acc'],name=r['name'],glytoucan=r['glytoucan'],redend=redend,aglycon=aglycon,wurcs=wurcs,glycoct=glycoct)
    if w.update(motif):
	print >>sys.stderr, r['acc']
コード例 #5
0
ファイル: refresh.py プロジェクト: glygen-glycan-data/PyGly
#!/bin/env python2

import sys
from getwiki import GlycoMotifWiki, GlyTouCanMotif

w = GlycoMotifWiki()

if len(sys.argv) > 1:

    if sys.argv[1] == "-":

        for p in w.iterpages(exclude_categories=['Motif', 'Collection']):
            print >> sys.stderr, p.name
            w.refresh(p)

    elif sys.argv[1] == "Publications":

        for p in w.iterpages(include_categories=['Publication']):
            print >> sys.stderr, p.name
            w.refresh(p)

    elif sys.argv[1] == "Collections":

        for p in w.iterpages(include_categories=['Collection']):
            print >> sys.stderr, p.name
            w.refresh(p)

    else:

        for p in w.iterpages(regex=sys.argv[1]):
            print >> sys.stderr, p.name
コード例 #6
0
#!/bin/env python2

from getwiki import GlycoMotifWiki
import sys

w = GlycoMotifWiki()
w.dumpsite(sys.argv[1], exclude_regex='^GM\.')
コード例 #7
0
ファイル: copymotif.py プロジェクト: glygen-glycan-data/PyGly
#!/bin/env python27

from getwiki import GlycoMotifWiki
import sys

w = GlycoMotifWiki()

m = w.get(sys.argv[1])
if m:
    coll,acc = sys.argv[2].split('.')
    m.delete('sameas')
    m.set('accession',acc)
    m.set('collection',coll)
    m.set('id',sys.argv[2])
    if w.put(m):
	print "Copied:",sys.argv[1],"to",m.get('id')
コード例 #8
0
#!/bin/env python2

import sys, traceback, time

from getwiki import GlycoMotifWiki, Publication

w = GlycoMotifWiki()

refs = []
if len(sys.argv) > 1:
    h = open(sys.argv[1])
else:
    h = sys.stdin
for l in h:
    sl = l.split()
    try:
        refid = int(sl[0])
    except:
        refid = sl[0]
    if refid == "-":
        refid = None
    pmid = sl[1]
    refs.append((refid, pmid))

currentpmids = set()
for pub in w.iterpages(include_categories=['Publication']):
    pmid = w.get(pub.name).get('pmid')
    if pmid != None:
        currentpmids.add(pmid)

from Bio import Entrez
コード例 #9
0
#!/bin/env python27

from getwiki import GlycoMotifWiki
import sys

fromwiki = sys.argv[1].upper()
towiki = sys.argv[2].upper()

assert fromwiki in ("PROD", "DEV", "TEST")
assert towiki in ("PROD", "DEV", "TEST")
assert fromwiki != towiki

w1 = GlycoMotifWiki(smwenv=fromwiki, quiet=True)
print >> sys.stderr, "from: %s" % (w1.title(), )
w2 = GlycoMotifWiki(smwenv=towiki, quiet=True)
print >> sys.stderr, "  to: %s" % (w2.title(), )

dummy = raw_input("Enter to proceed, <Ctrl-C> to abort:")

currentcoll = set()
for c1 in w1.itercollection():
    id = c1.get('id')
    assert (id)
    currentcoll.add(id)
    if w2.put(c1):
        print >> sys.stderr, "Pushing %s to %s" % (id, w2.title())
    else:
        print >> sys.stderr, "No change to %s in %s" % (id, w2.title())

currentmotif = set()
for m1 in w1.itermotif():
コード例 #10
0
ファイル: listmotif.py プロジェクト: glygen-glycan-data/PyGly
#!/bin/env python27

from getwiki import GlycoMotifWiki, GlyTouCanMotif

w = GlycoMotifWiki()

for m in w.itermotif(collection='GGM'):
    print m
    # print m.get('collection'), m.get('accession'), m.get('id')
コード例 #11
0
#!/bin/env python27

import sys, traceback
from getwiki import GlycoMotifWiki, UniCarbMotif
w = GlycoMotifWiki()

from pygly.GlyTouCan import GlyTouCan
gtc = GlyTouCan()

from gtccache import GlyTouCanCache
gtccache = GlyTouCanCache()

from pygly.GlycanFormatter import GlycoCTFormat, IUPACParserExtended1
gparser = GlycoCTFormat()
imparser = IUPACParserExtended1()

from dataset import XLSXFileTable
rows = XLSXFileTable(sys.argv[1])

possibleaglycon = ["Cer", "R", "Ser/Thr"]
reaglycon = ["Ser/Thr", "Cer", "Other"]
current = set()
for r in rows:
    id = r["ID"]
    name = r["Name"]
    iupacseq = r["IUPAC"]

    accession = "%06d" % id
    if not iupacseq:
        continue
コード例 #12
0
#!/bin/env python27

from getwiki import GlycoMotifWiki
import sys
w = GlycoMotifWiki()
w.dumpsite(sys.argv[1], exclude_categories=['Motif', 'Collection'])
コード例 #13
0
#!/bin/env python27

from getwiki import GlycoMotifWiki, Collection, GlyTouCanMotif, CCRCMotif, GlycoEpitopeMotif, AllMotif, GlyGenMotif
from getwiki import GlydinMotif, GlydinCummingsMotif, GlydinHayesMotif, GlydinCermavMotif, GlydinSugarbindMotif, GlydinBioligoMotif
from getwiki import UniCarbMotif
import sys

w = GlycoMotifWiki()
current = set()
w.put(
    Collection(id=GlyTouCanMotif.id,
               name="GlyTouCan Motifs",
               contact="Kiyoko Aoki-Kinoshita",
               email="*****@*****.**",
               url="https://glytoucan.org/Motifs/listAll"))
current.add(GlyTouCanMotif.id)
w.put(
    Collection(
        id=CCRCMotif.id,
        name="CCRC Motifs",
        contact="Rene Ranzinger",
        email="*****@*****.**",
        url=
        "https://github.com/glygen-glycan-data/PyGly/raw/master/smw/glycomotif/data/MotifsMP2.xlsx"
    ))
current.add(CCRCMotif.id)
w.put(
    Collection(id=GlycoEpitopeMotif.id,
               name="GlycoEpitope Epitopes",
               contact="Toshisuke Kawasaki",
               email="*****@*****.**",
コード例 #14
0
#!/bin/env python27

from getwiki import GlycoMotifWiki
import sys, re

w = GlycoMotifWiki()

for m in w.itermotif(collection="GGM"):
    match = False
    if re.search(sys.argv[2], m.get('accession')):
        match = True
    if not match:
        for name in m.get('name', []):
            if re.search(sys.argv[2], name):
                match = True
                break
    if match:
        keywords = m.get("keyword", set())
        keywords.add(sys.argv[1])
        m.set("keyword", keywords)
        if w.put(m):
            print >> sys.stderr, m.get('id'), sys.argv[1]
コード例 #15
0
ファイル: showsite.py プロジェクト: tylerjstewart/PyGly
#!/bin/env python27

from getwiki import GlycoMotifWiki, GlyTouCanMotif

w = GlycoMotifWiki()
コード例 #16
0
ファイル: loadsite.py プロジェクト: tylerjstewart/PyGly
#!/bin/env python27

from getwiki import GlycoMotifWiki
import sys

w = GlycoMotifWiki()
w.loadsite(sys.argv[1])
コード例 #17
0
#!/bin/env python2

from collections import defaultdict

from getwiki import GlycoMotifWiki

w = GlycoMotifWiki()

gtc2motif = defaultdict(list)
for m in w.itermotif():
    gtc = m.get('glytoucan')
    if gtc:
        gtc2motif[gtc].append(m)

for gtc, motiflist in sorted(gtc2motif.iteritems()):
    print gtc
    for m in motiflist:
        sameas = sorted(map(lambda m1: m1.get('id'), motiflist))
        sameas.remove(m.get('id'))
        m.set('sameas', sameas)
        w.update(m)
コード例 #18
0
#!/bin/env python27

import sys, traceback, re
from collections import defaultdict

from getwiki import GlycoMotifWiki, GlyGenMotif
w = GlycoMotifWiki()

motif2gd = defaultdict(set)

from dataset import CSVFileTable
for r in CSVFileTable(sys.argv[1]):
    entry = r['term (main_entry)'].strip()
    xrefs = r['term_xref']
    gdacc = r['glycan_dictionary_accession']
    allmid = set()
    for xr in filter(None, xrefs.split('|')):
        try:
            src, mid = xr.split(':', 1)
        except ValueError:
            continue
        if src.lower() == "glycomotif":
            if not re.search(r'^GGM\.\d{6}$', mid):
                print "Bad motif id: %s (%s)" % (mid, entry)
                continue
            motif2gd[mid].add((gdacc, entry))

for mid in w.site.allpages(prefix='GGM.', generator=False):
    # print mid
    m = w.get(mid)
    entries = motif2gd[mid]
コード例 #19
0
ファイル: loadallmotif.py プロジェクト: tylerjstewart/PyGly
#!/bin/env python27

from collections import defaultdict
import sys

from getwiki import GlycoMotifWiki, AllMotif
w = GlycoMotifWiki()

gtc2motif = defaultdict(list)
for m in w.itermotif():
    if m.get('collection') != AllMotif.id:
        gtc = m.get('glytoucan')
        gtc2motif[gtc].append(m)

current = set()
for gtc, motiflist in sorted(gtc2motif.iteritems()):
    names = []
    redend = set()
    aglycon = set()
    for m in motiflist:
        if m.has('name'):
            for n in m.get('name'):
                if n not in names:
                    names.append(n)
        if m.has('redend'):
            redend.update(m.get('redend', []))
        if m.has('aglycon'):
            aglycon.update(m.get('aglycon', []))
    if len(redend) == 0:
        redend = None
    if len(aglycon) == 0:
コード例 #20
0
#!/bin/env python27

import sys, traceback, os, csv

from getwiki import GlycoMotifWiki
from getwiki import GlydinMotif, GlydinCummingsMotif, GlydinHayesMotif, GlydinCermavMotif, GlydinSugarbindMotif, GlydinBioligoMotif

w = GlycoMotifWiki()

from dataset import XLSXFileTable
rows = XLSXFileTable(sys.argv[1])

from pygly.GlyTouCan import GlyTouCan
gtc = GlyTouCan()

from gtccache import GlyTouCanCache
gtccache = GlyTouCanCache()
"""
[x]collection structure
key: id (not row number)
value: {"aglycon":"String"/None, "name":""/None, "gtcid":""}
"""

ccollection = {}
hcollection = {}
vcollection = {}
sbcollection = {}
bcollection = {}
collections = {
    "c": ccollection,
    "h": hcollection,