{"id":22794768,"url":"https://github.com/menchelab/vrprot","last_synced_at":"2025-08-02T23:08:00.341Z","repository":{"id":216154504,"uuid":"593403444","full_name":"menchelab/vrprot","owner":"menchelab","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-22T10:48:21.000Z","size":5474,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"Main","last_synced_at":"2025-07-10T23:57:11.709Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/menchelab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-25T22:56:29.000Z","updated_at":"2023-03-22T10:31:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"6cca10da-cd7d-4038-b10a-a603515a9f7f","html_url":"https://github.com/menchelab/vrprot","commit_stats":null,"previous_names":["menchelab/vrprot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/menchelab/vrprot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menchelab%2Fvrprot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menchelab%2Fvrprot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menchelab%2Fvrprot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menchelab%2Fvrprot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/menchelab","download_url":"https://codeload.github.com/menchelab/vrprot/tar.gz/refs/heads/Main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menchelab%2Fvrprot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268470799,"owners_count":24255391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-12T04:10:16.919Z","updated_at":"2025-08-02T23:08:00.264Z","avatar_url":"https://github.com/menchelab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VRPROT\n\n## ABOUT VRPROT\n\nA pipeline that processes protein structures in ProteinDataBank (PDB) file format\nusing ChimeraX and enables them to be analyzed on the [VRNetzer](https://github.com/menchelab/VRNetzer) platform.\n\n---\n\n## PROTEIN STRUCTURE ANALYSIS\n\n---\n\n## USAGE OF THIS PROJECT\n\nThe main purpose of this project is to serve as an easy-to-use pipeline to facilitate the processing of protein structures for presentation on the [VRNetzer](https://github.com/menchelab/VRNetzer). It is mainly used in the [ProteinStructureFetch Extension](https://github.com/menchelab/ProteinStructureFetch) of the [VRNetzer](https://github.com/menchelab/VRNetzer) ecosystem. For everyone who wants to analyze their own protein structures, with your desired highlighting and coloring, this project is the right place to start. A [ChimeraX](https://www.cgl.ucsf.edu/chimerax/download.html) installation is mandatory to use the full potential of this project.\nWithout ChimeraX this software only provides a fetcher with which you can easily fetch PDB files from the [AlphaFold Database](https://alphafold.ebi.ac.uk/) as well as some converter functions.\n\n---\n\n# Quickstart\n\n#### Software/OS requirements\n\n- An installation of ChimeraX\n\n### Installation\n\nTested with Python 3.9+.\n\nInstall the package e.g. in a virtual environment:\n\n- create a virtual environment\u003cbr\u003e\n  `python3 -m venv name_of_env`\n- activate it\u003cbr\u003e\n  `source name_of_env/bin/activate`\n- install requirements packages\u003cbr\u003e\n  `python3 -m pip install -r requirements.txt`\n\n- under macos, you might have to install the following packages\u003cbr\u003e\n  `brew install libomp`\n\n### Process a single structure\n\n`./main.py fetch \u003cUniProtID`\u003cbr\u003e\nexample:\u003cbr\u003e\n`./main.py fetch O95352`\u003cbr\u003e\nThis will fetch the structure of O95352 from the AlphaFold database and\nprocesses it using the pipeline. The secondary structures are colored red, green and blue.\n\n### Process multiple structures\n\n`./main.py fetch \u003clist_separated_by_comma\u003e`\u003cbr\u003e\nexample:\u003cbr\u003e\n`./main.py fetch O95352,Q9Y5M8,Q9UKX5`\u003cbr\u003e\nThis will fetch the structure of O95352, Q9Y5M8 and Q9UKX5 from the AlphaFold\ndatabase and processes them using the pipeline. The secondary structures are colored red, green and blue.\n\n### Process from a list of proteins\n\n`./main.py list \u003cpath_to_file\u003e`\n\u003cbr\u003e\nexample:\u003cbr\u003e\n`./main.py list proteins.txt`\n\u003cbr\u003e\nWorks like the previous command, but the python list is read from a file.\n\n### Process from local PDB files\n\n`./main.py local \u003cpath_to_directory\u003e`\u003cbr\u003e\nexample:\u003cbr\u003e\n`./main.py local /User/Documents/pdb_files`\u003cbr\u003e\nThis will process all structures in this directory. If there are only PDB files\nin this directory, for all of them the complete pipeline will be executed. It is also possible to\nhave a directory containing intermediate states like PLY files.\nFor these structures, the process will start at the corresponding step.\n\n### Commands overview\n\nTo get an overview of the available commands, use the `--help` command.\u003cbr\u003e\n`./main.py --help`\n\n### Usage and flags\n\n`./main.py [optional arguments] \u003ccommand\u003e (positional arguments)`\u003cbr\u003e\n\n```\nusage: main.py [-h] [--pdb_file [PDB_DIRECTORY]] [--glb_file [GLB_DIRECTORY]] [--ply_file [PLY_DIRECTORY]]\n               [--cloud [PCD_DIRECTORY]] [--map [MAP_DIRECTORY]] [--alphafold_version [{v1,v2,v3,v4}]]\n               [--batch_size [BATCH_SIZE]] [--keep_pdb [{True,False}]] [--keep_glb [{True,False}]] [--keep_ply [{True,False}]]\n               [--keep_ascii [{True,False}]] [--chimerax [CHIMERAX_EXEC]] [--color_mode [COLOR_MODE]] [--img_size [IMG_SIZE]]\n               [--database [{alphafold,rcsb}]] [--thumbnails] [--with_gui] [--only_images] [--pcc_preview] [--overwrite]\n               [--log_level {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET}] [--parallel] [--process_multi_fraction]\n               [--scan_for_multifractions]\n               {fetch,local,list,extract,bulk,combine,clear} ...\n\npositional arguments:\n  {fetch,local,list,extract,bulk,combine,clear}\n                        mode\n    fetch               Fetch proteins from the Alphafold database.\n    local               Process proteins from files (.pdb, .glb, .ply, .xyzrgb) in a directory.\n    list                Process proteins from a file containing one UniProt ID in each line.\n    extract             Extracts the protein structures from AlphaFold DB bulk download.\n    bulk                Process proteins tar archive fetched as bulk download from AlphaFold DB\n    combine             Combine multi fraction protein structures into a single glb file. with ChimeraX and the desired coloring\n                        mode.\n    clear               Removes the processing_files directory\n\noptions:\n  -h, --help            show this help message and exit\n  --pdb_file [PDB_DIRECTORY], -pdb [PDB_DIRECTORY]\n                        Defines, where to save the PDB Files.\n  --glb_file [GLB_DIRECTORY], -glb [GLB_DIRECTORY]\n                        Defines, where to save the GLB Files.\n  --ply_file [PLY_DIRECTORY], -ply [PLY_DIRECTORY]\n                        Defines, where to save the PLY Files.\n  --cloud [PCD_DIRECTORY], -pcd [PCD_DIRECTORY]\n                        Defines, where to save the ASCII point clouds.\n  --map [MAP_DIRECTORY], -m [MAP_DIRECTORY]\n                        Defines, where to save the color maps.\n  --alphafold_version [{v1,v2,v3,v4}], -av [{v1,v2,v3,v4}]\n                        Defines, which version of AlphaFold to use.\n  --batch_size [BATCH_SIZE], -bs [BATCH_SIZE]\n                        Defines the size of the batch which will be processed\n  --keep_pdb [{True,False}], -kpdb [{True,False}]\n                        Define whether to still keep the PDB files after the GLB file is created. Default is True.\n  --keep_glb [{True,False}], -kglb [{True,False}]\n                        Define whether to still keep the GLB files after the PLY file is created. Default is False.\n  --keep_ply [{True,False}], -kply [{True,False}]\n                        Define whether to still keep the PLY files after the ASCII file is created. Default is False.\n  --keep_ascii [{True,False}], -kasc [{True,False}]\n                        Define whether to still keep the ASCII Point CLoud files after the color maps are generated. Default is\n                        False.\n  --chimerax [CHIMERAX_EXEC], -ch [CHIMERAX_EXEC]\n                        Defines, where to find the ChimeraX executable.\n  --color_mode [COLOR_MODE], -cm [COLOR_MODE]\n                        Defines the coloring mode which will be used to color the structure. Choices: cartoons_ss_coloring,\n                        cartoons_rainbow_coloring, cartoons_heteroatom_coloring, cartoons_polymer_coloring,\n                        cartoons_chain_coloring... . For a full list, see README.\n  --img_size [IMG_SIZE], -imgs [IMG_SIZE]\n                        Defines the size of the output images.\n  --database [{alphafold,rcsb}], -db [{alphafold,rcsb}]\n                        Defines the database from which the proteins will be fetched.\n  --thumbnails, -thumb  Defines whether to create thumbnails of the structures.\n  --with_gui, -gui      Turn on the gui mode of the ChimeraX processing. This has no effect on Windows systems as the GUI will\n                        always be turned on.\n  --only_images, -oi    Only take images of the processed structures.\n  --pcc_preview, -pcc   Presents the point clound color map in a preview window.\n  --overwrite, -ow      Overwrites existing files.\n  --log_level {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET}, -ll {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET}\n  --parallel, -p        Defines whether to use parallel processing.\n  --process_multi_fraction, -pmf\n                        Defines whether to also process multi fraction structures.\n  --scan_for_multifractions, -sfm\n                        Defines whether to scan for multi fraction structures.\n```\n\n## Larger structures from the AlphaFold DB\n\nAll structures fetched directly from the AlphaFold DB consist of only a single fraction with a maximum length of 2700 amino acids. Structures larger than 2700 amino acids are separated in multiple fractions (F1 - Fn). One can use the [bulk downloads](https://alphafold.ebi.ac.uk/download) options offered by AlphaFold DB to download all structures of an organism including structures that are split into multiple fractions.\nIt is possible to process the structures directly from these archives by using the `bulk` command:\n\n```\n./main.py bulk \u003cpath_to_archive\u003e\n```\n\nAlternatively, with the `extract` command, the structures can be extracted from the archive and saved in a directory. The structures can then be processed with the `local` command:\nIn both cases, all PDB files contained in the archives are extracted to the default `pdbs` directory.\nFrom there, also the `local` command can be used to process the structures:\n\n```\n./main.py local \u003cpath_to_pdbs_dircetory\u003e\n```\n\nThis process requires caution as it may take a long time to complete, consume a significant amount of memory, and use extensive local storage. In extreme cases, the program may shut down, particularly when dealing with larger structures containing more than 50 fractions or complex processing modes such as\n`surface_electrostatic_coloring`.\n\n## Possible Color Modes\n\n```\n\ncartoons_ss_coloring\ncartoons_rainbow_coloring\ncartoons_heteroatom_coloring\ncartoons_polymer_coloring\ncartoons_chain_coloring\ncartoons_bFactor_coloring\ncartoons_nucleotide_coloring\nsurface_ss_cooloring\nsurface_rainbow_cooloring\nsurface_heteroatom_cooloring\nsurface_polymer_cooloring\nsurface_chain_cooloring\nsurface_electrostatic_coloring\nsurface_hydrophic_coloring\nsurface_bFactor_coloring\nsurface_nucleotide_coloring\nstick_ss_coloring\nstick_rainbow_coloring\nstick_heteroatom_coloring\nstick_polymer_coloring\nstick_chain_coloring\nstick_bFactor_coloring\nstick_nucleotide_coloring\nball_ss_coloring\nball_rainbow_coloring\nball_heteroatom_coloring\nball_polymer_coloring\nball_chain_coloring\nball_bFactor_coloring\nball_nucleotide_coloring\nsphere_ss_coloring\nsphere_rainbow_coloring\nsphere_heteroatom_coloring\nsphere_polymer_coloring\nsphere_chain_coloring\nsphere_bFactor_coloring\nsphere_nucleotide_coloring\n\n```\n\n# Preprocessed Human Proteome\n\nWe have preprocessed the human proteome and made it available for download. The archive contains two coloring modes of all human proteins:\n\n- `cartoons_ss_coloring`(loop regions red, helices green, β-sheets blue)\n- `surface_electrostatic_coloring` (red negative, white neutral, blue positive electrostatic\n  potential)\n\nThe archive can be downloaded at:\n\nhttps://ucloud.univie.ac.at/index.php/s/Ozz3XXHyZ6HSGKP\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenchelab%2Fvrprot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmenchelab%2Fvrprot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenchelab%2Fvrprot/lists"}