|
Secondary structure in ModeRNA
IntroductionSecondary (2D) structure includes typical Watson-Crick pairing as well as GU wobble pairs. ModeRNA provides a set of functions that can be applied to specify 2D structure in the model, in particular in regions where the backbone conformation is modified (insertions and deletions). 2D structure restraints for fragment search can be provided by the user in the Vienna format. Base pairs in helical conformation can be added to the model (e.g. to extend existing helices or insert new ones), For unpaired bases, complementary bases can be added (e.g. to build a helix starting from an unpaired single strand). Entire fragments with defined 3D coordinates (provided by the user) can be inserted into the model. Fragments can be also removed. A detailed description of all functions for secondary structure modeling is presented below. In all pictures the following code is used: Calculating 2D structuresget_secstruc(structure) Description:Extract secondary structure from a given 3D structure. Arguments:structure (model or template or any other ModernaStructure object) Example[ download template ]from moderna import *
t = load_template('1F1T.pdb', 'A')
clean_structure(t)
print get_secstruc(t)
Making a helix longerextend_helix(model, anchor5, anchor3, new_sequence) DescriptionThis function extends a helix. A helical fragment (default: moderna/data/helix.pdb) is added as to generate an extension of the indicated anchoring residues in the model. In case a part of the model is between the indicated anchoring residues it is automatically found and moved as to become anchored to the end of the inserted fragment. Arguments
Example 1[ download template ] [ download alignment ]from moderna import *
t = load_template('1F1T.pdb', 'A')
clean_structure(t)
a = load_alignment('alignment_1F1T.fasta')
m = create_model()
apply_alignment(t, a, m)
extend_helix(m, '2', '37', Sequence('CG_CG'))
Example 2[ download template ] [ download alignment ]from moderna import *
t = load_template('1KXK.pdb', 'A')
clean_structure(t)
a = load_alignment('alignment_1KXK.fasta')
m = create_model()
apply_alignment(t, a, m)
extend_helix(m,'22','51',Sequence('AUG_CAU'))
Example 3[ download template ] [ download alignment ]from moderna import *
t = load_template('1XJR.pdb', 'A')
clean_structure(t)
a = load_alignment('alignment_1XJR_long.fasta')
m = create_model()
apply_alignment(t, a, m)
extend_helix(m,'5','45',Sequence('GCGCGC_GCGCGC'))
Making a helix shortershrink_helix(model, anchor5, anchor3, anchor5_up, anchor3_up) DescriptionRemoves a fragment of an existing helix between the indicated anchoring residues. Afterwards both remaining parts are connected. Arguments
Example[ download template ]# eliminates a few base pairs from a helix.
m = load_model('hairpin_14nt.pdb', 'R')
shrink_helix(m, '2', '13', '6', '10')
fix_backbone(m)
Adding Watson-Crick paired basesadd_pair_to_base(model, anchor, new_id, new_sequence) DescriptionAdds a residue to form a Watson-Crick pair with the indicated residue in the model. Arguments
Example[ download template ]# adds three base pairs to a single strand.
m = load_model('single_strand.pdb')
add_pair_to_base(m, '1', '20', Sequence('C'))
add_pair_to_base(m, '2', '19', Sequence('C'))
add_pair_to_base(m, '3', '18', Sequence('C'))
# glue the new residues together
fix_backbone(m,'18','19')
fix_backbone(m,'19','20')
Finding linkers with given 2D structurefind_loop(model, anchor5, anchor3, sequence, number_of_candidates, 2D_struc)and insert_fragment(model, fragment) DescriptionSpecification of 2D structure can be used to restrict fragment selection in the fragment insertion procedure. Arguments (find_loop)
Arguments (insert fragment)
Example[ download template ]# retrieves a haipin loop from the linker database.
m = load_model('hairpin_14nt.pdb', 'R')
print m.get_sequence()
print m.get_secstruc()
candidates = find_fragment(m, '6', '10', Sequence('GGGGUUUUCCCC'), 10, secstruc='((((....))))')
print candidates[0]
print candidates[0].fragment_instance.get_secstruc()
insert_fragment(m, candidates[0])
Adding custom 2D elementsinsert_2D_fragment(model, anchor5, anchor3, anchor5_up, anchor3_up, anchor5_fr, anchor3_fr, anchor5_up_fr, anchor_3_up_fr, fragment_file, chain_name) DescriptionWith this function users can add their own 3D fragment containing two strands to an existing model. This operation requires PDB-formatted files with coordinates of the model to be modified and the fragment to be inserted, and the definition of anchoring residues: four from the model and four from the fragment. Arguments
Example[ download model ] [ download bulge fragment ]# adds a single-nucleotide bulge between some residues of the hairpin.
m = load_model('hairpin.pdb', 'D')
insert_two_strand_fragment(m, '30', '40', '31', '39', '195', '219', '196', '217', 'bulge.pdb','A')
|
||||||||||||||||||||||
|