PECA is a software for inferring context specific gene regulatory network from paired gene expression and chromatin accessibility data. please cite PECA and PECA2 papers:
Duren, Zhana, et al. "Modeling gene regulation from paired expression and chromatin accessibility data." Proceedings of the National Academy of Sciences 114.25 (2017): E4914-E4923.
Duren, Zhana, et al. "Time course regulatory analysis based on paired expression and chromatin accessibility data." Genome research 30.4 (2020): 622-634.
wget https://github.com/SUwonglab/PECA/archive/master.zip
unzip master.zip
cd PECA-master/
bash install.sh
bash PECA.sh sampleName genome
bash install.sh
Run PECA by following two steps:
Put the input files in folder named ./Input
. Three files: ${SampleName}.txt
, ${SampleName}.bam
, ${SampleName}.bam.bai
.
${SampleName}.txt
is gene expression file containing two columns (tab delimited), gene Symbol and FPKM (or TPM).
${SampleName}.bam
is chromatin accessibility data, DNase-seq or ATAC-seq.
${SampleName}.bam.bai
is the index file of bam file.
Note that all the three files should have same before-dot-file-name ${SampleName},only difference is after dot ".txt", ".bam" or ".bam.bai". Please see the example of RAd4 in the ./Input
directory.
sh PECA.sh ${SampleName} ${genome}
Example: sh PECA.sh RAd4 mm9
To make sure the code run smoothly, please provide at least 64GB memory.
The results will be ./Results/${SampleName}/
.
${SampleName}_network.txt is the tissue specific network.
TFTG_score.txt is regulation strength for the all TF to TG. Each row represent one TF and each column represents one target gene. Higher value represents higher possibility of regulation.
CRB_pval.txt is the Chromatin regulators' (CR) binding site matrix, each column represent one CR, each row represent one region, the values are p-values.
PECA model uses prior information from ENCODE data. One can learn this prior information using their own data without using the ENCODE data if the number of paired samples are greater than 5.
sh PECA_withoutENCODE.sh FullPath_to_sampleNameFile ${genome}
Example: sh PECA_withoutENCODE.sh /home/user/sampleName.txt hg19
Here /home/user/sampleName.txt is a txt file that contain sample names (contain one sample name per line). For example
ES_day0
ES_day2
ES_day4
ES_day6
ES_day10
ES_day20
Under Input folder you should have ES_day0.txt, ES_day0.bam, and ES_day0.bam.bai, and the same for other samples. The reults of ES_day0 will be stored in ./Results__withoutENCODE/ES_day0/.
If you have two conditions (multiple samples in each conditions) and want to compare the two conditions at network level, please see tutorial in comparative_regulatory_analysis.md https://github.com/SUwonglab/PECA/blob/master/comparative_regulatory_analysis.md.
If you have two samples and want to compare the two samples at network level, please do it by following steps:
1, Prepare two networks: Run PECA on two samples one by one by "sh PECA.sh ${sampleName} ${genome}"
2, Run: sh PECA_compare_dif.sh ${Sample1} ${Sample2} ${Organism}
Example: sh PECA_compare_dif.sh K562 GM12878 human
; sh PECA_compare_dif.sh mESC RAd4 mouse
The results will be ./Results/Compare_${Sample1}_${Sample2}
. Containing six files:
specific network of two samples: ${Sample1}_specific_network.txt
and ${Sample2}_specific_network.txt
common network of two samples: ${Sample1}_${Sample2}_common_network.txt
specific module of two networks: ${Sample1}_specific_module.txt
and ${Sample2}_specific_module.txt
common module of two samples: ${Sample1}_${Sample2}_common_module.txt
Files PooledNetwork.txt or PooledModule.txt can be used to visualize the network by cytoscype, and the node lable is given in file Node_lable.txt. "1" and "-1" in PooledNetwork.txt or PooledModuole.txt represent "Activation" and "Repression" respectively. "1" and "2" in Node_lable.txt represent the gene is Sample1 specific or Sample2 specific.
If you have two conditions (multiple samples in each conditions) and want to compare the two conditions at network level, please do it by following steps:
1, Prepare networks: Run PECA on all the samples from two conditions one by one by "sh PECA.sh ${sampleName} ${genome}"
2, Construct lables: Write the sample names of Group1 and Group2 into text files named $Group1 and $Group2, respectively. (eg. create one text file named "Control" and put the sample names of one condition to this file, create other text file named "Case" and put the names of the other condition to this file. Note that the sample name files contain one sample name per line )
3, Run: sh PECA_compare_dif_multiple.sh $Group1 $Group2 ${Organism}
Example: sh PECA_compare_dif_multiple.sh Control Case human
The results will be ./Results/CompareGroup_${Group1}_${Group2}
. Containing six files:
specific network of two conditions: ${Group1}_specific_network.txt
and ${Group2}_specific_network.txt
common network of two conditions: ${Group1}_${Group2}_common_network.txt
specific module of two conditions: ${Group1}_specific_module.txt
and ${Group2}_specific_module.txt
common module of two conditions: ${Group1}_${Group2}_common_module.txt
Files PooledNetwork.txt or PooledModuole.txt can be used to visualize the network by cytoscype, and the node lable is given in file Node_lable.txt. "1" and "-1" in PooledNetwork.txt or PooledModuole.txt represent "Activation" and "Repression" respectively. "1" and "2" in Node_lable.txt represent the gene is Group1 specific or Group2 specific.
-
Matlab (Optimization Toolbox)
-
macs2
-
homer
-
samtools
-
bedtools
If you have any issues, please contact Zhana Duren by [email protected]