MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "Using_non-standard_parameter_files",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "9": {
                "pageid": 9,
                "ns": 0,
                "title": "Rebuilding sequence databases",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "__NOTOC__\n<!-- ## page was renamed from Rebuilding_sequence_databases -->\nOlder versions of the Modeller distribution contain a sequence database, in the files <code>modlib/CHAINS_*</code>. These files are\n* <code>CHAINS_all.seq</code> or <code>pdball.pir</code>: sequences for every chain in every structure in the PDB.\n* <code>CHAINS_3.0.95_XN.cod</code> or <code>pdb_95.cod</code>: all chains are clustered at 95% sequence identity, and for each cluster, the PDB code of the representative chain is listed in this file.\n* <code>CHAINS_3.0.95_XN.grp</code> or <code>pdb_95.grp</code>: for each representative, the other chains which are 95% sequence identical.\n* <code>CHAINS_3.0.40_XN.cod</code> and <code>CHAINS_3.0.40_XN.grp</code>: similar files, clustered at 40% sequence identity.\n\nThese files are obviously not updated whenever the PDB is, and are not included at all with newer versions of Modeller, but you can download updated copies from our [https://salilab.org/modeller/supplemental.html supplemental data file download page], or regenerate them yourself if you have a local copy of PDB. Firstly, to build <code>CHAINS_all.seq</code> or <code>pdball.pir</code>:\n\nFor each PDB file, run a script similar to that below. Set <code>code</code> to the PDB code and set <code>atom_files_directory</code> to the directory containing your local copy of PDB:\n  \n<syntaxhighlight lang=\"python\">\nfrom modeller import *\n\ne = Environ()\ne.io.atom_files_directory = ['/database/pdb/']\n\ncode = '1xyz'\nm = Model(e, file=code)\n\nm.make_chains(file=code, minimal_chain_length=30, minimal_stdres=30,\n              chop_nonstd_termini=True, max_nonstdres=10,\n              minimal_resolution=99.0, structure_types='structureN structureX')\n</syntaxhighlight>\n\n\nThis will produce a <code>.chn</code> file for every chain in PDB. Concatenate these together (e.g. with the Unix <code>cat</code> command) to make the new <code>CHAINS_all.seq</code> or <code>pdball.pir</code> file.\n\nNow you can build the <code>.cod</code> and <code>.grp</code> files for any sequence identity cutoff using the following script (adjust the <code>seqid_cut</code> variable accordingly):\n\n<syntaxhighlight lang=\"python\">\nfrom modeller import *\n\ne = Environ()\n\ns = SequenceDB(e, seq_database_file='CHAINS_all.seq', chains_list='all',\n               seq_database_format='PIR', minmax_db_seq_len=(30, 3000),\n               clean_sequences=True)\n\ns.filter(matrix_offset=-450, rr_file='${LIB}/blosum62.sim.mat',\n         gap_penalties_1d=(-500, -50), seqid_cut=40,\n         output_grp_file='CHAINS_3.0.40_XN.grp', output_cod_file='CHAINS_3.0.40_XN.cod')\n</syntaxhighlight>\n\n\nNote that this will take a long time to run. For high (>90%) sequence identity cutoffs, it is more efficient to use [http://weizhongli-lab.org/cd-hit/ CD-HIT] instead. A script that automates this is included as part of [https://salilab.org/modpipe/ ModPipe] (<code>python/ClusterPDB.py</code>).\n\n[[Category:Examples]]"
                    }
                ]
            },
            "38": {
                "pageid": 38,
                "ns": 0,
                "title": "Restraints on pseudo atoms",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "__NOTOC__\n<!-- ## page was renamed from Restraints_on_pseudo_atoms -->\npseudo.py demonstrates the use of a restraint between a real atom and a pseudo atom. This input file should work with Modeller 10.0 or later. You will also need the [https://salilab.org/modeller/archive/pseudo-rsr-example/pseudo.atm pseudo.atm] input.\n\n\n<syntaxhighlight lang=\"python\">\nfrom modeller import *\nfrom modeller.optimizers import ConjugateGradients\n\ne = Environ()\ne.edat.dynamic_sphere = False\nlog.verbose()\n\n# Read in a dummy PDB, which defines five real atoms - four are positioned at\n# the corners of a square in the xy place, and the fifth is off in space\nm = Model(e, file='pseudo.atm')\n\n# Define a pseudo atom as the gravity center of the first 4 atoms, and add\n# it to the model's restraints\np = pseudo_atom.GravityCenter(m.atoms[0:5])\nm.restraints.pseudo_atoms.append(p)\n\n# Create a restraint on the distance between the real fifth atom and the newly\n# created pseudo atom, and add it to the model's restraints. Since the mean is\n# zero, this will force atom 5 to coexist with the gravity center.\nr = forms.Gaussian(group=physical.xy_distance,\n                   feature=features.Distance(m.atoms[4], p),\n                   mean=0.0, stdev=0.100)\nm.restraints.add(r)\n\n# Calculate the starting energy of all atoms in the system, then optimize\ns = Selection(m)\ns.energy()\ncg = ConjugateGradients()\ncg.optimize(s, max_iterations=200)\n\n# Write out the final coordinates\nm.write(file='pseudoout.atm')\n</syntaxhighlight>\n\n\nIt is straightforward to add restraints of this type to a comparative\nmodeling run - see for example, [https://salilab.org/modeller/10.0/manual/node28.html Adding additional restraints to the defaults].\n\n[[Category:Examples]]"
                    }
                ]
            }
        }
    }
}