Files

17 lines
876 B
Python

#!/usr/bin/env python3
import argparse
from pathlib import Path
from panfamily.hmmer import parse_domtblout
def main():
ap=argparse.ArgumentParser(); ap.add_argument("--input", required=True, type=Path); ap.add_argument("--mode", choices=["hmmsearch","hmmscan"], required=True); ap.add_argument("--output", required=True, type=Path); ap.add_argument("--max-ievalue", type=float); ap.add_argument("--min-hmm-coverage", type=float, default=0); args=ap.parse_args()
df=parse_domtblout(args.input,args.mode)
if args.max_ievalue is not None: df=df[df.domain_ievalue <= args.max_ievalue]
df=df[df.hmm_coverage >= args.min_hmm_coverage].sort_values(["sequence_id","domain_ievalue","domain_score"],ascending=[True,True,False])
args.output.parent.mkdir(parents=True,exist_ok=True); df.to_csv(args.output,sep="\t",index=False)
if __name__ == "__main__": main()