Hi I am trying to use this python script (running with bash script) to do my analysis. I am getting the following error:
File "my_python_script.py", line 33 logging.info("Reading input2 file") ^ SyntaxError: invalid syntax
My Python script is as folllows and albeit I omitted the indentation and my full apologies therein, please keep in mind I'm not the coder in this instance.
import itertools
import argparse
import logging
import sys
import numpy as np
import scipy
import pandas as pd
def parse_commandline():
"""Parse command line parameters.
Return type: Object
"""
parser = argparse.ArgumentParser(description="Association of variants")
parser.add_argument("--input1", metavar="FILE1.tsv", help="gene data file", required=True)
parser.add_argument("--input2", metavar="FILE2.tsv", help="mutation data file", required=True)
parser.add_argument("--output", metavar="FILE.tsv", help="Output file name", required=True)
if len(sys.argv) == 1:
parser.print_help()
sys.exit(0)
return parser.parse_args()
def main():
params = parse_commandline()
#load genedata
logging.info("Reading input1 file")
try:
gene_data = pd.read_csv(params.input1, sep="\t", index_col ="Model")
sys.exit(0)
#load mutation data
logging.info("Reading input2 file")
try:
mutation_data = pd.read_csv(params.input2, sep="\t",
index_col="Mutation")
sys.exit(0)
##All mutations and gene in data files
all_mutations = list(mutation_data.index)
all_genes = list(gene_data.columns)
cell line Models in mutation_data file
models_mutations = list(mutation_data.columns)
## models in gene_data file
models_genes = list(gene_data.index)
intersection_set = set.intersection(set(models_genes),
set(models_mutations))
models_common = list(intersection_set)
unique_series_gene = gene_data.index.isin(models_common)
end_gene_table = gene_data[unique_series_gene]
transposed_mutation_data = mutation_data.transpose()
unique_series_mutation =
transposed_mutation_data.index.isin(models_common)
end_mutation_table = transposed_mutation_data[unique_series_gene]
##calcuate p-values
all_p_values = []
genes = []
mutations = []
for gene, mutation in itertools.product(all_genes, all_mutations):
gene_table_to_test = np.array(end_gene_table[gene])
mutation_table_to_test = np.array(end_mutation_table[mutation])
p_value = scipy.stats.wilcoxon(gene_table_to_test,
mutation_table_to_test)[1]
genes.append(gene)
mutations.append(mutation)
all_p_values.append(p_value)
## calculating adjusted_pvalues
adjusted_pvalues = p_adjust_bh(all_p_values)
d = {'Gene': genes, 'Mutation': mutations, 'pvalue':
all_p_values,'p_adj':adjusted_pvalues}
df = pd.DataFrame(data=d)
# Print output file
logging.info("Writing into file")
df.to_csv(params.output, sep="\t")
if __name__ == "__main__":
main()
My Bash script
#!/bin/sh
### This script will run python script
python3 my_python_script.py --input1 Gene.tsv --input2
Mutation.tsv --output tmp
diff tmp adjusted_pvalues.tsv
rm tmp