用户支持:
对于用户问题,请先在 GATK 论坛中寻找答案并提问。
一组用于操作高通量测序 (HTS) 数据和格式的 Java 命令行工具。
Picard 使用 HTSJDK Java 库 HTSJDK 实现,支持访问高通量测序数据常用的文件格式,例如 SAM 和 VCF。
从版本 3.0 开始,Picard 需要 Java 1.17。
git clone https://github.com/broadinstitute/picard.git
cd picard/
Picard 现在使用 gradle 构建。其中包含一个包装脚本 ( gradlew
),它将在第一次调用时下载适当版本的 gradle。
要构建包含所有依赖项的完全打包、可运行的 Picard jar,请运行:
./gradlew shadowJar
build/libs
中。要运行它,命令是: java -jar build/libs/picard.jar
or
java -jar build/libs/picard-<VERSION>-all.jar
./gradlew jar
./gradlew clean
./gradlew test
./gradlew legacyTest --tests "*TestClassName*"
or
./gradlew barclayTest --tests "*TestClassName*"
运行legacyTest
使用旧版命令行解析器,而barclayTest
使用新解析器。
要将 Picard 的 HTSJDK 依赖项切换到不同的发布版本:
build.gradle
final htsjdkVersion = System.getProperty('htsjdk.version', 'VERSION')`
在 Picard 中进行开发期间,有时需要针对 HTSJDK 的未发布版本或分支进行本地构建。
要针对 HTSJDK 的 master 分支的未发布版本进行构建:
2.5.1-9-g5740ca1-SNAPSHOT
。您可以通过标签或短 git commit 哈希进行搜索。./gradlew shadowJar -Dhtsjdk.version=VERSION
,其中 VERSION 是您要使用的 HTSJDK 主分支快照的版本。要针对尚未合并到 HTSJDK 主分支的 HTSJDK 版本进行构建:
./gradlew install printVersion
将该版本安装到本地 Maven 存储库。记下最后打印的版本号。./gradlew shadowJar -Dhtsjdk.version=VERSION
,其中 VERSION 是您安装到本地 Maven 存储库的 HTSJDK 版本。 有关如何创建新版本的 Picard 的完整说明请参见此处
Picard 对从路径提供者读取的支持有限。目前仅支持google的api,并且只有少数工具支持此。要使用此支持运行,您需要使用 gradle 编译 cloudJar 目标:
./gradlew cloudJar
然后按如下方式运行 picard:
java -jar build/lib/picardcloud.jar < Picard arguments starting from program >
例如:
java -jar build/lib/picardcloud.jar CrosscheckFingerprints
I=gs://sample1.vcf
I=gs://sample2.vcf
CROSSCHECK_BY=FILE
H=Haplotype_db.txt
O=crosscheck.out
或者,您可以通过捆绑 Google-Cloud jar 的 GATK 运行该工具,因此应该“Just Work”。
在您的出版物中使用 Picard 工具时,请引用此存储库。
“皮卡德工具包。” 2019。布罗德研究所,GitHub 存储库。 https://broadinstitute.github.io/picard/;布罗德研究所
@misc{Picard2019toolkit,
title = {Picard toolkit},
year = {2019},
publisher = {Broad Institute},
journal = {Broad Institute, GitHub repository},
howpublished = {url{https://broadinstitute.github.io/picard/}}
}
来自软件注册中心的标识符越来越多地被期刊接受,如 (biotools:picard_tools) 或 (RRID:SCR_006525)。
Picard 正在迁移到语义版本控制。我们最终将严格遵守它,并在我们的 API 发生重大更改时升级我们的主要版本,但在我们更清楚地定义我们的官方 API 的构成之前,客户应该假设每个版本都可能至少包含对公共方法的微小更改。
请参阅 Picard 文档以获取更多信息。