Mercurial > repos > ebi-gxa > decoupler_pseudobulk
comparison decoupler_pathway_inference.py @ 8:93f61ea19336 draft
planemo upload for repository https://github.com/ebi-gene-expression-group/container-galaxy-sc-tertiary/ commit eea5c13f9e6e070a2359c59400773b01f9cd7567
| author | ebi-gxa |
|---|---|
| date | Mon, 15 Jul 2024 10:56:42 +0000 |
| parents | 893ff9213a34 |
| children | 599ad3dce864 |
comparison
equal
deleted
inserted
replaced
| 7:68a2b5445558 | 8:93f61ea19336 |
|---|---|
| 18 "-n", "--input_network", help="Network input file", required=True | 18 "-n", "--input_network", help="Network input file", required=True |
| 19 ) | 19 ) |
| 20 | 20 |
| 21 # output file prefix | 21 # output file prefix |
| 22 parser.add_argument( | 22 parser.add_argument( |
| 23 "-o", "--output", | 23 "-o", |
| 24 "--output", | |
| 24 help="output files prefix", | 25 help="output files prefix", |
| 25 default=None, | 26 default=None, |
| 26 ) | 27 ) |
| 27 | 28 |
| 28 # path to save Activities AnnData file | 29 # path to save Activities AnnData file |
| 29 parser.add_argument( | 30 parser.add_argument( |
| 30 "-a", "--activities_path", help="Path to save Activities AnnData file", default=None | 31 "-a", |
| 32 "--activities_path", | |
| 33 help="Path to save Activities AnnData file", | |
| 34 default=None, | |
| 31 ) | 35 ) |
| 32 | 36 |
| 33 # Column name in net with source nodes | 37 # Column name in net with source nodes |
| 34 parser.add_argument( | 38 parser.add_argument( |
| 35 "-s", "--source", help="Column name in net with source nodes.", default="source" | 39 "-s", |
| 40 "--source", | |
| 41 help="Column name in net with source nodes.", | |
| 42 default="source", | |
| 36 ) | 43 ) |
| 37 | 44 |
| 38 # Column name in net with target nodes | 45 # Column name in net with target nodes |
| 39 parser.add_argument( | 46 parser.add_argument( |
| 40 "-t", "--target", help="Column name in net with target nodes.", default="target" | 47 "-t", |
| 48 "--target", | |
| 49 help="Column name in net with target nodes.", | |
| 50 default="target", | |
| 41 ) | 51 ) |
| 42 | 52 |
| 43 # Column name in net with weights. | 53 # Column name in net with weights. |
| 44 parser.add_argument( | 54 parser.add_argument( |
| 45 "-w", "--weight", help="Column name in net with weights.", default="weight" | 55 "-w", "--weight", help="Column name in net with weights.", default="weight" |
| 46 ) | 56 ) |
| 47 | 57 |
| 48 # add boolean argument for use_raw | 58 # add boolean argument for use_raw |
| 49 parser.add_argument( | 59 parser.add_argument( |
| 50 "--use_raw", action="store_true", default=False, help="Whether to use the raw part of the AnnData object" | 60 "--use_raw", |
| 61 action="store_true", | |
| 62 default=False, | |
| 63 help="Whether to use the raw part of the AnnData object", | |
| 51 ) | 64 ) |
| 52 | 65 |
| 53 # add argument for min_cells | 66 # add argument for min_cells |
| 54 parser.add_argument( | 67 parser.add_argument( |
| 55 "--min_n", help="Minimum of targets per source. If less, sources are removed.", default=5, type=int | 68 "--min_n", |
| 69 help="Minimum of targets per source. If less, sources are removed.", | |
| 70 default=5, | |
| 71 type=int, | |
| 56 ) | 72 ) |
| 57 | 73 |
| 58 # add activity inference method option | 74 # add activity inference method option |
| 59 parser.add_argument( | 75 parser.add_argument( |
| 60 "-m", "--method", help="Activity inference method", default="mlm", required=True | 76 "-m", |
| 77 "--method", | |
| 78 help="Activity inference method", | |
| 79 default="mlm", | |
| 80 required=True, | |
| 61 ) | 81 ) |
| 62 args = parser.parse_args() | 82 args = parser.parse_args() |
| 63 | 83 |
| 64 # check that either -o or --output is specified | 84 # check that either -o or --output is specified |
| 65 if args.output is None: | 85 if args.output is None: |
| 67 | 87 |
| 68 # read in the AnnData input file | 88 # read in the AnnData input file |
| 69 adata = ad.read_h5ad(args.input_anndata) | 89 adata = ad.read_h5ad(args.input_anndata) |
| 70 | 90 |
| 71 # read in the input file network input file | 91 # read in the input file network input file |
| 72 network = pd.read_csv(args.input_network, sep='\t') | 92 network = pd.read_csv(args.input_network, sep="\t") |
| 73 | 93 |
| 74 if ( | 94 if ( |
| 75 args.source not in network.columns | 95 args.source not in network.columns |
| 76 or args.target not in network.columns | 96 or args.target not in network.columns |
| 77 or args.weight not in network.columns | 97 or args.weight not in network.columns |
| 90 source=args.source, | 110 source=args.source, |
| 91 target=args.target, | 111 target=args.target, |
| 92 weight=args.weight, | 112 weight=args.weight, |
| 93 verbose=True, | 113 verbose=True, |
| 94 min_n=args.min_n, | 114 min_n=args.min_n, |
| 95 use_raw=args.use_raw | 115 use_raw=args.use_raw, |
| 96 ) | 116 ) |
| 97 | 117 |
| 98 if args.output is not None: | 118 if args.output is not None: |
| 99 # write adata.obsm[mlm_key] and adata.obsm[mlm_pvals_key] to the output network files | 119 # write adata.obsm[mlm_key] and adata.obsm[mlm_pvals_key] to the |
| 100 combined_df = pd.concat([adata.obsm["mlm_estimate"], adata.obsm["mlm_pvals"]], axis=1) | 120 # output network files |
| 121 combined_df = pd.concat( | |
| 122 [adata.obsm["mlm_estimate"], adata.obsm["mlm_pvals"]], axis=1 | |
| 123 ) | |
| 101 | 124 |
| 102 # Save the combined dataframe to a file | 125 # Save the combined dataframe to a file |
| 103 combined_df.to_csv(args.output + ".tsv", sep="\t") | 126 combined_df.to_csv(args.output + ".tsv", sep="\t") |
| 104 | 127 |
| 105 # if args.activities_path is specified, generate the activities AnnData and save the AnnData object to the specified path | 128 # if args.activities_path is specified, generate the activities AnnData |
| 129 # and save the AnnData object to the specified path | |
| 106 if args.activities_path is not None: | 130 if args.activities_path is not None: |
| 107 acts = dc.get_acts(adata, obsm_key="mlm_estimate") | 131 acts = dc.get_acts(adata, obsm_key="mlm_estimate") |
| 108 acts.write_h5ad(args.activities_path) | 132 acts.write_h5ad(args.activities_path) |
| 109 | 133 |
| 110 elif args.method == "ulm": | 134 elif args.method == "ulm": |
| 114 source=args.source, | 138 source=args.source, |
| 115 target=args.target, | 139 target=args.target, |
| 116 weight=args.weight, | 140 weight=args.weight, |
| 117 verbose=True, | 141 verbose=True, |
| 118 min_n=args.min_n, | 142 min_n=args.min_n, |
| 119 use_raw=args.use_raw | 143 use_raw=args.use_raw, |
| 120 ) | 144 ) |
| 121 | 145 |
| 122 if args.output is not None: | 146 if args.output is not None: |
| 123 # write adata.obsm[mlm_key] and adata.obsm[mlm_pvals_key] to the output network files | 147 # write adata.obsm[mlm_key] and adata.obsm[mlm_pvals_key] to the |
| 124 combined_df = pd.concat([adata.obsm["ulm_estimate"], adata.obsm["ulm_pvals"]], axis=1) | 148 # output network files |
| 149 combined_df = pd.concat( | |
| 150 [adata.obsm["ulm_estimate"], adata.obsm["ulm_pvals"]], axis=1 | |
| 151 ) | |
| 125 | 152 |
| 126 # Save the combined dataframe to a file | 153 # Save the combined dataframe to a file |
| 127 combined_df.to_csv(args.output + ".tsv", sep="\t") | 154 combined_df.to_csv(args.output + ".tsv", sep="\t") |
| 128 | 155 |
| 129 # if args.activities_path is specified, generate the activities AnnData and save the AnnData object to the specified path | 156 # if args.activities_path is specified, generate the activities AnnData |
| 157 # and save the AnnData object to the specified path | |
| 130 if args.activities_path is not None: | 158 if args.activities_path is not None: |
| 131 acts = dc.get_acts(adata, obsm_key="ulm_estimate") | 159 acts = dc.get_acts(adata, obsm_key="ulm_estimate") |
| 132 acts.write_h5ad(args.activities_path) | 160 acts.write_h5ad(args.activities_path) |
