Code samples
Decomposition
from trviz.decomposer import Decomposer
tr_decomposer = Decomposer()
tr_sequence = "ACCTTGACCTTGACCTTGACCTTG"
motifs = ["ACCTTG"]
tr_decomposer.decompose(tr_sequence, motifs)
# >>> ['ACCTTG', 'ACCTTG', 'ACCTTG', 'ACCTTG']
Encoding
from trviz.motif_encoder import MotifEncoder
motif_encoder = MotifEncoder()
decomposed_vntrs = [['ACCTTG', 'ACCTTG', 'ACCTTC'],
['ACCTTG', 'ACCTTG', 'ACCTTG', 'ACCTTC'],
['ACCTTG', 'ACCTTG', 'ACCTTG', 'ACCTTC', 'ACCTTC'],
]
motif_encoder.encode(decomposed_vntrs, motif_map_file="VNTR_motif_map.txt")
# >>> ['aab', 'aaab', 'aaabb']
Alignment
from trviz.motif_aligner import MotifAligner
motif_aligner = MotifAligner()
motif_aligner.align(sample_ids = ['sample1', 'sample2', 'sample3'],
encoded_vntrs = ['aab', 'aaab', 'aaabb'],
vid = 'test')
# >>> (['sample1', 'sample2', 'sample3'], ['-aab-', 'aaab-', 'aaabb'])
Visualization
from trviz.visualizer import TandemRepeatVisualizer
sample_ids = ['sample1', 'sample2', 'sample3']
aligned_vntrs = ['-aab-', 'aaab-', 'aaabb']
visualizer = TandemRepeatVisualizer()
# This will generate a TR plot as a file, "test_tr_plot.png"
visualizer.trplot(aligned_vntrs, output_name="test_tr_plot.png", sample_ids=sample_ids)