tcga-downloader/examples/advanced_filtering.py
yunpeng.zhang a01a59b371
Some checks failed
CI / Lint (push) Failing after 9m32s
CI / Test (3.11) (push) Successful in 6m41s
CI / Test (3.12) (push) Successful in 4m21s
feat: add interactive cli
2026-02-09 13:13:39 +08:00

63 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Example: Advanced filtering with sample type and platform.
"""
from pathlib import Path
from tcga_downloader.manifest import (
ManifestRecord,
format_manifest_stats,
get_manifest_stats,
write_manifest,
)
from tcga_downloader.query import query_files
def main():
project = "TCGA-BRCA"
data_type = "Gene Expression"
sample_type = "Primary Tumor"
platform = "Illumina HiSeq"
manifest_path = Path("filtered_manifest.tsv")
print("Advanced Query Parameters:")
print(f" Project: {project}")
print(f" Data Type: {data_type}")
print(f" Sample Type: {sample_type}")
print(f" Platform: {platform}")
hits = query_files(
project=project,
data_type=data_type,
sample_type=sample_type,
platform=platform,
)
records = [
ManifestRecord(
file_id=h["file_id"],
file_name=h["file_name"],
data_type=h["data_type"],
data_format=h["data_format"],
size=int(h["file_size"]),
md5=h["md5sum"],
)
for h in hits
]
write_manifest(records, manifest_path, fmt="tsv")
stats = get_manifest_stats(records)
print("\nManifest Statistics:")
print(format_manifest_stats(stats))
print(f"\nManifest written to: {manifest_path}")
print("You can now download with:")
print(f" tcga-downloader download --manifest {manifest_path} --out-dir ./data")
if __name__ == "__main__":
main()