Ejemplo n.º 1
0
from pysqg.sqg import Sqg
sqg = Sqg(includes=[ "ungappedOverlapGraph" ], \
sharedVariables={ "Created":"Assemblathon File Format Working Group using Richard Durbin's example", "Date":"24/11/2011"})
from pysqg.arrayList import InMemoryArrayList
nodes = InMemoryArrayList(type="node")
sqg.setArrayList(nodes)
sqg.getArrayList("node")
nodes.getArrayNames()
nodes.getArrayTypes()
_1 = 0
nodes.addArray([ _1 ])
_2 = 1
nodes.addDict({ "nodeName":_2 })
from pysqg.arrayList import OnDiskArrayList
segmentEdges = OnDiskArrayList(file="./segmentEdges", type="multiLabelledSegment")
sqg.setArrayList(segmentEdges)
segmentEdges.getArrayNames()
segmentEdges.getArrayTypes()
aL, aR = 2, 3
nodes.addArray([ aL ])
nodes.addArray([ aR ])
segmentEdges.addDict({ "inNode":aL, "outNode":aR, "length":10, \
"sequence":"acggtcagca", "degree":1 })
b1L, b1R = 4, 5
nodes.addArray([ b1L ])
nodes.addArray([ b1R ])
segmentEdges.addDict({ "inNode":b1L, "outNode":b1R, "length":6, \
"sequence":"catact", "degree":2 })
b2L, b2R = 6, 7
nodes.addArray([ b2L ])
nodes.addArray([ b2R ])
Ejemplo n.º 2
0
    if file[-5:] == ".json":
        Sqg(includes=[file[:-5]]) #This ensures the graphs are in memory
        graphNode = i
        i = i+1
        sqgs.addDict({ "nodeName":graphNode, "name":file[:-5] })
        #Now iterate through the new array list types
        fileHandle = open(os.path.join(getPysqgIncludeDir(), file), 'r')
        jsonSqg = json.load(fileHandle)
        fileHandle.close()
        for arrayListType in jsonSqg.keys(): 
            if arrayListType not in ("name", "include", "parents", "sharedVariables"): #This is very hacky, it would be nice to have a clean way to know which sqg defined which array list.
                arrayList = InMemoryArrayList(type=arrayListType)
                arrayNode = i
                i = i+1
                typeStringsToNodeNamesAndArrays[arrayListType] = (arrayNode, arrayList)
                arrayLists.addDict({ "nodeName":arrayNode, "name":arrayListType, "arrayNames":" ".join(arrayList.getArrayNames()), "arrayTypes":" ".join(arrayList.getArrayTypes()) })
                graphEdges.addDict({ "outNode":graphNode, "inNode":arrayNode })

#Add in the inherits edges
for typeString in typeStringsToNodeNamesAndArrays.keys():
    arrayNode, arrayList = typeStringsToNodeNamesAndArrays[typeString]
    if arrayList.getInherits() != None:
        parentArrayNode, parentArrayList = typeStringsToNodeNamesAndArrays[arrayList.getInherits().getType()]
        inheritEdges.addDict({ "outNode":parentArrayNode, "inNode":arrayNode })


#We're done
print makeJsonSqgFromSqg(inheritanceGraph)

#Here we dump a dot version of the graph, using the networkX interface.
nxGraph, nxSubgraphs = networkxWrite(inheritanceGraph)