Ich möchte PLINK-Datendateien (.bed, .fam, .map) usw. in Python verwenden. Es gibt ein Modul namens Pyplink.
Kann mit pip installiert werden
shell
pip install pyplink
Angenommen, Sie haben eine Reihe von Dateien in Ihrem aktuellen Verzeichnis, z. B. foo.bed foo.fam foo.bim
python3
from pyplink import PyPlink
pyp = PyPlink("foo")
Dadurch wird ein Objekt namens pyp erstellt. Dies ist ein integriertes Objekt von .bed-, .fam- und .bim-Dateien. Sie können mit verschiedenen Mitgliedsfunktionen auf jede Information zugreifen.
python3
pyp.get_fam()
pyp.get_nb_samples()
pyp.get_bim()
pyp.get_nb_markers()
python3
markerNames = pyp.get_bim().iloc[:,5]
Ermitteln Sie den Genotyp, indem Sie den Markernamen angeben. Basisinformationen können unter Verwendung von acgt erhalten werden.
python3
pyp.get_geno_marker(markerNames[0])
pyp.get_acgt_geno_marker(markerNames[0])
Sie können die Marker-ID und den Genotyp auch als Iterator abrufen.
python3
markers = ["rs7092431", "rs9943770", "rs1578483"]
for marker_id, genoypes in pyp.iter_geno_marker(markers):
print(marker_id)
print(genotypes, end="\n\n")
Holen Sie sich alle Genotypen männlicher Proben für Marker auf 23 Chromosomen
python3
for marker_ID, genotypes in pyp.iter_geno_marker(y_markers):
male_genotypes = genotypes[males]
print("{:d} total genotypes".format(len(genotypes)))
print("{:d} genotypes for {:,d} males ({} on chr{} and position {:,d})".format(
len(male_genotypes),
males.sum(),
marker_ID,
all_markers.loc[marker_ID, "chrom"],
all_markers.loc[marker_ID, "pos"],
))
break
Ermitteln Sie die Häufigkeit und den Genotyp des Minor-Allels des angegebenen Markers
python3
founders = (all_samples.father == "0") & (all_samples.mother == "0")
markers = ["rs7092431", "rs9943770", "rs1587483"]
for marker_ID, genotypes in pyp.iter_geno_marker(markers):
valid_genotypes = genotypes[founders.values & (genotypes != -1)]
maf = valid_genotypes.sum()/(len(valid_genotypes)*2)
print(marker_ID, round(maf, 6), sep="\t")
print(genotypes)
Recommended Posts