Selene ist eine PyTorch-basierte Deep Learning-Bibliothek, die sich auf die Analyse von Sequenzdaten spezialisiert hat. Es ist wie NiftyNet in medizinischen Bildern, und Sie können Deep Learning durchführen, indem Sie einfach die Cofig-Datei festlegen, ohne Code zu schreiben. Da die Probenahme unter den gleichen Bedingungen durchgeführt werden kann, ist es einfach, die Modellleistung zu vergleichen. Mit Selene hergestellte Modelle können auch von Kipoi im vorherigen Artikel (https://qiita.com/takeajioka/items/7709e264c6cd8fbcfae1) geteilt werden.
github:https://github.com/FunctionLab/selene Papier: https://www.nature.com/articles/s41592-019-0360-8 Dokument: https://selene.flatironinstitute.org/
Beachten Sie übrigens, dass die Webbibliothek eine Python-Bibliothek mit genau demselben Namen enthält.
Erfordert Python 3.6 oder höher und PyTorch installiert. Die Umgebung war Ubuntu 16.04, CUDA10, Anaconda, Python3.6, PyTorch 1.2.0.
pip install selene-sdk
Sie haben es jetzt installiert. Die Version war 0.4.8.
Schreiben Sie einfach die Einstellungen in die Konfigurationsdatei und führen Sie sie aus. Informationen zum Schreiben der Konfigurationsdatei (YAML-Format) finden Sie unter hier. Wir werden vier Elemente festlegen: Operation, Modell, Sampler und Parameter. Die Daten werden reproduzierbar auf Trainingsdaten, Validierungsdaten und Testdaten verteilt.
Zuerst Git-Klon.
git clone https://github.com/FunctionLab/selene.git
Es hat lange gedauert, bis der Klon fertig war. Es gibt ein Beispiel für die Konfigurationsdatei im Ordner config_examples als Referenz.
Dieses Mal werde ich quickstart_training im Tutorial versuchen.
cd selene/tutorials/quickstart_training
wget https://zenodo.org/record/1443558/files/selene_quickstart.tar.gz
tar -zxvf selene_quickstart.tar.gz
mv selene_quickstart_tutorial/* .
Das Herunterladen der Daten dauert einige Zeit. Wenn Sie selene_quickstart.tar.gz nicht herunterladen können, können Sie es durch [diese Methode] ersetzen (https://github.com/FunctionLab/selene/blob/master/tutorials/getting_started_with_selene/getting_started_with_selene.ipynb).
config verwendet ein tieferes Modell von deepSEA. Ich wechsle zu RandomPositionsSampler. "Simple_train.yml"
ops: [train, evaluate]
model: {
path: ./deeperdeepsea.py,
class: DeeperDeepSEA,
class_args: {
sequence_length: 1000,
n_targets: 1,
},
non_strand_specific: mean
}
sampler: !obj:selene_sdk.samplers.RandomPositionsSampler {
reference_sequence: !obj:selene_sdk.sequences.Genome {
input_path: ./male.hg19.fasta
},
features: !obj:selene_sdk.utils.load_features_list {
input_path: ./distinct_features.txt
},
target_path: ./sorted_GM12878_CTCF.bed.gz,
seed: 100,
sequence_length: 1000,
center_bin_to_predict: 200,
test_holdout: [chr8, chr9],
validation_holdout: [chr6, chr7],
feature_thresholds: 0.5,
mode: train,
save_datasets: [validate, test]
}
train_model: !obj:selene_sdk.TrainModel {
batch_size: 64,
max_steps: 8000,
report_stats_every_n_steps: 1000,
n_validation_samples: 32000,
n_test_samples: 120000,
cpu_n_threads: 10,
use_cuda: True,
data_parallel: False
}
random_seed: 1445
output_dir: ./training_outputs
create_subdirectory: False
load_test_set: False
Führen Sie zum Ausführen einfach den folgenden Code in Python aus.
from selene_sdk.utils import load_path, parse_configs_and_run
parse_configs_and_run(load_path("./simple_train.yml"), lr=0.01)
Mit etwa 2 GB GPU-Speicher konnte ich das Lernen in wenigen Minuten beenden. Das Ergebnis ist unten. (Genauigkeitsbewertung mit Testdaten)
Das Modell wird in best_model.pth.tar gespeichert.
Sobald das DeepSEA-Modell erstellt wurde, kann der Effekt der Mutation durch Eingabe der Sequenzdaten, die die Mutation enthalten, vorhergesagt werden. Sie können das Ergebnis von GWAS durch die Vorhersage simulieren.
Es unterstützt auch Kipoi und ich fand, dass es eine sehr nützliche Bibliothek war. Dieses Mal konnte ich nur das Beispiel ausprobieren, also möchte ich das nächste Mal das Modell selbst einstellen.
Recommended Posts