Mercurial > repos > recetox > ipapy2_gibbs_sampler_add
comparison ipapy2_gibbs_sampler.py @ 0:428abc41a101 draft default tip
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/ipapy2 commit 64b61ff2823b4f54868c0ab7a4c0dc49eaf2979a
| author | recetox |
|---|---|
| date | Fri, 16 May 2025 08:01:46 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:428abc41a101 |
|---|---|
| 1 from ipaPy2 import ipa | |
| 2 from utils import flattern_annotations, GibbsArgumentParser, group_by_peak_id | |
| 3 | |
| 4 | |
| 5 def main( | |
| 6 input_dataset_mapped_isotope_patterns, | |
| 7 input_dataset_annotations, | |
| 8 integrating_mode, | |
| 9 input_dataset_bio, | |
| 10 noits, | |
| 11 burn, | |
| 12 delta_bio, | |
| 13 delta_add, | |
| 14 all_out, | |
| 15 zs, | |
| 16 zs_out, | |
| 17 output_dataset, | |
| 18 ): | |
| 19 annotations_df = input_dataset_annotations | |
| 20 annotations_df["post"] = annotations_df["post"].replace("", 0) | |
| 21 annotations_df = annotations_df.replace("", None) | |
| 22 annotations = group_by_peak_id(annotations_df) | |
| 23 | |
| 24 if not zs: | |
| 25 zs = None | |
| 26 | |
| 27 if integrating_mode == "adducts": | |
| 28 zs = ipa.Gibbs_sampler_add( | |
| 29 input_dataset_mapped_isotope_patterns, | |
| 30 annotations, | |
| 31 noits=noits, | |
| 32 burn=burn, | |
| 33 delta_add=delta_add, | |
| 34 all_out=all_out, | |
| 35 zs=zs, | |
| 36 ) | |
| 37 else: | |
| 38 if args.integrating_mode == "biochemical": | |
| 39 zs = ipa.Gibbs_sampler_bio( | |
| 40 input_dataset_mapped_isotope_patterns, | |
| 41 annotations, | |
| 42 Bio=input_dataset_bio, | |
| 43 noits=noits, | |
| 44 burn=burn, | |
| 45 delta_bio=delta_bio, | |
| 46 all_out=all_out, | |
| 47 zs=zs, | |
| 48 ) | |
| 49 else: | |
| 50 zs = ipa.Gibbs_sampler_bio_add( | |
| 51 input_dataset_mapped_isotope_patterns, | |
| 52 annotations, | |
| 53 Bio=input_dataset_bio, | |
| 54 noits=noits, | |
| 55 burn=burn, | |
| 56 delta_bio=delta_bio, | |
| 57 delta_add=delta_add, | |
| 58 all_out=all_out, | |
| 59 zs=zs, | |
| 60 ) | |
| 61 | |
| 62 annotations_flat = flattern_annotations(annotations) | |
| 63 write_func, file_path = output_dataset | |
| 64 write_func(annotations_flat, file_path) | |
| 65 | |
| 66 if args.all_out: | |
| 67 write_func, file_path = zs_out | |
| 68 write_func(zs, file_path) | |
| 69 | |
| 70 | |
| 71 if __name__ == "__main__": | |
| 72 parser = GibbsArgumentParser( | |
| 73 description="""Gibbs sampler considering both biochemical and adducts connections. The | |
| 74 function computes the posterior probabilities of the annotations | |
| 75 considering the possible biochemical connections reported in Bio and the | |
| 76 possible adducts connection.""", | |
| 77 ) | |
| 78 parser.add_argument( | |
| 79 "--input_dataset_mapped_isotope_patterns", | |
| 80 nargs=2, | |
| 81 action="load_data", | |
| 82 required=True, | |
| 83 help="a dataframe containing the measured intensities across several samples.", | |
| 84 ) | |
| 85 parser.add_argument( | |
| 86 "--input_dataset_annotations", | |
| 87 nargs=2, | |
| 88 action="load_data", | |
| 89 required=True, | |
| 90 help="a datset containing the annotations of the features.", | |
| 91 ) | |
| 92 parser.add_argument( | |
| 93 "--integrating_mode", | |
| 94 type=str, | |
| 95 required=True, | |
| 96 choices=["adducts", "biochemical", "biochemical_adducts"], | |
| 97 help=( | |
| 98 "The mode of integration. Options are 'adducts', 'biochemical', or" | |
| 99 " 'biochemical_adducts'." | |
| 100 ), | |
| 101 ) | |
| 102 parser.add_argument( | |
| 103 "--input_dataset_bio", | |
| 104 nargs=2, | |
| 105 action="load_data", | |
| 106 type=str, | |
| 107 help="""dataframe (2 columns), reporting all the possible connections between | |
| 108 compounds. It uses the unique ids from the database. It could be the | |
| 109 output of Compute_Bio() or Compute_Bio_Parallel()""", | |
| 110 ) | |
| 111 parser.add_argument( | |
| 112 "--delta_bio", | |
| 113 type=float, | |
| 114 help="""parameter used when computing the conditional priors. The | |
| 115 parameter must be positive. The smaller the parameter the more | |
| 116 weight the adducts connections have on the posterior | |
| 117 probabilities. Default 1.""", | |
| 118 ) | |
| 119 args = parser.parse_args() | |
| 120 main( | |
| 121 args.input_dataset_mapped_isotope_patterns, | |
| 122 args.input_dataset_annotations, | |
| 123 args.integrating_mode, | |
| 124 args.input_dataset_bio, | |
| 125 args.noits, | |
| 126 args.burn, | |
| 127 args.delta_bio, | |
| 128 args.delta_add, | |
| 129 args.all_out, | |
| 130 args.zs, | |
| 131 args.zs_out, | |
| 132 args.output_dataset, | |
| 133 ) |
