<commit_before>NX01
====

Python code to perform isotropic, anisotropic (non-evolving/evolving)
searches for gravitational-waves via pulsar-timing.

Perhaps you want the [webpage](http://stevertaylor.github.io/NX01/)?

## Code list

* **NX01_master.py**: performs a full evolving-anisotropy GWB and
  noise analysis. Uses MultiNest or parallel-tempering sampling.
* **NX01_singlePsr.py**: performs a stochastic
  search for single-pulsar noise parameters within the reduced-rank
  time-frequency approximation. Uses MultiNest or parallel-tempering sampling.
* **NX01_AnisCoefficients.py**: utility file to create power-anisotropy
  basis-functions.
* **NX01_utils.py**: utility file.
* **NX01_plot.py**: plotting package, adapted and extended from PAL.
* **NX01_psr.py**: utility file which defines the pulsar class for
storing all relevant variables.
* **NX01_datafile.py**: creates an hdf5 container to store all the
information in the pulsar class. Useful for storing array products.
* **NX01_jitter.pxy**: cython code to perform Sherman-Morrison
  block noise-matrix inversions when handling ECORR (jitter). 
* **NX01_bayesutils.py**: utilities file for generating plotting data.

## Preliminaries

It is recommended that you initially open and follow the steps in the
`nanograv_pulsar_store.ipynb` notebook, and produce your own
`PsrListings_GWB.txt` and `PsrListings_CW.txt`.

## Single-pulsar noise analysis

It should be straightforward to perform a single-pulsar noise analysis
out of the box. One thing to note is to make sure you have
correctly updated your tempo2 clock files with files packaged with
the NANOGrav data download.
<commit_msg>updating readme<commit_after>NX01
====

Python code to perform isotropic, anisotropic (non-evolving/evolving)
searches for gravitational-waves via pulsar-timing.

Perhaps you want the [webpage](http://stevertaylor.github.io/NX01/)?

## Code list

* **NX01_master.py**: performs a full evolving-anisotropy GWB and
  noise analysis. Uses MultiNest or parallel-tempering sampling.
* **NX01_singlePsr.py**: performs a stochastic
  search for single-pulsar noise parameters within the reduced-rank
  time-frequency approximation. Uses MultiNest or parallel-tempering sampling.
* **NX01_AnisCoefficients.py**: utility file to create power-anisotropy
  basis-functions.
* **NX01_utils.py**: utility file.
* **NX01_plot.py**: plotting package, adapted and extended from PAL.
* **NX01_psr.py**: utility file which defines the pulsar class for
storing all relevant variables.
* **NX01_datafile.py**: creates an hdf5 container to store all the
information in the pulsar class. Useful for storing array products.
* **NX01_jitter.pxy**: cython code to perform Sherman-Morrison
  block noise-matrix inversions when handling ECORR (jitter). 
* **NX01_bayesutils.py**: utilities file for generating plotting data.

## Preliminaries

It is recommended that you initially open and follow the steps in the
`nanograv-pulsar-store.ipynb` notebook, and produce your own
`PsrListings_GWB.txt` and `PsrListings_CW.txt`. These latter files are
lists of pulsars in the order with which they contribute to the
stochastic background upper limit (`_GWB.txt`) and the single-source
SNR (`_CW.txt`). Each pulsar is associated with a path to an hdf5 file
(storing all pulsar properties), parfile, and timfile.

By following the steps in the notebook (only up until the
cross-validation plotting between NX01 and PAL2) you will produce your
own hdf5 files, which you should put in a directory of your
choice. These hdf5 files will store everything you need for subsequent
GW searches. Another important step in the notebook is to produce par
files which are stripped of tempo2 EFAC, EQUAD, ECORR, RedAmp, and
RedInd values. These values are replaced by mean values from Justin's
previous single-pulsar analyses.

## Single-pulsar noise analysis

It should be straightforward to perform a single-pulsar noise analysis
out of the box. One thing to note is to make sure you have
correctly updated your tempo2 clock files with files packaged with
the NANOGrav data download.

{'fraction_non_alphanumeric': 0.07455389880224884, 'fraction_numerical': 0.01344414568565143, 'mean_word_length': 5.026509572901325, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '431241', 'n_tokens_mistral': 1279, 'n_tokens_neox': 1181, 'n_words': 500}