{"id":24557914,"url":"https://github.com/grosenberger/secat","last_synced_at":"2025-04-19T03:20:46.139Z","repository":{"id":57465135,"uuid":"130215458","full_name":"grosenberger/secat","owner":"grosenberger","description":"Size-Exclusion Chromatography Algorithmic Toolkit","archived":false,"fork":false,"pushed_at":"2023-10-17T16:42:16.000Z","size":255,"stargazers_count":6,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T16:25:28.961Z","etag":null,"topics":["data-independent-acquisition","machine-learning","mass-spectrometry","proteomics","signal-processing","size-exclusion-chromatography","swath-ms"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grosenberger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-04-19T12:54:21.000Z","updated_at":"2024-09-27T10:27:00.000Z","dependencies_parsed_at":"2023-02-15T11:01:06.582Z","dependency_job_id":"6675ab98-15e6-43b0-9e69-414446207f62","html_url":"https://github.com/grosenberger/secat","commit_stats":{"total_commits":223,"total_committers":7,"mean_commits":"31.857142857142858","dds":0.273542600896861,"last_synced_commit":"f7b7e95201faea3cce85aaf86b73ceaa921ef60b"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grosenberger%2Fsecat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grosenberger%2Fsecat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grosenberger%2Fsecat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grosenberger%2Fsecat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grosenberger","download_url":"https://codeload.github.com/grosenberger/secat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249598457,"owners_count":21297464,"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":["data-independent-acquisition","machine-learning","mass-spectrometry","proteomics","signal-processing","size-exclusion-chromatography","swath-ms"],"created_at":"2025-01-23T05:30:37.492Z","updated_at":"2025-04-19T03:20:46.110Z","avatar_url":"https://github.com/grosenberger.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"SECAT: Size-Exclusion Chromatography Algorithmic Toolkit\n============\n\n*SECAT* is an algorithm for the network-centric data analysis of SEC-SWATH-MS data. The tool is implemented as a multi-step command line application.\n\nDependencies\n------------\n\n*SECAT* depends on several Python packages (listed in ``setup.py``). SECAT has been tested on Linux (CentOS 7) and macOS (10.14) operating systems and might run on other versions too.\n\nInstallation\n------------\n\nWe strongly advice to install *SECAT* in a Python [*virtualenv*](https://virtualenv.pypa.io/en/stable/). *SECAT* is compatible with Python 3.7 and higher and installation should require a few minutes with a correctly set-up Python environment.\n\nInstall the development version of *SECAT* from GitHub:\n\n````\npip install git+https://github.com/grosenberger/secat.git@master\n````\n\nInstall the stable version of *SECAT* from the Python Package Index (PyPI):\n\n````\npip install secat\n````\n\nYou can alternatively create a `conda` environment with SECAT. First create a new conda environment and install python, numpy and pip.\n\n```\nconda create -n secat python=3.10.8 numpy pip -y\n```\n\nActivate the secat environment\n```\nconda activate secat\n```\n\nInstall secat and its dependencies.\n```\npip install secat\n```\n\nDocker\n------\n\nSECAT is also available from [Dockerhub](https://hub.docker.com/repository/docker/grosenberger/secat):\n\n````\ndocker pull grosenberger/secat:latest # \"latest\" can be replaced by the version number, e.g. \"1.0.4\"\n````\n\nYou can also build the Docker image on your machine with the command below. Again, make sure you are at the root level of this repository when executing this command. When building locally, feel free to replace the part after `-t` with anything you find convenient. This is simply a tag to easily identify the Docker container on your machine. Here it is tagged as `grosenberger/secat:latest` to remain interoperable with the other instructions in the `README.md`.\n\n```\ndocker build . -t grosenberger/secat:latest\n```\n\nPrint the installed Python versions:\n\n````\ndocker run --name secat --rm -v $PWD:/data -i -t grosenberger/secat:latest pip list\n````\n\nRun SECAT:\n\n````\ndocker run --name secat --rm -v $PWD:/data -i -t grosenberger/secat:latest secat --help\n````\n\nRunning SECAT\n-------------\n\nSECAT requires 1-4h running time with a SEC-SWATH-MS data set of two conditions and three replicates each, covering about 5,000 proteins and 80,000 peptides on a typical desktop computer with 4 CPU cores and 16GB RAM.\n\nThe exemplary input data (``HeLa-CC.tgz`` and ``Common.tgz`` are required) can be found on Zenodo: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3515928.svg)](https://doi.org/10.5281/zenodo.3515928)\n\nThe data set includes the expected output as SQLite-files. Note: Since the ``PyProphet`` semi-supervised learning step is initialized by a randomized seed, the output might vary slightly from run-to-run with numeric deviations. To completely reproduce the results, the pretrained PyProphet classifier can be applied to as described in the ``secat learn`` step. The Zenodo repository contains all parameters and instructions to reproduce the SECAT analysis results of the other data sets.\n\n*SECAT* consists of the following steps:\n\n\n**1. Data preprocessing**\n\nThe primary input for SECAT are quantitative, proteotypic/unique peptide-level profiles, e.g. acquired by SEC-SWATH-MS. The input can be supplied either as matrix (protein, peptide and run-wise peptide intensities columns) or as transposed long list. Protein identifiers need to be provided in UniProtKB/Swiss-Prot format. The column names can be freely specified (``secat preprocess --columns``; see help for a complete description).\n\nThe second required input file represents the experimental design and molecular weight calibration of the experiment. The primary column covers the run identifiers (matching the quantitative profiles above), with additional columns for SEC fraction identifiers (integer value), SEC molecular weight (float value), a group condition identifier (freetext value) and a replicate identifier (freetext value). The column names can be freely specified (``secat preprocess --columns``; see help for a complete description).\n\nThe third required file covers UniProtKB/Swiss-Prot meta data in XML format, matching the proteome, and can be obtained from [UniProt](https://www.uniprot.org/downloads).\n\nOptionally, reference PPI networks can be specified to support semi-supervised learning and to restrict the peptide query space. SECAT can accept three files: A positive reference network and a negative reference network for the learning steps and a separate reference network to restrict the query space. SECAT natively supports HUPO-PSI MITAB (2.5-2.7), STRING-DB, BioPlex and PrePPI formats and provides filtering options to optionally exclude lower confidence PPIs. The inverted CORUM reference PPI network was generated by using the inverted set of PPI (i.e. all possible PPI that are not covered by CORUM) and removing all PPI in this set covered by STRING, IID, PrePPI or BioPlex.\n\nThe Zenodo archives linked above contain example files and parameter sets for all described analyses and can be used to test the algorithm and reproduce the results.\n\nFirst, the input quantitative proteomics matrix and parameters are preprocessed to a single file:\n\n````\nsecat preprocess\n--out=hela_string.secat \\ # Output filename\n--sec=input/hela_sec_mw.csv \\ # SEC annotation file\n--net=common/9606.protein.links.v11.0.txt.gz \\ # Reference PPI network\n--posnet=common/corum_targets.txt.gz \\ # Reference positive interaction network for learning\n--negnet=common/corum_decoys.txt.gz \\ # Reference negative interaction network for learning\n--uniprot=common/uniprot_9606_20190402.xml.gz \\ # Uniprot reference XML file\n--min_interaction_confidence=0 # Minimum interaction confidence\ninput/pep*.tsv \\ # Input data files\n````\n\n**2. Signal processing**\n\nNext, the signal processing is conducted in a parallelized fashion:\n\n````\nsecat score --in=hela_string.secat --threads=8\n````\n\n**3. PPI detection**\n\nThe statistical confidence of the PPI is evaluated by machine learning:\n\n````\nsecat learn --in=hela_string.secat --threads=5\n````\n\n**4. PPI quantification**\n\nQuantitative features are generated for all PPIs and proteins:\n\n````\nsecat quantify --in=hela_string.secat --control_condition=inter\n````\n\n**5. Export of results**\n\nCSV tables can be exported for import in downstream tools, e.g. Cytoscape:\n\n````\nsecat export --in=hela_string.secat\n````\n\n**6. Plotting of chromatograms**\n\nPDF reports can be generated for the top (or selected) results:\n\n````\nsecat plot --in=hela_string.secat\n````\n\n**7. Report of statistics**\n\nStatistics reports can be generated for the top (or selected) results:\n\n````\nsecat statistics --in=hela_string.secat\n````\n\n**Further options and default parameters**\n\nAll options and the default parameters can be displayed by:\n````\nsecat --help\nsecat preprocess --help\nsecat score --help\nsecat learn --help\nsecat quantify --help\nsecat export --help\nsecat plot --help\nsecat statistics --help\n````\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrosenberger%2Fsecat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrosenberger%2Fsecat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrosenberger%2Fsecat/lists"}