1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-GATK

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

GATK 4

В этом репозитории представлено новое поколение Genome Analysis Toolkit (GATK). Содержимое этого репозитория на 100% является открытым исходным кодом и выпущено под лицензией Apache 2.0 (см. LICENSE.TXT).

GATK4 стремится объединить хорошо зарекомендовавшие себя инструменты из кодовых баз GATK и Picard в рамках оптимизированной структуры, а также обеспечить возможность запуска выбранных инструментов массово параллельным способом на локальных кластерах или в облаке с использованием Apache Spark. Он также содержит множество новых инструментов, которых не было в более ранних выпусках набора инструментов.

Содержание

Требования

  • Для запуска GATK:
    • Необходима Java 17 для запуска или сборки GATK. Мы рекомендуем один из следующих вариантов:
      • Загрузите дистрибутив Eclipse Foundation для OpenJDK 17 с сайта adoptium.net. Перейдите к архиву релизов, чтобы найти загрузки для Java 17.
      • На Mac OS вы можете установить менеджер пакетов Homebrew и запустить brew tap homebrew/cask-versions, а затем brew install --cask temurin17, чтобы установить OpenJDK 17 от Eclipse Foundation.
    • Python 2.6 или выше (требуется для запуска скрипта переднего плана gatk)
    • Python 3.6.2, а также набор дополнительных пакетов Python, необходим для запуска некоторых инструментов и рабочих процессов. См. раздел Зависимости Python для получения дополнительной информации.
    • R 3.2.5 (необходим для создания графиков в определённых инструментах)
  • Для сборки GATK:
    • JDK Java 17
    • Git 2.5 или выше Git-LFS 1.1.0 или более поздней версии. Требуется для загрузки больших файлов, используемых для сборки GATK, и тестовых файлов, необходимых для запуска набора тестов.

После загрузки выполните команду git lfs install, а затем в корне вашего git-клона — git lfs pull для загрузки всех больших файлов, включая файлы, необходимые для запуска набора тестов. Общий объём загрузки составляет примерно 5 гигабайт.

В качестве альтернативы, если вы просто собираете GATK и не запускаете набор тестов, этот шаг можно пропустить, так как сама сборка будет использовать git-lfs для загрузки минимального набора больших файлов ресурсов LFS, необходимого для завершения сборки. Тестовые ресурсы загружаться не будут, но это значительно уменьшает размер загрузки.

  • Gradle 5.6. Мы рекомендуем использовать скрипт ./gradlew, который автоматически загрузит и использует соответствующую версию gradle (см. примеры ниже).
  • R 3.2.5 (необходим для запуска набора тестов).

Предварительно упакованные образы Docker со всеми установленными зависимостями можно найти в нашем репозитории dockerhub по ссылке: https://hub.docker.com/r/broadinstitute/gatk/. Для этого требуется последняя версия клиента docker, которую можно найти на веб-сайте docker по адресу: https://www.docker.com/get-docker.

Зависимости Python:

GATK4 использует диспетчер пакетов Conda для создания и управления средой Python и зависимостями, необходимыми инструментам GATK с зависимостью от Python. Эта среда также включает зависимости R, используемые для построения графиков в некоторых инструментах. Среда gatk требует оборудования с поддержкой AVX для инструментов, зависящих от TensorFlow (например, CNNScoreVariant). Образ Docker GATK поставляется с предварительно настроенной средой gatk.

На данный момент поддерживаются только 64-битные дистрибутивы Linux. Требуемая среда Conda в настоящее время не поддерживается в OS X/macOS.

Чтобы создать среду, когда образ Docker не используется, сначала необходимо «создать», а затем «активировать» среду conda:

  1. Сначала убедитесь, что установлена Miniconda или Conda (Miniconda достаточно).
  2. Чтобы «создать» среду conda, выполните следующие действия:
    • Если вы работаете с zip-архивом или tar-архивом, запустите команду conda env create -f gatkcondaenv.yml, чтобы создать среду gatk.
    • Если вы используете клонированный репозиторий, запустите ./gradlew localDevCondaEnv. Это генерирует архив пакета Python и файл(ы) зависимостей yml в каталоге сборки, а также создаёт (или обновляет) локальную среду conda gatk.
  3. Чтобы «активировать» среду conda (среда conda должна быть активирована в той же оболочке, из которой запускается GATK):
    • Выполните команду оболочки source activate gatk, чтобы активировать среду gatk.
  4. Дополнительную информацию об использовании и управлении средами Conda см. в документации Conda.

Краткое руководство

  • Соберите GATK: ./gradlew bundle (создаёт gatk-VERSION.zip в build/).
  • Получите помощь по запуску GATK: ./gatk --help.
  • Получите список доступных инструментов: ./gatk --list.
  • Запустите инструмент: ./gatk PrintReads -I src/test/resources/NA12878.chr17_69k_70k.dictFix.bam -O output.bam.
  • Получите справку по конкретному инструменту: ./gatk PrintReads --help.

Загрузка GATK4

Вы можете загрузить и запустить готовые версии GATK4 со следующих сайтов:

  • Архив zip со всем необходимым для запуска GATK4 можно скачать для каждого выпуска со страницы релизов github по ссылке: https://github.com/broadinstitute/gatk/releases. Также мы размещаем нестабильные архивы, создаваемые ежедневно в Google bucket gs://gatk-nightly-builds.

  • Вы можете загрузить образ Docker GATK4 из нашего репозитория dockerhub по ссылке: https://hub.docker.com/r/broadinstitute/gatk/. Хост нестабильных ночных сборок разработки в этом репозитории Docker Hub (https://hub.docker.com/r/broadinstitute/gatk-nightly/).

В образе Docker запускайте команды gatk как обычно из каталога запуска по умолчанию (/gatk).

Инструменты, включённые в образ Docker

Наш образ Docker содержит следующие инструменты биоинформатики, которые можно запустить, вызвав имя инструмента из командной строки:

  • bedtools (v2.30.0)
  • samtools (1.13)
  • bcftools (1.13)
  • tabix (1.13+ds)

Также мы включаем установку Python 3 (3.6.10) со следующими популярными пакетами:

  • numpy
  • scipy
  • tensorflow
  • pymc3
  • keras
  • scikit-learn
  • matplotlib
  • pandas
  • biopython
  • pyvcf
  • pysam

Мы также включаем установку R (3.6.2) со следующими популярными пакетами:

  • data.table
  • dplyr
  • ggplot2

Для получения более подробной информации о системных пакетах см. базовый файл Dockerfile GATK (scripts/docker/gatkbase/Dockerfile), а для получения дополнительной информации о пакетах Python 3/R см. файл настройки среды Conda (scripts/gatkcondaenv.yml.template). Версии пакетов Python 3/R можно найти там.

Сборка GATK4

  • Чтобы выполнить полную сборку GATK4, сначала клонируйте репозиторий GATK с помощью «git clone», затем запустите:

      ./gradlew bundle

    Эквивалентно, вы можете просто ввести:

      ./gradlew
    • Это создаёт zip-архив в каталоге build/ с именем вроде gatk-VERSION.zip, содержащий полный автономный дистрибутив GATK, включая наш лаунчер gatk, как локальные, так и spark jar-файлы, и этот README.
    • Вы также можете запускать команды GATK непосредственно из корня вашего git-клона после выполнения этой команды.
    • Обратите внимание, что для сборки GATK у вас должен быть полный git-клон, включая файлы git-lfs в src/main/resources. Только заархивированный исходный код не может быть собран.
  • Другие способы сборки:

    • ./gradlew installDist
      • Выполняет быструю сборку, которая позволяет вам запускать инструменты GATK только из вашего git-клона и только локально (не на кластере). Хорошо для разработчиков!
    • ./gradlew installAll
      • Выполняет полубыструю сборку, которая позволяет запускать инструменты GATK из вашего git-клона, но работает как локально, так и на кластере. Хорошо для разработчиков!
    • ./gradlew localJar
      • Собирает только jar GATK, используемый для запуска инструментов локально (а не на Spark-кластере). Полученный jar будет находиться в build/libs с именем типа gatk-package-VERSION-local.jar и может использоваться вне вашего git-клона.
    • ./gradlew sparkJar
      • Собирает только jar GATK, который используется для запуска инструментов на Spark-кластере (а не локально). Полученный jar будет находиться в build/libs с именем типа gatк-package-VERSION-spark.jar и может использоваться вне вашего git-клона.
      • Этот jar не будет включать библиотеки Spark и Hadoop, чтобы можно было использовать версии Spark и Hadoop, установленные на вашем кластере.
  • Чтобы удалить предыдущие сборки, запустите:

      ./gradlew clean
  • Для ускорения операций gradle добавьте org.gradle.daemon=true в ваш файл ~/.gradle/gradle.properties. Это позволит сохранить gradle-демон работающим в фоновом режиме и избежать ~6-секундного времени запуска gradle при каждой команде.

  • Gradle хранит кэш зависимостей, используемых для сборки GATK. По умолчанию он находится в ~/.gradle. Если в вашем домашнем каталоге недостаточно свободного места, вы можете изменить расположение кэша, установив переменную среды GRADLE_USER_HOME.

  • Номер версии автоматически определяется из истории git с использованием git describe, вы можете переопределить его, установив свойство versionOverride. ( ./gradlew -DversionOverride=my_weird_version printVersion )

Запуск GATK4

  • Стандартный способ запуска инструментов GATK4 — через скрипт-оболочку gatk, расположенный в корневом каталоге клона этого репозитория.
    • Требуется Python 2.6 или выше (включая Python 3.x)
    • Перед запуском этого скрипта необходимо собрать GATK, как описано в разделе Сборка GATK4 выше.
    • Есть несколько способов... GATK можно запустить:
  • непосредственно из корня вашего git-клона после сборки;
  • путём извлечения zip-архива, созданного с помощью команды ./gradlew bundle, в каталог и запуска gatk оттуда;
  • вручную поместив скрипт gatk в тот же каталог, что и полностью упакованные JAR-файлы GATK, созданные с помощью команд ./gradlew localJar и/или ./gradlew sparkJar;
  • задав переменные среды GATK_LOCAL_JAR и GATK_SPARK_JAR, установив их равными путям к JAR-файлам GATK, созданным с помощью команд ./gradlew localJar и/или ./gradlew sparkJar.

GATK может запускать инструменты как на основе Spark, так и без него, а также инструменты Spark локально, в кластере Spark или в Google Cloud Dataproc.

Примечание: запуск с использованием java -jar напрямую и в обход gatk приводит к тому, что некоторые важные системные свойства не устанавливаются, включая уровень сжатия htsjdk!

Для получения справки по использованию самого GATK, выполните команду ./gatk --help.

Чтобы вывести список доступных инструментов, выполните команду ./gatk --list. Инструменты на основе Spark будут иметь имя, оканчивающееся на Spark (например, BaseRecalibratorSpark). Большинство других инструментов не основаны на Spark.

Чтобы получить справку по конкретному инструменту, выполните команду ./gatk ToolName --help.

Чтобы запустить инструмент без Spark или запустить инструмент Spark локально, синтаксис следующий: ./gatk ToolName toolArguments.

Аргументы инструмента, допускающие несколько значений, такие как -I, можно предоставить в командной строке с помощью файла с расширением «.args». Каждая строка файла должна содержать одно значение аргумента.

Примеры:

./gatk PrintReads -I input.bam -O output.bam
./gatk PrintReadsSpark -I input.bam -O output.bam

Передача параметров JVM в GATK

Чтобы передать аргументы JVM в GATK, запустите gatk с аргументом --java-options:

./gatk --java-options "-Xmx4G" <остальная часть команды>

./gatk --java-options "-Xmx4G -XX:+PrintGCDetails" <остальная часть команды>

Передача конфигурационного файла в GATK

Чтобы передать конфигурационный файл в GATK, запустите gatk с аргументом --gatk-config-file:

./gatk --gatk-config-file GATKProperties.config <остальная часть команды>

Пример конфигурационного файла GATK поставляется с каждым выпуском как GATKConfig.EXAMPLE.properties. Этот пример файла содержит все текущие параметры, используемые GATK, и их значения по умолчанию.

Запуск GATK4 с входными данными в Google Cloud Storage

Многие инструменты GATK4 могут читать входные данные BAM или VCF из корзины Google Cloud Storage. Просто используйте префикс «gs://»:

./gatk PrintReads -I gs://mybucket/path/to/my.bam -L 1:10000-20000 -O output.bam

Важно: для этого необходимо сначала настроить учётные данные! Есть три варианта:

  • Вариант (а): запуск в виртуальной машине Google Cloud Engine
    • Если вы работаете в виртуальной машине Google, ваши учётные данные уже находятся в виртуальной машине и будут подобраны GATK, вам не нужно делать ничего особенного.
  • Вариант (b): использование вашей собственной учётной записи
    • Установите Google Cloud SDK.
    • Войдите в свою учётную запись:
    gcloud auth application-default login
    • Готово! GATK будет использовать учётные данные приложения по умолчанию, которые вы там настроили.
  • Вариант (c): использование служебной учётной записи
    • Создайте новую служебную учётную запись на веб-странице Google Cloud и загрузите файл ключа JSON.
    • Установите Google Cloud SDK
    • Сообщите gcloud о файле ключа:
    gcloud auth activate-service-account --key-file "$PATH_TO_THE_KEY_FILE"
    • Задайте переменную среды GOOGLE_APPLICATION_CREDENTIALS, чтобы она указывала на файл
    export GOOGLE_APPLICATION_CREDENTIALS="$PATH_TO_THE_KEY_FILE"
    • Готово! GATK подберёт служебную учётную запись. Вы также можете сделать это в виртуальной машине, если хотите переопределить учётные данные по умолчанию.

Запуск инструментов GATK4 Spark локально

Инструменты GATK4 Spark можно запускать в локальном режиме (без кластера). В этом режиме Spark будет запускать инструмент в нескольких параллельных потоках выполнения, используя ядра вашего процессора. Вы можете контролировать, сколько потоков Spark будет использовать с помощью аргумента --spark-master.

  • Примеры:

    Запустите PrintReadsSpark с 4 потоками на локальном компьютере:

      ./gatk PrintReadsSpark -I src/test/resources/large/CEUTrio.HiSeq.WGS.b37.NA12878.20.21.bam -O output.bam \
          -- \
          --spark-runner LOCAL --spark-master 'local[4]'

    Запустите PrintReadsSpark, используя столько рабочих потоков, сколько логических ядер на вашем локальном компьютере:

      ./gatk PrintReadsSpark -I src/text/resources/large/CEUTrio.HiSeq.WGS.b37.NA12878.20.21.bam -O output.bam \
          -- \
          --spark-runner LOCAL --spark-master 'local[*]'
  • Обратите внимание, что аргументы, специфичные для Spark, отделены от аргументов, специфичных для инструмента, символом --.

Запуск инструментов GATK4 Spark в кластере Spark:

./gatk ToolName toolArguments -- --spark-runner SPARK --spark-master <master_url> additionalSparkArguments

  • Примеры:

    ./gatk PrintReadsSpark -I hdfs://path/to/input.bam -O hdfs://path/to/output.bam \
        -- \
        --spark-runner SPARK --spark-master <master_url>
    ./gatk PrintReadsSpark -I hdfs://path/to/input.bam -O hdfs://path/to/output.bam \
      -- \
      --spark-runner SPARK --spark-master <master_url> \
      --num-executors 5 --executor-cores 2 --executor-memory 4g \
      --conf spark.executor.memoryOverhead=600
  • Вы также можете опустить аргумент --num-executors, чтобы включить динамическое распределение, если вы правильно настроите кластер (см. веб-сайт Spark для получения инструкций).

  • Обратите внимание, что аргументы, специфичные для Spark, отделены от аргументов, специфичных для инструмента, символом --.

  • Для запуска инструмента Spark в кластере необходимо установить Spark с сайта http://spark.apache.org/, поскольку gatk за кулисами вызывает инструмент spark-submit.

  • Обратите внимание, что в приведённых выше примерах используется YARN, но мы успешно запустили GATK4 и на Mesos.

Запуск инструментов GATK4 Spark на Google Cloud Dataproc:

  • У вас должна быть учетная запись облачных сервисов Google, и вы должны развернуть кластер Dataproc в консоли разработчика Google. Возможно, вам потребуется включить опцию «Разрешить доступ API ко всем службам Google Cloud в том же проекте» (устанавливается при создании кластера).
  • Вам необходимо установить Google Cloud SDK с здесь, поскольку gatk вызывает инструмент gcloud за кулисами. В процессе установки обязательно следуйте инструкциям по настройке gcloud здесь. Поскольку эта библиотека часто обновляется Google, мы рекомендуем регулярно обновлять вашу копию, чтобы избежать трудностей, связанных с версиями.
  • Ваши входные данные для GATK при работе с Dataproc обычно находятся в корзинах Google Cloud Storage, и их следует указывать в командной строке GATK, используя синтаксис gs://my-gcs-bucket/path/to/my-file
  • Вы можете запускать задания GATK4 на Dataproc со своего локального компьютера или с виртуальной машины (главный узел) в облаке.

После настройки вы можете запустить инструмент Spark в своём кластере Dataproc, используя команду вида:

./gatk ToolName toolArguments -- --spark-runner GCS --cluster myGCSCluster additionalSparkArguments

  • Примеры:

    ./gatk PrintReadsSpark \
        -I gs://my-gcs-bucket/path/to/input.bam \
        -O gs://my-gcs-bucket/path/to/output.bam \
        -- \
        --spark-runner GCS --cluster myGCSCluster
    ./gatk PrintReadsSpark \
        -I gs://my-gcs-bucket/path/to/input.bam \
        -O gs://my-gcs-bucket/path/to/output.bam \
        -- \
        --spark-runner GCS --cluster myGCSCluster \
        --num-executors 5 --executor-cores 2 --executor-memory 4g \
        --conf spark.yarn.executor.memoryOverhead=600 **Не используйте `toString()` ни для чего, кроме потребления человеком (т. е. не основывайте логику своего кода на результатах `toString()`).**
    

Не переопределяйте clone(), если вы действительно не знаете, что делаете. Если вы всё же переопределите его, тщательно задокументируйте это. В противном случае предпочитайте другие способы создания копий объектов.

Для логирования используйте org.apache.logging.log4j.Logger.

Мы в основном следуем руководству по стилю Google Java Style guide (https://google.github.io/styleguide/javaguide.html).

Git: Не отправляйте напрямую в мастер — вместо этого создайте запрос на вытягивание.

Git: При слиянии перебазируйте и объедините коммиты.

Если вы отправляете изменения в мастер или портите историю коммитов, вы должны нам 1 гроулер или вкусные закуски во время «счастливого часа». Если вы нарушаете сборку мастера, вы должны 3 гроулера (или много вкусных закусок). Пиво можно заменить вином (по цвету и году выпуска по выбору покупателя) в пропорции 1 гроулер = 1 бутылка.

Тестирование GATK

Перед запуском тестового набора убедитесь, что вы установили git lfs и скачали большие тестовые данные, следуя инструкциям по настройке git lfs (#lfs).

Чтобы запустить тестовый набор, выполните команду ./gradlew test. * Отчёт о тестировании находится в build/reports/tests/test/index.html. * Что произойдёт, зависит от значения переменной среды TEST_TYPE: * не задано или любое другое значение: запускаются не облачные модульные и интеграционные тесты, это значение по умолчанию; * cloud, unit, integration, conda, spark: запускаются только облачные, модульные, интеграционные, conda (python + R) или Spark тесты; * all: запускается весь тестовый набор. * Облачные тесты требуют входа в систему gcloud и аутентификации с проектом, который имеет доступ к облачным тестовым данным. Они также требуют установки нескольких определённых переменных среды. * HELLBENDER_JSON_SERVICE_ACCOUNT_KEY: путь к локальному файлу JSON с учётными данными службы (https://cloud.google.com/storage/docs/authentication#service_accounts); * HELLBENDER_TEST_PROJECT: ваш проект Google Cloud; * HELLBENDER_TEST_STAGING: путь gs:// к доступному для записи местоположению; * HELLBENDER_TEST_INPUTS: путь к облачным тестовым данным, например: gs://hellbender/test/resources/. * Установка переменной среды TEST_VERBOSITY=minimal приведёт к меньшему объёму вывода из тестового набора.

Чтобы выполнить подмножество тестов, используйте фильтрацию тестов Gradle (см. документацию Gradle (https://docs.gradle.org/current/userguide/java_plugin.html)): * Вы можете использовать --tests с подстановочным знаком для запуска определённого тестового класса, метода или для выбора нескольких тестовых классов: * ./gradlew test --tests *SomeSpecificTestClass; * ./gradlew test --tests *SomeTest.someSpecificTestMethod; * ./gradlew test --tests all.in.specific.package*.

Чтобы запустить тесты и создать отчёты о покрытии, выполните команду ./gradlew jacocoTestReport. Отчёт будет находиться в build/reports/jacoco/test/html/index.html. (IntelliJ имеет хороший инструмент покрытия, который предпочтительнее для разработки).

В качестве поставщика непрерывной интеграции мы используем Github Actions (https://github.com/broadinstitute/gatk/actions/workflows/gatk-tests.yml).

* Прежде чем объединять какую-либо ветку, убедитесь, что все необходимые тесты пройдены на Github.
* Каждая сборка действий будет загружать результаты тестирования в наше хранилище Google Cloud Storage и zip-архив загрузки артефактов. Ссылка на загруженный отчёт появится в самом низу журнала действий github. Ищите строку, которая говорит: «Смотрите отчёт об испытаниях». Отчёты о тестах действий Github не будут отображаться на веб-странице до завершения всего теста. Если сам TestNG выйдет из строя, отчёт не будет создан.

Для наших длительных тестов и тестов производительности мы используем Broad Jenkins (https://gatk-jenkins.broadinstitute.org/view/Performance/).

* Чтобы добавить тест производительности (требуется Broad-ID), вам нужно создать «новый элемент» в Jenkins и сделать его «копией», а не пустым проектом. Вам нужно основать его либо на «-spark-». **Использование Git LFS для загрузки и отслеживания больших тестовых данных**

Мы используем git-lfs для управления версиями и распространения тестовых данных, которые слишком велики, чтобы их можно было проверить в нашем репозитории напрямую. Вы должны установить и настроить его, чтобы иметь возможность запускать наш набор тестов.

  • После установки git-lfs, запустите git lfs install.

    • Это добавит хуки в вашу конфигурацию git, что в будущем приведёт к автоматической проверке файлов git-lfs.
  • Чтобы вручную получить большие тестовые данные, запустите git lfs pull из корня вашего клона GATK git.

    • Размер загрузки составляет примерно 5 гигабайт.
  • Чтобы добавить новый большой файл для отслеживания с помощью git-lfs, просто:

    • Поместите новые файлы в src/test/resources/large (или подкаталог).
    • git add файлы, затем git commit -a.
    • Всё! Не запускайте git lfs track для файлов вручную: все файлы в src/test/resources/large автоматически отслеживаются git-lfs.

Создание проекта GATK в среде IntelliJ IDE (последний раз тестировалось с версией 2016.2.4):

  • Убедитесь, что у вас установлены gradle и JDK Java 17.

  • Возможно, вам потребуется установить плагины TestNG и Gradle (в настройках).

  • Клонируйте репозиторий GATK с помощью git.

  • В IntelliJ нажмите «Импортировать проект» на главном экране или перейдите в «Файл» -> «Новый...» -> «Проект из существующих источников...».

  • Выберите корневой каталог вашего клона GATK, затем нажмите «ОК».

  • Выберите «Импортировать проект из внешней модели», затем «Gradle», затем нажмите «Далее».

  • Убедитесь, что «Gradle project» указывает на файл build.gradle в корне вашего клона GATK.

  • Выберите «Использовать автоимпорт» и «Использовать оболочку gradle по умолчанию».

  • Убедитесь, что Gradle JVM указывает на Java 17. Возможно, вам придётся установить это вручную после создания проекта, для этого найдите настройки gradle, нажав значок гаечного ключа на вкладке gradle на правой панели, оттуда отредактируйте аргумент «Gradle JVM», чтобы он указывал на Java 17.

  • Нажмите «Готово».

  • После загрузки зависимостей проекта IntelliJ должен открыть новое окно с вашим проектом GATK.

  • Убедитесь, что версия Java установлена правильно, перейдя в «Файл» -> «Структура проекта» -> «Проект». Проверьте, что «Project SDK» установлен на ваш JDK Java 17, а «Уровень языка проекта» — на 17 (возможно, вам потребуется добавить свой JDK Java 17 в разделе «Настройки платформы» -> SDK, если его там ещё нет). Затем нажмите «Применить» / «Ок».

Настройка отладки в IntelliJ

  • Следуйте инструкциям выше для создания проекта IntelliJ для GATK.

  • Перейдите в «Выполнить» -> «Редактировать конфигурации», затем нажмите «+» и добавьте новую конфигурацию «Приложение».

  • Установите имя новой конфигурации на что-то вроде «Отладка GATK».

  • Для «Главного класса» введите org.broadinstitute.hellbender.Main.

  • Убедитесь, что «Использовать путь к классам модуля:» настроен на использование пути к классам модуля «gatk».

  • Введите аргументы команды, которую вы хотите отладить, в «Аргументы программы».

  • Нажмите «Применить» / «Ок».

  • Устанавливайте точки останова и т. д., как требуется, затем выберите «Выполнить» -> «Отладка» -> «Отладка GATK», чтобы начать сеанс отладки.

  • В будущих сеансах отладки вы можете просто настроить «Аргументы программы» в конфигурации «Отладка GATK» по мере необходимости.

Обновление проекта Intellij при изменении зависимостей Если в build.gradle есть изменения зависимостей, необходимо обновить проект gradle. Это легко сделать с помощью следующих шагов.

  • Откройте окно инструментов gradle («Вид» -> «Окна инструментов» -> «Gradle»).
  • Нажмите кнопку обновления в окне инструментов Gradle. Она находится в левом верхнем углу окна gradle и представлена двумя синими стрелками.

Настройка профилирования с использованием JProfiler

  • Запуск JProfiler отдельно:
    • Создайте полный jar-файл GATK4 с помощью ./gradlew localJar.
    • В окне «Настройки сеанса» выберите jar-файл GATK4, например. Как работать с GATK

Также можно работать в облаке, используя Google Dataproc.

В кластерном сценарии ваши входные и выходные файлы находятся на HDFS, а Spark будет работать распределённым образом в кластере.

Документация Spark содержит хороший обзор архитектуры.

Обратите внимание, что если у вас нет выделенного кластера, вы можете запустить Spark в автономном режиме на одном компьютере, который использует распределённые пути кода, хотя и на одном узле.

Во время выполнения задания Spark пользовательский интерфейс Spark UI — отличное место для отслеживания прогресса. Кроме того, если вы запускаете тесты, то добавив -Dgatk.spark.debug=true, вы можете выполнить один тест Spark и посмотреть на пользовательский интерфейс Spark (на http://localhost:4040/), пока он выполняется.

Вы можете найти дополнительную информацию о настройке Spark и выборе хороших значений для важных параметров, таких как количество исполнителей и настройки памяти, по следующим ссылкам:

Как внести свой вклад в GATK (Примечание: раздел вдохновлён и частично скопирован из Apache Parquet)

Мы приветствуем все вклады в проект GATK. Вклад может быть отчётом об ошибке или запросом на вытягивание. Если вы не коммиттер, вам нужно сделать форк репозитория gatk и отправить запрос на вытягивание из вашего форка.

Чтобы узнать, над чем поработать, проверьте проблемы с меткой «Требуется помощь (Сообщество)». Оставьте комментарий к проблеме, чтобы показать свою заинтересованность в написании кода и поделиться своими вопросами и идеями.

Для внесения исправления:

  • Разбейте свою работу на небольшие, одноцелевые исправления, если это возможно. Гораздо сложнее объединить большое изменение с множеством несвязанных функций.
  • Отправьте исправление в виде запроса на вытягивание на основную ветку. Для получения дополнительной информации см. руководства GitHub по форкингу репозитория и отправке запроса на вытягивание. При необходимости включите номер проблемы в название запроса на вытягивание.
  • Убедитесь, что ваш код проходит все наши тесты. Вы можете запустить тесты с ./gradlew test в корневом каталоге.
  • Добавьте тесты для всего нового кода, который вы написали. Мы предпочитаем модульные тесты, но качественные интеграционные тесты, использующие небольшие объёмы данных, также приемлемы.
  • Следуйте Общим рекомендациям для разработчиков GATK4.

Мы внимательно читаем запросы на вытягивание, и вы можете получить много комментариев. Некоторые вещи, которые следует учитывать:

  • Напишите тесты для всего нового кода.
  • Документируйте все классы и публичные методы.
  • Для всех публичных методов проверяйте достоверность аргументов и генерируйте IllegalArgumentException, если они недействительны.
  • Используйте фигурные скобки для управляющих конструкций, if, for и т. д.
  • Сделайте классы, переменные, параметры и т. д. final, если нет веской причины не делать этого.
  • Дайте своим операторам немного места. Не a+b, а a + b и не foo(int a,int b), а foo(int a, int b).
  • Как правило, придерживайтесь Руководства по стилю Google Java.

Спасибо за участие!

Обсуждения

Авторы

Список авторов находится в файле AUTHORS. Также см. список Contributors на GitHub.

Лицензия

Лицензия Apache 2.0. См. файл LICENSE.txt.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

GATK — это сокращение от Genome Analysis ToolKit. Это программное обеспечение для анализа информации о вариациях из данных высокопроизводительного секвенирования, которое является одним из наиболее популярных инструментов для определения однонуклеотидных полиморфизмов (SNP calling). Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-GATK.git
git@api.gitlife.ru:oschina-mirror/mirrors-GATK.git
oschina-mirror
mirrors-GATK
mirrors-GATK
master