Skip to content
Snippets Groups Projects
segmentmodel_example.py 1.38 KiB
import numpy as np
from segmentmodel import SegmentModel, SingleStrandedSegment, DoubleStrandedSegment
from nbPot import nbDnaScheme

"""
Example of using segmentmodel to construct a CG

May need to execute after running:
PATH=/home/cmaffeo2/anaconda3/bin:$PATH; source activate cadnano 

"""



if __name__ == "__main__":

    seg1 = DoubleStrandedSegment("strand", num_nts = 46)

    seg2 = SingleStrandedSegment("strand", 
                                 start_position = seg1.end_position + np.array((5,0,5)),
                                 num_nts = 12)

    seg3 = SingleStrandedSegment("strand", 
                                 start_position = seg1.start_position + np.array((-5,0,-5)),
                                 end_position = seg1.end_position + np.array((-5,0,5)),
                                 num_nts = 128)

    seg1.start3
    seg1.start5
    seg1.end3
    seg1.end5

    seg1.connect_end3(seg2)     # equivalent for ssDNA to: seg1.connect_end3(seg2.end5)
    seg1.connect_end5(seg3)
    seg1.connect_start3(seg3)

    model = SegmentModel( [seg1, seg2, seg3], 
                          local_twist = True,
                          max_basepairs_per_bead = 5,
                          max_nucleotides_per_bead = 5,
                          dimensions=(5000,5000,5000),
                      )

    model.simulate( outputPrefix = 'strand-test', outputPeriod=1e4, numSteps=1e6, gpu=1 )