{"id":22731064,"url":"https://github.com/genentech/perturbview","last_synced_at":"2025-03-30T01:29:48.813Z","repository":{"id":253982603,"uuid":"738350015","full_name":"Genentech/PerturbView","owner":"Genentech","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-08T16:36:27.000Z","size":80,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-05T03:27:53.659Z","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/Genentech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","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":"2024-01-03T02:56:40.000Z","updated_at":"2024-12-05T20:46:35.000Z","dependencies_parsed_at":"2024-08-21T21:01:12.918Z","dependency_job_id":null,"html_url":"https://github.com/Genentech/PerturbView","commit_stats":null,"previous_names":["genentech/perturbview"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genentech%2FPerturbView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genentech%2FPerturbView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genentech%2FPerturbView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genentech%2FPerturbView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Genentech","download_url":"https://codeload.github.com/Genentech/PerturbView/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246264480,"owners_count":20749473,"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","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-10T19:19:18.688Z","updated_at":"2025-03-30T01:29:48.794Z","avatar_url":"https://github.com/Genentech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PerturbView Tissue Analysis\n\nCode for running base calling for PerturbView in tissue, and aligning tissue data to Xenium Spatial Transcriptomics.\n\n## Installation\nTested on python 3.10.13.  Later versions of python may not work\n\ninstall the requirements in a virtualenv or conda-env with:\n```\npip install -r requirements.txt\n```\n\nThe spotiflow `general` model must also be copied to `./models/general/`\n\n## Usage\nThe pipeline is currently run through a snakemake script.  Please edit the `snakefile` to point to relevant paths for your experiment:\n\n`sub_dir` = this is the name of your experiment\n\n`sample_dir` = location of your ISS imaging.  We store this in `{sub_dir}/ISS`\n\n`pheno_dir` = location of your phenotyping imaging (antibodies, stains, or Xenium DAPI image).  We store this in `{sub_dir}/pheno`\n\nFor calling gRNAs or other barcodes via ISS ensure that a CSV is filed set to the `grnas` variable.  The file should at minimum contain a column called either `gene_symbol` or `ID`, refering to the barcode name and another column called `spacer` which is the full nucleotide string of the region being ISS'd (e.g. `AATTGGCC`) if fewer nucleotides than the full `spacer` are sequenced only in situ only the relevant bases will be matched. \n\nOnce all variables are set the snakefile can be run by activating the environment than typing\n```\nsnakemake --cores all\n```\nThe script is relatively memory efficient, if you find it crashing you may need to cut the number of cores down.  Alternatively, if you run code some of the modules on a GPU, you may need to cut concurrency to ensure the GPU RAM isn't overwhelmed.\n\n### Registration to Morphological Phenotyping Assays\nThe script is currently setup to register Ab phenotyping to ISS.\n\n`pheno_dir` should properly point to your phenotyping images.  \n\n### Registration to Xenium Spatial Transcriptomics\nXenium DAPI images can be directly used to register to tissue ISS.\n\nSet `pheno_img` to the location of your DAPI morphology ome.tiff file.  The DAPI Z plane used for registering the data is currently set to `Z=0` on line 50 of `register_xenium.py`.  Change this as needed.\n\nTo adapt the script to register Xenium to ISS the following rules should also be removed:\n```\nstitch_pheno # Xenium is already stitched\nsegment_phenotype # Xenium is already segmented\nbg_subtract_pheno # Not needed\nget_nuclei_masks # Xenium is already segmented\n```\n\nAdditionally the keyword argument `--xenium` should be added to the rule `call_peaks`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenentech%2Fperturbview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenentech%2Fperturbview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenentech%2Fperturbview/lists"}