declare -a encode_ids=(ENCFF002CDP ENCFF002COQ ENCFF002DAJ ENCFF002DCM)
for (( i = 0; i < ${#encode_ids[@]}; ++i )); do
for (( j = i + 1; j < ${#encode_ids[@]}; ++j )); do
bedtools intersect -a "${encode_ids[i]}" -b "${encode_ids[j]}" \
>"${encode_ids[i]}.${encode_ids[j]}".intersected
done
done
O loop duplo acima fornecerá todas as combinações dos IDs fornecidos, mas deixará de fora combinações do mesmo ID com ele mesmo, além de evitar a combinação do ID A
com B
se a combinação B
with A
já foi usado.
A matriz de exemplo resultará no seguinte bedtool
runs:
bedtools intersect -a ENCFF002CDP -b ENCFF002COQ >ENCFF002CDP.ENCFF002COQ.intersected
bedtools intersect -a ENCFF002CDP -b ENCFF002DAJ >ENCFF002CDP.ENCFF002DAJ.intersected
bedtools intersect -a ENCFF002CDP -b ENCFF002DCM >ENCFF002CDP.ENCFF002DCM.intersected
bedtools intersect -a ENCFF002COQ -b ENCFF002DAJ >ENCFF002COQ.ENCFF002DAJ.intersected
bedtools intersect -a ENCFF002COQ -b ENCFF002DCM >ENCFF002COQ.ENCFF002DCM.intersected
bedtools intersect -a ENCFF002DAJ -b ENCFF002DCM >ENCFF002DAJ.ENCFF002DCM.intersected