コード例 #1
0
ファイル: cycleCover.py プロジェクト: dzerbino/cn-avg
def closePseudoTelomere(data, index):
	module, history = data
	PT = random.choice(list(module.pseudotelomeres))
	twin = module[PT].twin
	edge1 = Edge(PT, twin, module[PT].segment[index], index)
	module.removeEdgeFlow(edge1)
	edge2 = Edge(twin, module[twin].partner, -edge1.value, -1)
	module.removeEdgeFlow(edge2)
	module, edges = extractPseudoTelomereCycle(module, [edge1, edge2])
	history.absorbEvent(Event(Cycle(edges)))
	return module, history
コード例 #2
0
def closePseudoTelomere(data, index):
    module, history = data
    PT = random.choice(list(module.pseudotelomeres))
    twin = module[PT].twin
    edge1 = Edge(PT, twin, module[PT].segment[index], index)
    module.removeEdgeFlow(edge1)
    edge2 = Edge(twin, module[twin].partner, -edge1.value, -1)
    module.removeEdgeFlow(edge2)
    module, edges = extractPseudoTelomereCycle(module, [edge1, edge2])
    history.absorbEvent(Event(Cycle(edges)))
    return module, history
コード例 #3
0
ファイル: cycleCover.py プロジェクト: dzerbino/cn-avg
def extractPseudoTelomereCycle(module, edges):
	firstNode = edges[0].start
	lastNode = edges[-1].finish
	if firstNode == lastNode:
		return module, edges
	else:
		nextNode = module[lastNode].twin
		edge1 = Edge(lastNode, nextNode, edges[0].value, 0)	
		module.removeEdgeFlow(edge1)
		followingNode = module[nextNode].partner
		edge2 = Edge(nextNode, followingNode, -edges[0].value, -1)	
		module.removeEdgeFlow(edge2)
		return extractPseudoTelomereCycle(module, edges + [edge1, edge2])
コード例 #4
0
def extractPseudoTelomereCycle(module, edges):
    firstNode = edges[0].start
    lastNode = edges[-1].finish
    if firstNode == lastNode:
        return module, edges
    else:
        nextNode = module[lastNode].twin
        edge1 = Edge(lastNode, nextNode, edges[0].value, 0)
        module.removeEdgeFlow(edge1)
        followingNode = module[nextNode].partner
        edge2 = Edge(nextNode, followingNode, -edges[0].value, -1)
        module.removeEdgeFlow(edge2)
        return extractPseudoTelomereCycle(module, edges + [edge1, edge2])