STRING-Aliases auf UniProt-IDs mappen

English Deutsch

In einem aktuellen Projekt musste ich STRING-Datensätze mit anderen PPI-Datenbanken vergleichen. Das ist jedoch nicht immer so einfach, wie es klingt, da STRING KEGG-Proteinidentifikatoren verwendet. Glücklicherweise ist auf der STRING-Downloadseite eine Liste von Alias-Mappings frei herunterladbar.

Es gibt jedoch noch ein großes verbleibendes Problem: Ich konnte keine Dokumentation über das Format finden. Es scheint ziemlich einfach zu sein, wenn man die Grundlagen verstanden hat, aber ich habe eine wiederverwendbare Python-Funktion erstellt, die einen bestimmten Organismus filtert und eine STRING ID, UniProt ID-CSV ausgibt:

string_aliases_to_uniprot.py
# Ein STRING-Alias-Mapping-Filter & -Konverter
# Veröffentlicht unter Apache License v2.0
# Copyright (c) 2013 Uli Köhler
# Version 1.0
import gzip

def filterSTRINGAliases(infilename, outfilename, taxonomyFilter):
    """
    Filtert & konvertiert STRING-Aliase in CSV.
    Argumente:
        infilename: Der Dateiname des gzip-komprimierten STRING-Alias-Downloads
        outfilename: Die CSV-Datei, in die das konvertierte & gefilterte Mapping geschrieben wird
        taxonomyFilter: Ein String mit dem NCBI-Taxonomie-Identifikator, nach dem gefiltert werden soll
    """
    recordCtr = 0
    with gzip.open(infilename, "rt") as infile, open(outfilename, "w") as outfile:
        for line in infile:
            # Einige grobe Statistiken
            recordCtr += 1
            if recordCtr % 1000000 == 0:
                print("Processed %d records..." % recordCtr)
            # Diese Zeile stellt sicher, dass wir STRING ID --> UniProt ID mappen
            if "_UniProt_AC" not in line:
                continue
            parts = line.split()
            if taxonomyFilter != parts[0]:
                continue
            # Alias extrahieren und schreiben
            outfile.write(",".join([parts[1], parts[2]]) + "\n")
    print("Processed %d records" % recordCtr)

if __name__ == "__main__":
    # Beispielverwendung: Filter für Saccharomyces cerevisiae (4932), schreibe in string-aliases.csv
    filterSTRINGAliases("/tmp/protein.aliases.v9.05.txt.gz", "string-aliases.csv", "4932")

Check out similar posts by category: Allgemein