ElkeDeZitter / Xtrapol8

Xtrapol8 is software for the structure determination of low-occupancy states in crystallography
MIT License
7 stars 1 forks source link

SyntaxError: Non-ASCII character '\xe2' #47

Closed frmupe closed 4 months ago

frmupe commented 5 months ago

Hi... Got this

murphy@eva02:~$ tail -n 20 .bashrc
        fi
    done
fi
unset rc
# Added by CCP4 package manager:
. '/home/murphy/xstl/ccp4-8.0/bin/ccp4.setup-sh'
# Phenix
source /home/murphy/xstl/phenix-1.21-5207/phenix_env.sh
# TexLive
export MANPATH=$MANPATH:/usr/local/texlive/2023/texmf-dist/doc/man
export INFOPATH=$INFOPATH:/usr/local/texlive/2023/texmf-dist/doc/info
export PATH=$PATH:/usr/local/texlive/2023/bin/x86_64-linux
# XDS
export PATH=$PATH:/home/murphy/bin/linux_bin
# MUSTANG
alias mustang='/home/murphy/Downloads/MUSTANG_v3.2.4/bin/mustang-3.2.4'
# Typora
alias typora='/home/murphy/Downloads/bin/Typora-linux-x64/Typora'
# Xtrapol8
alias xtrapol8='phenix.python /home/murphy/Repos/Xtrapol8/Fextr.py'
murphy@eva02:~$ xtrapol8 
Traceback (most recent call last):
  File "/home/murphy/Repos/Xtrapol8/Fextr.py", line 100, in <module>
    from scipy.stats import pearsonr
  File "/home/murphy/xstl/phenix-1.21-5207/conda_base/lib/python2.7/site-packages/scipy/stats/__init__.py", line 367, in <module>
    from .stats import *
  File "/home/murphy/xstl/phenix-1.21-5207/conda_base/lib/python2.7/site-packages/scipy/stats/stats.py", line 173, in <module>
    from . import distributions
  File "/home/murphy/xstl/phenix-1.21-5207/conda_base/lib/python2.7/site-packages/scipy/stats/distributions.py", line 13, in <module>
    from . import _continuous_distns
  File "/home/murphy/xstl/phenix-1.21-5207/conda_base/lib/python2.7/site-packages/scipy/stats/_continuous_distns.py", line 3345
SyntaxError: Non-ASCII character '\xe2' in file /home/murphy/xstl/phenix-1.21-5207/conda_base/lib/python2.7/site-packages/scipy/stats/_continuous_distns.py on line 3346, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
ElkeDeZitter commented 5 months ago

Dear @frmupe, Thank you for reporting this error. It is a known bug on Linux systems that we cannot fix from within Xtrapol8. We described this in the manual in the "trouble shooting" section. We currently advise users to use Phenix 1.19 (which comes with scipy version 1.2.1) instead of Phenix 1.20 (which comes with scipy version 1.2.0). Another possibility is to keep phenix version 1.20 and install scipy 1.2.1 within your phenix.python environment phenix.python -m pip install scipy==1.2.1. A last option would be to add # coding: utf-8 to the listed scipy scripts. For the two last options, you might need administrator (sudo) rights. I hope one of these options works for you! Elke

ElkeDeZitter commented 4 months ago

Dear @frmupe Did any of the suggested solutions work for you? If so, I would like to close the issue. Thanks, Elke

mysecondnameisdanger commented 4 months ago

Dear @ElkeDeZitter .. you can close this issue. After doing xtrapol8 (using phenix-1.19.2-4158) got a couple of warnings (surely you know about this) and it prints a lot of help messages.

/home/murphy/Repos/Xtrapol8/distance_analysis.py:257: SyntaxWarning: name 'val' is assigned to before global declaration
  global val
/home/murphy/Repos/Xtrapol8/distance_analysis.py:268: SyntaxWarning: name 'maxalpha' is assigned to before global declaration
  global maxalpha
-----------------------------------------
Xtrapol8 -- version 1.2.3 -- run date: 2024-02-13_13h50
-----------------------------------------
input {
  reference_mtz = None
    .help = "Reference data in mtz or mmcif format (merged)."
  triggered_mtz = None
    .help = "Triggered data in mtz or mmcif format (merged)."
  reference_pdb = None
    .help = "Reference coordinates in pdb or mmcif format."
  additional_files = None
    .help = "Additional files required for refinement, e.g ligand cif file,"
            "restraints file."
  high_resolution = None
    .help = "High resolution cutoff (Angstrom). Will only be used if high"
            "resolution of the input data files extends to this value."
  low_resolution = None
    .help = "Low resolution cutoff (Angstrom)."
}
occupancies {
  low_occ = 0.1
    .help = "Lowest occupancy to test (fractional)."
  high_occ = 0.5
    .help = "Highest occupancy to test (fractional)."
  steps = 3
    .help = "Amount of equaly spaced occupancies to be tested."
  list_occ = None
    .help = "List of occupancies to test (fractional). Will overwrite low_occ,"
            "high_occ and steps if defined."
}
scaling {
  b_scaling = no isotropic *anisotropic
    .help = "B-factor scaling for scaling triggered data vs reference data"
            "using scaleit."
  high_resolution = None
    .help = "High resolution for scaling triggered data vs reference data"
            "using scaleit (Angstrom). Will only be used if high resolution of"
            "the input data files extends to this value. This only implies"
            "scaling, the data will not be cut. If not specified, then"
            "input.high_resolution will be used."
  low_resolution = None
    .help = "Low resolution for scaling triggered data vs reference data using"
            "scaleit (Angstrom). Will only be used if low resolution of the"
            "input data files extends to this value. This only implies"
            "scaling, the data will not be cut. If not specified, then"
            "input.low_resolution will be used."
}
f_and_maps {
  fofo_type = *qfofo fofo kfofo
    .help = "Calculate q-weighted, non-weighted or k-weighted Fourier"
            "difference (Fo-Fo) map."
  kweight_scale = 0.05
    .help = "scale factor for structure factor difference outlier rejection in"
            "k-weigting scheme."
  f_extrapolated_and_maps = *qfextr fextr kfextr qfgenick fgenick kfgenick \
                            qfextr_calc fextr_calc kfextr_calc
    .help = "Extrapolated structure factors and map types: qFextr, kFextr,"
            "Fextr: (q/k-weighted)-Fextr structure factors and maps by"
            "Coquelle method (Fextr="
            "alpha*(Fobs,triggered-Fobs,reference)+Fobs,triggered, map"
            "2mFextr|-D|Fcalc|, phi_model). qFgenick, kFgenick, Fgenick:"
            "(q/k-weighted)-Fextr structure factors and maps by Genick method"
            "(|Fextr|="
            "alpha*(|Fobs,triggered|-|Fobs,reference|)+|Fobs,triggered|, map:"
            "m|Fextr|, phi_model). qFextr_calc, kFextr_calc, Fextr_calc:"
            "(q-weighted)-Fextr structure factors and maps by Fcalc method"
            "(|Fextr|= alpha*(|Fobs,triggered|-|Fobs,reference|)+|Fcalc|,"
            "map\" 2m|Fextr|-D|Fcalc|, phi_model)."
  all_maps = False
    .help = "Calculate all extrapolated structure factors and maps."
  only_qweight = False
    .help = "Calculate all extrapolated structure factors and maps with"
            "q-weighting."
  only_kweight = False
    .help = "Calculate all extrapolated structure factors and maps with"
            "k-weighting."
  only_no_weight = False
    .help = "Calculate all extrapolated structure factors and maps without"
            "q/k-weighting."
  fast_and_furious = False
    .help = "Run fast and furious (aka without supervision). Will only"
            "calculate qFextr and associated maps and run refinement with"
            "finally with derived alpha/occupancy. Default parameters will be"
            "used for fofo_type and negative_and_missing. Usefull for a first"
            "quick evaluation."
  negative_and_missing = *truncate_and_fill truncate_no_fill fref_and_fill \
                         fref_no_fill fcalc_and_fill fcalc_no_fill \
                         keep_and_fill keep_no_fill reject_and_fill \
                         reject_no_fill zero_and_fill zero_no_fill \
                         fill_missing no_fill
    .help = "Handling of negative and missing extrapolated structure factor"
            "amplitudes (ESFAs) Note that this will not be applied on the"
            "Fourier difference map. If selected, filling of missing"
            "reflections is only carried on maps of the 2mFextr-DFcalc type."
            "This parameters is NOT applicable for (q/k)Fgenick because"
            "negative reflections are rejected anyway. For refinement, default"
            "phenix.refine or refmac handling of negative/missing reflections"
            "is applied. keep_no_fill maps will be calculated in addition in"
            "all cases. keep_and_fill and keep_no_fill replace the old"
            "fill_missing and no_fill arguments which will become invalid"
            "keywords in future Xtrapol8 versions. Please check the manual for"
            "more information."
}
map_explorer {
  peak_integration_floor = 3.5
    .help = "Floor value for peak integration (sigma). Peaks will be"
            "integrated from their maximum value towards this lower bound to"
            "avoid integration of noise."
  peak_detection_threshold = 4.0
    .help = "Peak detection threshold (sigma). Only peaks with an absolute"
            "value equal or above this value will be integrated."
  radius = None
    .help = "Maximum radius (A) to allocate a density blob to a protein atom"
            "in map explorer. Resolution will be used if not specified."
  z_score = 2.0
    .help = "Z-score to determine residue list with only highest peaks."
  use_occupancy_from_distance_analysis = False
    .help = "Use occupancy as estimated by the distance analysis method (only"
            "in calm_and_curious mode) instead of the differrence map"
            "analysis. This keyword will become obselete in future Xtrapol8"
            "versions, use occupancy_estimation choice instead."
  occupancy_estimation = *difference_map_maximization \
                         difference_map_PearsonCC distance_analysis
    .help = "Select a main method for the occupancy estimation in Xtrapol8."
            "Take care that the distance_analysis method can only be used in"
            "calm_and_curious mode. This keyword replaces the"
            "use_occupancy_from_distance_analysis keyword which will become"
            "obsolete in future Xtrapol8 versions."
}
refinement {
  run_refinement = True
    .help = "Run the automatic refinements. Setting this parameter to False"
            "can be useful when a manual intervention is required before"
            "running the refinements. The Refiner.py script can be used to run"
            "the refinements and subsequent analysis afterwards."
  use_refmac_instead_of_phenix = False
    .help = "use Refmac for reciprocal space refinement and COOT for"
            "real-space refinement instead of phenix.refine and"
            "phenix.real_space_refine."
  phenix_keywords {
    target_weights {
      wxc_scale = 0.5
        .help = "phenix.refine refinement.target_weights.wxc_scale."
      wxu_scale = 1.0
        .help = "phenix.refine refinement.target_weights.wxu_scale."
      weight_selection_criteria {
        bonds_rmsd = None
          .help = "phenix.refine"
                  "refinement.target_weights.weight_selection_criteria.bonds_rmsd."
        angles_rmsd = None
          .help = "phenix.refine"
                  "refinement.target_weights.weight_selection_criteria.angles_rmsd."
        r_free_minus_r_work = None
          .help = "phenix.refine"
                  "refinement.target_weights.weight_selection_criteria.r_free_minus_r_work."
      }
    }
    refine {
      strategy = *individual_sites individual_sites_real_space rigid_body \
                 *individual_adp group_adp tls occupancies group_anomalous
        .help = "phenix.refine refinement.refine.strategy."
    }
    main {
      cycles = 5
        .help = "Number of refinement macro cycles for reciprocal space"
                "refinement."
      ordered_solvent = False
        .help = "Add and remove ordered solvent during reciprocal space"
                "refinement (refinement.refine.main.ordered_solvent)."
      simulated_annealing = False
        .help = "Simulated annealing during refinement."
    }
    simulated_annealing {
      start_temperature = 5000
        .help = "start temperature for simulated annealing."
      final_temperature = 300
        .help = "final temperature for simulated annealing."
      cool_rate = 100
        .help = "cool rate for simulated annealing."
      mode = every_macro_cycle *second_and_before_last once first first_half
        .help = "simulated annealing mode."
    }
    map_sharpening {
      map_sharpening = False
        .help = "phenix map sharpening."
    }
    additional_reciprocal_space_keywords = None
      .help = "Additional phenix.refine keywords which cannot be altered via"
              "included options (e.g. ncs_search.enabled=True)."
    real_space_refine {
      cycles = 5
        .help = "Number of refinement cycles for real space refinement."
    }
    additional_real_space_keywords = None
      .help = "Additional phenix_real_space.refine keywords which cannot be"
              "altered via included options (e.g. ncs_constraints=False)."
    density_modification {
      density_modification = False
        .help = "use dm (ccp4) for density modification."
      combine = PERT *OMIT
        .help = "dm combine mode."
      cycles = 3
        .help = "number of dm cycles (ncycle keyword). Use a lot of cycles"
                "when combine=PERT and only few cycles when combine=OMIT."
    }
  }
  refmac_keywords {
    target_weights {
      weight = *AUTO MATRIx
        .help = "refmac WEIGHT."
      weighting_term = 0.2
        .help = "refmac weighting term in case of weight matrix."
      experimental_sigmas = *NOEX EXPE
        .help = "refmac use experimental sigmas to weight Xray terms."
    }
    restraints {
      jelly_body_refinement = False
        .help = "run refmac ridge regression, also known as jelly body jelly"
                "body refinement. Slow refinement convergence, so take at"
                "least 50 refinement cycles."
      jelly_body_sigma = 0.03
        .help = "sigma parameter in case of jelly body refinement ('RIDG DIST"
                "SIGM' parameter)."
      jelly_body_additional_restraints = None
        .help = "additional jelly body parameters (will be added to keyword"
                "RIDG )."
      external_restraints = None
        .help = "refmac external restraints (will be added to keyword external"
                ", e.g. harmonic residues from 225 A to 250 A atom CA sigma"
                "0.02 )."
    }
    refine {
      type = *RESTrained UNREstrained RIGId
        .help = "refmac refinement type refinement."
      TLS = False
        .help = "tls refinement before coordinate and B-factor refinement."
      TLS_cycles = 20
        .help = "number of TLS cycles in case of TLS refinement."
      bfac_set = 30
        .help = "reset individual B-factors to constant value before running"
                "TLS. Will only be applied in case TLS is run."
      twinning = False
        .help = "do refmac twin refinement."
      Brefinement = OVERall *ISOTropic
        .help = "refmac B-factor refinement."
      cycles = 20
        .help = "Number of refinement cycles for reciprocal space refinement."
    }
    map_sharpening {
      map_sharpening = False
        .help = "refmac map sharpening."
    }
    additional_refmac_keywords = None
      .help = "Additional refmac keywords which cannot be altered via included"
              "options (e.g. ncsr local)."
    density_modification {
      density_modification = False
        .help = "use dm for density modification."
      combine = PERT *OMIT
        .help = "dm combine mode."
      cycles = 3
        .help = "number of dm cycles (ncycle keyword). Use a lot of cycles"
                "when combine=PERT and only few cycles when combine=OMIT"
    }
  }
}
output {
  outdir = None
    .help = "Output directory. Xtrapol8 be used if not specified."
  outname = None
    .help = "Prefix or suffix for output files. The prefix of triggered_mtz"
            "will be used if not specified."
  generate_phil_only = False
    .help = "Generate input phil-file and quit."
  generate_fofo_only = False
    .help = "Stop Xtrapol8 after generation of Fourier Difference map."
  open_coot = True
    .help = "Automatically open COOT at the end."
  ddm_scale = None
    .help = "The ddm colors will range from -scale to +scale."
  GUI = False
    .help = "Xtrapol8 launched from GUI. In order to work correctly, this"
            "should never be manually changed."
}
Usage: phenix.python Fextr.py + [.phil] + [arguments]
 arguments only overwrite .phil if provided last

I will try to run this (with a proper input) asap.

Thanks

ElkeDeZitter commented 4 months ago

Dear @frmupe , thanks for the confirmation that you can run it with Phenix version 1.19. Indeed, we have two known warnings about global variables. These can be ignored. Then, indeed, if you run Xtrapol8 without arguments you will get the list of all options and a short description about the variables. We hope this is useful and we are of course willing to give more information about these parameters (more info can also be found in the manual). Elke

ndevenish commented 1 month ago

Thanks. Just installed for some colleagues and ran into this, have set to Phenix 1.19. I hadn't thought to delve into the manual.

ElkeDeZitter commented 1 month ago

Thanks for the update! Happy to hear that it could be solved.