https://github.com/fenderglass/Ragout
Revision 54ec8318ee615f6aa28b3188cfd95ee5679cc317 authored by fenderglass on 15 January 2014, 22:20:24 UTC, committed by fenderglass on 15 January 2014, 22:20:24 UTC
1 parent b0a0b5a
Raw File
Tip revision: 54ec8318ee615f6aa28b3188cfd95ee5679cc317 authored by fenderglass on 15 January 2014, 22:20:24 UTC
sibelia path fix
Tip revision: 54ec831
datatypes.py
from collections import namedtuple

class Scaffold:
    def __init__(self, name):
        self.left = 0
        self.right = 0
        self.contigs = []
        self.name = name

    @staticmethod
    def with_contigs(name, left, right, contigs):
        scf = Scaffold(name)
        scf.left = left
        scf.right = right
        scf.contigs = contigs
        return scf

class Contig:
    def __init__(self, name, sign=1, gap=0):
        self.name = name
        self.sign = sign
        self.gap = gap
        self.blocks = []

    @staticmethod
    def from_sting(string):
        return Contig(*parse_contig_name(string))

    def __str__(self):
        sign = "+" if self.sign > 0 else "-"
        return sign + self.name

def parse_contig_name(string):
    if string[0] not in ["+", "-"]:
        return None

    sign = 1 if string[0] == "+" else -1
    return string[1:], sign
back to top