In [1]:
from goetia import libgoetia
from goetia.data import load_ukhs
from goetia.prometheus import Instrumentation
from goetia.assembly import Assembler
from cppyy.gbl import std
from cppyy import gbl
import cppyy
import difflib
In [3]:
from goetia.pythonizors import declarations
In [2]:
instrumentation = Instrumentation('', expose=False)
In [3]:
G = libgoetia.dBG[libgoetia.storage.SparseppSetStorage, libgoetia.hashing.RollingHashShifter].build(27)
In [6]:
cG = libgoetia.cdbg.cDBG[type(G)].Graph(G, instrumentation.Registry)
In [7]:
cG.n_dnodes
Out[7]:
In [4]:
cptor = libgoetia.cdbg.StreamingCompactor[type(G)].Compactor.build(G, instrumentation.Registry)
In [5]:
cptor.Graph.n_dnodes
Out[5]:
In [14]:
G.insert_sequence(s)
Out[14]:
In [15]:
asm = Assembler(G)
In [18]:
seed = std.string(s[:30])
In [19]:
asm.traverser.set_cursor(seed)
In [9]:
seq, (r_state, r_end_hash) = asm.assemble_right(s[:31])
In [10]:
seq
Out[10]:
In [13]:
state == libgoetia.TraversalState.STOP_FWD
Out[13]:
In [24]:
act[100:200]
Out[24]:
In [25]:
exp[100:200]
Out[25]:
In [13]:
act = 'CCTCGGGATTGCATAGGTAAAATAGCATTAGCCAGCAGTTCGGCCTCGGAGCACCCTGTCACCCGCAAGGGCCATCGGTACGACAGGCAGCCGTAGTTATTGTCGGGCAAGAGAAGTGCTCGCCATAAACGAGGGTGGACCTTTTCCTCCATGTTGGGGACAACTGCGCCGTCTGGGACCGGTAGAGTAAGGTCCCGCTCCGGATATCGACGTCTGGGAAACGAGCCGCGTTACGGGTCTCCAATTTCGAACATCACATCACGAGTCGCTACCCTCATGAGCGCAACGGAGATGGTCGGATAGGAACCACAACTCTGCAGAAGTGAATTTATCAGTCGCCTAGACATATGTATTGCAGACTAAATCTGCTAGGTAAACTACCATGTTGCTCATGCACACGAATCATCGAAAAAATGGCGGAACTGTAAACAAGGTCCGCTTGTTTGCAAAATGTACCGGTCTAGCCGGCCCGAAGTCTCCCGATCGAAGTAATTAGAGCT'
exp = 'CCTCGGGATTGCATAGGTAAAATAGCATTAGCCAGCAGTTCGGCCTCGGAGCACCCTGTCACCCGCAAGGGCCATCGGTACGACAGGCAGCCGTAGTTATTGTCGGGCAAGAGAAGTGCTCGCCATAAACGAGGGTGGACCTTTTCCTCCGCCGATGTTGGGGACAACTGCTCTGGGACCGGTAGAGTAAGGTCCCGCTCCGGATATCGACGTCTGGGAAACGAGCCGCGTTACGGGTCTCCAATTTCGAACATCACATCACGAGTCGCTACCCTCATGAGCGCAACGGAGATGGTCGGATAGGAACCACAACTCTGCAGAAGTGAATTTATCAGTCGCCTAGACATATGTATTGCAGACTAAATCTGCTAGGTAAACTACCATGTTGCTCATGCACACGAATCATCGAAAAAATGGCGGAACTGTAAACAAGGTCCGCTTGTTTGCAAAATGTACCGGTCTAGCCGGCCCGAAGTCTCCCGATCGAAGTAATTAGAGCT'
In [5]:
libgoetia.TraversalState.
Out[5]:
In [10]:
state == libgoetia.Traverse[type(G)].State.STOP_FWD
In [21]:
libgoetia.Traverse[type(G)].State.STOP_FWD
In [8]:
G.right_degree(s)
Out[8]:
In [8]:
G.clone()
Out[8]:
In [2]:
storage_t = libgoetia.storage.BitStorage
signature_t = libgoetia.signatures.UnikmerSignature[storage_t]
In [3]:
ukhs = load_ukhs(31, 8)
In [4]:
sig = signature_t.Signature.build(31, 8, ukhs.__smartptr__(), 10000, 4)
In [5]:
proc = std.make_shared[signature_t.Processor](sig.__smartptr__(), 10000, 100000, 100000)
In [6]:
proc
Out[6]:
In [16]:
type(G)
Out[16]:
In [12]:
std.pair[std.vector[libgoetia.hashing.kmer_t], std.vector[libgoetia.hashing.kmer_t]]
Out[12]:
In [6]:
parser = cppyy.gbl.ParserFactory[goetia.parsing.FastxReader].build('/work/draff/results/simulated/ecoli.0._100_180_1.fq')
In [56]:
path = goetia.Path()
In [44]:
shifter = goetia.hashing.RollingHashShifter(7)
In [58]:
for i in range(5):
path.clear()
shifter.get_cursor(path)
print(asm.to_string(path))
In [45]:
for i in range(len(s) - 9 + 1):
kmer = s[i:i+9]
shifter.set_cursor(kmer)
print(shifter.get(), shifter.hash(kmer))
#print(kmer, int(asm.degree_left()), int(asm.degree_right()))
In [49]:
shifter = goetia.hashing.RollingHashShifter('AAAAAAA', 7)
In [26]:
shifter.update_right('C')
Out[26]:
In [27]:
shifter.get()
Out[27]:
In [16]:
storages = ['BitStorage', 'ByteStorage', 'NibbleStorage', 'QFStorage', 'SparseppSetStorage']
def storage_decls(template):
for storage in storages:
print(template.format(storage))
print()
template = 'extern\n' + template
for storage in storages:
print(template.format(storage))
In [10]:
storage_decls('template class goetia::dBG<goetia::storage::{},\n'
' goetia::hashing::RollingHashShifter>;')
In [11]:
storage_decls('template class goetia::cdbg::cDBG<goetia::dBG<goetia::storage::{},\n'
' goetia::hashing::RollingHashShifter>>;')
In [15]:
storage_decls('template class goetia::PdBG<goetia::storage::{}>;')
In [17]:
storage_decls('template struct goetia::Traverse<goetia::dBG<goetia::storage::{},\n'
' goetia::hashing::RollingHashShifter>>;')
In [23]:
storage_decls('template class goetia::FileConsumer<goetia::dBG<goetia::storage::{},\n'
' goetia::hashing::RollingHashShifter>>;')
In [24]:
storage_decls('template class goetia::DecisionNodeProcessor<goetia::dBG<goetia::storage::{},\n'
' goetia::hashing::RollingHashShifter>>;')
In [26]:
storage_decls('template class goetia::cdbg::StreamingCompactor<goetia::dBG<goetia::storage::{},\n'
' goetia::hashing::RollingHashShifter>>;')
In [27]:
storage_decls('template class goetia::StreamingCompactorProcessor<goetia::dBG<goetia::storage::{},\n'
' goetia::hashing::RollingHashShifter>>;')
In [29]:
storage_decls('template class goetia::signatures::UnikmerSignature<goetia::storage::{}>;')
In [16]:
storage_decls('template class std::enable_shared_from_this<goetia::dBG<goetia::storage::{},\n'
' goetia::hashing::RollingHashShifter>>;')
In [15]:
storage_decls('template class std::enable_shared_from_this<goetia::PdBG<goetia::storage::{}>>;')
In [ ]: