Я искал много вопросов здесь и на других сайтах, и люди предлагали вещи, которые должны решить мою проблему, но я думаю, что что-то не так с моим кодом, который я просто не узнаю.
У меня есть 24 файла .fasta из секвенирования NGS длиной 150 бп.Для каждого файла примерно 1 млн. Чтений.Чтения взяты из целевого секвенирования, где мы гальванизировали векторы с кДНК для генов, представляющих интерес, и уникальной последовательности штрих-кода.Мне нужно просмотреть файлы секвенирования на наличие или отсутствие последовательности штрих-кода, которая соответствует конкретному гену.
У меня есть список штрих-кодов .txt, который я хочу передать grep для поиска штрих-кода в файле .fasta.Я пробовал так много вариантов этой команды.Я могу задать grep для каждого штрих-кода в отдельности, но это отнимает много времени, и я знаю, что можно дать ему список последовательностей штрих-кодов, выполнить поиск каждого .fasta для каждого из штрих-кодов и записать, сколько раз каждый штрих-код находится в каждом файле.
Вот мой код, в котором я даю ему каждый штрих-код в отдельности:
# Barcode 33
mkdir --mode 755 $dir/BC33
FILES="*.fasta"
for f in $FILES; do
cat "$f" | tr -d "\n" | tr ">" "\n" | grep 'TATTAGAGTTTGAGAATAAGTAGT' > $dir/BC33/"$f"
done
Я пытался адаптировать его, чтобы мне не приходилось вводить каждую последовательность штрих-кодов по отдельности:
dir="/home/lozzib/AG_Barcode_Seq/"
cd $dir
FILES="*.fasta"
for f in $FILES; do
cat "$f" | tr -d "\n" | tr ">" "\n" | grep -c -f BarcodeScreenSeq.txt | sort > $dir/Results/"$f"
echo "Finished $f"
done
Но он не ищет последовательности штрих-кодов.На этой итерации он просто возвращает новые файлы в каталоге /Results
, которые пусты.Я также попробовал гнездовой цикл, где я попытался сделать последовательность штрих-кодов переменной, которая изменилась как $FILES
, но это просто дало мне новый файл с именами моих файлов .fasta:
dir="/home/lozzib/AG_Barcode_Seq/"
cd $dir
FILES="*.fasta"
for f in $FILES; do
for b in `cat /home/lozzib/AG_Barcode_Seq/BarcodeScreenSeq.txt`; do
cat "$f" | grep -c "$b" | sort > $dir/"$f"_Barcode
done ;
done
Мне нужен выходной файл .txt, который имеет:
<barcode sequence>: <# of times that bc was found>
для каждого файла .fasta, потому что я хочу собрать все образцы вместе, чтобы сделать один большой лист Excel, который показывает каждый штрих-код и сколько раз он былнайдено в каждом образце.
Пожалуйста, помогите, я перепробовал все, что мог придумать.
РЕДАКТИРОВАТЬ
Вот как будет выглядеть файл BarcodeScreenSeq.txt.Это просто текстовый файл, где каждая строка представляет собой последовательность штрих-кодов:
head BarcodeScreenSeq.txt
TATTATGAGAAAGTTGAATAGTAG
ATGAAAGTTAGAGTTTATGATAAG
AATAGATAAGATTGATTGTGTTTG
TGTTAAATGTATGTAGTAATTGAG
ATAGATTTAAGTGAAGAGAGTTAT
GAATGTTTGTAAATGTATAGATAG
AAATTGTGAAAGATTGTTTGTGTA
TGTAAGTGAAATAGTGAGTTATTT
GAATTGTATAAAGTATTAGATGTG
AGTGAGATTATGAGTATTGATTTA
EDIT
lozzib@gliaserver:~/AG_Barcode_Seq$ file BarcodeScreenSeq.txt
BarcodeScreenSeq.txt: ASCII text, with CRLF line terminators