Subroutine documentation generated on Wed Jun 17 11:43:35 AEST 2020
Subroutine Index
================
Aa ../lib/silico_sequence.pm
Aa_one_letter ../lib/silico_sequence.pm
Aa_three_letter ../lib/silico_sequence.pm
Acceptable_neutral_valences ../lib/silico_definitions.pm
Add_bondorders_to_atom_tree ../lib/silico_prop.pm
Add_charge_with_sybyl ../lib/silico_sybyl.pm
Add_layer ../bin/starmaker
Add_monomer ../bin/starmaker
Add_option ../lib/silico_io.pm
Add_part_of_layer ../bin/starmaker
Align_bonds ../bin/starmaker
Amino_acid_and_nucleotide_base_codes ../lib/silico_definitions.pm
Angle_between_vectors ../lib/silico_geom.pm
Atom_add_1h ../lib/silico_hydrogens.pm
Atom_add_2h ../lib/silico_hydrogens.pm
Atom_add_3h ../lib/silico_hydrogens.pm
Atom_add_h ../lib/silico_hydrogens.pm
Atom_calc_bin ../lib/silico_geom.pm
Atom_check_valence ../lib/silico_check.pm
Atom_colour ../lib/silico_sybyl.pm
Atom_cross_prod ../lib/silico_hydrogens.pm
Atom_data_to_sdf ../lib/silico_sdf.pm
Atom_formal_charge ../lib/silico_prop.pm
Atom_guess_element ../lib/silico_molecules.pm
Atom_guess_element_mol2 ../lib/silico_mol2.pm
Atom_keys ../lib/silico_gromacs.pm
Atom_lone_pairs ../lib/silico_prop.pm
Atom_norm_vector ../lib/silico_hydrogens.pm
Atom_number_sort_function ../bin/write_itp
Atom_oxidation_state ../lib/silico_prop.pm
Atom_path_traverse ../lib/silico_fp.pm
Atom_path_traverse_branched ../lib/silico_fp.pm
Atom_printout ../lib/silico_debug.pm
Atom_score_hybridisation ../lib/silico_molecules.pm
Atom_smiles_label ../lib/silico_smiles.pm
Atom_specifier_setup ../lib/silico_molecules.pm
Atomic_elements ../lib/silico_definitions.pm
Bin_values ../lib/silico_tabledata.pm
Bl ../lib/silico_molecules.pm
Bndangle ../lib/silico_geom.pm
Bond_create ../lib/silico_molecules.pm
Bond_create_atom ../lib/silico_molecules.pm
Bond_delete ../lib/silico_molecules.pm
Bond_delete_atom ../lib/silico_molecules.pm
Bond_modify_order ../lib/silico_molecules.pm
Bond_modify_order_check ../lib/silico_molecules.pm
Bond_vector ../lib/silico_geom.pm
Bonded ../lib/silico_molecules.pm
Bondlengths ../lib/silico_molecules.pm
Bondlengths_2 ../lib/silico_molecules.pm
Branchsort ../lib/silico_smiles.pm
Calc_area_sphere_with_holes ../lib/silico_rbox.pm
Calc_binsize ../lib/silico_geom.pm
Calc_box_size ../lib/silico_geom.pm
Calc_chiral_sdf_stereo ../lib/silico_sdf.pm
Calc_chiral_volume ../lib/silico_sdf.pm
Calc_conservation_group_membership ../lib/silico_sequence.pm
Calc_conservation_group_percentage ../lib/silico_sequence.pm
Calc_distance_function ../lib/silico_geom.pm
Calc_gromos_charge ../lib/silico_gromacs.pm
Calc_human_readable_time ../lib/silico_data.pm
Calc_physiological_protonation ../lib/silico_hydrogens.pm
Calc_rotation_vector_onto_vector ../lib/silico_geom.pm
Calc_valence_change ../lib/silico_hydrogens.pm
Calculate_bin ../bin/rdf
Calculate_one_rdf ../bin/rdf
Calculate_rdfs ../bin/rdf
Carbanion_filter_neutraliser ../lib/silico_prop.pm
Centroid ../lib/silico_geom.pm
Ch ../lib/silico_data.pm
Change_bondorder ../lib/silico_molecules.pm
Check_arguments ../lib/silico_io.pm
Check_data_type ../lib/silico_data.pm
Check_grace_output_format ../lib/silico_io.pm
Check_itp_is_bonded ../lib/silico_gromacs.pm
Check_number_components ../lib/silico_rbox.pm
Check_printerror ../lib/silico_check.pm
Checkvalence ../lib/silico_molecules.pm
Chonspx_filter ../lib/silico_prop.pm
Clash_periodic_binned ../lib/silico_geom.pm
Clean_pdb_line ../lib/silico_pdb.pm
Clean_up_split_submols ../lib/silico_split.pm
Cleanline ../lib/silico_data.pm
Clear_smiles_sets ../lib/silico_smiles.pm
Close_file ../lib/silico_io.pm
Close_molfile ../lib/silico_io.pm
Compare_atom_order ../lib/silico_molecules.pm
Condense_smiles_ranks ../lib/silico_smiles.pm
Connect_atoms_by_distance ../lib/silico_molecules.pm
Connect_atoms_by_distance_simple ../lib/silico_molecules.pm
Connected ../lib/silico_molecules.pm
Construct_atom_relationships ../lib/silico_prop.pm
Construct_family_tree ../lib/silico_prop.pm
Construct_residue_relationships ../lib/silico_prop.pm
Convert_aromatic_bonds ../lib/silico_hydrogens.pm
Convert_aromatic_bonds_kekule ../lib/silico_rings.pm
Copy_atom ../lib/silico_molecules.pm
Copy_minimal_molecule ../lib/silico_rbox.pm
Correlation_coeff ../bin/dock_sort
Corresponding_prime_old ../lib/silico_smiles.pm
Count_formal_charges ../lib/silico_prop.pm
Count_polar_nonpolar ../lib/silico_prop.pm
Create_angle ../lib/silico_molecules.pm
Create_dihedral ../lib/silico_molecules.pm
Create_molecule ../lib/silico_molecules.pm
Create_planar_improper ../lib/silico_molecules.pm
Create_water_molecule ../lib/silico_solvate.pm
Crossprod ../lib/silico_geom.pm
Csv_fix ../lib/silico_smiles.pm
Deep_copy ../lib/silico_molecules.pm
Deep_copy_orig ../lib/silico_molecules.pm
Define_pdb_chain_segid ../lib/silico_rbox.pm
Deg_to_rad ../lib/silico_geom.pm
Delete_atomset ../lib/silico_sybyl.pm
Delete_flag ../lib/silico_io.pm
Delete_rings ../lib/silico_rings.pm
Delimited_read_error ../lib/silico_io.pm
Dihedral ../lib/silico_geom.pm
Distance ../lib/silico_geom.pm
Distance_atoms_min ../lib/silico_geom.pm
Distance_periodic_sq ../lib/silico_geom.pm
Distance_periodic_xyz_old ../lib/silico_geom.pm
Distance_points ../lib/silico_geom.pm
Distance_sq ../lib/silico_geom.pm
Dotprod ../lib/silico_geom.pm
Double_and_tie_break ../lib/silico_smiles.pm
Dump_itp_data ../lib/silico_gromacs.pm
Electronegativities ../lib/silico_definitions.pm
Element_number2symbol ../lib/silico_molecules.pm
Element_symbol2number ../lib/silico_molecules.pm
En ../lib/silico_data.pm
Ens ../lib/silico_molecules.pm
Ens_smiles_string ../lib/silico_smiles.pm
Ens_smiles_string_chemaxon ../lib/silico_smiles.pm
Ensemble_calc_fragments ../lib/silico_fp.pm
Ensemble_check ../lib/silico_check.pm
Ensemble_cluster ../lib/silico_molecules.pm
Ensemble_connect_atoms ../lib/silico_molecules.pm
Ensemble_consolidate ../lib/silico_molecules.pm
Ensemble_consolidate_nocopy ../lib/silico_rbox.pm
Ensemble_consolidate_small_molecules ../lib/silico_split.pm
Ensemble_copy ../lib/silico_molecules.pm
Ensemble_insight_rename ../lib/silico_molecules.pm
Ensemble_print_connect ../lib/silico_debug.pm
Ensemble_printout ../lib/silico_debug.pm
Ensemble_renumber ../lib/silico_molecules.pm
Ensemble_split ../lib/silico_split.pm
Ensemble_split_keeping_largest_mols ../lib/silico_split.pm
Et ../lib/silico_data.pm
Euclidian ../lib/silico_fp.pm
Extract_charmm_logfile ../bin/cexplot
Extract_gromacs_logfile ../bin/cexplot
Extract_mol2_sdf_data ../lib/silico_mol2.pm
Extract_namd_logfile ../bin/cexplot
Fgroup ../lib/silico_prop.pm
File_read_error ../lib/silico_io.pm
File_write_error ../lib/silico_io.pm
Find_aggregates ../bin/find_aggregate
Find_aggregates ../bin/find_aggregate.x
Find_atom_paths ../lib/silico_prop.pm
Find_atom_rings ../lib/silico_rings.pm
Find_atom_rings_not_recursive ../lib/silico_rings.pm
Find_bondorder ../lib/silico_molecules.pm
Find_bondorder2 ../lib/silico_molecules.pm
Find_bondorders_ring ../lib/silico_rings.pm
Find_buried_atoms ../lib/silico_prop.pm
Find_buried_atoms_simple ../lib/silico_prop.pm
Find_close_atoms_binned ../lib/silico_geom.pm
Find_closest_atoms_periodic ../lib/silico_geom.pm
Find_closest_atoms_periodic_binned ../lib/silico_geom.pm
Find_decoys_actives ../bin/dock_sort
Find_elements_ring ../lib/silico_rings.pm
Find_intermolecular_charge_interactions ../lib/silico_prop.pm
Find_intermolecular_hbonds_h ../lib/silico_hb.pm
Find_intermolecular_hbonds_h_simple ../lib/silico_hb.pm
Find_intermolecular_hbonds_noh ../lib/silico_hb.pm
Find_intramolecular_hbonds_h ../lib/silico_hb.pm
Find_nearby_charges_recursive ../lib/silico_hydrogens.pm
Find_nearest_atoms ../lib/silico_molecules.pm
Find_polar_atoms ../lib/silico_prop.pm
Find_schrodinger_exe ../lib/silico_mmod.pm
Find_substructure ../lib/silico_residue.pm
Find_sybyl ../lib/silico_sybyl.pm
Findclash ../lib/silico_hydrogens.pm
Fix_cell_values ../bin/find_aggregate
Fix_cell_values ../bin/find_aggregate.x
Fix_dative_bonds ../lib/silico_molecules.pm
Fix_double_bonds_carbonyl ../lib/silico_molecules.pm
Fix_double_bonds_carboxyl ../lib/silico_molecules.pm
Fix_double_bonds_general ../lib/silico_molecules.pm
Fix_hydrogens ../lib/silico_hydrogens.pm
Fix_pdb_chains ../lib/silico_pdb.pm
Fnfp ../lib/silico_data.pm
Format_doc_html ../lib/silico_doc.pm
Format_doc_txt ../lib/silico_doc.pm
Format_oname ../lib/silico_io.pm
Format_string_html ../lib/silico_doc.pm
Formatdata ../lib/silico_pdb.pm
Formatpara_txt ../lib/silico_doc.pm
Formula_string ../lib/silico_prop.pm
Fr_printout ../lib/silico_io.pm
Frag_aray_to_hashes ../lib/silico_fp.pm
Fragment_printout ../lib/silico_fp.pm
Fragmentlist_printout ../lib/silico_fp.pm
Ftfp ../lib/silico_data.pm
Fundamental_constants ../lib/silico_definitions.pm
Get_aa_frequency ../lib/silico_sequence.pm
Get_allflags ../lib/silico_io.pm
Get_arguments2 ../lib/silico_io.pm
Get_atomlist_using_specifier ../lib/silico_molecules.pm
Get_default_flags_standard ../lib/silico_io.pm
Get_file_compression ../lib/silico_io.pm
Get_file_dir ../lib/silico_io.pm
Get_filebase ../lib/silico_io.pm
Get_filebase_short ../lib/silico_io.pm
Get_fileext ../lib/silico_io.pm
Get_flag ../lib/silico_io.pm
Get_hosttype ../lib/silico_control.pm
Get_ion_data ../bin/water_to_ion
Get_join_list ../bin/starmaker
Get_lflag ../lib/silico_io.pm
Get_metal_oxidation_state ../bin/water_to_ion
Get_ofilebase ../lib/silico_io.pm
Get_ofilename ../lib/silico_io.pm
Get_ofilename2 ../lib/silico_io.pm
Get_oformat ../lib/silico_io.pm
Get_sflag ../lib/silico_io.pm
Get_single_atomlist_using_specifier ../lib/silico_molecules.pm
Get_std_output_options ../lib/silico_io.pm
Get_tempname ../lib/silico_io.pm
Getcol ../lib/silico_tabledata.pm
Getcols ../lib/silico_tabledata.pm
Getcols_all ../lib/silico_tabledata.pm
Getcols_not ../lib/silico_tabledata.pm
Getlines ../lib/silico_tabledata.pm
Gmx_make_heavy_h ../lib/silico_gromacs.pm
Gmx_merge_coords_into_top ../lib/silico_gromacs.pm
Gmx_replace_peptide_dihedrals ../bin/write_itp
Gmx_setup ../lib/silico_gromacs.pm
Gnuplot_plot_bins ../lib/silico_gnuplot.pm
Grom_readline ../lib/silico_gromacs.pm
Gromacs_check_itp ../lib/silico_gromacs.pm
Gromacs_regenerate_pairs ../lib/silico_gromacs.pm
Heading ../lib/silico_doc.pm
Identify_heterocycle ../lib/silico_prop.pm
Increment_chain ../lib/silico_pdb.pm
Insight_rename ../lib/silico_molecules.pm
Is_gap ../lib/silico_sequence.pm
Is_hbond_mcdonald_thornton ../lib/silico_hb.pm
Is_integer ../lib/silico_data.pm
Is_ring_aromatic_by_bondorder ../lib/silico_rings.pm
Is_ring_aromatic_by_connectivity ../lib/silico_rings.pm
Is_ring_planar ../lib/silico_rings.pm
Is_ring_planar_by_dihedral ../lib/silico_rings.pm
Itp_delete_angle_parameters_atom ../lib/silico_gromacs.pm
Itp_delete_parameters_atom ../lib/silico_gromacs.pm
Itp_make_angle ../lib/silico_gromacs.pm
Itp_make_bond ../lib/silico_gromacs.pm
Itp_make_dihedral ../lib/silico_gromacs.pm
Itp_make_pair ../lib/silico_gromacs.pm
Label_aa_backbone ../lib/silico_prop.pm
Label_aa_chirality ../bin/gromacs_fix_chiral_impropers
Label_amides ../lib/silico_prop.pm
Label_amino_acids ../lib/silico_residue.pm
Label_dendrimer_residues ../bin/starmaker
Label_fg_alcohol ../lib/silico_prop.pm
Label_fg_benzhydrylamine ../lib/silico_prop.pm
Label_fg_carbanion ../lib/silico_prop.pm
Label_fg_carbon ../lib/silico_prop.pm
Label_fg_carbonyl ../lib/silico_prop.pm
Label_fg_halogen ../lib/silico_prop.pm
Label_fg_nitrogen ../lib/silico_prop.pm
Label_fg_oxygen ../lib/silico_prop.pm
Label_fg_phosphorous ../lib/silico_prop.pm
Label_fg_planar_carbon ../lib/silico_prop.pm
Label_fg_sulphur ../lib/silico_prop.pm
Label_fg_tfm ../lib/silico_prop.pm
Label_solvent ../lib/silico_prop.pm
Label_waters ../lib/silico_prop.pm
Lipophilicity_dipole ../lib/silico_rbox.pm
Mae_get_tok ../lib/silico_mmod.pm
Mae_ignore_block ../lib/silico_mmod.pm
Mae_parse_atoms ../lib/silico_mmod.pm
Mae_parse_block_header ../lib/silico_mmod.pm
Mae_parse_bonds ../lib/silico_mmod.pm
Mae_parse_ct_data ../lib/silico_mmod.pm
Mae_split_data ../lib/silico_mmod.pm
Magnitude ../lib/silico_geom.pm
Make_alternate_aa_forms ../lib/silico_residue.pm
Make_amides_trans ../lib/silico_geom.pm
Make_aromatic_bonds ../lib/silico_rings.pm
Make_atomset ../lib/silico_sybyl.pm
Make_atomset_colour ../lib/silico_sybyl.pm
Make_atomset_fg ../lib/silico_sybyl.pm
Make_atomset_formal_charge ../lib/silico_mol2.pm
Make_bins ../lib/silico_tabledata.pm
Make_dendrimer ../bin/starmaker
Make_flag ../lib/silico_io.pm
Make_gromacs_cell_from_pdb_cell_and_angles ../lib/silico_gromacs.pm
Make_molecule_copies ../lib/silico_rbox.pm
Make_smiles_string_from_list ../lib/silico_smiles.pm
Make_subset ../lib/silico_sybyl.pm
Make_types_summary ../lib/silico_control.pm
Make_vectors_connected ../lib/silico_hydrogens.pm
Makeboxmolecule ../lib/silico_geom.pm
Match_amino_acid ../lib/silico_residue.pm
Match_amino_acid2 ../lib/silico_residue.pm
Maximum ../lib/silico_statistics.pm
Maximum_minus_mean ../lib/silico_statistics.pm
Maximum_valences ../lib/silico_definitions.pm
Mean ../lib/silico_statistics.pm
Mean_minus_minimum ../lib/silico_statistics.pm
Median ../lib/silico_statistics.pm
Median_absolute_deviation ../lib/silico_statistics.pm
Memuse ../lib/silico_debug.pm
Merck_calculate_formal_charge ../lib/silico_merck.pm
Merck_charge_code_to_formal ../lib/silico_merck.pm
Merck_formal_to_charge_code ../lib/silico_merck.pm
Minimise_complex_with_sybyl_mmff ../lib/silico_sybyl.pm
Minimise_dendrimer ../bin/starmaker
Minimise_sybyl ../lib/silico_sybyl.pm
Minimise_with_sybyl_gasteiger_marsilli ../lib/silico_sybyl.pm
Minimise_with_sybyl_mmff ../lib/silico_sybyl.pm
Minimum ../lib/silico_statistics.pm
Mmod_anneal ../lib/silico_mmod.pm
Mmod_calc_energy ../lib/silico_mmod.pm
Mmod_csearch ../lib/silico_mmod.pm
Mmod_csearch_write_com ../lib/silico_mmod.pm
Mmod_logfile_normal_termination ../lib/silico_mmod.pm
Mmod_logfile_num_conf ../lib/silico_mmod.pm
Mmod_make_complex ../lib/silico_mmod.pm
Mmod_min ../lib/silico_mmod.pm
Mmod_min_h ../lib/silico_mmod.pm
Mmod_mult_min ../lib/silico_mmod.pm
Mmod_qikprop ../lib/silico_mmod.pm
Mmod_run ../lib/silico_mmod.pm
Mol2_atom_record ../lib/silico_mol2.pm
Mol2_bond_record ../lib/silico_mol2.pm
Mol2_centroid_record ../lib/silico_mol2.pm
Mol2_crystal_record ../lib/silico_mol2.pm
Mol2_fastsplit ../lib/silico_split.pm
Mol2_molecule_record ../lib/silico_mol2.pm
Mol2_process_comments ../lib/silico_mol2.pm
Mol2_set_formal_charges ../lib/silico_mol2.pm
Mol2_set_record ../lib/silico_mol2.pm
Mol2_substructure_record ../lib/silico_mol2.pm
Mol_add_atom ../lib/silico_molecules.pm
Mol_add_hydrogens ../lib/silico_hydrogens.pm
Mol_add_hydrogens_nocoords ../lib/silico_hydrogens.pm
Mol_add_lone_pairs ../lib/silico_hydrogens.pm
Mol_aromatic_smiles ../lib/silico_smiles.pm
Mol_assign_charge_groups_monte_carlo ../lib/silico_gromacs.pm
Mol_assign_gromos_angles ../lib/silico_gromacs.pm
Mol_assign_gromos_atomtypes ../lib/silico_gromacs.pm
Mol_assign_gromos_bonds ../lib/silico_gromacs.pm
Mol_assign_gromos_dihedrals ../lib/silico_gromacs.pm
Mol_bonded_interactions ../lib/silico_molecules.pm
Mol_calc_charge ../lib/silico_molecules.pm
Mol_calc_hcount ../lib/silico_hydrogens.pm
Mol_check ../lib/silico_check.pm
Mol_check_all ../lib/silico_check.pm
Mol_check_amides ../lib/silico_check.pm
Mol_check_aromatic_bonds ../lib/silico_check.pm
Mol_check_atom_overlap ../lib/silico_check.pm
Mol_check_bondlengths ../lib/silico_check.pm
Mol_check_bondorders ../lib/silico_check.pm
Mol_check_distorted_rings ../lib/silico_check.pm
Mol_check_elements ../lib/silico_check.pm
Mol_check_unit_cell ../lib/silico_molecules.pm
Mol_check_valences ../lib/silico_check.pm
Mol_copy_rec ../lib/silico_split.pm
Mol_copy_unit_cell ../lib/silico_molecules.pm
Mol_count_heavy_atoms ../lib/silico_prop.pm
Mol_count_residue_contacts ../lib/silico_sequence.pm
Mol_count_rot_bonds ../lib/silico_prop.pm
Mol_count_valence_electrons ../lib/silico_mopac.pm
Mol_delete_duplicate_atoms ../lib/silico_molecules.pm
Mol_find_all_angles ../lib/silico_molecules.pm
Mol_find_all_bonds ../lib/silico_molecules.pm
Mol_find_all_dihedrals ../lib/silico_molecules.pm
Mol_find_chiral_impropers ../lib/silico_molecules.pm
Mol_find_chiral_impropers_gms ../lib/silico_gromacs.pm
Mol_find_donors_acceptors ../lib/silico_hb.pm
Mol_find_double_bond_impropers_gms ../lib/silico_gromacs.pm
Mol_find_neighbouring_atoms ../lib/silico_prop.pm
Mol_find_planar_impropers ../lib/silico_molecules.pm
Mol_find_planar_impropers_gms ../lib/silico_gromacs.pm
Mol_fix_atom_names ../lib/silico_molecules.pm
Mol_fix_multiple_bonds_general ../lib/silico_molecules.pm
Mol_fix_sodiums ../bin/make_index
Mol_fragment ../lib/silico_fp.pm
Mol_fragment_and_path ../lib/silico_fp.pm
Mol_get_functional_group ../lib/silico_prop.pm
Mol_get_sequence ../lib/silico_sequence.pm
Mol_has_h ../lib/silico_hydrogens.pm
Mol_label_alpha_fg ../lib/silico_prop.pm
Mol_label_beta_fg ../lib/silico_prop.pm
Mol_label_functional_group ../lib/silico_prop.pm
Mol_label_heterocycles ../lib/silico_prop.pm
Mol_label_smiles_invariants ../lib/silico_smiles.pm
Mol_label_united_atom ../lib/silico_prop.pm
Mol_map_sequence ../lib/silico_sequence.pm
Mol_move_atoms_into_cell ../lib/silico_geom.pm
Mol_move_into_cell ../lib/silico_geom.pm
Mol_move_into_cell_using_cell_vectors ../lib/silico_gromacs.pm
Mol_partition_on_bond ../lib/silico_geom.pm
Mol_partition_on_bond2 ../lib/silico_geom.pm
Mol_path_to_fragments ../lib/silico_fp.pm
Mol_rama ../lib/silico_rama.pm
Mol_rama_angles ../lib/silico_rama.pm
Mol_read_error ../lib/silico_io.pm
Mol_rename_atoms ../lib/silico_molecules.pm
Mol_renumber_residues ../bin/make_index
Mol_renumber_residues ../bin/mol_combine
Mol_renumber_substructures ../lib/silico_molecules.pm
Mol_rescale_bonds ../lib/silico_geom.pm
Mol_rotate_euler{ ../lib/silico_geom.pm
Mol_score_hybridisation ../lib/silico_molecules.pm
Mol_sdf_stereo ../lib/silico_sdf.pm
Mol_set_source_data ../lib/silico_io.pm
Mol_smiles_string ../lib/silico_smiles.pm
Mol_sort_smiles ../lib/silico_smiles.pm
Mol_tanimoto ../lib/silico_fp.pm
Mol_transfer_coordinates ../lib/silico_molecules.pm
Mol_type_mmod ../lib/silico_mmod.pm
Mol_type_sybyl ../lib/silico_mol2.pm
Molecule_bin_atoms ../lib/silico_geom.pm
Molecule_centre ../lib/silico_geom.pm
Molecule_centre_of_mass ../lib/silico_geom.pm
Molecule_check_and_fix_connectivity ../lib/silico_molecules.pm
Molecule_check_cell ../lib/silico_geom.pm
Molecule_check_join_points ../bin/starmaker
Molecule_connect_pdb_atoms_by_name ../lib/silico_pdb.pm
Molecule_copy_coordinates ../lib/silico_molecules.pm
Molecule_copy_header ../lib/silico_molecules.pm
Molecule_copy_noatoms ../lib/silico_molecules.pm
Molecule_count_numbonds ../lib/silico_molecules.pm
Molecule_delete_alternate_atoms ../lib/silico_pdb.pm
Molecule_delete_atom ../lib/silico_molecules.pm
Molecule_delete_atoms ../lib/silico_molecules.pm
Molecule_delete_dummy ../lib/silico_molecules.pm
Molecule_delete_h ../lib/silico_hydrogens.pm
Molecule_delete_h_resname ../bin/mol_del_h
Molecule_delete_nonpolar_h ../lib/silico_hydrogens.pm
Molecule_delete_polar_h ../lib/silico_hydrogens.pm
Molecule_dimensions ../lib/silico_geom.pm
Molecule_find_planar_atoms ../lib/silico_rings.pm
Molecule_find_planar_atoms_bondorders ../lib/silico_rings.pm
Molecule_find_planar_atoms_geom ../lib/silico_rings.pm
Molecule_find_rings ../lib/silico_rings.pm
Molecule_fix_and_get_residues ../lib/silico_residue.pm
Molecule_fix_sybyl_substructures ../lib/silico_mol2.pm
Molecule_formal_charge ../lib/silico_prop.pm
Molecule_formula ../lib/silico_prop.pm
Molecule_generate_bondorders ../lib/silico_molecules.pm
Molecule_generate_bonds ../lib/silico_molecules.pm
Molecule_get_chains ../lib/silico_molecules.pm
Molecule_get_residues ../lib/silico_residue.pm
Molecule_get_residues_hash ../lib/silico_residue.pm
Molecule_label_submols ../lib/silico_split.pm
Molecule_make_residues ../lib/silico_residue.pm
Molecule_mw ../lib/silico_prop.pm
Molecule_pack ../lib/silico_molecules.pm
Molecule_path ../lib/silico_fp.pm
Molecule_pdb_rename_backbone ../lib/silico_pdb.pm
Molecule_pdb_rename_h ../lib/silico_pdb.pm
Molecule_pdb_rename_h_dataread ../lib/silico_pdb.pm
Molecule_printout ../lib/silico_debug.pm
Molecule_random_move_cartesian ../lib/silico_geom.pm
Molecule_renumber ../lib/silico_molecules.pm
Molecule_renumber2 ../lib/silico_molecules.pm
Molecule_reorder ../lib/silico_molecules.pm
Molecule_rot_angle_x ../lib/silico_geom.pm
Molecule_rot_angle_y ../lib/silico_geom.pm
Molecule_rot_angle_z ../lib/silico_geom.pm
Molecule_rotate ../lib/silico_geom.pm
Molecule_rotate_axis ../lib/silico_geom.pm
Molecule_solvate ../lib/silico_solvate.pm
Molecule_split ../lib/silico_split.pm
Molecule_split_keeping_largest_mol ../lib/silico_split.pm
Molecule_trans_to_centre ../lib/silico_geom.pm
Molecule_translate ../lib/silico_geom.pm
Mols ../lib/silico_molecules.pm
Name_pdb_molecule ../lib/silico_pdb.pm
New_h ../lib/silico_hydrogens.pm
New_table_delimited ../lib/silico_tabledata.pm
Number_range ../lib/silico_data.pm
Open_file ../lib/silico_io.pm
Open_molfile ../lib/silico_io.pm
Optimise_geometry ../bin/starmaker
Origins ../lib/silico_rbox.pm
Orthogonal_least_squares_plane_atoms ../lib/silico_geom.pm
Overwrite_check ../lib/silico_io.pm
Pack_gromacs_angles ../lib/silico_gromacs.pm
Pack_molecules ../lib/silico_rbox.pm
Parse_amino_acids_smiles ../lib/silico_residue.pm
Parse_atom_specifier ../lib/silico_molecules.pm
Parse_comma_separated_numbers ../lib/silico_data.pm
Parse_pdb_space_group ../lib/silico_pdb.pm
Parse_residue_dictionary ../lib/silico_residue.pm
Parse_smiles ../lib/silico_smiles.pm
Pdb_fastsplit ../lib/silico_split.pm
Pdb_format_atom_name ../lib/silico_pdb.pm
Pdb_format_subname ../lib/silico_pdb.pm
Pdb_get_ligands ../lib/silico_pdb.pm
Pdb_get_prot ../lib/silico_pdb.pm
Pdb_molecule_sort_atoms ../lib/silico_pdb.pm
Pdb_read_errors ../lib/silico_pdb.pm
Pdb_rewind ../lib/silico_pdb.pm
Plot_amides ../bin/mol_amides
Pmmod ../lib/silico_mmod.pm
Primes ../lib/silico_definitions.pm
Print_finished_message ../lib/silico_control.pm
Print_flags ../lib/silico_io.pm
Print_timing_message ../lib/silico_control.pm
Print_title ../lib/silico_control.pm
Printbox ../lib/silico_pdb.pm
Printdoc ../lib/silico_doc.pm
Printgroup ../lib/silico_gromacs.pm
Printit ../lib/silico_rbox.pm
Prompt ../lib/silico_control.pm
Prune_family_tree ../lib/silico_prop.pm
Quaternion ../lib/silico_geom.pm
Quiet ../lib/silico_io.pm
Rad_to_deg ../lib/silico_geom.pm
Ramaplot ../lib/silico_rama.pm
Ramaplot_by_mol_open ../lib/silico_rama.pm
Ramaplot_open ../lib/silico_rama.pm
Randomchar ../bin/mol_characterise
Randomise_and_test_molecule_position ../bin/bilayer_builder
Range ../lib/silico_statistics.pm
Rank_by_neighbouring_primes ../lib/silico_smiles.pm
Rank_molecules ../bin/dock_sort
Rank_smiles_set ../lib/silico_smiles.pm
Read_atom_specifier_file ../lib/silico_molecules.pm
Read_clustal ../lib/silico_sequence.pm
Read_divcon_cart ../lib/silico_mopac.pm
Read_doc ../lib/silico_doc.pm
Read_doc_subroutine ../lib/silico_doc.pm
Read_fasta ../lib/silico_sequence.pm
Read_function_line ../bin/rdf
Read_gamess_cart ../lib/silico_gamess.pm
Read_gaussian_cart ../lib/silico_gaussian.pm
Read_gromacs_gro ../lib/silico_gromacs.pm
Read_gromacs_gro_single ../lib/silico_gromacs.pm
Read_gromacs_indexfile ../lib/silico_gromacs.pm
Read_gromacs_itp ../lib/silico_gromacs.pm
Read_gromacs_trr ../lib/silico_gromacs.pm
Read_maestro ../lib/silico_mmod.pm
Read_maestro_single ../lib/silico_mmod.pm
Read_merck ../lib/silico_merck.pm
Read_mmod ../lib/silico_mmod.pm
Read_mmod_mmo ../lib/silico_mmod.pm
Read_mol2 ../lib/silico_mol2.pm
Read_mol2_single ../lib/silico_mol2.pm
Read_mol_any ../lib/silico_io.pm
Read_mol_single ../lib/silico_io.pm
Read_mopac_cart ../lib/silico_mopac.pm
Read_packings ../bin/micelle
Read_pdb ../lib/silico_pdb.pm
Read_pdb_atom ../lib/silico_pdb.pm
Read_pdb_atom_fast ../lib/silico_pdb.pm
Read_pdb_compnd ../lib/silico_pdb.pm
Read_pdb_conect ../lib/silico_pdb.pm
Read_pdb_connected ../lib/silico_pdb.pm
Read_pdb_cryst ../lib/silico_pdb.pm
Read_pdb_expdta ../lib/silico_pdb.pm
Read_pdb_fast ../lib/silico_pdb.pm
Read_pdb_header_line ../lib/silico_pdb.pm
Read_pdb_hetnam ../lib/silico_pdb.pm
Read_pdb_jrnl ../lib/silico_pdb.pm
Read_pdb_molecule ../lib/silico_pdb.pm
Read_pdb_remark ../lib/silico_pdb.pm
Read_pdb_single ../lib/silico_pdb.pm
Read_pdb_title ../lib/silico_pdb.pm
Read_pdb_user ../lib/silico_pdb.pm
Read_rdf ../lib/silico_sdf.pm
Read_rdf_input_file ../bin/rdf
Read_sdf ../lib/silico_sdf.pm
Read_sdf_atoms_bonds ../lib/silico_sdf.pm
Read_sdf_single ../lib/silico_sdf.pm
Read_seq_any ../lib/silico_io.pm
Read_sleuth_abstract ../lib/silico_tinker.pm
Read_smiles ../lib/silico_smiles.pm
Read_smiles_single ../lib/silico_smiles.pm
Read_table_delimited ../lib/silico_tabledata.pm
Read_tcoffee_score ../lib/silico_sequence.pm
Read_tinker_xyz ../lib/silico_tinker.pm
Record_best_coords ../lib/silico_geom.pm
Remove_aromatic_bondorders ../lib/silico_mol2.pm
Remove_duplicates ../lib/silico_data.pm
Remove_option ../lib/silico_io.pm
Reos_filter ../lib/silico_prop.pm
Rescue_unbonded_hydrogens ../lib/silico_molecules.pm
Reset_all_groups ../lib/silico_gromacs.pm
Residue_printout ../lib/silico_sequence.pm
Residues ../lib/silico_sequence.pm
Revert_to_best_coords ../lib/silico_geom.pm
Rms ../lib/silico_geom.pm
Rms_atomlist ../lib/silico_geom.pm
Rms_fp ../lib/silico_fp.pm
Rotate_torsion_angle ../lib/silico_geom.pm
Rotate_torsion_angle2 ../lib/silico_geom.pm
Run_gnuplot ../bin/dock_sort
Run_gnuplot1 ../lib/silico_gnuplot.pm
Run_gnuplot2 ../lib/silico_gnuplot.pm
Run_mopac ../lib/silico_mopac.pm
Same_substructure ../lib/silico_residue.pm
Sanitise_hydrogens ../lib/silico_hydrogens.pm
Sanitise_segid_chain ../bin/find_amino_acids
Scale_vector ../lib/silico_geom.pm
Score_ring_het ../lib/silico_rings.pm
Score_total_charge ../lib/silico_gromacs.pm
Sdf_calc_atom_parity_error ../lib/silico_sdf.pm
Sdf_check_chiral_parity ../lib/silico_sdf.pm
Sdf_data_to_atom ../lib/silico_sdf.pm
Sdf_data_to_table_delimited ../lib/silico_tabledata.pm
Sdf_error_mol ../lib/silico_sdf.pm
Sdf_fastsplit ../lib/silico_split.pm
Select_residues ../bin/find_aggregate
Select_residues ../bin/find_aggregate.x
Select_rotate_bond ../lib/silico_geom.pm
Seq_fix_residue_numbers ../lib/silico_sequence.pm
Seq_label_by_field ../lib/silico_sequence.pm
Seq_label_by_homology ../lib/silico_sequence.pm
Seq_label_indels ../lib/silico_sequence.pm
Seq_mark_start_end ../lib/silico_sequence.pm
Seq_merge ../lib/silico_sequence.pm
Seq_printout ../lib/silico_sequence.pm
Seq_printout_header ../lib/silico_sequence.pm
Seq_printout_one ../lib/silico_sequence.pm
Seq_printout_three ../lib/silico_sequence.pm
Seq_read_error ../lib/silico_io.pm
Seq_residue_fields ../lib/silico_sequence.pm
Seq_string ../lib/silico_sequence.pm
Sequences_STD ../lib/silico_sequence.pm
Sequences_STD_nonSTD ../lib/silico_sequence.pm
Sequences_clustal_homology ../lib/silico_sequence.pm
Sequences_consensus ../lib/silico_sequence.pm
Sequences_get_column ../lib/silico_sequence.pm
Sequences_length ../lib/silico_sequence.pm
Sequences_nonSTD ../lib/silico_sequence.pm
Sequences_printout ../lib/silico_sequence.pm
Sequences_read_mols ../lib/silico_sequence.pm
Sequences_write_mols ../lib/silico_sequence.pm
Set_acidbase ../lib/silico_hydrogens.pm
Set_debg17 ../lib/silico_mmod.pm
Set_default_oappend ../lib/silico_io.pm
Set_flag ../lib/silico_io.pm
Set_lflag ../lib/silico_io.pm
Set_sflag ../lib/silico_io.pm
Set_torsion_angle ../lib/silico_geom.pm
Setup_flags ../lib/silico_io.pm
Setup_fp_flags ../lib/silico_fp.pm
Setup_mopac_keywords ../lib/silico_mopac.pm
Shared_rings ../lib/silico_rings.pm
Silico_msg ../lib/silico_control.pm
Silico_putline ../lib/silico_io.pm
Silico_readline ../lib/silico_io.pm
Silico_setup ../bin/backbone
Silico_setup ../bin/bilayer_builder
Silico_setup ../bin/cexplot
Silico_setup ../bin/checkbox
Silico_setup ../bin/clip
Silico_setup ../bin/cluster
Silico_setup ../bin/cluster_fp
Silico_setup ../bin/dock_sort
Silico_setup ../bin/ens_randomise_order
Silico_setup ../bin/ens_sort
Silico_setup ../bin/extract_lig_prot
Silico_setup ../bin/file_rename
Silico_setup ../bin/find_aggregate
Silico_setup ../bin/find_aggregate.x
Silico_setup ../bin/find_amino_acids
Silico_setup ../bin/find_clash
Silico_setup ../bin/find_close_atoms
Silico_setup ../bin/find_close_water
Silico_setup ../bin/find_groups
Silico_setup ../bin/find_rings
Silico_setup ../bin/find_similar
Silico_setup ../bin/fix_cis_amides
Silico_setup ../bin/flatten
Silico_setup ../bin/formatdoc
Silico_setup ../bin/gromacs_fix_chiral_impropers
Silico_setup ../bin/make_box
Silico_setup ../bin/make_index
Silico_setup ../bin/max_similarity_fp
Silico_setup ../bin/micelle
Silico_setup ../bin/mmod_csearch
Silico_setup ../bin/mmod_min
Silico_setup ../bin/mmod_qikprop
Silico_setup ../bin/mol2seq
Silico_setup ../bin/mol2split
Silico_setup ../bin/mol_add_h
Silico_setup ../bin/mol_add_lp
Silico_setup ../bin/mol_add_segid
Silico_setup ../bin/mol_amides
Silico_setup ../bin/mol_boltz_pop
Silico_setup ../bin/mol_centre
Silico_setup ../bin/mol_characterise
Silico_setup ../bin/mol_charge
Silico_setup ../bin/mol_check
Silico_setup ../bin/mol_combine
Silico_setup ../bin/mol_del_atoms
Silico_setup ../bin/mol_del_dummy
Silico_setup ../bin/mol_del_excess_solv
Silico_setup ../bin/mol_del_h
Silico_setup ../bin/mol_del_solvent
Silico_setup ../bin/mol_divide
Silico_setup ../bin/mol_ensemble_average
Silico_setup ../bin/mol_extents
Silico_setup ../bin/mol_filter
Silico_setup ../bin/mol_fp
Silico_setup ../bin/mol_hydrogen_bonds
Silico_setup ../bin/mol_label_fg
Silico_setup ../bin/mol_mw
Silico_setup ../bin/mol_rama
Silico_setup ../bin/mol_rename
Silico_setup ../bin/mol_renumber
Silico_setup ../bin/mol_rescale_bonds
Silico_setup ../bin/mol_rot
Silico_setup ../bin/mol_rot_bond
Silico_setup ../bin/mol_rotrans
Silico_setup ../bin/mol_segment
Silico_setup ../bin/mol_smiles
Silico_setup ../bin/mol_solvate
Silico_setup ../bin/mol_sort
Silico_setup ../bin/mol_sort_fp
Silico_setup ../bin/mol_split
Silico_setup ../bin/mol_split_segid
Silico_setup ../bin/mol_transfer_coords
Silico_setup ../bin/mol_unsplit
Silico_setup ../bin/mol_wrap_cell
Silico_setup ../bin/n_dist
Silico_setup ../bin/pdb_chain_split
Silico_setup ../bin/pdb_rename_hydrogens
Silico_setup ../bin/pdbsplit
Silico_setup ../bin/plot_dihedrals
Silico_setup ../bin/radius_of_gyration
Silico_setup ../bin/random_box
Silico_setup ../bin/randomise
Silico_setup ../bin/randomise_conformation
Silico_setup ../bin/rdf
Silico_setup ../bin/renumber_residues
Silico_setup ../bin/residue_distance
Silico_setup ../bin/residue_rename
Silico_setup ../bin/rms
Silico_setup ../bin/rms_pairs
Silico_setup ../bin/scale
Silico_setup ../bin/sdfsplit
Silico_setup ../bin/similarity_fp
Silico_setup ../bin/slurp
Silico_setup ../bin/smooth
Silico_setup ../bin/starmaker
Silico_setup ../bin/tabulate
Silico_setup ../bin/vesicle_builder
Silico_setup ../bin/water_to_ion
Silico_setup ../bin/write_g03zmat
Silico_setup ../bin/write_gro
Silico_setup ../bin/write_itp
Silico_setup ../bin/write_merck
Silico_setup ../bin/write_mmod
Silico_setup ../bin/write_mol
Silico_setup ../bin/write_mol2
Silico_setup ../bin/write_mopac
Silico_setup ../bin/write_pdb
Silico_setup ../bin/write_sdf
Silico_setup ../bin/write_seq
Silico_setup ../bin/write_tab
Silico_setup ../bin/write_tinker
Silico_vdw_radii ../lib/silico_definitions.pm
Simple_atomtype ../lib/silico_prop.pm
Sleep_or_stop ../lib/silico_control.pm
Slurp_file ../lib/silico_io.pm
Smiles_invariant ../lib/silico_smiles.pm
Smiles_list_recursive ../lib/silico_smiles.pm
Smooth_delimited ../lib/silico_tabledata.pm
Sort_atoms_label ../bin/water_to_ion
Sort_itp_by_atom_number ../bin/write_itp
Sort_itp_by_smiles ../bin/write_itp
Space_group_pdb_to_silico ../lib/silico_pdb.pm
Space_group_silico_to_pdb ../lib/silico_pdb.pm
Splitline ../lib/silico_data.pm
Standard_bond_lengths ../lib/silico_definitions.pm
Standard_deviation_bias_corrected ../lib/silico_statistics.pm
Standard_deviation_bias_uncorrected ../lib/silico_statistics.pm
Standardise_boolean ../lib/silico_data.pm
Standardise_ring ../lib/silico_rings.pm
Standardise_ring_by_heteroatoms ../lib/silico_rings.pm
Subname ../lib/silico_control.pm
Superimpose_sybyl ../lib/silico_sybyl.pm
Superimpose_sybyl_multi ../lib/silico_sybyl.pm
Sybyl_align ../lib/silico_sybyl.pm
Sybyl_sort ../lib/silico_mol2.pm
Sybyl_spectrum ../lib/silico_sybyl.pm
Table_delimited_addcolumn ../lib/silico_tabledata.pm
Table_delimited_getrow ../lib/silico_tabledata.pm
Table_delimited_getval ../lib/silico_tabledata.pm
Table_delimited_inc_row ../lib/silico_tabledata.pm
Tag_markup ../lib/silico_doc.pm
Tan_substructure_frac ../lib/silico_fp.pm
Tanimoto ../lib/silico_fp.pm
Tanimoto_freq ../lib/silico_fp.pm
Tanimoto_matrix ../lib/silico_fp.pm
Test_all_shapes ../lib/silico_rbox.pm
Test_cylinder_arb ../lib/silico_rbox.pm
Test_energy_molcount ../lib/silico_mmod.pm
Test_plane ../lib/silico_rbox.pm
Tinker_space_group ../lib/silico_tinker.pm
Traverse ../lib/silico_rings.pm
Two_bond_angle ../lib/silico_geom.pm
Two_bond_normal ../lib/silico_geom.pm
Unit_normal_vector ../lib/silico_geom.pm
Unit_vector ../lib/silico_geom.pm
Valence ../lib/silico_molecules.pm
Variance_bias_corrected ../lib/silico_statistics.pm
Variance_bias_uncorrected ../lib/silico_statistics.pm
Vector ../lib/silico_geom.pm
Vector_add ../lib/silico_geom.pm
Veryquiet ../lib/silico_io.pm
Wraphtml ../lib/silico_doc.pm
Write_binfile ../lib/silico_tabledata.pm
Write_clustal ../lib/silico_sequence.pm
Write_divcon_cart ../lib/silico_mopac.pm
Write_fasta ../lib/silico_sequence.pm
Write_gaussian_cart ../lib/silico_gaussian.pm
Write_gaussian_zmatrix ../lib/silico_gaussian.pm
Write_gromacs_gro ../lib/silico_gromacs.pm
Write_gromacs_gro_molecule ../lib/silico_gromacs.pm
Write_gromacs_index_file ../lib/silico_gromacs.pm
Write_gromacs_itp ../lib/silico_gromacs.pm
Write_gromacs_itp_mol ../lib/silico_gromacs.pm
Write_mae ../lib/silico_mmod.pm
Write_mae_molecule ../lib/silico_mmod.pm
Write_maegz ../lib/silico_mmod.pm
Write_merck ../lib/silico_merck.pm
Write_merck_mol ../lib/silico_merck.pm
Write_mmod ../lib/silico_mmod.pm
Write_mmod_com_mdyn_stage ../lib/silico_mmod.pm
Write_mmod_com_mini_stage ../lib/silico_mmod.pm
Write_mmod_com_setup ../lib/silico_mmod.pm
Write_mmod_com_write_stage ../lib/silico_mmod.pm
Write_mmod_sbc ../lib/silico_mmod.pm
Write_mol2 ../lib/silico_mol2.pm
Write_mol2_atoms ../lib/silico_mol2.pm
Write_mol2_bonds ../lib/silico_mol2.pm
Write_mol2_comments ../lib/silico_mol2.pm
Write_mol2_crystal ../lib/silico_mol2.pm
Write_mol2_molecule ../lib/silico_mol2.pm
Write_mol2_sdfdata ../lib/silico_mol2.pm
Write_mol2_set ../lib/silico_mol2.pm
Write_mol2_substructures ../lib/silico_mol2.pm
Write_mol_any ../lib/silico_io.pm
Write_mol_any_check ../lib/silico_io.pm
Write_mol_single ../lib/silico_io.pm
Write_mopac_cart ../lib/silico_mopac.pm
Write_pdb ../lib/silico_pdb.pm
Write_pdb_cryst ../lib/silico_pdb.pm
Write_pdb_molecule ../lib/silico_pdb.pm
Write_pdb_sdfdata ../lib/silico_pdb.pm
Write_pir ../lib/silico_sequence.pm
Write_rama_structure ../lib/silico_rama.pm
Write_rama_structure_by_mol ../lib/silico_rama.pm
Write_sdf ../lib/silico_sdf.pm
Write_sdf_atoms_bonds ../lib/silico_sdf.pm
Write_seq_any ../lib/silico_io.pm
Write_seq_any_check ../lib/silico_io.pm
Write_smiles ../lib/silico_smiles.pm
Write_starmaker_comment ../bin/starmaker
Write_table_delimited ../lib/silico_tabledata.pm
Write_tinker_prm ../lib/silico_tinker.pm
Write_tinker_prm_mol_dihedrals_oplsaa ../lib/silico_tinker.pm
Write_tinker_prm_oplsaa ../lib/silico_tinker.pm
Write_tinker_xyz ../lib/silico_tinker.pm
Subroutine descriptions
=======================
Aa ../lib/silico_sequence.pm
--------------------------------------------------------
Return one letter code of the first amino acid in a sequence record
Requires: Silico residue record
Returns: one-letter code
Aa_one_letter ../lib/silico_sequence.pm
--------------------------------------------------------
Return the one letter AA code from three letter
Returns 'X' if unknown
Requires: string
Returns: string
Aa_three_letter ../lib/silico_sequence.pm
--------------------------------------------------------
Return the three letter AA code from one letter code
Returns 'UNK' if unknown
Requires: string
Returns: string
Acceptable_neutral_valences ../lib/silico_definitions.pm
-----------------------------------------------------------
Determines, for each element, a list of acceptable neutral valences. The ANV
is like an oxidation state, but it doesn't take into account atom
electronegativities.
Requires: nothing (creation of package global variable)
Returns: nothing (creation of package global variable)
Add_bondorders_to_atom_tree ../lib/silico_prop.pm
----------------------------------------------------
Add bondorders to the branches in an atom tree.
Requires: molecule, atom tree
Returns: modified atom tree
Add_charge_with_sybyl ../lib/silico_sybyl.pm
-----------------------------------------------------
Add Gasteiger-Huckel charges to a molecule with Sybyl
The location of the sybyl execuatble must be in $Silico::sybyl_exe
Temporary files are written to $Silico::temp_dir or to current working
directory if $Silico::debug is set.
Requires: molecule, charge_type (default Gasteiger-Marsilli), flag to
add hydrogens
Returns: molecule or undef if Sybyl failed to write out a structure
Add_layer ../bin/starmaker
-----------------------------------------------
Add a layer to a dendrimer
Add_monomer ../bin/starmaker
-----------------------------------------------
Adds a single monomer to one of the available connection points on a
dendrimer.
Requires: existing dendrimeric framework (mol1), monomer to add (mol2),
join point on dendrimer (j1), join point on monomer (j2),
residue number
Returns: new dendrimer with monomer added
Add_option ../lib/silico_io.pm
--------------------------------------------------
Add a text string to the list of command-line options
Requires: Option to add (string), list of existing options (string)
Returns: Modifies string provided to function
Add_part_of_layer ../bin/starmaker
-----------------------------------------------
Align_bonds ../bin/starmaker
-----------------------------------------------
Align two bonds
Overlaps p1 and j2, p2 and j1 (approx)
Requires: mol1, mol2, a1, a2, a3, a4, bond length
Returns: nothing
Amino_acid_and_nucleotide_base_codes ../lib/silico_definitions.pm
-----------------------------------------------------------------
Prepare lists of three-letter and one-letter codes for amino acids and
nucleotide bases. Also prepare hashes mapping the three-letter and one-letter
codes to each other.
Requires: nothing
Returns: nothing (sets package global arrays and hashes)
Angle_between_vectors ../lib/silico_geom.pm
----------------------------------------------------
Angle between two vectors (radians)
Requires: vector1, vector2
Returns: angle
Atom_add_1h ../lib/silico_hydrogens.pm
---------------------------------------------------------
Add one hydrogen to an atom
This code needs a good clean up!
This code can add hydrogens with a steric clash. e.g biguanides
Atom_add_2h ../lib/silico_hydrogens.pm
---------------------------------------------------------
Add two hydrogens to an atom
If atom has only one connected atom hydrogens are added in the plane generated
from the connected atom
Atom_add_3h ../lib/silico_hydrogens.pm
---------------------------------------------------------
Add three hydrogens to an atom
Atom_add_h ../lib/silico_hydrogens.pm
---------------------------------------------------------
Add specified number of hydrogens to an atom
Requires: atom, molecule, bondlength, number of hydrogens to add (in
addition to any existing atoms)
Atom_calc_bin ../lib/silico_geom.pm
----------------------------------------------------
Determine which bin an atom belongs to
Requires: atom, binsize, number of bins in each dimension
Returns: bin (array);
Atom_check_valence ../lib/silico_check.pm
-----------------------------------------------------
Simple check that atom valences are OK
Requires: atom, molecule, (optional: flag to denote hydrogens not
present)
Returns: -1 if error, otherwise returns valence
Atom_colour ../lib/silico_sybyl.pm
-----------------------------------------------------
Colour an atom.
Compatible with Mol2 files
Requres: atom, colour
Atom_cross_prod ../lib/silico_hydrogens.pm
---------------------------------------------------------
Calculate the normalised cross product of vectors defined by $atom0 ->atom1
and atom0 -> atom2; Warning: this contains a horrible fudge if two atoms
overlap or all three atoms are in a straight line
Requires: atom0, atom1, atom2
Returns: vector x, y, z A1 ---- A0 | | A2
Atom_data_to_sdf ../lib/silico_sdf.pm
---------------------------------------------------
Copy data to SDF_DATA from atom records
Atom_formal_charge ../lib/silico_prop.pm
----------------------------------------------------
Calculate the formal charge on an atom.
Uses the acceptable oxidation states of that atom, and whether that element is
more intrinsically likely to be a cation or an anion. Assumes that all
valences are filled with hydrogens if 'noh' flag is set
Requires: atom, molecule, optional flag to denote missing hydrogens,
flag to print charged atoms
Returns: formal charge
Atom_guess_element ../lib/silico_molecules.pm
---------------------------------------------------------
Determine the atom element using available information
Requires: atom, 'quiet' flag, flag to force preference for 'CHONSP'
elements (ie H will be chosen over Hg)
Returns: element and element number. Also sets $atom->{ELEMENT} and
$atom->{ELEMENT_NUM}
Atom_guess_element_mol2 ../lib/silico_mol2.pm
----------------------------------------------------
Guess the element of an atom from a mol2 file.
Uses the Sybyl atom type to generate the atom element.
Requires: atom.
Returns: Atomic symbol, atomic number.
Atom_keys ../lib/silico_gromacs.pm
-------------------------------------------------------
Atom_lone_pairs ../lib/silico_prop.pm
----------------------------------------------------
Calculate the number of lone pairs present on an atom.
Requires: atom
Returns: number of lone pairs
Atom_norm_vector ../lib/silico_hydrogens.pm
---------------------------------------------------------
Return a unit vector atom1 -> atom2 for two atoms
Atom_number_sort_function ../bin/write_itp
-----------------------------------------------
Sort function for sort_itp_by_atom_number()
Atom_oxidation_state ../lib/silico_prop.pm
----------------------------------------------------
Calculate the oxidation state of an atom, not including a formal-charge
component.
Requires: atom, molecule
Returns: number
Atom_path_traverse ../lib/silico_fp.pm
--------------------------------------------------
Recursive subroutine to enumerate LINEAR atom paths starting from a particular
atom
Requires: molecule, pointer to array containing starting atom number,
path list (pointer to empty array to start)
Returns: nothing
Sets: path_list to an array of atom paths
Atom_path_traverse_branched ../lib/silico_fp.pm
--------------------------------------------------
Recursive subroutine to enumerate BRANCHED atom paths starting from a
particular atom
Requires: molecule, pointer to array containing starting atom number,
path list (pointer to empty array to start)
Returns: nothing
Sets: path_list to an array of atom paths
Atom_printout ../lib/silico_debug.pm
-----------------------------------------------------
Print out a formated atom record for debugging purposes
Reauires: atom, filehandle (optional)
Atom_score_hybridisation ../lib/silico_molecules.pm
---------------------------------------------------------
Attempt to determine the hybridisation scheme of an atom.
Assumption is that all hydrogens are present.
Requires: atom, molecule
Returns: nothing
Atom_smiles_label ../lib/silico_smiles.pm
------------------------------------------------------
Provide an atom with additional data in the SMILES string (square brackets,
attached hydrogen atoms, formal charge, etc.)
Requires: atom
Returns: nothing
Atom_specifier_setup ../lib/silico_molecules.pm
---------------------------------------------------------
Set up flags for simple atom specifiers
Requires: nothing
Returns: list of atom specifier names, list of specifiers;
Atomic_elements ../lib/silico_definitions.pm
-----------------------------------------------------------
Prepare an array atomic element symbols, with the offset corresponding to the
atomic number (dummy atom is 0). Also prepare a hash with the element name as
the key and the element number as the value
Requires: nothing
Returns: nothing (sets package global arrays and hashes)
Bin_values ../lib/silico_tabledata.pm
---------------------------------------------------------
Bin values into 'bins' data structure
Bin minimum and maximum values should be set in $bins->{$key}{MINVAL} and
$bins->{$key}{MINVAL}
Counts of overflows and underflows are kept in $bins->{$key}{OVERFLOW} and
$bins->{$key}{UNDERLFLOW}
Non-numeric data is not counted
Requires: data value, key, pointer to bins data structure
Returns: nothing
Bl ../lib/silico_molecules.pm
---------------------------------------------------------
Return an expected bond length based on an input string. Single bonds A-B,
double A=B, triple A%B
Requires: String
Returns: number, or the undefined value if no bond length
Bndangle ../lib/silico_geom.pm
----------------------------------------------------
Find the angle defined by three atoms
Requires: atom1, atom2, atom3.
Returns: angle in degrees.
Bond_create ../lib/silico_molecules.pm
---------------------------------------------------------
Create a bond between two atoms (takes atom offsets numbered from ZERO as
arguments).
Creates a bond in both directions. ie makes connections atom2->atom1 and
atom1->atom2
Silico internal bond types:
1 single, 2 double, 3 triple, 4 aromatic,
5 single or double, 6 single or aromatic, 7 double or aromatic,
8 any (undefined), 0 zero order.
Requires: molecule, atomnum1, atomnum2, bondorder, flag to not increment
mol2->NUMBONDS.
Bond_create_atom ../lib/silico_molecules.pm
---------------------------------------------------------
Create a bond between two atoms (takes atoms as arguments).
See bond_create
Bond_delete ../lib/silico_molecules.pm
---------------------------------------------------------
Delete a bond between two atoms.
Requires: molecule, atomnum1, atomnum2
Returns: nothing
Bond_delete_atom ../lib/silico_molecules.pm
---------------------------------------------------------
Delete a bond between two atoms.
Same as bond_delete but using atoms instead of atom numbers. this version is
to be preferred
Requires: molecule, atom1, atom2
Returns: nothing
Bond_modify_order ../lib/silico_molecules.pm
---------------------------------------------------------
Modify the order of an existing bond Note: this requires that atom->{NUM} is
numbered correctly
Modifies bond in both directions.
Silico internal bond types: 1 single, 2 double, 3 triple, 4 aromatic, 5 single
or double, 6 single or aromatic, 7 double or aromatic, 8 any (undefined), 0
zero order.
Requires: Molecule, atom 1, atom 2, bondorder (default 1)
Bond_modify_order_check ../lib/silico_molecules.pm
---------------------------------------------------------
Modify the order of a bond but check that we are not breaking bonding rules
before doing it
Calls bond_modify_order
Requires: Molecule, atom 1, atom 2, order
Returns: 1 if bond was modified 0 if not
Bond_vector ../lib/silico_geom.pm
----------------------------------------------------
Calculates a vector from two atoms.
Requires: atom1 (origin), atom2 (vector end)
Returns: vector as an array
Bonded ../lib/silico_molecules.pm
---------------------------------------------------------
Count the number of bonds to an atom and the number of bonded C, H, O, N atoms
Dummy atoms are not included
Requires: atom, molecule
Returns: hash containing the element (key) and element count (value) of
all connected atoms. The hash also contains the key value
NOT_H. The values are zeroed for C, H, N, O, P and NOT_H.
Other elements may return 'undef'
Bondlengths ../lib/silico_molecules.pm
---------------------------------------------------------
Routine that returns a hash of maximum reasonable bondlengths for common atom
pairs
This routine is used by the various 'connect_atom' routines. For single bonds,
the bond lengths are maximum allowable lengths and are generally 10% longer
than standard bond lengths. For double and triple bonds they are 5% larger.
Note. Some bondlengths are longer than the maximum bondlength in the connect
routine.
Requires: nothing
Returns: Hash maximum bondlengths. Keys have the form El_El where 'El'
is the atom element
Bondlengths_2 ../lib/silico_molecules.pm
---------------------------------------------------------
Routine that returns a hash of squared bondlengths. See bondlengths.
Requires: nothing
Returns: Hash maximum bondlengths squared. Keys have the form El_El
where 'El' is the atom element
Branchsort ../lib/silico_smiles.pm
------------------------------------------------------
Sort connected atoms by their ring priorities then by their SMILES ranks
Calc_area_sphere_with_holes ../lib/silico_rbox.pm
----------------------------------------------------
Calculate the area of a sphere with holes
Does not consider hole overlap
Requires: Radius, number of holes, hole radius
Returns: Radius
Calc_binsize ../lib/silico_geom.pm
----------------------------------------------------
Determine size of bins in cell given an approximate binsize
Requires: molecule, approx binsize(default 2 ang)
Returns: binsize in each dimension (array), number of bins in each
dimension (array)
Sets: mol->{BINSIZE} and mol->{NUMBINS};
Calc_box_size ../lib/silico_geom.pm
----------------------------------------------------
Determine an appropriate periodic cell size for a molecule NOTE: Current
assumption is that alpha = beta = gamma = 90 deg!!!
Uses specified values if supplied
Will then use mol->{CELL} if defined
Otherwise prompts for values
$mol->{CELL} is set_box
Requires: molecule, boxx, boxy, boxz, flag to translate to centre, additional
margin around structure, flag to ignore dimensions contained in molecule
file
Returns: boxx, boxy, boxz
Calc_chiral_sdf_stereo ../lib/silico_sdf.pm
---------------------------------------------------
Calculate the normaliased cross between vectors defined by $atom0 ->atom1 and
atom0 -> atom2; Warning this contains a horrible fudge if two atoms overlap or
all three atoms are in a straight line
Requires: atom0, atom1, atom2
Returns: vector x, y, z A1 ---- A0 | | A2
Calc_chiral_volume ../lib/silico_sdf.pm
---------------------------------------------------
Calculated the chiral volume for four atoms
Uses the equations (A . B x C) where A is the vector atom1->atom2 B is
atom1->atom3 and C is atom1 -> atom4
Requires: atom1, atom2, atom3, atom4
Returns: signed volume of parallelipiped defined by the vectors
Calc_conservation_group_membership ../lib/silico_sequence.pm
------------------------------------------------------------
Calculate strong and weak conservation groups defined by Clustal
"These are all the positively scoring groups that occur in the Gonnet Pam250
matrix. The strong and weak groups are defined as strong score >0.5 and weak
score =<0.5 respectively." Clustalw documentation
Requires: pointer to array of amino acids
Returns: *, :, . or '' (Corresponding to identity, strong conservation, weak
conservation, no conservation)
Calc_conservation_group_percentage ../lib/silico_sequence.pm
------------------------------------------------------------
Calc_distance_function ../lib/silico_geom.pm
----------------------------------------------------
Calculates a repulsive potential energy term between two sets of atoms
This is based on distance from others in the molecule. This routine makes use
of the cutoff distance in the global variable $cut and a minimum approach
distance (clash). A fixed penalty is added for each atom clash.
Requires: Molecule, atom list 1, atom list2
Returns: Distance function, number of clashes
Calc_gromos_charge ../lib/silico_gromacs.pm
-------------------------------------------------------
Attempt to generate Gromos charges based on a bond increment scheme
Assumes mol_find_all_bonds has been run
Requires: molecule
Calc_human_readable_time ../lib/silico_data.pm
----------------------------------------------------
Calc_human_readable_time
Takes a length of time (in seconds) and converts it into ddd:hh:mm:ss.ss
Requires: Time in seconds
Returns: Time as a text string
Calc_physiological_protonation ../lib/silico_hydrogens.pm
---------------------------------------------------------
Use a simple algorithm to determine which functional groups will be ionised at
physiological pH.
Atoms are marked with a {FORMAL_CHARGE} label (These should be
cleared before running this routine)
Requires: molecule
Calc_rotation_vector_onto_vector ../lib/silico_geom.pm
------------------------------------------------------
Calculate rotation matrix and axis to rotate one vector onto another.
See:
http://immersivemath.com/forum/question/rotation-matrix-from-one-vector-to-another/
Note: The implementation could be more efficient
Requires: origin vector, target vector (3 coordinates)
Returns: axis, rotation matrix
Calc_valence_change ../lib/silico_hydrogens.pm
---------------------------------------------------------
Calculate the difference between expected and actual valents
Takes $atom->{CONNECTED_NON_H} flag into consideration
Requires: atom
Returns: difference between expected and actual
Calculate_bin ../bin/rdf
-----------------------------------------
Calculate the bin to which a given distance belongs
Requires: distance (scalar)
Returns: bin number (scalar)
Calculate_one_rdf ../bin/rdf
-----------------------------------------
A subroutine to calculate the radial distribution of one group about a
reference point or each atom in another group
Requires: Reference group, Target group, various fully-qualified
variables
Returns: A list of all distances in this RDF
Calculate_rdfs ../bin/rdf
-----------------------------------------
A subroutine to calculate all radial distribution functions in an input hash
Passed variables: Input hashref ($input)
Returns: Nothing
Carbanion_filter_neutraliser ../lib/silico_prop.pm
----------------------------------------------------
Some incorrectly formatted SDF files can contain incorrect carbanions on
aromatic rings
Requires: molecule
Returns: 1 if carbanion is detected (except for isocyanides -N+%C-) and
all metal containing compounds. The carbanion is also
corrected.
Centroid ../lib/silico_geom.pm
----------------------------------------------------
Calculate the average atom position of a molecule or subset.
Requires: Molecule, optional atom list
Returns: array
Ch ../lib/silico_data.pm
----------------------------------------------------
Check if a hashkey is defined; return 0 if not
Requires: Hash, key
Returns: Value of key, or 0 if undefined
Change_bondorder ../lib/silico_molecules.pm
---------------------------------------------------------
Change bond order between 'atom' and any connected atom of the specified
element
If order = 10 then this routine alternates single,double (for carboxylate
groups)
Note: calls bond_modify_order and requires that atom->{NUM} is correct
Requires: atom, desired element of connected atom, molecule, bondorder
Returns: nothing
Check_arguments ../lib/silico_io.pm
--------------------------------------------------
Check the argument list for how many arguments there are. If an error has been
made in the instruction for number of arguments, the script will die. If the
tests are not passed, the script will exit after running PRINTDOC. Otherwise,
nothing is done: the program carries on.
Requires: string specifying number of arguments; list of arguments
Returns: nothing
Check_data_type ../lib/silico_data.pm
----------------------------------------------------
Checks an input string to see if it is a specified type
Currently looks for: ALPHA (A-Z characters only), WORD (A-Z plus _), INT or
INTEGER (integers), DECIMAL (real number in standard or mantissa format),
FILENAME, BOOLEAN
Also has numeric checks >, >=, <, <=
Requires: String of data, string of type information
Optional: Suppression of standard warnings (will still warn if serious
errors are encountered)
Returns: -1 if a serious error; 0 if a data type problem; 1 if OK
Check_grace_output_format ../lib/silico_io.pm
--------------------------------------------------
Checks an output format for compatibility with Grace
Requires: Output format (text)
Returns: Correctly formatted output format, extension
Check_itp_is_bonded ../lib/silico_gromacs.pm
-------------------------------------------------------
Check that atoms in a GMX_BOND, GMX_ANGLE, or GMX_DIHEDRAL ($angle) are
actually bonded
Check_number_components ../lib/silico_rbox.pm
----------------------------------------------------
Check that number of components is set for each component. If it is not, then
ask
Check_printerror ../lib/silico_check.pm
-----------------------------------------------------
Print an error line for an atom with incorrect valences
Requires: molecule, atom, valence
Checkvalence ../lib/silico_molecules.pm
---------------------------------------------------------
Check if a proposed valence is less than the maximum valence for an atom
taking into account atomic charge (where present) or whether an atom is an
aromatic ring and might be charged
Requires: atom, proposed valence
Returns: 1 if OK 0 if not
Chonspx_filter ../lib/silico_prop.pm
----------------------------------------------------
Find if molecule contains other than CHONSP+Halogen elements
H* is included to take implicit hydrogens into account
Requires: molecule
Returns: Element name (true) if non CHONSPX elements are present or 0
otherwise
Clash_periodic_binned ../lib/silico_geom.pm
----------------------------------------------------
Find clashes between two molecules, taking into account periodic boundary
conditions
A much faster routine than clash_periodic
Requires: molecule1, molecule2, maximum number of clashes, vdW scale
factor for added atoms
mol2-> CELL, BINSIZE, NUMBINS and BINS must all be defined
Returns: Number of clashes (up to maximum if this is set), pairs of
violating atoms and distances
Clean_pdb_line ../lib/silico_pdb.pm
---------------------------------------------------
Remove spaces and line name from PDB record
Clean_up_split_submols ../lib/silico_split.pm
-----------------------------------------------------
Clean up ensemble that results from splitting a molecule into submolecules
Requires:Ensemble, original molecule
Returns: Ensemble
Cleanline ../lib/silico_data.pm
----------------------------------------------------
Take a line of text and remove leading and trailing spaces
Requires: Text
Returns: Text
Clear_smiles_sets ../lib/silico_smiles.pm
------------------------------------------------------
Clear all markers on atoms identifying them as belonging to a SMILES set.
Requires: molecule, list of atoms (default all atoms)
Returns: nothing
Close_file ../lib/silico_io.pm
--------------------------------------------------
Close the current input file opened using open_file
Requires: nothing
Returns: nothing
Close_molfile ../lib/silico_io.pm
--------------------------------------------------
Close a molecule file that has been opened to read or write
Requires: file record
Compare_atom_order ../lib/silico_molecules.pm
---------------------------------------------------------
Compare two atoms and see if they are in the correct order for output to mol2,
merck files etc.
This routine should be the same as the one used in pdb_molecule_sort_atoms
Condense_smiles_ranks ../lib/silico_smiles.pm
------------------------------------------------------
Given an input set of SMILES ranks, remove the "air gaps" and non-integral
values from the ranks so atoms are ranked 1, 2, ...
Requires: list of atoms
Returns: list of used ranks
Connect_atoms_by_distance ../lib/silico_molecules.pm
---------------------------------------------------------
Bond atoms together that are closer than their combined vdW radii. A faster
routine that uses atom bins to substantially speed things up. All existing
bonds are deleted before new bonds are calculated. All new bonds are created a
single bonds.
Note1: This routine utilises an overall maximum bond length of 2.3 Angstroms.
I-I bonds fall outside this range
Note2: Does not bond dummy atoms
Note3: If a molecule contains 'Alternate atoms' eg from a pdb file - then
atoms with specifier 'A' are bonded to atoms without an alternate specifier.
Alternate atoms with specifier 'B' or greater are bonded only to themselves.
Requires: molecule, flag to skip making bonds in water molecules
Returns: number of bonds in molecule
Connect_atoms_by_distance_simple ../lib/silico_molecules.pm
-----------------------------------------------------------
Bond atoms together that are closer than their combined vdW radii.
Very simple connect atoms routine for testing
Requires: molecule
Returns: number of bonds created
Connected ../lib/silico_molecules.pm
---------------------------------------------------------
Return atoms connected to an atom as an array
Requires: atom, molecule
array of atoms
Construct_atom_relationships ../lib/silico_prop.pm
----------------------------------------------------
Construct the parent-child relationships between pairs of atoms, relative to
an arbitrary common ancestor, based on the contents of $atom->{PATH}.
Requires: molecule, optional flag to terminate at substructure
boundaries
Construct_family_tree ../lib/silico_prop.pm
----------------------------------------------------
Construct a family tree from parent-child relationships with an arbitrary
ultimate ancestor. Can take any type of correctly formatted input. So far,
atoms and residues use this.
Requires: array of relationships (each one a hash containing PARENT and
CHILD entries)
Returns: branches
Construct_residue_relationships ../lib/silico_prop.pm
-----------------------------------------------------
Convert_aromatic_bonds ../lib/silico_hydrogens.pm
---------------------------------------------------------
Convert non-ring aromatic bonds to double/single
Note that this conversion is 'undone' by the write_mol2 subroutine
Requires: molecule
Convert_aromatic_bonds_kekule ../lib/silico_rings.pm
-----------------------------------------------------
Convert rings with aromatic bonds to kekule representation
Converts systems up to 18 atoms
Requires: molecule
Returns: nothing
Copy_atom ../lib/silico_molecules.pm
---------------------------------------------------------
Return a new copy of an atom.
Warning. This copy is only one level deep and does not include hashes.
Requires: atom.
Returns: new atom.
Copy_minimal_molecule ../lib/silico_rbox.pm
----------------------------------------------------
Make a very minimal copy of a molecule
Note to save space, records which are not modified by the program are
duplicates and NOT copies
Correlation_coeff ../bin/dock_sort
-----------------------------------------------
Calculate correlation coefficient
Requires: molecule, SDF_data fields
Returns: correlation coeff or undef if variance is zero
Corresponding_prime_old ../lib/silico_smiles.pm
------------------------------------------------------
Determine the prime number corresponding to an integer. That is, for some
number N, determine the Nth prime number.
Requires: integer
Returns: integer
Count_formal_charges ../lib/silico_prop.pm
----------------------------------------------------
Calculate the formal charge on a molecule. Also count total numbers of
positive and negative atoms
Requires: Molecule
Returns: Total charge. Counts of positive and negative atoms (not
counting nitros, azides etc with adjacent +ve and -ve charges)
Sets: $mol->{FORMAL_CHARGE}, $mol->{CHARGED_ATOMS}
Count_polar_nonpolar ../lib/silico_prop.pm
----------------------------------------------------
Count polar (N, O) and nonpolar (all other) heavy atoms
Requires: molecule
Sets: $mol->{SDF_DATA}{POLAR} and $mol->{SDF_DATA}{NONPOLAR}
Returns: 1 or 0 if non-CHONSP+Halogen atom is encountered.
Create_angle ../lib/silico_molecules.pm
---------------------------------------------------------
Create an ANGLE record between three atoms (whether they are actually
connected or not). This is used, for example, in reading in PSF files.
Requires: molecule, three atom offsets
Returns: 1 if successful
Create_dihedral ../lib/silico_molecules.pm
---------------------------------------------------------
Create a dihedral angle between four atoms, regardless of whether they are
bonded or not. This is used, for example, in reading a PSF file.
Requires: molecule, four atom offsets
Returns: 1 if successful; undef otherwise
Create_molecule ../lib/silico_molecules.pm
---------------------------------------------------------
Create a new molecule.
Requires: Optional molecule name
Returns: molecule
Create_planar_improper ../lib/silico_molecules.pm
---------------------------------------------------------
Create a planar improper dihedral, e.g. when reading in a PSF file
Requires: molecule, list of four atom offsets (NB. not atom numbers)
Returns: nothing
Create_water_molecule ../lib/silico_solvate.pm
-------------------------------------------------------
Create a template of a water molecule.
Requires: Residue name (optional)
Returns: molecule
Crossprod ../lib/silico_geom.pm
----------------------------------------------------
Calculates the cross product of two vectors.
Requires: two vectors
Returns: cross product (an array {x, y, z})
Csv_fix ../lib/silico_smiles.pm
------------------------------------------------------
Fix delimiters in value taken from CSV file
See http://tools.ietf.org/html/rfc4180
Deep_copy ../lib/silico_molecules.pm
---------------------------------------------------------
Alternative deep copy routine for data structures
Requires: Data structure
Returns: copy of data structure
Deep_copy_orig ../lib/silico_molecules.pm
---------------------------------------------------------
Recursive deep copy routine for data structures
Taken from a tutorial by Randall Schwartz
Requires: Data structure
Returns: copy of data structure
Define_pdb_chain_segid ../lib/silico_rbox.pm
----------------------------------------------------
Make sure that pdb CHAIN and SEGID are defined and sane
Needs a tidy up
Requires: Molecule
Returns: Maximum pdb chain
Deg_to_rad ../lib/silico_geom.pm
----------------------------------------------------
Convert degrees to radians
Requires: scalar
Returns: scalar
Delete_atomset ../lib/silico_sybyl.pm
-----------------------------------------------------
Delete an atomset on the basis of its label
Requires: Molecule, atomset label
Returns: Nothing
Delete_flag ../lib/silico_io.pm
--------------------------------------------------
Delete a flag from the internal flags list.
Searches by short name (most cases) or long name (if 'l' is supplied as a
second argument).
Requires: name of flag to delete (string), search type (optional string)
Returns: nothing
Delete_rings ../lib/silico_rings.pm
-----------------------------------------------------
Remove all rings from a molecule
Requires: molecule
Returns: nothing
Delimited_read_error ../lib/silico_io.pm
--------------------------------------------------
Print an error on failing to read delimited data from file
Requires: filename, flag to write error message and die
Returns: Nothing
Dihedral ../lib/silico_geom.pm
----------------------------------------------------
Find the value of the dihedral angle in the range from -180 to +180 degrees
defined by four input atoms
Requires: atom1, atom2, atom3, atom4
Returns: dihedral in radians
Distance ../lib/silico_geom.pm
----------------------------------------------------
Find the distance between two atoms.
Requires: atom1, atom2.
Returns: distance.
Distance_atoms_min ../lib/silico_geom.pm
----------------------------------------------------
Find the shortest distance between one atom and an array of atoms
Requires: atom, array of atoms
Returns: shortest distance
Distance_periodic_sq ../lib/silico_geom.pm
----------------------------------------------------
Find the square of the distance between two atoms. For a system that has
cubic, on-axis, periodic boundary conditions
Requires: atom1, atom2, $cell->[cellx, celly, cellz]
Returns: distance_squared.
Distance_periodic_xyz_old ../lib/silico_geom.pm
----------------------------------------------------
Find the X, Y and Z components of distance between two atoms. For a system
that has cubic, on-axis, periodic boundary conditions
Requires: atom1, atom2, $cell->[cellx, celly, cellz]
Returns: periodic distances x, y, z
Distance_points ../lib/silico_geom.pm
----------------------------------------------------
Find the distance between two sets of Cartesian points.
Requires: x1, y1, z1, x2, y2, z2
Distance_sq ../lib/silico_geom.pm
----------------------------------------------------
Find the square of the distance between two atoms.
Requires: atom1, atom2.
Returns: square of distance.
Dotprod ../lib/silico_geom.pm
----------------------------------------------------
Calculates the dot product of two vectors.
Requires: two vectors
Returns: dot product (a scalar)
Double_and_tie_break ../lib/silico_smiles.pm
------------------------------------------------------
Attempt to resolve ties in SMILES ranks using the "double and tie break"
method. This multiplies all ranks by 2, and then reduces the rank of any one
of the atoms which share the lowest tied rank by 1.
This routine has been modified so that the tie is broken in a consistent way
that depends on the atomic coordinates (if any are present). This is designed
so that similar conformers will produce a similar smiles order, simplifying
superimposition
Requires: list of atoms
Returns: list of ranks
Dump_itp_data ../lib/silico_gromacs.pm
-------------------------------------------------------
Write out debugging file with all itp bonds, pairs, angles etc
Requires: molecule
Nothing
Electronegativities ../lib/silico_definitions.pm
-----------------------------------------------------------
Create an array of Pauling electronegativities. Atoms are given in order of
atomic number (dummy atom is 0).
Requires: nothing
Returns: nothing (creation of package global array)
Element_number2symbol ../lib/silico_molecules.pm
---------------------------------------------------------
Convert an element number into the corresponding atomic symbol.
Requires: element number.
Returns: element number or 0 Du.
Element_symbol2number ../lib/silico_molecules.pm
---------------------------------------------------------
Convert an element symbol into the corresponding atomic number.
Requires: element symbol.
Returns: element number or 0 if it fails.
En ../lib/silico_data.pm
----------------------------------------------------
Check that two numbers are equal. Equality means that either: neither number
is defined, or they are equal to each other (as ascertained using NOT !=).
Inequality is assumed if one is defined and the other is not, even if the
defined number is 0.
Requires: numbers
Returns: 1 if they are, 0 otherwise
Ens ../lib/silico_molecules.pm
---------------------------------------------------------
Convert a list of molecules or ensembles to an ensemble
Requires: molecule or ensemble
Returns: an ensemble
Ens_smiles_string ../lib/silico_smiles.pm
------------------------------------------------------
Calculate smiles string
Requires: molecule, flag to use ChemAxon molconvert to generate smiles
Returns: nothing
Sets: mol->{SDF_DATA}{SMILES}, mol->{SDF_DATA}{SMILES_SOURCE}
Ens_smiles_string_chemaxon ../lib/silico_smiles.pm
------------------------------------------------------
Calculate canonical smiles string using the Chemaxon program 'molconvert'
Requires: molecule
Returns: nothing
Sets: mol->{SDF_DATA}{SMILES}, mol->{SDF_DATA}{SMILES_SOURCE}
Ensemble_calc_fragments ../lib/silico_fp.pm
--------------------------------------------------
Calculate molecular fragments for each molecule in an ensemble
See mol_fragment for additional information. Sets $mol->{FORMULA},
$mol->{NUMHEAVY} and $mol->{SDF_DATA}{NUMHEAVY}
Requires: Ensemble, typer (optional)
Ensemble_check ../lib/silico_check.pm
-----------------------------------------------------
Check all molecules in an ensemble.
Calls 'mol_check'.
Requires: ensemble.
Ensemble_cluster ../lib/silico_molecules.pm
---------------------------------------------------------
Clusters molecules based on RMS distance from the lowest energy structure.
Assumes that molecules are sorted by energy. Sets the value
$mol->{CLUSTER_COUNT} to the number of molecules in that cluster.
Requires: ensemble, threshold for clustering, flag to keep all
molecules, flag to rename molecules with cluster membership
Returns: ensemble containing the first structure from each cluster, or
all memebers of each cluster
Ensemble_connect_atoms ../lib/silico_molecules.pm
---------------------------------------------------------
Connect all atoms in an ensemble by distance (only within each molecule
though)
Calls: Connect_atoms_by_distance
Requires: Ensemble
Returns: Nothing
Ensemble_consolidate ../lib/silico_molecules.pm
---------------------------------------------------------
Combines all molecules in an ensemble into a single molecule
Works with gromacs .itp files
Requires: Ensemble, flag to prevent use of deep_copy
Returns: New ensemble with all atoms in the molecule $newens->[0]
Ensemble_consolidate_nocopy ../lib/silico_rbox.pm
----------------------------------------------------
Combines all molecules in an ensemble into a single molecule This is the same
as the version in silico_molecules but without the deep copy - which is much
faster.
Requires: Ensemble
Returns: New ensemble with all atoms in the molecule $newens->[0]
Ensemble_consolidate_small_molecules ../lib/silico_split.pm
-----------------------------------------------------------
Combine molecules with less than a specified number of atoms
Requires: ensemble, min molecule size
Returns: ensemble
Ensemble_copy ../lib/silico_molecules.pm
---------------------------------------------------------
Creates a copy of an ensemble.
Calls: Molecule_copy
Requires: Ensemble
Returns: Duplicate ensemble as an arrayref
Ensemble_insight_rename ../lib/silico_molecules.pm
---------------------------------------------------------
Generate insight-safe names for an ensemble. Calls: insight_rename.
Requires: ensemble.
Ensemble_print_connect ../lib/silico_debug.pm
-----------------------------------------------------
Print out connection table
Has not been used for some time. Check before using.
Requires: ensemble, output filename (optional).
Ensemble_printout ../lib/silico_debug.pm
-----------------------------------------------------
Print out all the key value pairs for a molecule.
Only the first few molecules are printed out unless the optional second
argument is set to 'all'. This is passed on to molecule_printout.
Requires: ensemble, 'all' (optional), filehandle (optional)
Ensemble_renumber ../lib/silico_molecules.pm
---------------------------------------------------------
Renumber all atoms in an ensemble.
Calls: Molecule_renumber2
Requires: Ensemble
Returns: Nothing
Ensemble_split ../lib/silico_split.pm
-----------------------------------------------------
Split an ensemble into seperate molecules by connectivity
Calls molecule_split
Requires: ensemble, minimum number of atoms (default 1);
Returns: new ensemble containing unconnected molecules.
Ensemble_split_keeping_largest_mols ../lib/silico_split.pm
----------------------------------------------------------
Retain only the largest molecule (by connectivity) from each Silico "molecule"
in an ensemble
Requires: ensemble, minimum number of atoms (default 1);
Et ../lib/silico_data.pm
----------------------------------------------------
Check that two text strings are equivalent.
Equivalence means that either: neither string is defined, or they are equal to
each other (as ascertained using NOT ne).
Non-equivalence is assumed if one is defined and the other is not, even if the
defined string is the empty string.
Requires: strings
Returns: 1 if they are, 0 otherwise
Euclidian ../lib/silico_fp.pm
--------------------------------------------------
Calculate the Euclidian coefficient given two hashes of fragments
Euclidian coeff = 1 - (Num unshared fragments mol1 + Num unshared fragements
mols)/ (Total fragments mol1, mol2)
Requires: hash of fragments 1, hash of fragments 2
Returns: Euclidian coefficient
Extract_charmm_logfile ../bin/cexplot
---------------------------------------------
Extracts data from a charmm dynamics log file and writes it in tab delimited
format suitable for gnuplot
Requires: Log file name, output file name
Returns: headers, values_array
Extract_gromacs_logfile ../bin/cexplot
---------------------------------------------
Extracts data from a gromacs dynamics log file and writes it in tab delimited
format suitable for gnuplot
Requires: Log file name, output file name
Returns: headers, values_array
Extract_mol2_sdf_data ../lib/silico_mol2.pm
----------------------------------------------------
Read the sdf type data from mol2 file comment lines and put into molecule
Removes this data from the comments array
Requires: molecule, comments array
Returns: comments lines with sdf data removed or undef on failure
Extract_namd_logfile ../bin/cexplot
---------------------------------------------
Extracts data from a namd dynamics log and xst files and writes it in tab
delimited format suitable for gnuplot
Requires: Log file name, output file name
Returns: Nothing
Fgroup ../lib/silico_prop.pm
----------------------------------------------------
Make a functional group
File_read_error ../lib/silico_io.pm
--------------------------------------------------
Print an error on failing to read a file
Requires: filename, flag to write error message and die
Returns: Nothing
File_write_error ../lib/silico_io.pm
--------------------------------------------------
Print an error on failing to write a file
Requires: filename, flag to write error message and die
Returns: Nothing
Find_aggregates ../bin/find_aggregate
----------------------------------------------------
Subroutine to find aggregates using the faster 'find_close_atoms_binned'
routine
Clusters are defined has having carbon atoms within distance 'cutoff'
Requires; molecule, submolecules, cutoff distance
Returns; Array of clusters. Each custer is a hash containing: {SUBMOLS}
array of submolecules
Find_aggregates ../bin/find_aggregate.x
------------------------------------------------------
Subroutine to find aggregates using the faster 'find_close_atoms_binned'
routine
Clusters are defined has having carbon atoms within distance 'cutoff'
Requires; molecule, submolecules, cutoff distance
Returns; Array of clusters. Each custer is a hash containing: {SUBMOLS}
array of submolecules
Find_atom_paths ../lib/silico_prop.pm
----------------------------------------------------
Find the path connecting each atom to a given root atom
Requires: molecule, starting atom, optional maximum path length,
optional exclusion of H
Returns: Nothing (information added to $atom->{PATH})
Find_atom_rings ../lib/silico_rings.pm
-----------------------------------------------------
Find all rings that belong to a particular atom
Calls traverse.
Requires: molecule, starting atom, maximum search depth.
Returns: a pointer to array of arrays containing ring atoms or undef if
no rings are found.
Find_atom_rings_not_recursive ../lib/silico_rings.pm
-----------------------------------------------------
Subroutine to find rings, based on a non-recursive algorithm
Algorithm by Balducci and Pearlman, JCICS 1994, 34, 822-831
Slightly modified to suit Silico conventions
Requires: Molecule, starting atom, maximum ring size
Returns: List of rings containing this atom
Find_bondorder ../lib/silico_molecules.pm
---------------------------------------------------------
Returns the bondorder between two atoms
Requires: atomnum1, atomnum2, molecule
Returns: bondorder or -1 if not connected
Find_bondorder2 ../lib/silico_molecules.pm
---------------------------------------------------------
Returns the bondorder between two atoms
Same as find_bondorder but uses atoms as arguments rather than atom numbers.
Requires: atom1, atom2
Returns: bondorder or -1 if not connected
Find_bondorders_ring ../lib/silico_rings.pm
-----------------------------------------------------
Return array containing bondorders of bonds in ring
Requires: ring (array of atom numbers), molecule
Returns: array of bondorders in ring
Find_buried_atoms ../lib/silico_prop.pm
----------------------------------------------------
Identify buried atoms at a molecular interface
Faster version using atoms sorted by X coordinate
Requires: molecule1, molecule2, cutoff (default 4.5 Angstroms)
Returns:
Sets mol->{BURIED} flags on each molecule;
Find_buried_atoms_simple ../lib/silico_prop.pm
----------------------------------------------------
Identify buried atoms at a molecular interface
Simple version for testing
Requires: molecule1, molecule2, cutoff (default 4.5 Angstroms)
Returns:
Sets mol->{BURIED} flags on each molecule;
Find_close_atoms_binned ../lib/silico_geom.pm
----------------------------------------------------
Find atoms in mol2 which are close to mol1
Requires: molecule, molecule, cutoff
Returns: array of close atoms
Find_closest_atoms_periodic ../lib/silico_geom.pm
----------------------------------------------------
Find closest atoms in two molecules, taking into account periodic boundary
conditions.
Simple-minded algorithm for testing stuff
Requires: molecule1, molecule2, maximum distances, flag to ignore
hydrogens
Returns: sets of atom pairs with distances
Find_closest_atoms_periodic_binned ../lib/silico_geom.pm
--------------------------------------------------------
Find closest atoms in two molecules, taking into account periodic boundary
conditions.
Faster algorithm
Requires: molecule1, molecule2, maximum distances, flag to ignore
hydrogens
Returns: sets of atom pairs with distances
Find_decoys_actives ../bin/dock_sort
-----------------------------------------------
Identify decoys and actives
Requires: molecules
Returns: total decoys, total actives, total decoys in file, total
actives in file
Find_elements_ring ../lib/silico_rings.pm
-----------------------------------------------------
Return array containing elements of atoms in ring and a hash counting the
number of times each element occurs
Requires: ring, molecule
Returns: pointer to array of elements, hash containing a count of each
element
Find_intermolecular_charge_interactions ../lib/silico_prop.pm
-------------------------------------------------------------
Find intermolecular interactions between formally charged groups
Currently only uses the parent atom from the charge group
Uses simple cutoff
You must call label_functional_groups first
Find_intermolecular_hbonds_h ../lib/silico_hb.pm
--------------------------------------------------
Find hydrogen bonds between two molecules using hydrogen atom information
mol_label_donors_acceptors must be run before commencing this routine
Requires: Two molecules
Optional: D-A distance, H-A distance
D-H-A angle, H-A-R angle
Returns: List of hydrogen bonds (D-H-A)
Find_intermolecular_hbonds_h_simple ../lib/silico_hb.pm
-------------------------------------------------------
Find hydrogen bonds between two molecules using information about the position
of the hydrogen atom
Uses simple cutoff between donor hydrogen and acceptor
You must call mol_find_donors_acceptors on each molecule first
Find_intermolecular_hbonds_noh ../lib/silico_hb.pm
--------------------------------------------------
Find hydrogen bonds between two molecules _without_ using information about
the position of the hydrogen atom
Uses simple cutoff between donor and acceptor heteroatoms
You must call mol_find_donors_acceptors on each molecule first
Find_intramolecular_hbonds_h ../lib/silico_hb.pm
--------------------------------------------------
Find hydrogen bonds between atoms within the one molecule using hydrogen
positional information
mol_find_donors_acceptors must be run prior to commencing this routine
Requires: molecule
Optional: D-A cutoff, H-A cutoff
D-H-A angle cutoff, H-A-R angle cutoff
flag to include waters
Returns: list of hydrogen bonds
Sets: $atom->{HBONDS} - a list of hydrogen bonds belonging to each
atom
Find_nearby_charges_recursive ../lib/silico_hydrogens.pm
---------------------------------------------------------
Recursive subroutine to find atoms with formal charges
Find_nearest_atoms ../lib/silico_molecules.pm
---------------------------------------------------------
Find the nearest atoms to a nominated atom and return list of atoms
Requires: atom, molecule, cutoff (default 5 angstroms)
Returns: pointer to an array of atoms
Find_polar_atoms ../lib/silico_prop.pm
----------------------------------------------------
Mark atoms as polar or nonpolar
Polar atoms are defined as being non C or H atoms or C or H atoms that are
bonded to an element other than C or H.
Requires: Molecule
Returns:
Find_schrodinger_exe ../lib/silico_mmod.pm
----------------------------------------------------
Find the Schrodinger executableis
Reqires: Executable name
Returns: Path to Macromodel executable or undef
Find_substructure ../lib/silico_residue.pm
-------------------------------------------------------
Find the substructure around an atom.
Assumes that a change in residue name or ID terminates the substructure.
Assumes that bond orders are correct and that aromatic bonds and rings have
been correctly identified.
Requires: molecule, starting atom, maximum search depth
Returns: munted SMILES string
Find_sybyl ../lib/silico_sybyl.pm
-----------------------------------------------------
Find the Sybyl executable
Reqires: Nothing
Returns: Path to Sybyl executable or undef
Findclash ../lib/silico_hydrogens.pm
---------------------------------------------------------
Find the distance to the closest atom from a point x, y, z
Requires: molecule, x, y, z
Returns: distance
Fix_cell_values ../bin/find_aggregateSet cell values from
command line only if not defined in input molecule file
------------------------------------------------------------------------
Fix_cell_values ../bin/find_aggregate.xSet cell values from
command line only if not defined in input molecule file
--------------------------------------------------------------------------
Fix_dative_bonds ../lib/silico_molecules.pm
---------------------------------------------------------
Fix_double_bonds_carbonyl ../lib/silico_molecules.pm
---------------------------------------------------------
Assign carbonyl bond orders
Uses molecule geometry to generate bond orders
Requires: molecule
Returns: nothing
Fix_double_bonds_carboxyl ../lib/silico_molecules.pm
---------------------------------------------------------
Assign ester, carboxylic acid, carboxylate, amide and guanidinium bond orders
Uses molecule geometry to assign bond orders
Requires: molecule
Returns: nothing
Fix_double_bonds_general ../lib/silico_molecules.pm
---------------------------------------------------------
Fix general planar double bond orders
Uses molecule geometry to generate assignment
Contains a distance check
Requires: molecule, ccflag (only generate double C=C double bonds)
Returns: nothing
Fix_hydrogens ../lib/silico_hydrogens.pm
---------------------------------------------------------
Clean up hydrogens added to molecules by sybyl
Removes hydrogens attached to nitro groups, on oxygen bonded to sulfur or
phosphorous. Also removes comments
Requires: molecule
Fix_pdb_chains ../lib/silico_pdb.pm
---------------------------------------------------
Renumber pdb chains based on changes in CHAIN, SEGID or a backwards step in
SUBID
If 'start' and the 'force flag' are not specified this routine will only
renumber chains if required
If 'start' is set and the 'force flag' is not set then the routine will
renumber if 'start' does not match the starting letter and if it is necessary
If 'force flag' is set then the chains will be renumbered from 'A' by default.
Note: This subroutine deletes the 'TERCOUNT' field can potentially cause
problems if the pdb file has been modified
Requires: molecule, starting chain letter (optional), flag to force
renumbering
Returns: last chain letter of current structure, flag to indicate that
chains were renumbered
Fnfp ../lib/silico_data.pm
----------------------------------------------------
Format Number For Printing.
Take a numeric value, and print it. If the numeric value is not
defined, return a string of the user's choice (default: 'not
defined').
This can handle NaN strings, but unlike the subroutine ftfp, it does not put
the strings in quotes, so whitespace is not obvious.
Requires: string, optional 'not defined' string
Returns: string
Format_doc_html ../lib/silico_doc.pm
---------------------------------------------------
Returns: Silico markup formatted as text
Format_doc_txt ../lib/silico_doc.pm
---------------------------------------------------
Format a tagged string into ascii text
Format_oname ../lib/silico_io.pm
--------------------------------------------------
Generate a numbered filename (various possible styles)
Styles:
molname: Molecule Name
molname i: Renames molecule name using 'insight safe' name
named: <base>_<name>.<ext>
numbered: <base>_<num>.<ext>
fnumbered: <base>_000<num>.<ext> (%05d)
fnumbered N: <base>_000<num>.<ext> (%0Nd) - ie number formated to N places
Requires: style, molecule (requred for style 'name'), basename (required
for numbered styles), number (required for numbered styles) or
name (required for name style), extension (optional),
compression (optional)
Returns: filename (string)
Format_string_html ../lib/silico_doc.pm
---------------------------------------------------
Format a tagged string into html
Formatdata ../lib/silico_pdb.pm
---------------------------------------------------
Format SDF_DATA for output to PDB file
Long data is split up into lines. All data is surrounded by single quotes. A
backslash at the end of the line indicates that the line is to be continued
Requires: string, length of key
Returns: array
Formatpara_txt ../lib/silico_doc.pm
---------------------------------------------------
Format a paragraph so that it fits onto a line with optional indent or hanging
indent
Formula_string ../lib/silico_prop.pm
----------------------------------------------------
Convert molecular formula to a string
Requires: formula hash
Returns: string
Fr_printout ../lib/silico_io.pm
--------------------------------------------------
Print out a silico file record for debugging purposes
Requires: file record
Frag_aray_to_hashes ../lib/silico_fp.pm
--------------------------------------------------
Generate md5 hashes from fragments
Requres: array of fragments
Returns: array of md5 hashes
Fragment_printout ../lib/silico_fp.pm
--------------------------------------------------
Print out list of fragments
Requires: molecule
Returns: nothing
Fragmentlist_printout ../lib/silico_fp.pm
--------------------------------------------------
Print out list of fragments
Requires: pointer to fragments
Returns: nothing
Ftfp ../lib/silico_data.pm
----------------------------------------------------
Format Text For Printing.
Take a text value, enclose it in double quotes, and print it. If
the text value is not defined, return a string of the user's
choice (default: 'not defined').
Note that the 'not defined' string will not be printed in quotes. This allows
the user to distinguish between a variable containing the text "not defined"
and an undefined variable.
This can handle numbers, but unlike the subroutine fnfp, it puts the data in
quotes, which can appear ugly for numbers.
Requires: string, optional 'not defined' string
Returns: string
Fundamental_constants ../lib/silico_definitions.pm
-----------------------------------------------------------
Set various mathematical and physical fundamental constants as read-only
values (so they can't be reassigned by a wayward use of "=" instead of, for
example, "==").
Requires: nothing
Returns: nothing (sets package global arrays and hashes)
Get_aa_frequency ../lib/silico_sequence.pm
--------------------------------------------------------
Calculate the frequency of each AA type from an array of AAs
AAs are sorted by frequency
Requires: pointer to array of AAs
Retruns: Pointer to array of arrays. $array->[$i][0] = aa,
$array->[$i][1] = count
Get_allflags ../lib/silico_io.pm
--------------------------------------------------
Return a list of all command line flags
Requires: nothing
Returns: flags in array
Get_arguments2 ../lib/silico_io.pm
--------------------------------------------------
Improved routine to get arguments from command line.
UNIX:
Accepts wildcards '*', '?' and [...]. Skips any arguments starting with '-'
which are used as flags. These can be found using 'get_flags'
UNIX file read supports directories containing very large numbers of files
where the standard UNIX Glob fails, if wildcard characters quoted (eg '*') on
the command line.
If a -help argument is found then the silico documentation is printed and the
progarm exits
Requires: arguments in @ARGV.
Returns: argument list as an array.
Get_atomlist_using_specifier ../lib/silico_molecules.pm
---------------------------------------------------------
Use a Silico atom specifier string to select sets of atoms from a molecule
Requires: molecule, specifier array
Returns: pointer to array of selected atoms
Get_default_flags_standard ../lib/silico_io.pm
--------------------------------------------------
Complete flag setup by setting silico-wide default flags
Get_file_compression ../lib/silico_io.pm
--------------------------------------------------
Get file compression method (.Z, .bz2 or .gz)
Requires: filename
Returns: string
Get_file_dir ../lib/silico_io.pm
--------------------------------------------------
Get file directory
Requires: filename
Returns: string
Get_filebase ../lib/silico_io.pm
--------------------------------------------------
Get file basename
Removes only the final extension unless it is Z. .gz or .bz then the last two
are removed
Returns: string
Get_filebase_short ../lib/silico_io.pm
--------------------------------------------------
Get file basename without any leading directories
Removes the final extension unless it is .gz then the last two are removed
Requires: filename
Returns: string
Get_fileext ../lib/silico_io.pm
--------------------------------------------------
Get file extension name
Note. Strips off any .gz, .bz2 or .Z extension before returning file extension
Requires: filename
Returns: string
Get_flag ../lib/silico_io.pm
--------------------------------------------------
Return the value held by a particular flag.
Searches by short name (in most cases) or long name (if 'l' is supplied as a
second argument).
Requires: flag name (string), search type (optional string)
Returns: value of flag or undef (if the flag is not defined)
Get_hosttype ../lib/silico_control.pm
-------------------------------------------------------
Find the host type
Requires: nothing
Returns: sgi, linux, linuxem64, Darwin (OS X) or undef
Get_ion_data ../bin/water_to_ion
--------------------------------------------------
Supply ion data to water_to_ion for a range of metallic and other simple ionic
species.
Requires: Ion name (element, charge optional)
Returns: Element, element number, MMFF charge code, residue name
Get_join_list ../bin/starmaker
-----------------------------------------------
Gets the join list in a single molecule
Requires: molecule, atom name to look for as a join point
Returns: Array containing those atoms which are join points
Get_lflag ../lib/silico_io.pm
--------------------------------------------------
Get flag by long name
Requires: flag name
Calls get_flag
Get_metal_oxidation_state ../bin/water_to_ion
--------------------------------------------------
Choose an oxidation state from a list of possibles
Requires: list of numbers
Returns: oxidation state chosen
Get_ofilebase ../lib/silico_io.pm
--------------------------------------------------
Get output filebase. Takes command line flags into account
Filebase is obtained from first molecule in ensemble
Input: ensemble (optional), obase (optional), append_string
(optional);
Output: filebase
Get_ofilename ../lib/silico_io.pm
--------------------------------------------------
Get the output filebase and format of an ensemble checking flags and input
format
'Base name' and 'output format' will be overridden by command line flags if
they are supplied. The 'default format' will also be overridden by command
line options.
See also: get_ofilename2
Requires: (ensemble, base name, format, append string, default_format)
all optional splitflag to provide separate filename and
extension, flag force use of supplied names ignoring command
line flags
Returns: filename if 'splitflag' not set or filebase & format if it is
set.
Get_ofilename2 ../lib/silico_io.pm
--------------------------------------------------
Split version of get_ofilename
See get_ofilename
Get_oformat ../lib/silico_io.pm
--------------------------------------------------
Get an appropriate output file format.
Selection priority:
format ($_[1])
-o <ext> flag
-O <file.ext> flag
format of source file
provided default format ($_[2])
mol2
Input: ensemble or molecule (optional), default format (optional)
Output: format string
Get_sflag ../lib/silico_io.pm
--------------------------------------------------
Get flag by short name
Requires: flag name
Calls get_flag
Get_single_atomlist_using_specifier ../lib/silico_molecules.pm
--------------------------------------------------------------
Use a Silico atom specifier string to select a single set of atoms from a
molecule
Note. This routine should be called multiple times to 'OR' sets together
Requires: molecule, specifier hash
Returns: pointer to array of selected atoms. Atoms are returned in
order found in by specifier array, however if the specifier
matchers more than one atom, the order is dependent in the
atom order in the file
Get_std_output_options ../lib/silico_io.pm
--------------------------------------------------
Read a standard set of output options from the command line
Deprecated subroutine;
Requires: a list of options
Returns: option string
Get_tempname ../lib/silico_io.pm
--------------------------------------------------
Make a temporary filename base by concatenating program_name and a random
number Uses $Silico::temp_dir or /usr/tmp (or /tmp) if this is not set
Requires: temp directory
Returns: filename base
Getcol ../lib/silico_tabledata.pm
---------------------------------------------------------
Find a single column number that corresponds to a particular key
Case insensitive match
Requires: data structure, list of keys
Returns: array of column numbers
Getcols ../lib/silico_tabledata.pm
---------------------------------------------------------
Find column numbers that correspond to a particular key
Case insensitive match
Requires: data structure, list of keys
Returns: array of column numbers
Getcols_all ../lib/silico_tabledata.pm
---------------------------------------------------------
Return column list of all keys sorted according to the order in
@{$data->{HEADERS}}
Requires: data structure
Requires: pointer to array of column names
Getcols_not ../lib/silico_tabledata.pm
---------------------------------------------------------
Find column numbers except specified keys
Inverse of getcol. Case insensitive match
Requires: data structure, list of keys
Returns: array of column numbers
Getlines ../lib/silico_tabledata.pm
---------------------------------------------------------
Return array of all lines in text data structure
Requires: data structure
Gmx_make_heavy_h ../lib/silico_gromacs.pm
-------------------------------------------------------
Increase the mass of hydrogen atoms by a scale factor (default 4) and reduce
the mass of the attached heavy atoms
Requires: molecule, scale factor
Returns: nothing
Gmx_merge_coords_into_top ../lib/silico_gromacs.pm
-------------------------------------------------------
Merge coordinates into ITP file
Requires: Topology file, coordinate file
Gmx_replace_peptide_dihedrals ../bin/write_itp
-----------------------------------------------
Replace the dihedral parameters of peptide backbone atoms
Requires: molecule
Returns: number of dihedrals replaced
Gmx_setup ../lib/silico_gromacs.pm
-------------------------------------------------------
Assign OPLS atom types, charges, charge groups and fix atom names and
numbering in preparation for writing OPLS topology and parameter files
Requires: molecule, forcefield, flag for united atom forcefield, charge
source (existing, mopac, mopac_esp)
Gnuplot_plot_bins ../lib/silico_gnuplot.pm
-------------------------------------------------------
Use gnuplot to plot histograms from bin datastructures
Calls write_binfile
Requires: output filename base,bins structure
Returns: one or undef if file open failed.
Grom_readline ../lib/silico_gromacs.pm
-------------------------------------------------------
Read a gromacs .itp topology file line
Filters out blank lines and comments
Requires: nothing
Returns: line
Gromacs_check_itp ../lib/silico_gromacs.pm
-------------------------------------------------------
Check a gromacs included topology data and make sure that it is consistent
with the bonded molecular structure
Requires: molecule
Returns: Undef if write failed, otherwise 1
Gromacs_regenerate_pairs ../lib/silico_gromacs.pm
-------------------------------------------------------
Regenerate 1-4 atom pairs list
Requires: molecule
Heading ../lib/silico_doc.pm
---------------------------------------------------
Format a heading
Requires: String, optional underline character (defaults to -)
Returns: Formatted string
Identify_heterocycle ../lib/silico_prop.pm
----------------------------------------------------
Identify a heterocycle
This routine can name a number of common heterocycles.
Requires that find_rings has been run and that bond orders are present and
that aromatic rings are represented using aromatic bonds (ie
make_aromatic_bonds has been run)
Requires; ring, molecule
Returns; heterocycle label or HETEROCYCLE <standardised_string> if
unknown;
Increment_chain ../lib/silico_pdb.pm
---------------------------------------------------
Increment pdb chain
Requires: Alphabetical character
Returns: Alphabetical character
Insight_rename ../lib/silico_molecules.pm
---------------------------------------------------------
Generate insight-safe names
Insight has a number of reqirements for molecule names. For example they can
not contain spaces, punctuation, start with an underscore or a digit and are
of limited length. This routine generates unique, Insight-safe names by using
the hash %insight_namecount to store previously used names.
Requires: name, pointer to a hash to store names in.
Returns: modified and unique name.
Is_gap ../lib/silico_sequence.pm
--------------------------------------------------------
Determine if a residue is a gap
Gaps can be marked with -,+ or maybe .
Requires: Silico residue record
Returns: 1 or 0
Is_hbond_mcdonald_thornton ../lib/silico_hb.pm
--------------------------------------------------
Identify a hydrogen bond (D-H:::A) according to the definition used by
McDonald and Thornton
J. Mol. Biol. 1994, 238, 777-793
Requires: donor molecule, donor atom, acceptor molecule, acceptor atom
(donor cutoff distance, H cutoff distance, dha angle max, HAR
angle max - defaults 3.9, 2.5, 90, 90)
Returns: pointer to array of the several D-H-A triplets that are found
each contains (dmol, datom, hydrogen, amol, aatom)
Is_integer ../lib/silico_data.pm
----------------------------------------------------
Return 1 if a number is an integer
Requires: Number, optional accuracy (defaults to 6 decimal places)
Returns: 1 or 0
Is_ring_aromatic_by_bondorder ../lib/silico_rings.pm
-----------------------------------------------------
Find aromatic rings ie those with all aromatic bonds or 4n+2 pi electrons
Subroutine assumes that it is operating on a planar ring
Requires: molecule , ring
Returns: 1 if aromatic, 0 otherwise
Is_ring_aromatic_by_connectivity ../lib/silico_rings.pm
-------------------------------------------------------
Find 4n+2 member aromatic rings (ie those with all aromatic bonds) by
connectivity where bondorders and hydrogens are present or missing
Subroutine assumes that it is operating on a planar ring
Requires: Molecule, ring, flag to indicate hydrogens are present
Returns: 1 if aromatic, 0 otherwise
Is_ring_planar ../lib/silico_rings.pm
-----------------------------------------------------
Robust ring planarity and aromaticity
This routine must be able to cope with: molecules with no hydrogens and/or no
bondorders, molecules with very poor geometry (eg 2D molecules) and molecules
with distorted geometries (such as from high temperature MD simulations).
This routine is expected to fail if the molecule has distorted geometry, bad
bondorders and missing atoms
Requires: molecule, ring (array of atoms)
Returns: flag for planarity, flag for aromaticity
Is_ring_planar_by_dihedral ../lib/silico_rings.pm
-----------------------------------------------------
Finds planar rings by checking dihedral angles
Tests dihedrals in rings
Attempts to determine planarity (as distinct from aromaticity)
Returns 0 if any single in-ring dihedral is larger than the hardcoded
tolerance: 18 for 5-membered rings 26 for all other rings
Requires: molecule (pointer to hash), $atoms (pointer to array of atom
numbers)
Returns: 2 if atoms are few enough in number that they must lie in a
plane (<= 3)
1 if there are enough atoms that they could be non-planar, but are
planar (within tolerance)
0 otherwise (i.e., not planar within tolerance)
Itp_delete_angle_parameters_atom ../lib/silico_gromacs.pm
---------------------------------------------------------
Delete Gromacs GMX_ANGLES where the specified atom is a CENTRAL atom
Requires molecule, list of atom NUMBERS (not indexes)
Itp_delete_parameters_atom ../lib/silico_gromacs.pm
-------------------------------------------------------
Delete Gromacs GMX_BONDS GMX_PAIRS GMX_ANGLES GMX_DIHEDRALS or GMX_EXCLUSIONS
where the specified atom is involved
Requires molecule, thing, list of atom NUMBERs (not indexes)
Itp_make_angle ../lib/silico_gromacs.pm
-------------------------------------------------------
Make a Gromacs itp angle
Note: Uses atom numbers (not atom indexes).
Requires molecule, atom Number 1, atom Number 2, atom Number 3, angle
type, format, etc
Itp_make_bond ../lib/silico_gromacs.pm
-------------------------------------------------------
Make a Gromacs itp bond
Note: Uses atom NUMBERS (not atom indexes).
Requires molecule, atom Number 1, atom Number 2, type, etc
Itp_make_dihedral ../lib/silico_gromacs.pm
-------------------------------------------------------
Make a Gromacs itp dihedral
Note: Uses atom numbers (not atom indexes).
Requires molecule, atom Number 1, atom Number 2, atom Number 3, atom
Number 4, dihedral type (1=proper, 2=improper), format, etc
Note. We do not read individual values for default values or where codes are
used to define parameters
Itp_make_pair ../lib/silico_gromacs.pm
-------------------------------------------------------
Make a Gromacs itp pair
Note: Uses atom numbers (not atom indexes).
Requires molecule, atom Number 1, atom Number 2, type
Label_aa_backbone ../lib/silico_prop.pm
----------------------------------------------------
Label alpha amino acid backbone atoms
Add the labels AA_N, AA_CA, AA_C to the N, CA anc C atoms of amino acids.
Terminal amino acids are also labelled AA_CTER or AA_NTER.
Requires: molecule
Returns: numbers main chain-AAs, C-terminal AAs, N-terminal AAs
Label_aa_chirality ../bin/gromacs_fix_chiral_impropers
------------------------------------------------------------------
Label_amides ../lib/silico_prop.pm
----------------------------------------------------
Label amides AMIDE_C, AMIDE_O, AMIDE_N
Bondorders must be correct
Note: This algorithm handles carbamates OK, but ureas somewhat imprecisely.
Requires: molecule, list of atoms to check (uses entire molecule if this
is not defined)
Returns: nothing
Label_amino_acids ../lib/silico_residue.pm
-------------------------------------------------------
Create residues and identify them based on a SMILES residue database
Uses residues as the basis on which to match an atom string.
Requires: molecule
Returns: nothing
Label_dendrimer_residues ../bin/starmaker
-----------------------------------------------
Label residues in a molecule according to the Silico dendrimer scheme. Core
COR1, First generation GAA, Second GAB, ... A rename of all atoms to COR1 is
enforced if the flag -rc is used, or if atoms are found that are not COR or
G**.
Requires: Molecule
Returns: Highest residue ID found
Label_fg_alcohol ../lib/silico_prop.pm
----------------------------------------------------
Label alcohols, diols and triols
Requires: molecule
Label_fg_benzhydrylamine ../lib/silico_prop.pm
----------------------------------------------------
Label benzhydrylamines
Requires: molecule
Label_fg_carbanion ../lib/silico_prop.pm
----------------------------------------------------
Label carbanions
Requires: molecule
Label_fg_carbon ../lib/silico_prop.pm
----------------------------------------------------
Label carbon 'functional groups'
Requires: molecule
Label_fg_carbonyl ../lib/silico_prop.pm
----------------------------------------------------
Label carbonyl, thioketone and formyl groups
Requires: molecule
Label_fg_halogen ../lib/silico_prop.pm
----------------------------------------------------
Label halogen atoms
Requires: molecule
Label_fg_nitrogen ../lib/silico_prop.pm
----------------------------------------------------
Label nitrogen containing functional groups
Requires: molecule
Label_fg_oxygen ../lib/silico_prop.pm
----------------------------------------------------
Label oxygen containing functional groups excluding CARBONYL_O, CARBOXYLIC_O
and CARBOXYLATE_O
Requires: molecule
Label_fg_phosphorous ../lib/silico_prop.pm
----------------------------------------------------
Label phosphorous containing functional groups
Requires: molecule
Label_fg_planar_carbon ../lib/silico_prop.pm
----------------------------------------------------
Label functional groups containing planar carbon atoms such as amide,
carboxylate and guanidine / guanidinium groups Carboxylate carbon if bonded
to two oxygen atoms that have only one bonded atom each. Carbonyl oxygen Ester
if connected to double bonded O and single bonded O with two carbon
attachments if double bond to oxygen
Label_fg_sulphur ../lib/silico_prop.pm
----------------------------------------------------
Label sulphur containing functional groups
Requires: molecule
Label_fg_tfm ../lib/silico_prop.pm
----------------------------------------------------
Label trifluoromethyl groups
Requires: molecule
Label_solvent ../lib/silico_prop.pm
----------------------------------------------------
Label solvent molecule atoms $atom->{FG}{SOL};
Requires: molecule, maximum number of atoms in solvent
Returns: number of water molecules
Label_waters ../lib/silico_prop.pm
----------------------------------------------------
Label water molecule atoms $atom->{FG}{W};
Requires: molecule, flag to force reading of all atoms in mol_has_h
Returns: number of water molecules
Lipophilicity_dipole ../lib/silico_rbox.pm
----------------------------------------------------
Calculate the polar vector of a molecule along the Y axis
Requires: molecule
Mae_get_tok ../lib/silico_mmod.pm
----------------------------------------------------
Read mae file, process tokens and return one at a time
Requires: filehandle
Returns: token (string)
Mae_ignore_block ../lib/silico_mmod.pm
----------------------------------------------------
Read a maestro data block but ignore the contents
Requires: filehandle
Returns: nothing
Mae_parse_atoms ../lib/silico_mmod.pm
----------------------------------------------------
Read a maestro atom block
Can handle full atom records (f_m_ct) and partial atom records (p_m_ct)
Requires: filehandle, molecule, number of atoms
Returns: nothing
Mae_parse_block_header ../lib/silico_mmod.pm
----------------------------------------------------
Parse the header information in a maestro data block
Requires: filehandle
Returns: array of headers, array of header types (r: real, i: integer,
etc), array of header source programs
Mae_parse_bonds ../lib/silico_mmod.pm
----------------------------------------------------
Read a maestro bond data block
Requires: filehandle, molecule, number of bonds
Returns: nothing
Mae_parse_ct_data ../lib/silico_mmod.pm
----------------------------------------------------
Parse a maestro connection table data block (a molecule)
Requires: filehandle, molecule (can be empty);
Returns: molecule
Mae_split_data ../lib/silico_mmod.pm
----------------------------------------------------
Split data into tokens
Requires: lines from input file (string)
Returns: array
Magnitude ../lib/silico_geom.pm
----------------------------------------------------
Calculates the magnitude of a vector.
Requires: vector as an array
Returns: scalar
Make_alternate_aa_forms ../lib/silico_residue.pm
-------------------------------------------------------
Generate alternate amino acid protonation states from parent structure
Requires: Molecule, hash
Returns: Nothing
Make_amides_trans ../lib/silico_geom.pm
----------------------------------------------------
Sets the C-N-C(O)-C bond in all secondary amides to 180 degrees
Requires: molecule, list of atoms to check (uses entire molecule if this
is not defined)
Returns: nothing
Make_aromatic_bonds ../lib/silico_rings.pm
-----------------------------------------------------
Make aromatic bonds (bondorder 4) in all 6-membered aromatic rings
Rings must contain only C and N
Requires: molecule, kekule flag
Returns: nothing
Make_atomset ../lib/silico_sybyl.pm
-----------------------------------------------------
Make an ATOMSET record from atoms carrying a particular flag
Flag must be defined and be set to true (ie not zero or undefined). Atomsets
are written out in mol2 format as static sets
Requires: molecule, set name, flag1, flag2, ...
Returns: count of atoms having that flag
Make_atomset_colour ../lib/silico_sybyl.pm
-----------------------------------------------------
Make an ATOMSET record from atoms carrying an atom->{COLOUR} flag. This
produces atomsets compatible with Sybyl
Atomsets have names of the type 'ATOM$RED'. Sybyl colours are WHITE RED
MAGENTA YELLOW ORANGE BLUE VIOLET GREEN BLUEGREEN REDORANGE CYAN PURPLE (In no
particular order).
Requires: molecule
Returns: count of atoms having that flag
Make_atomset_fg ../lib/silico_sybyl.pm
-----------------------------------------------------
Make an ATOMSET record from atoms carrying a particular functional group flag
Flag must be defined and be set to true (ie not zero or undefined). The set
name '*' will make an atomset of all functional groups Atomsets are written
out in mol2 format as static sets
Requires: molecule, set name, flag1, flag2, ...
Returns: count of atoms having that flag
Make_atomset_formal_charge ../lib/silico_mol2.pm
----------------------------------------------------
Make an ATOMSET record from atoms carrying a formal charge
Requires: molecule
Make_bins ../lib/silico_tabledata.pm
---------------------------------------------------------
Create a bin data structure
Bin data structure contains the following fields:
BINSIZE - bin size
RANGEMIN - minimium bin value
RANGEMAX - maximum bin value
UNDERFLOW - count of values less than rangemin
OVERFLOW - count of values greater than rangemin
COUNTS[i] - the number of values found for each key value for bin i
NUMBINS - number of bins
NOT_NUMERIC - count of non-numeric values found
Requires: Binsize, range minimium, range maximum
Returns: pointer to bin datastructure
Make_dendrimer ../bin/starmaker
-----------------------------------------------
Base dendrimer construction routine
Requires: ensemble
Returns: ensemble containing a single molecule
Make_flag ../lib/silico_io.pm
--------------------------------------------------
Create a flag based on input options
Use: make_flag (short_name, long_name, "description",
expects_value, default_value, prompt, verify_string, duplicate
defnition allowed)
'short name' is a short format switch starting with a single '-'
'long name' is a long format switch starting with '--'
'description' is a text description of the flag
'expects value' 0 - flag is a switch, 1 - expects scalar value, 2 - expects
array (values separated by spaces).
'default value' default value for flag (can be undef)
'option to prompt' (1 or 0) when set to 1 silico will prompt for data if it
undefined
'verify string' is used to check that the input data is of the correct type:
integer, real number, string, etc. See 'verify_input_data'
'duplicate definititions allowed'. This flag will prevent 'make flag' dying if
the flag is redefined. This is required when we wish to set default values for
a Silico standard flag
Requires: Short name, Long name, Description, Expects value?, Default
value, option to Prompt, verify string, duplicate definition
allowed flag
Returns: value the flag is to take
Make_gromacs_cell_from_pdb_cell_and_angles ../lib/silico_gromacs.pm
-------------------------------------------------------------------
Convert PDB cell information into gromacs box vectors
Requires: vector - a, b, c, alpha, beta, gamma
Returns: gromacs vector (6 numbers)
Make_molecule_copies ../lib/silico_rbox.pm
----------------------------------------------------
Generate multiple copies of molecules to be packed
Requires: ensemble of molecules to be packed, number to pack, starting
chain, starting segid, number of bonds to randomise
Returns: molecules
Make_smiles_string_from_list ../lib/silico_smiles.pm
------------------------------------------------------
Generate, from a list of atoms and tokens, a SMILES string.
Requires: List
Returns: string
Make_subset ../lib/silico_sybyl.pm
-----------------------------------------------------
Make a SUBSET (substructure set) record from atoms carrying a particular flag
Flag must be defined and be set to true (ie not zero or undefined). Atomsets
are written out in mol2 format as static sets
Requires: molecule, set name, flag1, flag2, ...
Returns: count of substructures having that flag
Make_types_summary ../lib/silico_control.pm
-------------------------------------------------------
Make a silico_msg type summary string
Requires: Types hash
Returns: string
Make_vectors_connected ../lib/silico_hydrogens.pm
---------------------------------------------------------
Make two unit vectors which are normal to and in the plane of atom -> con1 ->
con2
Makeboxmolecule ../lib/silico_geom.pm
----------------------------------------------------
Make a box molecule using (on-axis cuboid) unit cell size
Requires: molecule cell, flag to centre box on 0,0,0
Returns: box molecule
Match_amino_acid ../lib/silico_residue.pm
-------------------------------------------------------
Match a set of atoms against an amino acid.
Requires: molecule, list of atoms, hash of amino acids
Returns:
Match_amino_acid2 ../lib/silico_residue.pm
-------------------------------------------------------
Match a set of atoms against an amino acid. Revised version
Requires: molecule, list of atoms, hash of amino acids
Returns:
Maximum ../lib/silico_statistics.pm
----------------------------------------------------------
Determines the maximum value within a set of data
Requires: Array
Returns: Scalar
Maximum_minus_mean ../lib/silico_statistics.pm
----------------------------------------------------------
Determine the difference between the mean of a set of data and the maximum of
the same set.
Requires: Array
Returns: Scalar
Maximum_valences ../lib/silico_definitions.pm
-----------------------------------------------------------
Returns a hash containing, for each element, the maximum usual neutral valence
for that element.
Requires: nothing
Returns: hash
Mean ../lib/silico_statistics.pm
----------------------------------------------------------
Calculates the mean of a set of data
Requires: Array
Returns: mean (scalar quantity)
Mean_minus_minimum ../lib/silico_statistics.pm
----------------------------------------------------------
Determine the difference between the mean of a set of data and the minimum of
the same set.
Requires: Array
Returns: Scalar
Median ../lib/silico_statistics.pm
----------------------------------------------------------
Calculates the median of a set of data
Requires: Array
Returns: median (scalar quantity)
Median_absolute_deviation ../lib/silico_statistics.pm
----------------------------------------------------------
Calculates the median and median absolute deviation
See: en.wikipedia.org/wiki/Median_absolute_deviation
Requires: Array
Returns: median (scalar quantity), median absolute deveiation (scalar)
Memuse ../lib/silico_debug.pm
-----------------------------------------------------
Print out memory usage found using the SZ record of the 'ps' command
Requires: string to identify calling location.
Merck_calculate_formal_charge ../lib/silico_merck.pm
-----------------------------------------------------
Calculate the merck charge code for .mrk files
The valid charge codes are (From the charmm documentation):
Code Charge Code
0 Neutral
1 +1
2 -1
3 Radical
4 +2
5 -2
6 +3
7 -3
8 +4
9 -4
Requires: atom
Returns: charge code
Merck_charge_code_to_formal ../lib/silico_merck.pm
-----------------------------------------------------
Convert a Merck charge code to a formal charge
Merck_formal_to_charge_code ../lib/silico_merck.pm
-----------------------------------------------------
Convert a formal charge to a Merck charge code for .mrk files
Minimise_complex_with_sybyl_mmff ../lib/silico_sybyl.pm
-------------------------------------------------------
Minimise a complex with Sybyl using the MMFF forcefield keeping the protein
rigid
The location of the sybyl execuatble must be in $Silico::sybyl_exe
Temporary files are written to $Silico::temp_dir or to current working
directory if $Silico::debug is set.
Requires: Ligand, protein, number of minimisation steps (default 10000),
rms_gradient cutoff (default 0.1)
Returns: minimised ligand only (not protein) or undef if Sybyl failed
to write out a structure
Minimise_dendrimer ../bin/starmaker
-----------------------------------------------
Minimise a dendrimer
Requires: Molecule, layer number
Returns: In-situ modification of molecule
Minimise_sybyl ../lib/silico_sybyl.pm
-----------------------------------------------------
Minimise a molecule with Sybyl
The location of the sybyl executable must be in $Silico::sybyl_exe
Temporary files are written to $Silico::temp_dir, unless $Silico::debug is
set, in which case they are written to the current working directory.
Requires: molecule, Sybyl options
Returns: molecule or undef if Sybyl failed to write out a structure
Options:
QUIET Do not print advisory messages
NOPRINTSYB Do not print Sybyl data
Minimise_with_sybyl_gasteiger_marsilli ../lib/silico_sybyl.pm
-------------------------------------------------------------
Minimise a molecule with Sybyl using the TRIPOS forcefield and
Gasteiger_Marsilli charges
The location of the sybyl execuatble must be in $Silico::sybyl_exe
Temporary files are written to $Silico::temp_dir or to current working
directory if $Silico::debug is set.
Requires: molecule, number of minimisation steps (default 10000), flag
to add hydrogens using Sybyl (default don't), rms_gradient
cutoff (default 0.1)
Returns: molecule or undef if Sybyl failed to write out a structure
Minimise_with_sybyl_mmff ../lib/silico_sybyl.pm
-----------------------------------------------------
Minimise a molecule with Sybyl using the MMFF forcefield
The location of the sybyl execuatble must be in $Silico::sybyl_exe
Temporary files are written to $Silico::temp_dir or to current working
directory if $Silico::debug is set.
Requires: molecule, number of minimisation steps (default 10000), flag
to add hydrogens using Sybyl (default don't), rms_gradient
cutoff (default 0.1)
Returns: molecule or undef if Sybyl failed to write out a structure
Minimum ../lib/silico_statistics.pm
----------------------------------------------------------
Determines the minimum value within a set of data
Requires: Array
Returns: Scalar
Mmod_anneal ../lib/silico_mmod.pm
----------------------------------------------------
Write Macromodel command file for simulated annealing run
The first output structure produces is the initial, minimised structures one
structure is then written after each annealing cycle
Requires: molecule, output filebase (default anneal_tmp), minimum temp,
maximum temp, total cycle time (ps), number of annealing
cycles, forcefield, solvent, molecular dynamics timestep (fs),
number of structures to be saved from the cooling stage of the
annealing run
Returns: ensemble or undef if run failed
Mmod_calc_energy ../lib/silico_mmod.pm
----------------------------------------------------
Use Batchmin to to a 'single point' energy calculation
The output .mmo file is read and molecular energy vaules are stored as
SDF_DATA fields
Requires: molecule, output filebase, number of steps, solvent
Returns: ensemble or undef if run failed
Mmod_csearch ../lib/silico_mmod.pm
----------------------------------------------------
Write Macromodel command file for a conformational search run
Requires: molecule or ensemble (all molecules must be identical).
Optional or via flags: solvent, search_steps,
filebase(otherwise temp filenames are used) Other arguments
are passed via flags
Returns: ensemble unless nowait flag is specified (then 1)
Mmod_csearch_write_com ../lib/silico_mmod.pm
----------------------------------------------------
Write Macromodel command file for a conformational search run
Requires: molecule or ensemble (all molecules must be identical).
Optional or via flags: solvent, search_steps,
filebase(otherwise temp filenames are used) Other arguments
are passed via flags
Returns: ensemble or undef if run failed
Mmod_logfile_normal_termination ../lib/silico_mmod.pm
-----------------------------------------------------
Find if Batchmin logfile terminated properly
Mmod_logfile_num_conf ../lib/silico_mmod.pm
----------------------------------------------------
Count number of Conf lines in conformational search logfile
Mmod_make_complex ../lib/silico_mmod.pm
----------------------------------------------------
Create a receptor/ligand complex for use with Macromodel
Can be used to specify fixed and frozen atoms in the receptor
Defines atom->{MMOD}{FXAT} flag for receptor atoms and atom->{MMOD}{SUBS} flag
for ligand. Also sets flags mol->{MMOD}{FXAT} and mol->{MMOD}{SUBS}
DEBG 17 needs to be set so that all intramolecular interactions are not
discarded by Macromodel
Requires: Protein (receptor), ligand, forceconst1, forceconst2,
forceconst3 freeze distahce, constraint scheme, flag to
constrain hydrogens freeze atoms more than this distance from
the ligand
Returns: Molecule or undef if things go wrong
Mmod_min ../lib/silico_mmod.pm
----------------------------------------------------
Minimise a molecule using macromodel
If filebase is not specified, temporary files are written to
$Silico::temp_dir, unless $Silico::debug is set, in which case they are
written to the current working directory.
Requires: Molecule, filebase (default 'mini_tmp'), max number of steps,
final gradient forcefield, solvent, minimsation method
Returns: ensemble or undef if things go wrong
Mmod_min_h ../lib/silico_mmod.pm
----------------------------------------------------
Minimise hydrogens using macromodel. All other atoms are constrained
Requires: Molecule, filebase (default 'mini_tmp'), max number of steps,
final gradient forcefield, solvent, minimsation method
Returns: ensemble or undef if things go wrong
Mmod_mult_min ../lib/silico_mmod.pm
----------------------------------------------------
Use Batchmin to do a multiconformer minimisation
Requires: molecule, output filebase, number of steps, solvent
Returns: ensemble or undef if run failed
Mmod_qikprop ../lib/silico_mmod.pm
----------------------------------------------------
Run qikprop
Requires: filebase of macromodel com file, flag not to remove run files
Returns: molecule or undef if things go wrong
Mmod_run ../lib/silico_mmod.pm
----------------------------------------------------
Run macromodel
Will wait for output and read it in. Setting the nowait flag will cause it to
return as soon as the job has started, without returning output
Requires: filebase of macromodel com file, flag not to wait for job to
complete, flag not to remove run files,
number of used licenses (schrodinger_wait_for_license_availability
has already been run);
Returns: molecule or 1 if nowait flag is set.
Mol2_atom_record ../lib/silico_mol2.pm
----------------------------------------------------
Read in a @<TRIPOS>ATOM record.
Called from read_mol2. Checks to see if more than half the atoms have zero Z
coordinates, and sets mol->{HAS_BAD_GEOM} if this is the case.
Requires: molecule
Returns: 1 if successful, undef otherwise
Mol2_bond_record ../lib/silico_mol2.pm
----------------------------------------------------
Read in @<TRIPOS>BOND record.
Called from read_mol2.
Requires: molecule
Returns; 1 or undef on failure
Mol2_centroid_record ../lib/silico_mol2.pm
----------------------------------------------------
Read a tripos centroid feature record
The centroid is stored in $mol->{FEATURES}
Note: This code assumes that the CENTROID record is located after the SET
record. This is normally true but not strictly required.
Requires: molecule
Returns: nothing
Mol2_crystal_record ../lib/silico_mol2.pm
----------------------------------------------------
Read in a @<TRIPOS>CRYSIN record
Called from read_mol2().
Unit cell data is placed in hash keys within $mol.
Requires: molecule
Returns: Nothing
Mol2_fastsplit ../lib/silico_split.pm
-----------------------------------------------------
Split a multimolecule mol2 file into individual molecules without parsing the
file
Requires: infile, output directory (optional), output style (see
subroutine format_oname) max number of structures per output
file
Returns: list of files created
Mol2_molecule_record ../lib/silico_mol2.pm
----------------------------------------------------
Read in a @<TRIPOS>MOLECULE record.
Called from read_mol2.
Requires: molecule
Returns; 1 or undef on failure
Mol2_process_comments ../lib/silico_mol2.pm
----------------------------------------------------
Extract data from mol2 comments strings such as Dock energies and add it to a
molecule
Called from read_mol2.
Requires: molecule, comments
Returns: nothing
Mol2_set_formal_charges ../lib/silico_mol2.pm
----------------------------------------------------
Assign atomic formal charges based on FORMAL_CHARGE sets
FORMAL_CHARGE atomsets are then deleted
Requires: molecule
Mol2_set_record ../lib/silico_mol2.pm
----------------------------------------------------
Read in a @<TRIPOS>SET record.
Called from read_mol2. Only reads static sets of atoms. Ignores dynamic sets
or sets of bonds or substructures.
Atoms are placed in a record: mol->{ATOMSET}{<setname>}[<atoms>] and also
$mol->{ATOMSET_BY_NUMBER}[$i]
Requires: molecule
Returns: nothing
Mol2_substructure_record ../lib/silico_mol2.pm
----------------------------------------------------
Read in a @<TRIPOS>SUBSTRUCTURE record.
Called from read_mol2. Creates the following arrays: mol->{SUB_SUBNAME}, an
array of substructure names; mol->{SUB_ROOTATOM}, an array of root atoms;
mol->{SUB_CHAIN} (optional) an array of chains
Requires: molecule
Returns; 1 or undef on failure
Mol_add_atom ../lib/silico_molecules.pm
---------------------------------------------------------
Create a new atom and add it to the specified molecule.
Requires: molecule, atom name, atom element, x, y, z, subname, subid.
Returns: the new atom
Mol_add_hydrogens ../lib/silico_hydrogens.pm
---------------------------------------------------------
Add hydrogens to a molecule
By default the routine tries to approximate the protonation state at
physiological pH. The charge state is generated by mol_type_sybyl
Carboxylic acids are deprotonated.
Non-aromatic amines are protonated.
Aromatic and heterocylic amines are not protonated
This can be turned of using the fill_valence flag.
The Sybyl atom typing routines are used to generate atom types
Requires: Molecule, flag to add all hydrogens (routine otherwise
approximates protonation state at physiological pH), flag to
add polar (1) or nonpolar (carbon) hydrogens (2), flag to
delete hydrogens only from atoms where hydrogens need to be
added. Otherwise all hydrogens are deleted first and then
appropriate hydrogens are added back.
Returns: Number of hydrogens added, number of hydrogens deleted, total
change
Mol_add_hydrogens_nocoords ../lib/silico_hydrogens.pm
---------------------------------------------------------
Add hydrogens to a molecule that lacks coordinates (e.g. SMILES)
Returns: Number of hydrogens added, number of hydrogens deleted (always
zero), total change
Mol_add_lone_pairs ../lib/silico_hydrogens.pm
---------------------------------------------------------
Add lone pairs to N, O or S atoms in a molecule
Requires: Molecule
Returns: Number of lone pairs
Mol_aromatic_smiles ../lib/silico_smiles.pm
------------------------------------------------------
Of a list of atoms, mark each one as aromatic if it is.
Requires: molecule, optional list
Returns: nothing
Mol_assign_charge_groups_monte_carlo ../lib/silico_gromacs.pm
-------------------------------------------------------------
Allocate charge groups using a Monte Carlo method
Least squares minimisation of the per atom deviation from integer charges in
each charge group
Requires: molecule, maximum number of atoms in group, maximum iterations
(default 10^6)
Mol_assign_gromos_angles ../lib/silico_gromacs.pm
-------------------------------------------------------
Assign gromos angle types based on the ff54a7 forcefield
Mol_assign_gromos_atomtypes ../lib/silico_gromacs.pm
-------------------------------------------------------
Generate Gromos atom types (based on 54a7 ff)
Types are put in to $atom->{TYPE} and in $atom->{TYPE}
Assumes that bond orders are complete and correct and that polar hydrogens are
present.
Will only assign united atom types if a carbon is deficient in hydrogens.
Various solvent types (DMSO, Carbon-tet, Chloroform, etc) are not implemented.
Requires: molecule
Returns: -1 if there was an atom typing error.
Mol_assign_gromos_bonds ../lib/silico_gromacs.pm
-------------------------------------------------------
Assign gromos bond types based on the ff54a7 forcefield
Mol_assign_gromos_dihedrals ../lib/silico_gromacs.pm
-------------------------------------------------------
Assign gromos dihedral types based on the ff54a7 forcefield
Mol_bonded_interactions ../lib/silico_molecules.pm
---------------------------------------------------------
Creates tables containing bonds, angles, dihedrals and improper dihedrals in a
molecule
Calls: Mol_find_all_bonds Mol_find_all_angles Mol_find_all_dihedrals
Mol_find_planar_impropers Mol_find_double_bond_impropers
Requires: Molecule, flag to ignore waters, flag to skip hydrogen
dihedrals, flag to find only unique dihedrals
Returns: Nothing
Mol_calc_charge ../lib/silico_molecules.pm
---------------------------------------------------------
Calculates the total charge on a molecule and checks that it is integral
Also can calculate the charge on each residue and on each segment
Will return a warning if there are missing charges or if the total charge is
not integral
Requires: Molecule, flag to calculate residue totals, flag to calculate
segment totals
Returns: ERR if there are atoms with no set charge Total charge
otherwise
Mol_calc_hcount ../lib/silico_hydrogens.pm
---------------------------------------------------------
Calculate number of hydrogens on each heavy atom (but don't add them).
Requires: Molecules, atomlist, fill_valence flag (default on)
Sets: atom->{HCOUNT}, $atom->{HMISSING}
Returns: Nothing
Mol_check ../lib/silico_check.pm
-----------------------------------------------------
Check a molecule for self-consistency
This routine checks for problems with the internal representation of the
molecule.
Checks for undefined fields - ELEMENT, ELEMENT_NUM, NUM, NAME, that all atoms
connected to another atom actually exist and that atoms are not connected to
themselves.
Atoms with problems are marked with the flag $atom->{ERROR}
Requires: molecule.
Returns: minor error count or -1 if there is a major problem
Mol_check_all ../lib/silico_check.pm
-----------------------------------------------------
Call all the mol_check routines
Requires: molecule.
Returns; 0 if everything is OK. Otherwise returns the minor error count and
returns -1 if there is a major problem
Mol_check_amides ../lib/silico_check.pm
-----------------------------------------------------
Subroutine that checks for non-trans amides
Checks two dihedrals: C-C-N-C and O-C-N-H, as each of these should be 180
degrees
Requires: molecule, name of output file
Returns: Number of atoms in distorted amide groups
Mol_check_aromatic_bonds ../lib/silico_check.pm
-----------------------------------------------------
Subroutine to look for atoms, not in aromatic rings, which have aromatic bonds
This benefits from mol_check_distorted_rings being run first though that is
not strictly necessary
Requires: molecule
Returns: Number of atoms with out-of-place aromatic bonds
Mol_check_atom_overlap ../lib/silico_check.pm
-----------------------------------------------------
Pariwise check that no atoms in molecule overlap
Checks that atoms are not closer than 90% of the min VDW distance.
Requires: molecule, flag to supress warning messages and atom labelling
Returns: Overlap count
Mol_check_bondlengths ../lib/silico_check.pm
-----------------------------------------------------
Check molecule bondlengths
Sets $atom->{BONDLENGTH} on short and long bonds (generally those more than
10% longer than standard bond lengths)
Requires: molecule.
Returns; 1 if OK or -1 if there is a major problem
Mol_check_bondorders ../lib/silico_check.pm
-----------------------------------------------------
Simple check that bondorders are OK
An atom->{ERROR} flag is set on each offending atom
Requires: molecule,
Returns: 0 if OK, otherwise number of unusual bonds found
Mol_check_distorted_rings ../lib/silico_check.pm
-----------------------------------------------------
Look for distorted aromatic rings
Requires: molecule
Returns: Number of bent aromatic rings
Mol_check_elements ../lib/silico_check.pm
-----------------------------------------------------
Check to make sure that all atom elements are sensible
Requires: molecule
An atom->{ERROR} flag is set on each offending atom
Returns: Number of errors
Mol_check_unit_cell ../lib/silico_molecules.pm
---------------------------------------------------------
Make sure a molecule's unit cell is present
Requires: Molecule
Returns: 1 if OK, 0 otherwise
Mol_check_valences ../lib/silico_check.pm
-----------------------------------------------------
Simple check that atom valences are OK
Calls atom_check_valence
Requires: molecule, flag to mark that molecule is missing hydrogen
atoms, flag to convert non-ring aromatic bonds to
single/double bonds
Returns: Negative of number of atoms with abberant valences
An atom->{VALENCE} flag is set on each offending atom
Mol_copy_rec ../lib/silico_split.pm
-----------------------------------------------------
Recursively split atoms into a new ensemble
Called from mol_split
Requires: molecule, atomnumber, ensemble, submol
Returns: nothing
Mol_copy_unit_cell ../lib/silico_molecules.pm
---------------------------------------------------------
Copies as much as is defined of a unit cell record from one Silico molecule to
another.
Requires: two molecules
Returns: nothing
Mol_count_heavy_atoms ../lib/silico_prop.pm
----------------------------------------------------
Calculate the number of heavy (non-hydrogen) atoms in a molecule.
Requires: molecule
Returns: whole number
Mol_count_residue_contacts ../lib/silico_sequence.pm
--------------------------------------------------------
Count the number of non-neigbour atom-atom contacts for each residue of a
protein
Requires: Molecule
Mol_count_rot_bonds ../lib/silico_prop.pm
----------------------------------------------------
Count rotatable bonds
Rotatable bonds are defined as being single, connected to more than one atom
(excluding hydrogen), not amide bonds and not in a ring with less than 10
atoms.
This is close to the definition used in Veber et al. J. Med. Chem. 2002, 45,
2615
Requires: molecule
Sets: $mol->{SDF_DATA}{ROT_BONDS};
Returns: num rotatable bonds
Mol_count_valence_electrons ../lib/silico_mopac.pm
-----------------------------------------------------
Simplistic routine to calculate the total number of valence electrons and work
out if molecule is a radical or not
Requires: Molecule, charge
Returns: total number of valence electrons, flag denoting odd number of
valence electrons
Mol_delete_duplicate_atoms ../lib/silico_molecules.pm
---------------------------------------------------------
Delete an apparently duplicated atom. Looks for atoms that are close in space
(within 0.001 A). Then checks to make sure they are the same element. No
further checks are done. Hydrogen atoms are deleted where these are attached
to deleted heavy atoms, unless a flag is sent to keep them. This flag has no
effect where the hydrogen atoms are deleted by reason of being duplicates in
their own right.
Requires: Molecule, tolerance, optional flag to keep hydrogens when
these are attached to deleted atoms
Returns: Number of atoms deleted
Mol_find_all_angles ../lib/silico_molecules.pm
---------------------------------------------------------
Find all atom-atom-atom angles in a molecule
Angle array is stored in $mol->{ANGLES}
Label_waters must be run first if water is to be ignored
Requires: Molecule, (optional) flag to ignore waters
Returns: Arrayref of angles, each of which is an arrayref of 3 atom
numbers
Mol_find_all_bonds ../lib/silico_molecules.pm
---------------------------------------------------------
Find all bonds in a molecule
Bond array is stored in $mol->{BONDS}
Label_waters must be run first if water is to be ignored
Requires: Molecule, (optional) flag to ignore waters
Returns: Arrayref of bonds, each of which is an arrayref of 2 atom
numbers
Mol_find_all_dihedrals ../lib/silico_molecules.pm
---------------------------------------------------------
Find all atom-atom-atom-atom dihedral (torsion) angles in a molecule
Dihedral array is stored in $mol->{DIHEDRALS}
Label_waters must be run first if water is to be ignored
Requires: Molecule, (optional) flag to ignore waters, (optional) flag to
ignore dihedrals containing hydrogen, flag to only find unique
dihedrals (ie only one dihedral per bond)
Returns: Arrayref of sorted dihedrals, each of which is an arrayref of
4 atom numbers
Mol_find_chiral_impropers ../lib/silico_molecules.pm
---------------------------------------------------------
Find improper torsion angles for chiral centres (some force fields require
this)
Impropers are stored in $mol->{C_IMPROPERS}
Returns improper torsions where an atom has more than two attached atoms Only
one improper is produced in cases where an atom has four attached atoms using
the first three connected atoms.
Requires: Molecule
Returns: Arrayref of improper dihedrals, each of which is an arrayref
of 4 atom numbers
Mol_find_chiral_impropers_gms ../lib/silico_gromacs.pm
-------------------------------------------------------
Find improper torsion angles for chiral centres (some force fields require
this)
Impropers are stored in $mol->{C_IMPROPERS}
Returns improper torsions where an atom has three attached atoms
Requires: Molecule
Returns: Array of improper dihedrals
Mol_find_donors_acceptors ../lib/silico_hb.pm
--------------------------------------------------
Count molecule H-bond donors and acceptors and label them
Requires that hydrogens are present on molecule
Donors are defined as N, O or S with attatched H.
Acceptors: are N, O, but not in a planar 5-memebered ring. N is counted
provided valence < 4 except for amides; S is counted provided valence < 3;
Atoms are labelled as HBACCEPTOR and/or HBDONOR
Requires: molecule
Returns: number of donors (scalar), number of acceptors (scalar)
Mol_find_double_bond_impropers_gms ../lib/silico_gromacs.pm
-----------------------------------------------------------
Find all improper dihedrals defined by double bonds
Requires: Molecule
Returns: Array of improper dihedrals, each of which is an array of 4
atom numbers
Mol_find_neighbouring_atoms ../lib/silico_prop.pm
----------------------------------------------------
Make a list of connected atom properties in the 'CONNECTED' hash for each atom
Labels counts heteroatoms as 'HET'. Counts nonhydrogens as 'HEAVY'. Carbonyls
as 'CO'. Thioketo/nes as 'CS'
Requires: Molecule, optional list of atoms
Returns: Nothing
Mol_find_planar_impropers ../lib/silico_molecules.pm
---------------------------------------------------------
Finds improper dihedrals centred on planar atoms
Impropers are stored in $mol->{P_IMPROPERS}
J
|
I
/ \
K L
Orders improper dihedrals suitable for the OPLS force field
Atom I is always position 2, while the unique atom is usually position 1
Note this subroutine needs a good clean up to remove duplication
Requires: Molecule, flag to ignore waters
Returns: Arrayref of improper dihedrals, each of which is an arrayref
of 4 atom numbers
Mol_find_planar_impropers_gms ../lib/silico_gromacs.pm
-------------------------------------------------------
Find improper torsion angles for planar atoms for gromacs
Returns improper torsions where an atom has three attached atoms
Requires: Molecule
Returns: Array of improper dihedrals
Mol_fix_atom_names ../lib/silico_molecules.pm
---------------------------------------------------------
Removes initial and final spaces from atom names. Other spaces are replaced by
underscores.
Requires: molecule
Returns: nothing
Mol_fix_multiple_bonds_general ../lib/silico_molecules.pm
---------------------------------------------------------
Determine the bondorder score of any bond. Note: This subroutine is probably
deficient in setting bondorders of 5-membered planar rings with poor bond
lengths and no hydrogens.
Requires: molecule
Returns: nothing
Mol_fix_sodiums ../bin/make_index
------------------------------------------------
Ensures that all atoms named NA are recognised as sodium atoms.
Requires: Molecule
Returns: Nothing
Mol_fragment ../lib/silico_fp.pm
--------------------------------------------------
Generate molecule fragments and save in both an array and a hash
By default all unique fragments are returned. ALL fragments (including
duplicates) are returned if the 'return_paths' flag is set. $mol->{PATH_ARRAY}
is also set in this case.
Requires: molecule, fragment typing method, flag to add hydrogens, flag
to delete preexisting fragments, flag to return paths, flag to
be quiet
Sets: $mol->{FRAGMENT_HASH}, $mol->{FRAGMENT_ARRAY}, $mol->{FP_HASH}
and $mol->{FP_ARRAY} and optionally PATH_ARRAY
Returns: Array of fragments
Mol_fragment_and_path ../lib/silico_fp.pm
--------------------------------------------------
Generate ALL molecule fragments and corresponding atom paths
Paths and fragment arrays are stored as mol->{FRAGMENT_ARRAY} and {PATH_ARRAY}
Requires: molecule, optional: atomlist, fragment typer, min fragment
size max fragment size, flag to stop sorting fragments by
size, flag to force generation of fragments rather than use
cached ones
Returns: Array of fragments
Mol_get_functional_group ../lib/silico_prop.pm
----------------------------------------------------
Get array of functional groups given a functional group name
Requires: molecule, group name (string)
Returns: pointer to array of functional groups (each fg is a hash)
Mol_get_sequence ../lib/silico_sequence.pm
--------------------------------------------------------
Extract the amino or nucleic acid sequence from a molecule
Requires: Molecule, optional options string
Returns: Ensemble of sequences. One sequence for each CHAIN or SUBID
Options: NOHETATM - ignore all pdb HETATM records
Mol_has_h ../lib/silico_hydrogens.pm
---------------------------------------------------------
Find out if a molecule has no, polar or all hydrogens
This check is quick and not exhaustive. Note that it is fooled by molecules
that contain a some hydrogens but not all valences are full
Requires: molecule, flag to check if ANY hydrogens are present in file
Returns: 0 if no hydrogens, 1 if polar hydrogens, 2 nonpolar hydrogens
(ie connected to carbon) or -1 if hydrogens are present but
bonds are not. Also sets $mol->{HAS_HYDROGENS}
Mol_label_alpha_fg ../lib/silico_prop.pm
----------------------------------------------------
Label atoms as being alpha to a given functional group atom
Requires that mol_label_functional_group has been run
Requires: Molecule
Returns: Nothing
Mol_label_beta_fg ../lib/silico_prop.pm
----------------------------------------------------
Label atoms as being beta to a given functional group atom
Requires that mol_label_functional_group and mol_label_alpha_fg have been run
Requires: Molecule
Returns: Nothing
Mol_label_functional_group ../lib/silico_prop.pm
----------------------------------------------------
General functional group assigner
Label atoms of important functional groups and generate approximate charge
groups for carboxylates, amino groups, sulphate groups, guanidines and
guanidiniums
Identifies the following functional group atoms with the following
$atom->{FG}{<group>}
AA_CA AA_CTER AA_N AA_NTER ACETAL_O ACID_HALIDE_C ACID_HALIDE_O
ALCOHOL_C ALDEHYDE_C ALDEHYDE_O ALKENE_CH0 ALKENE_CH1 ALKENE_CH2
ALKOXIDE_C ALKOXIDE_O ALKYL_PHOSPHATE_P ALKYNE ALKYNE_ALPHA_CH0
ALKYNE_ALPHA_CH1 ALKYNE_ALPHA_CH2 ALKYNE_ALPHA_CH3 ALKYNE_CH1
ALPHA_GUANIDINE_C ALPHA_GUANIDINIUM_C AMIDE_C AMIDE_O AMIDO_C AMIDO_N
AMINO_C AMMONIUM_C AROM_NITRILE_C AROM_NITRILE_N
AROMATIC
CARBAMATE_C CARBAMATE_N CARBAMATE_O CARBANION_ALPHA_C CARBANION_C
CARBONYL_ALPHA_C CARBONYL_C CARBOXYLATE_C CARBOXYLATE_O CARBOXYLIC_C
CARBOXYLIC_O CHLOROALKENE_C CHLOROALKENE_Cl DIALKYL_PHOSPHATE_ESTER_O
DIALKYL_PHOSPHATE_P DICHLOROALKENE_C DIOL_C DISULFIDE_S DPE_O
ESTER_C ESTER_O ETHER_C ETHER_O FORMYL_C FORMYL_O
GUANIDINE_C GUANIDINE_N GUANIDINIUM_C GUANIDINIUM_N
IMIDE_C IMIDE_N IMIDE_O
KETONE_C KETONE_O
METHYL_C MONOALKYL_PHOSPHATE_ESTER_O MPE_O
NITRILE_ANION_ALPHA_C NITRILE_ANION_C NITRILE_ANION_N NITRILE_C
NITRILE_N NITRO_C NITRO_N NITRO_O
PHOSPHATE_ESTER_O PHOSPHATE_O PHOSPHATE_P PHOSPHONATE_C
PHOSPHONATE_ESTER_C PHOSPHONATE_O PHOSPHONATE_P PHOSPHONIUM_C
PHOSPHONIUM_P P_AMIDE_N P_AMINO_C P_AMINO_N P_AMMONIUM_C P_AMMONIUM_N
Q_AMMONIUM_N
SN_ALPHA_C SULFIDE_C SULFIDE_S SULFONAMIDE_C SULFONAMIDE_N
SULFONAMIDE_N_ALPHA_C SULFONAMIDE_O SULFONAMIDE_S SULFONATE_C
SULFONATE_O SULFONATE_S SULFONE_O SULFONE_S SULFOXIDE_C SULFOXIDE_O
SULFOXIDE_S S_AMIDE_N S_AMINO_C S_AMINO_N S_AMMONIUM_C S_AMMONIUM_N
S_CARBAMATE_N
TFM_C TFM_F THIOLATE_C THIOLATE_S THIOL_C THIOL_S TRIOL_C T_AMIDE_C
T_AMIDE_N T_AMINO_C T_AMINO_N T_AMMONIUM_C T_AMMONIUM_N T_CARBAMATE_N
UREA_C UREA_N UREA_O
List of all functional groups are stored in mol->{FG}
Charge groups are stored as an array of arrays in mol->{CHARGE_GROUP}
Note 1: The routine molecule_find_planar_atoms should be run first although it
will be run within this routine if it has not already
Note 2: This routine requires that bond orders are correct
Mol_label_heterocycles ../lib/silico_prop.pm
----------------------------------------------------
Label atoms in heterocyclic rings
Requires that find_rings has been run and that bond orders are present and
that aromatic rings are represented using aromatic bonds (ie
make_aromatic_bonds has been run). List of heterocycles is also put into
$mol->{HETEROCYCLES}
Requires: molecule, maximum ring size (default 8), optional prefix to
add to heterocycle name 'eg HET'
Returns: List of heterocycles in this molecule
Mol_label_smiles_invariants ../lib/silico_smiles.pm
------------------------------------------------------
Label all atoms in a molecule subset with their SMILES invariants
This is based on the CANGEN algorithm described in Weininger, Weininger and
Weininger, J. Chem. Inf. Comput. Sci. 1989, 29, (2), 97-101.
Requires: molecule, optional subset of atoms to use
Returns: nothing
Mol_label_united_atom ../lib/silico_prop.pm
----------------------------------------------------
Calculate missing hydrogens for carbon atoms and add UNITED_ATOM and
MISSING_HYDROGEN labels
Used for united atom forcefields
Requires: molecule
Returns: nothing
Mol_map_sequence ../lib/silico_sequence.pm
--------------------------------------------------------
Map residues of molecule file onto a sequence
Adds the atoms of each molecule residue to the sequence residue array
@{%res->{ATOMS}}
Requires; molecule, sequence
Returns: Nothing
Mol_move_atoms_into_cell ../lib/silico_geom.pm
----------------------------------------------------
Translate all atoms into the unit cell (ie into the range 0 -> cell_dim).
Requires: Molecule, cell
Returns: Nothing
Mol_move_into_cell ../lib/silico_geom.pm
----------------------------------------------------
Translate a molecule into a unit cell using the centroid of the molecule as a
reference
Unit cell has coordinates starting at 0,0,0
Requires: Molecule, cell, flag to move based on position the 'middle'
atom of the molecule rather than centroid (much faster).
Returns: Nothing
Mol_move_into_cell_using_cell_vectors ../lib/silico_gromacs.pm
--------------------------------------------------------------
Translate a molecule into a unit cell using cell_vecltors
Requires: Molecule, cell, flag to move based on position the 'middle'
atom of the molecule rather than centroid (much faster).
Returns: Nothing
Mol_partition_on_bond ../lib/silico_geom.pm
----------------------------------------------------
Label atoms on one side of a bond and not the other
Is expected to fail if the bond is within a ring
Requires: molecule, bond atom 1 (static), bond atom 2 (to move)
Returns: Time taken
Mol_partition_on_bond2 ../lib/silico_geom.pm
----------------------------------------------------
Label atoms on one side of a bond (best non-recursive version)
Will fail if start atom is in a ring
Requires: molecule, bond atom 1 (static), bond atom 2 (to move), anchor
atom
Returns: List of stationary atoms, list of mobile atoms
Mol_path_to_fragments ../lib/silico_fp.pm
--------------------------------------------------
Convert an atom path into fragments
Uses $Silico::fp_fragment_typer.
Atom types; element (atomic element), p_np (polar [p] or nonpolar
[n]) or none (all set to X)
Bond types; simple (set to single, double/aromatic, triple), none
(all set to single)
Requires: molecule, path, typer (optional otherwise uses
$Silico::fp_fragment_typer);
Returns: fragment
Mol_rama ../lib/silico_rama.pm
----------------------------------------------------
Extract backbone dihedral information from a molecule
Requires: Molecule
Returns: RAMADATA record or undef on error
Sets: An array: $mol->{RAMA}[<count>]{<VAR>} where <VAR> is PHI,
PSI, SUBID, SUBNAME, LABEL, @ATOMNUMS
Mol_rama_angles ../lib/silico_rama.pm
----------------------------------------------------
Caculate Ramachandran angles for RAMADATA
Requires: molecule
Sets: $mol->{RAMADATA}[$rescount]{PHI} and
$mol->{RAMADATA}[$rescount]{PSI} = $psi
Mol_read_error ../lib/silico_io.pm
--------------------------------------------------
Print an error on failing to read molecule data from a file
Requires: filename, flag to write error message and die
Returns: Nothing
Mol_rename_atoms ../lib/silico_molecules.pm
---------------------------------------------------------
Name atoms using one of several methods:
Consecutive; Atom numbering increases by atom
Consecutive-H; Atom numbering increases by atom, but hydrogens are named
after the parent heavy atom
Element; Atom numbering is independent for each element
Element-H; As for element, but hydrogens are named after the parent heavy
atom
Requires: molecule, method (consecutive, element, consecutive-h), flag
to only number if existing names are not unique
Returns: Nothing
Mol_renumber_residues ../bin/make_index
------------------------------------------------
Renumbers residues based on the order in which they are listed in the file
Requires: Molecule
Returns: Nothing
Mol_renumber_residues ../bin/mol_combine
-------------------------------------------------
Renumber residues in a molecule
Returns: min, max
Mol_renumber_substructures ../lib/silico_molecules.pm
---------------------------------------------------------
Renumbers substructures so all residues are numbered sequentially from 1
Increments count on SUBID, SUBNAME, SEGID, or CHAIN
Requires: Molecule, starting number (optional, default 1)
Returns: Highest new substructure number
Mol_rescale_bonds ../lib/silico_geom.pm
----------------------------------------------------
Rescale all bond lengths in a molecule, based on either a scaling factor, or
an optimum average C-C bond length.
Requires: Molecule, one of either scaling factor or target length
Returns: Nothing
Mol_rotate_euler{ ../lib/silico_geom.pm
----------------------------------------------------
Rotates a molecule using Euler angles
Uses the 'x convention'. See http://demonstrations.wolfram.com/EulerAngles/
Requires: mol, phi, theta, psi (angles in radians)
Returns: rotated molecule
Mol_score_hybridisation ../lib/silico_molecules.pm
---------------------------------------------------------
Determine the hybridisation state of each atom in a molecule.
Requires: molecule
Returns: nothing
Mol_sdf_stereo ../lib/silico_sdf.pm
---------------------------------------------------
Crudely use SDF stereo descriptors to convert 2D to 3D files
WARNING: This method works for simple molecules but will fail for complex,
fused systems. The minimised result from this should be checked with
sdf_check_chiral_parity
Assumes molecule has been squashed into the XY plane Adds a hydrogen atom to
carbons if there valences are not filled
Requires: molecule
Returns: nothing
Mol_set_source_data ../lib/silico_io.pm
--------------------------------------------------
Set up molecule source data such as SOURCE_FILE_TYPE, SOURCE_FILE_NAME, etc
Requires: molecule, file_record, format (optional)
Returns: nothing
Mol_smiles_string ../lib/silico_smiles.pm
------------------------------------------------------
Create a SMILES string from a molecule.
Requires: molecule, atom list, flags to generate explicit bondorders,
explicit hydrogens (1 = all atoms, 2 = only where present),
Kekule bonds, to mark missing hydrogens in molecule
Sets $mol->{SMILES}
Returns: string
Mol_sort_smiles ../lib/silico_smiles.pm
------------------------------------------------------
Sort the atoms in a molecule into a canonical order based on the smiles
representation
Runs mol_smiles_string if required;
Requires: molecule
Returns: canonical smiles string
Modifies: sorted molecule
Mol_tanimoto ../lib/silico_fp.pm
--------------------------------------------------
Calculate the Tanimoto coefficient given two molecules
Tanimoto coeff = Num common fragments / Num fragments in mol1 + Num fragments
in mol2 - Num common fragments
Tversky coeff = Num common fragments / alpha (Num fragments in mol1 - Num
common fragments) + beta (Num fragments in mol2 - Num common fragments) + Num
common fragments
alpha = 0 and beta = 1 => Molecule 2 as a substructure of Molecule 1
alpha = 1 and beta = 2 => Molecule 2 as a superstructure of Molecule 1
Requires: hash1, hash2, (alpha, beta coefficiencts for Tversky, optional)
Returns: Tanimoto coefficient
Mol_transfer_coordinates ../lib/silico_molecules.pm
---------------------------------------------------------
Transfer coordinates from molecule 2 to to molecule 1
Requires: molecule 1, molecule 2
Returns: new molecule with properties of molecule 1 and coordinates of
molecule2
Mol_type_mmod ../lib/silico_mmod.pm
----------------------------------------------------
Macromodel atom type routine
Assumes that structures are three-dimensional (ie not planar 2D
representations) and have complete bond types. Atom geometry is used to
identify aromatic rings and planar nitrogen atoms. Does not assume that
hydrogens are present. Makes primary amines N.4 and makes O-C=O into
carboxylate groups if explicit hydrogens are not present.
Requires: molecule.
Returns: Macromodel atom type.
Mol_type_sybyl ../lib/silico_mol2.pm
----------------------------------------------------
Generate Sybyl atom types for a molecule
Types are put in to $atom->{TYPE}.
This routine does not assume that hydrogens are present.
Calls molecule_find_rings to rings and planar rings
Identifies carboxylate, amide and guanidinium carbon atoms and marks them with
the flags $atom->{FG}{CARBOXYLATE_C}, $atom->{FG}{AMIDE_C} and
$atom->{FG}{GUANIDINIUM_C} respectively.
If hydrogens are not present then this routine uses simple rules to try to put
molecules in physiologialy relevant ionisation state. Makes primary amines N.4
and makes O-C=O into carboxylate groups.
This routine makes Ti,Cr and Co octahedral.
Requires: atom, molecule.
Returns: -1 if there was an atom typing error.
Molecule_bin_atoms ../lib/silico_geom.pm
----------------------------------------------------
Bin atoms
A faster bin atoms routine. This routine can optionally set atom->{BIN}
Requires: molecule, atomlist (optional), binsize (optional), numbins
array (optional), flag to add bin to atom (optional)
Returns: array of binned atoms
Molecule_centre ../lib/silico_geom.pm
----------------------------------------------------
Calculate the x, y, z extents of a molecule and the centre of the box.
Requires: Molecule
Returns: Array ({maxx, maxy, maxz, minx, miny, minz, centx, centy,
centz})
Molecule_centre_of_mass ../lib/silico_geom.pm
----------------------------------------------------
Calculate the centre of mass of a molecule or atom subset
Requires: Molecule, (optional) atom list
Returns: Centre of mass as an array ({x, y, z})
Molecule_check_and_fix_connectivity ../lib/silico_molecules.pm
--------------------------------------------------------------
Check that a molecule has bonds and that correct bond orders. Generate them if
they are missing
A reasonable number of bonds is deemed to be (numatoms-1)/2;
Valid options BOND, NOBOND
Requires: molecule, $options (optional)
Returns: 1 or undef on error
Molecule_check_cell ../lib/silico_geom.pm
----------------------------------------------------
Check that mol->CELL is set. If not, set it.
Requires: molecule
Returns: $cell
Molecule_check_join_points ../bin/starmaker
-----------------------------------------------
Check a dendrimer monomer for exactly one join point to a putative ancestor.
Requires: Molecule
Returns: Nothing
Molecule_connect_pdb_atoms_by_name ../lib/silico_pdb.pm
-------------------------------------------------------
Bond atoms together using a pdb lookup table
This routine bonds together atoms proteins using a lookup table
This routine depends on the atom names being correct (See also
molecule_pdb_rename_h). Terminal residues etc are not present in
amino_acid.dat file
Requires: molecule
Returns: nothing
Molecule_copy_coordinates ../lib/silico_molecules.pm
---------------------------------------------------------
Copy coordinates from one molecule to another (similar) molecule
Requires: two molecules
Returns: nothing
Molecule_copy_header ../lib/silico_molecules.pm
---------------------------------------------------------
Copy a molecule's header data to another molecule.
Requires: two molecules
Returns: nothing
Molecule_copy_noatoms ../lib/silico_molecules.pm
---------------------------------------------------------
Create a copy of a molecule, but without any atoms
Note: this routine fails for cyclic references. These could be implemented by
keeping a list of references in a hash.
Requires: Molecule
Returns: The same molecule, but containing no $mol->{ATOMS} records or
anything in $mol->{NUMATOMS}
Molecule_count_numbonds ../lib/silico_molecules.pm
---------------------------------------------------------
Return the number of bonds.
Note: Each bond is specified twice in CONNECT records, once for each of the
two atoms in the bond. So the total number of CONNECT records is divided by
two, giving the number of bonds.
Requires: Molecule
Returns: Number of bonds
Molecule_delete_alternate_atoms ../lib/silico_pdb.pm
----------------------------------------------------
Remove alternate atoms from a pdb file
Requires: Molecule, aternate atom to RETAIN (taken from get flag or
default value A)
Returns: Molecule, modified and renumbered
Molecule_delete_atom ../lib/silico_molecules.pm
---------------------------------------------------------
Deletes a single atom by offset.
Warning: You will need to run 'molecule_pack' after deleting a set of atoms or
all hell will break loose.
Requires: molecule, number of atom to be deleted.
Returns: 1
Molecule_delete_atoms ../lib/silico_molecules.pm
---------------------------------------------------------
Delete a list of atoms, identified via atom offsets.
Requires: molecule, list
Returns: nothing
Molecule_delete_dummy ../lib/silico_molecules.pm
---------------------------------------------------------
Delete all dummy atoms (eg lone pairs) from a molecule
Requires: Molecule, optional list identifying a subset
Returns: number of deleted atoms
Molecule_delete_h ../lib/silico_hydrogens.pm
---------------------------------------------------------
Delete all hydrogens from a molecule
Requires: Molecule
Returns: number of deleted hydrogens
Molecule_delete_h_resname ../bin/mol_del_h
-----------------------------------------------
Delete all hydrogens from a particular residue type within a molecule
Requires: Molecule
Returns: number of deleted hydrogens
Molecule_delete_nonpolar_h ../lib/silico_hydrogens.pm
---------------------------------------------------------
Delete nonpolar hydrogens from a molecule
Flag will to retain hydrogens bonded to SP2 carbons (aldehydes, aromatic
rings, double bonds, etc)
Charges on the hydrogens being deleted are transferred on to the parent atom.
Requires: molecule, flag
Returns: number of deleted hydrogens
Molecule_delete_polar_h ../lib/silico_hydrogens.pm
---------------------------------------------------------
Delete polar hydrogens (ie those not attached to carbon) from a molecule
Requires: molecule
Returns: number of deleted hydrogens
Molecule_dimensions ../lib/silico_geom.pm
----------------------------------------------------
Calculate the x, y, z dimensions of a molecule
Requires: Molecule, margin to add (optional)
Returns: Dimensions
Molecule_find_planar_atoms ../lib/silico_rings.pm
-----------------------------------------------------
Call geometry or bondorder based routines to find planar atoms
Uses geometry routine by default
Note that the geometry and bondorder routines do not return the same sets of
atoms. Also the results will vary if hydrogens are missing
Requires: molecule
Returns: nothing
Molecule_find_planar_atoms_bondorders ../lib/silico_rings.pm
------------------------------------------------------------
Find planar atoms using bondorders only
All atoms which have double bonds are planar. This includes S=O and P=O which
may cause some problems
Returns: an array of planar atoms and sets $mol->{PLANAR_ATOMS}
Molecule_find_planar_atoms_geom ../lib/silico_rings.pm
------------------------------------------------------
Find planar atoms using molecule geometry or bondorder
A planar atom is defined as one with having a double bond, aromatic bond or
three substituents and an improper dihedral less than 15 degrees from planar.
Does not find planar tetracoordinate atoms.
Returns: an array of planar atoms and sets $mol->{PLANAR_ATOMS}
Molecule_find_rings ../lib/silico_rings.pm
-----------------------------------------------------
Find rings and planar rings in a molecule.
Rings are arrays of atom numbers. This routine returns all rings found up to
max_ring_size. It does not find the minimum set of smallest rings. So
naphthalene will return three rings, two of size six and one of size 10.
Sets the following arrays for each molecule:
@{$molecule->{RINGS}} All rings in the molecule
@{$molecule->{PRINGS}} All planar rings
@{$molecule->{ARINGS}} All aromatic rings (where a planar ring is not
aromatic)
The maximum ring size is stored in $mol->{RINGSIZE_MAX}.
The following arrays are set for each atom. Where the atom is not a member of
any ring, the array is empty.
@{$atom->{RINGS}} All rings that that atom belongs to
@{$atom->{PRINGS}} All planar rings that that atom belongs to
In addition, the following flags are set
$atom->{AROMATIC RING} flag for all 5 and 6 membered aromatic rings.
$atom->{NOTRING} flag for all non-ring atoms
Requires: ensemble, maximum ring size (optional, default 8), use
non-recursive subroutine to find rings (optional), force
(optional)
Returns: rings, planar rings, aromatic rings
Molecule_fix_and_get_residues ../lib/silico_residue.pm
-------------------------------------------------------
Return an array of residues. Existing residues are returned if they exist and
seem sane otherwise new residues are generated
Calls either 'molecule_get_residues' or 'molecule_make_residues'
Sets $atom->{SUBCOUNT} (numbered from 1)
Requires: molecule
Returns: array of residues. Each residue is an array of atoms belonging
to that residue
Molecule_fix_sybyl_substructures ../lib/silico_mol2.pm
------------------------------------------------------
Creates records for sybyl substructures. Also generates BACKBONE status flags
if amino acids are identified.
Requires: molecule.
Returns: nothing.
Molecule_formal_charge ../lib/silico_prop.pm
----------------------------------------------------
Calculate the formal charge on a molecule. Note. Formal charges are
recalcuated for each atom which may REMOVE formal charges that are already
present. This happens particularly if no hydrogens are present in the molecule
Calls atom_formal_charge
Requires: molecule
Optional: atom_list, optional flag to denote missing hydrogens
Returns: total formal charge
Sets: $mol->{FORMAL_CHARGE}, $mol->{CHARGED_ATOMS};
Molecule_formula ../lib/silico_prop.pm
----------------------------------------------------
Calculate the molecular formula of a molecule
Missing hydrogens are calculated and they are added to the formula as 'H*'
Sets $mol->{FORMULA};
Requires: Molecule, flag to suppress no-hydrogens warning (optional),
atomlist (optional)
Returns: Molecular formula as a hash
Molecule_generate_bondorders ../lib/silico_molecules.pm
---------------------------------------------------------
Calculate bondorders for bonds
Requires: molecule, flag to reset all bondorders to single
Returns: nothing
Molecule_generate_bonds ../lib/silico_molecules.pm
---------------------------------------------------------
Create new bonds for structure with no connection table for example a pdb file
Uses a fast residue-based approach to generate bonds in waters if the molecule
contains more than 500 atoms
Requires: molecule
Returns: bondcount
Molecule_get_chains ../lib/silico_molecules.pm
---------------------------------------------------------
Return an array of chains
Requires: molecule
Returns: array of atom lists
Molecule_get_residues ../lib/silico_residue.pm
-------------------------------------------------------
Return an array of amino acid residues that already exist within a file. Each
residue is a simple array of atoms
Sets $atom->{SUBCOUNT} (numbered from 1)
Setting the gap flag will add empty residues for any gaps in the AA sequence.
The mark_first_residue flag will mark the first atom of each residue with a
'STARTRES' flag.
Requires: molecule, optional atom list containing a subset of atoms, gap
flag, flag to mark the first atom of each residue
Returns: array of arrays of pointers to all atoms in each residue
Molecule_get_residues_hash ../lib/silico_residue.pm
-------------------------------------------------------
Return an array of residues. Each residue is a hash. Residue atoms are in
$res->{ATOMS};
Requires: molecule, optional atom list containing a subset of atoms, gap
flag
Returns: array of hashes
Molecule_label_submols ../lib/silico_split.pm
-----------------------------------------------------
A non-recursive subroutine to label submolecules based on connectivity
Sets $atom->{SUBMOL}. Creates arrays of atoms in $mol->{SUBMOLS}[submol#]
Requires: Molecule, flag to also set CHAIN
Returns: $mol->{SUBMOLS}
Molecule_make_residues ../lib/silico_residue.pm
-------------------------------------------------------
Divide a molecule into a NEW set residues in a molecule based on connectivity
and amino acids. Old residues are overwritten.
Sets $atom->{SUBCOUNT} (numbered from 1)
Splits residues based on:
Amide bonds
Disulfides
Ethers
Esters
Triazoles resulting from click reactions according to the atoms from the
original azide and alkyne
Requires: molecule
Returns: List of residues ordered N->C as an array of arrays of
pointers to all atoms in each residue or undef if there is a
problem. Also sets $mol->{RESIDUES}
Molecule_mw ../lib/silico_prop.pm
----------------------------------------------------
Calculate molecule molecular weight
Requires: Molecule, optional list of atoms, flag to suppress check for
united atoms (not implemented) flag to supress 'no hydrogens'
warning message
Returns: Molecular weight as a scalar
Calcluates where hydrogens are missing (for united atom forcefields).
Molecule_pack ../lib/silico_molecules.pm
---------------------------------------------------------
Remove any undefined atoms from a molecule.
Bonds are updated. Atom->{NUM} is renumbered
Requires: molecule, nowarnings flag.
Returns: packed molecule
Molecule_path ../lib/silico_fp.pm
--------------------------------------------------
Call recursive routine to find all paths in a molecule
Requires: molecule, optional pointer to array of atom numbers Max
fragment size, min fragment size hydrogen treatment are
optionally set using globals $Silico::fp_max, $Silico::fp_min
Note will return a previously calculated, cached path unless the 'force' flag
is set
Returns: pointer to array of atom number arrays (paths)
Molecule_pdb_rename_backbone ../lib/silico_pdb.pm
---------------------------------------------------
Rename pdb backbone atoms
Requires: molecule
Molecule_pdb_rename_h ../lib/silico_pdb.pm
---------------------------------------------------
Rename protein hydrogens to conform to pdb nomenclature. Molecule is sorted if
hydrogens are out of order in file
Requires: molecule, aminoacid datafile (default amino_acid_atoms.dat),
flag to delete unnamed hydrogens
Returns: number of unassigned hydrogens
Molecule_pdb_rename_h_dataread ../lib/silico_pdb.pm
---------------------------------------------------
Read in data for molecule_pdb_rename_h
Requires: datafile
Returns: array, array, hash of residues
Molecule_printout ../lib/silico_debug.pm
-----------------------------------------------------
Print out several atoms from a molecule record.
Prints out all molecule records and those for the first 5 (MacOS) or 10 atoms.
Takes optional second argument 'last' prints last 10 atoms. 'all' prints all
atoms.
Requires: molecule, 'all' (optional), filehandle (optional).
Molecule_random_move_cartesian ../lib/silico_geom.pm
----------------------------------------------------
Move and rotate a molecule (around a random axis) by a random amount
Will use a periodic cell if supplied
Require: molecule, translation vector (default cell size, or 10, 10,
10), rotation vector (default random vector with up to 360 deg
rotation), cell (optional)
Molecule_renumber ../lib/silico_molecules.pm
---------------------------------------------------------
Renumber atoms in a molecule (only renumbers $atom->{NUM})
Renumbers from 1 or from an optional second argument.
Requires: molecule, (optional starting number).
Returns: nothing
Molecule_renumber2 ../lib/silico_molecules.pm
---------------------------------------------------------
Renumber atoms in a molecule using an offset.
Useful to renumber one molecule before combining with another
Renumbers $atom->NUM, CONNECT, GMX_BONDS, GMX_ANGLES, GMX_DIHEDRALS,
GMX_PAIRS, and GMX_EXCLUSIONS
Requires: molecule, Initial value for atom->{NUM} (default 1).
Returns: nothing
Molecule_reorder ../lib/silico_molecules.pm
---------------------------------------------------------
Sort atom order within a molecule using a specified order
Sort molecules according to specified field or $atom->{NEW_NUM} by default;
Requires: molecule.
Molecule_rot_angle_x ../lib/silico_geom.pm
----------------------------------------------------
Rotate a molecule around X axis by angle (degrees).
Requires: molecule, angle (deg);
Molecule_rot_angle_y ../lib/silico_geom.pm
----------------------------------------------------
Rotate a molecule around Y axis by angle (degrees).
Requires: molecule, angle (deg);
Molecule_rot_angle_z ../lib/silico_geom.pm
----------------------------------------------------
Rotate a molecule around Z axis by angle (degrees).
Requires: molecule, angle (deg);
Molecule_rotate ../lib/silico_geom.pm
----------------------------------------------------
Rotate a molecule using a 3x3 matrix .
Requires: molecule, m1..m9.
Molecule_rotate_axis ../lib/silico_geom.pm
----------------------------------------------------
Rotate atoms about an arbitrary axis using quaternions
Require: molecule, angle (in radians), axis (x1, y1, z1), origin (x2,
y2, z2) default 0,0,0
Molecule_solvate ../lib/silico_solvate.pm
-------------------------------------------------------
Solvate a molecule
Requires: molecule, solvent molecule, cell, number of molecules, bilayer flag,
output format (pdb etc)
Returns: molecule
Molecule_split ../lib/silico_split.pm
-----------------------------------------------------
A non-recursive subroutine to split a 'molecule' into a series of actual
molecules 21 October 2004: Improved to reduce memory use and produce atoms
sorted in the order in which they were present in the original molecule file.
Requires: Molecule, minimum molecule size to keep (default 1)
Returns: Ensemble
Molecule_split_keeping_largest_mol ../lib/silico_split.pm
---------------------------------------------------------
Split a Silico molecule up on the basis of connectivity and return the largest
of its component molecules
Requires: molecule
Returns: molecule
Molecule_trans_to_centre ../lib/silico_geom.pm
----------------------------------------------------
Translate the centre of a molecule to 0,0,0 or to centre of cell
Requires: molecule, specifier for origin or centre of cell ('cell' or
'origin'), specifier for whole molecule, largest substructure
or hydrophobic centre ('all', 'largest' or 'hydrophobic')
Returns: vector of translation
Molecule_translate ../lib/silico_geom.pm
----------------------------------------------------
Translate a molecule by a vector (x,y,z).
Requires: molecule, x, y, z.
Mols ../lib/silico_molecules.pm
---------------------------------------------------------
Return a list of molecules from a set of molecules or ensembles
Requires: molecule or ensemble
Returns: array of molecules
Name_pdb_molecule ../lib/silico_pdb.pm
---------------------------------------------------
Generate molecule name for pdb molecule
1. HEADER 2. COMPND or 3. filename
New_h ../lib/silico_hydrogens.pm
---------------------------------------------------------
Add a new hydrogens
Note: The global Silco::add_h_element can be used to change the element being
added
Note: The global Silco::add_h_bo can be used to change the order of the new
bond
Requires: atom, molecule, offsetX, offsetY, offsetZ
Returns: new atom
New_table_delimited ../lib/silico_tabledata.pm
---------------------------------------------------------
Create a new empty delimited table
Requires: nothing
Returns: table
Number_range ../lib/silico_data.pm
----------------------------------------------------
Turn a range of numbers (indicated by X-Y, where X and Y are integers) into a
list of those numbers spanned by the range.
Requires: integer range as text string
Returns: List of integers
Open_file ../lib/silico_io.pm
--------------------------------------------------
General subroutine to open molecule files for reading.
Note open_file and close_file are not designed to handle concurrently open
files
Example:
if (!open_file(*INFILE, $infile)) {
print "Error (read_mol2): Can not open file $infile for reading!\n";
return undef;
}
Can handle compressed files on UNIX systems.
Requires: filehandle, filename, 'single' flag to prevent opening files
that are already open
Returns: true if file opened ok or if the file was already open and the
'single' flag was set
Open_molfile ../lib/silico_io.pm
--------------------------------------------------
Open molecule file for reading one molecule at a time
Uses the extension to determine file type.
Requires: file record, file name, mode (read(default), write, append),
format, option string
Returns: file record or undef if open failed.
Options: GZ - gzip compression, BZ2 - bzip2 compression, QUIET - less
output
Optimise_geometry ../bin/starmaker
-----------------------------------------------
Attempts to find the most splayed geometry. In particular checks for overlap.
Requires: Molecule, two lists of atoms
Returns: Best (lowest) distance function value, and the lowest number
of overlaps
Origins ../lib/silico_rbox.pm
----------------------------------------------------
Origin points for holes o Single point at 0, 0, 0 a Single point in centre of
cell b Single point in centre of cell (X, Y) and 0 in Z c 4 hexagonally
arranged holes in xy plane
Orthogonal_least_squares_plane_atoms ../lib/silico_geom.pm
----------------------------------------------------------
Fits a plane to a set of atoms, using the orthogonal least squares method.
Requires: molecule, set of atoms
Returns: One point in the plane, normal vector to the plane
Overwrite_check ../lib/silico_io.pm
--------------------------------------------------
Check to see if an output file exists and prompt for response if it does
Check is overridden by -force flag
Requires: filename, flag to disallow option of changing filename
Returns: new filename (if changed) or original filename. The '-force'
flag is set if 'Yes to all' is selected.
Pack_gromacs_angles ../lib/silico_gromacs.pm
-------------------------------------------------------
Pack new format gromacs bonds and angles, etc.
Atoms are renumbered
Any bond or angle with undefined values is deleted.
Requires: Molecule, ctable (array of old and new atom numbers);
Pack_molecules ../lib/silico_rbox.pm
----------------------------------------------------
Pack molecules in a random or semirandom (e.g. bilayer) way
Requires: array of molecules to pack, molecule to embed, molecule cell
Also requires subroutine 'randomise_and_test_molecule_position'
Parse_amino_acids_smiles ../lib/silico_residue.pm
-------------------------------------------------------
Parse a file containing SMILES strings of amino acids, putting the entries
into a hash.
Requires: nothing, but takes an alternative file as an optional argument
Returns: hash
Parse_atom_specifier ../lib/silico_molecules.pm
---------------------------------------------------------
Parse an atom specifier string and return an array of hashes containing
specifier keys and key values
Allowed specifier keys: ANUM: ANAME: CHARGE: ELEMENT: NAME: RESNAME: SEGID:
SUBID: TYPE: X: Y: Z:
Requires: string
Returns: array of hashes
Parse_comma_separated_numbers ../lib/silico_data.pm
----------------------------------------------------
Take a list of comma-separated numbers, which may include number ranges, and
turn it into a list of individual numbers in array format.
Requires: string
Returns: array
Parse_pdb_space_group ../lib/silico_pdb.pm
---------------------------------------------------
Parse the file pdb_space_group.dat
Requires: File
Returns: hash
Parse_residue_dictionary ../lib/silico_residue.pm
-------------------------------------------------------
Parse a mol2 file containing residue definitions
Revised version that uses a simpler residue database and generate common
protonation states N and C termini etc.
Requires: Nothing
Returns: Hash of molecules - key is SMILES string
Parse_smiles ../lib/silico_smiles.pm
------------------------------------------------------
Parse a smiles string and return a molecule
Note. Can not handle chirality.
Requires: string
Returns: molecule
Pdb_fastsplit ../lib/silico_split.pm
-----------------------------------------------------
Quickly split a pdb file into component molecules/chains
Only ATOM, HETATM and CRYST lines are printed. Files are written directly to
disk named <filebase>_00001 etc, or by chain name if requested.
Requires: infile, output directory ('.' by default), output style (see
subroutine format_oname), flags to split on chain, END, ENDMDL
and TER records, flag to name output files by chain
Returns: list of files created
Pdb_format_atom_name ../lib/silico_pdb.pm
---------------------------------------------------
Format atom name for pdb file
Pads atom names with single character element names with a space (Insight
sometimes doesn't work otherwise)
Requires: atom, $mol->{WARN}{FIELD_TRUNCATION} as a local variable
Returns; string
Pdb_format_subname ../lib/silico_pdb.pm
---------------------------------------------------
Format substructure name to a length of four characters.
Length can be set to 3 or 4 characters Substructure name is truncated if it is
too long
Requires: atom, molecule, maxumum substructure name length,
$mol->{WARN}{FIELD_TRUNCATION} is also set
Returns; string
Pdb_get_ligands ../lib/silico_pdb.pm
---------------------------------------------------
Extract ligands from pdb file
Only the first example of each ligand residue type is extracted
Requires: molecule, min heavy atoms, max heavy atoms, min carbon atoms
Pdb_get_prot ../lib/silico_pdb.pm
---------------------------------------------------
Simple routine to extract pdb protein atoms
Requires: molecule
Pdb_molecule_sort_atoms ../lib/silico_pdb.pm
---------------------------------------------------
Routine to sort atoms in to a standard order Sorts by SEGID, CHAIN, residue
number then by atom number. HETATMS are sorted to the end of the file Atoms
with a ' ' chain specifier are sorted to the end of the file.
Atoms are then renumbered.
Requires: molecule. (optional, flags to ignore chain and segid when
sorting).
Pdb_read_errors ../lib/silico_pdb.pm
---------------------------------------------------
Report read errors for pdb files
Requires: molecules, options, filename
Pdb_rewind ../lib/silico_pdb.pm
---------------------------------------------------
Rewind a pdb file to the start
Requires: file record
Requires: nothing
Plot_amides ../bin/mol_amides
------------------------------------------------
Writes a grace parameter file for the amides plot, and calls grace
Requires: Amide data file (.adf)
Returns: Nothing
Pmmod ../lib/silico_mmod.pm
----------------------------------------------------
Write a formatted line of a macromodel com file
Requires: arguments as an array
Primes ../lib/silico_definitions.pm
-----------------------------------------------------------
Create an array of the first thousand prime numbers: @$Silico::primes
Requires: nothing
Returns: nothing (creation of package global array)
Print_finished_message ../lib/silico_control.pm
-------------------------------------------------------
Prints out a message to indicate a script is finished
Requires: Optional message to print (default finished)
optional character to surround it with (default *), filehandle
(optional)
Returns: Nothing
Print_flags ../lib/silico_io.pm
--------------------------------------------------
Print out valuues of all flags
Requires: optional filehadle (default STDOUT)
Print_timing_message ../lib/silico_control.pm
-------------------------------------------------------
Prints out a message containing the total user time and total wall time used
by the program
Requires: Starting user time, filehandle (optional)
Returns: Nothing
Print_title ../lib/silico_control.pm
-------------------------------------------------------
Print a program title banner.
Requires: program name, version (optional), filehandle (optional)
Printbox ../lib/silico_pdb.pm
---------------------------------------------------
Write out a pdb format box
Writes eight atoms. One at each cornder of the box. Compatible with the box
produced by DOCK
Requires: maxx, maxy, maxz, minz, miny, minz, (optional) filename
default 'box.pdb'
Returns: undef if file open failed
Printdoc ../lib/silico_doc.pm
---------------------------------------------------
Print marked up documentation for a file or the executing program and exit
Requires: filename, optional flag to continue without exiting
Printgroup ../lib/silico_gromacs.pm
-------------------------------------------------------
Debugging routine to print out atoms in charge group
Requires: group, label string
Printit ../lib/silico_rbox.pm
----------------------------------------------------
Print routine for pack_molecules
Prompt ../lib/silico_control.pm
-------------------------------------------------------
Print a prompting message and read a reply from standard input.
Requires: Text to prompt with
Returns: Chomped reply from standard input
Prune_family_tree ../lib/silico_prop.pm
----------------------------------------------------
Taking a list of branches in a family tree, throw away all those which are
incomplete.
Requires: list of branches
Returns: list of branches
Quaternion ../lib/silico_geom.pm
----------------------------------------------------
Calculates a quaternion - a 'rotation matrix' when you want to rotate a point
around a vector.
Requires: Angle, rotation vector
Returns: Rotation matrix as a 9-long (3x3) array
Quiet ../lib/silico_io.pm
--------------------------------------------------
Check if we are being quiet (i.e., the --quiet option is used).
Requires: nothing
Returns: 1 (quiet), 0 (not quiet)
Rad_to_deg ../lib/silico_geom.pm
----------------------------------------------------
Convert radians to degrees
Requires: scalar
Returns: scalar
Ramaplot ../lib/silico_rama.pm
----------------------------------------------------
Writes a grace parameter file for the Ramachandran plot, and calls grace
Requires: Ramachandran data file, format, hardcopy flag, residue label
flag
Returns: Nothing
Ramaplot_by_mol_open ../lib/silico_rama.pm
----------------------------------------------------
Open .ramol files and write headers
Requires: molecule, output filename base, options
Returns: file record
Options: 'CART' will output sin(phi), cos(phi), sin(psi), cos(psi)
instead of phi, phsi. NOHEADER - don't write comment at top of
file - required for R
Ramaplot_open ../lib/silico_rama.pm
----------------------------------------------------
Open .rama files and write headers
Requires:output filename
Returns: file record
Randomchar ../bin/mol_characterise
------------------------------------------------------
Generate a random two-letter string.
Requires: nothing
Returns: string
Randomise_and_test_molecule_position ../bin/bilayer_builder
-----------------------------------------------------------
Perform random translation and rotation in the bilayer plane and small
movements perpendicular to bilayer
Requires: molecule, cell
Returns: nothing
Range ../lib/silico_statistics.pm
----------------------------------------------------------
Determines the range of a set of data.
Requires: Array
Returns: scalar
Rank_by_neighbouring_primes ../lib/silico_smiles.pm
------------------------------------------------------
Attempt to resolve ties in SMILES ranks using the product of the prime numbers
corresponding to the ranks of the several neighbours of each of the atoms in
question.
Only atoms which have otherwise equivalent ranks will have their relative
ranks altered by this procedure (though the absolute rank of any given atom
may change as new ranks are created).
Requires: list of atoms, molecule
Returns: list of ranks
Rank_molecules ../bin/dock_sort
-----------------------------------------------
Create ranks for a data key. Correctly deals with tied ranks
Ranks start from 0.
Requires: molecules, SDF_DATA key for ranking
Rank_smiles_set ../lib/silico_smiles.pm
------------------------------------------------------
Rank a set of atoms on the basis of their SMILES invariants.
This is based on the CANGEN algorithm described in Weininger, Weininger and
Weininger, J. Chem. Inf. Comput. Sci. 1989, 29, (2), 97-101.
Requires: molecule, list of atoms that together form SMILES set
Returns: nothing; atoms are marked in $atom->{SMILES_RANK}
Read_atom_specifier_file ../lib/silico_molecules.pm
---------------------------------------------------------
Read an atom specifier file
Requires: filename
Returns: array of atom specifiers
Simple atom specifier examples:
-------------------------------
ANAME:CA Returns all atoms called 'CA'.
ANAME:CA,CB,CG Returns all atoms called 'CA' or 'CB' or 'CD'.
ANAME:CA,RESNAME:TRP Returns all atoms called 'CA' in all residues called TRP
ANAME:CA,SUBID:4 All atoms called 'CA' in residue number 4
In the examples above, atoms are returned in the order found in the file. Atom
specifiers are case sensitive.
Ordered atom specifier examples:
--------------------------------
Successive atom specifications can be made. Each is separated by a '|'
ANAME:CB|ANAME:CA|ANAME:CD Returns all atoms called 'CB', 'CA', 'CD' in that
order.
ANAME:CA,RESID:1|ANAME:CA,RESID:4 Returns 'CA' atoms from residue 1 and 4 in
that order.
Specifier file:
---------------
Contains two sets of atom specifiers. Each set starts with a 'Molecule' line
eg:
Molecule
ANAME:CA
ANAME:CB
ANAME:CD
Molecule
ANAME:CA
ANAME:CG
ANAME:CE
Read_clustal ../lib/silico_sequence.pm
--------------------------------------------------------
Read in Clustal format NA or Protein sequence files
Requires: Filename
Returns: Sequences record
Read_divcon_cart ../lib/silico_mopac.pm
-----------------------------------------------------
Read a DivCon Cartesian format file
Reads only a single structure
Requires: infile, undef, undef, options (optional)
Returns: ensemble or undef on read error
Read_doc ../lib/silico_doc.pm
---------------------------------------------------
Read marked up documentation from a silico file
Requires: Text file marked up using silico convention, flag to exit
after encountering first end markup marker ('#>')
Returns: Tagged silico text
Marked up text is also added to a global hash %$FILEHASH
Read_doc_subroutine ../lib/silico_doc.pm
---------------------------------------------------
Read marked up documentation from silico subroutines
Marked up text is returned in a global hash %$SUBHASH
Requires: Text file marked up using silico convention
Returns: All lines read
Read_fasta ../lib/silico_sequence.pm
--------------------------------------------------------
Read in fasta sequence format
INCOMPLETE
Requires: Filename, $options
Returns: Sequences record
Read_function_line ../bin/rdf
-----------------------------------------
A subroutine to process a single function line from an RDF input file in
preparation for adding to the FUNCLISTS element of the $input hash
Passed variables: @_
External variables: input hashref ($input)
Returns: A single list of functions, with parameters, or -1 if an error
occurred
Read_gamess_cart ../lib/silico_gamess.pm
------------------------------------------------------
Simplistic routine to extract Cartesian coordinates from a Gamess output file
Note all structures are read by default. To read only the final structure, use
the --last-structure flag
Requires: filename.
Returns: ensemble or zero if read failed.
Read_gaussian_cart ../lib/silico_gaussian.pm
--------------------------------------------------------
Simplistic routine to extract Cartesian coordinates from a Gaussian (98)
output file using the standard orientation
Note all structures are read by default. To read only the final structure, use
the --last-structure flag
Requires: filename.
Returns: ensemble or zero if read failed.
Read_gromacs_gro ../lib/silico_gromacs.pm
-------------------------------------------------------
Read a gromacs .gro coordinate file
Currently only reads the first structure in the file
Requires: filename, undef, options
Returns: ensemble or undef if failed
Read_gromacs_gro_single ../lib/silico_gromacs.pm
-------------------------------------------------------
Read in a single molecule record from a gromacs gro file.
Requires: file record, options
See read_pdb for general description
Requires; file_record, options
Returns: molecule or undef
Read_gromacs_indexfile ../lib/silico_gromacs.pm
-------------------------------------------------------
Read a gromacs indexfile
Requires: filename
Returns: Molecule index
Read_gromacs_itp ../lib/silico_gromacs.pm
-------------------------------------------------------
Reaad a grompacs .itp topology file Note: Blocks [ position_restraints ], [
molecules ] and [ system ] are ignored
Requires: inputfile, options
Returns: molecule
Read_gromacs_trr ../lib/silico_gromacs.pm
-------------------------------------------------------
Read a gromacs .trr file using a wrapper script with trjconv
Requires: filename(trr), filename(pdb,gro,etc), undef, options
Returns: ensemble or undef if failed
Read_maestro ../lib/silico_mmod.pm
----------------------------------------------------
Schroedinger maestro read routine.
Requires: filename, start molecule (currently ignored), max molecules,
option string
Returns: ensemble or undef if failed
Options: Returns an empty array when there are no more structures.
Will respond to a -me (maximum energy) and max molecule (-ms) flags
Read_maestro_single ../lib/silico_mmod.pm
----------------------------------------------------
Schroedinger maestro read routine.
Requires: filehandle, options
Returns: molecule
Options:
Read_merck ../lib/silico_merck.pm
-----------------------------------------------------
Read in Merck format file
Requires: filename, unused, unused, , options string;
Returns: ensemble
Read_mmod ../lib/silico_mmod.pm
----------------------------------------------------
Macromodel read routine.
Can read Macromodel 'short' text format.
Requires: filename, start molecule (currently ignored), max molecules,
option string
Returns: ensemble or undef if failed
Read_mmod_mmo ../lib/silico_mmod.pm
----------------------------------------------------
Read Macromodel .mmo energy file
Requires: filename,
Returns: ensemble or undef if failed
Read_mol2 ../lib/silico_mol2.pm
----------------------------------------------------
Read in a mol2 file and return as an ensemble
Reads multiple structures from a single file. Information is currently read
from the MOLECULE, ATOM, BOND, SUBSTRUCTURE and SET records. Only static atom
sets are supported. Comment lines preceeding the molecule data are preserved.
Other records are ignored.
DOCK binding energies are extracted from the Comment lines and stored as
$mol->{DOCK_ENERGY}
Requires: Filename, (optional), start record, maximum number of records,
options string .
Returns: ensemble or undef if no molecule is read.
Options:
Will respond to a -me (maximum energy) flag
QUIET - do not print 'Reading' line
NOSORT - do not sort atoms
Read_mol2_single ../lib/silico_mol2.pm
----------------------------------------------------
Read in a single record from a mol2 file.
See read_mol2 for general description
Requires: file record, options
Returns: molecule or undef
Read_mol_any ../lib/silico_io.pm
--------------------------------------------------
Read in any supported molecule file type.
Uses the extension to determine file type.
Reads following extensions:
.arc (Mopac archive)
.gro (Gromacs)
.dat/.out (will determine the difference between Macromdel, Gaussian
and Mopac files)
.mae,.maegz Schroedinger maestro formats
.mol2 (Sybyl)
.mrk (Merck format used with MMFF forcefield in CHARMm)
.rtf (CHARMm topology definition format)
.sdf .mol .rdf (MDL format)
.pdb .ent .coor (text format from NAMD)
.psf (CHARMm connectivity file) format
.xyz (tinker)
Will aslo handle gzipped (.gz), bzip2'd (.bz2) and compressed (.Z) versions of
these files
Requires: file name. Optionally can pass start structure, max molecules,
and option string to read routines although not all routines
support 'start structure' and 'max molecules'
Returns: undef if file open failed.
Read_mol_single ../lib/silico_io.pm
--------------------------------------------------
Read a single molecule
Uses the extension to determine file type.
Requires: file record, filename (optional), options, start structure
(optional), max molecules (optional)
Returns: molecule or undef
Read_mopac_cart ../lib/silico_mopac.pm
-----------------------------------------------------
Read in a Cartesian mopac .dat or .arc file
Requires: filename, (optional) unused, unused, options string
Returns: ensemble or zero if read failed.
Read_packings ../bin/micelle
---------------------------------------------
Read_pdb ../lib/silico_pdb.pm
---------------------------------------------------
Read in a pdb file.
Reads pdb files containing multiple MODEL records. Each is read into a
separate molecule file
Similarly, reads pdb files with multiple molecules separated by END records
(as produced by VMD)
Reads Autodock output files (this is now old and has not been checked
recently)
The $mol->{HAS_BAD_BONDORDERS} is set
Saves some information from the PDB header records. This is these are:
HEADER
COMPND
HETNAM
USER (Autodock energies)
REMARK (PDB_VERSION, PDB_RESOLUTION, PDB_EXPT_TYPE)
JRNL (PDB_JRNL_AUTH, PDB_JRNL_TITL, PDB_JRNL_REF)
Reads CRYST records and saves in Silico format
Assumes that atom names starting with Q are pseudo atoms. These atoms are set
to dummy (Du) type.
The PDB file is read in two passes. First to get all non atom information
(header info and CONECT records) then to read atoms. Header and CONECT record
information is read until an END record is encountered. It is then copied into
all subsequent molecules. This lets files containing MODELS be read.
Requires: Filename, start structure (numbered from 0), max_molecules,
option string
Options:
QUIET - do not print 'Reading' line or warnings
DELALT - delete alternate atoms
Returns: Ensemble containing molecule or undef if file open fails
Read_pdb_atom ../lib/silico_pdb.pm
---------------------------------------------------
Read in an ATOM line from a pdb file.
Requires; line, molecule, quiet flag, residue length (default 3)
Returns; new atom
Read_pdb_atom_fast ../lib/silico_pdb.pm
---------------------------------------------------
Read in an ATOM line from a pdb file, getting only some fields.
Requires: line, molecule
Returns: An atom
Read_pdb_compnd ../lib/silico_pdb.pm
---------------------------------------------------
Read PDB compnd line
Requires; line, molecule
Read_pdb_conect ../lib/silico_pdb.pm
---------------------------------------------------
Read in a CONECT line from a pdb file and save it in mol->{PDB_CONECT}
Requires; line, molecule
Returns; mol->{PDB_CONECT}
Read_pdb_connected ../lib/silico_pdb.pm
---------------------------------------------------
Read in datafile of amino acid connected atoms
Requires; optional datafile (Default datafile is 'amino_acid_atoms.dat' which
is found in the SILICO_DATA directory)
Returns: nothing
Sets $Silico::pdb_connected and $Silico::pdb_bondorder
Read_pdb_cryst ../lib/silico_pdb.pm
---------------------------------------------------
Read PDB CRYST line
Requires; line, molecule
Read_pdb_expdta ../lib/silico_pdb.pm
---------------------------------------------------
Read PDB EXPDTA line
Requires; line, molecule
Read_pdb_fast ../lib/silico_pdb.pm
---------------------------------------------------
Read in a pdb file.
Is able to read files containing multiple MODEL records and Autodock output
files. Sets the $mol->{HAS_BAD_BONDORDERS} flag
Also saves some information from the PDB header records these are:
HEADER
COMPND
HETNAM
USER
Assumes that atom names starting with Q are pseudo atoms. These atoms are set
to dummy (Du) type.
Requires: Filename, unused, unused, option string
Returns: Ensemble containing molecule or undef if file open fails
Read_pdb_header_line ../lib/silico_pdb.pm
---------------------------------------------------
Read PDB HEADER line
Requires; line, molecule
Read_pdb_hetnam ../lib/silico_pdb.pm
---------------------------------------------------
Read PDB HETNAM line
Requires; line, molecule
Read_pdb_jrnl ../lib/silico_pdb.pm
---------------------------------------------------
Read PDB JRNL record
Requires; line, molecule
Read_pdb_molecule ../lib/silico_pdb.pm
---------------------------------------------------
Read a single PDB molecule up to and END or ENDMDL record
Requires: file record, options
Returns: molecule, undef if end of file
Read_pdb_remark ../lib/silico_pdb.pm
---------------------------------------------------
Read PDB REMARK record
Extracts: PDB file version, Resolution and experiment type
Requires; line, molecule
Read_pdb_single ../lib/silico_pdb.pm
---------------------------------------------------
Read in a single record from a pdb file.
Requires: file record, options
See read_pdb for general description
Options:
Returns: molecule or undef
Read_pdb_title ../lib/silico_pdb.pm
---------------------------------------------------
Read PDB TITLE record
Requires; line, molecule
Read_pdb_user ../lib/silico_pdb.pm
---------------------------------------------------
Read USER record from pdb file
Requires; line, molecule
Read_rdf ../lib/silico_sdf.pm
---------------------------------------------------
Read an RDF file.
Only reads structure at present (no data). Sets the 3D flag on all structures
Requires: Filename - optional: start structure number (counting from 1),
number of structures to read.
Returns: Undef if file open failed.
Read_rdf_input_file ../bin/rdf
-----------------------------------------
A subroutine to read the contents of an RDF input file, and put them into a
hash
Passed variables: A file name ($file)
Returns: An input hash ($input); nothing (undef) if an error occurred
Read_sdf ../lib/silico_sdf.pm
---------------------------------------------------
Read an SDF file.
SDF data fields are stored in mol->{SDF_DATA}{<propertyname>}
Requires: Filename - optional: start structure number (counting from 1),
number of structures to read, options string
Returns: Ensemble or undef if file open failed.
Options:
QUIET - do not print messages
NOPARSE - only read SDF data fields. Do not parse molecule (Faster if
we are only interested in the data fields)
Read_sdf_atoms_bonds ../lib/silico_sdf.pm
---------------------------------------------------
Read in atoms and bonds in MDL mol format.
Called from read_sdf and read_rdf. Sets flag $mol->{HAS_BAD_GEOM},
$mol->{GEOM_2D} to 1 if molecule is 2D
Requires: file record
Returns: Molecule, undef if end of file, -1 if record read error
Read_sdf_single ../lib/silico_sdf.pm
---------------------------------------------------
Read in a single record from an sdffile.
Requires: file record, options
See read_pdb for general description
Returns: molecule or undef
Read_seq_any ../lib/silico_io.pm
--------------------------------------------------
Read any sequence format
Requires: filename, options
Returns: sequences
Read_sleuth_abstract ../lib/silico_tinker.pm
------------------------------------------------------
Read a SLEUTH abstract file
Requires: input file
Returns: sequence record or undef if file open failed otherwise returns
1.
Read_smiles ../lib/silico_smiles.pm
------------------------------------------------------
Simple routine to read smiles strings (one per line) from file and return as
an ensemble
Reads multiple structures from a single file. Information
QUIET - do not print 'Reading' line
Read_smiles_single ../lib/silico_smiles.pm
------------------------------------------------------
Read in a single smiles record from file.
Requires: file record, options
See read_pdb for general description
Options:
Returns: molecule or undef
Read_table_delimited ../lib/silico_tabledata.pm
---------------------------------------------------------
Read a character delimited text file
Creates a data structure that looks like:
$data->{VALUES}[<linennum>][<columnnum>] Values in array
$data->{HEADERS}[<columnnum>] Array of all column headers
$data->{KEYHASH}{} Hash of all column headers to alow translation to column
numbers
$data->{NUMLINES} Total number of lines
$data->{NUMKEYS} Total number of columns
Requires: filename, delimiter (strings 'space', 'tab', or 'comma' with
the default 'tab'), options
Returns: data structure or undef if file open failed
Options:
QUIET do not print messages
HEADER first line is a header line
CONVERT EMPTY convert empty values to '' (not undef)
CASE INSENSITIVE convert all headers to upper case
Read_tcoffee_score ../lib/silico_sequence.pm
--------------------------------------------------------
Read in tcoffee score file
Requires: Filename
Returns: Sequences record
Read_tinker_xyz ../lib/silico_tinker.pm
------------------------------------------------------
Tinker read routine.
Requires: filename, (optional) unused, unused, options string.
Returns: ensemble or undef if failed
Record_best_coords ../lib/silico_geom.pm
----------------------------------------------------
Records the current coordinates of each atom as being the best ones.
Requires: Molecule
Returns: Nothing
Remove_aromatic_bondorders ../lib/silico_mol2.pm
----------------------------------------------------
Convert aromatic bondorders in carboxylate and guanidinium groups to single
and double bonds
Requires: molecule
Returns; 1 or undef on failure
Remove_duplicates ../lib/silico_data.pm
----------------------------------------------------
Remove duplicate entries in a list.
Requires: list
Returns: pruned list
Remove_option ../lib/silico_io.pm
--------------------------------------------------
Delete a text string from the list of command-line options
Requires: Option to remove (string), list of existing options (string)
Returns: Modifies string provided to function
Reos_filter ../lib/silico_prop.pm
----------------------------------------------------
Implements a simple filter for the Rapid Elimination of Swill
Requires: molecule
Returns: true or false
Rescue_unbonded_hydrogens ../lib/silico_molecules.pm
---------------------------------------------------------
Make bond to hydrogens that have long bonds
Requires: molecule
Returns: number of bonds created
Reset_all_groups ../lib/silico_gromacs.pm
-------------------------------------------------------
Reset all charge groups to an inital state of one atom per group
Requires: molecule
Residue_printout ../lib/silico_sequence.pm
--------------------------------------------------------
Print out all seq_residue information
Requires; residue
Residues ../lib/silico_sequence.pm
--------------------------------------------------------
Return array of residues from a sequence record
Requires: Silico sequence record
Returns: array of residues
Revert_to_best_coords ../lib/silico_geom.pm
----------------------------------------------------
Sets atoms back to its best known position.
Requires: Molecule, atom list (optional)
Returns: Nothing
Rms ../lib/silico_geom.pm
----------------------------------------------------
Find the rms distance between two molecules (heavy atoms by default).
Requires: Two molecules, flag to only calculate for heavy atoms
Returns: rms or -ve numbers if something is wrong.
Rms_atomlist ../lib/silico_geom.pm
----------------------------------------------------
Find the rms distance between atomlists.
Requires: Two atomlists, flag to return sum of squares rather than rms
Returns: rms or -ve numbers if something is wrong.
Rms_fp ../lib/silico_fp.pm
--------------------------------------------------
Calculate the fragment-based RMS for two molecules
Requires: molecule1, molecule2
Returns: best fragment rms or -1 if no fit is found
Sets: {SDF_DATA}{RMS_FP_AV} {SDF_DATA}{MATCH_NAME} ;
Rotate_torsion_angle ../lib/silico_geom.pm
----------------------------------------------------
Rotate a torsion angle
Will do nothing if bond is in a ring
The static atoms are overridden if an ANCHOR atom is set.
Requires: molecule, 2 atoms (first one static), angle, anchor
(optional), flag to rotate atoms already marked with PFLAG
Returns: nothing
Rotate_torsion_angle2 ../lib/silico_geom.pm
----------------------------------------------------
Rotate a torsion angle
Will do nothing if bond is in a ring
Requires: molecule, vector atom1, vector_atom2, list of atoms to be
rotated, angle in radians
Returns: nothing
Run_gnuplot ../bin/dock_sort
-----------------------------------------------
Plots multiple data columns on a single graph
Requires: Gnuplot tab delimited data, output filename, optional title
Returns: nothing
Run_gnuplot1 ../lib/silico_gnuplot.pm
-------------------------------------------------------
Plots multiple data columns on separate graphs
Requires: Gnuplot tab delimited data, optional title
Returns: nothing
Run_gnuplot2 ../lib/silico_gnuplot.pm
-------------------------------------------------------
Plots multiple data columns on a single graph
Requires: Gnuplot tab delimited data, optional title
Returns: nothing
Run_mopac ../lib/silico_mopac.pm
-----------------------------------------------------
Run mopac minimisation or mopac ESP charge calculation on molecule
MOPAC keywords should be in $mol->{KEYWORDS}
Requires: Molecule, filebase, location of mopac_exe, flag to not clean
up mopac files after running
Returns: nothing
Same_substructure ../lib/silico_residue.pm
-------------------------------------------------------
Check if two atoms are in the same substructure. Looks at SUBNAME, SUBID,
SEGID and CHAIN.
Requires: Atom 1, atom 2
Returns: 1 if they are, 0 otherwise.
Sanitise_hydrogens ../lib/silico_hydrogens.pm
---------------------------------------------------------
Make sure that every hydrogen has the same residue name, number, segid and
chain as the parent atom
Requires: molecule
Sanitise_segid_chain ../bin/find_amino_acids
------------------------------------------------------
Make sure that the chain and segid are consistent within a residue.
Scale_vector ../lib/silico_geom.pm
----------------------------------------------------
Multiply a vector by a scalar
Requires: scalar, vector
Returns: vector
Score_ring_het ../lib/silico_rings.pm
-----------------------------------------------------
Score a heterocyclic ring so that it can be sorted into a canonical order
Score is a string made of atom element_numbers printed as C = 006, O = 008
etc. followed by a string of bondorders. Using this system, benzene is
represented as '006006006006006006444444'.
With added bridgeheads!
Requires: array of ring atom numbers, molecule
Returns: score string
Score_total_charge ../lib/silico_gromacs.pm
-------------------------------------------------------
Calculate the total deviation of charge groups from integer values and also
the single largest deviation
Requires: molecule, groups array
Returns: score, maximum_charge_deviation
Sdf_calc_atom_parity_error ../lib/silico_sdf.pm
---------------------------------------------------
Check that the chirality (parity) flags in an sdf file match the actual
stereochemistry in the file.
Requires: molecule, optional flag to mark failed atoms as Du
Returns: negative of the number of errors in parity
Sdf_check_chiral_parity ../lib/silico_sdf.pm
---------------------------------------------------
Check that the chirality (parity) flags in an sdf file match the actual
stereochemistry in the file.
Requires: molecule, optional flag to mark failed atoms as Du
Returns: negative of the number of errors in parity
Sdf_data_to_atom ../lib/silico_sdf.pm
---------------------------------------------------
Copy data from SDF_DATA to atom records
Assumes SDF data is in an array
Somewhat dangerous
Sdf_data_to_table_delimited ../lib/silico_tabledata.pm
---------------------------------------------------------
Copy ensemble sdf_data to table format
Requires: Ensemble
Returns: Table data structure
Sdf_error_mol ../lib/silico_sdf.pm
---------------------------------------------------
Produce an empty molecule as a result of a read error
Sdf_fastsplit ../lib/silico_split.pm
-----------------------------------------------------
Split an sdf file into individual molecules without parsing the file
Requires: input filename, output directory (optional), output style (see
subroutine format_oname), max number of structures per output
file, name of sdf field to rename structures, name of field to
split structures
Returns: list of files created
Select_residues ../bin/find_aggregate
----------------------------------------------------
Select important residues
Submolecules are identified by connectivity. Waters are excluded
Returns: array of residues, pseudo molecule containing all interesting
atoms
Select_residues ../bin/find_aggregate.x
------------------------------------------------------
Select important residues
Submolecules are identified by connectivity. Waters are excluded
Returns: array of residues, pseudo molecule containing all interesting
atoms
Select_rotate_bond ../lib/silico_geom.pm
----------------------------------------------------
Select a random rotatable bond from a list of atoms
Requires: molecule, atom list (uses heavy atoms if this is undefined)
Returns: atom1, atom2; undef if failed to find a rotatable bond
Seq_fix_residue_numbers ../lib/silico_sequence.pm
--------------------------------------------------------
Make sure residue numbers and the sequence are consistent.
Renumbers residues from 1 if any residue numbers are undefined.
Adds gaps to sequences if any residue numbers are missing
Requires: sequence
Returns: nothing
Seq_label_by_field ../lib/silico_sequence.pm
--------------------------------------------------------
Label molecule atoms in target sequence according to properties of property
sequence using a definable mapping
Requires: target sequene, property sequence, field, mappiing (hash
containing value, label pairs Eg clustal mapping is (KEY,
VALUE) *, CLUSTAL_CONS; :,CLUSTAL_STRONG; ., CLUSTAL_WEAK
Target and property sequences can be identical
Returns: nothing
Seq_label_by_homology ../lib/silico_sequence.pm
--------------------------------------------------------
Label residues by homology
Requires that sequences_consensus & map sequence have been run first
Percentage conservation is marked with the flags: H_CONS, H_HIGH H_MED, H_LOW
and H_VLOW. The occupancy of PDB files set to the fraction conservation
(fraction of sequences with the most popular amino acid). The value
$atom->{CONSERV} is also set to the fraction conservation
Requires: Sequence molecule, Consensus sequence
Returns: nothing
Seq_label_indels ../lib/silico_sequence.pm
--------------------------------------------------------
Label sequence insertion and deletion points
Requires that sequences_consensus & map sequence have been run first
Insertions and deletions is marked as the sets: INS and DEL
Requires: Sequence molecule, Consensus sequence
Returns: nothing
Seq_mark_start_end ../lib/silico_sequence.pm
--------------------------------------------------------
Mark gaps at the start and end of as sequence with '+'
Operates on non-consensus sequences
Seq_merge ../lib/silico_sequence.pm
--------------------------------------------------------
Merge fields from sequence1 into sequence2
Requires; sequence1, sequence2, fields to merge
Returns; nothing
Seq_printout ../lib/silico_sequence.pm
--------------------------------------------------------
Print out a single sequence record and sequence information
Requires: Single sequence record, option string
Returns: Nothing
Seq_printout_header ../lib/silico_sequence.pm
--------------------------------------------------------
Print out data from sequence hash except the actual SEQ records
Requires: sequence
Seq_printout_one ../lib/silico_sequence.pm
--------------------------------------------------------
Print out an AA sequence in one letter code
Requires: Single sequence record, number of AAs per line (opt), number
of AAs per group (opt)
Returns: Nothing
Seq_printout_three ../lib/silico_sequence.pm
--------------------------------------------------------
Print out an AA sequence in three letter code
Requires: Single sequence record
Returns: Nothing
Seq_read_error ../lib/silico_io.pm
--------------------------------------------------
Print an error on failing to read sequence data from a file
Requires: filename, flag to write error message and die
Returns: Nothing
Seq_residue_fields ../lib/silico_sequence.pm
--------------------------------------------------------
Get all residue fields of a sequence
Requires: sequence
Returns: fields as an array
Seq_string ../lib/silico_sequence.pm
--------------------------------------------------------
Return a sequence as a string of one-letter sequence
Requires: sequence, flag to delete gaps
Returns: string
Sequences_STD ../lib/silico_sequence.pm
--------------------------------------------------------
Select only amino acid sequences from a set of sequences
--------------------------------------------------------
Requires: sequences
Returns: sequences
Sequences_STD_nonSTD ../lib/silico_sequence.pm
--------------------------------------------------------
Select both aa and non-amino acid sequences from a set of sequences
-------------------------------------------------------------------
Requires: sequences
Returns: standard sequences, non aa sequences
Sequences_clustal_homology ../lib/silico_sequence.pm
--------------------------------------------------------
Calculate the homology of a set of sequences according to the clustal scheme
Sets the 'CONS' field to values of ~, ., : or * for each AA
Nonstandard sequences (ie seq->{TYPE} ne 'STD') and sequences with names
starting with
an underscore are ignored
Requires: Sequences
Returns: a sequence containing clustal markers of homology
Sequences_consensus ../lib/silico_sequence.pm
--------------------------------------------------------
Calculate a consensus sequences and other stats
Nonstandard sequences (ie seq->{TYPE} ne 'STD) and sequences with names
starting with an underscore are ignored
Requires: Sequences
Returns: consensus sequence record
Sequences_get_column ../lib/silico_sequence.pm
--------------------------------------------------------
Return one column from a set of sequences
Requires: sequence, column number
Returns: pointer to array of aas
Sequences_length ../lib/silico_sequence.pm
--------------------------------------------------------
Find longest sequence in a set of sequences
Requires: sequences
Returns: length of longest array indexed from 1
Sequences_nonSTD ../lib/silico_sequence.pm
--------------------------------------------------------
Select only non-amino acid sequences from a set of sequences
------------------------------------------------------------
Requires: sequences
Returns: sequences
Sequences_printout ../lib/silico_sequence.pm
--------------------------------------------------------
Print out a set of sequences using one letter code
Requires: sequences, options string
Returns: nothing
Sequences_read_mols ../lib/silico_sequence.pm
--------------------------------------------------------
Read in any molecule files that correspond to sequence names
Only considers pdb and mol2 files
Requires: sequences, flag to map residues in molecule to sequence (on by
default)
Returns: nothing
Sequences_write_mols ../lib/silico_sequence.pm
--------------------------------------------------------
Write any molecule files attached to sequences
Set_acidbase ../lib/silico_hydrogens.pm
---------------------------------------------------------
Set formal charges on acidic/basic atoms
Uses the subroutine find_nearby_formal_charges to prevent setting charges near
to atoms that are already charged
Currently set to search five bonds away
Requires: atom, molecule, formal charge
Returns: 1 if charge set, 0 if not set
Set_debg17 ../lib/silico_mmod.pm
----------------------------------------------------
Work out if macromodel debug command DEBG 17 should be set
Reqires: molecule
Returns: true or false
Set_default_oappend ../lib/silico_io.pm
--------------------------------------------------
Define a default oappend string
Requires: string
Set_flag ../lib/silico_io.pm
--------------------------------------------------
Set a flag to a value
Searches by short name (default) or long name (if 'l' is supplied as a second
argument).
Requires: flag name (string), search type (optional string), value
(default 1)
Returns: nothing
Set_lflag ../lib/silico_io.pm
--------------------------------------------------
Set flag by long name
Requires: flag name, value
Calls set_flag
Set_sflag ../lib/silico_io.pm
--------------------------------------------------
Set flag by short name
Requires: flag name, value
Calls set_flag
Set_torsion_angle ../lib/silico_geom.pm
----------------------------------------------------
Set a torsion angle to a particular angle
Will rotate whole molecule if bond is in a ring
The static atoms are overridden if an ANCHOR atom is set.
Requires: Molecule, 4 atoms (first two static), angle
Returns: Nothing
Setup_flags ../lib/silico_io.pm
--------------------------------------------------
Initiate flag by checking for menu or help options
Setup_fp_flags ../lib/silico_fp.pm
--------------------------------------------------
Make flags required for fingerprints
Requires: max fragment size (default 8), min fragment size (default 3)
Returns: nothing
Setup_mopac_keywords ../lib/silico_mopac.pm
-----------------------------------------------------
Setup mopac keywords
Requires: Nothing
Returns: keywords
Shared_rings ../lib/silico_rings.pm
-----------------------------------------------------
Counts the number of common rings a pair of atoms share.
Requires: Molecule, atom 1, atom 2
Returns: Number of shared rings
Silico_msg ../lib/silico_control.pm
-------------------------------------------------------
Print out a note, warning, error or fatal-error message.
Types are c, comment etc, g debug etc etc
Requires: Type (single-character string), strings
Returns: Nothing
Silico_putline ../lib/silico_io.pm
--------------------------------------------------
Put a line back on 'the stack'
Requires: line, file record
Silico_readline ../lib/silico_io.pm
--------------------------------------------------
Read a line from $fr->{FH}. Remove carriage returns and line feeds
Lines can be stored in var $fr->{READLINE}
$fr->{END} is set if the end of the file is reached.
Requires: file record
Returns: processed line
Silico_setup ../bin/backbone
----------------------------------------------
Silico_setup ../bin/bilayer_builder
-----------------------------------------------------
Silico_setup ../bin/cexplot
---------------------------------------------
Silico_setup ../bin/checkbox
----------------------------------------------
Silico_setup ../bin/clip
------------------------------------------
Silico_setup ../bin/cluster
---------------------------------------------
Silico_setup ../bin/cluster_fp
------------------------------------------------
Silico_setup ../bin/dock_sort
-----------------------------------------------
Silico_setup ../bin/ens_randomise_order
---------------------------------------------------------
Silico_setup ../bin/ens_sort
----------------------------------------------
Silico_setup ../bin/extract_lig_prot
------------------------------------------------------
Silico_setup ../bin/file_rename
-------------------------------------------------
Silico_setup ../bin/find_aggregate
----------------------------------------------------
Silico_setup ../bin/find_aggregate.x
------------------------------------------------------
Silico_setup ../bin/find_amino_acids
------------------------------------------------------
Locate the Silico libraries and read in the parent library, silico.pm
Sets: $Silico::home_dir, $Silico::lib_dir
Requires: nothing
Returns: nothing
Silico_setup ../bin/find_clash
------------------------------------------------
Silico_setup ../bin/find_close_atoms
------------------------------------------------------
Silico_setup ../bin/find_close_water
------------------------------------------------------
Silico_setup ../bin/find_groups
-------------------------------------------------
Silico_setup ../bin/find_rings
------------------------------------------------
Silico_setup ../bin/find_similar
--------------------------------------------------
Silico_setup ../bin/fix_cis_amides
----------------------------------------------------
Silico_setup ../bin/flatten
---------------------------------------------
Silico_setup ../bin/formatdoc
-----------------------------------------------
Silico_setup ../bin/gromacs_fix_chiral_impropers
------------------------------------------------------------------
Silico_setup ../bin/make_box
----------------------------------------------
Silico_setup ../bin/make_index
------------------------------------------------
Silico_setup ../bin/max_similarity_fp
-------------------------------------------------------
Silico_setup ../bin/micelle
---------------------------------------------
Silico_setup ../bin/mmod_csearch
--------------------------------------------------
Silico_setup ../bin/mmod_min
----------------------------------------------
Silico_setup ../bin/mmod_qikprop
--------------------------------------------------
Silico_setup ../bin/mol2seq
---------------------------------------------
Silico_setup ../bin/mol2split
-----------------------------------------------
Silico_setup ../bin/mol_add_h
-----------------------------------------------
Silico_setup ../bin/mol_add_lp
------------------------------------------------
Silico_setup ../bin/mol_add_segid
---------------------------------------------------
Silico_setup ../bin/mol_amides
------------------------------------------------
Silico_setup ../bin/mol_boltz_pop
---------------------------------------------------
Silico_setup ../bin/mol_centre
------------------------------------------------
Silico_setup ../bin/mol_characterise
------------------------------------------------------
Silico_setup ../bin/mol_charge
------------------------------------------------
Silico_setup ../bin/mol_check
-----------------------------------------------
Silico_setup ../bin/mol_combine
-------------------------------------------------
Silico_setup ../bin/mol_del_atoms
---------------------------------------------------
Silico_setup ../bin/mol_del_dummy
---------------------------------------------------
Silico_setup ../bin/mol_del_excess_solv
---------------------------------------------------------
Silico_setup ../bin/mol_del_h
-----------------------------------------------
Silico_setup ../bin/mol_del_solvent
-----------------------------------------------------
Silico_setup ../bin/mol_divide
------------------------------------------------
Silico_setup ../bin/mol_ensemble_average
----------------------------------------------------------
Silico_setup ../bin/mol_extents
-------------------------------------------------
Silico_setup ../bin/mol_filter
------------------------------------------------
Silico_setup ../bin/mol_fp
--------------------------------------------
Silico_setup ../bin/mol_hydrogen_bonds
--------------------------------------------------------
Silico_setup ../bin/mol_label_fg
--------------------------------------------------
Silico_setup ../bin/mol_mw
--------------------------------------------
Silico_setup ../bin/mol_rama
----------------------------------------------
Silico_setup ../bin/mol_rename
------------------------------------------------
Silico_setup ../bin/mol_renumber
--------------------------------------------------
Silico_setup ../bin/mol_rescale_bonds
-------------------------------------------------------
Silico_setup ../bin/mol_rot
---------------------------------------------
Silico_setup ../bin/mol_rot_bond
--------------------------------------------------
Silico_setup ../bin/mol_rotrans
-------------------------------------------------
Silico_setup ../bin/mol_segment
-------------------------------------------------
Silico_setup ../bin/mol_smiles
------------------------------------------------
Silico_setup ../bin/mol_solvate
-------------------------------------------------
Silico_setup ../bin/mol_sort
----------------------------------------------
Silico_setup ../bin/mol_sort_fp
-------------------------------------------------
Silico_setup ../bin/mol_split
-----------------------------------------------
Silico_setup ../bin/mol_split_segid
-----------------------------------------------------
Silico_setup ../bin/mol_transfer_coords
---------------------------------------------------------
Silico_setup ../bin/mol_unsplit
-------------------------------------------------
Silico_setup ../bin/mol_wrap_cell
---------------------------------------------------
Silico_setup ../bin/n_dist
--------------------------------------------
Silico_setup ../bin/pdb_chain_split
-----------------------------------------------------
Silico_setup ../bin/pdb_rename_hydrogens
----------------------------------------------------------
Silico_setup ../bin/pdbsplit
----------------------------------------------
Silico_setup ../bin/plot_dihedrals
----------------------------------------------------
Silico_setup ../bin/radius_of_gyration
--------------------------------------------------------
Silico_setup ../bin/random_box
------------------------------------------------
Silico_setup ../bin/randomise
-----------------------------------------------
Silico_setup ../bin/randomise_conformation
------------------------------------------------------------
Silico_setup ../bin/rdf
-----------------------------------------
Silico_setup ../bin/renumber_residues
-------------------------------------------------------
Silico_setup ../bin/residue_distance
------------------------------------------------------
Silico_setup ../bin/residue_rename
----------------------------------------------------
Silico_setup ../bin/rms
-----------------------------------------
Silico_setup ../bin/rms_pairs
-----------------------------------------------
Silico_setup ../bin/scale
-------------------------------------------
Silico_setup ../bin/sdfsplit
----------------------------------------------
Silico_setup ../bin/similarity_fp
---------------------------------------------------
Silico_setup ../bin/slurp
-------------------------------------------
Silico_setup ../bin/smooth
--------------------------------------------
Silico_setup ../bin/starmaker
-----------------------------------------------
Silico_setup ../bin/tabulate
----------------------------------------------
Silico_setup ../bin/vesicle_builder
-----------------------------------------------------
Silico_setup ../bin/water_to_ion
--------------------------------------------------
Silico_setup ../bin/write_g03zmat
---------------------------------------------------
Silico_setup ../bin/write_gro
-----------------------------------------------
Silico_setup ../bin/write_itp
-----------------------------------------------
Silico_setup ../bin/write_merck
-------------------------------------------------
Silico_setup ../bin/write_mmod
------------------------------------------------
Silico_setup ../bin/write_mol
-----------------------------------------------
Silico_setup ../bin/write_mol2
------------------------------------------------
Silico_setup ../bin/write_mopac
-------------------------------------------------
Silico_setup ../bin/write_pdb
-----------------------------------------------
Silico_setup ../bin/write_sdf
-----------------------------------------------
Silico_setup ../bin/write_seq
-----------------------------------------------
Silico_setup ../bin/write_tab
-----------------------------------------------
Silico_setup ../bin/write_tinker
--------------------------------------------------
Silico_vdw_radii ../lib/silico_definitions.pm
-----------------------------------------------------------
Create a list of Silico van der Waals radii, one for each atom.
This data should be used only to determine whether or not to create a bond
when generating connectivity information.
Some elements have their radii artifically set to zero, so as to prevent bonds
from being created to these elements.
The hydrogen atom's radius is reduced to 0.2 Angstroms.
Bonds to (between?) C, H, N, O, P and S are determined elsewhere with
reference to the expected lengths for bonds to these atoms.
Requires: nothing
Returns: nothing
Simple_atomtype ../lib/silico_prop.pm
----------------------------------------------------
Simple polar/nonpolar atom type routine
Sleep_or_stop ../lib/silico_control.pm
-------------------------------------------------------
Check for sleep and stop files
Waits while a sleep file is present in the working directory
Returns 1 if stop file found
Slurp_file ../lib/silico_io.pm
--------------------------------------------------
Read a molecule file and split into separate molecules as TEXT files.
Currently only splits pdb, mol2 and sdf files. All others are returned unsplit
Requires: filename
Returns: an array containing each molecule as text
Smiles_invariant ../lib/silico_smiles.pm
------------------------------------------------------
Generates a SMILES invariant for each atom, so as to assist in forming Unique
SMILES strings.
Requires: atom, molecule, list of atoms in SMILES set
Returns: invariant string
Smiles_list_recursive ../lib/silico_smiles.pm
------------------------------------------------------
Determine the SMILES string representation for a given atom.
Requires: atom, molecule, ...
Returns: string
Smooth_delimited ../lib/silico_tabledata.pm
---------------------------------------------------------
Average data in a delimited file over a window
Window is the number of values on either side to average over. i.e. a window
value of 1 will average over 3 values.
Sort_atoms_label ../bin/water_to_ion
--------------------------------------------------
Routine to sort atoms using atom->{SORT_LABEL}
Requires: molecule.
Sort_itp_by_atom_number ../bin/write_itp
-----------------------------------------------
Sort GMX_BONDS GMX_PAIRS GMX_ANGLES GMX_DIHEDRALS GMX_EXCLUSIONS in ascending
order by atom bumber
Requires: molecule
Returns: nothing
Sort_itp_by_smiles ../bin/write_itp
-----------------------------------------------
Sort itp file by canonical smiles ascending order by atom bumber
Requires: molecule
Returns: nothing
Space_group_pdb_to_silico ../lib/silico_pdb.pm
---------------------------------------------------
Turn a PDB space group string into a Silico space group code.
This subroutine assumes that there is only one key (Silico space group code)
for each value (PDB space group string).
Requires: string
Returns: string
Space_group_silico_to_pdb ../lib/silico_pdb.pm
---------------------------------------------------
Turn a Silico space group code into a PDB space group string.
Requires: string
Returns: string
Splitline ../lib/silico_data.pm
----------------------------------------------------
Take a line of text, clean it up and split it into an array
Requires: Text
Returns: Array
Standard_bond_lengths ../lib/silico_definitions.pm
-----------------------------------------------------------
Create a hash containing standard chemical bond lengths. The hash key contains
the bond: two atoms, between which is a character denoting the bond order.
Dash ('-'): single bond Equals sign ('='): double bond Percent sign ("%"):
triple bond
At the moment, bond lengths are given twice: one for A-B, the other for B-A.
This is because we can't be sure in advance which order the atoms will be
given in.
Bond lengths were sourced from
http://chemviz.ncsa.uiuc.edu/content/doc-resources-bond.pdf, January 2007.
Note: The bond length for Sb-Cl is for antimony trichloride, not antimony
pentachloride.
Requires: nothing
Returns: nothing
Standard_deviation_bias_corrected ../lib/silico_statistics.pm
-------------------------------------------------------------
Calculates the bias-corrected (n-1) standard deviation of a set of data
Requires: Array
Returns: standard deviation (scalar quantity)
Standard_deviation_bias_uncorrected ../lib/silico_statistics.pm
---------------------------------------------------------------
Calculates the bias-uncorrected standard deviation of a set of data
Requires: Array
Returns: standard deviation (scalar quantity)
Standardise_boolean ../lib/silico_data.pm
----------------------------------------------------
Turn a Silico boolean value into 1 or 0 depending on what it is.
Requires: Text
Returns: Number
Standardise_ring ../lib/silico_rings.pm
-----------------------------------------------------
Order a ring (list of atom numbers) that is in a standard 'orientation'.
Rearrange atoms in a ring list so that atom[0] has the lowest number and
atom[1] has a lower number than atom[-1].
Requires: ptr to array of atom numbers.
Returns: ptr to normalised array of atom numbers.
Standardise_ring_by_heteroatoms ../lib/silico_rings.pm
------------------------------------------------------
Order a list of ring atoms so that is in a standard 'orientation' organised by
hetero ring atoms and bondorders.
Rearrange atoms in a ring list so that the highest atomic number has the
lowest position in the ring with a subsequent requirement that the highest
bondorder is at the lowest position in the ring.
Requires: ptr to array of atom numbers.
Returns: ptr to normalised array of atom numbers, string made of atom
elements and bondorders - for example pyridine will be
returned as 'N4C4C4C4C4C4'.
Subname ../lib/silico_control.pm
-------------------------------------------------------
Return the name of the subroutine in which this was called
Requires: Nothing
Returns: Name
Superimpose_sybyl ../lib/silico_sybyl.pm
-----------------------------------------------------
Superimpose a molecule with Sybyl
The location of the sybyl executable must be in $Silico::sybyl_exe
Temporary files are written to $Silico::temp_dir or to current working
directory if $Silico::debug is set.
Requires: molecule1, molecule2, atoms (mol11), atoms (mol2), flag to
specify that atoms are provided as atom numbers Atom numbers
are indexed from zero.
Returns: molecule2 in superimposed orientation (undef if Sybyl failed
to write out a structure)
Superimpose_sybyl_multi ../lib/silico_sybyl.pm
-----------------------------------------------------
Superimpose many molecules with Sybyl.
The location of the sybyl executable must be in $Silico::sybyl_exe
Temporary files are written to $Silico::temp_dir or to current working
directory if $Silico::debug is set.
Requires: molecule1, molecules2, atomlist1, atomlists2, offset
Returns: ensemble of molecules2 in superimposed orientation (undef if
Sybyl failed to write out a structure)
Sybyl_align ../lib/silico_sybyl.pm
-----------------------------------------------------
Align pdb structures by using the Sybyl 'biopolymer align_structure' command
Requires: pdb filename 1, pdb filename 2
Returns: molecule or undef if Sybyl failed to write out a structure
Sybyl_sort ../lib/silico_mol2.pm
----------------------------------------------------
Ensure that molecule is written out with substructures in numerical order.
This can cause problems with other software packages if it is not the case.
Sybyl doesn't mind this though
Requires: ensemble.
Returns: nothing.
Sybyl_spectrum ../lib/silico_sybyl.pm
-----------------------------------------------------
Return a Sybyl colour based on a value and a maximum range
Assumes that the value is between 0 and $range. Returns one of a spectrum of
10 colours (RED REDORANGE ORANGE YELLOW GREEN GREENBLUE CYAN BLUE PURPLE
VIOLET)
Reqires: value, minimum value of colour range (default 0), maximum
value of colour range (default 100)
Returns: colour (string)
Table_delimited_addcolumn ../lib/silico_tabledata.pm
---------------------------------------------------------
Add a new column to a 'delimited' data structure
Requires: Data structure, new key name
Returns: new column number (zero based)
Table_delimited_getrow ../lib/silico_tabledata.pm
---------------------------------------------------------
Return a row from a delimited data structure
Requires: Data structure, array of column names
Returns: array or undef if finished
Increments $data->{CURRENT_LINE} to keep track of row. Reset
$data->{CURRENT_LINE} to undef to start from the beginning again
Table_delimited_getval ../lib/silico_tabledata.pm
---------------------------------------------------------
Return a value from the current line
Requires: Data structure, column name
Returns: value
Uses $data->{CURRENT_LINE} to keep track of row
Table_delimited_inc_row ../lib/silico_tabledata.pm
---------------------------------------------------------
Return a row from a delimited data structure
Requires: Data structure
Returns: array or undef if finished
Increments $data->{CURRENT_LINE} to keep track of row. Reset
$data->{CURRENT_LINE} to undef to start from the beginning again
Tag_markup ../lib/silico_doc.pm
---------------------------------------------------
Clean up comment text and convert silico markup to tags
Tags are:
< HEAD# > (#!)
< STD > (#.)
< STD_DESC > (#?)
< HANG > (#;)
< HANG_SHORT > (#:)
< INDENT > (#,)
< LIST > (#-)
< LINKaddress > text for html links. These do not correspond to
anything in the silico simple markup scheme
(Note that extra spaces have been added to the tags above to stop them being
recognised by makedoc).
The first part of a hanging indent can use underscores to represent spaces
Tan_substructure_frac ../lib/silico_fp.pm
--------------------------------------------------
Calculate fraction of substructure keys present in a parent molecule
frac = Num common fragments / Num fragments in mol1
Requires: hash of fragments 1, hash of fragments 2
Returns: Tanimoto coefficient
Tanimoto ../lib/silico_fp.pm
--------------------------------------------------
Calculate the Tanimoto (or Tversky) coefficient given two hashes of fragments.
See http://www.chemaxon.com/jchem/doc/user/query_similarity.html#metrics
Tanimoto coeff = Num common fragments / Num fragments in mol1 + Num fragments
in mol2 - Num common fragments
Tversky coeff = Num common fragments / alpha (Num fragments in mol1 - Num
common fragments) + beta (Num fragments in mol2 - Num common fragments) + Num
common fragments
alpha = 0 and beta = 1 => Molecule 2 as a substructure of Molecule 1
alpha = 1 and beta = 2 => Molecule 2 as a superstructure of Molecule 1
Requires: hash1, hash2, (alpha, beta coefficiencts for Tversky, optional)
Returns: Tanimoto coefficient
Tanimoto_freq ../lib/silico_fp.pm
--------------------------------------------------
Calculate the Tanimoto coefficient given two hashes of fragments including
fragment frequencies
Requires: hash of fragments 1, hash of fragments 2
Returns: Tanimoto coefficient
Tanimoto_matrix ../lib/silico_fp.pm
--------------------------------------------------
Calculate a matrix of Tanimoto coefficients for two ensembles
Requires: ensemble1, ensemble2 (optional), (alpha, beta coefficiencts for
Tversky, optional)
Returns: array
Test_all_shapes ../lib/silico_rbox.pm
----------------------------------------------------
Test whether a molecule complies with a set of geometric restrictions provided
by flags
Requires: molecule, cell
Returns: true or false
Test_cylinder_arb ../lib/silico_rbox.pm
----------------------------------------------------
Test if all atoms of a molecule are INSIDE or OUTSIDE a set of cylinders lying
along arbitrary axes
If invert is FALSE then function returns TRUE if molecule is OUTSIDE ALL
cylinders
If invert is TRUE then function returns TRUE if molecule is INSIDE ANY
cylinder
Note the sense of this test is the opposite of the others. Probably should be
modified.
Requires: Molecule, cell, invert flag
Returns: True or false
Test_energy_molcount ../lib/silico_mmod.pm
----------------------------------------------------
Test to see if we have exceeded molecule maximum energy or maximum molecule
count set by flags
Requires: filehandle, molecule, max_energy (optional or from flag), max
molcount (optional or from flag)
Returns; true if we have exeeded counts/energy
Test_plane ../lib/silico_rbox.pm
----------------------------------------------------
Test if molecule lies completely within (or completely outside) a (set of)
plane(s)
Plane centres are set by by Silico:origin_points
Plane direction default xz or xy by flag
If invert NOT set
Returns 1 if molecule lies completely inside any one plane.
If invert IS set
Returns 1 if molecule lies completely outside ALL planes
Requires: molecule, cell, invert flag
Returns: true or false
Tinker_space_group ../lib/silico_tinker.pm
------------------------------------------------------
Convert a Silico space group (numeric code) to Tinker format based on
Hermann-Mauguin symbols.
Requires: Space group in Silico format
Returns: Space group in Tinker format; undef if error
Traverse ../lib/silico_rings.pm
-----------------------------------------------------
Recursive subroutine to find rings
Called from find_atom_rings
Requires: path
Returns: nothing
Two_bond_angle ../lib/silico_geom.pm
----------------------------------------------------
Find the angle between two bonds (four atoms)
Requires: atom1, atom2, atom3, atom4
Returns: angle in radians.
Two_bond_normal ../lib/silico_geom.pm
----------------------------------------------------
Return a normal vector to two bonds (four atoms)
Requires: atom1, atom2, atom3, atom4
Returns: vector (x, y, z)
Unit_normal_vector ../lib/silico_geom.pm
----------------------------------------------------
Return a unit vector normal to a given vector
Vector will also be normal to X, Y or Z axis
Requires: vector
Returns: vector
Unit_vector ../lib/silico_geom.pm
----------------------------------------------------
Normalises a vector, providing a unit vector.
Requires: array of three elements (x, y and z components)
Returns: unit vector as an array
Valence ../lib/silico_molecules.pm
---------------------------------------------------------
Return the valence of an atom
Note that THIS ROUTINE CAN RETURN NON-INTEGRAL VALUES for bonds involving
aromatic bond types (eg carboxylates or guanidines represented using aromatic
bonds). The valence is corrected for aromatic bridgehead atoms which return a
valence of 4 rather than 4.5 (which would result from three aromatic bonds).
The minimum possible valence is returned for poorly defined bond types (>=5)
Requires: atom, molecule (optional but necessary to detect lone pairs)
Returns: valence
Variance_bias_corrected ../lib/silico_statistics.pm
----------------------------------------------------------
Calculates the bias-corrected (n-1) variance of a set of data
Requires: Array
Returns: variance (scalar quantity)
Variance_bias_uncorrected ../lib/silico_statistics.pm
----------------------------------------------------------
Calculates the bias-uncorrected (n) variance of a set of data
Requires: Array
Returns: variance (scalar quantity)
Vector ../lib/silico_geom.pm
----------------------------------------------------
Calculates a vector from two Cartesian points.
Requires: coord1, coord2
Returns: vector as an array
Vector_add ../lib/silico_geom.pm
----------------------------------------------------
Add two vectors (length 3)
Requires: vectors, vector
Returns: vector
Veryquiet ../lib/silico_io.pm
--------------------------------------------------
Check if we are being very quiet (i.e., the --very-quiet option is used).
Requires: nothing
Returns: 1 (very quiet), 0 (not very quiet)
Wraphtml ../lib/silico_doc.pm
---------------------------------------------------
Add header and footer to formatted html
Write_binfile ../lib/silico_tabledata.pm
---------------------------------------------------------
Write out a tab-delimited file of binned data
Requires: output filename
Returns: one or undef if file open failed.
Write_clustal ../lib/silico_sequence.pm
--------------------------------------------------------
Write a clustal format file
Requires: Sequences, filename
Returns: Nothing
Options:
DELIMITER='x' Delimiter between fields
NUMLINE=XX Print XX residues per line
WIDTH=XX Print XX characters per residue
Write_divcon_cart ../lib/silico_mopac.pm
-----------------------------------------------------
Print out a DivCon Cartesian format file
Currently prints out only the first molecule of the ensemble
Options: CLUSTER
Flags: nmr (peptide, all), opt (num optimization steps)
Requires: Ensemble (or molecule), filename.
Returns: undef if file open fails otherwise returns 1.
Write_fasta ../lib/silico_sequence.pm
--------------------------------------------------------
Write fasta format
Requires: Sequences, filename, options
Returns: Nothing
Write_gaussian_cart ../lib/silico_gaussian.pm
--------------------------------------------------------
Print out a gaussian Cartesian format file
Requires: ensemble (or molecule), output filename
Returns: undef if write failed
Write_gaussian_zmatrix ../lib/silico_gaussian.pm
--------------------------------------------------------
Gaussian Z-matrix writer.
Requires: ensemble or molecule, filename, forcefield file (optional) to
type atoms.
Returns: undef if file open failed otherwise returns 1.
Write_gromacs_gro ../lib/silico_gromacs.pm
-------------------------------------------------------
Write a gro file
Requires: Ensemble, filename, $options.
Returns: Zero if file open failed otherwise returns 1.
Options:
SPLIT - print out an ensemble as separate Gromacs files
PRECISE - increase precision of gro file to 0.001 Angstroms
VERYPRECISE - increase precision of gro file to 0.0001 Angstroms
Requires: Ensemble, filename, options
Returns: Undef if write failed, otherwise 1
Write_gromacs_gro_molecule ../lib/silico_gromacs.pm
-------------------------------------------------------
Print out a single gro format molecule
Called from write_gromacs_gro
Requires: Molecule, optional flag to increase precision of file
Returns: nothing
Write_gromacs_index_file ../lib/silico_gromacs.pm
-------------------------------------------------------
Write gromacs index file
Requires: Output filename, hash of atomlists, array of hash keys, flag
to index atom numbers from zero
Returns: Nothing
Write_gromacs_itp ../lib/silico_gromacs.pm
-------------------------------------------------------
Write a gromacs included topology file
Requires: Ensemble (or molecule), options
Returns: Undef if write failed, otherwise 1
Write_gromacs_itp_mol ../lib/silico_gromacs.pm
-------------------------------------------------------
Write a gromacs included topology file
Assumes that bonds are present and that bond orders are correct
Requires: file_record, molecule, options
Returns: Undef if write failed, otherwise 1
Note that these subroutines use a new BONDS and ANGLES format
currently called GMX_BONDS etc
Write_mae ../lib/silico_mmod.pm
----------------------------------------------------
Basic Maestro write routine.
Requires: ensemble (or molecule), filename.
Returns: undef if file open failed otherwise returns 1.
Options: GZ (writes maegz format)
Write_mae_molecule ../lib/silico_mmod.pm
----------------------------------------------------
Write a single record from a pdb file.
Requires: file record, molecule, options
See read_pdb for general description
Returns: 1 or undef if failed
Write_maegz ../lib/silico_mmod.pm
----------------------------------------------------
Basic Maestro maegz write routine (wrapper for write_mae)
Requires: ensemble (or molecule), filename.
Returns: undef if file open failed otherwise returns 1.
Write_merck ../lib/silico_merck.pm
-----------------------------------------------------
Print out an ensemble as separate Merck molecules
Requires: Ensemble (or molecule), filename
Returns: undef if failed
Write_merck_mol ../lib/silico_merck.pm
-----------------------------------------------------
Print out a single Merck format molecule
Currently crudely attempts to assign Merck formal charge parameters. This
makes the assumption that all hydrogens are present and all bond valences are
correct
Attempts to fix valence of dataive bonds to single and use alternating double
and single bonds for aromatic rings
Requires: Molecule, optional output options string
Returns: 1
Write_mmod ../lib/silico_mmod.pm
----------------------------------------------------
Macromodel write routine.
Requires: ensemble (or molecule), filename.
Returns: undef if file open failed otherwise returns 1.
Write_mmod_com_mdyn_stage ../lib/silico_mmod.pm
----------------------------------------------------
Write the molecular dynamics stage of a macromodel com file
Requires: output filename, simulation time (ps), temperature (K),
timestep, initial temp (opt), final temp (opt), shake flag (0
- none, 1 - hydrogens, 2 - all bonds), stochastic dynamics
flag, output frequency (ps)
Write_mmod_com_mini_stage ../lib/silico_mmod.pm
----------------------------------------------------
Write the minimisation stage of a macromodel com file
Requires: number of steps, final gradient, macromodel minimisation
method code. Flag to loop minimisation
Write_mmod_com_setup ../lib/silico_mmod.pm
----------------------------------------------------
Write initial section of Macromodel command file for a minimisation or other
simulation
Requires: molecule, output filename (required), structure input filename
(opt), structure output filename (opt), forcefield (opls3,
opls2005, opls2001, amber94, amber, mm3, mm2), solvent (water,
chloroform, octanol, none), minimisation method (macromodel
codes, default 20),
Returns: undef if write failed
Write_mmod_com_write_stage ../lib/silico_mmod.pm
----------------------------------------------------
Write a macromodel 'WRIT' command to a macromodel com file
Requires:outfile
Write_mmod_sbc ../lib/silico_mmod.pm
----------------------------------------------------
Write Macromodel constraint commands (SUBS, FXAT) to .sbc or .com files
Uses flags $atom->{MMOD}{XXX} where XXX is SUBS, FXAT, etc
Force constants and other MMOD parameters are stored on a per atom basis in
$atom->{MMOD}{ZZZ} where ZZZ can be FXAT_WELL_HALF_WIDTH, FXAT_FORCECONST,
FXAT_X, FXAT_Y, FXAT_Z
Requires: molecule, filename
Returns: undef if write failed
Write_mol2 ../lib/silico_mol2.pm
----------------------------------------------------
Write an ensemble as a mol2 file.
Carries out the following steps:
Sort atoms so that substructures are written out in numerical order
Generate bonds if there seem to be too few (less than (NUMATOMS -1)/2)
Convert kekule representation of aromatic rings to aromatic type bonds
Convert guanidinium and carboxylates to aromatic type bonds
Generate @<TRIPOS>SUBSTRUCTURE record
Generate Sybyl atom types
Requires: ensemble (or molecule), filename, optional options string.
Returns: undef if file open failed or other error, otherwise 1.
Options:
BOND - Force bond generation
DIVIDE - Write each molecule to a separate file
FAST - Equivalent to NOSORT, NOBOND, NOTYPE. This option can be used
if the file read was already a good quality mol2 file
FLAT - atom type molecule using routines that do not require good
geometry
MOLMOL - produce nonstandard mol2 file that is compatible with molmol
NOSORT - do not sort atom order before writing
NOTYPE - do not perform Sybyl atom typing
NOBOND - do not create any bonds
NOSDF_DATA - do not write SDF_DATA into comments
NO_AROM_DELOC_BONDS - do not convert carboxylate and guanidinium bonds
to aromatic
PROTEIN - write in Sybyl protein format
QUIET - do not print 'Writing' line
SMALL - write in Sybyl small molecule format
Note that by default write_mol2 will change the order of the atoms in the
molecule data structure. This may upset subsequent routines.
Write_mol2_atoms ../lib/silico_mol2.pm
----------------------------------------------------
Write out mol2 atom records
Requires: molecule, filehandle, options;
Returns: nothing
Write_mol2_bonds ../lib/silico_mol2.pm
----------------------------------------------------
Write a mol2 bond records
Note. This routine converts carboxylate and guanidinium groups to aromatic
bond order (in the output file)
Requires: molecule, filehandle, options
Returns: nothing
Write_mol2_comments ../lib/silico_mol2.pm
----------------------------------------------------
Write mol2 comments
Requires: molecule, filehandle
Returns: nothing
Write_mol2_crystal ../lib/silico_mol2.pm
----------------------------------------------------
Write out the CRYSTAL record to a mol2 file
Requires: Molecule, filehandle
Returns: Nothing
Write_mol2_molecule ../lib/silico_mol2.pm
----------------------------------------------------
Write a single molecule record to a mol2 file
Requires: file record, molecule, options
See read_mol2 for general description
Returns: 1 or undef if failed
Write_mol2_sdfdata ../lib/silico_mol2.pm
----------------------------------------------------
Write SDF datainto mol2 comment lines
Requires: molecule, filehandle
Returns: nothing
Write_mol2_set ../lib/silico_mol2.pm
----------------------------------------------------
Write mol2 static sets
Requires: molecule, filehandle
Write_mol2_substructures ../lib/silico_mol2.pm
----------------------------------------------------
Write a mol2 substructure record
Requires: molecule, filehandle
Returns: nothing
Write_mol_any ../lib/silico_io.pm
--------------------------------------------------
Write any supported molecule file type.
Current formats are cml, pdb (pdb or ent), mol2 (mol2) , merck (mrk), sdf (sdf
or mol), tinker (xyz), mopac (out), mmod (out).
Requires: ensemble (or molecule), filebase (determined by subroutine
'obase' if not specified), format (determined by subroutine
'get_oformat' if not specified), (optional) options string
Returns: undef if file open failed or other problem
Write_mol_any_check ../lib/silico_io.pm
--------------------------------------------------
Check that a specified output format is valid for write_mol_any
Requires: format string
Returns: 1 or 0
Write_mol_single ../lib/silico_io.pm
--------------------------------------------------
Write a single molecule
Requires: file_record, molecule, filename base, file format, filename
append_string, options
Returns: 1 or undef
Write_mopac_cart ../lib/silico_mopac.pm
-----------------------------------------------------
Print out a mopac Cartesian format file
Currently prints out only the first molecule of the ensemble
Requires: Ensemble or molecule, filename.
Returns: undef if file open fails otherwise returns 1.
Write_pdb ../lib/silico_pdb.pm
---------------------------------------------------
Write a pdb file
Requires: Ensemble or molecule, filename, $options.
Returns: Zero if file open failed otherwise returns 1.
Options: FAST, NOSORT, NOCONECT, BOND, MODEL
Note: this routine renumbers the ensemble of pdb files
Also note: the handling of pdb chains is somewhat confused
A TER record will be written following an atom with atom->{TER} set
Write_pdb_cryst ../lib/silico_pdb.pm
---------------------------------------------------
Write PDB crystal record
Requires: molecule, filehandle
Returns: nothing
Write_pdb_molecule ../lib/silico_pdb.pm
---------------------------------------------------
Write a single record from a pdb file.
Options: FAST, NOSORT, BOND, NOCONECT, DUCONECT, MODEL
Requires: file record, molecule, options
See read_pdb for general description
Returns: 1 or undef if failed
Write_pdb_sdfdata ../lib/silico_pdb.pm
---------------------------------------------------
Write SDF datainto REMARK records
Requires: molecule, filehandle
Returns: nothing
Write_pir ../lib/silico_sequence.pm
--------------------------------------------------------
Write a pir format file (also known as NBRF format) that is compatible with
Modeller
Requires: Sequences, filename
Returns: Nothing
Write_rama_structure ../lib/silico_rama.pm
----------------------------------------------------
Write out a _rama.txt file of a single structure suitable for the subroutine
'ramaplot'
Requires: molecule, filehandle, optional residue number (indexed from
0).
Returns: nothing
Write_rama_structure_by_mol ../lib/silico_rama.pm
----------------------------------------------------
Write out a .ramol file of a single structure with all phi and psi angles
written on a single line
Requires: molecule, file record, optional residue number (indexed from
0), options
Options: 'CART' will output sin(phi), cos(phi), sin(psi), cos(psi)
instead of phi, phsi
Returns: nothing
Write_sdf ../lib/silico_sdf.pm
---------------------------------------------------
Write an SDF file.
Additional properties are written from mol->{SDF_DATA}{<propertyname>}
All aromatic bonds are converted to kekule representation
Requires: ensemble (or molecule), filename.
Returns: Undef if file open fails otherwise returns one.
Note: Aromatic bondorders are only allowd in database searches.
therefore aromatic bonds must be converted to single/double.
This is currently done for aromatic rings, carboxylates and
guanadines. Hence, database searches containing aromatic bonds
will be modified adversely.
Options:
BOND - force bond generation
NOOND - do not generate bonds
QUIET - do not print 'Writing' line
2D - Set 2D flag in header (default 3D). May be requred for CACTVS
csbr 3D may be required to read in molecules to Insight
Write_sdf_atoms_bonds ../lib/silico_sdf.pm
---------------------------------------------------
Write an MDL Mol record
Note: 2D option forces all Z coordinates to zero
Options: 3D (flag --sdf-3D), 2D (flag --sdf-2D), NO_SQUASH_HCOUNT (flag
--sdf-squash-hcount)
Requires: file record, molecule, options
Returns: undef if error
Write_seq_any ../lib/silico_io.pm
--------------------------------------------------
Write any supported sequence file type.
Requires: sequence ensemble, filebase, format
Returns: undef if file open failed or other problem
Write_seq_any_check ../lib/silico_io.pm
--------------------------------------------------
Check that a specified output format is valid for write_seq_any
Requires: format string
Returns: 1 or 0
Write_smiles ../lib/silico_smiles.pm
------------------------------------------------------
Write an ensemble as a smiles file
Basic implementation
Write_starmaker_comment ../bin/starmaker
-----------------------------------------------
Write comments that will appear in the output file
Requires: molecule
Returns: nothing
Write_table_delimited ../lib/silico_tabledata.pm
---------------------------------------------------------
Write a character delimited text file
Requires: silico tabulated data structure, output filename, delimiter
(default tab), options, list of keys to write out (default
all). Missing values are written as a pair of single quotes
('')
Returns: 1 if OK or undef if file open failed
Options: None yet
QUIET Do not print advisory messages
Write_tinker_prm ../lib/silico_tinker.pm
------------------------------------------------------
Write a TINKER force field parameter file
Requires: Ensemble, filename
Returns: 0 if any molecules failed, 1 if success
Write_tinker_prm_mol_dihedrals_oplsaa ../lib/silico_tinker.pm
-------------------------------------------------------------
Writes out parameters for each dihedral type in the molecule
Requires: Molecule
Returns: Nothing
Write_tinker_prm_oplsaa ../lib/silico_tinker.pm
------------------------------------------------------
Write those parts of a TINKER parameter file that pertain to the OPLS-AA force
field
Requires:
Returns:
Write_tinker_xyz ../lib/silico_tinker.pm
------------------------------------------------------
Tinker write routine.
Requires: ensemble (or molecule), filename, forcefield file (optional)
to type atoms.
Returns: undef if file open failed otherwise returns 1.